From 165afcaec6a00f82515e5aa53fd28639313d43e4 Mon Sep 17 00:00:00 2001 From: Simon Croome Date: Tue, 13 Jul 2021 13:39:46 +0100 Subject: [PATCH] Prep for v2.4.2 (#343) * Prep for v2.4.2 * Revert formatting changes --- Makefile | 4 +- README.md | 2 +- build/Dockerfile | 2 +- build/rhel-build-service/Dockerfile | 2 +- ...orageosoperator.clusterserviceversion.yaml | 13 +- deploy/olm/community-changes.yaml | 10 +- .../storageos.clusterserviceversion.yaml | 12 +- ...torageos.v2.4.2.clusterserviceversion.yaml | 691 ++++++++++++++++++ deploy/olm/package-changes.yaml | 2 +- deploy/olm/rhel-changes.yaml | 10 +- .../storageos.clusterserviceversion.yaml | 12 +- deploy/olm/storageos/storageos.package.yaml | 2 +- ...torageos.v2.4.2.clusterserviceversion.yaml | 647 ++++++++++++++++ deploy/storageos-operators.configmap.yaml | 2 +- internal/pkg/image/image.go | 2 +- 15 files changed, 1373 insertions(+), 40 deletions(-) create mode 100644 deploy/olm/csv-rhel/storageos.v2.4.2.clusterserviceversion.yaml create mode 100644 deploy/olm/storageos/storageos.v2.4.2.clusterserviceversion.yaml diff --git a/Makefile b/Makefile index 547af2f5..3d2b9c69 100644 --- a/Makefile +++ b/Makefile @@ -18,13 +18,13 @@ OPERATOR_NAME = storageosoperator BUNDLE_DIR = $(PWD)/bundle # Current bundle version is the next release version. # Bundle generation requires the current version number of the operator. -CURRENT_BUNDLE_VERSION = "2.4.1" +CURRENT_BUNDLE_VERSION = "2.4.2" SERVICE_ACCOUNT_NAME = $(shell $(YQ3) r deploy/operator.yaml spec.template.spec.serviceAccountName) SERVICE_ACCOUNT_PATH = "spec.install.spec.clusterPermissions[0].serviceAccountName" CSV_FILE = "bundle/manifests/storageosoperator.clusterserviceversion.yaml" # Set the new version before running the release target. -NEW_VERSION ?= v2.4.1 +NEW_VERSION ?= v2.4.2 # Variables to be used when running the make targets in a container. CACHE_DIR = $(shell pwd)/.cache diff --git a/README.md b/README.md index b9063134..f6c8eb3c 100644 --- a/README.md +++ b/README.md @@ -111,7 +111,7 @@ Parameter | Description | Default `secretRefName` | Reference name of storageos secret | `secretRefNamespace` | Namespace of storageos secret | `namespace` | Namespace where storageos cluster resources are created | `storageos` -`images.nodeContainer` | StorageOS node container image | `storageos/node:v2.4.1` +`images.nodeContainer` | StorageOS node container image | `storageos/node:v2.4.2` `images.initContainer` | StorageOS init container image | `storageos/init:v2.1.0` `images.apiManagerContainer` | StorageOS API Manager container image | `storageos/api-manager:v1.1.2` `images.csiNodeDriverRegistrarContainer` | CSI Node Driver Registrar Container image | Varies depending on Kubernetes version diff --git a/build/Dockerfile b/build/Dockerfile index 1e1b65ee..470274cf 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -20,7 +20,7 @@ FROM ${BASE_IMAGE} LABEL name="StorageOS Cluster Operator" \ maintainer="support@storageos.com" \ vendor="StorageOS" \ - version="v2.4.1" \ + version="v2.4.2" \ release="2" \ distribution-scope="public" \ architecture="x86_64" \ diff --git a/build/rhel-build-service/Dockerfile b/build/rhel-build-service/Dockerfile index 7fc8d9ec..77a82adb 100644 --- a/build/rhel-build-service/Dockerfile +++ b/build/rhel-build-service/Dockerfile @@ -20,7 +20,7 @@ FROM registry.access.redhat.com/ubi8/ubi-minimal LABEL name="StorageOS Cluster Operator" \ maintainer="support@storageos.com" \ vendor="StorageOS" \ - version="v2.4.1" \ + version="v2.4.2" \ release="2" \ distribution-scope="public" \ architecture="x86_64" \ diff --git a/bundle/manifests/storageosoperator.clusterserviceversion.yaml b/bundle/manifests/storageosoperator.clusterserviceversion.yaml index 2beba904..92ed7ef5 100644 --- a/bundle/manifests/storageosoperator.clusterserviceversion.yaml +++ b/bundle/manifests/storageosoperator.clusterserviceversion.yaml @@ -34,7 +34,7 @@ metadata: ] repository: https://github.com/storageos/cluster-operator support: StorageOS, Inc - name: storageosoperator.v2.4.1 + name: storageosoperator.v2.4.2 namespace: placeholder spec: apiservicedefinitions: {} @@ -274,9 +274,9 @@ spec: * **Delta Sync** - replicas out of sync due to transient failures only transfer changed blocks. * **Multiple AccessModes** - dynamically provision ReadWriteOnce or ReadWriteMany volumes. - + * **Rapid Failover** - quickly detects node failure and automates recovery actions without administrator intervention. - + * **Data Encryption** - both in transit and at rest. * **Scalability** - disaggregated consensus means no single scheduling point of failure. @@ -533,11 +533,6 @@ spec: name: operatormetrics resources: {} serviceAccountName: storageoscluster-operator-sa - tolerations: - - effect: NoSchedule - key: key - operator: Equal - value: value strategy: deployment installModes: - supported: true @@ -570,4 +565,4 @@ spec: selector: matchLabels: operated-by: storageosoperator - version: 2.4.1 + version: 2.4.2 diff --git a/deploy/olm/community-changes.yaml b/deploy/olm/community-changes.yaml index 4326b79b..70eec817 100644 --- a/deploy/olm/community-changes.yaml +++ b/deploy/olm/community-changes.yaml @@ -1,9 +1,9 @@ # Do not edit this file manually. Use release-gen.sh script to update. -metadata.name: storageosoperator.v2.4.1 +metadata.name: storageosoperator.v2.4.2 metadata.namespace: placeholder -metadata.annotations.containerImage: storageos/cluster-operator:v2.4.1 -spec.version: 2.4.1 -spec.install.spec.deployments[0].spec.template.spec.containers[0].image: storageos/cluster-operator:v2.4.1 +metadata.annotations.containerImage: storageos/cluster-operator:v2.4.2 +spec.version: 2.4.2 +spec.install.spec.deployments[0].spec.template.spec.containers[0].image: storageos/cluster-operator:v2.4.2 spec.install.spec.deployments[0].spec.template.spec.containers[0].env[0].value: "" spec.install.spec.deployments[0].spec.template.spec.containers[0].env[1].value: "" spec.install.spec.deployments[0].spec.template.spec.containers[0].env[2].value: "" @@ -17,4 +17,4 @@ spec.install.spec.deployments[0].spec.template.spec.containers[0].env[9].value: spec.install.spec.deployments[0].spec.template.spec.containers[0].env[10].value: "" spec.install.spec.deployments[0].spec.template.spec.containers[0].env[11].value: "" spec.install.spec.deployments[0].spec.template.spec.containers[0].env[12].value: "" -spec.replaces: storageosoperator.v2.4.0 +spec.replaces: storageosoperator.v2.4.1 diff --git a/deploy/olm/csv-rhel/storageos.clusterserviceversion.yaml b/deploy/olm/csv-rhel/storageos.clusterserviceversion.yaml index 5705de1a..be2d46d7 100644 --- a/deploy/olm/csv-rhel/storageos.clusterserviceversion.yaml +++ b/deploy/olm/csv-rhel/storageos.clusterserviceversion.yaml @@ -1,15 +1,15 @@ apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: - name: storageosoperator.v2.4.1 + name: storageosoperator.v2.4.2 namespace: placeholder annotations: capabilities: Deep Insights categories: Storage description: Cloud-native, persistent storage for containers. - containerImage: registry.connect.redhat.com/storageos/cluster-operator:v2.4.1 + containerImage: registry.connect.redhat.com/storageos/cluster-operator:v2.4.2 repository: https://github.com/storageos/cluster-operator - createdAt: "2021-07-01T13:22:35Z" + createdAt: "2021-07-12T10:34:28Z" support: StorageOS, Inc certified: "true" operators.operatorframework.io/internal-objects: |- @@ -164,7 +164,7 @@ spec: - storage - persistent storage - open source - version: 2.4.1 + version: 2.4.2 minKubeVersion: 1.13.0 maturity: stable maintainers: @@ -383,7 +383,7 @@ spec: - name: storageos-operator command: - cluster-operator - image: registry.connect.redhat.com/storageos/cluster-operator:v2.4.1 + image: registry.connect.redhat.com/storageos/cluster-operator:v2.4.2 env: - name: RELATED_IMAGE_STORAGEOS_NODE value: "" @@ -722,4 +722,4 @@ spec: with the NFS Server. If not specified, a new PVC is provisioned and used. displayName: Persistent Volume Claim path: persistentVolumeClaim - replaces: storageosoperator.v2.4.0 + replaces: storageosoperator.v2.4.1 diff --git a/deploy/olm/csv-rhel/storageos.v2.4.2.clusterserviceversion.yaml b/deploy/olm/csv-rhel/storageos.v2.4.2.clusterserviceversion.yaml new file mode 100644 index 00000000..72c6381b --- /dev/null +++ b/deploy/olm/csv-rhel/storageos.v2.4.2.clusterserviceversion.yaml @@ -0,0 +1,691 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + name: storageosoperator.v2.4.2 + namespace: placeholder + annotations: + capabilities: Deep Insights + categories: Storage + description: Cloud-native, persistent storage for containers. + containerImage: registry.connect.redhat.com/storageos/cluster-operator:v2.4.2 + repository: https://github.com/storageos/cluster-operator + createdAt: "2021-07-12T10:34:28Z" + support: StorageOS, Inc + certified: "true" + operators.operatorframework.io/internal-objects: |- + [ + "jobs.storageos.com", + "storageosupgrades.storageos.com", + "nfsservers.storageos.com" + ] + alm-examples: |- + [ + { + "apiVersion": "storageos.com/v1", + "kind": "StorageOSCluster", + "metadata": { + "name": "example-storageos", + "namespace": "openshift-operators" + }, + "spec": { + "namespace": "kube-system", + "secretRefName": "storageos-api", + "secretRefNamespace": "openshift-operators", + "k8sDistro": "openshift", + "csi": { + "enable": true, + "deploymentStrategy": "deployment" + } + } + }, + { + "apiVersion": "storageos.com/v1", + "kind": "Job", + "metadata": { + "name": "example-job", + "namespace": "default" + }, + "spec": { + "image": "registry.connect.redhat.com/storageos/cluster-operator:latest", + "args": ["/var/lib/storageos"], + "mountPath": "/var/lib", + "hostPath": "/var/lib", + "completionWord": "done" + } + }, + { + "apiVersion": "storageos.com/v1", + "kind": "StorageOSUpgrade", + "metadata": { + "name": "example-upgrade", + "namespace": "default" + }, + "spec": { + "newImage": "registry.connect.redhat.com/storageos/node:latest" + } + }, + { + "apiVersion": "storageos.com/v1", + "kind": "NFSServer", + "metadata": { + "name": "example-nfsserver", + "namespace": "default" + }, + "spec": { + "resources": { + "requests": { + "storage": "1Gi" + } + } + } + } + ] +spec: + displayName: StorageOS + description: "StorageOS is a cloud native, software-defined storage platform that\ntransforms + commodity server or cloud based disk capacity into\nenterprise-class persistent + storage for containers. StorageOS volumes\noffer high throughput, low latency + and consistent performance, and\nare therefore ideal for deploying databases, + message queues, and\nother mission-critical stateful solutions. StorageOS Project + edition\nalso offers ReadWriteMany volumes that are concurrently accessible\nby + multiple applications.\n\nThe StorageOS Operator installs and manages StorageOS + within a cluster.\nCluster nodes may contribute local or attached disk-based storage + into a\ndistributed pool, which is then available to all cluster members via a\nglobal + namespace.\n\nVolumes are available across the cluster so if a container gets + moved to\nanother node it has immediate access to re-attach its data.\n\nStorageOS + is extremely lightweight - minimum requirements are a\nreserved CPU core and 2GB + of free memory. There are minimal external\ndependencies, and no custom kernel + modules.\n\nAfter StorageOS is installed, please register for a free Developer\nlicense + to enable 5TiB of capacity and HA with synchronous\nreplication by following the + instructions\n[here](https://docs.storageos.com/docs/operations/licensing). For\nadditional + capacity, features and support plans contact\nsales@storageos.com.\n\n## Highlighted + Features\n\n* **High Availability** - synchronous replication insulates you from + node failure.\n\n* **Delta Sync** - replicas out of sync due to transient failures + only transfer changed blocks.\n\n* **Multiple AccessModes** - dynamically provision + ReadWriteOnce or ReadWriteMany volumes.\n\n* **Rapid Failover** - quickly detects + node failure and automates recovery actions without administrator intervention.\n\n* + **Data Encryption** - both in transit and at rest. \n\n* **Scalability** + - disaggregated consensus means no single scheduling point of failure.\n\n* **Thin + provisioning** - Only consume the space you need in a storage pool.\n\n* **Data + reduction** - transparent inline data compression to reduce the amount of storage + used in a backing store as well as reducing the network bandwidth requirements + for replication.\n\n* **Flexible configuration** - all features can be enabled + per volume, using PVC and StorageClass labels.\n\n* **Multi-tenancy** - fully + supports standard Namespace and RBAC methods.\n\n* **Observability & instrumentation** + - log streams for observability and Prometheus support for instrumentation.\n\n* + **Deployment flexibility** - scale up or scale out storage based on application + requirements. Works with any infrastructure – on-premises, VM, bare metal or cloud.\n\n## + Prerequisites\n\n[StorageOS Prerequisites Docs](https://docs.storageos.com/docs/prerequisites)\n\n## + Required Parameters\n\n* `secretRefName` - the name of a secret that contains + keys for the\ncredentials\n([documentation](https://docs.storageos.com/docs/reference/cluster-operator/examples))\n* + `secretRefNamespace` - the namespace where the api credentials secret is\nstored\n* + `kvBackend.address` - address of the etcd cluster\n([documentation](https://docs.storageos.com/docs/prerequisites/etcd/))\n\n## + About StorageOS\n\nStorageOS is a software-defined cloud native storage platform\ndelivering + persistent storage for Kubernetes. StorageOS is built from\nthe ground-up with + no legacy restrictions to give enterprises working\nwith cloud native workloads + a scalable storage platform with no\ncompromise on performance, availability or + security. For additional\ninformation, visit [www.storageos.com](www.storageos.com).\n" + keywords: + - storageos + - storage + - persistent storage + - open source + version: 2.4.2 + minKubeVersion: 1.13.0 + maturity: stable + maintainers: + - name: StorageOS, Inc + email: support@storageos.com + provider: + name: StorageOS, Inc + labels: + operated-by: storageosoperator + selector: + matchLabels: + operated-by: storageosoperator + links: + - name: Documentation + url: https://docs.storageos.com/ + - name: StorageOS Operator Source Code + url: https://github.com/storageos/cluster-operator + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9Ii05MCAyODQuNyA0MzAgNDMwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IC05MCAyODQuNyA0MzAgNDMwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGZpbGw9IiM0RjUyNjMiIGQ9Ik0yNzguNSw0MjAuOWgtNzQuMWwtNS42LTkuN2wxMy42LTIzLjZsLTE4LjEtMzEuM0gxODBsMjcuNS00Ny43YzMtNS4xLDEuMi0xMS43LTMuOS0xNC42DQoJCWMtNS4xLTMtMTEuNy0xLjItMTQuNiwzLjlsLTM0LDU4LjhIOTMuMmwtMzQtNTguOGMtMi45LTUuMS05LjUtNi45LTE0LjYtMy45cy02LjksOS41LTMuOSwxNC42bDI3LjUsNDcuN0g1My45bC0xOC4xLDMxLjMNCgkJbDEzLjYsMjMuNmwtNS42LDkuOGgtNzQuMmwtNDMuMyw3NC45bDQzLjMsNzQuOWg3NC4xbDM0LDU4LjlMNzksNjI5bC0xLjIsMC44bDQ2LjQsNzcuMmw0Ni4yLTc3LjNsMCwwbDM0LTU4LjloNzQuMWw0My4zLTc0LjkNCgkJTDI3OC41LDQyMC45eiBNNTUuNSw0MDAuNWwtNy40LTEyLjhMNjAsMzY3aDE0LjNsMC4zLDAuNUw1NS41LDQwMC41eiBNMTczLjQsMzY3LjVsMC4zLTAuNUgxODhsMTEuOSwyMC42bC03LjQsMTIuOUwxNzMuNCwzNjcuNXoiDQoJCS8+DQoJPHBvbHlnb24gZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSI0My43LDQ0Mi4zIDQyLjgsNDQyLjMgLTE4LjEsNDQyLjMgLTQ4LjksNDk1LjggLTE4LjEsNTQ5LjMgNDMsNTQ5LjMgNDMuNyw1NDkuMyA3NC42LDQ5NS45IAkiLz4NCgk8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBwb2ludHM9IjI2Ni4xLDQ0Mi4zIDIwNC4zLDQ0Mi4zIDIwNC4zLDQ0Mi41IDE3My40LDQ5NS44IDIwNC4zLDU0OS4zIDIwNC40LDU0OS4zIDI2Ni4xLDU0OS4zIDI5Nyw0OTUuOCAJDQoJCSIvPg0KCTxwb2x5Z29uIGZpbGw9IiM2MUMyMDIiIHBvaW50cz0iMTU0LjksMzc4LjIgOTMuMSwzNzguMiA5My4xLDM3OC4zIDYyLjMsNDMxLjcgOTMuMSw0ODUuMiA5My4yLDQ4NS4yIDE1NC45LDQ4NS4yIDE4NS44LDQzMS43IAkiLz4NCgk8cG9seWdvbiBmaWxsPSIjNjFDMjAyIiBwb2ludHM9IjE1Mi4xLDYxOC40IDE1Mi4xLDYxOC40IDEyNCw2NjUuMiA5Ni4yLDYxOC45IDk2LjIsNjE4LjkgNjIuMiw1NjAuMSA4OC4zLDUxNC45IDkzLjEsNTA2LjYgDQoJCTE1NC45LDUwNi42IDE4NS44LDU2MC4xIAkiLz4NCjwvZz4NCjxyZWN0IHg9Ii0xMDUiIHk9IjI3MC43IiBmaWxsPSJub25lIiB3aWR0aD0iNDU4IiBoZWlnaHQ9IjQ1OCIvPg0KPC9zdmc+DQo= + mediatype: image/svg+xml + installModes: + - type: OwnNamespace + supported: true + - type: SingleNamespace + supported: true + - type: MultiNamespace + supported: false + - type: AllNamespaces + supported: true + install: + strategy: deployment + spec: + clusterPermissions: + - serviceAccountName: storageos-operator + rules: + - apiGroups: + - storageos.com + resources: + - storageosclusters + - storageosclusters/status + - storageosupgrades + - storageosupgrades/status + - jobs + - jobs/status + - nfsservers + - nfsservers/status + verbs: + - '*' + - apiGroups: + - apps + resources: + - statefulsets + - daemonsets + - deployments + - replicasets + verbs: + - '*' + - apiGroups: + - "" + resources: + - nodes + verbs: + - list + - watch + - get + - update + - create + - patch + - apiGroups: + - "" + resources: + - pods + verbs: + - list + - watch + - get + - update + - patch + - delete + - create + - apiGroups: + - "" + resources: + - events + - namespaces + - serviceaccounts + - secrets + - services + - services/finalizers + - persistentvolumeclaims + - persistentvolumeclaims/status + - persistentvolumes + - configmaps + - replicationcontrollers + - pods/binding + - pods/status + - endpoints + verbs: + - create + - patch + - get + - list + - delete + - watch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + - rolebindings + - clusterroles + - clusterrolebindings + verbs: + - create + - delete + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + - volumeattachments + - volumeattachments/status + - csinodeinfos + - csinodes + - csidrivers + verbs: + - create + - delete + - watch + - list + - get + - update + - patch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - create + - delete + - apiGroups: + - csi.storage.k8s.io + resources: + - csidrivers + verbs: + - create + - delete + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - list + - watch + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - create + - delete + - update + - get + - use + resourceNames: + - privileged + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments/finalizers + resourceNames: + - storageos-cluster-operator + verbs: + - update + - apiGroups: + - events.k8s.io + resources: + - events + verbs: + - create + - patch + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - create + - update + deployments: + - name: storageos-operator + spec: + replicas: 1 + selector: + matchLabels: + name: storageos-operator + template: + metadata: + name: storageos-operator + labels: + name: storageos-operator + spec: + serviceAccountName: storageos-operator + containers: + - name: storageos-operator + command: + - cluster-operator + image: registry.connect.redhat.com/storageos/cluster-operator:v2.4.2 + env: + - name: RELATED_IMAGE_STORAGEOS_NODE + value: "" + - name: RELATED_IMAGE_STORAGEOS_INIT + value: "" + - name: RELATED_IMAGE_CSIV1_CLUSTER_DRIVER_REGISTRAR + value: "" + - name: RELATED_IMAGE_CSIV1_NODE_DRIVER_REGISTRAR + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_PROVISIONER + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_ATTACHER + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_ATTACHER_V2 + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_ATTACHER_V3 + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_RESIZER + value: "" + - name: RELATED_IMAGE_CSIV1_LIVENESS_PROBE + value: "" + - name: RELATED_IMAGE_CSIV0_DRIVER_REGISTRAR + value: "" + - name: RELATED_IMAGE_CSIV0_EXTERNAL_PROVISIONER + value: "" + - name: RELATED_IMAGE_CSIV0_EXTERNAL_ATTACHER + value: "" + - name: RELATED_IMAGE_NFS + value: "" + - name: RELATED_IMAGE_KUBE_SCHEDULER + value: "" + - name: RELATED_IMAGE_API_MANAGER + value: "" + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: storageos-cluster-operator + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + ports: + - containerPort: 8383 + name: metrics + - containerPort: 8686 + name: operatormetrics + customresourcedefinitions: + owned: + - name: storageosclusters.storageos.com + version: v1 + kind: StorageOSCluster + displayName: StorageOS Cluster + description: StorageOS Cluster installs StorageOS in the cluster. It contains + all the configuration for setting up a StorageOS cluster and also shows the + status of the running StorageOS cluster. + resources: + - kind: Namespace + version: v1 + - kind: ServiceAccount + version: v1 + - kind: Role + version: rbac.authorization.k8s.io/v1 + - kind: RoleBinding + version: rbac.authorization.k8s.io/v1 + - kind: ClusterRole + version: rbac.authorization.k8s.io/v1 + - kind: ClusterRoleBinding + version: rbac.authorization.k8s.io/v1 + - kind: Secret + version: v1 + - kind: DaemonSet + version: apps/v1 + - kind: Service + version: v1 + - kind: Ingress + version: extensions/v1beta1 + - kind: Deployment + version: apps/v1 + - kind: StatefulSet + version: apps/v1 + - kind: StorageClass + version: storage.k8s.io/v1 + - kind: StorageOSCluster + version: v1 + - kind: Job + version: v1 + - kind: StorageOSUpgrade + version: v1 + - kind: NFSServer + version: v1 + - kind: Node + version: v1 + - kind: StatefulSet + version: v1 + - kind: DaemonSet + version: v1 + specDescriptors: + - description: Defines the various container images used in the cluster. + displayName: Images + path: images + - description: The namespace to install the StorageOS cluster into. `kube-system` + is recommended so that StorageOS does not get evicted if a node becomes + over-allocated. + displayName: Namespace + path: namespace + - description: The name of the secret object that stores the api credentials. + displayName: Cluster Secret + path: secretRefName + - description: The name of the namespace where the secret object that stores + the api credentials exists. + displayName: Cluster Secret Namespace + path: secretRefNamespace + - description: The join token is used for cluster discovery. When used with + the Operator, the token will be a comma-separated list of all cluster member + IP addresses. The node that owns the first IP address listed will be responsible + for bootsrapping the cluster. + displayName: Cluster members + path: join + - description: KV store configuration to use. Defaults to embedded. `etcd` is + recommended for production deployments with the address set to an external + etcd instance. + displayName: KV Store + path: kvBackend + - description: Describes the Container Storage Interface (CSI) configuration. + displayName: Enable CSI + path: csi + - description: The cluster Service configuration. + displayName: Service configuration + path: service + - description: The shared directory where storage devices should be created. This + directory must be available to both the StorageOS Node container and the + kubelet, and must have mount propagation enabled. When kubelet is running + in a container, `/var/lib/kubelet/plugins/kubernetes.io~storageos` should + normally be set, otherwise leave empty. + displayName: Device directory + path: sharedDir + - description: Describes the ingress configuration to be configured for the + cluster. + displayName: Ingress configuration + path: ingress + - description: The name of the secret object that contains the etcd TLS certificates. + displayName: etcd TLS Secret Name + path: tlsEtcdSecretRefName + - description: The namespace of the secret object that contains the etcd TLS + certificates. + displayName: etcd TLS Secret Namespace + path: tlsEtcdSecretRefNamespace + - description: Node selector terms can be set to control the placement of StorageOS + pods using node affiinity. + displayName: Node Selectors + path: nodeSelectorTerms + - description: Tolerations can be set to control the placement of StorageOS + pods. + displayName: Tolerations + path: tolerations + - description: Name of the Kubernetes distribution in use, e.g. `openshift`. This + will be included in the product telemetry (if enabled), to help focus development + efforts. + displayName: Kubernetes Distribution Name + path: k8sDistro + - description: To disable anonymous usage reporting across the cluster, set + to true. Defaults to false. To help improve the product, data such as API + usage and StorageOS configuration information is collected. + displayName: Disable Telemetry + path: disableTelemetry + - description: When Pod Fencing is disabled, StorageOS will not perform any + interaction with Kubernetes when it detects that a node has gone offline. + Additionally, the Kubernetes permissions required for Fencing will not be + added to the StorageOS role. + displayName: Disable Fencing + path: disableFencing + - description: Disable TCMU can be set to true to disable the TCMU storage driver. This + is required when there are multiple storage systems running on the same + node and you wish to avoid conflicts. Only one TCMU-based storage system + can run on a node at a time. Disabling TCMU will degrade performance. + displayName: Disable TCMU + path: disableTCMU + - description: Force TCMU can be set to true to ensure that TCMU is enabled + or cause StorageOS to abort startup. At startup, StorageOS will automatically + fallback to non-TCMU mode if another TCMU-based storage system is running + on the node. Since non-TCMU has performance drawbacks, this may not always + be desired. + displayName: Force TCMU + path: forceTCMU + - description: Disable StorageOS scheduler deployment. StorageOS scheduler helps + improve the scheduling decision of a pod, considering the location of volumes + and their replicas. + displayName: Disable Scheduler + path: disableScheduler + - description: When enabled, the Operator will not perform any actions on the + cluster. + displayName: Pause Operator + path: pause + - description: Enables debug logging when set to true. + displayName: Enable Debug + path: debug + statusDescriptors: + - description: Set of nodes that are part of the StorageOS Cluster. + displayName: Nodes + path: nodes + - description: The status of each of the members of StorageOS Cluster. + displayName: Member Status + path: members + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podStatuses + - description: The current status of the StorageOS Cluster. + displayName: Status + path: phase + x-descriptors: + - urn:alm:descriptor:io.kubernetes.phase + - description: Ready Nodes + displayName: Ready + path: ready + - description: Health status of StorageOS nodes. + displayName: Node Health Status + path: nodeHealthStatus + - name: jobs.storageos.com + version: v1 + kind: Job + displayName: StorageOS Job + description: StorageOS Job creates special pods that run on all the node and + perform an administrative task. This could be used for cluster maintenance + tasks. + resources: + - kind: DaemonSet + version: apps/v1 + specDescriptors: + - description: The container image to run as the job. + displayName: Image + path: image + - description: The arguments to pass to the job container. + displayName: Arguments + path: args + - description: The path in the job container where a volume is mounted. + displayName: Target Path + path: mountPath + - description: The path on the host that is mounted into the job container. + displayName: Source path + path: hostPath + - description: The job is marked as completed when the completion word is found + in the pod logs. + displayName: Source Path + path: completionWord + - description: A label selector can be set to identify Pods created by the job. + displayName: Label Selector + path: labelSelector + - description: Node selector terms can be set to control the placement of job + pods using node affiinity. + displayName: Node Selectors + path: nodeSelectorTerms + - description: Tolerations can be set to control the placement of job pods. + displayName: Tolerations + path: tolerations + statusDescriptors: + - description: Set to true if the job completed. + displayName: Completed + path: completed + - name: storageosupgrades.storageos.com + version: v1 + kind: StorageOSUpgrade + displayName: StorageOS Upgrade + description: StorageOS Upgrade automatically upgrades an existing StorageOS + cluster as per the upgrade configuration. + resources: + - kind: ServiceAccount + version: v1 + - kind: ClusterRole + version: rbac.authorization.k8s.io/v1 + - kind: ClusterRoleBinding + version: rbac.authorization.k8s.io/v1 + - kind: Job + version: batch/v1 + specDescriptors: + - description: The StorageOS Node image to upgrade to. e.g. `registry.connect.redhat.com/storageos/node:latest` + displayName: New Image + path: newImage + statusDescriptors: + - description: Set to true if the upgrade completed. + displayName: Completed + path: completed + - name: nfsservers.storageos.com + version: v1 + kind: NFSServer + displayName: NFS Server + description: StorageOS NFS Server provides support for shared volumes. The StorageOS + control plane will automatically create and manage NFS Server instances when + a PersistentVolumeClaim requests a volume with AccessMode=ReadWriteMany. + resources: + - kind: Service + version: v1 + - kind: ConfigMap + version: v1 + - kind: ServiceAccount + version: v1 + - kind: ClusterRoleBinding + version: rbac.authorization.k8s.io/v1 + - kind: StatefulSet + version: apps/v1 + specDescriptors: + - description: The annotations-related configuration to add/set on each Pod + related object. + displayName: Pod annotations + path: annotations + - description: The parameters to configure the NFS export. + displayName: NFS export + path: export + - description: PV mount options. Not validated - mount of the PVs will simply + fail if one is invalid. + displayName: Mount Options + path: mountOptions + - description: The container image of the NFS server. + displayName: Image + path: nfsContainer + - description: Reclamation policy for the persistent volume shared to the user's + pod. + displayName: PVC Reclaimation Policy + path: persistentVolumeReclaimPolicy + - description: Resources represents the minimum resources required. + displayName: Resources + path: resources + - description: StorageClassName is the name of the StorageClass used by the + NFS volume. + displayName: StorageClass Name + path: storageClassName + - description: Tolerations is to set the placement of NFS server pods using + pod toleration. + displayName: Pod Tolerations. + path: tolerations + - description: PersistentVolumeClaim is the PVC source of the PVC to be used + with the NFS Server. If not specified, a new PVC is provisioned and used. + displayName: Persistent Volume Claim + path: persistentVolumeClaim + replaces: storageosoperator.v2.4.1 diff --git a/deploy/olm/package-changes.yaml b/deploy/olm/package-changes.yaml index f28a7591..f3868f55 100644 --- a/deploy/olm/package-changes.yaml +++ b/deploy/olm/package-changes.yaml @@ -1,2 +1,2 @@ # Do not edit this file manually. Use release-gen.sh script to update. -channels[0].currentCSV: storageosoperator.v2.4.1 +channels[0].currentCSV: storageosoperator.v2.4.2 diff --git a/deploy/olm/rhel-changes.yaml b/deploy/olm/rhel-changes.yaml index a2207a42..e9743089 100644 --- a/deploy/olm/rhel-changes.yaml +++ b/deploy/olm/rhel-changes.yaml @@ -1,7 +1,7 @@ # Do not edit this file manually. Use release-gen.sh script to update. -metadata.name: storageosoperator.v2.4.1 +metadata.name: storageosoperator.v2.4.2 metadata.namespace: placeholder -metadata.annotations.containerImage: registry.connect.redhat.com/storageos/cluster-operator:v2.4.1 +metadata.annotations.containerImage: registry.connect.redhat.com/storageos/cluster-operator:v2.4.2 metadata.annotations.certified: "true" metadata.annotations.alm-examples: |- [ @@ -66,8 +66,8 @@ metadata.annotations.alm-examples: |- } ] -spec.version: 2.4.1 -spec.install.spec.deployments[0].spec.template.spec.containers[0].image: registry.connect.redhat.com/storageos/cluster-operator:v2.4.1 +spec.version: 2.4.2 +spec.install.spec.deployments[0].spec.template.spec.containers[0].image: registry.connect.redhat.com/storageos/cluster-operator:v2.4.2 spec.install.spec.deployments[0].spec.template.spec.containers[0].env[0].value: "" spec.install.spec.deployments[0].spec.template.spec.containers[0].env[1].value: "" spec.install.spec.deployments[0].spec.template.spec.containers[0].env[2].value: "" @@ -82,4 +82,4 @@ spec.install.spec.deployments[0].spec.template.spec.containers[0].env[10].value: spec.install.spec.deployments[0].spec.template.spec.containers[0].env[11].value: "" spec.install.spec.deployments[0].spec.template.spec.containers[0].env[12].value: "" spec.customresourcedefinitions.owned[2].specDescriptors[0].description: The StorageOS Node image to upgrade to. e.g. `registry.connect.redhat.com/storageos/node:latest` -spec.replaces: storageosoperator.v2.4.0 +spec.replaces: storageosoperator.v2.4.1 diff --git a/deploy/olm/storageos/storageos.clusterserviceversion.yaml b/deploy/olm/storageos/storageos.clusterserviceversion.yaml index 9d161dbd..f3fb24aa 100644 --- a/deploy/olm/storageos/storageos.clusterserviceversion.yaml +++ b/deploy/olm/storageos/storageos.clusterserviceversion.yaml @@ -1,15 +1,15 @@ apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: - name: storageosoperator.v2.4.1 + name: storageosoperator.v2.4.2 namespace: placeholder annotations: capabilities: Deep Insights categories: Storage description: Cloud-native, persistent storage for containers. - containerImage: storageos/cluster-operator:v2.4.1 + containerImage: storageos/cluster-operator:v2.4.2 repository: https://github.com/storageos/cluster-operator - createdAt: "2021-07-01T13:22:35Z" + createdAt: "2021-07-12T10:34:28Z" support: StorageOS, Inc certified: "false" operators.operatorframework.io/internal-objects: |- @@ -120,7 +120,7 @@ spec: - storage - persistent storage - open source - version: 2.4.1 + version: 2.4.2 minKubeVersion: 1.13.0 maturity: stable maintainers: @@ -339,7 +339,7 @@ spec: - name: storageos-operator command: - cluster-operator - image: storageos/cluster-operator:v2.4.1 + image: storageos/cluster-operator:v2.4.2 env: - name: RELATED_IMAGE_STORAGEOS_NODE value: "" @@ -678,4 +678,4 @@ spec: with the NFS Server. If not specified, a new PVC is provisioned and used. displayName: Persistent Volume Claim path: persistentVolumeClaim - replaces: storageosoperator.v2.4.0 + replaces: storageosoperator.v2.4.1 diff --git a/deploy/olm/storageos/storageos.package.yaml b/deploy/olm/storageos/storageos.package.yaml index 7779a989..30b0cb34 100644 --- a/deploy/olm/storageos/storageos.package.yaml +++ b/deploy/olm/storageos/storageos.package.yaml @@ -1,4 +1,4 @@ packageName: storageos channels: - name: stable - currentCSV: storageosoperator.v2.4.1 + currentCSV: storageosoperator.v2.4.2 diff --git a/deploy/olm/storageos/storageos.v2.4.2.clusterserviceversion.yaml b/deploy/olm/storageos/storageos.v2.4.2.clusterserviceversion.yaml new file mode 100644 index 00000000..9ddce151 --- /dev/null +++ b/deploy/olm/storageos/storageos.v2.4.2.clusterserviceversion.yaml @@ -0,0 +1,647 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + name: storageosoperator.v2.4.2 + namespace: placeholder + annotations: + capabilities: Deep Insights + categories: Storage + description: Cloud-native, persistent storage for containers. + containerImage: storageos/cluster-operator:v2.4.2 + repository: https://github.com/storageos/cluster-operator + createdAt: "2021-07-12T10:34:28Z" + support: StorageOS, Inc + certified: "false" + operators.operatorframework.io/internal-objects: |- + [ + "jobs.storageos.com", + "storageosupgrades.storageos.com", + "nfsservers.storageos.com" + ] + alm-examples: |- + [ + { + "apiVersion": "storageos.com/v1", + "kind": "StorageOSCluster", + "metadata": { + "name": "example-storageos", + "namespace": "default" + }, + "spec": { + "secretRefName": "storageos-api", + "secretRefNamespace": "default", + "kvBackend": { + "address": "http://:2379" + } + } + } + ] +spec: + displayName: StorageOS + description: "StorageOS is a cloud native, software-defined storage platform that\ntransforms + commodity server or cloud based disk capacity into\nenterprise-class persistent + storage for containers. StorageOS volumes\noffer high throughput, low latency + and consistent performance, and\nare therefore ideal for deploying databases, + message queues, and\nother mission-critical stateful solutions. StorageOS Project + edition\nalso offers ReadWriteMany volumes that are concurrently accessible\nby + multiple applications.\n\nThe StorageOS Operator installs and manages StorageOS + within a cluster.\nCluster nodes may contribute local or attached disk-based storage + into a\ndistributed pool, which is then available to all cluster members via a\nglobal + namespace.\n\nVolumes are available across the cluster so if a container gets + moved to\nanother node it has immediate access to re-attach its data.\n\nStorageOS + is extremely lightweight - minimum requirements are a\nreserved CPU core and 2GB + of free memory. There are minimal external\ndependencies, and no custom kernel + modules.\n\nAfter StorageOS is installed, please register for a free Developer\nlicense + to enable 5TiB of capacity and HA with synchronous\nreplication by following the + instructions\n[here](https://docs.storageos.com/docs/operations/licensing). For\nadditional + capacity, features and support plans contact\nsales@storageos.com.\n\n## Highlighted + Features\n\n* **High Availability** - synchronous replication insulates you from + node failure.\n\n* **Delta Sync** - replicas out of sync due to transient failures + only transfer changed blocks.\n\n* **Multiple AccessModes** - dynamically provision + ReadWriteOnce or ReadWriteMany volumes.\n\n* **Rapid Failover** - quickly detects + node failure and automates recovery actions without administrator intervention.\n\n* + **Data Encryption** - both in transit and at rest. \n\n* **Scalability** + - disaggregated consensus means no single scheduling point of failure.\n\n* **Thin + provisioning** - Only consume the space you need in a storage pool.\n\n* **Data + reduction** - transparent inline data compression to reduce the amount of storage + used in a backing store as well as reducing the network bandwidth requirements + for replication.\n\n* **Flexible configuration** - all features can be enabled + per volume, using PVC and StorageClass labels.\n\n* **Multi-tenancy** - fully + supports standard Namespace and RBAC methods.\n\n* **Observability & instrumentation** + - log streams for observability and Prometheus support for instrumentation.\n\n* + **Deployment flexibility** - scale up or scale out storage based on application + requirements. Works with any infrastructure – on-premises, VM, bare metal or cloud.\n\n## + Prerequisites\n\n[StorageOS Prerequisites Docs](https://docs.storageos.com/docs/prerequisites)\n\n## + Required Parameters\n\n* `secretRefName` - the name of a secret that contains + keys for the\ncredentials\n([documentation](https://docs.storageos.com/docs/reference/cluster-operator/examples))\n* + `secretRefNamespace` - the namespace where the api credentials secret is\nstored\n* + `kvBackend.address` - address of the etcd cluster\n([documentation](https://docs.storageos.com/docs/prerequisites/etcd/))\n\n## + About StorageOS\n\nStorageOS is a software-defined cloud native storage platform\ndelivering + persistent storage for Kubernetes. StorageOS is built from\nthe ground-up with + no legacy restrictions to give enterprises working\nwith cloud native workloads + a scalable storage platform with no\ncompromise on performance, availability or + security. For additional\ninformation, visit [www.storageos.com](www.storageos.com).\n" + keywords: + - storageos + - storage + - persistent storage + - open source + version: 2.4.2 + minKubeVersion: 1.13.0 + maturity: stable + maintainers: + - name: StorageOS, Inc + email: support@storageos.com + provider: + name: StorageOS, Inc + labels: + operated-by: storageosoperator + selector: + matchLabels: + operated-by: storageosoperator + links: + - name: Documentation + url: https://docs.storageos.com/ + - name: StorageOS Operator Source Code + url: https://github.com/storageos/cluster-operator + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9Ii05MCAyODQuNyA0MzAgNDMwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IC05MCAyODQuNyA0MzAgNDMwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGZpbGw9IiM0RjUyNjMiIGQ9Ik0yNzguNSw0MjAuOWgtNzQuMWwtNS42LTkuN2wxMy42LTIzLjZsLTE4LjEtMzEuM0gxODBsMjcuNS00Ny43YzMtNS4xLDEuMi0xMS43LTMuOS0xNC42DQoJCWMtNS4xLTMtMTEuNy0xLjItMTQuNiwzLjlsLTM0LDU4LjhIOTMuMmwtMzQtNTguOGMtMi45LTUuMS05LjUtNi45LTE0LjYtMy45cy02LjksOS41LTMuOSwxNC42bDI3LjUsNDcuN0g1My45bC0xOC4xLDMxLjMNCgkJbDEzLjYsMjMuNmwtNS42LDkuOGgtNzQuMmwtNDMuMyw3NC45bDQzLjMsNzQuOWg3NC4xbDM0LDU4LjlMNzksNjI5bC0xLjIsMC44bDQ2LjQsNzcuMmw0Ni4yLTc3LjNsMCwwbDM0LTU4LjloNzQuMWw0My4zLTc0LjkNCgkJTDI3OC41LDQyMC45eiBNNTUuNSw0MDAuNWwtNy40LTEyLjhMNjAsMzY3aDE0LjNsMC4zLDAuNUw1NS41LDQwMC41eiBNMTczLjQsMzY3LjVsMC4zLTAuNUgxODhsMTEuOSwyMC42bC03LjQsMTIuOUwxNzMuNCwzNjcuNXoiDQoJCS8+DQoJPHBvbHlnb24gZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSI0My43LDQ0Mi4zIDQyLjgsNDQyLjMgLTE4LjEsNDQyLjMgLTQ4LjksNDk1LjggLTE4LjEsNTQ5LjMgNDMsNTQ5LjMgNDMuNyw1NDkuMyA3NC42LDQ5NS45IAkiLz4NCgk8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBwb2ludHM9IjI2Ni4xLDQ0Mi4zIDIwNC4zLDQ0Mi4zIDIwNC4zLDQ0Mi41IDE3My40LDQ5NS44IDIwNC4zLDU0OS4zIDIwNC40LDU0OS4zIDI2Ni4xLDU0OS4zIDI5Nyw0OTUuOCAJDQoJCSIvPg0KCTxwb2x5Z29uIGZpbGw9IiM2MUMyMDIiIHBvaW50cz0iMTU0LjksMzc4LjIgOTMuMSwzNzguMiA5My4xLDM3OC4zIDYyLjMsNDMxLjcgOTMuMSw0ODUuMiA5My4yLDQ4NS4yIDE1NC45LDQ4NS4yIDE4NS44LDQzMS43IAkiLz4NCgk8cG9seWdvbiBmaWxsPSIjNjFDMjAyIiBwb2ludHM9IjE1Mi4xLDYxOC40IDE1Mi4xLDYxOC40IDEyNCw2NjUuMiA5Ni4yLDYxOC45IDk2LjIsNjE4LjkgNjIuMiw1NjAuMSA4OC4zLDUxNC45IDkzLjEsNTA2LjYgDQoJCTE1NC45LDUwNi42IDE4NS44LDU2MC4xIAkiLz4NCjwvZz4NCjxyZWN0IHg9Ii0xMDUiIHk9IjI3MC43IiBmaWxsPSJub25lIiB3aWR0aD0iNDU4IiBoZWlnaHQ9IjQ1OCIvPg0KPC9zdmc+DQo= + mediatype: image/svg+xml + installModes: + - type: OwnNamespace + supported: true + - type: SingleNamespace + supported: true + - type: MultiNamespace + supported: false + - type: AllNamespaces + supported: true + install: + strategy: deployment + spec: + clusterPermissions: + - serviceAccountName: storageos-operator + rules: + - apiGroups: + - storageos.com + resources: + - storageosclusters + - storageosclusters/status + - storageosupgrades + - storageosupgrades/status + - jobs + - jobs/status + - nfsservers + - nfsservers/status + verbs: + - '*' + - apiGroups: + - apps + resources: + - statefulsets + - daemonsets + - deployments + - replicasets + verbs: + - '*' + - apiGroups: + - "" + resources: + - nodes + verbs: + - list + - watch + - get + - update + - create + - patch + - apiGroups: + - "" + resources: + - pods + verbs: + - list + - watch + - get + - update + - patch + - delete + - create + - apiGroups: + - "" + resources: + - events + - namespaces + - serviceaccounts + - secrets + - services + - services/finalizers + - persistentvolumeclaims + - persistentvolumeclaims/status + - persistentvolumes + - configmaps + - replicationcontrollers + - pods/binding + - pods/status + - endpoints + verbs: + - create + - patch + - get + - list + - delete + - watch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + - rolebindings + - clusterroles + - clusterrolebindings + verbs: + - create + - delete + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + - volumeattachments + - volumeattachments/status + - csinodeinfos + - csinodes + - csidrivers + verbs: + - create + - delete + - watch + - list + - get + - update + - patch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - create + - delete + - apiGroups: + - csi.storage.k8s.io + resources: + - csidrivers + verbs: + - create + - delete + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - list + - watch + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - create + - delete + - update + - get + - use + resourceNames: + - privileged + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - '*' + - apiGroups: + - apps + resources: + - deployments/finalizers + resourceNames: + - storageos-cluster-operator + verbs: + - update + - apiGroups: + - events.k8s.io + resources: + - events + verbs: + - create + - patch + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - create + - update + deployments: + - name: storageos-operator + spec: + replicas: 1 + selector: + matchLabels: + name: storageos-operator + template: + metadata: + name: storageos-operator + labels: + name: storageos-operator + spec: + serviceAccountName: storageos-operator + containers: + - name: storageos-operator + command: + - cluster-operator + image: storageos/cluster-operator:v2.4.2 + env: + - name: RELATED_IMAGE_STORAGEOS_NODE + value: "" + - name: RELATED_IMAGE_STORAGEOS_INIT + value: "" + - name: RELATED_IMAGE_CSIV1_CLUSTER_DRIVER_REGISTRAR + value: "" + - name: RELATED_IMAGE_CSIV1_NODE_DRIVER_REGISTRAR + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_PROVISIONER + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_ATTACHER + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_ATTACHER_V2 + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_ATTACHER_V3 + value: "" + - name: RELATED_IMAGE_CSIV1_EXTERNAL_RESIZER + value: "" + - name: RELATED_IMAGE_CSIV1_LIVENESS_PROBE + value: "" + - name: RELATED_IMAGE_CSIV0_DRIVER_REGISTRAR + value: "" + - name: RELATED_IMAGE_CSIV0_EXTERNAL_PROVISIONER + value: "" + - name: RELATED_IMAGE_CSIV0_EXTERNAL_ATTACHER + value: "" + - name: RELATED_IMAGE_NFS + value: "" + - name: RELATED_IMAGE_KUBE_SCHEDULER + value: "" + - name: RELATED_IMAGE_API_MANAGER + value: "" + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: OPERATOR_NAME + value: storageos-cluster-operator + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + ports: + - containerPort: 8383 + name: metrics + - containerPort: 8686 + name: operatormetrics + customresourcedefinitions: + owned: + - name: storageosclusters.storageos.com + version: v1 + kind: StorageOSCluster + displayName: StorageOS Cluster + description: StorageOS Cluster installs StorageOS in the cluster. It contains + all the configuration for setting up a StorageOS cluster and also shows the + status of the running StorageOS cluster. + resources: + - kind: Namespace + version: v1 + - kind: ServiceAccount + version: v1 + - kind: Role + version: rbac.authorization.k8s.io/v1 + - kind: RoleBinding + version: rbac.authorization.k8s.io/v1 + - kind: ClusterRole + version: rbac.authorization.k8s.io/v1 + - kind: ClusterRoleBinding + version: rbac.authorization.k8s.io/v1 + - kind: Secret + version: v1 + - kind: DaemonSet + version: apps/v1 + - kind: Service + version: v1 + - kind: Ingress + version: extensions/v1beta1 + - kind: Deployment + version: apps/v1 + - kind: StatefulSet + version: apps/v1 + - kind: StorageClass + version: storage.k8s.io/v1 + - kind: StorageOSCluster + version: v1 + - kind: Job + version: v1 + - kind: StorageOSUpgrade + version: v1 + - kind: NFSServer + version: v1 + - kind: Node + version: v1 + - kind: StatefulSet + version: v1 + - kind: DaemonSet + version: v1 + specDescriptors: + - description: Defines the various container images used in the cluster. + displayName: Images + path: images + - description: The namespace to install the StorageOS cluster into. `kube-system` + is recommended so that StorageOS does not get evicted if a node becomes + over-allocated. + displayName: Namespace + path: namespace + - description: The name of the secret object that stores the api credentials. + displayName: Cluster Secret + path: secretRefName + - description: The name of the namespace where the secret object that stores + the api credentials exists. + displayName: Cluster Secret Namespace + path: secretRefNamespace + - description: The join token is used for cluster discovery. When used with + the Operator, the token will be a comma-separated list of all cluster member + IP addresses. The node that owns the first IP address listed will be responsible + for bootsrapping the cluster. + displayName: Cluster members + path: join + - description: KV store configuration to use. Defaults to embedded. `etcd` is + recommended for production deployments with the address set to an external + etcd instance. + displayName: KV Store + path: kvBackend + - description: Describes the Container Storage Interface (CSI) configuration. + displayName: Enable CSI + path: csi + - description: The cluster Service configuration. + displayName: Service configuration + path: service + - description: The shared directory where storage devices should be created. This + directory must be available to both the StorageOS Node container and the + kubelet, and must have mount propagation enabled. When kubelet is running + in a container, `/var/lib/kubelet/plugins/kubernetes.io~storageos` should + normally be set, otherwise leave empty. + displayName: Device directory + path: sharedDir + - description: Describes the ingress configuration to be configured for the + cluster. + displayName: Ingress configuration + path: ingress + - description: The name of the secret object that contains the etcd TLS certificates. + displayName: etcd TLS Secret Name + path: tlsEtcdSecretRefName + - description: The namespace of the secret object that contains the etcd TLS + certificates. + displayName: etcd TLS Secret Namespace + path: tlsEtcdSecretRefNamespace + - description: Node selector terms can be set to control the placement of StorageOS + pods using node affiinity. + displayName: Node Selectors + path: nodeSelectorTerms + - description: Tolerations can be set to control the placement of StorageOS + pods. + displayName: Tolerations + path: tolerations + - description: Name of the Kubernetes distribution in use, e.g. `openshift`. This + will be included in the product telemetry (if enabled), to help focus development + efforts. + displayName: Kubernetes Distribution Name + path: k8sDistro + - description: To disable anonymous usage reporting across the cluster, set + to true. Defaults to false. To help improve the product, data such as API + usage and StorageOS configuration information is collected. + displayName: Disable Telemetry + path: disableTelemetry + - description: When Pod Fencing is disabled, StorageOS will not perform any + interaction with Kubernetes when it detects that a node has gone offline. + Additionally, the Kubernetes permissions required for Fencing will not be + added to the StorageOS role. + displayName: Disable Fencing + path: disableFencing + - description: Disable TCMU can be set to true to disable the TCMU storage driver. This + is required when there are multiple storage systems running on the same + node and you wish to avoid conflicts. Only one TCMU-based storage system + can run on a node at a time. Disabling TCMU will degrade performance. + displayName: Disable TCMU + path: disableTCMU + - description: Force TCMU can be set to true to ensure that TCMU is enabled + or cause StorageOS to abort startup. At startup, StorageOS will automatically + fallback to non-TCMU mode if another TCMU-based storage system is running + on the node. Since non-TCMU has performance drawbacks, this may not always + be desired. + displayName: Force TCMU + path: forceTCMU + - description: Disable StorageOS scheduler deployment. StorageOS scheduler helps + improve the scheduling decision of a pod, considering the location of volumes + and their replicas. + displayName: Disable Scheduler + path: disableScheduler + - description: When enabled, the Operator will not perform any actions on the + cluster. + displayName: Pause Operator + path: pause + - description: Enables debug logging when set to true. + displayName: Enable Debug + path: debug + statusDescriptors: + - description: Set of nodes that are part of the StorageOS Cluster. + displayName: Nodes + path: nodes + - description: The status of each of the members of StorageOS Cluster. + displayName: Member Status + path: members + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podStatuses + - description: The current status of the StorageOS Cluster. + displayName: Status + path: phase + x-descriptors: + - urn:alm:descriptor:io.kubernetes.phase + - description: Ready Nodes + displayName: Ready + path: ready + - description: Health status of StorageOS nodes. + displayName: Node Health Status + path: nodeHealthStatus + - name: jobs.storageos.com + version: v1 + kind: Job + displayName: StorageOS Job + description: StorageOS Job creates special pods that run on all the node and + perform an administrative task. This could be used for cluster maintenance + tasks. + resources: + - kind: DaemonSet + version: apps/v1 + specDescriptors: + - description: The container image to run as the job. + displayName: Image + path: image + - description: The arguments to pass to the job container. + displayName: Arguments + path: args + - description: The path in the job container where a volume is mounted. + displayName: Target Path + path: mountPath + - description: The path on the host that is mounted into the job container. + displayName: Source path + path: hostPath + - description: The job is marked as completed when the completion word is found + in the pod logs. + displayName: Source Path + path: completionWord + - description: A label selector can be set to identify Pods created by the job. + displayName: Label Selector + path: labelSelector + - description: Node selector terms can be set to control the placement of job + pods using node affiinity. + displayName: Node Selectors + path: nodeSelectorTerms + - description: Tolerations can be set to control the placement of job pods. + displayName: Tolerations + path: tolerations + statusDescriptors: + - description: Set to true if the job completed. + displayName: Completed + path: completed + - name: storageosupgrades.storageos.com + version: v1 + kind: StorageOSUpgrade + displayName: StorageOS Upgrade + description: StorageOS Upgrade automatically upgrades an existing StorageOS + cluster as per the upgrade configuration. + resources: + - kind: ServiceAccount + version: v1 + - kind: ClusterRole + version: rbac.authorization.k8s.io/v1 + - kind: ClusterRoleBinding + version: rbac.authorization.k8s.io/v1 + - kind: Job + version: batch/v1 + specDescriptors: + - description: The StorageOS Node image to upgrade to. e.g. `storageos/node:latest` + displayName: New Image + path: newImage + statusDescriptors: + - description: Set to true if the upgrade completed. + displayName: Completed + path: completed + - name: nfsservers.storageos.com + version: v1 + kind: NFSServer + displayName: NFS Server + description: StorageOS NFS Server provides support for shared volumes. The StorageOS + control plane will automatically create and manage NFS Server instances when + a PersistentVolumeClaim requests a volume with AccessMode=ReadWriteMany. + resources: + - kind: Service + version: v1 + - kind: ConfigMap + version: v1 + - kind: ServiceAccount + version: v1 + - kind: ClusterRoleBinding + version: rbac.authorization.k8s.io/v1 + - kind: StatefulSet + version: apps/v1 + specDescriptors: + - description: The annotations-related configuration to add/set on each Pod + related object. + displayName: Pod annotations + path: annotations + - description: The parameters to configure the NFS export. + displayName: NFS export + path: export + - description: PV mount options. Not validated - mount of the PVs will simply + fail if one is invalid. + displayName: Mount Options + path: mountOptions + - description: The container image of the NFS server. + displayName: Image + path: nfsContainer + - description: Reclamation policy for the persistent volume shared to the user's + pod. + displayName: PVC Reclaimation Policy + path: persistentVolumeReclaimPolicy + - description: Resources represents the minimum resources required. + displayName: Resources + path: resources + - description: StorageClassName is the name of the StorageClass used by the + NFS volume. + displayName: StorageClass Name + path: storageClassName + - description: Tolerations is to set the placement of NFS server pods using + pod toleration. + displayName: Pod Tolerations. + path: tolerations + - description: PersistentVolumeClaim is the PVC source of the PVC to be used + with the NFS Server. If not specified, a new PVC is provisioned and used. + displayName: Persistent Volume Claim + path: persistentVolumeClaim + replaces: storageosoperator.v2.4.1 diff --git a/deploy/storageos-operators.configmap.yaml b/deploy/storageos-operators.configmap.yaml index 49f79421..d3e5c551 100644 --- a/deploy/storageos-operators.configmap.yaml +++ b/deploy/storageos-operators.configmap.yaml @@ -946,7 +946,7 @@ data: description: Cloud-native, persistent storage for containers. containerImage: storageos/cluster-operator:test repository: https://github.com/storageos/cluster-operator - createdAt: 2021-07-01T13:22:35Z + createdAt: 2021-07-12T10:34:28Z support: StorageOS, Inc certified: "false" operators.operatorframework.io/internal-objects: |- diff --git a/internal/pkg/image/image.go b/internal/pkg/image/image.go index b4267d37..5043902a 100644 --- a/internal/pkg/image/image.go +++ b/internal/pkg/image/image.go @@ -4,7 +4,7 @@ import "os" // Default image constant variables. const ( - DefaultNodeContainerImage = "storageos/node:v2.4.0" + DefaultNodeContainerImage = "storageos/node:v2.4.2" DefaultInitContainerImage = "storageos/init:v2.1.0" CSIv1ClusterDriverRegistrarContainerImage = "quay.io/k8scsi/csi-cluster-driver-registrar:v1.0.1" CSIv1NodeDriverRegistrarContainerImage = "quay.io/k8scsi/csi-node-driver-registrar:v2.1.0"