From c8e72512040f06ffcefaf32f2b749391c2d882bf Mon Sep 17 00:00:00 2001 From: Julian Bermudez Valderrama Date: Thu, 5 Sep 2024 08:06:26 -0500 Subject: [PATCH] bundles for 3.72.0 (#33) --- .../sonatype.com_v1alpha1_nexusrepo_cr.yaml | 2 +- ...rator-certified.clusterserviceversion.yaml | 482 ++++++++++++++++++ .../sonatype.com_nexusrepos_crd.yaml | 44 ++ .../3.72.0-1/metadata/annotations.yaml | 9 + ...ository-ha-operator-certified.package.yaml | 2 +- deploy/operator.yaml | 4 +- 6 files changed, 539 insertions(+), 4 deletions(-) create mode 100644 deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/manifests/nexus-repository-ha-operator-certified.clusterserviceversion.yaml create mode 100644 deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/manifests/sonatype.com_nexusrepos_crd.yaml create mode 100644 deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/metadata/annotations.yaml diff --git a/deploy/crds/sonatype.com_v1alpha1_nexusrepo_cr.yaml b/deploy/crds/sonatype.com_v1alpha1_nexusrepo_cr.yaml index 50f13c5..405eb3e 100644 --- a/deploy/crds/sonatype.com_v1alpha1_nexusrepo_cr.yaml +++ b/deploy/crds/sonatype.com_v1alpha1_nexusrepo_cr.yaml @@ -63,7 +63,7 @@ spec: nexusInitialPassword: nexusabc password: nexus user: nexus - imageName: registry.connect.redhat.com/sonatype/nexus-repository-manager@sha256:fad320b990ecb5bcacf7ece0eef6cd0cf5fcbc0ee6b98bf5e51f3eeed0a479d1 + imageName: registry.connect.redhat.com/sonatype/nexus-repository-manager@sha256:045c66ef2ad3b071bfbb45a0db336597498d24ef13143a6cae221ddf4982aba0 pullPolicy: IfNotPresent resources: limits: diff --git a/deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/manifests/nexus-repository-ha-operator-certified.clusterserviceversion.yaml b/deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/manifests/nexus-repository-ha-operator-certified.clusterserviceversion.yaml new file mode 100644 index 0000000..65a46a1 --- /dev/null +++ b/deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/manifests/nexus-repository-ha-operator-certified.clusterserviceversion.yaml @@ -0,0 +1,482 @@ +--- +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "sonatype.com/v1alpha1", + "kind": "NexusRepo", + "metadata": { + "name": "nexusrepo-sample" + }, + "spec": { + "ingress": { + "additionalRules": null, + "annotations": null, + "defaultRule": false, + "dockerIngress": { + "annotations": null, + "enabled": false, + "host": "example.com", + "name": "nexus-docker-ingress" + }, + "dockerSubdomain": false, + "enabled": false, + "host": "example.com", + "name": "nexus-ingress", + "tls": { + "enabled": false, + "secretName": "tlsSecretName" + } + }, + "license": { + "fileContentsBase64": "your_license_file_contents_in_base_64", + "secretName": "nexus-repo-license" + }, + "nexusData": { + "pvc": { + "accessMode": "ReadWriteOnce", + "size": "2Gi" + }, + "storageClass": { + "enabled": false, + "name": "nexusrepo-storage", + "parameters": {}, + "provisioner": "provisioner", + "reclaimPolicy": "Retain", + "volumeBindingMode": "WaitForFirstConsumer" + }, + "volumeClaimTemplate": { + "enabled": false + } + }, + "service": { + "docker": { + "enabled": false, + "name": "nexus-repo-docker-service", + "port": 9090, + "protocol": "TCP", + "targetPort": 9090, + "type": "NodePort" + }, + "nexus": { + "enabled": false, + "name": "nexus-repo-service", + "port": 80, + "protocol": "TCP", + "targetPort": 8081, + "type": "NodePort" + } + }, + "statefulset": { + "container": { + "containerPort": 8081, + "env": { + "clustered": false, + "install4jAddVmParams": "-Xms2703m -Xmx2703m", + "jdbcUrl": null, + "nexusInitialPassword": "nexusabc", + "password": "nexus", + "user": "nexus" + }, + "imageName": "registry.connect.redhat.com/sonatype/nexus-repository-manager@sha256:045c66ef2ad3b071bfbb45a0db336597498d24ef13143a6cae221ddf4982aba0", + "pullPolicy": "IfNotPresent", + "resources": { + "limits": { + "cpu": 4, + "memory": "8Gi" + }, + "requests": { + "cpu": 4, + "memory": "8Gi" + } + }, + "terminationGracePeriod": 120 + }, + "imagePullSecrets": {}, + "livenessProbe": { + "failureThreshold": 6, + "initialDelaySeconds": 240, + "path": "/", + "periodSeconds": 60 + }, + "name": "nexusrepo-statefulset", + "readinessProbe": { + "failureThreshold": 6, + "initialDelaySeconds": 240, + "path": "/", + "periodSeconds": 60 + }, + "replicaCount": 1 + } + } + } + ] + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "false" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + capabilities: Basic Install + categories: "Integration & Delivery" + description: |- + Nexus Repository is the central source of control to efficiently manage all binaries + and build artifacts across your DevOps pipeline. + containerImage: registry.connect.redhat.com/sonatype/nexus-repository-ha-operator-certified@sha256:43cf8f0eabb42fbabdfaa2ca16d185eac7f41d0d786ee814dcb155d809934640 + repository: https://github.com/sonatype/operator-nexus-repository + createdAt: 2023-08-14 + support: Sonatype + certified: "true" + olm.skipRange: "<3.72.0-1" + olm.replaces: "3.71.0-1" + name: nexus-repository-ha-operator-certified.v3.72.0-1 + namespace: placeholder +spec: + relatedImages: + - name: nexus-repository-ha-operator-certified + image: registry.connect.redhat.com/sonatype/nexus-repository-ha-operator-certified@sha256:43cf8f0eabb42fbabdfaa2ca16d185eac7f41d0d786ee814dcb155d809934640 + - name: nexus-repository-manager + image: registry.connect.redhat.com/sonatype/nexus-repository-manager@sha256:045c66ef2ad3b071bfbb45a0db336597498d24ef13143a6cae221ddf4982aba0 + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: Nexus Repository + displayName: NexusRepo + kind: NexusRepo + name: nexusrepos.sonatype.com + version: v1alpha1 + description: |- + Nexus Repository is the central source of control to efficiently manage all binaries + and build artifacts across your DevOps pipeline. + The flow of open source and third-party components into and through an organization + creates a complex software supply chain. + Nexus Repository delivers speed, efficiency, and quality to the governance + and management of all dependencies, libraries, and applications for your DevOps teams. + + ## Core Capabilities + + * **Dependency Management**: + Improves reliability with repeatable, fast access to secure dependencies + * **Developer Productivity**: + Streamline developer workflows by enabling the sharing of components and applications across teams + * **Supply Chain Performance**: + Improve speed-to-market and reduced build times with release advanced staging and component tagging + * **CI/CD Integrations**: + Increase DevOps scalability with integrations to the most popular build and deployment tools + + Version control systems and package registries do not scale when managing proprietary, + open source, and third-party components. + Organizations need a central binary and build artifact repository to manage dependencies + across the entire software supply chain. + + ## Limitations + + ## Controlling Automatic vs Manual Update + + If you use the default configuration for the Nexus Repository Operator installation, + please notice that on any new operator release, the corresponding deployments are + also updated without user intervention, resulting in unscheduled downtime. + + If you want to avoid this unscheduled downtime, we recommend installing the operator + into **its own namespace** with **manual approval** for updates. + + ## Usage + By default, the example Custom Resource starts up a single instance of Nexus Repository in non-Pro mode using an H2 database. + + ### Connect to a PostgreSQL database + We strongly recommend using Nexus Repository with a PostgreSQL database. To connect a Nexus Repository instance to a PostgreSQL database, do as follows: + * Update the `license.fileContentsBase64` parameter with a base 64 representation of your Nexus Repository Pro license. + * Set the `statefulset.container.env.jdbcUrl` parameter to your database url. + * Set the `statefulset.container.env.user` parameter to your database user name. + * Set the `statefulset.container.env.password` parameter to your database password. + + ### High Availability (HA) mode + To start Nexus Repository in HA mode, you must edit the Custom Resource YAML as follows: + + * Update the `license.fileContentsBase64` parameter with a base 64 representation of your Nexus Repository Pro license. + * Set the `statefulset.container.env.jdbcUrl` parameter to your database url. + * Set the `statefulset.container.env.user` parameter to your database user name. + * Set the `statefulset.container.env.password` parameter to your database password. + * Set the `statefulset.container.env.clustered` parameter to true. + * Set the `statefulset.replicaCount` parameter to the number of Nexus Repository pods you require in your HA cluster + * You must use a persistent volume as described in the 'Storage' section below. + + ### Storage + The default configuration uses an emptyDir volume for storing Nexus Repository logs. However, we strongly recommend that + you configure dynamic provisioning of persistent storage based on your deployment environment as explained below. + + #### Cloud deployments (AWS/Azure) + * Ensure the appropriate Container Storage Interface (CSI) driver(s) are installed for your chosen OpenShift cloud deployment. Please, refer to OpenShift documentation for details on configuring CSI drivers. + Note: if you're using Red Hat OpenShift on AWS (ROSA), CSI drivers for dynamically provisioning EBS volumes are installed by default; you should see associated storage classes for them in your cluster web console. + + #### On premise deployments + 1. Attach separate disks (i.e. separate from the root disk) to your worker nodes. + 2. Install the Local Storage Operator. Please refer to Open Shift persistent storage documentation: https://docs.openshift.com/container-platform/4.13/storage/persistent_storage/persistent_storage_local/persistent-storage-local.html + and the Local Storage Operator documentation: https://github.com/openshift/local-storage-operator. + 3. Use the Local Storage Operator to automatically create persistent volumes for your chosen storage class name as documented here: https://docs.openshift.com/container-platform/4.13/storage/persistent_storage/persistent_storage_local/persistent-storage-local.html + 4. Specify the storage class name from step 3 as the value of the `nexusData.storageClass.name` property and also set `nexusData.volumeClaimTemplate.enabled` to true. + + #### Configuring the operator for dynamic persistent volume provisioning + * Set the `nexusData.storageClass.name` parameter to a storage class name. This could be one of the default storage classes automatically created in your OpenShift cluster (e.g., if you're using ROSA) or one that you would like the operator to create. + * If you would like to create a dedicated storage class (i.e., you don't want to use the default), then in addition to specifying a value for `nexusData.storageClass.name`, you must also set `nexusData.storageClass.enabled` parameter to `true`. + * Set the `nexusData.volumeClaimTemplate.enabled` parameter to `true`. + + ### Additional configuration + * Once the operator has created the server instance and it is running, you can further configure Nexus Repository via the NexusRepo custom resource: + + | Parameter | Description | Default | + | ----------------------------------------------------------- | ---------------------------------- | ----------------------------------------| + | `statefulset.name` | The suffix for the statefulset's service name | nexusrepo-statefulset | + | `statefulset.replicaCount` | The desired number of Nexus Repository pods | 3 | + | `statefulset.container.imageName` | The Nexus repository image registry url | registry.connect.redhat.com/sonatype/nexus-repository-manager:-ubi-1| + | `statefulset.container.resources.requests.cpu` | The minimum cpu the Nexus repository pod can request | 4 | + | `statefulset.container.resources.requests.memory` | The minimum memory the Nexus repository pod can request | 8Gi| + | `statefulset.container.resources.limits.cpu` | The maximum cpu the Nexus repository pod may get. | 4| + | `statefulset.container.resources.limits.memory` | The maximum memory the Nexus repository pod may get. | 8Gi| + | `statefulset.container.containerPort` | The Nexus Repository container's HTTP port | 8081| + | `statefulset.container.pullPolicy` | The Nexus Repository docker image pull policy | IfNotPresent| + | `statefulset.container.terminationGracePeriod` | The time given for the pod to gracefully shut down | 120 seconds| + | `statefulset.container.env.clustered` | Controls whether Nexus Repository should start in clustered mode | False| + | `statefulset.container.env.install4jAddVmParams` | Xmx and Xms settings for JVM | -Xms2703m -Xmx2703m| + | `statefulset.container.env.user` | The database user name | nexus (can be overridden via Kubernetes secret. See above)| + | `statefulset.container.env.password` | The database password | nexus (can be overridden via Kubernetes secret. See above)| + | `statefulset.container.env.jdbcUrl` | The database url | jdbc:postgresql://your_database_server:5432/nexus (must be overridden via Kubernetes secret object which feeds into env variable variables defined in the operator.yaml . See above)| + | `statefulset.container.env.nexusInitialPassword` | The initial admin password for Nexus Repository UI. This is for first time installs only. Subsequent installs/restarts on the same node ignores this setting | nexusabc| + | `statefulset.livenessProbe.initialDelaySeconds` | The initial delay before the Nexus Repository application is pinged for a response i.e. to determine whether the application is still alive | 240| + | `statefulset.livenessProbe.path` | The path to ping the application | | + | `statefulset.livenessProbe.periodSeconds` | The interval for checking that the application is still alive i.e. responsive, not deadlocked etc | 60| + | `statefulset.livenessProbe.failureThreshold` | The maximum number of times the application ping can fail before the application is considered unresponsive. Kubernetes will attempt to restart the application's pod in this case | 6| + | `statefulset.readinessProbe.initialDelaySeconds` | The initial delay before the Nexus Repository application is checked whether it is ready to receive traffic | 240| + | `statefulset.readinessProbe.path` | The path where the Nexus Repository application is checked for traffic readiness | | + | `statefulset.readinessProbe.periodSeconds` | The interval for checking the Nexus Repository application for traffic readiness | 60| + | `statefulset.readinessProbe.failureThreshold` | The maximum number of times to check the Nexus Repository application for traffic readiness | 6| + | `statefulset.imagePullSecrets` | The pull secret for private image registries | {}| + | `ingress.name` | The name of an Ingress object which listens for requests to Nexus Repository on port 80 | nexus-ingress| + | `ingress.enabled` | Whether or not to create the Ingress | false| + | `ingress.host` | Ingress host | "example.com"| + | `ingress.defaultRule` | Whether or not to add a default rule for the Nexus Repository Ingress which forwards traffic to a Service object | false| + | `ingress.additionalRules` | Additional rules to add to the ingress | null| + | `ingress.tls.enabled` | Whether or not TLS should be enabled for the Ingress | false| + | `ingress.tls.secretName` | The name of a Secret object in which to store the TLS secret | tlsSecretName| + | `ingress.dockerSubdomain` | Whether or not to add rules for docker subdomains | false| + | `ingress.annotations` | Annotations for the Ingress object | null | + | `license.fileContentsBase64` | Your Base64 encoded Nexus Repository license | your_license_file_contents_in_base_64 | + | `license.secretName` | The name of a secret object in which to store your Base64-encoded Nexus Repository license | nexus-repo-license| + | `ingress.dockerIngress.name` | The name of an Ingress object which listens for requests to an existing docker repository in Nexus Repository | nexus-docker-ingress| + | `ingress.dockerIngress.enabled` | Whether or not to create an Ingress for a docker repository | false| + | `ingress.dockerIngress.host` | The docker Ingress's host | "example.com"| + | `ingress.dockerIngress.annotations` | Annotations for the docker Ingress object | null | + | `nexusData.pvc.size` | The volume size to request for storing Nexus logs | 2Gi | + | `nexusData.pvc.accessMode` | The persistent volume claim access mode | ReadWriteOnce | + | `nexusData.storageClass.name` | The name of the storage class to use for dynamically requesting that storage be provisioned when using dynamic provisioning or to randomly select a pre-created persisted volume when using the Local Storage Operator. | nexusrepo-storage | + | `nexusData.storageClass.reclaimPolicy` | The reclaim policy for persistent volume's created by the storage class | Retain | + | `nexusData.storageClass.enabled` | Whether or not a storage class object should be created. | false | + | `nexusData.storageClass.volumeBindingMode` | It controls when volume binding and dynamic provisioning should occur | WaitForFirstConsumer | + | `nexusData.storageClass.provisioner` | The name of the volume provisioner | provisioner | + | `nexusData.storageClass.parameters` | The additional parameters for the storage class | {} | + | `nexusData.volumeClaimTemplate.enabled` | Whether or not volume should be requested using a claim template. You should set this property to true when using dynamic volume provisioning (cloud deployments) or if you're using Local Storage Operator to automatically create persistent volumes for locally attached disks (i.e. not root disk) | false | + | `license.secretName | A name for the Kubernetes secret object which stores the base64 representation of your Nexus Repository license specified via `license.fileContentsBase64` is stored | nexus-repo-license | + | `license.fileContentsBase64 | A base64 representation of your Nexus Repository license | your_license_file_contents_in_base_64 | + | `service.nexus.name` | The name of a kubernetes Service Object which allows access to Nexus Repository's main HTTP port | nexus-repo-service | + | `service.nexus.enabled` | Whether or not to create the Service object | false| + | `service.nexus.type` | The type of the Kubernetes Service | "NodePort"| + | `service.nexus.protocol` | The protocol | TCP | + | `service.nexus.port` | The port to listen for incoming requests | 80| + | `service.nexus.targetPort` | The port to forward requests to | 8081 | + | `service.docker.name` | The name of a kubernetes Service Object which allows access to a docker repository within Nexus Repository | nexus-repo-docker-service | + | `service.docker.enabled` | Whether or not to create a Kubernetes Service object for a given docker repository within Nexus Repository | false | + | `service.docker.type` | The type of the Kubernetes Service | "NodePort"| + | `service.docker.protocol` | The protocol | TCP | + | `service.docker.port` | The port to listen for incoming requests | 9090 | + | `service.docker.targetPort` | The port to forward requests to | 9090 | + + displayName: Nexus Repository HA Operator + icon: + - base64data: "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" + mediatype: "image/png" + install: + spec: + deployments: + - name: nexus-repository-ha-operator-certified + spec: + replicas: 1 + selector: + matchLabels: + name: nexus-repository-ha-operator-certified + strategy: {} + template: + metadata: + labels: + name: nexus-repository-ha-operator-certified + spec: + containers: + - env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: nexus-repository-ha-operator-certified + - name: RELATED_IMAGE_NEXUS + value: registry.connect.redhat.com/sonatype/nexus-repository-manager@sha256:045c66ef2ad3b071bfbb45a0db336597498d24ef13143a6cae221ddf4982aba0 + image: registry.connect.redhat.com/sonatype/nexus-repository-ha-operator-certified@sha256:43cf8f0eabb42fbabdfaa2ca16d185eac7f41d0d786ee814dcb155d809934640 + imagePullPolicy: Always + name: nexus-repository-ha-operator-certified + resources: {} + serviceAccountName: nexus-repository-ha-operator-certified + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - apiGroups: + - "" + resources: + - configmaps + - secrets + - services + verbs: + - '*' + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - sonatype.com + resources: + - nexusrepos + - nexusrepos/status + - nexusrepos/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - '*' + - apiGroups: + - "" + resources: + - secrets + - persistentvolumes + - services + verbs: + - '*' + - apiGroups: + - apps + resources: + - statefulsets + verbs: + - '*' + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - create + - apiGroups: + - apps + resourceNames: + - nexus-repository-ha-operator-certified + resources: + - statefulsets/finalizers + verbs: + - update + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - apiGroups: + - apps + resources: + - statefulsets + verbs: + - get + serviceAccountName: nexus-repository-ha-operator-certified + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - repository + - sonatype + links: + - name: Nexus Repository Manager + url: https://www.sonatype.com/product-nexus-repository + maintainers: + - email: support@sonatype.com + name: Sonatype + maturity: stable + provider: + name: Sonatype + version: 3.72.0-1 diff --git a/deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/manifests/sonatype.com_nexusrepos_crd.yaml b/deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/manifests/sonatype.com_nexusrepos_crd.yaml new file mode 100644 index 0000000..e4105e9 --- /dev/null +++ b/deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/manifests/sonatype.com_nexusrepos_crd.yaml @@ -0,0 +1,44 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: nexusrepos.sonatype.com +spec: + group: sonatype.com + names: + kind: NexusRepo + listKind: NexusRepoList + plural: nexusrepos + singular: nexusrepo + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: NexusRepo is the Schema for the nexusrepos 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: Spec defines the desired state of NexusRepo + type: object + x-kubernetes-preserve-unknown-fields: true + status: + description: Status defines the observed state of NexusRepo + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} diff --git a/deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/metadata/annotations.yaml b/deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/metadata/annotations.yaml new file mode 100644 index 0000000..1062ef3 --- /dev/null +++ b/deploy/olm-catalog/nexus-repository-ha-operator-certified/3.72.0-1/metadata/annotations.yaml @@ -0,0 +1,9 @@ +--- +annotations: + operators.operatorframework.io.bundle.channel.default.v1: stable + operators.operatorframework.io.bundle.channels.v1: stable + 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: nexus-repository-ha-operator-certified + com.redhat.openshift.versions: v4.10 diff --git a/deploy/olm-catalog/nexus-repository-ha-operator-certified/nexus-repository-ha-operator-certified.package.yaml b/deploy/olm-catalog/nexus-repository-ha-operator-certified/nexus-repository-ha-operator-certified.package.yaml index 2da7921..6ddcffe 100644 --- a/deploy/olm-catalog/nexus-repository-ha-operator-certified/nexus-repository-ha-operator-certified.package.yaml +++ b/deploy/olm-catalog/nexus-repository-ha-operator-certified/nexus-repository-ha-operator-certified.package.yaml @@ -1,7 +1,7 @@ # DO NOT MODIFY. This is produced by template. --- channels: - - currentCSV: nexus-repository-ha-operator-certified.v3.71.0-1 + - currentCSV: nexus-repository-ha-operator-certified.v3.72.0-1 name: stable defaultChannel: stable packageName: nexus-repository-ha-operator-certified diff --git a/deploy/operator.yaml b/deploy/operator.yaml index ed565b1..6709264 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -18,7 +18,7 @@ spec: containers: - name: nexus-repository-ha-operator-certified # Replace this with the built image name - image: registry.connect.redhat.com/sonatype/nexus-repository-ha-operator-certified@sha256:d106ce5892193c02e080cf1abbd2a82ab2e013fd757b72be4c0643d030015199 + image: registry.connect.redhat.com/sonatype/nexus-repository-ha-operator-certified@sha256:43cf8f0eabb42fbabdfaa2ca16d185eac7f41d0d786ee814dcb155d809934640 imagePullPolicy: Always securityContext: allowPrivilegeEscalation: false @@ -36,4 +36,4 @@ spec: - name: OPERATOR_NAME value: "nexus-repository-ha-operator-certified" - name: RELATED_IMAGE_NEXUS - value: registry.connect.redhat.com/sonatype/nexus-repository-manager@sha256:fad320b990ecb5bcacf7ece0eef6cd0cf5fcbc0ee6b98bf5e51f3eeed0a479d1 \ No newline at end of file + value: registry.connect.redhat.com/sonatype/nexus-repository-manager@sha256:045c66ef2ad3b071bfbb45a0db336597498d24ef13143a6cae221ddf4982aba0 \ No newline at end of file