From 314756460a0db79c1daea40a0d06fb678e8c9019 Mon Sep 17 00:00:00 2001 From: Felipe Cavalcanti Date: Wed, 5 Apr 2017 17:39:49 -0300 Subject: [PATCH] fix flannel setup on 1.6 cluster --- .../addons/networking.flannel/k8s-1.6.yaml | 109 ++++++++++++++++++ .../{v0.7.0.yaml => pre-k8s-1.6.yaml} | 0 .../pkg/fi/cloudup/bootstrapchannelbuilder.go | 35 ++++-- 3 files changed, 136 insertions(+), 8 deletions(-) create mode 100644 upup/models/cloudup/resources/addons/networking.flannel/k8s-1.6.yaml rename upup/models/cloudup/resources/addons/networking.flannel/{v0.7.0.yaml => pre-k8s-1.6.yaml} (100%) diff --git a/upup/models/cloudup/resources/addons/networking.flannel/k8s-1.6.yaml b/upup/models/cloudup/resources/addons/networking.flannel/k8s-1.6.yaml new file mode 100644 index 0000000000..3d577537fa --- /dev/null +++ b/upup/models/cloudup/resources/addons/networking.flannel/k8s-1.6.yaml @@ -0,0 +1,109 @@ +kind: ServiceAccount +apiVersion: v1 +metadata: + name: flannel + namespace: kube-system + labels: + role.kubernetes.io/networking: "1" +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: kube-flannel-cfg + namespace: kube-system + labels: + k8s-app: flannel + role.kubernetes.io/networking: "1" +data: + cni-conf.json: | + { + "name": "cbr0", + "type": "flannel", + "delegate": { + "forceAddress": true, + "isDefaultGateway": true + } + } + net-conf.json: | + { + "Network": "100.64.0.0/10", + "Backend": { + "Type": "udp" + } + } +--- +kind: DaemonSet +apiVersion: extensions/v1beta1 +metadata: + name: kube-flannel-ds + namespace: kube-system + labels: + k8s-app: flannel + role.kubernetes.io/networking: "1" +spec: + template: + metadata: + labels: + tier: node + app: flannel + role.kubernetes.io/networking: "1" + spec: + hostNetwork: true + nodeSelector: + beta.kubernetes.io/arch: amd64 + serviceAccountName: flannel + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + containers: + - name: kube-flannel + image: quay.io/coreos/flannel:v0.7.0 + command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr" ] + securityContext: + privileged: true + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + resources: + limits: + cpu: 100m + memory: 100Mi + requests: + cpu: 100m + memory: 100Mi + volumeMounts: + - name: run + mountPath: /run + - name: flannel-cfg + mountPath: /etc/kube-flannel/ + - name: install-cni + image: quay.io/coreos/flannel:v0.7.0 + command: [ "/bin/sh", "-c", "set -e -x; cp -f /etc/kube-flannel/cni-conf.json /etc/cni/net.d/10-flannel.conf; while true; do sleep 3600; done" ] + resources: + limits: + cpu: 10m + memory: 25Mi + requests: + cpu: 10m + memory: 25Mi + volumeMounts: + - name: cni + mountPath: /etc/cni/net.d + - name: flannel-cfg + mountPath: /etc/kube-flannel/ + volumes: + - name: run + hostPath: + path: /run + - name: cni + hostPath: + path: /etc/cni/net.d + - name: flannel-cfg + configMap: + name: kube-flannel-cfg diff --git a/upup/models/cloudup/resources/addons/networking.flannel/v0.7.0.yaml b/upup/models/cloudup/resources/addons/networking.flannel/pre-k8s-1.6.yaml similarity index 100% rename from upup/models/cloudup/resources/addons/networking.flannel/v0.7.0.yaml rename to upup/models/cloudup/resources/addons/networking.flannel/pre-k8s-1.6.yaml diff --git a/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go b/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go index 143984ca46..a525a0e695 100644 --- a/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go +++ b/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go @@ -259,16 +259,35 @@ func (b *BootstrapChannelBuilder) buildManifest() (*channelsapi.Addons, map[stri key := "networking.flannel" version := "0.7.0" - location := key + "/v" + version + ".yaml" + { + location := key + "/pre-k8s-1.6.yaml" + id := "pre-k8s-1.6" - addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ - Name: fi.String(key), - Version: fi.String(version), - Selector: map[string]string{"role.kubernetes.io/networking": "1"}, - Manifest: fi.String(location), - }) + addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ + Name: fi.String(key), + Version: fi.String(version), + Selector: networkingSelector, + Manifest: fi.String(location), + KubernetesVersion: "<1.6.0", + Id: id, + }) + manifests[key+"-"+id] = "addons/" + location + } - manifests[key] = "addons/" + location + { + location := key + "/k8s-1.6.yaml" + id := "k8s-1.6" + + addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ + Name: fi.String(key), + Version: fi.String(version), + Selector: networkingSelector, + Manifest: fi.String(location), + KubernetesVersion: ">=1.6.0", + Id: id, + }) + manifests[key+"-"+id] = "addons/" + location + } } if b.cluster.Spec.Networking.Calico != nil {