--- apiVersion: v1 kind: ServiceAccount metadata: name: cniovsdpdk namespace: kube-system --- kind: ConfigMap apiVersion: v1 metadata: name: kube-cniovsdpdk-cfg namespace: kube-system labels: tier: node app: cniovsdpdk data: cni-conf.json: | { "name": "ovsdpdk", "type": "ovsdpdk", "bridge": "br-dpdk", "ipam": { "type": "host-local", "subnet": "10.244.0.0/24", "rangeStart": "10.244.0.100", "gateway": "10.244.0.1", "dataDir": "/vagrant/container-ipam-state" } } --- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: kube-cniovsdpdk-ds namespace: kube-system labels: tier: node app: cniovsdpdk spec: template: metadata: labels: tier: node app: cniovsdpdk spec: hostNetwork: true nodeSelector: beta.kubernetes.io/arch: amd64 tolerations: - key: node-role.kubernetes.io/master operator: Exists effect: NoSchedule serviceAccountName: cniovsdpdk initContainers: - name: install-cni image: ubuntu:16.04 command: - bash - "-c" - "apt-get update && apt-get install -y git && git clone http://github.com/opnfv/container4nfv && cd container4nfv && git fetch https://gerrit.opnfv.org/gerrit/container4nfv refs/changes/43/47743/5 && git checkout FETCH_HEAD && bash ./src/cni/ovsdpdk/install_cni.sh" volumeMounts: - name: cni-bin mountPath: /opt/cni/bin containers: - name: run-cni image: busybox:1.27.2 command: [ 'sh', '-c', 'cp /etc/kube-cniovsdpdk/cni-conf.json /etc/cni/net.d/10-ovsdpdk.conf; while true; do sleep 10000; done' ] volumeMounts: - name: cni-cfg mountPath: /etc/cni/net.d - name: cniovsdpdk-cfg mountPath: /etc/kube-cniovsdpdk volumes: - name: cni-bin hostPath: path: /opt/cni/bin - name: cni-cfg hostPath: path: /etc/cni/net.d - name: cniovsdpdk-cfg configMap: name: kube-cniovsdpdk-cfg