kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: flannel labels: role.kubernetes.io/networking: "1" rules: - apiGroups: - "" resources: - pods verbs: - get - apiGroups: - "" resources: - nodes verbs: - list - watch - apiGroups: - "" resources: - nodes/status verbs: - patch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: flannel labels: role.kubernetes.io/networking: "1" roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: flannel subjects: - kind: ServiceAccount name: flannel namespace: kube-system --- 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", "plugins": [ { "type": "flannel", "delegate": { "forceAddress": true, "isDefaultGateway": true, "hairpinMode": true } }, { "type": "portmap", "capabilities": { "portMappings": true } } ] } net-conf.json: | { "Network": "{{ .NonMasqueradeCIDR }}", "Backend": { "Type": "{{ FlannelBackendType }}" } } --- 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: - operator: Exists initContainers: - name: install-cni image: quay.io/coreos/flannel:v0.11.0-amd64 command: - cp args: - -f - /etc/kube-flannel/cni-conf.json - /etc/cni/net.d/10-flannel.conflist volumeMounts: - name: cni mountPath: /etc/cni/net.d - name: flannel-cfg mountPath: /etc/kube-flannel/ containers: - name: kube-flannel image: quay.io/coreos/flannel:v0.11.0-amd64 command: - "/opt/bin/flanneld" - "--ip-masq" - "--kube-subnet-mgr" - "--iptables-resync={{- or .Networking.Flannel.IptablesResyncSeconds "5" }}" securityContext: privileged: true env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace resources: limits: memory: 100Mi requests: cpu: 100m memory: 100Mi volumeMounts: - name: run mountPath: /run - 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