From 7f1fc71dbf7287163e3f99a602ea3c1d64cf17b7 Mon Sep 17 00:00:00 2001 From: Nicolas Trangez Date: Thu, 17 Dec 2020 17:30:23 +0000 Subject: [PATCH 1/6] Move `kustomization.yaml` into its layer, `deploy/base` --- kustomization.yaml => deploy/base/kustomization.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename kustomization.yaml => deploy/base/kustomization.yaml (96%) diff --git a/kustomization.yaml b/deploy/base/kustomization.yaml similarity index 96% rename from kustomization.yaml rename to deploy/base/kustomization.yaml index 0d2ba6d..ac342fa 100644 --- a/kustomization.yaml +++ b/deploy/base/kustomization.yaml @@ -25,10 +25,10 @@ resources: - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-api/master/crds/objectstorage.k8s.io_bucketrequests.yaml - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-api/master/crds/objectstorage.k8s.io_buckets.yaml # Controller -- deploy/base/ns.yaml -- deploy/base/sa.yaml -- deploy/base/rbac.yaml -- deploy/base/deployment.yaml +- ns.yaml +- sa.yaml +- rbac.yaml +- deployment.yaml # Sidecar - https://raw.githubusercontent.com/container-object-storage-interface/cosi-provisioner-sidecar/master/examples/object-storage-sidecar.yaml From 2a599bb8b5a75cc9ae0cfa7c603cfaa937d0579d Mon Sep 17 00:00:00 2001 From: Nicolas Trangez Date: Thu, 17 Dec 2020 17:32:48 +0000 Subject: [PATCH 2/6] deploy: don't override images The images names/tags are properly encoded in the base manifests, no need to override them through a Kustomization. --- deploy/base/kustomization.yaml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/deploy/base/kustomization.yaml b/deploy/base/kustomization.yaml index ac342fa..1125dca 100644 --- a/deploy/base/kustomization.yaml +++ b/deploy/base/kustomization.yaml @@ -2,20 +2,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -images: -# Controller -- name: objectstorage-controller - newName: quay.io/containerobjectstorage/objectstorage-controller - newTag: latest -# Sidecar -- name: object-storage-sidecar - newName: quay.io/containerobjectstorage/object-storage-sidecar - newTag: latest -# Sample Driver -- name: sample-driver - newName: quay.io/containerobjectstorage/sample-driver - newTag: latest - resources: # CRDs - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-api/master/crds/objectstorage.k8s.io_bucketaccessclasses.yaml From 912611a0f7c50e072e83b3fe8c6806b86cf3c95c Mon Sep 17 00:00:00 2001 From: Nicolas Trangez Date: Thu, 17 Dec 2020 17:37:09 +0000 Subject: [PATCH 3/6] deploy: don't use `IfNotPresent` `imagePullPolicy` for `latest` images --- deploy/base/kustomization.yaml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/deploy/base/kustomization.yaml b/deploy/base/kustomization.yaml index 1125dca..296f7ec 100644 --- a/deploy/base/kustomization.yaml +++ b/deploy/base/kustomization.yaml @@ -28,25 +28,11 @@ patches: value: controller-gen.kubebuilder.io/version: (devel) api-approved.kubernetes.io: https://github.com/kubernetes-sigs/container-object-storage-interface-api/pull/2 -# Controller -- target: - kind: Deployment - name: objectstorage-controller - patch: |- - - op: replace - path: /spec/template/spec/containers/0/imagePullPolicy - value: IfNotPresent # Sidecar - target: kind: Deployment name: object-storage-provisioner patch: |- - - op: replace - path: /spec/template/spec/containers/0/imagePullPolicy - value: IfNotPresent - - op: replace - path: /spec/template/spec/containers/1/imagePullPolicy - value: IfNotPresent - op: replace path: /metadata value: From b5e4dc3c0e9d63b6a3e1da467d2a06974caf8781 Mon Sep 17 00:00:00 2001 From: Nicolas Trangez Date: Thu, 17 Dec 2020 17:50:19 +0000 Subject: [PATCH 4/6] deploy: create `fullstack` Kustomize layer This deploys the controller (base layer) as well as the provisioner. End result remains the same. --- deploy/base/kustomization.yaml | 25 --------------------- deploy/fullstack/kustomization.yaml | 35 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 25 deletions(-) create mode 100644 deploy/fullstack/kustomization.yaml diff --git a/deploy/base/kustomization.yaml b/deploy/base/kustomization.yaml index 296f7ec..37a1da2 100644 --- a/deploy/base/kustomization.yaml +++ b/deploy/base/kustomization.yaml @@ -15,8 +15,6 @@ resources: - sa.yaml - rbac.yaml - deployment.yaml -# Sidecar -- https://raw.githubusercontent.com/container-object-storage-interface/cosi-provisioner-sidecar/master/examples/object-storage-sidecar.yaml patches: # CRDs @@ -28,26 +26,3 @@ patches: value: controller-gen.kubebuilder.io/version: (devel) api-approved.kubernetes.io: https://github.com/kubernetes-sigs/container-object-storage-interface-api/pull/2 -# Sidecar -- target: - kind: Deployment - name: object-storage-provisioner - patch: |- - - op: replace - path: /metadata - value: - name: object-storage-provisioner - labels: - app: object-storage-provisioner - namespace: objectstorage-provisioner-ns -- target: - kind: Secret - name: object-storage-provisioner - patch: |- - - op: replace - path: /metadata - value: - name: object-storage-provisioner - labels: - app: object-storage-provisioner - namespace: objectstorage-provisioner-ns diff --git a/deploy/fullstack/kustomization.yaml b/deploy/fullstack/kustomization.yaml new file mode 100644 index 0000000..8804e9d --- /dev/null +++ b/deploy/fullstack/kustomization.yaml @@ -0,0 +1,35 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +bases: +- ../base/ + +resources: +# Sidecar +- https://raw.githubusercontent.com/container-object-storage-interface/cosi-provisioner-sidecar/master/examples/object-storage-sidecar.yaml + +patches: +# Sidecar +- target: + kind: Deployment + name: object-storage-provisioner + patch: |- + - op: replace + path: /metadata + value: + name: object-storage-provisioner + labels: + app: object-storage-provisioner + namespace: objectstorage-provisioner-ns +- target: + kind: Secret + name: object-storage-provisioner + patch: |- + - op: replace + path: /metadata + value: + name: object-storage-provisioner + labels: + app: object-storage-provisioner + namespace: objectstorage-provisioner-ns From e8242ea5f0c951470213cf5ef77ee7f565b14571 Mon Sep 17 00:00:00 2001 From: Nicolas Trangez Date: Thu, 17 Dec 2020 17:58:06 +0000 Subject: [PATCH 5/6] deploy: add some common labels to all objects Closes: https://github.com/kubernetes-sigs/container-object-storage-interface-controller/issues/23 See: https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/#labels --- deploy/base/deployment.yaml | 14 ++++++++++++-- deploy/base/rbac.yaml | 20 ++++++++++++++++++++ deploy/base/sa.yaml | 5 +++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/deploy/base/deployment.yaml b/deploy/base/deployment.yaml index c33295b..aac96e5 100644 --- a/deploy/base/deployment.yaml +++ b/deploy/base/deployment.yaml @@ -4,6 +4,11 @@ apiVersion: apps/v1 metadata: name: objectstorage-controller namespace: objectstorage-system + labels: + app.kubernetes.io/part-of: container-object-storage-interface + app.kubernetes.io/component: controller + app.kubernetes.io/version: main + app.kubernetes.io/name: container-object-storage-interface-controller spec: replicas: 1 strategy: @@ -12,11 +17,16 @@ spec: maxSurge: 1 selector: matchLabels: - app: objectstorage-controller + app.kubernetes.io/part-of: container-object-storage-interface + app.kubernetes.io/component: controller + app.kubernetes.io/name: container-object-storage-interface-controller template: metadata: labels: - app: objectstorage-controller + app.kubernetes.io/part-of: container-object-storage-interface + app.kubernetes.io/component: controller + app.kubernetes.io/version: main + app.kubernetes.io/name: container-object-storage-interface-controller spec: serviceAccountName: objectstorage-controller-sa containers: diff --git a/deploy/base/rbac.yaml b/deploy/base/rbac.yaml index 1051b69..bed8aca 100644 --- a/deploy/base/rbac.yaml +++ b/deploy/base/rbac.yaml @@ -3,6 +3,11 @@ kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: objectstorage-controller-role + labels: + app.kubernetes.io/part-of: container-object-storage-interface + app.kubernetes.io/component: controller + app.kubernetes.io/version: main + app.kubernetes.io/name: container-object-storage-interface-controller rules: - apiGroups: ["objectstorage.k8s.io"] resources: ["bucketrequests", "bucketaccessrequests"] @@ -21,6 +26,11 @@ kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: system:objectstorage-controller + labels: + app.kubernetes.io/part-of: container-object-storage-interface + app.kubernetes.io/component: controller + app.kubernetes.io/version: main + app.kubernetes.io/name: container-object-storage-interface-controller subjects: - kind: ServiceAccount name: objectstorage-controller-sa @@ -35,6 +45,11 @@ apiVersion: rbac.authorization.k8s.io/v1 metadata: name: objectstorage-controller namespace: objectstorage-system + labels: + app.kubernetes.io/part-of: container-object-storage-interface + app.kubernetes.io/component: controller + app.kubernetes.io/version: main + app.kubernetes.io/name: container-object-storage-interface-controller rules: - apiGroups: ["coordination.k8s.io"] resources: ["leases"] @@ -45,6 +60,11 @@ apiVersion: rbac.authorization.k8s.io/v1 metadata: name: objectstorage-controller namespace: objectstorage-system + labels: + app.kubernetes.io/part-of: container-object-storage-interface + app.kubernetes.io/component: controller + app.kubernetes.io/version: main + app.kubernetes.io/name: container-object-storage-interface-controller subjects: - kind: ServiceAccount name: objectstorage-controller-sa diff --git a/deploy/base/sa.yaml b/deploy/base/sa.yaml index 802dbb8..8146d50 100644 --- a/deploy/base/sa.yaml +++ b/deploy/base/sa.yaml @@ -4,3 +4,8 @@ kind: ServiceAccount metadata: name: objectstorage-controller-sa namespace: objectstorage-system + labels: + app.kubernetes.io/part-of: container-object-storage-interface + app.kubernetes.io/component: controller + app.kubernetes.io/version: main + app.kubernetes.io/name: container-object-storage-interface-controller From 6d19b4912d7f9d0be35f241c706d8ec72c1369c9 Mon Sep 17 00:00:00 2001 From: Nicolas Trangez Date: Thu, 17 Dec 2020 18:30:29 +0000 Subject: [PATCH 6/6] deploy: restore namespace handling in `fullstack` overlay This patch removes hard-coded namespaces from the `base` layer, then creates the `objectstorage-system` and `objectstorage-provisioner-ns` Namespaces in the `fullstack` overlay, and uses them accordingly. Closes: https://github.com/kubernetes-sigs/container-object-storage-interface-controller/issues/22 --- deploy/base/deployment.yaml | 1 - deploy/base/kustomization.yaml | 1 - deploy/base/rbac.yaml | 4 --- deploy/base/sa.yaml | 1 - .../fullstack/controller/kustomization.yaml | 12 +++++++ deploy/{base => fullstack/controller}/ns.yaml | 0 deploy/fullstack/kustomization.yaml | 32 ++----------------- .../fullstack/provisioner/kustomization.yaml | 11 +++++++ deploy/fullstack/provisioner/ns.yaml | 5 +++ 9 files changed, 30 insertions(+), 37 deletions(-) create mode 100644 deploy/fullstack/controller/kustomization.yaml rename deploy/{base => fullstack/controller}/ns.yaml (100%) create mode 100644 deploy/fullstack/provisioner/kustomization.yaml create mode 100644 deploy/fullstack/provisioner/ns.yaml diff --git a/deploy/base/deployment.yaml b/deploy/base/deployment.yaml index aac96e5..30c0922 100644 --- a/deploy/base/deployment.yaml +++ b/deploy/base/deployment.yaml @@ -3,7 +3,6 @@ kind: Deployment apiVersion: apps/v1 metadata: name: objectstorage-controller - namespace: objectstorage-system labels: app.kubernetes.io/part-of: container-object-storage-interface app.kubernetes.io/component: controller diff --git a/deploy/base/kustomization.yaml b/deploy/base/kustomization.yaml index 37a1da2..1d7e8e5 100644 --- a/deploy/base/kustomization.yaml +++ b/deploy/base/kustomization.yaml @@ -11,7 +11,6 @@ resources: - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-api/master/crds/objectstorage.k8s.io_bucketrequests.yaml - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-api/master/crds/objectstorage.k8s.io_buckets.yaml # Controller -- ns.yaml - sa.yaml - rbac.yaml - deployment.yaml diff --git a/deploy/base/rbac.yaml b/deploy/base/rbac.yaml index bed8aca..fc60d1b 100644 --- a/deploy/base/rbac.yaml +++ b/deploy/base/rbac.yaml @@ -34,7 +34,6 @@ metadata: subjects: - kind: ServiceAccount name: objectstorage-controller-sa - namespace: objectstorage-system roleRef: kind: ClusterRole name: objectstorage-controller-role @@ -44,7 +43,6 @@ kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: objectstorage-controller - namespace: objectstorage-system labels: app.kubernetes.io/part-of: container-object-storage-interface app.kubernetes.io/component: controller @@ -59,7 +57,6 @@ kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: objectstorage-controller - namespace: objectstorage-system labels: app.kubernetes.io/part-of: container-object-storage-interface app.kubernetes.io/component: controller @@ -68,7 +65,6 @@ metadata: subjects: - kind: ServiceAccount name: objectstorage-controller-sa - namespace: objectstorage-system roleRef: kind: Role name: objectstorage-controller diff --git a/deploy/base/sa.yaml b/deploy/base/sa.yaml index 8146d50..f6cf10d 100644 --- a/deploy/base/sa.yaml +++ b/deploy/base/sa.yaml @@ -3,7 +3,6 @@ apiVersion: v1 kind: ServiceAccount metadata: name: objectstorage-controller-sa - namespace: objectstorage-system labels: app.kubernetes.io/part-of: container-object-storage-interface app.kubernetes.io/component: controller diff --git a/deploy/fullstack/controller/kustomization.yaml b/deploy/fullstack/controller/kustomization.yaml new file mode 100644 index 0000000..9a10331 --- /dev/null +++ b/deploy/fullstack/controller/kustomization.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: objectstorage-system + +bases: +- ../../base/ + +resources: +# Namespace +- ns.yaml diff --git a/deploy/base/ns.yaml b/deploy/fullstack/controller/ns.yaml similarity index 100% rename from deploy/base/ns.yaml rename to deploy/fullstack/controller/ns.yaml diff --git a/deploy/fullstack/kustomization.yaml b/deploy/fullstack/kustomization.yaml index 8804e9d..787fc8d 100644 --- a/deploy/fullstack/kustomization.yaml +++ b/deploy/fullstack/kustomization.yaml @@ -3,33 +3,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization bases: -- ../base/ - -resources: -# Sidecar -- https://raw.githubusercontent.com/container-object-storage-interface/cosi-provisioner-sidecar/master/examples/object-storage-sidecar.yaml - -patches: -# Sidecar -- target: - kind: Deployment - name: object-storage-provisioner - patch: |- - - op: replace - path: /metadata - value: - name: object-storage-provisioner - labels: - app: object-storage-provisioner - namespace: objectstorage-provisioner-ns -- target: - kind: Secret - name: object-storage-provisioner - patch: |- - - op: replace - path: /metadata - value: - name: object-storage-provisioner - labels: - app: object-storage-provisioner - namespace: objectstorage-provisioner-ns +- ./controller +- ./provisioner diff --git a/deploy/fullstack/provisioner/kustomization.yaml b/deploy/fullstack/provisioner/kustomization.yaml new file mode 100644 index 0000000..81f1f2e --- /dev/null +++ b/deploy/fullstack/provisioner/kustomization.yaml @@ -0,0 +1,11 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: objectstorage-provisioner-ns + +resources: +# Namespace +- ns.yaml +# Sidecar +- https://raw.githubusercontent.com/container-object-storage-interface/cosi-provisioner-sidecar/master/examples/object-storage-sidecar.yaml diff --git a/deploy/fullstack/provisioner/ns.yaml b/deploy/fullstack/provisioner/ns.yaml new file mode 100644 index 0000000..04eb2ff --- /dev/null +++ b/deploy/fullstack/provisioner/ns.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: objectstorage-provisioner-ns