# This manifest is intended for dev work, so there are some differences from the "normal" manifest # - no namespace (make kubectl simpler) # - special image name (flannel-minikube) # - never pull the image # - host-gw backend (since vxlan doesn't work in minikube) --- apiVersion: v1 kind: ServiceAccount metadata: name: flannel --- kind: ConfigMap apiVersion: v1 metadata: name: kube-flannel-cfg labels: tier: node app: flannel data: cni-conf.json: | { "name": "cbr0", "cniVersion": "0.3.1", "type": "flannel", "delegate": { "hairpinMode": true, "isDefaultGateway": true } } net-conf.json: | { "Network": "10.33.0.0/16", "Backend": { "Type": "host-gw" } } --- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: kube-flannel-ds labels: tier: node app: flannel spec: template: metadata: labels: tier: node app: flannel spec: hostNetwork: true serviceAccountName: flannel containers: - name: kube-flannel image: flannel/minikube imagePullPolicy: Never command: - /opt/bin/flanneld args: - --ip-masq - --kube-subnet-mgr resources: requests: cpu: "100m" memory: "50Mi" securityContext: privileged: true env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace volumeMounts: - name: run mountPath: /run - name: flannel-cfg mountPath: /etc/kube-flannel/ - name: install-cni image: flannel/minikube imagePullPolicy: Never command: [ "/bin/sh", "-c", "set -e -x; cat /etc/kube-flannel/cni-conf.json; cp -f /etc/kube-flannel/cni-conf.json /etc/cni/net.d/10-flannel.conf; while true; do sleep 3600; done" ] 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