From 8cc60f7dd8fd3eeab4d64c37e2e843bb0cf3c03a Mon Sep 17 00:00:00 2001 From: Shane Utt Date: Fri, 11 Sep 2020 22:09:42 -0400 Subject: [PATCH] Add ARM64 to images This PR takes the existing ARM64v8 build and creates Daemonsets in the install images to deploy it for ARM based K8s clusters. Fixes #554 Signed-off-by: Shane Utt --- .github/workflows/go-build-arm64.yml | 2 +- images/multus-daemonset-crio.yml | 69 ++++++++++++++++++++++++++++ images/multus-daemonset.yml | 66 ++++++++++++++++++++++++++ 3 files changed, 136 insertions(+), 1 deletion(-) diff --git a/.github/workflows/go-build-arm64.yml b/.github/workflows/go-build-arm64.yml index 7a980b640..c44629609 100644 --- a/.github/workflows/go-build-arm64.yml +++ b/.github/workflows/go-build-arm64.yml @@ -1,4 +1,4 @@ -name: Go-build-ppc64le +name: Go-build-arm64v8 on: [push, pull_request] jobs: diff --git a/images/multus-daemonset-crio.yml b/images/multus-daemonset-crio.yml index 58e927fd0..c380e4c05 100644 --- a/images/multus-daemonset-crio.yml +++ b/images/multus-daemonset-crio.yml @@ -284,3 +284,72 @@ spec: items: - key: cni-conf.json path: 70-multus.conf +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: kube-multus-ds-arm64v8 + namespace: kube-system + labels: + tier: node + app: multus + name: multus +spec: + selector: + matchLabels: + name: multus + updateStrategy: + type: RollingUpdate + template: + metadata: + labels: + tier: node + app: multus + name: multus + spec: + hostNetwork: true + nodeSelector: + kubernetes.io/arch: arm64 + tolerations: + - operator: Exists + effect: NoSchedule + serviceAccountName: multus + containers: + - name: kube-multus + # crio support requires multus:latest for now. support 3.3 or later. + image: docker.io/nfvpe/multus:stable-arm64v8 + command: ["/entrypoint.sh"] + args: + - "--cni-version=0.3.1" + - "--cni-bin-dir=/host/usr/libexec/cni" + - "--multus-conf-file=auto" + - "--restart-crio=true" + 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/usr/libexec/cni + - name: multus-cfg + mountPath: /tmp/multus-conf + volumes: + - name: cni + hostPath: + path: /etc/cni/net.d + - name: cnibin + hostPath: + path: /usr/libexec/cni + - name: multus-cfg + configMap: + name: multus-cni-config + items: + - key: cni-conf.json + path: 70-multus.conf diff --git a/images/multus-daemonset.yml b/images/multus-daemonset.yml index 0a768c6d9..20c962c03 100644 --- a/images/multus-daemonset.yml +++ b/images/multus-daemonset.yml @@ -272,3 +272,69 @@ spec: items: - key: cni-conf.json path: 70-multus.conf +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: kube-multus-ds-arm64v8 + namespace: kube-system + labels: + tier: node + app: multus + name: multus +spec: + selector: + matchLabels: + name: multus + updateStrategy: + type: RollingUpdate + template: + metadata: + labels: + tier: node + app: multus + name: multus + spec: + hostNetwork: true + nodeSelector: + kubernetes.io/arch: arm64 + tolerations: + - operator: Exists + effect: NoSchedule + serviceAccountName: multus + containers: + - name: kube-multus + image: docker.io/nfvpe/multus:stable-arm64v8 + command: ["/entrypoint.sh"] + args: + - "--multus-conf-file=auto" + - "--cni-version=0.3.1" + 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