From fdf1f46cfd39ae36c5960eb8d7ea3ef0ff82c851 Mon Sep 17 00:00:00 2001 From: dougbtv Date: Tue, 18 Feb 2020 16:07:08 -0500 Subject: [PATCH 1/2] The cluster-network-operator should use the readiness indicator file option This helps to smooth out inconsistencies during an upgrade and helps Multus know openshift-sdn is ready. --- bindata/network/multus/multus.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/bindata/network/multus/multus.yaml b/bindata/network/multus/multus.yaml index 65bee2d2d3..ee209977d6 100644 --- a/bindata/network/multus/multus.yaml +++ b/bindata/network/multus/multus.yaml @@ -132,6 +132,7 @@ spec: - "--multus-conf-file=auto" - "--multus-autoconfig-dir=/host/var/run/multus/cni/net.d" - "--multus-kubeconfig-file-host=/etc/kubernetes/cni/net.d/multus.d/multus.kubeconfig" + - "--readiness-indicator-file=/var/run/multus/cni/net.d/80-openshift-network.conf" - "--cleanup-config-on-exit=true" - "--namespace-isolation=true" - "--multus-log-level=verbose" From a650d6f6406438848461a322da64a2fbe0f70759 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Thu, 27 Feb 2020 15:53:25 -0500 Subject: [PATCH 2/2] Conditionalize multus --readiness-indicator-file --- bindata/network/multus/multus.yaml | 4 ++++ pkg/network/multus.go | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/bindata/network/multus/multus.yaml b/bindata/network/multus/multus.yaml index ee209977d6..a8ddfc9b1d 100644 --- a/bindata/network/multus/multus.yaml +++ b/bindata/network/multus/multus.yaml @@ -132,7 +132,11 @@ spec: - "--multus-conf-file=auto" - "--multus-autoconfig-dir=/host/var/run/multus/cni/net.d" - "--multus-kubeconfig-file-host=/etc/kubernetes/cni/net.d/multus.d/multus.kubeconfig" +{{- if eq .DefaultNetworkType "OpenShiftSDN"}} - "--readiness-indicator-file=/var/run/multus/cni/net.d/80-openshift-network.conf" +{{- else if eq .DefaultNetworkType "OVNKubernetes"}} + - "--readiness-indicator-file=/var/run/multus/cni/net.d/10-ovn-kubernetes.conf" +{{- end}} - "--cleanup-config-on-exit=true" - "--namespace-isolation=true" - "--multus-log-level=verbose" diff --git a/pkg/network/multus.go b/pkg/network/multus.go index bc960c95ba..bbf0b5d544 100644 --- a/pkg/network/multus.go +++ b/pkg/network/multus.go @@ -34,7 +34,7 @@ func RenderMultus(conf *operv1.NetworkSpec, manifestDir string) ([]*uns.Unstruct out = append(out, objs...) usedhcp := UseDHCP(conf) - objs, err = renderMultusConfig(manifestDir, usedhcp) + objs, err = renderMultusConfig(manifestDir, string(conf.DefaultNetwork.Type), usedhcp) if err != nil { return nil, err } @@ -43,7 +43,7 @@ func RenderMultus(conf *operv1.NetworkSpec, manifestDir string) ([]*uns.Unstruct } // renderMultusConfig returns the manifests of Multus -func renderMultusConfig(manifestDir string, useDHCP bool) ([]*uns.Unstructured, error) { +func renderMultusConfig(manifestDir, defaultNetworkType string, useDHCP bool) ([]*uns.Unstructured, error) { objs := []*uns.Unstructured{} // render the manifests on disk @@ -56,6 +56,7 @@ func renderMultusConfig(manifestDir string, useDHCP bool) ([]*uns.Unstructured, data.Data["RenderDHCP"] = useDHCP data.Data["MultusCNIConfDir"] = MultusCNIConfDir data.Data["SystemCNIConfDir"] = SystemCNIConfDir + data.Data["DefaultNetworkType"] = defaultNetworkType manifests, err := render.RenderDir(filepath.Join(manifestDir, "network/multus"), &data) if err != nil {