
This change has been tested by the promenade resiliency gate. This adds configuration for which ports to use for the tiller container in the bootstrap-armada pod, and changes the defaults to be outside of `net.ipv4.ip_local_port_range`, since the apiserver container in this pod dynamically selects ports in that range to connect to etcd, which can cause conflicts. See [0] for an example. By default, since we're no longer using the standard tiller ports, this does mean that we cannot connect to this tiller instance (before it's replaced by the chart-based instance) via the helm CLI, until it supports overriding the tiller port to connect to, however this should be relatively soon [1]. [0]: https://github.com/helm/helm/issues/4886 [1]: https://github.com/helm/helm/pull/5590 Change-Id: Ief11411f079db27489e6974c028f6b7a16bb67bf
2.2 KiB
2.2 KiB
Genesis
Specific configuration for the genesis process. This document is a
strict superset of the combination of kubernetes-node
and host-system
, so only differences are discussed
here.
Sample Document
Here is a complete sample document:
schema: promenade/Genesis/v1
metadata:
schema: metadata/Document/v1
name: genesis
layeringDefinition:
abstract: false
layer: site
data:
hostname: n0
ip: 192.168.77.10
armada:
target_manifest: cluster-bootstrap
tiller:
listen: 24134
probe_listen: 24135
labels:
static:
- calico-etcd=enabled
- node-role.kubernetes.io/master=
dynamic:
- kubernetes-apiserver=enabled
- kubernetes-controller-manager=enabled
- kubernetes-etcd=enabled
- kubernetes-scheduler=enabled
- promenade-genesis=enabled
- ucp-control-plane=enabled
images:
armada: quay.io/airshipit/armada:latest
helm:
tiller: gcr.io/kubernetes-helm/tiller:v2.14.0
kubernetes:
apiserver: gcr.io/google_containers/hyperkube-amd64:v1.11.6
controller-manager: gcr.io/google_containers/hyperkube-amd64:v1.11.6
etcd: quay.io/coreos/etcd:v3.0.17
scheduler: gcr.io/google_containers/hyperkube-amd64:v1.11.6
files:
- path: /var/lib/anchor/calico-etcd-bootstrap
content: ""
mode: 0644
Armada
This section contains particular configuration options for
bootstrapping with Armada. It currently only supports a single option:
target_manifest
, which specifies which
armada/Manifest/v1
to be used during Genesis.
Bootstrapping Images
Bootstrapping images are specified in the top level key
images
:
armada: <Armada image for bootstrapping>
helm:
tiller: <Tiller image for bootstrapping>
kubernetes:
apiserver: <API server image for bootstrapping>
controller-manager: <Controller Manager image for bootstrapping>
etcd: <etcd image for bootstrapping>
scheduler: <Scheduler image for bootstrapping>