X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ffoundation%2Fscripts%2Fcni%2Fcalico%2Fetcd.yaml;fp=src%2Ffoundation%2Fscripts%2Fcni%2Fcalico%2Fetcd.yaml;h=36da3abc23c1fbcd1fc98356b79a4ec2df2d9fdd;hb=baee00d72f8fc2742b8912ac9b6ab30998e1879e;hp=0000000000000000000000000000000000000000;hpb=446674dca6bd24d1b41bfad046788db20e43c937;p=iec.git diff --git a/src/foundation/scripts/cni/calico/etcd.yaml b/src/foundation/scripts/cni/calico/etcd.yaml new file mode 100644 index 0000000..36da3ab --- /dev/null +++ b/src/foundation/scripts/cni/calico/etcd.yaml @@ -0,0 +1,152 @@ +--- +# This manifest installs the Calico etcd on the kubeadm master. This uses a DaemonSet +# to force it to run on the master even when the master isn't schedulable, and uses +# nodeSelector to ensure it only runs on the master. +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: calico-etcd-arm64 + namespace: kube-system + labels: + k8s-app: calico-etcd +spec: + template: + metadata: + labels: + k8s-app: calico-etcd + annotations: + # Mark this pod as a critical add-on; when enabled, the critical add-on scheduler + # reserves resources for critical add-on pods so that they can be rescheduled after + # a failure. This annotation works in tandem with the toleration below. + scheduler.alpha.kubernetes.io/critical-pod: '' + spec: + tolerations: + # This taint is set by all kubelets running `--cloud-provider=external` + # so we should tolerate it to schedule the Calico pods + - key: node.cloudprovider.kubernetes.io/uninitialized + value: "true" + effect: NoSchedule + # Allow this pod to run on the master. + - key: node-role.kubernetes.io/master + effect: NoSchedule + # Allow this pod to be rescheduled while the node is in "critical add-ons only" mode. + # This, along with the annotation above marks this pod as a critical add-on. + - key: CriticalAddonsOnly + operator: Exists + # Only run this pod on the master. + nodeSelector: + node-role.kubernetes.io/master: "" + beta.kubernetes.io/arch: arm64 + hostNetwork: true + containers: + - name: calico-etcd + image: quay.io/coreos/etcd:v3.3.9-arm64 + env: + - name: CALICO_ETCD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: ETCD_UNSUPPORTED_ARCH + value: "arm64" + command: + - /usr/local/bin/etcd + args: + - --name=calico + - --data-dir=/var/etcd/calico-data + - --advertise-client-urls=http://$(CALICO_ETCD_IP):6666 + - --listen-client-urls=http://0.0.0.0:6666 + - --listen-peer-urls=http://0.0.0.0:6667 + - --auto-compaction-retention=1 + volumeMounts: + - name: var-etcd + mountPath: /var/etcd + volumes: + - name: var-etcd + hostPath: + path: /var/etcd + +--- +# This manifest installs the Calico etcd on the kubeadm master. This uses a DaemonSet +# to force it to run on the master even when the master isn't schedulable, and uses +# nodeSelector to ensure it only runs on the master. +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: calico-etcd-amd64 + namespace: kube-system + labels: + k8s-app: calico-etcd +spec: + template: + metadata: + labels: + k8s-app: calico-etcd + annotations: + # Mark this pod as a critical add-on; when enabled, the critical add-on scheduler + # reserves resources for critical add-on pods so that they can be rescheduled after + # a failure. This annotation works in tandem with the toleration below. + scheduler.alpha.kubernetes.io/critical-pod: '' + spec: + tolerations: + # This taint is set by all kubelets running `--cloud-provider=external` + # so we should tolerate it to schedule the Calico pods + - key: node.cloudprovider.kubernetes.io/uninitialized + value: "true" + effect: NoSchedule + # Allow this pod to run on the master. + - key: node-role.kubernetes.io/master + effect: NoSchedule + # Allow this pod to be rescheduled while the node is in "critical add-ons only" mode. + # This, along with the annotation above marks this pod as a critical add-on. + - key: CriticalAddonsOnly + operator: Exists + # Only run this pod on the master. + nodeSelector: + node-role.kubernetes.io/master: "" + beta.kubernetes.io/arch: amd64 + hostNetwork: true + containers: + - name: calico-etcd + image: quay.io/coreos/etcd:v3.3.9 + env: + - name: CALICO_ETCD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + command: + - /usr/local/bin/etcd + args: + - --name=calico + - --data-dir=/var/etcd/calico-data + - --advertise-client-urls=http://$(CALICO_ETCD_IP):6666 + - --listen-client-urls=http://0.0.0.0:6666 + - --listen-peer-urls=http://0.0.0.0:6667 + - --auto-compaction-retention=1 + volumeMounts: + - name: var-etcd + mountPath: /var/etcd + volumes: + - name: var-etcd + hostPath: + path: /var/etcd + +--- + +# This manifest installs the Service which gets traffic to the Calico +# etcd. +apiVersion: v1 +kind: Service +metadata: + labels: + k8s-app: calico-etcd + name: calico-etcd + namespace: kube-system +spec: + # Select the calico-etcd pod running on the master. + selector: + k8s-app: calico-etcd + # This ClusterIP needs to be known in advance, since we cannot rely + # on DNS to get access to etcd. + clusterIP: 10.96.232.136 + ports: + - port: 6666