From ae739e3c233a433cb3a301e61fb0544ef067e2fb Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Wed, 25 Nov 2020 15:09:38 -0500 Subject: [PATCH 01/39] [CARRY] Add midstream approvers and reviewers The internal Networking team needs to be able to approve and review. Signed-off-by: Brad P. Crochet --- OWNERS | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OWNERS b/OWNERS index f3e2b31eb..ae788ae99 100644 --- a/OWNERS +++ b/OWNERS @@ -2,6 +2,9 @@ approvers: - phoracek - qinqon - bcrochet + - yboaron + - cybertron + - celebdor reviewers: - phoracek - qinqon @@ -11,9 +14,10 @@ reviewers: - yboaron - RamLavi - rhrazdil + - cybertron + - celebdor # Bugzilla info; component: Networking -subcomponent: kubernetes-nmstate-operator -subcomponent: kubernetes-nmstate +subcomponent: kubernetes-nmstate-operator,kubernetes-nmstate From 5f198e962b58afdd69f298ae2c075cd13eff01f7 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Wed, 25 Nov 2020 15:42:29 -0500 Subject: [PATCH 02/39] [CARRY] Make operator bundle for OLM Signed-off-by: Brad P. Crochet --- build/Dockerfile.operator.openshift | 4 + manifests/4.7/image-references | 13 ++ ...operator.v4.7.0.clusterserviceversion.yaml | 200 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.7/nmstate.io_nmstates.yaml | 73 +++++++ manifests/art.yaml | 15 ++ .../kubernetes-nmstate-operator.package.yaml | 4 + metadata/annotations.yaml | 7 + 8 files changed, 324 insertions(+) create mode 100644 manifests/4.7/image-references create mode 100644 manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml create mode 100644 manifests/4.7/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.7/nmstate.io_nmstates.yaml create mode 100644 manifests/art.yaml create mode 100644 manifests/kubernetes-nmstate-operator.package.yaml create mode 100644 metadata/annotations.yaml diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index e4a911342..5129241cc 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -12,9 +12,13 @@ COPY deploy/handler/operator.yaml /bindata/kubernetes-nmstate/handler/handler.ya COPY deploy/handler/service_account.yaml /bindata/kubernetes-nmstate/rbac/ COPY deploy/handler/role.yaml /bindata/kubernetes-nmstate/rbac/ COPY deploy/handler/role_binding.yaml /bindata/kubernetes-nmstate/rbac/ +COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/manifests /manifests +COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/metadata /metadata ENTRYPOINT ["manager"] LABEL io.k8s.display-name="kubernetes-nmstate-operator" \ io.k8s.description="Operator for Node network configuration through Kubernetes API" \ + io.openshift.tags="openshift,kubernetes-nmstate-operator" \ + com.redhat.delivery.appregistry=true \ maintainer="Yossi Boaron " diff --git a/manifests/4.7/image-references b/manifests/4.7/image-references new file mode 100644 index 000000000..5c6f20a0d --- /dev/null +++ b/manifests/4.7/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 \ No newline at end of file diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml new file mode 100644 index 000000000..4b77bf320 --- /dev/null +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -0,0 +1,200 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "openshift-nmstate" + }, + "spec": { + "nodeSelector": "" + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + certified: "false" + name: kubernetes-nmstate-operator.v4.7.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: RELATED_IMAGES_HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.7.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.7.0 diff --git a/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.7/nmstate.io_nmstates.yaml b/manifests/4.7/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.7/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/manifests/art.yaml b/manifests/art.yaml new file mode 100644 index 000000000..19c5d1a7a --- /dev/null +++ b/manifests/art.yaml @@ -0,0 +1,15 @@ +updates: + - file: "{MAJOR}.{MINOR}/kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0.clusterserviceversion.yaml" # relative to this file + update_list: + # replace metadata.name value + - search: "kubernetesnmstateoperator.v{MAJOR}.{MINOR}.0" + replace: "kubernetesnmstateoperator.{FULL_VER}" + # replace entire version line, otherwise would replace {MAJOR}.{MINOR}.0 anywhere + - search: "version: {MAJOR}.{MINOR}.0" + replace: "version: {FULL_VER}" + - search: 'olm.skipRange: ">=4.4.0 <{MAJOR}.{MINOR}.0"' + replace: 'olm.skipRange: ">=4.4.0 <{FULL_VER}"' + - file: "kubernetes-nmstate-operator.package.yaml" + update_list: + - search: "currentCSV: kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0" + replace: "currentCSV: kubernetes-nmstate-operator.{FULL_VER}" \ No newline at end of file diff --git a/manifests/kubernetes-nmstate-operator.package.yaml b/manifests/kubernetes-nmstate-operator.package.yaml new file mode 100644 index 000000000..c4a062ac1 --- /dev/null +++ b/manifests/kubernetes-nmstate-operator.package.yaml @@ -0,0 +1,4 @@ +packageName: kubernetes-nmstate-operator +channels: + - name: "4.7" + currentCSV: kubernetes-nmstate-operator.v4.7.0 diff --git a/metadata/annotations.yaml b/metadata/annotations.yaml new file mode 100644 index 000000000..a027fcd97 --- /dev/null +++ b/metadata/annotations.yaml @@ -0,0 +1,7 @@ +annotations: + operators.operatorframework.io.bundle.channel.default.v1: "beta" + operators.operatorframework.io.bundle.channels.v1: "beta" + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: "kubernetes-nmstate-operator" From 182e4cad8171fbac828b8917e470aae8e15099f6 Mon Sep 17 00:00:00 2001 From: thiagoalessio Date: Mon, 30 Nov 2020 17:48:20 +0100 Subject: [PATCH 03/39] Remove duplicated 'certified' key in CSV ``` Image build failed. Error in plugin pin_operator_digest: while constructing a mapping\n in "/tmp/tmpii4h0l34/openshift-kubernetes-nmstate-operator-bundle/manifests/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml", line 5, column 5\nfound duplicate key "certified" with value "false" (original value: "false")\n in "/tmp/tmpii4h0l34/openshift-kubernetes-nmstate-operator-bundle/manifests/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml", line 26, column 5\n\nTo suppress this check see:\n http://yaml.readthedocs.io/en/latest/api.html#duplicate-keys\n\nDuplicate keys will become and error in future releases, and are errors\nby default when using the new API.\n. OSBS build id: openshift-kubernetes-nmstate-op-rhaos-47-rhel-8-2faf9-1 ``` --- ...kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml index 4b77bf320..33853ceed 100644 --- a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -23,7 +23,6 @@ metadata: olm.skipRange: ">=4.3.0-0 < 4.7.0-0" support: Red Hat, Inc. repository: https://github.com/openshift/kubernetes-nmstate - certified: "false" name: kubernetes-nmstate-operator.v4.7.0 namespace: openshift-nmstate spec: From 0ba575720c410543205235f4547285263ac4f793 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Thu, 3 Dec 2020 13:32:39 -0500 Subject: [PATCH 04/39] [CARRY] Correct the env var used for the handler image Inadverdently used 'RELATED_IMAGES_' instead of 'RELATED_IMAGE_' --- ...ubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml index 33853ceed..69a0adfff 100644 --- a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -120,7 +120,7 @@ spec: - name: PROFILER_PORT value: "6060" - name: RUN_OPERATOR - - name: RELATED_IMAGES_HANDLER_IMAGE + - name: RELATED_IMAGE_HANDLER_IMAGE value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 - name: HANDLER_IMAGE_PULL_POLICY value: Always From 4abf2daee155c8024946aea55412306d84592b77 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Thu, 3 Dec 2020 17:16:05 -0500 Subject: [PATCH 05/39] [CARRY] Add securitycontextconstraints to CSV Signed-off-by: Brad P. Crochet --- ...tes-nmstate-operator.v4.7.0.clusterserviceversion.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml index 69a0adfff..527349950 100644 --- a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -88,6 +88,14 @@ spec: - namespaces verbs: - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged serviceAccountName: nmstate-operator deployments: - name: nmstate-operator From 849bd7d80455672bec2e64768c461510fdfb96ad Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Fri, 4 Dec 2020 08:58:22 -0500 Subject: [PATCH 06/39] [CARRY] Remove RELATED_IMAGE_ from the handler image env var This is causing a conflict with ART tooling. --- .../kubernetes-nmstate-operator.clusterserviceversion.yaml | 2 +- controllers/nmstate_controller.go | 4 ++-- controllers/nmstate_controller_test.go | 2 +- deploy/operator/operator.yaml | 2 +- ...ernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml b/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml index 3cf25d072..5517a6438 100644 --- a/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml +++ b/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml @@ -122,7 +122,7 @@ spec: - name: PROFILER_PORT value: "6060" - name: RUN_OPERATOR - - name: RELATED_IMAGE_HANDLER_IMAGE + - name: HANDLER_IMAGE value: quay.io/nmstate/kubernetes-nmstate-handler:latest - name: HANDLER_IMAGE_PULL_POLICY value: Always diff --git a/controllers/nmstate_controller.go b/controllers/nmstate_controller.go index 96a26c2e7..75e2b0f69 100644 --- a/controllers/nmstate_controller.go +++ b/controllers/nmstate_controller.go @@ -132,7 +132,7 @@ func (r *NMStateReconciler) applyNamespace(instance *nmstatev1beta1.NMState) err func (r *NMStateReconciler) applyRBAC(instance *nmstatev1beta1.NMState) error { data := render.MakeRenderData() data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE") - data.Data["HandlerImage"] = os.Getenv("RELATED_IMAGE_HANDLER_IMAGE") + data.Data["HandlerImage"] = os.Getenv("HANDLER_IMAGE") data.Data["HandlerPullPolicy"] = os.Getenv("HANDLER_IMAGE_PULL_POLICY") data.Data["HandlerPrefix"] = os.Getenv("HANDLER_PREFIX") return r.renderAndApply(instance, data, "rbac", true) @@ -159,7 +159,7 @@ func (r *NMStateReconciler) applyHandler(instance *nmstatev1beta1.NMState) error amd64AndCRNodeSelector["beta.kubernetes.io/arch"] = "amd64" data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE") - data.Data["HandlerImage"] = os.Getenv("RELATED_IMAGE_HANDLER_IMAGE") + data.Data["HandlerImage"] = os.Getenv("HANDLER_IMAGE") data.Data["HandlerPullPolicy"] = os.Getenv("HANDLER_IMAGE_PULL_POLICY") data.Data["HandlerPrefix"] = os.Getenv("HANDLER_PREFIX") data.Data["WebhookNodeSelector"] = amd64ArchOnMasterNodeSelector diff --git a/controllers/nmstate_controller_test.go b/controllers/nmstate_controller_test.go index b08792cf7..249f802e1 100644 --- a/controllers/nmstate_controller_test.go +++ b/controllers/nmstate_controller_test.go @@ -62,7 +62,7 @@ var _ = Describe("NMState controller reconcile", func() { reconciler.Scheme = s reconciler.Log = ctrl.Log.WithName("controllers").WithName("NMState") os.Setenv("HANDLER_NAMESPACE", handlerNamespace) - os.Setenv("RELATED_IMAGE_HANDLER_IMAGE", handlerImage) + os.Setenv("HANDLER_IMAGE", handlerImage) os.Setenv("HANDLER_IMAGE_PULL_POLICY", imagePullPolicy) os.Setenv("HANDLER_PREFIX", handlerPrefix) }) diff --git a/deploy/operator/operator.yaml b/deploy/operator/operator.yaml index ecc006d2a..5268447c0 100644 --- a/deploy/operator/operator.yaml +++ b/deploy/operator/operator.yaml @@ -44,7 +44,7 @@ spec: value: "6060" - name: RUN_OPERATOR value: "" - - name: RELATED_IMAGE_HANDLER_IMAGE + - name: HANDLER_IMAGE value: {{ .HandlerImage }} - name: HANDLER_IMAGE_PULL_POLICY value: {{ .HandlerPullPolicy }} diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml index 527349950..2ed048e52 100644 --- a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -128,7 +128,7 @@ spec: - name: PROFILER_PORT value: "6060" - name: RUN_OPERATOR - - name: RELATED_IMAGE_HANDLER_IMAGE + - name: HANDLER_IMAGE value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 - name: HANDLER_IMAGE_PULL_POLICY value: Always From 94fa63442d56d97d1d5f952cce887016c5271727 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Fri, 4 Dec 2020 13:10:02 -0500 Subject: [PATCH 07/39] [CARRY] Add cluster rules for nmstate-handler sa This adds the privileged SCC for the nmstate-handler serviceaccount. The nmstate-operator serviceaccount was not enough. Multiple sa's can be specificed in the CSV. Signed-off-by: Brad P. Crochet --- ...-nmstate-operator.v4.7.0.clusterserviceversion.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml index 2ed048e52..b9efef08e 100644 --- a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -97,6 +97,16 @@ spec: resourceNames: - privileged serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler deployments: - name: nmstate-operator spec: From 5fe061c6314030bd908f451631ae5c0cc7755f44 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Fri, 4 Dec 2020 23:16:30 -0500 Subject: [PATCH 08/39] [CARRY] Move the nmstate-handler sa to the correct section Originally I placed the nmstate-handler SA under the cluster permission. It needed to be in the namespaced section. Signed-off-by: Brad P. Crochet --- ...operator.v4.7.0.clusterserviceversion.yaml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml index b9efef08e..79c59d4b8 100644 --- a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -97,16 +97,6 @@ spec: resourceNames: - privileged serviceAccountName: nmstate-operator - - rules: - - apiGroups: - - security.openshift.io - resources: - - securitycontextconstraints - verbs: - - use - resourceNames: - - privileged - serviceAccountName: nmstate-handler deployments: - name: nmstate-operator spec: @@ -185,6 +175,16 @@ spec: verbs: - '*' serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler strategy: deployment installModes: - supported: true From 332a696f24d59c79ba5416d2bbf09e3f47357e15 Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Tue, 8 Dec 2020 01:25:42 +0000 Subject: [PATCH 09/39] UPSTREAM: : Updating openshift-kubernetes-nmstate-operator builder & base images to be consistent with ART Reconciling with https://github.com/openshift/ocp-build-data/tree/d29c8eea8eaa4e66c0af4a855f5a081d1312aeff/images/openshift-kubernetes-nmstate-operator.yml --- build/Dockerfile.operator.openshift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index 5129241cc..83a975b1e 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/openshift/release:golang-1.15 AS builder +FROM registry.svc.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.access.redhat.com/ubi8/ubi-minimal +FROM registry.svc.ci.openshift.org/ocp/4.7:base COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/build/_output/bin/manager /usr/bin/ COPY deploy/crds/nmstate.io_nodenetwork*.yaml /bindata/kubernetes-nmstate/crds/ From 126147320c3012d12aab26a99048063bd8e875de Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Tue, 8 Dec 2020 01:58:11 +0000 Subject: [PATCH 10/39] UPSTREAM: : Updating openshift-kubernetes-nmstate-handler builder & base images to be consistent with ART Reconciling with https://github.com/openshift/ocp-build-data/tree/d29c8eea8eaa4e66c0af4a855f5a081d1312aeff/images/openshift-kubernetes-nmstate-handler.yml --- build/Dockerfile.openshift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.openshift b/build/Dockerfile.openshift index 4062f57d0..73a972c8f 100644 --- a/build/Dockerfile.openshift +++ b/build/Dockerfile.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/openshift/release:golang-1.15 AS builder +FROM registry.svc.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM ubi8-minimal +FROM registry.svc.ci.openshift.org/ocp/4.7:base RUN \ microdnf -y update && \ From 63becd0d55cbfc6848a7fc61961d2bb102634e8f Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Tue, 8 Dec 2020 07:54:17 -0500 Subject: [PATCH 11/39] Change example name to nmstate, and add nodeSelector The example as given doesn't really work. It's better to have a working sample. Signed-off-by: Brad P. Crochet --- ...ernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml index 79c59d4b8..6f36e08ed 100644 --- a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -7,10 +7,10 @@ metadata: "apiVersion": "nmstate.io/v1beta1", "kind": "NMState", "metadata": { - "name": "openshift-nmstate" + "name": "nmstate" }, "spec": { - "nodeSelector": "" + "nodeSelector": "beta.kubernetes.io/arch=amd64" } }] capabilities: Basic Install From cdf30ce407cd43afffd80fe71aa42d68f8ea6a73 Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Wed, 13 Jan 2021 22:37:28 +0000 Subject: [PATCH 12/39] UPSTREAM: : Updating openshift-kubernetes-nmstate-operator builder & base images to be consistent with ART Reconciling with https://github.com/openshift/ocp-build-data/tree/b0ab44b419faae6b18e639e780a1fa50a1df8521/images/openshift-kubernetes-nmstate-operator.yml --- build/Dockerfile.operator.openshift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index 83a975b1e..050811c38 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.svc.ci.openshift.org/ocp/4.7:base +FROM registry.ci.openshift.org/ocp/4.7:base COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/build/_output/bin/manager /usr/bin/ COPY deploy/crds/nmstate.io_nodenetwork*.yaml /bindata/kubernetes-nmstate/crds/ From bacad25b40c41de777ad17c5a4ea376931f82653 Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Wed, 13 Jan 2021 23:26:26 +0000 Subject: [PATCH 13/39] UPSTREAM: : Updating openshift-kubernetes-nmstate-handler builder & base images to be consistent with ART Reconciling with https://github.com/openshift/ocp-build-data/tree/b0ab44b419faae6b18e639e780a1fa50a1df8521/images/openshift-kubernetes-nmstate-handler.yml --- build/Dockerfile.openshift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.openshift b/build/Dockerfile.openshift index 73a972c8f..2bd3ca5de 100644 --- a/build/Dockerfile.openshift +++ b/build/Dockerfile.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.svc.ci.openshift.org/ocp/4.7:base +FROM registry.ci.openshift.org/ocp/4.7:base RUN \ microdnf -y update && \ From 44b5b2ad19ef4ef2548d22af774a7fdd1683309e Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Thu, 21 Jan 2021 13:37:20 -0500 Subject: [PATCH 14/39] Fix the example NMState instance in the manifest The example in the CSV manifest is incorrect. The nodeSelected needs to be represented as an object, not as a string. Signed-off-by: Brad P. Crochet --- ...ernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml index 6f36e08ed..291ffd354 100644 --- a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -10,7 +10,9 @@ metadata: "name": "nmstate" }, "spec": { - "nodeSelector": "beta.kubernetes.io/arch=amd64" + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } } }] capabilities: Basic Install From c00bb43c8f5ff8ab7189c34a72ade3206dae2f30 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Tue, 9 Feb 2021 08:44:39 -0500 Subject: [PATCH 15/39] Add manifests for 4.8 --- manifests/4.8/image-references | 13 ++ ...operator.v4.8.0.clusterserviceversion.yaml | 219 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.8/nmstate.io_nmstates.yaml | 73 ++++++ 4 files changed, 313 insertions(+) create mode 100644 manifests/4.8/image-references create mode 100644 manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml create mode 100644 manifests/4.8/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.8/nmstate.io_nmstates.yaml diff --git a/manifests/4.8/image-references b/manifests/4.8/image-references new file mode 100644 index 000000000..d244adaaf --- /dev/null +++ b/manifests/4.8/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.8 diff --git a/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml b/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml new file mode 100644 index 000000000..4ef153411 --- /dev/null +++ b/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml @@ -0,0 +1,219 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "nmstate" + }, + "spec": { + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + name: kubernetes-nmstate-operator.v4.8.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.8 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.8.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.8.0 diff --git a/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.8/nmstate.io_nmstates.yaml b/manifests/4.8/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.8/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] From e2c504eab3525b6fea3727d3bde0b52ac95c221e Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Thu, 1 Apr 2021 15:12:34 +0000 Subject: [PATCH 16/39] UPSTREAM: : Updating openshift-kubernetes-nmstate-operator images to be consistent with ART Reconciling with https://github.com/openshift/ocp-build-data/tree/0c10ae924af72f1c759cf8b24b50de94c02e6268/images/openshift-kubernetes-nmstate-operator.yml --- build/Dockerfile.operator.openshift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index 050811c38..e79cebf2b 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -1,9 +1,9 @@ -FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.16-openshift-4.8 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.ci.openshift.org/ocp/4.7:base +FROM registry.ci.openshift.org/ocp/4.8:base COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/build/_output/bin/manager /usr/bin/ COPY deploy/crds/nmstate.io_nodenetwork*.yaml /bindata/kubernetes-nmstate/crds/ From 09d2d1d26da9495f3fe94f98c5e348ff73ce9d48 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Wed, 25 Nov 2020 15:09:38 -0500 Subject: [PATCH 17/39] UPSTREAM: : Add midstream approvers and reviewers The internal Networking team needs to be able to approve and review. Signed-off-by: Brad P. Crochet --- OWNERS | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OWNERS b/OWNERS index dbc8528cf..f4b0f4dc7 100644 --- a/OWNERS +++ b/OWNERS @@ -3,6 +3,9 @@ approvers: - qinqon - bcrochet - rhrazdil + - yboaron + - cybertron + - celebdor reviewers: - phoracek - qinqon @@ -10,9 +13,10 @@ reviewers: - yboaron - RamLavi - rhrazdil + - cybertron + - celebdor # Bugzilla info; component: Networking -subcomponent: kubernetes-nmstate-operator -subcomponent: kubernetes-nmstate +subcomponent: kubernetes-nmstate-operator,kubernetes-nmstate From c016e6fe7ed094090d4e9d763b8112627feea3e8 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Wed, 25 Nov 2020 15:42:29 -0500 Subject: [PATCH 18/39] UPSTREAM: : Add manifests for 4.7 Signed-off-by: Brad P. Crochet --- build/Dockerfile.operator.openshift | 4 + ...mstate-operator.clusterserviceversion.yaml | 2 +- controllers/nmstate_controller.go | 4 +- controllers/nmstate_controller_test.go | 2 +- deploy/operator/operator.yaml | 2 +- manifests/4.7/image-references | 13 ++ ...operator.v4.7.0.clusterserviceversion.yaml | 219 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.7/nmstate.io_nmstates.yaml | 73 ++++++ manifests/art.yaml | 15 ++ .../kubernetes-nmstate-operator.package.yaml | 4 + metadata/annotations.yaml | 7 + 12 files changed, 348 insertions(+), 5 deletions(-) create mode 100644 manifests/4.7/image-references create mode 100644 manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml create mode 100644 manifests/4.7/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.7/nmstate.io_nmstates.yaml create mode 100644 manifests/art.yaml create mode 100644 manifests/kubernetes-nmstate-operator.package.yaml create mode 100644 metadata/annotations.yaml diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index e4a911342..5129241cc 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -12,9 +12,13 @@ COPY deploy/handler/operator.yaml /bindata/kubernetes-nmstate/handler/handler.ya COPY deploy/handler/service_account.yaml /bindata/kubernetes-nmstate/rbac/ COPY deploy/handler/role.yaml /bindata/kubernetes-nmstate/rbac/ COPY deploy/handler/role_binding.yaml /bindata/kubernetes-nmstate/rbac/ +COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/manifests /manifests +COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/metadata /metadata ENTRYPOINT ["manager"] LABEL io.k8s.display-name="kubernetes-nmstate-operator" \ io.k8s.description="Operator for Node network configuration through Kubernetes API" \ + io.openshift.tags="openshift,kubernetes-nmstate-operator" \ + com.redhat.delivery.appregistry=true \ maintainer="Yossi Boaron " diff --git a/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml b/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml index 3cf25d072..5517a6438 100644 --- a/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml +++ b/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml @@ -122,7 +122,7 @@ spec: - name: PROFILER_PORT value: "6060" - name: RUN_OPERATOR - - name: RELATED_IMAGE_HANDLER_IMAGE + - name: HANDLER_IMAGE value: quay.io/nmstate/kubernetes-nmstate-handler:latest - name: HANDLER_IMAGE_PULL_POLICY value: Always diff --git a/controllers/nmstate_controller.go b/controllers/nmstate_controller.go index 953796f6f..a9157c2e8 100644 --- a/controllers/nmstate_controller.go +++ b/controllers/nmstate_controller.go @@ -138,7 +138,7 @@ func (r *NMStateReconciler) applyNamespace(instance *nmstatev1beta1.NMState) err func (r *NMStateReconciler) applyRBAC(instance *nmstatev1beta1.NMState) error { data := render.MakeRenderData() data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE") - data.Data["HandlerImage"] = os.Getenv("RELATED_IMAGE_HANDLER_IMAGE") + data.Data["HandlerImage"] = os.Getenv("HANDLER_IMAGE") data.Data["HandlerPullPolicy"] = os.Getenv("HANDLER_IMAGE_PULL_POLICY") data.Data["HandlerPrefix"] = os.Getenv("HANDLER_PREFIX") return r.renderAndApply(instance, data, "rbac", true) @@ -165,7 +165,7 @@ func (r *NMStateReconciler) applyHandler(instance *nmstatev1beta1.NMState) error amd64AndCRNodeSelector["beta.kubernetes.io/arch"] = "amd64" data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE") - data.Data["HandlerImage"] = os.Getenv("RELATED_IMAGE_HANDLER_IMAGE") + data.Data["HandlerImage"] = os.Getenv("HANDLER_IMAGE") data.Data["HandlerPullPolicy"] = os.Getenv("HANDLER_IMAGE_PULL_POLICY") data.Data["HandlerPrefix"] = os.Getenv("HANDLER_PREFIX") data.Data["WebhookNodeSelector"] = amd64ArchOnMasterNodeSelector diff --git a/controllers/nmstate_controller_test.go b/controllers/nmstate_controller_test.go index 26784738a..ef9f18b0a 100644 --- a/controllers/nmstate_controller_test.go +++ b/controllers/nmstate_controller_test.go @@ -63,7 +63,7 @@ var _ = Describe("NMState controller reconcile", func() { reconciler.Scheme = s reconciler.Log = ctrl.Log.WithName("controllers").WithName("NMState") os.Setenv("HANDLER_NAMESPACE", handlerNamespace) - os.Setenv("RELATED_IMAGE_HANDLER_IMAGE", handlerImage) + os.Setenv("HANDLER_IMAGE", handlerImage) os.Setenv("HANDLER_IMAGE_PULL_POLICY", imagePullPolicy) os.Setenv("HANDLER_PREFIX", handlerPrefix) }) diff --git a/deploy/operator/operator.yaml b/deploy/operator/operator.yaml index ecc006d2a..5268447c0 100644 --- a/deploy/operator/operator.yaml +++ b/deploy/operator/operator.yaml @@ -44,7 +44,7 @@ spec: value: "6060" - name: RUN_OPERATOR value: "" - - name: RELATED_IMAGE_HANDLER_IMAGE + - name: HANDLER_IMAGE value: {{ .HandlerImage }} - name: HANDLER_IMAGE_PULL_POLICY value: {{ .HandlerPullPolicy }} diff --git a/manifests/4.7/image-references b/manifests/4.7/image-references new file mode 100644 index 000000000..5c6f20a0d --- /dev/null +++ b/manifests/4.7/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 \ No newline at end of file diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml new file mode 100644 index 000000000..291ffd354 --- /dev/null +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -0,0 +1,219 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "nmstate" + }, + "spec": { + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + name: kubernetes-nmstate-operator.v4.7.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.7.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.7.0 diff --git a/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.7/nmstate.io_nmstates.yaml b/manifests/4.7/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.7/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/manifests/art.yaml b/manifests/art.yaml new file mode 100644 index 000000000..19c5d1a7a --- /dev/null +++ b/manifests/art.yaml @@ -0,0 +1,15 @@ +updates: + - file: "{MAJOR}.{MINOR}/kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0.clusterserviceversion.yaml" # relative to this file + update_list: + # replace metadata.name value + - search: "kubernetesnmstateoperator.v{MAJOR}.{MINOR}.0" + replace: "kubernetesnmstateoperator.{FULL_VER}" + # replace entire version line, otherwise would replace {MAJOR}.{MINOR}.0 anywhere + - search: "version: {MAJOR}.{MINOR}.0" + replace: "version: {FULL_VER}" + - search: 'olm.skipRange: ">=4.4.0 <{MAJOR}.{MINOR}.0"' + replace: 'olm.skipRange: ">=4.4.0 <{FULL_VER}"' + - file: "kubernetes-nmstate-operator.package.yaml" + update_list: + - search: "currentCSV: kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0" + replace: "currentCSV: kubernetes-nmstate-operator.{FULL_VER}" \ No newline at end of file diff --git a/manifests/kubernetes-nmstate-operator.package.yaml b/manifests/kubernetes-nmstate-operator.package.yaml new file mode 100644 index 000000000..c4a062ac1 --- /dev/null +++ b/manifests/kubernetes-nmstate-operator.package.yaml @@ -0,0 +1,4 @@ +packageName: kubernetes-nmstate-operator +channels: + - name: "4.7" + currentCSV: kubernetes-nmstate-operator.v4.7.0 diff --git a/metadata/annotations.yaml b/metadata/annotations.yaml new file mode 100644 index 000000000..a027fcd97 --- /dev/null +++ b/metadata/annotations.yaml @@ -0,0 +1,7 @@ +annotations: + operators.operatorframework.io.bundle.channel.default.v1: "beta" + operators.operatorframework.io.bundle.channels.v1: "beta" + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: "kubernetes-nmstate-operator" From 8dfe9853492ca72fb0ffaf6e0b8fba957e811e45 Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Tue, 8 Dec 2020 01:25:42 +0000 Subject: [PATCH 19/39] UPSTREAM: : Update Dockerfile images to match ART --- build/Dockerfile.openshift | 4 ++-- build/Dockerfile.operator.openshift | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/Dockerfile.openshift b/build/Dockerfile.openshift index 4062f57d0..2bd3ca5de 100644 --- a/build/Dockerfile.openshift +++ b/build/Dockerfile.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/openshift/release:golang-1.15 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM ubi8-minimal +FROM registry.ci.openshift.org/ocp/4.7:base RUN \ microdnf -y update && \ diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index 5129241cc..050811c38 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/openshift/release:golang-1.15 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.access.redhat.com/ubi8/ubi-minimal +FROM registry.ci.openshift.org/ocp/4.7:base COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/build/_output/bin/manager /usr/bin/ COPY deploy/crds/nmstate.io_nodenetwork*.yaml /bindata/kubernetes-nmstate/crds/ From 29502d990d29a84f75d60744425c46f19476c610 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Tue, 9 Feb 2021 08:44:39 -0500 Subject: [PATCH 20/39] UPSTREAM: : Add manifests for 4.8 --- manifests/4.8/image-references | 13 ++ ...operator.v4.8.0.clusterserviceversion.yaml | 219 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.8/nmstate.io_nmstates.yaml | 73 ++++++ 4 files changed, 313 insertions(+) create mode 100644 manifests/4.8/image-references create mode 100644 manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml create mode 100644 manifests/4.8/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.8/nmstate.io_nmstates.yaml diff --git a/manifests/4.8/image-references b/manifests/4.8/image-references new file mode 100644 index 000000000..d244adaaf --- /dev/null +++ b/manifests/4.8/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.8 diff --git a/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml b/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml new file mode 100644 index 000000000..4ef153411 --- /dev/null +++ b/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml @@ -0,0 +1,219 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "nmstate" + }, + "spec": { + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + name: kubernetes-nmstate-operator.v4.8.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.8 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.8.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.8.0 diff --git a/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.8/nmstate.io_nmstates.yaml b/manifests/4.8/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.8/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] From cef5e8fe8ae7d4600bf388fb96dfa07bdc4dba0b Mon Sep 17 00:00:00 2001 From: Ben Nemec Date: Wed, 21 Apr 2021 18:23:25 -0500 Subject: [PATCH 21/39] UPSTREAM: : Add manifests to .PHONY in Makefile Without this, make sees the manifests directory we added and thinks the target is always up to date. --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 68bdad12a..c0184561a 100644 --- a/Makefile +++ b/Makefile @@ -263,4 +263,5 @@ olm-push: bundle-push index-push generate-manifests \ tools \ bundle \ - bundle-build + bundle-build \ + manifests From 647a569e4e3195433945e57449ee83963522a9a6 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Wed, 25 Nov 2020 15:09:38 -0500 Subject: [PATCH 22/39] UPSTREAM: : Add midstream approvers and reviewers The internal Networking team needs to be able to approve and review. Signed-off-by: Brad P. Crochet --- OWNERS | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OWNERS b/OWNERS index dbc8528cf..f4b0f4dc7 100644 --- a/OWNERS +++ b/OWNERS @@ -3,6 +3,9 @@ approvers: - qinqon - bcrochet - rhrazdil + - yboaron + - cybertron + - celebdor reviewers: - phoracek - qinqon @@ -10,9 +13,10 @@ reviewers: - yboaron - RamLavi - rhrazdil + - cybertron + - celebdor # Bugzilla info; component: Networking -subcomponent: kubernetes-nmstate-operator -subcomponent: kubernetes-nmstate +subcomponent: kubernetes-nmstate-operator,kubernetes-nmstate From f5a3d5a1bfa7ab75d99a9490e6984ec8db12de30 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Wed, 25 Nov 2020 15:42:29 -0500 Subject: [PATCH 23/39] UPSTREAM: : Add manifests for 4.7 Signed-off-by: Brad P. Crochet --- build/Dockerfile.operator.openshift | 4 + ...mstate-operator.clusterserviceversion.yaml | 2 +- controllers/nmstate_controller.go | 4 +- controllers/nmstate_controller_test.go | 2 +- deploy/operator/operator.yaml | 2 +- manifests/4.7/image-references | 13 ++ ...operator.v4.7.0.clusterserviceversion.yaml | 219 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.7/nmstate.io_nmstates.yaml | 73 ++++++ manifests/art.yaml | 15 ++ .../kubernetes-nmstate-operator.package.yaml | 4 + metadata/annotations.yaml | 7 + 12 files changed, 348 insertions(+), 5 deletions(-) create mode 100644 manifests/4.7/image-references create mode 100644 manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml create mode 100644 manifests/4.7/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.7/nmstate.io_nmstates.yaml create mode 100644 manifests/art.yaml create mode 100644 manifests/kubernetes-nmstate-operator.package.yaml create mode 100644 metadata/annotations.yaml diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index e4a911342..5129241cc 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -12,9 +12,13 @@ COPY deploy/handler/operator.yaml /bindata/kubernetes-nmstate/handler/handler.ya COPY deploy/handler/service_account.yaml /bindata/kubernetes-nmstate/rbac/ COPY deploy/handler/role.yaml /bindata/kubernetes-nmstate/rbac/ COPY deploy/handler/role_binding.yaml /bindata/kubernetes-nmstate/rbac/ +COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/manifests /manifests +COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/metadata /metadata ENTRYPOINT ["manager"] LABEL io.k8s.display-name="kubernetes-nmstate-operator" \ io.k8s.description="Operator for Node network configuration through Kubernetes API" \ + io.openshift.tags="openshift,kubernetes-nmstate-operator" \ + com.redhat.delivery.appregistry=true \ maintainer="Yossi Boaron " diff --git a/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml b/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml index 3cf25d072..5517a6438 100644 --- a/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml +++ b/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml @@ -122,7 +122,7 @@ spec: - name: PROFILER_PORT value: "6060" - name: RUN_OPERATOR - - name: RELATED_IMAGE_HANDLER_IMAGE + - name: HANDLER_IMAGE value: quay.io/nmstate/kubernetes-nmstate-handler:latest - name: HANDLER_IMAGE_PULL_POLICY value: Always diff --git a/controllers/nmstate_controller.go b/controllers/nmstate_controller.go index 953796f6f..a9157c2e8 100644 --- a/controllers/nmstate_controller.go +++ b/controllers/nmstate_controller.go @@ -138,7 +138,7 @@ func (r *NMStateReconciler) applyNamespace(instance *nmstatev1beta1.NMState) err func (r *NMStateReconciler) applyRBAC(instance *nmstatev1beta1.NMState) error { data := render.MakeRenderData() data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE") - data.Data["HandlerImage"] = os.Getenv("RELATED_IMAGE_HANDLER_IMAGE") + data.Data["HandlerImage"] = os.Getenv("HANDLER_IMAGE") data.Data["HandlerPullPolicy"] = os.Getenv("HANDLER_IMAGE_PULL_POLICY") data.Data["HandlerPrefix"] = os.Getenv("HANDLER_PREFIX") return r.renderAndApply(instance, data, "rbac", true) @@ -165,7 +165,7 @@ func (r *NMStateReconciler) applyHandler(instance *nmstatev1beta1.NMState) error amd64AndCRNodeSelector["beta.kubernetes.io/arch"] = "amd64" data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE") - data.Data["HandlerImage"] = os.Getenv("RELATED_IMAGE_HANDLER_IMAGE") + data.Data["HandlerImage"] = os.Getenv("HANDLER_IMAGE") data.Data["HandlerPullPolicy"] = os.Getenv("HANDLER_IMAGE_PULL_POLICY") data.Data["HandlerPrefix"] = os.Getenv("HANDLER_PREFIX") data.Data["WebhookNodeSelector"] = amd64ArchOnMasterNodeSelector diff --git a/controllers/nmstate_controller_test.go b/controllers/nmstate_controller_test.go index 26784738a..ef9f18b0a 100644 --- a/controllers/nmstate_controller_test.go +++ b/controllers/nmstate_controller_test.go @@ -63,7 +63,7 @@ var _ = Describe("NMState controller reconcile", func() { reconciler.Scheme = s reconciler.Log = ctrl.Log.WithName("controllers").WithName("NMState") os.Setenv("HANDLER_NAMESPACE", handlerNamespace) - os.Setenv("RELATED_IMAGE_HANDLER_IMAGE", handlerImage) + os.Setenv("HANDLER_IMAGE", handlerImage) os.Setenv("HANDLER_IMAGE_PULL_POLICY", imagePullPolicy) os.Setenv("HANDLER_PREFIX", handlerPrefix) }) diff --git a/deploy/operator/operator.yaml b/deploy/operator/operator.yaml index ecc006d2a..5268447c0 100644 --- a/deploy/operator/operator.yaml +++ b/deploy/operator/operator.yaml @@ -44,7 +44,7 @@ spec: value: "6060" - name: RUN_OPERATOR value: "" - - name: RELATED_IMAGE_HANDLER_IMAGE + - name: HANDLER_IMAGE value: {{ .HandlerImage }} - name: HANDLER_IMAGE_PULL_POLICY value: {{ .HandlerPullPolicy }} diff --git a/manifests/4.7/image-references b/manifests/4.7/image-references new file mode 100644 index 000000000..5c6f20a0d --- /dev/null +++ b/manifests/4.7/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 \ No newline at end of file diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml new file mode 100644 index 000000000..291ffd354 --- /dev/null +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -0,0 +1,219 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "nmstate" + }, + "spec": { + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + name: kubernetes-nmstate-operator.v4.7.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.7.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.7.0 diff --git a/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.7/nmstate.io_nmstates.yaml b/manifests/4.7/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.7/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/manifests/art.yaml b/manifests/art.yaml new file mode 100644 index 000000000..19c5d1a7a --- /dev/null +++ b/manifests/art.yaml @@ -0,0 +1,15 @@ +updates: + - file: "{MAJOR}.{MINOR}/kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0.clusterserviceversion.yaml" # relative to this file + update_list: + # replace metadata.name value + - search: "kubernetesnmstateoperator.v{MAJOR}.{MINOR}.0" + replace: "kubernetesnmstateoperator.{FULL_VER}" + # replace entire version line, otherwise would replace {MAJOR}.{MINOR}.0 anywhere + - search: "version: {MAJOR}.{MINOR}.0" + replace: "version: {FULL_VER}" + - search: 'olm.skipRange: ">=4.4.0 <{MAJOR}.{MINOR}.0"' + replace: 'olm.skipRange: ">=4.4.0 <{FULL_VER}"' + - file: "kubernetes-nmstate-operator.package.yaml" + update_list: + - search: "currentCSV: kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0" + replace: "currentCSV: kubernetes-nmstate-operator.{FULL_VER}" \ No newline at end of file diff --git a/manifests/kubernetes-nmstate-operator.package.yaml b/manifests/kubernetes-nmstate-operator.package.yaml new file mode 100644 index 000000000..c4a062ac1 --- /dev/null +++ b/manifests/kubernetes-nmstate-operator.package.yaml @@ -0,0 +1,4 @@ +packageName: kubernetes-nmstate-operator +channels: + - name: "4.7" + currentCSV: kubernetes-nmstate-operator.v4.7.0 diff --git a/metadata/annotations.yaml b/metadata/annotations.yaml new file mode 100644 index 000000000..a027fcd97 --- /dev/null +++ b/metadata/annotations.yaml @@ -0,0 +1,7 @@ +annotations: + operators.operatorframework.io.bundle.channel.default.v1: "beta" + operators.operatorframework.io.bundle.channels.v1: "beta" + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: "kubernetes-nmstate-operator" From 1d55cc8ce2147d74828eabececb8d8ab25962dea Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Tue, 8 Dec 2020 01:25:42 +0000 Subject: [PATCH 24/39] UPSTREAM: : Update Dockerfile images to match ART --- build/Dockerfile.openshift | 4 ++-- build/Dockerfile.operator.openshift | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/Dockerfile.openshift b/build/Dockerfile.openshift index 4062f57d0..2bd3ca5de 100644 --- a/build/Dockerfile.openshift +++ b/build/Dockerfile.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/openshift/release:golang-1.15 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM ubi8-minimal +FROM registry.ci.openshift.org/ocp/4.7:base RUN \ microdnf -y update && \ diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index 5129241cc..050811c38 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/openshift/release:golang-1.15 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.access.redhat.com/ubi8/ubi-minimal +FROM registry.ci.openshift.org/ocp/4.7:base COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/build/_output/bin/manager /usr/bin/ COPY deploy/crds/nmstate.io_nodenetwork*.yaml /bindata/kubernetes-nmstate/crds/ From 4d19528e7de9164df141d2eb8edee06e10260fb2 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Tue, 9 Feb 2021 08:44:39 -0500 Subject: [PATCH 25/39] UPSTREAM: : Add manifests for 4.8 --- manifests/4.8/image-references | 13 ++ ...operator.v4.8.0.clusterserviceversion.yaml | 219 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.8/nmstate.io_nmstates.yaml | 73 ++++++ 4 files changed, 313 insertions(+) create mode 100644 manifests/4.8/image-references create mode 100644 manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml create mode 100644 manifests/4.8/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.8/nmstate.io_nmstates.yaml diff --git a/manifests/4.8/image-references b/manifests/4.8/image-references new file mode 100644 index 000000000..d244adaaf --- /dev/null +++ b/manifests/4.8/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.8 diff --git a/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml b/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml new file mode 100644 index 000000000..4ef153411 --- /dev/null +++ b/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml @@ -0,0 +1,219 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "nmstate" + }, + "spec": { + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + name: kubernetes-nmstate-operator.v4.8.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.8 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.8.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.8.0 diff --git a/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.8/nmstate.io_nmstates.yaml b/manifests/4.8/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.8/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] From de92fbcfd3b030a7e52345800e284c4005404d0d Mon Sep 17 00:00:00 2001 From: Ben Nemec Date: Wed, 26 May 2021 09:34:10 -0500 Subject: [PATCH 26/39] UPSTREAM: : Change handler toleration to "operator: exists" (#755) Since nmstate is to be used for configuration of the network infrastructure, we want the handler to run on all nodes regardless of taint. If a network config should not run on a given node, the NNCP nodeSelector field can be used to accomplish that. For example, a node with a taint of: [map[effect:NoSchedule key:node.ocs.openshift.io/storage value:true]] will currently keep the nmstate handler pod from running there. However, that is not desirable since it prevents the use of nmstate to configure networking on that storage node. This changes the handler toleration to "operator: exists", which will allow the handler to run on all nodes. The webhook toleration is left alone since there is no need for that to be running on nodes with a NoSchedule taint. Signed-off-by: Ben Nemec (cherry picked from commit b2bccf90bfe0ce03a0090c9d9e45af17276d5021) --- controllers/nmstate_controller.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/controllers/nmstate_controller.go b/controllers/nmstate_controller.go index a9157c2e8..79330d4d5 100644 --- a/controllers/nmstate_controller.go +++ b/controllers/nmstate_controller.go @@ -154,6 +154,10 @@ func (r *NMStateReconciler) applyHandler(instance *nmstatev1beta1.NMState) error Operator: corev1.TolerationOpExists, Effect: corev1.TaintEffectNoSchedule, } + operatorExistsToleration := corev1.Toleration{ + Key: "", + Operator: corev1.TolerationOpExists, + } amd64ArchOnMasterNodeSelector := map[string]string{ "beta.kubernetes.io/arch": "amd64", "node-role.kubernetes.io/master": "", @@ -172,7 +176,7 @@ func (r *NMStateReconciler) applyHandler(instance *nmstatev1beta1.NMState) error data.Data["WebhookTolerations"] = []corev1.Toleration{masterExistsNoScheduleToleration} data.Data["WebhookAffinity"] = corev1.Affinity{} data.Data["HandlerNodeSelector"] = amd64AndCRNodeSelector - data.Data["HandlerTolerations"] = []corev1.Toleration{masterExistsNoScheduleToleration} + data.Data["HandlerTolerations"] = []corev1.Toleration{operatorExistsToleration} data.Data["HandlerAffinity"] = corev1.Affinity{} // TODO: This is just a place holder to make template renderer happy // proper variable has to be read from env or CR From 5e90b40f47896e24cb70410909f91dc24227fc3d Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Tue, 8 Jun 2021 18:30:45 +0000 Subject: [PATCH 27/39] UPSTREAM: : Updating openshift-kubernetes-nmstate-operator images to be consistent with ART Reconciling with https://github.com/openshift/ocp-build-data/tree/470a288987196788cf6f1986517ad3c4cc33a0d0/images/openshift-kubernetes-nmstate-operator.yml --- build/Dockerfile.operator.openshift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index 050811c38..e79cebf2b 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -1,9 +1,9 @@ -FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.16-openshift-4.8 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.ci.openshift.org/ocp/4.7:base +FROM registry.ci.openshift.org/ocp/4.8:base COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/build/_output/bin/manager /usr/bin/ COPY deploy/crds/nmstate.io_nodenetwork*.yaml /bindata/kubernetes-nmstate/crds/ From 74b48217e14b8b5b744c6ed1a8ff636c8e266580 Mon Sep 17 00:00:00 2001 From: openshift-ci-robot Date: Mon, 14 Jun 2021 23:52:45 +0000 Subject: [PATCH 28/39] Updating .ci-operator.yaml `build_root_image` from openshift/release This is an autogenerated PR that updates the `.ci-operator.yaml` to reference the `build_root_image` found in the [ci-operator-config](https://github.com/openshift/release/tree/master/ci-operator/config) in the [openshift/release](https://github.com/openshift/release) repository. This is done in preparation for enabling reading the `build_root` from your repository rather than the central config in [openshift/release](https://github.com/openshift/release). This allows to update the `build_root` in lockstep with code changes. For details, please refer to the [docs](https://docs.ci.openshift.org/docs/architecture/ci-operator/#build-root-image). Note that enabling this feature is mandatory for all OCP components that have an ART build config. A second autogenerated PR to the [openshift/release repository](https://github.com/openshift/release) will enable reading the `build_root` from your repository once this PR was merged. If you have any questions, please feel free to reach out in the #forum-testplatform channel in the CoreOS Slack. --- .ci-operator.yaml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .ci-operator.yaml diff --git a/.ci-operator.yaml b/.ci-operator.yaml new file mode 100644 index 000000000..3a61bcb38 --- /dev/null +++ b/.ci-operator.yaml @@ -0,0 +1,4 @@ +build_root_image: + name: release + namespace: openshift + tag: golang-1.13 From 191e42d737e4cef2a727b474ef8159f9bbfc5da7 Mon Sep 17 00:00:00 2001 From: thiagoalessio Date: Wed, 16 Jun 2021 13:14:20 +0200 Subject: [PATCH 29/39] release-4.9-olm-manifests --- build/Dockerfile.operator.openshift | 4 +- manifests/4.9/image-references | 13 ++ ...operator.v4.9.0.clusterserviceversion.yaml | 219 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.9/nmstate.io_nmstates.yaml | 73 ++++++ 5 files changed, 315 insertions(+), 2 deletions(-) create mode 100644 manifests/4.9/image-references create mode 100644 manifests/4.9/kubernetes-nmstate-operator.v4.9.0.clusterserviceversion.yaml create mode 100644 manifests/4.9/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.9/nmstate.io_nmstates.yaml diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index e79cebf2b..36e61f872 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -1,9 +1,9 @@ -FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.16-openshift-4.8 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.16-openshift-4.9 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.ci.openshift.org/ocp/4.8:base +FROM registry.ci.openshift.org/ocp/4.9:base COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/build/_output/bin/manager /usr/bin/ COPY deploy/crds/nmstate.io_nodenetwork*.yaml /bindata/kubernetes-nmstate/crds/ diff --git a/manifests/4.9/image-references b/manifests/4.9/image-references new file mode 100644 index 000000000..a5c8c1a38 --- /dev/null +++ b/manifests/4.9/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.9 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.9 diff --git a/manifests/4.9/kubernetes-nmstate-operator.v4.9.0.clusterserviceversion.yaml b/manifests/4.9/kubernetes-nmstate-operator.v4.9.0.clusterserviceversion.yaml new file mode 100644 index 000000000..e9fbe19cc --- /dev/null +++ b/manifests/4.9/kubernetes-nmstate-operator.v4.9.0.clusterserviceversion.yaml @@ -0,0 +1,219 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "nmstate" + }, + "spec": { + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.9 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + name: kubernetes-nmstate-operator.v4.9.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.9 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.9 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.9.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.9.0 diff --git a/manifests/4.9/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.9/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.9/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.9/nmstate.io_nmstates.yaml b/manifests/4.9/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.9/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] From 5cdf4105d0b4c2ead357df6c8cc198ea9b282826 Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Wed, 16 Jun 2021 21:17:38 +0000 Subject: [PATCH 30/39] UPSTREAM: : Updating openshift-kubernetes-nmstate-handler images to be consistent with ART Reconciling with https://github.com/openshift/ocp-build-data/tree/691e628254f318ce56efda5edc7448ec743c37b8/images/openshift-kubernetes-nmstate-handler.yml --- build/Dockerfile.openshift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.openshift b/build/Dockerfile.openshift index 2bd3ca5de..c42694b85 100644 --- a/build/Dockerfile.openshift +++ b/build/Dockerfile.openshift @@ -1,9 +1,9 @@ -FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.7 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.16-openshift-4.9 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.ci.openshift.org/ocp/4.7:base +FROM registry.ci.openshift.org/ocp/4.9:base RUN \ microdnf -y update && \ From 5e928562ec43c32cd7933ad7c0c6069d9fc29d86 Mon Sep 17 00:00:00 2001 From: thiagoalessio Date: Fri, 23 Jul 2021 12:44:31 +0200 Subject: [PATCH 31/39] Set default bundle channel to 4.9 --- manifests/kubernetes-nmstate-operator.package.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/kubernetes-nmstate-operator.package.yaml b/manifests/kubernetes-nmstate-operator.package.yaml index c4a062ac1..cdaaa4b83 100644 --- a/manifests/kubernetes-nmstate-operator.package.yaml +++ b/manifests/kubernetes-nmstate-operator.package.yaml @@ -1,4 +1,4 @@ packageName: kubernetes-nmstate-operator channels: - - name: "4.7" - currentCSV: kubernetes-nmstate-operator.v4.7.0 + - name: "4.9" + currentCSV: kubernetes-nmstate-operator.v4.9.0 From 716911dda1f49628040c043bc2c9f9e7fce9c43a Mon Sep 17 00:00:00 2001 From: Ben Nemec Date: Fri, 30 Jul 2021 11:34:40 -0500 Subject: [PATCH 32/39] Remove Brad and Toni from reviewers They're now focused on other things so we don't want them auto-assigned to PRs in this repo. --- OWNERS | 2 -- 1 file changed, 2 deletions(-) diff --git a/OWNERS b/OWNERS index f4b0f4dc7..ab26eb0e9 100644 --- a/OWNERS +++ b/OWNERS @@ -9,12 +9,10 @@ approvers: reviewers: - phoracek - qinqon - - bcrochet - yboaron - RamLavi - rhrazdil - cybertron - - celebdor # Bugzilla info; component: Networking From a8301ec2b6ae554baf49487ad044d329093b6336 Mon Sep 17 00:00:00 2001 From: Justin Pierce Date: Wed, 4 Aug 2021 11:03:02 -0400 Subject: [PATCH 33/39] name replacement must exactly match string in CSV --- manifests/art.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/manifests/art.yaml b/manifests/art.yaml index 19c5d1a7a..741691666 100644 --- a/manifests/art.yaml +++ b/manifests/art.yaml @@ -2,8 +2,8 @@ updates: - file: "{MAJOR}.{MINOR}/kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0.clusterserviceversion.yaml" # relative to this file update_list: # replace metadata.name value - - search: "kubernetesnmstateoperator.v{MAJOR}.{MINOR}.0" - replace: "kubernetesnmstateoperator.{FULL_VER}" + - search: "kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0" + replace: "kubernetes-nmstate-operator.{FULL_VER}" # replace entire version line, otherwise would replace {MAJOR}.{MINOR}.0 anywhere - search: "version: {MAJOR}.{MINOR}.0" replace: "version: {FULL_VER}" @@ -12,4 +12,4 @@ updates: - file: "kubernetes-nmstate-operator.package.yaml" update_list: - search: "currentCSV: kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0" - replace: "currentCSV: kubernetes-nmstate-operator.{FULL_VER}" \ No newline at end of file + replace: "currentCSV: kubernetes-nmstate-operator.{FULL_VER}" From 8b7ee34ca89a0469e5d0c55e3b62ac8b4323d894 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Wed, 25 Nov 2020 15:09:38 -0500 Subject: [PATCH 34/39] UPSTREAM: : Add midstream approvers and reviewers The internal Networking team needs to be able to approve and review. Signed-off-by: Brad P. Crochet --- OWNERS | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OWNERS b/OWNERS index 363159b6a..eaf430d6c 100644 --- a/OWNERS +++ b/OWNERS @@ -2,15 +2,19 @@ approvers: - phoracek - qinqon - rhrazdil + - yboaron + - cybertron + - celebdor reviewers: - phoracek - qinqon - yboaron - RamLavi - rhrazdil + - cybertron + - celebdor # Bugzilla info; component: Networking -subcomponent: kubernetes-nmstate-operator -subcomponent: kubernetes-nmstate +subcomponent: kubernetes-nmstate-operator,kubernetes-nmstate From eface15a82e1c19363fedb74d5675b516218fab0 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Wed, 25 Nov 2020 15:42:29 -0500 Subject: [PATCH 35/39] UPSTREAM: : Add manifests for 4.7 Signed-off-by: Brad P. Crochet --- build/Dockerfile.operator.openshift | 4 + ...mstate-operator.clusterserviceversion.yaml | 2 +- controllers/nmstate_controller.go | 4 +- controllers/nmstate_controller_test.go | 2 +- deploy/operator/operator.yaml | 2 +- manifests/4.7/image-references | 13 ++ ...operator.v4.7.0.clusterserviceversion.yaml | 219 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.7/nmstate.io_nmstates.yaml | 73 ++++++ manifests/art.yaml | 15 ++ .../kubernetes-nmstate-operator.package.yaml | 4 + metadata/annotations.yaml | 7 + 12 files changed, 348 insertions(+), 5 deletions(-) create mode 100644 manifests/4.7/image-references create mode 100644 manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml create mode 100644 manifests/4.7/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.7/nmstate.io_nmstates.yaml create mode 100644 manifests/art.yaml create mode 100644 manifests/kubernetes-nmstate-operator.package.yaml create mode 100644 metadata/annotations.yaml diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index e4a911342..5129241cc 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -12,9 +12,13 @@ COPY deploy/handler/operator.yaml /bindata/kubernetes-nmstate/handler/handler.ya COPY deploy/handler/service_account.yaml /bindata/kubernetes-nmstate/rbac/ COPY deploy/handler/role.yaml /bindata/kubernetes-nmstate/rbac/ COPY deploy/handler/role_binding.yaml /bindata/kubernetes-nmstate/rbac/ +COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/manifests /manifests +COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/metadata /metadata ENTRYPOINT ["manager"] LABEL io.k8s.display-name="kubernetes-nmstate-operator" \ io.k8s.description="Operator for Node network configuration through Kubernetes API" \ + io.openshift.tags="openshift,kubernetes-nmstate-operator" \ + com.redhat.delivery.appregistry=true \ maintainer="Yossi Boaron " diff --git a/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml b/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml index 3cf25d072..5517a6438 100644 --- a/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml +++ b/bundle/manifests/kubernetes-nmstate-operator.clusterserviceversion.yaml @@ -122,7 +122,7 @@ spec: - name: PROFILER_PORT value: "6060" - name: RUN_OPERATOR - - name: RELATED_IMAGE_HANDLER_IMAGE + - name: HANDLER_IMAGE value: quay.io/nmstate/kubernetes-nmstate-handler:latest - name: HANDLER_IMAGE_PULL_POLICY value: Always diff --git a/controllers/nmstate_controller.go b/controllers/nmstate_controller.go index 3b73444cf..3f4bec6ec 100644 --- a/controllers/nmstate_controller.go +++ b/controllers/nmstate_controller.go @@ -138,7 +138,7 @@ func (r *NMStateReconciler) applyNamespace(instance *nmstatev1beta1.NMState) err func (r *NMStateReconciler) applyRBAC(instance *nmstatev1beta1.NMState) error { data := render.MakeRenderData() data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE") - data.Data["HandlerImage"] = os.Getenv("RELATED_IMAGE_HANDLER_IMAGE") + data.Data["HandlerImage"] = os.Getenv("HANDLER_IMAGE") data.Data["HandlerPullPolicy"] = os.Getenv("HANDLER_IMAGE_PULL_POLICY") data.Data["HandlerPrefix"] = os.Getenv("HANDLER_PREFIX") return r.renderAndApply(instance, data, "rbac", true) @@ -176,7 +176,7 @@ func (r *NMStateReconciler) applyHandler(instance *nmstatev1beta1.NMState) error const WEBHOOK_REPLICAS = int32(2) data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE") - data.Data["HandlerImage"] = os.Getenv("RELATED_IMAGE_HANDLER_IMAGE") + data.Data["HandlerImage"] = os.Getenv("HANDLER_IMAGE") data.Data["HandlerPullPolicy"] = os.Getenv("HANDLER_IMAGE_PULL_POLICY") data.Data["HandlerPrefix"] = os.Getenv("HANDLER_PREFIX") data.Data["WebhookNodeSelector"] = amd64ArchOnMasterNodeSelector diff --git a/controllers/nmstate_controller_test.go b/controllers/nmstate_controller_test.go index e406cac2c..eeb85dcba 100644 --- a/controllers/nmstate_controller_test.go +++ b/controllers/nmstate_controller_test.go @@ -72,7 +72,7 @@ var _ = Describe("NMState controller reconcile", func() { reconciler.Scheme = s reconciler.Log = ctrl.Log.WithName("controllers").WithName("NMState") os.Setenv("HANDLER_NAMESPACE", handlerNamespace) - os.Setenv("RELATED_IMAGE_HANDLER_IMAGE", handlerImage) + os.Setenv("HANDLER_IMAGE", handlerImage) os.Setenv("HANDLER_IMAGE_PULL_POLICY", imagePullPolicy) os.Setenv("HANDLER_PREFIX", handlerPrefix) }) diff --git a/deploy/operator/operator.yaml b/deploy/operator/operator.yaml index ecc006d2a..5268447c0 100644 --- a/deploy/operator/operator.yaml +++ b/deploy/operator/operator.yaml @@ -44,7 +44,7 @@ spec: value: "6060" - name: RUN_OPERATOR value: "" - - name: RELATED_IMAGE_HANDLER_IMAGE + - name: HANDLER_IMAGE value: {{ .HandlerImage }} - name: HANDLER_IMAGE_PULL_POLICY value: {{ .HandlerPullPolicy }} diff --git a/manifests/4.7/image-references b/manifests/4.7/image-references new file mode 100644 index 000000000..5c6f20a0d --- /dev/null +++ b/manifests/4.7/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 \ No newline at end of file diff --git a/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml new file mode 100644 index 000000000..291ffd354 --- /dev/null +++ b/manifests/4.7/kubernetes-nmstate-operator.v4.7.0.clusterserviceversion.yaml @@ -0,0 +1,219 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "nmstate" + }, + "spec": { + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + name: kubernetes-nmstate-operator.v4.7.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.7 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.7 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.7.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.7.0 diff --git a/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.7/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.7/nmstate.io_nmstates.yaml b/manifests/4.7/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.7/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/manifests/art.yaml b/manifests/art.yaml new file mode 100644 index 000000000..19c5d1a7a --- /dev/null +++ b/manifests/art.yaml @@ -0,0 +1,15 @@ +updates: + - file: "{MAJOR}.{MINOR}/kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0.clusterserviceversion.yaml" # relative to this file + update_list: + # replace metadata.name value + - search: "kubernetesnmstateoperator.v{MAJOR}.{MINOR}.0" + replace: "kubernetesnmstateoperator.{FULL_VER}" + # replace entire version line, otherwise would replace {MAJOR}.{MINOR}.0 anywhere + - search: "version: {MAJOR}.{MINOR}.0" + replace: "version: {FULL_VER}" + - search: 'olm.skipRange: ">=4.4.0 <{MAJOR}.{MINOR}.0"' + replace: 'olm.skipRange: ">=4.4.0 <{FULL_VER}"' + - file: "kubernetes-nmstate-operator.package.yaml" + update_list: + - search: "currentCSV: kubernetes-nmstate-operator.v{MAJOR}.{MINOR}.0" + replace: "currentCSV: kubernetes-nmstate-operator.{FULL_VER}" \ No newline at end of file diff --git a/manifests/kubernetes-nmstate-operator.package.yaml b/manifests/kubernetes-nmstate-operator.package.yaml new file mode 100644 index 000000000..c4a062ac1 --- /dev/null +++ b/manifests/kubernetes-nmstate-operator.package.yaml @@ -0,0 +1,4 @@ +packageName: kubernetes-nmstate-operator +channels: + - name: "4.7" + currentCSV: kubernetes-nmstate-operator.v4.7.0 diff --git a/metadata/annotations.yaml b/metadata/annotations.yaml new file mode 100644 index 000000000..a027fcd97 --- /dev/null +++ b/metadata/annotations.yaml @@ -0,0 +1,7 @@ +annotations: + operators.operatorframework.io.bundle.channel.default.v1: "beta" + operators.operatorframework.io.bundle.channels.v1: "beta" + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: "kubernetes-nmstate-operator" From 54928f56653267efd65b06b97931d8c308e6d0fb Mon Sep 17 00:00:00 2001 From: AOS Automation Release Team Date: Tue, 8 Dec 2020 01:25:42 +0000 Subject: [PATCH 36/39] UPSTREAM: : Update Dockerfile images to match ART --- .ci-operator.yaml | 4 ++++ build/Dockerfile.openshift | 4 ++-- build/Dockerfile.operator.openshift | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 .ci-operator.yaml diff --git a/.ci-operator.yaml b/.ci-operator.yaml new file mode 100644 index 000000000..3a61bcb38 --- /dev/null +++ b/.ci-operator.yaml @@ -0,0 +1,4 @@ +build_root_image: + name: release + namespace: openshift + tag: golang-1.13 diff --git a/build/Dockerfile.openshift b/build/Dockerfile.openshift index 4062f57d0..c42694b85 100644 --- a/build/Dockerfile.openshift +++ b/build/Dockerfile.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/openshift/release:golang-1.15 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.16-openshift-4.9 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM ubi8-minimal +FROM registry.ci.openshift.org/ocp/4.9:base RUN \ microdnf -y update && \ diff --git a/build/Dockerfile.operator.openshift b/build/Dockerfile.operator.openshift index 5129241cc..36e61f872 100644 --- a/build/Dockerfile.operator.openshift +++ b/build/Dockerfile.operator.openshift @@ -1,9 +1,9 @@ -FROM registry.svc.ci.openshift.org/openshift/release:golang-1.15 AS builder +FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.16-openshift-4.9 AS builder WORKDIR /go/src/github.com/openshift/kubernetes-nmstate COPY . . RUN GO111MODULE=on go build --mod=vendor -o build/_output/bin/manager main.go -FROM registry.access.redhat.com/ubi8/ubi-minimal +FROM registry.ci.openshift.org/ocp/4.9:base COPY --from=builder /go/src/github.com/openshift/kubernetes-nmstate/build/_output/bin/manager /usr/bin/ COPY deploy/crds/nmstate.io_nodenetwork*.yaml /bindata/kubernetes-nmstate/crds/ From b9128be13ed161a901d66ffdbff64752335d40f8 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Tue, 9 Feb 2021 08:44:39 -0500 Subject: [PATCH 37/39] UPSTREAM: : Add manifests for 4.8 --- manifests/4.8/image-references | 13 ++ ...operator.v4.8.0.clusterserviceversion.yaml | 219 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.8/nmstate.io_nmstates.yaml | 73 ++++++ 4 files changed, 313 insertions(+) create mode 100644 manifests/4.8/image-references create mode 100644 manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml create mode 100644 manifests/4.8/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.8/nmstate.io_nmstates.yaml diff --git a/manifests/4.8/image-references b/manifests/4.8/image-references new file mode 100644 index 000000000..d244adaaf --- /dev/null +++ b/manifests/4.8/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.8 diff --git a/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml b/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml new file mode 100644 index 000000000..4ef153411 --- /dev/null +++ b/manifests/4.8/kubernetes-nmstate-operator.v4.8.0.clusterserviceversion.yaml @@ -0,0 +1,219 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "nmstate" + }, + "spec": { + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + name: kubernetes-nmstate-operator.v4.8.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.8 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.8 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.8.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.8.0 diff --git a/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.8/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.8/nmstate.io_nmstates.yaml b/manifests/4.8/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.8/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] From 933a6288ed2a85109f2dd6fe5aedcccfdbb738df Mon Sep 17 00:00:00 2001 From: thiagoalessio Date: Wed, 16 Jun 2021 13:14:20 +0200 Subject: [PATCH 38/39] UPSTREAM: : Add manifests for 4.9 --- manifests/4.9/image-references | 13 ++ ...operator.v4.9.0.clusterserviceversion.yaml | 219 ++++++++++++++++++ .../nmstate-operator_v1_serviceaccount.yaml | 8 + manifests/4.9/nmstate.io_nmstates.yaml | 73 ++++++ .../kubernetes-nmstate-operator.package.yaml | 4 +- 5 files changed, 315 insertions(+), 2 deletions(-) create mode 100644 manifests/4.9/image-references create mode 100644 manifests/4.9/kubernetes-nmstate-operator.v4.9.0.clusterserviceversion.yaml create mode 100644 manifests/4.9/nmstate-operator_v1_serviceaccount.yaml create mode 100644 manifests/4.9/nmstate.io_nmstates.yaml diff --git a/manifests/4.9/image-references b/manifests/4.9/image-references new file mode 100644 index 000000000..a5c8c1a38 --- /dev/null +++ b/manifests/4.9/image-references @@ -0,0 +1,13 @@ +--- +kind: ImageStream +apiVersion: image.openshift.io/v1 +spec: + tags: + - name: kubernetes-nmstate-operator + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-operator:4.9 + - name: kubernetes-nmstate-handler + from: + kind: DockerImage + name: quay.io/openshift/origin-kubernetes-nmstate-handler:4.9 diff --git a/manifests/4.9/kubernetes-nmstate-operator.v4.9.0.clusterserviceversion.yaml b/manifests/4.9/kubernetes-nmstate-operator.v4.9.0.clusterserviceversion.yaml new file mode 100644 index 000000000..e9fbe19cc --- /dev/null +++ b/manifests/4.9/kubernetes-nmstate-operator.v4.9.0.clusterserviceversion.yaml @@ -0,0 +1,219 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [{ + "apiVersion": "nmstate.io/v1beta1", + "kind": "NMState", + "metadata": { + "name": "nmstate" + }, + "spec": { + "nodeSelector": { + "beta.kubernetes.io/arch": "amd64" + } + } + }] + capabilities: Basic Install + certified: "false" + categories: OpenShift Optional + description: | + Kubernetes NMState is a declaritive means of configuring NetworkManager. + containerImage: quay.io/openshift/origin-kubernetes-nmstate-operator:4.9 + createdAt: 2020-011-12 17:13:03 + olm.skipRange: ">=4.3.0-0 < 4.7.0-0" + support: Red Hat, Inc. + repository: https://github.com/openshift/kubernetes-nmstate + name: kubernetes-nmstate-operator.v4.9.0 + namespace: openshift-nmstate +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: NMState + name: nmstates.nmstate.io + version: v1beta1 + description: Represents an NMState deployment. + displayName: NMState + description: A Kubernetes Operator to install Kubernetes NMState + displayName: Kubernetes NMState Operator + icon: + - base64data: >- + PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzkuNDcgMTMzLjg4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFkNTZkODt9LmNscy0ye2ZpbGw6IzcwYWRlZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNy41MSwxMTMuNjhhNi41LDYuNSwwLDAsMC00LjMtMS4zMywxMS43LDExLjcsMCwwLDAtMy42MS41MUExMy42NywxMy42NywwLDAsMCw2LjksMTE0djE5YTUuMTgsNS4xOCwwLDAsMS0uNzYuMjMsNC40MSw0LjQxLDAsMCwxLTEuMTIuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE0LjI0YTMuMjMsMy4yMywwLDAsMSwuNDMtMS43Niw0LjU5LDQuNTksMCwwLDEsMS41LTEuMzUsMTUuMTgsMTUuMTgsMCwwLDEsMy41MS0xLjQ3LDE3LjExLDE3LjExLDAsMCwxLDQuOTQtLjY3LDExLjU2LDExLjU2LDAsMCwxLDcuMywyLjA5cTIuNjcsMi4wOCwyLjY3LDYuNTZ2MTUuNDJhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODNWMTE3Ljg1QTUuMDksNS4wOSwwLDAsMCwxNy41MSwxMTMuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTkuMjEsMTEzLjUyYTUuODMsNS44MywwLDAsMC0zLjgyLTEuMTcsOC41Nyw4LjU3LDAsMCwwLTUuOSwyLjM0LDcuNzMsNy43MywwLDAsMSwuMywyLjE5djE2LjE4YTUuMiw1LjIsMCwwLDEtLjc4LjIzLDQuNDgsNC40OCwwLDAsMS0xLjEuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRhNC40OCw0LjQ4LDAsMCwwLTEuNDItMy42Nyw1LjkyLDUuOTIsMCwwLDAtMy44Ny0xLjE3LDkuMjYsOS4yNiwwLDAsMC0zLjA4LjUxQTExLjUxLDExLjUxLDAsMCwwLDM0Ljg5LDExNHYxOWE1LjM5LDUuMzksMCwwLDEtLjc3LjIzLDQuMzYsNC4zNiwwLDAsMS0xLjEyLjEzYy0xLjQ2LDAtMi4xOC0uNjEtMi4xOC0xLjgzVjExNC4yNGEzLjE1LDMuMTUsMCwwLDEsLjQzLTEuNzEsNSw1LDAsMCwxLDEuNS0xLjRBMTUuNzUsMTUuNzUsMCwwLDEsNDAuNDgsMTA5YTEyLjQzLDEyLjQzLDAsMCwxLDQuNDMuNzQsNi43Miw2LjcyLDAsMCwxLDMsMiwxMS4yOCwxMS4yOCwwLDAsMSwzLjMxLTJBMTIuMjksMTIuMjksMCwwLDEsNTUuNywxMDlhMTAuMjMsMTAuMjMsMCwwLDEsNi41NiwycTIuNDUsMiwyLjQ0LDZ2MTYuMDhhNSw1LDAsMCwxLS43OS4yMyw0LjQsNC40LDAsMCwxLTEuMDkuMTNxLTIuMTksMC0yLjE5LTEuODN2LTE0LjRBNC40OCw0LjQ4LDAsMCwwLDU5LjIxLDExMy41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04OC45MiwxMjYuOTFBNiw2LDAsMCwxLDg2LjUzLDEzMnEtMi4zOSwxLjg0LTYuOTIsMS44NGExOCwxOCwwLDAsMS0zLjU2LS4zMywxMi41OCwxMi41OCwwLDAsMS0yLjc3LS44Nyw1LjU1LDUuNTUsMCwwLDEtMS43OC0xLjIyLDIsMiwwLDAsMS0uNjQtMS40LDIuMjUsMi4yNSwwLDAsMSwuMzMtMS4xNywyLjg4LDIuODgsMCwwLDEsMS0xLDE2LjMxLDE2LjMxLDAsMCwwLDMuMjEsMS44MSwxMC4zNywxMC4zNywwLDAsMCw0LjE3Ljc5cTUuMywwLDUuMjktMy41NmMwLTEuOTQtMS4xNy0zLjE5LTMuNTEtMy43N0w3Ny4xMiwxMjJhOS4xMyw5LjEzLDAsMCwxLTQuNTMtMi4zNyw1LjY1LDUuNjUsMCwwLDEtMS40Mi00LDYuMTksNi4xOSwwLDAsMSwuNTMtMi41NEE1Ljc1LDUuNzUsMCwwLDEsNzMuMzUsMTExYTguMzEsOC4zMSwwLDAsMSwyLjc4LTEuNDVBMTIuNTYsMTIuNTYsMCwwLDEsODAsMTA5LDEzLjQsMTMuNCwwLDAsMSw4NS43NywxMTBjMS40Ni42OSwyLjE5LDEuNSwyLjE5LDIuNDFhMi4wNiwyLjA2LDAsMCwxLTEuMjIsMS45NCwxNS43NywxNS43NywwLDAsMC0yLjYtMS4zMiwxMCwxMCwwLDAsMC00LS43Miw2LjY3LDYuNjcsMCwwLDAtMy42NC44NywyLjczLDIuNzMsMCwwLDAtMS4zNCwyLjQ0LDIuNzcsMi43NywwLDAsMCwuNzYsMiw0LjkxLDQuOTEsMCwwLDAsMi41NCwxLjIzbDMuNTEuODZhMTEuMDgsMTEuMDgsMCwwLDEsNS4xOSwyLjU3QTYuMTUsNi4xNSwwLDAsMSw4OC45MiwxMjYuOTFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjEyLDEzMy44M2E5LjczLDkuNzMsMCwwLDEtNS43Ny0xLjU4cS0yLjIyLTEuNTgtMi4yMi01LjI0VjEwMi44NGE1LDUsMCwwLDEsLjc5LS4yMyw0LjY5LDQuNjksMCwwLDEsMS4xNC0uMTNjMS40MywwLDIuMTQuNjEsMi4xNCwxLjgzdjUuODVoOC4zNWE0LjI3LDQuMjcsMCwwLDEsLjMuNjksMi44NSwyLjg1LDAsMCwxLC4xNS45NGMwLDEuMTYtLjUsMS43My0xLjUyLDEuNzNIOTkuMnYxMy4yM2EzLjMyLDMuMzIsMCwwLDAsMS4xNSwyLjg4LDUuMzgsNS4zOCwwLDAsMCwzLjIzLjg0LDYuODgsNi44OCwwLDAsMCwxLjkzLS4zMSw3LjkzLDcuOTMsMCwwLDAsMS43OC0uNzEsMy4yNiwzLjI2LDAsMCwxLC41Ni43NiwyLjE3LDIuMTcsMCwwLDEsLjI2LDEuMDcsMi4wOCwyLjA4LDAsMCwxLTEuMzMsMS44M0E3LjcxLDcuNzEsMCwwLDEsMTAzLjEyLDEzMy44M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNjYsMTA5YTExLjMsMTEuMywwLDAsMSw3LDJxMi41OSwyLDIuNiw2LjI2VjEyOS4zYTIuODIsMi44MiwwLDAsMS0uNDQsMS43LDQuMzcsNC4zNywwLDAsMS0xLjI5LDEuMSwxMy4zMSwxMy4zMSwwLDAsMS0zLjIzLDEuMjQsMTcuOSwxNy45LDAsMCwxLTQuNjEuNTRxLTQuNzgsMC03LjQtMS44OWE2LjI3LDYuMjcsMCwwLDEtMi42Mi01LjQ0LDYsNiwwLDAsMSwyLjE4LTUuMDYsMTEuODEsMTEuODEsMCwwLDEsNi4xNi0yLjExbDcuMjMtLjcydi0xLjQyYTQuMzgsNC4zOCwwLDAsMC0xLjUzLTMuNzIsNi42MSw2LjYxLDAsMCwwLTQuMTItMS4xNywxMy4xMiwxMy4xMiwwLDAsMC00LC42MSwyMi4xMSwyMi4xMSwwLDAsMC0zLjM2LDEuMzgsNC44Niw0Ljg2LDAsMCwxLS43NC0uODIsMS42NywxLjY3LDAsMCwxLS4zMy0xLDEuODIsMS44MiwwLDAsMSwuMzYtMS4xNywzLjMsMy4zLDAsMCwxLDEuMTItLjg3LDEyLjQsMTIuNCwwLDAsMSwzLjE1LTEuMDlBMTguMTIsMTguMTIsMCwwLDEsMTIyLjY2LDEwOVptMCwyMS41M2ExMi41OCwxMi41OCwwLDAsMCwzLjU0LS40Myw4LjQ4LDguNDgsMCwwLDAsMi0uODR2LTcuMzhsLTYuMzEuNjZhNy44OSw3Ljg5LDAsMCwwLTMuOTIsMS4yLDMuMjEsMy4yMSwwLDAsMC0xLjI3LDIuNzcsMy40NCwzLjQ0LDAsMCwwLDEuNDcsM0E3Ljg2LDcuODYsMCwwLDAsMTIyLjcxLDEzMC41MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNDcuNzQsMTMzLjgzYTkuNzUsOS43NSwwLDAsMS01Ljc3LTEuNThjLTEuNDgtMS4wNS0yLjIxLTIuOC0yLjIxLTUuMjRWMTAyLjg0YTQuODYsNC44NiwwLDAsMSwuNzgtLjIzLDQuNzEsNC43MSwwLDAsMSwxLjE1LS4xM2MxLjQyLDAsMi4xNC42MSwyLjE0LDEuODN2NS44NWg4LjM0YTQuMiw0LjIsMCwwLDEsLjMxLjY5LDIuODUsMi44NSwwLDAsMSwuMTUuOTRjMCwxLjE2LS41MSwxLjczLTEuNTMsMS43M2gtNy4yN3YxMy4yM2EzLjM1LDMuMzUsMCwwLDAsMS4xNCwyLjg4LDUuNCw1LjQsMCwwLDAsMy4yMy44NCw3LDcsMCwwLDAsMS45NC0uMzEsOC4xMyw4LjEzLDAsMCwwLDEuNzgtLjcxLDMuNTcsMy41NywwLDAsMSwuNTYuNzYsMi4xNywyLjE3LDAsMCwxLC4yNSwxLjA3LDIuMDgsMi4wOCwwLDAsMS0xLjMyLDEuODNBNy43Niw3Ljc2LDAsMCwxLDE0Ny43NCwxMzMuODNaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTYwLjc3LDEyMy44cTEuMzgsNi42Nyw4Ljc1LDYuNjdhMTAuMTUsMTAuMTUsMCwwLDAsMy44Ny0uNzEsMTEuNzEsMTEuNzEsMCwwLDAsMi43NS0xLjUzLDIuMTYsMi4xNiwwLDAsMSwxLjIyLDEuOTMsMiwyLDAsMCwxLS42NCwxLjM4LDUuNjksNS42OSwwLDAsMS0xLjczLDEuMTcsMTEuNDksMTEuNDksMCwwLDEtMi41NC44MSwxNS40NSwxNS40NSwwLDAsMS0zLjEzLjMxcS01LjkxLDAtOS4zNC0zLjIxdC0zLjQzLTkuMzZhMTQuNzksMTQuNzksMCwwLDEsLjg0LTUuMTcsMTEuMDcsMTEuMDcsMCwwLDEsMi4zNC0zLjg0LDEwLDEwLDAsMCwxLDMuNTktMi40MiwxMiwxMiwwLDAsMSw0LjUyLS44NCwxMS40MSwxMS40MSwwLDAsMSw0LjIzLjc3LDkuNjgsOS42OCwwLDAsMSwzLjMzLDIuMTYsMTAuMTcsMTAuMTcsMCwwLDEsMi4xOSwzLjMxLDExLDExLDAsMCwxLC43OSw0LjIsMi4xMywyLjEzLDAsMCwxLS41MSwxLjYsMi4zNywyLjM3LDAsMCwxLTEuNDMuNThabTctMTEuNWE2Ljc3LDYuNzcsMCwwLDAtNS4xNCwyLjE2LDkuMDYsOS4wNiwwLDAsMC0yLjEzLDYuMTlsMTQtMS45NGE3LjQ1LDcuNDUsMCwwLDAtMi00LjZBNi4yMSw2LjIxLDAsMCwwLDE2Ny43OSwxMTIuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02Ni45MiwxMy4xM3Y5LjM5YzEuMjctLjA5LDIuNTQtLjE2LDMuODMtLjJWMTEuMzloLS4zM2E4My4yOSw4My4yOSwwLDAsMSwzMy4yNC03LjU0VjI3LjEyYzEuMy40NCwyLjU3LjkxLDMuODMsMS40VjMuODVBODMsODMsMCwwLDEsMTQxLjk0LDEyVjU1Ljc3aDMuODNWMTRjMTYuOCw5LjQyLDI4LjIsMjQuNTksMjkuNjgsNDEuODloMy44NEMxNzYuODMsMjQuNzMsMTQ0LjcxLDAsMTA1LjU4LDBjLTI2LDAtNDguODQsMTAuODktNjIsMjcuMzEsMi4yNy0uNzksNC42LTEuNDksNy0yLjExQTY3LjI4LDY3LjI4LDAsMCwxLDY2LjkyLDEzLjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0NC42OSw1OS42MWE1My44NCw1My44NCwwLDAsMSw2Ljc5LDIyLjY5bDI4LTIyLjZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQ3LjgxLDg0LjMzYTUwLjM5LDUwLjM5LDAsMCwwLTcuNTQtMjQuNzNjLTctMTEuNTktMTguNTgtMjEuMDgtMzIuNzgtMjctMS4yNS0uNTItMi41My0xLTMuODMtMS40OEE4OC42LDg4LjYsMCwwLDAsNzMuOSwyNi4wOWMtMS4wNSwwLTIuMTEsMC0zLjE1LjA2LTEuMjksMC0yLjU2LjExLTMuODMuMjFhODcuNTgsODcuNTgsMCwwLDAtMjEuMDgsNC4yMWMtMi4xNS43Mi00LjI0LDEuNTEtNi4yOSwyLjM4QzE2LjU4LDQyLjc1LjY3LDYyLjA1LDAsODQuMzN2MS4yNWMwLDEuMjIuNywxLjgzLDIuMDksMS44M2E0LDQsMCwwLDAsMS4wNy0uMTMsNC41OCw0LjU4LDAsMCwwLC43My0uMjNWODQuMzNoMGMwLS40NywwLS45My4wNi0xLjQuMDktMS40My4yNS0yLjg0LjQ3LTQuMjRhNDUuNzQsNDUuNzQsMCwwLDEsMS42NS02Ljg0QzYuNSw3MC41MSw3LDY5LjIsNy41NCw2Ny45Yy4zNy0uODcuNzctMS43MiwxLjE4LTIuNTdhNTIuNzksNTIuNzksMCwwLDEsMi44MS00Ljk1LDU1LjYxLDU1LjYxLDAsMCwxLDUuMjctNi45MWMuMzItLjM2LjY2LS43MiwxLTEuMDgsMS0xLjA4LDIuMDctMi4xMiwzLjE3LTMuMTRzMi4yNS0yLDMuNDQtMi45NHEyLjM3LTEuOTEsNS0zLjYxYy44Ny0uNTcsMS43NS0xLjEzLDIuNjUtMS42Ni40NS0uMjcuOS0uNTQsMS4zNi0uOGwxLjg2LTF2NDUuMWgwdjEuMjVjMCwxLjIyLjY5LDEuODMsMi4wOSwxLjgzYTQsNCwwLDAsMCwxLjA3LS4xMyw1LjM5LDUuMzksMCwwLDAsLjczLS4yM1Y4NC4zM2gwbDAtMjVWMzcuNDloLS4zM2wxLjgtLjgyYy41My0uMjMsMS4wOC0uNDQsMS42Mi0uNjZzLjkzLS4zOSwxLjQtLjU3cTIuMy0uODgsNC42OC0xLjY0YTg0LjY2LDg0LjY2LDAsMCwxLDE4LjY4LTMuNTljMS4yNy0uMSwyLjU0LS4xNywzLjgzLS4yMmwxLjI0LDBWNTkuNDJsLS4wNiwyNC45MWgwdjEuMjVjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDUsNSwwLDAsMCwuNzMtLjIzVjg0LjMzaDBWMjkuOTRBODUuMDUsODUuMDUsMCwwLDEsOTkuNTYsMzMuOGMxLjM5LjQ0LDIuNzYuOTIsNC4xLDEuNDMuMi4wNy4zOS4xMy41OC4yMSwxLC4zOSwyLC44LDMsMS4yM2wuMjMuMTFjLjkxLjQsMS44Mi44MSwyLjcxLDEuMjRsLjA3LDBWODQuMzNoMHYxLjI1YS4yMi4yMiwwLDAsMCwwLC4wOHYuMTRoMGMuMDgsMS4wNy43NywxLjYxLDIuMDcsMS42MWE0LDQsMCwwLDAsMS4wNy0uMTMsNSw1LDAsMCwwLC43My0uMjNWODQuMzNoMGwtLjA2LTI0LjhWNDAuMDZsLjMzLjE4LDEuMzcuOGMuODkuNTMsMS43OCwxLjA5LDIuNjQsMS42NnEyLjU5LDEuNzEsNSwzLjYxYzEuMTkuOTQsMi4zMywxLjkzLDMuNDQsMi45NFMxMjksNTEuMzEsMTMwLDUyLjM5bDEsMS4wOGE1NS4wNiw1NS4wNiwwLDAsMSw0Ljc0LDYuMTJsLjUyLjc5YTUwLjY0LDUwLjY0LDAsMCwxLDIuODEsNC45NWMuNDIuODUuODEsMS43LDEuMTgsMi41Ny41NSwxLjMsMS4wNSwyLjYxLDEuNDgsMy45NWE0NS43MSw0NS43MSwwLDAsMSwxLjY0LDYuODQsNDIuNjIsNDIuNjIsMCwwLDEsLjQ4LDQuMjRjMCwuNjEsMCwxLjIzLjA2LDEuODV2LjhjMCwxLjIyLjcsMS44MywyLjA5LDEuODNhNCw0LDAsMCwwLDEuMDctLjEzLDQuNTgsNC41OCwwLDAsMCwuNzMtLjIzVjg0LjMzWiIvPjwvZz48L2c+PC9zdmc+ + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - nmstate.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + - configmaps + - namespaces + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-operator + deployments: + - name: nmstate-operator + spec: + replicas: 1 + selector: + matchLabels: + name: kubernetes-nmstate-operator + strategy: {} + template: + metadata: + labels: + app: kubernetes-nmstate-operator + name: kubernetes-nmstate-operator + spec: + containers: + - args: + - --v=production + command: + - manager + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: kubernetes-nmstate-operator + - name: ENABLE_PROFILER + value: "False" + - name: PROFILER_PORT + value: "6060" + - name: RUN_OPERATOR + - name: HANDLER_IMAGE + value: quay.io/openshift/origin-kubernetes-nmstate-handler:4.9 + - name: HANDLER_IMAGE_PULL_POLICY + value: Always + - name: HANDLER_NAMESPACE + value: openshift-nmstate + image: quay.io/openshift/origin-kubernetes-nmstate-operator:4.9 + imagePullPolicy: Always + name: nmstate-operator + resources: {} + nodeSelector: + node-role.kubernetes.io/master: "" + serviceAccountName: nmstate-operator + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + permissions: + - rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - pods + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - '*' + serviceAccountName: nmstate-operator + - rules: + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - use + resourceNames: + - privileged + serviceAccountName: nmstate-handler + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nmstate + - networking + - NetworkManager + links: + - name: Kubernetes Nmstate Operator + url: https://github.com/nmstate/kubernetes-nmstate + maintainers: + - email: support@redhat.com + name: Red Hat + maturity: beta + provider: + name: Red Hat, Inc. + selector: + matchLabels: + name: kubernetes-nmstate-operator + version: 4.9.0 + labels: + olm-owner-enterprise-app: kubernetes-nmstate-operator + olm-status-descriptors: kubernetes-nmstate-operator.v4.9.0 diff --git a/manifests/4.9/nmstate-operator_v1_serviceaccount.yaml b/manifests/4.9/nmstate-operator_v1_serviceaccount.yaml new file mode 100644 index 000000000..c41ae47fd --- /dev/null +++ b/manifests/4.9/nmstate-operator_v1_serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + creationTimestamp: null + labels: + nmstate.io: "" + name: nmstate-operator + diff --git a/manifests/4.9/nmstate.io_nmstates.yaml b/manifests/4.9/nmstate.io_nmstates.yaml new file mode 100644 index 000000000..462bb9896 --- /dev/null +++ b/manifests/4.9/nmstate.io_nmstates.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: nmstates.nmstate.io +spec: + group: nmstate.io + names: + kind: NMState + listKind: NMStateList + plural: nmstates + singular: nmstate + scope: Cluster + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: NMState is the Schema for the nmstates API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NMStateSpec defines the desired state of NMState + properties: + nodeSelector: + additionalProperties: + type: string + description: NodeSelector is an optional selector that will be added to handler DaemonSet manifest for both workers and masters (https://github.com/nmstate/kubernetes-nmstate/blob/master/deploy/handler/operator.yaml). If NodeSelector is specified, the handler will run only on nodes that have each of the indicated key-value pairs as labels applied to the node. + type: object + type: object + status: + description: NMStateStatus defines the observed state of NMState + properties: + conditions: + items: + properties: + lastHearbeatTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/manifests/kubernetes-nmstate-operator.package.yaml b/manifests/kubernetes-nmstate-operator.package.yaml index c4a062ac1..cdaaa4b83 100644 --- a/manifests/kubernetes-nmstate-operator.package.yaml +++ b/manifests/kubernetes-nmstate-operator.package.yaml @@ -1,4 +1,4 @@ packageName: kubernetes-nmstate-operator channels: - - name: "4.7" - currentCSV: kubernetes-nmstate-operator.v4.7.0 + - name: "4.9" + currentCSV: kubernetes-nmstate-operator.v4.9.0 From c0fd1a9258dd393ac601eef383f613e35fb54161 Mon Sep 17 00:00:00 2001 From: Ben Nemec Date: Wed, 21 Apr 2021 18:23:25 -0500 Subject: [PATCH 39/39] UPSTREAM: : Add manifests to .PHONY in Makefile Without this, make sees the manifests directory we added and thinks the target is always up to date. --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fe6c39965..d12915737 100644 --- a/Makefile +++ b/Makefile @@ -250,4 +250,5 @@ olm-push: bundle-push index-push generate-manifests \ tools \ bundle \ - bundle-build + bundle-build \ + manifests