| --- |
| apiVersion: apiextensions.k8s.io/v1beta1 |
| kind: CustomResourceDefinition |
| metadata: |
| name: network-attachment-definitions.k8s.cni.cncf.io |
| spec: |
| group: k8s.cni.cncf.io |
| version: v1 |
| scope: Namespaced |
| names: |
| plural: network-attachment-definitions |
| singular: network-attachment-definition |
| kind: NetworkAttachmentDefinition |
| shortNames: |
| - net-attach-def |
| validation: |
| openAPIV3Schema: |
| properties: |
| spec: |
| properties: |
| config: |
| type: string |
| --- |
| kind: ClusterRole |
| apiVersion: rbac.authorization.k8s.io/v1beta1 |
| metadata: |
| name: multus |
| rules: |
| - apiGroups: ["k8s.cni.cncf.io"] |
| resources: |
| - '*' |
| verbs: |
| - '*' |
| - apiGroups: |
| - "" |
| resources: |
| - pods |
| - pods/status |
| verbs: |
| - get |
| - update |
| --- |
| kind: ClusterRoleBinding |
| apiVersion: rbac.authorization.k8s.io/v1beta1 |
| metadata: |
| name: multus |
| roleRef: |
| apiGroup: rbac.authorization.k8s.io |
| kind: ClusterRole |
| name: multus |
| subjects: |
| - kind: ServiceAccount |
| name: multus |
| namespace: kube-system |
| --- |
| apiVersion: v1 |
| kind: ServiceAccount |
| metadata: |
| name: multus |
| namespace: kube-system |
| --- |
| kind: ConfigMap |
| apiVersion: v1 |
| metadata: |
| name: multus-cni-config |
| namespace: kube-system |
| labels: |
| tier: node |
| app: multus |
| data: |
| # NOTE: If you'd prefer to manually apply a configuration file, you may create one here. |
| # In the case you'd like to customize the Multus installation, you should change the arguments to the Multus pod |
| # change the "args" line below from |
| # - "--multus-conf-file=auto" |
| # to: |
| # "--multus-conf-file=/tmp/multus-conf/70-multus.conf" |
| # Additionally -- you should ensure that the name "70-multus.conf" is the alphabetically first name in the |
| # /etc/cni/net.d/ directory on each node, otherwise, it will not be used by the Kubelet. |
| cni-conf.json: | |
| { |
| "name": "multus-cni-network", |
| "type": "multus", |
| "capabilities": { |
| "portMappings": true |
| }, |
| "delegates": [ |
| { |
| "cniVersion": "0.3.1", |
| "name": "default-cni-network", |
| "plugins": [ |
| { |
| "type": "flannel", |
| "name": "flannel.1", |
| "delegate": { |
| "isDefaultGateway": true, |
| "hairpinMode": true |
| } |
| }, |
| { |
| "type": "portmap", |
| "capabilities": { |
| "portMappings": true |
| } |
| } |
| ] |
| } |
| ], |
| "kubeconfig": "/etc/cni/net.d/multus.d/multus.kubeconfig" |
| } |
| --- |
| apiVersion: extensions/v1beta1 |
| kind: DaemonSet |
| metadata: |
| name: kube-multus-ds-amd64 |
| namespace: kube-system |
| labels: |
| tier: node |
| app: multus |
| spec: |
| updateStrategy: |
| type: RollingUpdate |
| template: |
| metadata: |
| labels: |
| tier: node |
| app: multus |
| spec: |
| hostNetwork: true |
| nodeSelector: |
| beta.kubernetes.io/arch: amd64 |
| tolerations: |
| - operator: Exists |
| effect: NoSchedule |
| serviceAccountName: multus |
| containers: |
| - name: kube-multus |
| image: nfvpe/multus:v3.2 |
| command: ["/entrypoint.sh"] |
| args: |
| - "--multus-conf-file=auto" |
| resources: |
| requests: |
| cpu: "100m" |
| memory: "50Mi" |
| limits: |
| cpu: "100m" |
| memory: "50Mi" |
| securityContext: |
| privileged: true |
| volumeMounts: |
| - name: cni |
| mountPath: /host/etc/cni/net.d |
| - name: cnibin |
| mountPath: /host/opt/cni/bin |
| - name: multus-cfg |
| mountPath: /tmp/multus-conf |
| volumes: |
| - name: cni |
| hostPath: |
| path: /etc/cni/net.d |
| - name: cnibin |
| hostPath: |
| path: /opt/cni/bin |
| - name: multus-cfg |
| configMap: |
| name: multus-cni-config |
| items: |
| - key: cni-conf.json |
| path: 70-multus.conf |
| --- |
| apiVersion: extensions/v1beta1 |
| kind: DaemonSet |
| metadata: |
| name: kube-multus-ds-ppc64le |
| namespace: kube-system |
| labels: |
| tier: node |
| app: multus |
| spec: |
| updateStrategy: |
| type: RollingUpdate |
| template: |
| metadata: |
| labels: |
| tier: node |
| app: multus |
| spec: |
| hostNetwork: true |
| nodeSelector: |
| beta.kubernetes.io/arch: ppc64le |
| tolerations: |
| - operator: Exists |
| effect: NoSchedule |
| serviceAccountName: multus |
| containers: |
| - name: kube-multus |
| # ppc64le support requires multus:latest for now. support 3.3 or later. |
| image: nfvpe/multus:latest-ppc64le |
| command: ["/entrypoint.sh"] |
| args: |
| - "--multus-conf-file=auto" |
| resources: |
| requests: |
| cpu: "100m" |
| memory: "90Mi" |
| limits: |
| cpu: "100m" |
| memory: "90Mi" |
| securityContext: |
| privileged: true |
| volumeMounts: |
| - name: cni |
| mountPath: /host/etc/cni/net.d |
| - name: cnibin |
| mountPath: /host/opt/cni/bin |
| - name: multus-cfg |
| mountPath: /tmp/multus-conf |
| volumes: |
| - name: cni |
| hostPath: |
| path: /etc/cni/net.d |
| - name: cnibin |
| hostPath: |
| path: /opt/cni/bin |
| - name: multus-cfg |
| configMap: |
| name: multus-cni-config |
| items: |
| - key: cni-conf.json |
| path: 70-multus.conf |