[bitnami/rabbitmq-cluster-operator] MAJOR: Add rabbitmq-messaging-topology-operator and rabbitmq-default-user-credential-updater (#7965)

* [bitnami/rabbitmq-cluster-operator] MAJOR: Add rabbitmq-messaging-topology-operator and rabbitmq-default-user-credential-updater

* Applied requested changes

* Fix incorrect references

* [bitnami/rabbitmq-cluster-operator] Update components versions

Signed-off-by: Bitnami Containers <containers@bitnami.com>

Co-authored-by: Bitnami Containers <containers@bitnami.com>
This commit is contained in:
Javier J. Salmerón-García
2021-11-04 17:10:30 +01:00
committed by GitHub
parent f3629760c5
commit a9b367272e
31 changed files with 3773 additions and 639 deletions

View File

@@ -1,6 +1,6 @@
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.10.0
digest: sha256:d6f283322d34efda54721ddd67aec935f1bea501c7b45dfbe89814aed21ae5dc
generated: "2021-10-14T12:39:13.48862912Z"
version: 1.10.1
digest: sha256:46a0218b2fbb421c87da91166dc5230d3ec85aa7d822dff1d479619fff8314e7
generated: "2021-10-28T17:10:16.979666+02:00"

View File

@@ -25,4 +25,4 @@ name: rabbitmq-cluster-operator
sources:
- https://github.com/bitnami/bitnami-docker-rabbitmq-cluster-operator
- https://github.com/rabbitmq/cluster-operator
version: 1.0.2
version: 2.0.0

View File

@@ -133,7 +133,6 @@ This solution allows to easily deploy multiple RabbitMQ instances compared to th
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
| `global.storageClass` | Global StorageClass for Persistent Volume(s) | `""` |
### Common parameters
| Name | Description | Value |
@@ -146,102 +145,218 @@ This solution allows to easily deploy multiple RabbitMQ instances compared to th
| `clusterDomain` | Kubernetes cluster domain name | `cluster.local` |
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` |
### RabbitMQ Cluster Operator Parameters
| Name | Description | Value |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `image.registry` | RabbitMQ Cluster Operator image registry | `docker.io` |
| `image.repository` | RabbitMQ Cluster Operator image repository | `bitnami/rabbitmq-cluster-operator` |
| `image.tag` | RabbitMQ Cluster Operator image tag (immutable tags are recommended) | `1.10.0-scratch-r1` |
| `image.pullPolicy` | RabbitMQ Cluster Operator image pull policy | `IfNotPresent` |
| `image.pullSecrets` | RabbitMQ Cluster Operator image pull secrets | `[]` |
| `rabbitmqImage.registry` | RabbitMQ Image registry | `docker.io` |
| `rabbitmqImage.repository` | RabbitMQ Image repository | `bitnami/rabbitmq` |
| `rabbitmqImage.tag` | RabbitMQ Image tag (immutable tags are recommended) | `3.8.23-debian-10-r18` |
| `rabbitmqImage.pullSecrets` | RabbitMQ Image pull secrets | `[]` |
| `replicaCount` | Number of RabbitMQ Cluster Operator replicas to deploy | `1` |
| `livenessProbe.enabled` | Enable livenessProbe on RabbitMQ Cluster Operator nodes | `true` |
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `5` |
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `30` |
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `5` |
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `readinessProbe.enabled` | Enable readinessProbe on RabbitMQ Cluster Operator nodes | `true` |
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `30` |
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `5` |
| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `startupProbe.enabled` | Enable startupProbe on RabbitMQ Cluster Operator nodes | `false` |
| `startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `5` |
| `startupProbe.periodSeconds` | Period seconds for startupProbe | `30` |
| `startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` |
| `startupProbe.failureThreshold` | Failure threshold for startupProbe | `5` |
| `startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
| `customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
| `customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
| `customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
| `resources.limits` | The resources limits for the RabbitMQ Cluster Operator containers | `{}` |
| `resources.requests` | The requested resources for the RabbitMQ Cluster Operator containers | `{}` |
| `podSecurityContext.enabled` | Enabled RabbitMQ Cluster Operator pods' Security Context | `true` |
| `podSecurityContext.fsGroup` | Set RabbitMQ Cluster Operator pod's Security Context fsGroup | `1001` |
| `containerSecurityContext.enabled` | Enabled RabbitMQ Cluster Operator containers' Security Context | `true` |
| `containerSecurityContext.runAsUser` | Set RabbitMQ Cluster Operator containers' Security Context runAsUser | `1001` |
| `command` | Override default container command (useful when using custom images) | `[]` |
| `args` | Override default container args (useful when using custom images) | `[]` |
| `hostAliases` | RabbitMQ Cluster Operator pods host aliases | `[]` |
| `podLabels` | Extra labels for RabbitMQ Cluster Operator pods | `{}` |
| `podAnnotations` | Annotations for RabbitMQ Cluster Operator pods | `{}` |
| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `nodeAffinityPreset.key` | Node label key to match. Ignored if `affinity` is set | `""` |
| `nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set | `[]` |
| `affinity` | Affinity for RabbitMQ Cluster Operator pods assignment | `{}` |
| `nodeSelector` | Node labels for RabbitMQ Cluster Operator pods assignment | `{}` |
| `tolerations` | Tolerations for RabbitMQ Cluster Operator pods assignment | `[]` |
| `updateStrategy.type` | RabbitMQ Cluster Operator statefulset strategy type | `RollingUpdate` |
| `priorityClassName` | RabbitMQ Cluster Operator pods' priorityClassName | `""` |
| `lifecycleHooks` | for the RabbitMQ Cluster Operator container(s) to automate configuration before or after startup | `{}` |
| `containerPort` | RabbitMQ Cluster Operator container port (used for metrics) | `9782` |
| `extraEnvVars` | Array with extra environment variables to add to RabbitMQ Cluster Operator nodes | `[]` |
| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for RabbitMQ Cluster Operator nodes | `""` |
| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars for RabbitMQ Cluster Operator nodes | `""` |
| `extraVolumes` | Optionally specify extra list of additional volumes for the RabbitMQ Cluster Operator pod(s) | `[]` |
| `extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the RabbitMQ Cluster Operator container(s) | `[]` |
| `sidecars` | Add additional sidecar containers to the RabbitMQ Cluster Operator pod(s) | `[]` |
| `initContainers` | Add additional init containers to the RabbitMQ Cluster Operator pod(s) | `[]` |
| Name | Description | Value |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `rabbitmqImage.registry` | RabbitMQ Image registry | `docker.io` |
| `rabbitmqImage.repository` | RabbitMQ Image repository | `bitnami/rabbitmq` |
| `rabbitmqImage.tag` | RabbitMQ Image tag (immutable tags are recommended) | `3.8.23-debian-10-r18` |
| `rabbitmqImage.pullSecrets` | RabbitMQ Image pull secrets | `[]` |
| `credentialUpdaterImage.registry` | RabbitMQ Default User Credential Updater Image registry | `docker.io` |
| `credentialUpdaterImage.repository` | RabbitMQ Default User Credential Updater Image repository | `bitnami/rabbitmq` |
| `credentialUpdaterImage.tag` | RabbitMQ Default User Credential Updater Image tag (immutable tags are recommended) | `3.8.23-debian-10-r18` |
| `credentialUpdaterImage.pullSecrets` | RabbitMQ Default User Credential Updater Image pull secrets | `[]` |
| `clusterOperator.image.registry` | RabbitMQ Cluster Operator image registry | `docker.io` |
| `clusterOperator.image.repository` | RabbitMQ Cluster Operator image repository | `bitnami/rabbitmq-cluster-operator` |
| `clusterOperator.image.tag` | RabbitMQ Cluster Operator image tag (immutable tags are recommended) | `1.10.0-scratch-r1` |
| `clusterOperator.image.pullPolicy` | RabbitMQ Cluster Operator image pull policy | `IfNotPresent` |
| `clusterOperator.image.pullSecrets` | RabbitMQ Cluster Operator image pull secrets | `[]` |
| `clusterOperator.replicaCount` | Number of RabbitMQ Cluster Operator replicas to deploy | `1` |
| `clusterOperator.schedulerName` | Alternative scheduler | `""` |
| `clusterOperator.topologySpreadConstraints` | Topology Spread Constraints for pod assignment | `[]` |
| `clusterOperator.livenessProbe.enabled` | Enable livenessProbe on RabbitMQ Cluster Operator nodes | `true` |
| `clusterOperator.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `5` |
| `clusterOperator.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `30` |
| `clusterOperator.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
| `clusterOperator.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `5` |
| `clusterOperator.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `clusterOperator.readinessProbe.enabled` | Enable readinessProbe on RabbitMQ Cluster Operator nodes | `true` |
| `clusterOperator.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
| `clusterOperator.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `30` |
| `clusterOperator.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
| `clusterOperator.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `5` |
| `clusterOperator.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `clusterOperator.startupProbe.enabled` | Enable startupProbe on RabbitMQ Cluster Operator nodes | `false` |
| `clusterOperator.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `5` |
| `clusterOperator.startupProbe.periodSeconds` | Period seconds for startupProbe | `30` |
| `clusterOperator.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` |
| `clusterOperator.startupProbe.failureThreshold` | Failure threshold for startupProbe | `5` |
| `clusterOperator.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
| `clusterOperator.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
| `clusterOperator.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
| `clusterOperator.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
| `clusterOperator.resources.limits` | The resources limits for the RabbitMQ Cluster Operator containers | `{}` |
| `clusterOperator.resources.requests` | The requested resources for the RabbitMQ Cluster Operator containers | `{}` |
| `clusterOperator.podSecurityContext.enabled` | Enabled RabbitMQ Cluster Operator pods' Security Context | `true` |
| `clusterOperator.podSecurityContext.fsGroup` | Set RabbitMQ Cluster Operator pod's Security Context fsGroup | `1001` |
| `clusterOperator.containerSecurityContext.enabled` | Enabled RabbitMQ Cluster Operator containers' Security Context | `true` |
| `clusterOperator.containerSecurityContext.runAsUser` | Set RabbitMQ Cluster Operator containers' Security Context runAsUser | `1001` |
| `clusterOperator.containerSecurityContext.runAsNonRoot` | Force running the container as non root | `true` |
| `clusterOperator.command` | Override default container command (useful when using custom images) | `[]` |
| `clusterOperator.args` | Override default container args (useful when using custom images) | `[]` |
| `clusterOperator.hostAliases` | RabbitMQ Cluster Operator pods host aliases | `[]` |
| `clusterOperator.podLabels` | Extra labels for RabbitMQ Cluster Operator pods | `{}` |
| `clusterOperator.podAnnotations` | Annotations for RabbitMQ Cluster Operator pods | `{}` |
| `clusterOperator.podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `clusterOperator.podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `clusterOperator.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `clusterOperator.nodeAffinityPreset.key` | Node label key to match. Ignored if `affinity` is set | `""` |
| `clusterOperator.nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set | `[]` |
| `clusterOperator.affinity` | Affinity for RabbitMQ Cluster Operator pods assignment | `{}` |
| `clusterOperator.nodeSelector` | Node labels for RabbitMQ Cluster Operator pods assignment | `{}` |
| `clusterOperator.tolerations` | Tolerations for RabbitMQ Cluster Operator pods assignment | `[]` |
| `clusterOperator.updateStrategy.type` | RabbitMQ Cluster Operator statefulset strategy type | `RollingUpdate` |
| `clusterOperator.priorityClassName` | RabbitMQ Cluster Operator pods' priorityClassName | `""` |
| `clusterOperator.lifecycleHooks` | for the RabbitMQ Cluster Operator container(s) to automate configuration before or after startup | `{}` |
| `clusterOperator.containerPorts.metrics` | RabbitMQ Cluster Operator container port (used for metrics) | `9782` |
| `clusterOperator.extraEnvVars` | Array with extra environment variables to add to RabbitMQ Cluster Operator nodes | `[]` |
| `clusterOperator.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for RabbitMQ Cluster Operator nodes | `""` |
| `clusterOperator.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for RabbitMQ Cluster Operator nodes | `""` |
| `clusterOperator.extraVolumes` | Optionally specify extra list of additional volumes for the RabbitMQ Cluster Operator pod(s) | `[]` |
| `clusterOperator.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the RabbitMQ Cluster Operator container(s) | `[]` |
| `clusterOperator.sidecars` | Add additional sidecar containers to the RabbitMQ Cluster Operator pod(s) | `[]` |
| `clusterOperator.initContainers` | Add additional init containers to the RabbitMQ Cluster Operator pod(s) | `[]` |
| `clusterOperator.rbac.create` | Specifies whether RBAC resources should be created | `true` |
| `clusterOperator.serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` |
| `clusterOperator.serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
| `clusterOperator.serviceAccount.annotations` | Add annotations | `{}` |
| `clusterOperator.serviceAccount.automountServiceAccountToken` | Automount API credentials for a service account. | `true` |
### RabbitMQ Cluster Operator Metrics parameters
### Other Parameters
| Name | Description | Value |
| ---------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------ |
| `clusterOperator.metrics.enabled` | Create a service for accessing the metrics endpoint | `false` |
| `clusterOperator.metrics.service.type` | RabbitMQ Cluster Operator metrics service type | `ClusterIP` |
| `clusterOperator.metrics.service.ports.http` | RabbitMQ Cluster Operator metrics service HTTP port | `80` |
| `clusterOperator.metrics.service.nodePorts.http` | Node port for HTTP | `""` |
| `clusterOperator.metrics.service.clusterIP` | RabbitMQ Cluster Operator metrics service Cluster IP | `""` |
| `clusterOperator.metrics.service.extraPorts` | Extra ports to expose (normally used with the `sidecar` value) | `[]` |
| `clusterOperator.metrics.service.loadBalancerIP` | RabbitMQ Cluster Operator metrics service Load Balancer IP | `""` |
| `clusterOperator.metrics.service.loadBalancerSourceRanges` | RabbitMQ Cluster Operator metrics service Load Balancer sources | `[]` |
| `clusterOperator.metrics.service.externalTrafficPolicy` | RabbitMQ Cluster Operator metrics service external traffic policy | `Cluster` |
| `clusterOperator.metrics.service.annotations` | Additional custom annotations for RabbitMQ Cluster Operator metrics service | `{}` |
| `clusterOperator.metrics.serviceMonitor.enabled` | Specify if a servicemonitor will be deployed for prometheus-operator | `false` |
| `clusterOperator.metrics.serviceMonitor.jobLabel` | Specify the jobLabel to use for the prometheus-operator | `app.kubernetes.io/name` |
| `clusterOperator.metrics.serviceMonitor.honorLabels` | Honor metrics labels | `false` |
| `clusterOperator.metrics.serviceMonitor.selector` | Prometheus instance selector labels | `{}` |
| `clusterOperator.metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` |
| `clusterOperator.metrics.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `""` |
| `clusterOperator.metrics.serviceMonitor.additionalLabels` | Used to pass Labels that are required by the installed Prometheus Operator | `{}` |
| `clusterOperator.metrics.serviceMonitor.metricRelabelings` | Specify additional relabeling of metrics | `[]` |
| `clusterOperator.metrics.serviceMonitor.relabelings` | Specify general relabeling | `[]` |
| Name | Description | Value |
| ----------------------- | ---------------------------------------------------- | ------ |
| `rbac.create` | Specifies whether RBAC resources should be created | `true` |
| `serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` |
| `serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
### RabbitMQ Messaging Topology Operator Parameters
| Name | Description | Value |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------- |
| `msgTopologyOperator.image.registry` | RabbitMQ Messaging Topology Operator image registry | `docker.io` |
| `msgTopologyOperator.image.repository` | RabbitMQ Messaging Topology Operator image repository | `bitnami/rmq-messaging-topology-operator` |
| `msgTopologyOperator.image.tag` | RabbitMQ Messaging Topology Operator image tag (immutable tags are recommended) | `1.10.0-scratch-r1` |
| `msgTopologyOperator.image.pullPolicy` | RabbitMQ Messaging Topology Operator image pull policy | `IfNotPresent` |
| `msgTopologyOperator.image.pullSecrets` | RabbitMQ Messaging Topology Operator image pull secrets | `[]` |
| `msgTopologyOperator.replicaCount` | Number of RabbitMQ Messaging Topology Operator replicas to deploy | `1` |
| `msgTopologyOperator.topologySpreadConstraints` | Topology Spread Constraints for pod assignment | `[]` |
| `msgTopologyOperator.schedulerName` | Alternative scheduler | `""` |
| `msgTopologyOperator.livenessProbe.enabled` | Enable livenessProbe on RabbitMQ Messaging Topology Operator nodes | `true` |
| `msgTopologyOperator.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `5` |
| `msgTopologyOperator.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `30` |
| `msgTopologyOperator.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
| `msgTopologyOperator.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `5` |
| `msgTopologyOperator.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `msgTopologyOperator.readinessProbe.enabled` | Enable readinessProbe on RabbitMQ Messaging Topology Operator nodes | `true` |
| `msgTopologyOperator.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
| `msgTopologyOperator.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `30` |
| `msgTopologyOperator.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
| `msgTopologyOperator.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `5` |
| `msgTopologyOperator.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `msgTopologyOperator.startupProbe.enabled` | Enable startupProbe on RabbitMQ Messaging Topology Operator nodes | `false` |
| `msgTopologyOperator.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `5` |
| `msgTopologyOperator.startupProbe.periodSeconds` | Period seconds for startupProbe | `30` |
| `msgTopologyOperator.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` |
| `msgTopologyOperator.startupProbe.failureThreshold` | Failure threshold for startupProbe | `5` |
| `msgTopologyOperator.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
| `msgTopologyOperator.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
| `msgTopologyOperator.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
| `msgTopologyOperator.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
| `msgTopologyOperator.existingWebhookCertSecret` | name of a secret containing the certificates (use it to avoid certManager creating one) | `""` |
| `msgTopologyOperator.existingWebhookCertCABundle` | PEM-encoded CA Bundle of the existing secret provided in existingWebhookCertSecret (only if useCertManager=false) | `""` |
| `msgTopologyOperator.resources.limits` | The resources limits for the RabbitMQ Messaging Topology Operator containers | `{}` |
| `msgTopologyOperator.resources.requests` | The requested resources for the RabbitMQ Messaging Topology Operator containers | `{}` |
| `msgTopologyOperator.podSecurityContext.enabled` | Enabled RabbitMQ Messaging Topology Operator pods' Security Context | `true` |
| `msgTopologyOperator.podSecurityContext.fsGroup` | Set RabbitMQ Messaging Topology Operator pod's Security Context fsGroup | `1001` |
| `msgTopologyOperator.containerSecurityContext.enabled` | Enabled RabbitMQ Messaging Topology Operator containers' Security Context | `true` |
| `msgTopologyOperator.containerSecurityContext.runAsUser` | Set RabbitMQ Messaging Topology Operator containers' Security Context runAsUser | `1001` |
| `msgTopologyOperator.containerSecurityContext.runAsNonRoot` | Force running the container as non root | `true` |
| `msgTopologyOperator.command` | Override default container command (useful when using custom images) | `[]` |
| `msgTopologyOperator.args` | Override default container args (useful when using custom images) | `[]` |
| `msgTopologyOperator.hostAliases` | RabbitMQ Messaging Topology Operator pods host aliases | `[]` |
| `msgTopologyOperator.podLabels` | Extra labels for RabbitMQ Messaging Topology Operator pods | `{}` |
| `msgTopologyOperator.podAnnotations` | Annotations for RabbitMQ Messaging Topology Operator pods | `{}` |
| `msgTopologyOperator.podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `msgTopologyOperator.podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `msgTopologyOperator.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `msgTopologyOperator.nodeAffinityPreset.key` | Node label key to match. Ignored if `affinity` is set | `""` |
| `msgTopologyOperator.nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set | `[]` |
| `msgTopologyOperator.affinity` | Affinity for RabbitMQ Messaging Topology Operator pods assignment | `{}` |
| `msgTopologyOperator.nodeSelector` | Node labels for RabbitMQ Messaging Topology Operator pods assignment | `{}` |
| `msgTopologyOperator.tolerations` | Tolerations for RabbitMQ Messaging Topology Operator pods assignment | `[]` |
| `msgTopologyOperator.updateStrategy.type` | RabbitMQ Messaging Topology Operator statefulset strategy type | `RollingUpdate` |
| `msgTopologyOperator.priorityClassName` | RabbitMQ Messaging Topology Operator pods' priorityClassName | `""` |
| `msgTopologyOperator.lifecycleHooks` | for the RabbitMQ Messaging Topology Operator container(s) to automate configuration before or after startup | `{}` |
| `msgTopologyOperator.containerPorts.metrics` | RabbitMQ Messaging Topology Operator container port (used for metrics) | `8080` |
| `msgTopologyOperator.extraEnvVars` | Array with extra environment variables to add to RabbitMQ Messaging Topology Operator nodes | `[]` |
| `msgTopologyOperator.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for RabbitMQ Messaging Topology Operator nodes | `""` |
| `msgTopologyOperator.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for RabbitMQ Messaging Topology Operator nodes | `""` |
| `msgTopologyOperator.extraVolumes` | Optionally specify extra list of additional volumes for the RabbitMQ Messaging Topology Operator pod(s) | `[]` |
| `msgTopologyOperator.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the RabbitMQ Messaging Topology Operator container(s) | `[]` |
| `msgTopologyOperator.sidecars` | Add additional sidecar containers to the RabbitMQ Messaging Topology Operator pod(s) | `[]` |
| `msgTopologyOperator.initContainers` | Add additional init containers to the RabbitMQ Messaging Topology Operator pod(s) | `[]` |
| `msgTopologyOperator.service.type` | RabbitMQ Messaging Topology Operator webhook service type | `ClusterIP` |
| `msgTopologyOperator.service.ports.webhook` | RabbitMQ Messaging Topology Operator webhook service HTTP port | `443` |
| `msgTopologyOperator.service.nodePorts.http` | Node port for HTTP | `""` |
| `msgTopologyOperator.service.clusterIP` | RabbitMQ Messaging Topology Operator webhook service Cluster IP | `""` |
| `msgTopologyOperator.service.loadBalancerIP` | RabbitMQ Messaging Topology Operator webhook service Load Balancer IP | `""` |
| `msgTopologyOperator.service.extraPorts` | Extra ports to expose (normally used with the `sidecar` value) | `[]` |
| `msgTopologyOperator.service.loadBalancerSourceRanges` | RabbitMQ Messaging Topology Operator webhook service Load Balancer sources | `[]` |
| `msgTopologyOperator.service.externalTrafficPolicy` | RabbitMQ Messaging Topology Operator webhook service external traffic policy | `Cluster` |
| `msgTopologyOperator.service.annotations` | Additional custom annotations for RabbitMQ Messaging Topology Operator webhook service | `{}` |
| `msgTopologyOperator.rbac.create` | Specifies whether RBAC resources should be created | `true` |
| `msgTopologyOperator.serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` |
| `msgTopologyOperator.serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
| `msgTopologyOperator.serviceAccount.annotations` | Add annotations | `{}` |
| `msgTopologyOperator.serviceAccount.automountServiceAccountToken` | Automount API credentials for a service account. | `true` |
### Metrics parameters
### RabbitMQ Messaging Topology Operator parameters
| Name | Description | Value |
| ------------------------------------------ | --------------------------------------------------------------------------- | ------------------------ |
| `metrics.enabled` | Create a service for accessing the metrics endpoint | `false` |
| `metrics.service.type` | RabbitMQ Cluster Operator metrics service type | `ClusterIP` |
| `metrics.service.port` | RabbitMQ Cluster Operator metrics service HTTP port | `80` |
| `metrics.service.nodePorts.http` | Node port for HTTP | `""` |
| `metrics.service.clusterIP` | RabbitMQ Cluster Operator metrics service Cluster IP | `""` |
| `metrics.service.loadBalancerIP` | RabbitMQ Cluster Operator metrics service Load Balancer IP | `""` |
| `metrics.service.loadBalancerSourceRanges` | RabbitMQ Cluster Operator metrics service Load Balancer sources | `[]` |
| `metrics.service.externalTrafficPolicy` | RabbitMQ Cluster Operator metrics service external traffic policy | `Cluster` |
| `metrics.service.annotations` | Additional custom annotations for RabbitMQ Cluster Operator metrics service | `{}` |
| `metrics.serviceMonitor.enabled` | Specify if a servicemonitor will be deployed for prometheus-operator | `false` |
| `metrics.serviceMonitor.jobLabel` | Specify the jobLabel to use for the prometheus-operator | `app.kubernetes.io/name` |
| `metrics.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `""` |
| `metrics.serviceMonitor.metricRelabelings` | Specify additional relabeling of metrics | `[]` |
| `metrics.serviceMonitor.relabelings` | Specify general relabeling | `[]` |
| Name | Description | Value |
| -------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------ |
| `msgTopologyOperator.metrics.enabled` | Create a service for accessing the metrics endpoint | `false` |
| `msgTopologyOperator.metrics.service.type` | RabbitMQ Cluster Operator metrics service type | `ClusterIP` |
| `msgTopologyOperator.metrics.service.ports.http` | RabbitMQ Cluster Operator metrics service HTTP port | `80` |
| `msgTopologyOperator.metrics.service.nodePorts.http` | Node port for HTTP | `""` |
| `msgTopologyOperator.metrics.service.clusterIP` | RabbitMQ Cluster Operator metrics service Cluster IP | `""` |
| `msgTopologyOperator.metrics.service.extraPorts` | Extra ports to expose (normally used with the `sidecar` value) | `[]` |
| `msgTopologyOperator.metrics.service.loadBalancerIP` | RabbitMQ Cluster Operator metrics service Load Balancer IP | `""` |
| `msgTopologyOperator.metrics.service.loadBalancerSourceRanges` | RabbitMQ Cluster Operator metrics service Load Balancer sources | `[]` |
| `msgTopologyOperator.metrics.service.externalTrafficPolicy` | RabbitMQ Cluster Operator metrics service external traffic policy | `Cluster` |
| `msgTopologyOperator.metrics.service.annotations` | Additional custom annotations for RabbitMQ Cluster Operator metrics service | `{}` |
| `msgTopologyOperator.metrics.serviceMonitor.enabled` | Specify if a servicemonitor will be deployed for prometheus-operator | `false` |
| `msgTopologyOperator.metrics.serviceMonitor.jobLabel` | Specify the jobLabel to use for the prometheus-operator | `app.kubernetes.io/name` |
| `msgTopologyOperator.metrics.serviceMonitor.additionalLabels` | Used to pass Labels that are required by the installed Prometheus Operator | `{}` |
| `msgTopologyOperator.metrics.serviceMonitor.selector` | Prometheus instance selector labels | `{}` |
| `msgTopologyOperator.metrics.serviceMonitor.honorLabels` | Honor metrics labels | `false` |
| `msgTopologyOperator.metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` |
| `msgTopologyOperator.metrics.serviceMonitor.interval` | Scrape interval. If not set, the Prometheus default scrape interval is used | `""` |
| `msgTopologyOperator.metrics.serviceMonitor.metricRelabelings` | Specify additional relabeling of metrics | `[]` |
| `msgTopologyOperator.metrics.serviceMonitor.relabelings` | Specify general relabeling | `[]` |
### cert-manager parameters
| Name | Description | Value |
| ---------------- | ----------------------------------------------------------------- | ------- |
| `useCertManager` | Deploy cert-manager objects (Issuer and Certificate) for webhooks | `false` |
See [readme-generator-for-helm](https://github.com/bitnami-labs/readme-generator-for-helm) to create the table.
@@ -320,6 +435,18 @@ Find more information about how to deal with common errors related to Bitnami's
## Upgrading
### To 2.0.0
This new version adds the following components:
- RabbitMQ Messaging Topology Operator: all the settings are inside the `msgTopologyOperator` section.
- RabbitMQ Default User Credential Updater sidecar: this enables Hashicorp Vault integration for all `RabbitMQCluster` instances.
- `cert-manager` subchart: this is necessary for the RabbitMQ Messaging Topology Webhooks to work.
As a breaking change, all `rabbitmq-cluster-operator` deployment values were moved to the `clusterOperator` section.
No issues are expected during upgrades.
### To 1.0.0
The CRD was updated according to the latest changes in the upstream project. Thanks to the improvements in the latest changes, the CRD is not templated anymore abd can be placed under the `crds` directory following [Helm best practices for CRDS](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/).

File diff suppressed because it is too large Load Diff

View File

@@ -4,9 +4,11 @@ APP VERSION: {{ .Chart.AppVersion }}
** Please be patient while the chart is being deployed **
Watch the RabbitMQ Cluster Operator Deployment status using the command:
Watch the RabbitMQ Cluster Operator and RabbitMQ Messaging Topology Operator Deployment status using the command:
kubectl get deploy -w --namespace {{ .Release.Namespace }} -l app.kubernetes.io/name={{ include "common.names.name" . }},app.kubernetes.io/instance={{ .Release.Name }}
{{ include "common.warnings.rollingTag" .Values.image }}
{{ include "common.warnings.rollingTag" .Values.clusterOperator.image }}
{{ include "common.warnings.rollingTag" .Values.msgTopologyOperator.image }}
{{ include "common.warnings.rollingTag" .Values.credentialUpdaterImage }}
{{ include "common.warnings.rollingTag" .Values.rabbitmqImage }}

View File

@@ -1,8 +1,58 @@
{{/*
Return the proper RabbitMQ Cluster Operator fullname
Note: We use the regular common function as the chart name already contains the
the rabbitmq-cluster-operator name.
*/}}
{{- define "rmqco.clusterOperator.fullname" -}}
{{- include "common.names.fullname" . -}}
{{- end -}}
{{/*
Return the proper RabbitMQ Messaging Topology Operator fullname
NOTE: Not using the common function to avoid generating too long names
*/}}
{{- define "rmqco.msgTopologyOperator.fullname" -}}
{{- printf "%s-%s" .Release.Name "rabbitmq-messaging-topology-operator" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Return the proper RabbitMQ Messaging Topology Operator fullname
NOTE: Not using the common function to avoid generating too long names
*/}}
{{- define "rmqco.msgTopologyOperator.webhook.fullname" -}}
{{- printf "%s-%s" .Release.Name "rabbitmq-messaging-topology-operator-webhook" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Return the proper RabbitMQ Messaging Topology Operator fullname
*/}}
{{- define "rmqco.msgTopologyOperator.webhook.secretName" -}}
{{- if .Values.msgTopologyOperator.existingWebhookCertSecret -}}
{{- .Values.msgTopologyOperator.existingWebhookCertSecret -}}
{{- else }}
{{- include "rmqco.msgTopologyOperator.webhook.fullname" . -}}
{{- end -}}
{{- end -}}
{{/*
Return the proper RabbitMQ Default User Credential updater image name
*/}}
{{- define "rmqco.defaultCredentialUpdater.image" -}}
{{ include "common.images.image" (dict "imageRoot" .Values.credentialUpdaterImage "global" .Values.global) }}
{{- end -}}
{{/*
Return the proper RabbitMQ Cluster Operator image name
*/}}
{{- define "rmqco.operator.image" -}}
{{ include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) }}
{{- define "rmqco.clusterOperator.image" -}}
{{ include "common.images.image" (dict "imageRoot" .Values.clusterOperator.image "global" .Values.global) }}
{{- end -}}
{{/*
Return the proper RabbitMQ Cluster Operator image name
*/}}
{{- define "rmqco.msgTopologyOperator.image" -}}
{{ include "common.images.image" (dict "imageRoot" .Values.msgTopologyOperator.image "global" .Values.global) }}
{{- end -}}
{{/*
@@ -16,17 +66,28 @@ Return the proper RabbitMQ image name
Return the proper Docker Image Registry Secret Names
*/}}
{{- define "rmqco.imagePullSecrets" -}}
{{- include "common.images.pullSecrets" (dict "images" (list .Values.image .Values.rabbitmqImage) "global" .Values.global) -}}
{{- include "common.images.pullSecrets" (dict "images" (list .Values.clusterOperator.image .Values.rabbitmqImage) "global" .Values.global) -}}
{{- end -}}
{{/*
Create the name of the service account to use
Create the name of the service account to use (Cluster Operator)
*/}}
{{- define "rmqco.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (printf "%s" (include "common.names.fullname" .)) .Values.serviceAccount.name }}
{{- define "rmqco.clusterOperator.serviceAccountName" -}}
{{- if .Values.clusterOperator.serviceAccount.create -}}
{{ default (printf "%s" (include "rmqco.clusterOperator.fullname" .)) .Values.clusterOperator.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{ default "default" .Values.clusterOperator.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create the name of the service account to use (Messaging Topology Operator)
*/}}
{{- define "rmqco.msgTopologyOperator.serviceAccountName" -}}
{{- if .Values.msgTopologyOperator.serviceAccount.create -}}
{{ default (printf "%s" (include "rmqco.msgTopologyOperator.fullname" .)) .Values.msgTopologyOperator.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.msgTopologyOperator.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,4 +1,4 @@
{{- if .Values.rbac.create }}
{{- if .Values.clusterOperator.rbac.create }}
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
kind: ClusterRole
metadata:
@@ -8,7 +8,7 @@ metadata:
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "common.names.fullname" . }}
name: {{ template "rmqco.clusterOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}

View File

@@ -1,4 +1,4 @@
{{- if .Values.rbac.create }}
{{- if .Values.clusterOperator.rbac.create }}
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
kind: ClusterRoleBinding
metadata:
@@ -8,7 +8,7 @@ metadata:
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "common.names.fullname" . }}
name: {{ template "rmqco.clusterOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
@@ -16,9 +16,9 @@ metadata:
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "common.names.fullname" . }}
name: {{ template "rmqco.clusterOperator.fullname" . }}
subjects:
- kind: ServiceAccount
name: {{ template "rmqco.serviceAccountName" . }}
name: {{ template "rmqco.clusterOperator.serviceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- end }}

View File

@@ -0,0 +1,167 @@
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "rmqco.clusterOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: rabbitmq-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.clusterOperator.replicaCount }}
{{- if .Values.clusterOperator.updateStrategy }}
strategy: {{- toYaml .Values.clusterOperator.updateStrategy | nindent 4 }}
{{- end }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: rabbitmq-operator
template:
metadata:
{{- if .Values.clusterOperator.podAnnotations }}
annotations: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.podAnnotations "context" $) | nindent 8 }}
{{- end }}
labels: {{- include "common.labels.standard" . | nindent 8 }}
app.kubernetes.io/component: rabbitmq-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.clusterOperator.podLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.podLabels "context" $) | nindent 8 }}
{{- end }}
spec:
serviceAccountName: {{ template "rmqco.clusterOperator.serviceAccountName" . }}
{{- include "rmqco.imagePullSecrets" . | nindent 6 }}
{{- if .Values.clusterOperator.schedulerName }}
schedulerName: {{ .Values.clusterOperator.schedulerName | quote }}
{{- end }}
{{- if .Values.clusterOperator.hostAliases }}
hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.hostAliases "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.clusterOperator.topologySpreadConstraints }}
topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.topologySpreadConstraints "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.clusterOperator.affinity }}
affinity: {{- include "common.tplvalues.render" ( dict "value" .Values.clusterOperator.affinity "context" $) | nindent 8 }}
{{- else }}
affinity:
podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.clusterOperator.podAffinityPreset "component" "rabbitmq-operator" "context" $) | nindent 10 }}
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.clusterOperator.podAntiAffinityPreset "component" "rabbitmq-operator" "context" $) | nindent 10 }}
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.clusterOperator.nodeAffinityPreset.type "key" .Values.clusterOperator.nodeAffinityPreset.key "values" .Values.clusterOperator.nodeAffinityPreset.values) | nindent 10 }}
{{- end }}
{{- if .Values.clusterOperator.nodeSelector }}
nodeSelector: {{- include "common.tplvalues.render" ( dict "value" .Values.clusterOperator.nodeSelector "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.clusterOperator.tolerations }}
tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.tolerations "context" .) | nindent 8 }}
{{- end }}
{{- if .Values.clusterOperator.priorityClassName }}
priorityClassName: {{ .Values.clusterOperator.priorityClassName | quote }}
{{- end }}
{{- if .Values.clusterOperator.podSecurityContext.enabled }}
securityContext: {{- omit .Values.clusterOperator.podSecurityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
initContainers:
{{- if .Values.clusterOperator.initContainers }}
{{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.initContainers "context" $) | nindent 8 }}
{{- end }}
containers:
- name: rabbitmq-cluster-operator
image: {{ template "rmqco.clusterOperator.image" . }}
imagePullPolicy: {{ .Values.clusterOperator.image.pullPolicy }}
{{- if .Values.clusterOperator.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.clusterOperator.containerSecurityContext "enabled" | toYaml | nindent 12 }}
{{- end }}
{{- if .Values.clusterOperator.command }}
command: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.command "context" $) | nindent 12 }}
{{- else }}
command:
- /manager
{{- end }}
{{- if .Values.clusterOperator.args }}
args: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.args "context" $) | nindent 12 }}
{{- else }}
args:
- --metrics-bind-address=:{{ .Values.clusterOperator.containerPorts.metrics }}
{{- end }}
env:
- name: OPERATOR_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: DEFAULT_RABBITMQ_IMAGE
value: {{ template "rmqco.rabbitmq.image" . }}
- name: DEFAULT_USER_UPDATER_IMAGE
value: {{ template "rmqco.defaultCredentialUpdater.image" . }}
{{- if .Values.clusterOperator.extraEnvVars }}
{{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.extraEnvVars "context" $) | nindent 12 }}
{{- end }}
envFrom:
{{- if .Values.clusterOperator.extraEnvVarsCM }}
- configMapRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.clusterOperator.extraEnvVarsCM "context" $) }}
{{- end }}
{{- if .Values.clusterOperator.extraEnvVarsSecret }}
- secretRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.clusterOperator.extraEnvVarsSecret "context" $) }}
{{- end }}
{{- if .Values.clusterOperator.resources }}
resources: {{- toYaml .Values.clusterOperator.resources | nindent 12 }}
{{- end }}
{{- if .Values.clusterOperator.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: /metrics
port: http
initialDelaySeconds: {{ .Values.clusterOperator.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.clusterOperator.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.clusterOperator.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.clusterOperator.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.clusterOperator.livenessProbe.failureThreshold }}
{{- else if .Values.clusterOperator.customLivenessProbe }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.customLivenessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.clusterOperator.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: /metrics
port: http
initialDelaySeconds: {{ .Values.clusterOperator.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.clusterOperator.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.clusterOperator.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.clusterOperator.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.clusterOperator.readinessProbe.failureThreshold }}
{{- else if .Values.clusterOperator.customReadinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.customReadinessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.clusterOperator.startupProbe.enabled }}
startupProbe:
httpGet:
path: /metrics
port: http
initialDelaySeconds: {{ .Values.clusterOperator.startupProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.clusterOperator.startupProbe.periodSeconds }}
timeoutSeconds: {{ .Values.clusterOperator.startupProbe.timeoutSeconds }}
successThreshold: {{ .Values.clusterOperator.startupProbe.successThreshold }}
failureThreshold: {{ .Values.clusterOperator.startupProbe.failureThreshold }}
{{- else if .Values.clusterOperator.customStartupProbe }}
startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.customStartupProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.clusterOperator.lifecycleHooks }}
lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.lifecycleHooks "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.clusterOperator.extraVolumeMounts }}
volumeMounts: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.extraVolumeMounts "context" $) | nindent 12 }}
{{- end }}
ports:
- name: http
containerPort: {{ .Values.clusterOperator.containerPorts.metrics }}
protocol: TCP
{{- if .Values.clusterOperator.sidecars }}
{{- include "common.tplvalues.render" ( dict "value" .Values.clusterOperator.sidecars "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.clusterOperator.extraVolumes }}
volumes: {{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.extraVolumes "context" $) | nindent 8 }}
{{- end }}

View File

@@ -0,0 +1,51 @@
{{ if .Values.clusterOperator.metrics.enabled }}
apiVersion: v1
kind: Service
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: rabbitmq-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.clusterOperator.fullname" . }}-metrics
namespace: {{ .Release.Namespace | quote }}
{{- if or .Values.commonAnnotations .Values.clusterOperator.metrics.service.annotations }}
annotations:
{{- if .Values.clusterOperator.metrics.service.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.clusterOperator.metrics.service.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
type: {{ .Values.clusterOperator.metrics.service.type }}
{{- if (or (eq .Values.clusterOperator.metrics.service.type "LoadBalancer") (eq .Values.clusterOperator.metrics.service.type "NodePort")) }}
externalTrafficPolicy: {{ .Values.clusterOperator.metrics.service.externalTrafficPolicy | quote }}
{{- end }}
{{ if .Values.clusterOperator.metrics.service.clusterIP }}
clusterIP: {{ .Values.clusterOperator.metrics.service.clusterIP }}
{{ end }}
{{ if eq .Values.clusterOperator.metrics.service.type "LoadBalancer" }}
loadBalancerSourceRanges: {{ .Values.clusterOperator.metrics.service.loadBalancerSourceRanges }}
{{ end }}
{{- if (and (eq .Values.clusterOperator.metrics.service.type "LoadBalancer") (not (empty .Values.clusterOperator.metrics.service.loadBalancerIP))) }}
loadBalancerIP: {{ .Values.clusterOperator.metrics.service.loadBalancerIP }}
{{- end }}
ports:
- name: http
port: {{ .Values.clusterOperator.metrics.service.ports.http }}
targetPort: http
protocol: TCP
{{- if (and (or (eq .Values.clusterOperator.metrics.service.type "NodePort") (eq .Values.clusterOperator.metrics.service.type "LoadBalancer")) (not (empty .Values.clusterOperator.metrics.service.nodePorts.http))) }}
nodePort: {{ .Values.clusterOperator.metrics.service.nodePorts.http }}
{{- else if eq .Values.clusterOperator.metrics.service.type "ClusterIP" }}
nodePort: null
{{- end }}
{{- if .Values.clusterOperator.metrics.service.extraPorts }}
{{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.metrics.service.extraPorts "context" $) | nindent 4 }}
{{- end }}
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
app.kubernetes.io/component: rabbitmq-operator
{{- end }}

View File

@@ -1,4 +1,4 @@
{{- if .Values.rbac.create }}
{{- if .Values.clusterOperator.rbac.create }}
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
kind: Role
metadata:
@@ -8,7 +8,7 @@ metadata:
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "common.names.fullname" . }}
name: {{ template "rmqco.clusterOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}

View File

@@ -1,4 +1,4 @@
{{- if .Values.rbac.create }}
{{- if .Values.clusterOperator.rbac.create }}
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
kind: RoleBinding
metadata:
@@ -8,7 +8,7 @@ metadata:
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "common.names.fullname" . }}
name: {{ template "rmqco.clusterOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
@@ -16,9 +16,9 @@ metadata:
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ template "common.names.fullname" . }}
name: {{ template "rmqco.clusterOperator.fullname" . }}
subjects:
- kind: ServiceAccount
name: {{ template "rmqco.serviceAccountName" . }}
name: {{ template "rmqco.clusterOperator.serviceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- end }}

View File

@@ -0,0 +1,23 @@
{{- if .Values.clusterOperator.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: rabbitmq-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.clusterOperator.serviceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if or .Values.commonAnnotations .Values.clusterOperator.serviceAccount.annotations }}
annotations:
{{- if .Values.clusterOperator.serviceAccount.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.clusterOperator.serviceAccount.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
automountServiceAccountToken: {{ .Values.clusterOperator.serviceAccount.automountServiceAccountToken }}
{{- end }}

View File

@@ -0,0 +1,46 @@
{{- if and .Values.clusterOperator.metrics.serviceMonitor.enabled .Values.clusterOperator.metrics.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.names.fullname" . }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.clusterOperator.metrics.serviceMonitor.additionalLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.clusterOperator.metrics.serviceMonitor.additionalLabels "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
jobLabel: {{ .Values.clusterOperator.metrics.serviceMonitor.jobLabel }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: rabbitmq-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.clusterOperator.metrics.serviceMonitor.selector }}
{{- include "common.tplvalues.render" ( dict "value" .Values.clusterOperator.metrics.serviceMonitor.selector "context" $ ) | nindent 6 }}
{{- end }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
endpoints:
- port: http
{{- if .Values.clusterOperator.metrics.serviceMonitor.interval }}
interval: {{ .Values.clusterOperator.metrics.serviceMonitor.interval }}
{{- end }}
{{- if .Values.clusterOperator.metrics.serviceMonitor.honorLabels }}
honorLabels: {{ .Values.clusterOperator.metrics.serviceMonitor.honorLabels }}
{{- end }}
{{- if .Values.clusterOperator.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ .Values.clusterOperator.metrics.serviceMonitor.scrapeTimeout }}
{{- end }}
{{- if .Values.clusterOperator.metrics.serviceMonitor.metricRelabelings }}
metricRelabelings: {{ toYaml .Values.clusterOperator.metrics.serviceMonitor.metricRelabelings | nindent 8 }}
{{- end }}
{{- if .Values.clusterOperator.metrics.serviceMonitor.relabelings }}
relabelings: {{ toYaml .Values.clusterOperator.metrics.serviceMonitor.relabelings | nindent 8 }}
{{- end }}
{{- end }}

View File

@@ -1,157 +0,0 @@
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "common.names.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: rabbitmq-operator
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.replicaCount }}
{{- if .Values.updateStrategy }}
strategy: {{- toYaml .Values.updateStrategy | nindent 4 }}
{{- end }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: rabbitmq-operator
template:
metadata:
{{- if .Values.podAnnotations }}
annotations: {{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }}
{{- end }}
labels: {{- include "common.labels.standard" . | nindent 8 }}
app.kubernetes.io/component: rabbitmq-operator
{{- if .Values.podLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.podLabels "context" $) | nindent 8 }}
{{- end }}
spec:
serviceAccountName: {{ template "rmqco.serviceAccountName" . }}
{{- include "rmqco.imagePullSecrets" . | nindent 6 }}
{{- if .Values.hostAliases }}
hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.hostAliases "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.affinity }}
affinity: {{- include "common.tplvalues.render" ( dict "value" .Values.affinity "context" $) | nindent 8 }}
{{- else }}
affinity:
podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAffinityPreset "component" "rabbitmq-operator" "context" $) | nindent 10 }}
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAntiAffinityPreset "component" "rabbitmq-operator" "context" $) | nindent 10 }}
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.nodeAffinityPreset.type "key" .Values.nodeAffinityPreset.key "values" .Values.nodeAffinityPreset.values) | nindent 10 }}
{{- end }}
{{- if .Values.nodeSelector }}
nodeSelector: {{- include "common.tplvalues.render" ( dict "value" .Values.nodeSelector "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.tolerations }}
tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" .) | nindent 8 }}
{{- end }}
{{- if .Values.priorityClassName }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- end }}
{{- if .Values.podSecurityContext.enabled }}
securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
initContainers:
{{- if .Values.initContainers }}
{{- include "common.tplvalues.render" (dict "value" .Values.initContainers "context" $) | nindent 8 }}
{{- end }}
containers:
- name: rabbitmq-cluster-operator
image: {{ template "rmqco.operator.image" . }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }}
{{- end }}
{{- if .Values.command }}
command: {{- include "common.tplvalues.render" (dict "value" .Values.command "context" $) | nindent 12 }}
{{- else }}
command:
- /manager
{{- end }}
{{- if .Values.args }}
args: {{- include "common.tplvalues.render" (dict "value" .Values.args "context" $) | nindent 12 }}
{{- else }}
args:
- --metrics-bind-address=:{{ .Values.containerPort }}
{{- end }}
env:
- name: OPERATOR_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: DEFAULT_RABBITMQ_IMAGE
value: {{ template "rmqco.rabbitmq.image" . }}
{{- if .Values.extraEnvVars }}
{{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
{{- end }}
envFrom:
{{- if .Values.extraEnvVarsCM }}
- configMapRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsCM "context" $) }}
{{- end }}
{{- if .Values.extraEnvVarsSecret }}
- secretRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsSecret "context" $) }}
{{- end }}
{{- if .Values.resources }}
resources: {{- toYaml .Values.resources | nindent 12 }}
{{- end }}
{{- if .Values.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: /metrics
port: http
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
{{- else if .Values.customLivenessProbe }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: /metrics
port: http
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
{{- else if .Values.customReadinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.startupProbe.enabled }}
startupProbe:
httpGet:
path: /metrics
port: http
initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.startupProbe.periodSeconds }}
timeoutSeconds: {{ .Values.startupProbe.timeoutSeconds }}
successThreshold: {{ .Values.startupProbe.successThreshold }}
failureThreshold: {{ .Values.startupProbe.failureThreshold }}
{{- else if .Values.customStartupProbe }}
startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customStartupProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.lifecycleHooks }}
lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.lifecycleHooks "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.extraVolumeMounts }}
volumeMounts: {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumeMounts "context" $) | nindent 12 }}
{{- end }}
ports:
- name: http
containerPort: {{ .Values.containerPort }}
protocol: TCP
{{- if .Values.sidecars }}
{{- include "common.tplvalues.render" ( dict "value" .Values.sidecars "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.extraVolumes }}
volumes: {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumes "context" $) | nindent 8 }}
{{- end }}

View File

@@ -0,0 +1,14 @@
{{ if .Values.useCertManager }}
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "common.names.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
spec:
selfSigned: {}
{{- end }}

View File

@@ -0,0 +1,24 @@
{{ if and (.Values.useCertManager) (not .Values.msgTopologyOperator.existingWebhookCertSecret) }}
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
dnsNames:
- {{ printf "%s.%s.svc" (include "rmqco.msgTopologyOperator.webhook.fullname" .) .Release.Namespace }}
- {{ printf "%s.%s.svc.%s" (include "rmqco.msgTopologyOperator.webhook.fullname" .) .Release.Namespace .Values.clusterDomain }}
issuerRef:
kind: Issuer
name: {{ template "common.names.fullname" . }}
secretName: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
{{- end }}

View File

@@ -0,0 +1,256 @@
{{- if .Values.msgTopologyOperator.rbac.create }}
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
kind: ClusterRole
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.msgTopologyOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
rules:
- apiGroups:
- ""
resources:
- events
verbs:
- create
- get
- patch
- apiGroups:
- ""
resources:
- secrets
verbs:
- create
- get
- list
- watch
- apiGroups:
- ""
resources:
- services
verbs:
- get
- list
- watch
- apiGroups:
- rabbitmq.com
resources:
- bindings
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- bindings/status
verbs:
- get
- patch
- update
- apiGroups:
- rabbitmq.com
resources:
- exchanges
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- exchanges/status
verbs:
- get
- patch
- update
- apiGroups:
- rabbitmq.com
resources:
- federations
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- federations/status
verbs:
- get
- patch
- update
- apiGroups:
- rabbitmq.com
resources:
- permissions
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- permissions/status
verbs:
- get
- patch
- update
- apiGroups:
- rabbitmq.com
resources:
- policies
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- policies/status
verbs:
- get
- patch
- update
- apiGroups:
- rabbitmq.com
resources:
- queues
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- queues/status
verbs:
- get
- patch
- update
- apiGroups:
- rabbitmq.com
resources:
- rabbitmqclusters
verbs:
- get
- list
- watch
- apiGroups:
- rabbitmq.com
resources:
- rabbitmqclusters/status
verbs:
- get
- apiGroups:
- rabbitmq.com
resources:
- schemareplications
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- schemareplications/status
verbs:
- get
- patch
- update
- apiGroups:
- rabbitmq.com
resources:
- shovels
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- shovels/status
verbs:
- get
- patch
- update
- apiGroups:
- rabbitmq.com
resources:
- users
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- users/status
verbs:
- get
- patch
- update
- apiGroups:
- rabbitmq.com
resources:
- vhosts
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rabbitmq.com
resources:
- vhosts/status
verbs:
- get
- patch
- update
{{- end }}

View File

@@ -0,0 +1,24 @@
{{- if .Values.msgTopologyOperator.rbac.create }}
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
kind: ClusterRoleBinding
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.msgTopologyOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "rmqco.msgTopologyOperator.fullname" . }}
subjects:
- kind: ServiceAccount
name: {{ template "rmqco.msgTopologyOperator.serviceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- end }}

View File

@@ -0,0 +1,174 @@
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "rmqco.msgTopologyOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.msgTopologyOperator.replicaCount }}
{{- if .Values.msgTopologyOperator.updateStrategy }}
strategy: {{- toYaml .Values.msgTopologyOperator.updateStrategy | nindent 4 }}
{{- end }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: messaging-topology-operator
template:
metadata:
{{- if .Values.msgTopologyOperator.podAnnotations }}
annotations: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.podAnnotations "context" $) | nindent 8 }}
{{- end }}
labels: {{- include "common.labels.standard" . | nindent 8 }}
app.kubernetes.io/component: messaging-topology-operator
{{- if .Values.msgTopologyOperator.podLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.podLabels "context" $) | nindent 8 }}
{{- end }}
spec:
serviceAccountName: {{ template "rmqco.msgTopologyOperator.serviceAccountName" . }}
{{- include "rmqco.imagePullSecrets" . | nindent 6 }}
{{- if .Values.msgTopologyOperator.hostAliases }}
hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.hostAliases "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.msgTopologyOperator.topologySpreadConstraints }}
topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.topologySpreadConstraints "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.msgTopologyOperator.schedulerName }}
schedulerName: {{ .Values.msgTopologyOperator.schedulerName | quote }}
{{- end }}
{{- if .Values.msgTopologyOperator.affinity }}
affinity: {{- include "common.tplvalues.render" ( dict "value" .Values.msgTopologyOperator.affinity "context" $) | nindent 8 }}
{{- else }}
affinity:
podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.msgTopologyOperator.podAffinityPreset "component" "rabbitmq-operator" "context" $) | nindent 10 }}
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.msgTopologyOperator.podAntiAffinityPreset "component" "rabbitmq-operator" "context" $) | nindent 10 }}
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.msgTopologyOperator.nodeAffinityPreset.type "key" .Values.msgTopologyOperator.nodeAffinityPreset.key "values" .Values.msgTopologyOperator.nodeAffinityPreset.values) | nindent 10 }}
{{- end }}
{{- if .Values.msgTopologyOperator.nodeSelector }}
nodeSelector: {{- include "common.tplvalues.render" ( dict "value" .Values.msgTopologyOperator.nodeSelector "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.msgTopologyOperator.tolerations }}
tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.tolerations "context" .) | nindent 8 }}
{{- end }}
{{- if .Values.msgTopologyOperator.priorityClassName }}
priorityClassName: {{ .Values.msgTopologyOperator.priorityClassName | quote }}
{{- end }}
{{- if .Values.msgTopologyOperator.podSecurityContext.enabled }}
securityContext: {{- omit .Values.msgTopologyOperator.podSecurityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
initContainers:
{{- if .Values.msgTopologyOperator.initContainers }}
{{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.initContainers "context" $) | nindent 8 }}
{{- end }}
containers:
- name: rabbitmq-cluster-operator
image: {{ template "rmqco.msgTopologyOperator.image" . }}
imagePullPolicy: {{ .Values.msgTopologyOperator.image.pullPolicy }}
{{- if .Values.msgTopologyOperator.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.msgTopologyOperator.containerSecurityContext "enabled" | toYaml | nindent 12 }}
{{- end }}
{{- if .Values.msgTopologyOperator.command }}
command: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.command "context" $) | nindent 12 }}
{{- else }}
command:
- /manager
{{- end }}
{{- if .Values.msgTopologyOperator.args }}
args: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.args "context" $) | nindent 12 }}
{{- else }}
args:
- --metrics-bind-address=:{{ .Values.msgTopologyOperator.containerPorts.metrics }}
{{- end }}
env:
- name: OPERATOR_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
{{- if .Values.msgTopologyOperator.extraEnvVars }}
{{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.extraEnvVars "context" $) | nindent 12 }}
{{- end }}
envFrom:
{{- if .Values.msgTopologyOperator.extraEnvVarsCM }}
- configMapRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.extraEnvVarsCM "context" $) }}
{{- end }}
{{- if .Values.msgTopologyOperator.extraEnvVarsSecret }}
- secretRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.extraEnvVarsSecret "context" $) }}
{{- end }}
{{- if .Values.msgTopologyOperator.resources }}
resources: {{- toYaml .Values.msgTopologyOperator.resources | nindent 12 }}
{{- end }}
{{- if .Values.msgTopologyOperator.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: /metrics
port: http-metrics
initialDelaySeconds: {{ .Values.msgTopologyOperator.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.msgTopologyOperator.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.msgTopologyOperator.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.msgTopologyOperator.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.msgTopologyOperator.livenessProbe.failureThreshold }}
{{- else if .Values.msgTopologyOperator.customLivenessProbe }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.customLivenessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.msgTopologyOperator.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: /metrics
port: http-metrics
initialDelaySeconds: {{ .Values.msgTopologyOperator.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.msgTopologyOperator.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.msgTopologyOperator.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.msgTopologyOperator.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.msgTopologyOperator.readinessProbe.failureThreshold }}
{{- else if .Values.msgTopologyOperator.customReadinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.customReadinessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.msgTopologyOperator.startupProbe.enabled }}
startupProbe:
httpGet:
path: /metrics
port: http-metrics
initialDelaySeconds: {{ .Values.msgTopologyOperator.startupProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.msgTopologyOperator.startupProbe.periodSeconds }}
timeoutSeconds: {{ .Values.msgTopologyOperator.startupProbe.timeoutSeconds }}
successThreshold: {{ .Values.msgTopologyOperator.startupProbe.successThreshold }}
failureThreshold: {{ .Values.msgTopologyOperator.startupProbe.failureThreshold }}
{{- else if .Values.msgTopologyOperator.customStartupProbe }}
startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.customStartupProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.msgTopologyOperator.lifecycleHooks }}
lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.lifecycleHooks "context" $) | nindent 12 }}
{{- end }}
volumeMounts:
- mountPath: /tmp/k8s-webhook-server/serving-certs
name: cert
readOnly: true
{{- if .Values.msgTopologyOperator.extraVolumeMounts }}
{{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.extraVolumeMounts "context" $) | nindent 12 }}
{{- end }}
ports:
- name: http-webhook
containerPort: 9443
protocol: TCP
- name: http-metrics
containerPort: {{ .Values.msgTopologyOperator.containerPorts.metrics }}
protocol: TCP
{{- if .Values.msgTopologyOperator.sidecars }}
{{- include "common.tplvalues.render" ( dict "value" .Values.msgTopologyOperator.sidecars "context" $) | nindent 8 }}
{{- end }}
volumes:
- name: cert
secret:
defaultMode: 420
secretName: {{ template "rmqco.msgTopologyOperator.webhook.secretName" . }}
{{- if .Values.msgTopologyOperator.extraVolumes }}
{{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.extraVolumes "context" $) | nindent 8 }}
{{- end }}

View File

@@ -0,0 +1,53 @@
{{ if .Values.msgTopologyOperator.metrics.enabled }}
apiVersion: v1
kind: Service
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
type: metrics
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.msgTopologyOperator.fullname" . }}-metrics
namespace: {{ .Release.Namespace | quote }}
{{- if or .Values.commonAnnotations .Values.msgTopologyOperator.metrics.service.annotations }}
annotations:
{{- if .Values.msgTopologyOperator.metrics.service.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.msgTopologyOperator.metrics.service.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
type: {{ .Values.msgTopologyOperator.metrics.service.type }}
{{- if (or (eq .Values.msgTopologyOperator.metrics.service.type "LoadBalancer") (eq .Values.msgTopologyOperator.metrics.service.type "NodePort")) }}
externalTrafficPolicy: {{ .Values.msgTopologyOperator.metrics.service.externalTrafficPolicy | quote }}
{{- end }}
{{ if .Values.msgTopologyOperator.metrics.service.clusterIP }}
clusterIP: {{ .Values.msgTopologyOperator.metrics.service.clusterIP }}
{{ end }}
{{ if eq .Values.msgTopologyOperator.metrics.service.type "LoadBalancer" }}
loadBalancerSourceRanges: {{ .Values.msgTopologyOperator.metrics.service.loadBalancerSourceRanges }}
{{ end }}
{{- if (and (eq .Values.msgTopologyOperator.metrics.service.type "LoadBalancer") (not (empty .Values.msgTopologyOperator.metrics.service.loadBalancerIP))) }}
loadBalancerIP: {{ .Values.msgTopologyOperator.metrics.service.loadBalancerIP }}
{{- end }}
ports:
- name: http
port: {{ .Values.msgTopologyOperator.metrics.service.port }}
targetPort: http-metrics
protocol: TCP
{{- if (and (or (eq .Values.msgTopologyOperator.metrics.service.type "NodePort") (eq .Values.msgTopologyOperator.metrics.service.type "LoadBalancer")) (not (empty .Values.msgTopologyOperator.metrics.service.nodePorts.http))) }}
nodePort: {{ .Values.msgTopologyOperator.metrics.service.nodePorts.http }}
{{- else if eq .Values.msgTopologyOperator.metrics.service.type "ClusterIP" }}
nodePort: null
{{- end }}
{{- if .Values.msgTopologyOperator.metrics.service.extraPorts }}
{{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.metrics.service.extraPorts "context" $) | nindent 4 }}
{{- end }}
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- end }}

View File

@@ -0,0 +1,47 @@
{{- if .Values.msgTopologyOperator.rbac.create }}
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
kind: Role
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.msgTopologyOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
rules:
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
{{- end }}

View File

@@ -0,0 +1,24 @@
{{- if .Values.msgTopologyOperator.rbac.create }}
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
kind: RoleBinding
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.msgTopologyOperator.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ template "rmqco.msgTopologyOperator.fullname" . }}
subjects:
- kind: ServiceAccount
name: {{ template "rmqco.msgTopologyOperator.serviceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- end }}

View File

@@ -0,0 +1,23 @@
{{- if .Values.msgTopologyOperator.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.msgTopologyOperator.serviceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if or .Values.commonAnnotations .Values.msgTopologyOperator.serviceAccount.annotations }}
annotations:
{{- if .Values.msgTopologyOperator.serviceAccount.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.msgTopologyOperator.serviceAccount.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
automountServiceAccountToken: {{ .Values.msgTopologyOperator.serviceAccount.automountServiceAccountToken }}
{{- end }}

View File

@@ -0,0 +1,48 @@
{{- if and .Values.msgTopologyOperator.metrics.serviceMonitor.enabled .Values.msgTopologyOperator.metrics.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.names.fullname" . }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.msgTopologyOperator.metrics.serviceMonitor.additionalLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.msgTopologyOperator.metrics.serviceMonitor.additionalLabels "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
jobLabel: {{ .Values.msgTopologyOperator.metrics.serviceMonitor.jobLabel }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
# We need an extra label for the ServiceMonitor to scrape it correctly
type: metrics
{{- if .Values.msgTopologyOperator.metrics.serviceMonitor.selector }}
{{- include "common.tplvalues.render" ( dict "value" .Values.msgTopologyOperator.metrics.serviceMonitor.selector "context" $ ) | nindent 6 }}
{{- end }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
endpoints:
- port: http-metrics
{{- if .Values.msgTopologyOperator.metrics.serviceMonitor.interval }}
interval: {{ .Values.msgTopologyOperator.metrics.serviceMonitor.interval }}
{{- end }}
{{- if .Values.msgTopologyOperator.metrics.serviceMonitor.honorLabels }}
honorLabels: {{ .Values.msgTopologyOperator.metrics.serviceMonitor.honorLabels }}
{{- end }}
{{- if .Values.msgTopologyOperator.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ .Values.msgTopologyOperator.metrics.serviceMonitor.scrapeTimeout }}
{{- end }}
{{- if .Values.msgTopologyOperator.metrics.serviceMonitor.metricRelabelings }}
metricRelabelings: {{ toYaml .Values.msgTopologyOperator.metrics.serviceMonitor.metricRelabelings | nindent 8 }}
{{- end }}
{{- if .Values.msgTopologyOperator.metrics.serviceMonitor.relabelings }}
relabelings: {{ toYaml .Values.msgTopologyOperator.metrics.serviceMonitor.relabelings | nindent 8 }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,274 @@
{{/*
If the user does not have cert-manager and is not providing a secret with the certificates, the chart needs to generate the secret
*/}}
{{- $ca := genCA "rmq-msg-topology-ca" 365 }}
{{- $cert := genSignedCert (include "rmqco.msgTopologyOperator.fullname" .) nil (list (printf "%s.%s.svc" (include "rmqco.msgTopologyOperator.webhook.fullname" .) .Release.Namespace) (printf "%s.%s.svc.%s" (include "rmqco.msgTopologyOperator.webhook.fullname" .) .Release.Namespace .Values.clusterDomain)) 365 $ca }}
{{- if and (not .Values.useCertManager) (not .Values.msgTopologyOperator.existingWebhookCertSecret) }}
apiVersion: v1
kind: Secret
metadata:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
type: kubernetes.io/tls
data:
tls.crt: {{ $cert.Cert | b64enc | quote }}
tls.key: {{ $cert.Key | b64enc | quote }}
ca.crt: {{ $ca.Cert | b64enc | quote }}
{{- end }}
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
annotations:
{{- if .Values.useCertManager }}
cert-manager.io/inject-ca-from: {{ printf "%s/%s" .Release.Namespace ( include "rmqco.msgTopologyOperator.webhook.secretName" . ) }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
webhooks:
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-binding
failurePolicy: Fail
name: vbinding.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- bindings
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-exchange
failurePolicy: Fail
name: vexchange.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- exchanges
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-federation
failurePolicy: Fail
name: vfederation.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- federations
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-permission
failurePolicy: Fail
name: vpermission.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- permissions
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-policy
failurePolicy: Fail
name: vpolicy.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- policies
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-queue
failurePolicy: Fail
name: vqueue.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- queues
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-schemareplication
failurePolicy: Fail
name: vschemareplication.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- schemareplications
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-shovel
failurePolicy: Fail
name: vshovel.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- shovels
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-user
failurePolicy: Fail
name: vuser.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- users
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
{{- if not .Values.useCertManager }}
caBundle: {{ default $ca.Cert .Values.msgTopologyOperator.existingWebhookCertCABundle | b64enc | quote }}
{{- end }}
service:
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
path: /validate-rabbitmq-com-v1beta1-vhost
failurePolicy: Fail
name: vvhost.kb.io
rules:
- apiGroups:
- rabbitmq.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- vhosts
sideEffects: None

View File

@@ -0,0 +1,46 @@
apiVersion: v1
kind: Service
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.msgTopologyOperator.webhook.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if or .Values.commonAnnotations .Values.msgTopologyOperator.service.annotations }}
annotations:
{{- if .Values.msgTopologyOperator.service.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.msgTopologyOperator.service.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
type: {{ .Values.msgTopologyOperator.service.type }}
{{- if (or (eq .Values.msgTopologyOperator.service.type "LoadBalancer") (eq .Values.msgTopologyOperator.service.type "NodePort")) }}
externalTrafficPolicy: {{ .Values.msgTopologyOperator.service.externalTrafficPolicy | quote }}
{{- end }}
{{ if .Values.msgTopologyOperator.service.clusterIP }}
clusterIP: {{ .Values.msgTopologyOperator.service.clusterIP }}
{{ end }}
{{ if eq .Values.msgTopologyOperator.service.type "LoadBalancer" }}
loadBalancerSourceRanges: {{ .Values.msgTopologyOperator.service.loadBalancerSourceRanges }}
{{ end }}
{{- if (and (eq .Values.msgTopologyOperator.service.type "LoadBalancer") (not (empty .Values.msgTopologyOperator.service.loadBalancerIP))) }}
loadBalancerIP: {{ .Values.msgTopologyOperator.service.loadBalancerIP }}
{{- end }}
ports:
- name: http
port: {{ .Values.msgTopologyOperator.service.ports.webhook }}
targetPort: http-webhook
protocol: TCP
{{- if (and (or (eq .Values.msgTopologyOperator.service.type "NodePort") (eq .Values.msgTopologyOperator.service.type "LoadBalancer")) (not (empty .Values.msgTopologyOperator.service.nodePorts.http))) }}
nodePort: {{ .Values.msgTopologyOperator.service.nodePorts.http }}
{{- else if eq .Values.msgTopologyOperator.service.type "ClusterIP" }}
nodePort: null
{{- end }}
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
app.kubernetes.io/component: messaging-topology-operator

View File

@@ -1,49 +0,0 @@
{{ if .Values.metrics.enabled }}
apiVersion: v1
kind: Service
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: rabbitmq-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "common.names.fullname" . }}-metrics
namespace: {{ .Release.Namespace | quote }}
{{- if or .Values.commonAnnotations .Values.metrics.service.annotations }}
annotations:
{{- if .Values.metrics.service.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.metrics.service.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
type: {{ .Values.metrics.service.type }}
{{- if (or (eq .Values.metrics.service.type "LoadBalancer") (eq .Values.metrics.service.type "NodePort")) }}
externalTrafficPolicy: {{ .Values.metrics.service.externalTrafficPolicy | quote }}
{{- end }}
{{ if .Values.metrics.service.clusterIP }}
clusterIP: {{ .Values.metrics.service.clusterIP }}
{{ end }}
{{ if eq .Values.metrics.service.type "LoadBalancer" }}
loadBalancerSourceRanges: {{ .Values.metrics.service.loadBalancerSourceRanges }}
{{ end }}
{{- if (and (eq .Values.metrics.service.type "LoadBalancer") (not (empty .Values.metrics.service.loadBalancerIP))) }}
loadBalancerIP: {{ .Values.metrics.service.loadBalancerIP }}
{{- end }}
ports:
- name: http
port: {{ .Values.metrics.service.port }}
targetPort: http
protocol: TCP
{{- if (and (or (eq .Values.metrics.service.type "NodePort") (eq .Values.metrics.service.type "LoadBalancer")) (not (empty .Values.metrics.service.nodePorts.http))) }}
nodePort: {{ .Values.metrics.service.nodePorts.http }}
{{- else if eq .Values.metrics.service.type "ClusterIP" }}
nodePort: null
{{- end }}
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
app.kubernetes.io/component: rabbitmq-operator
app.kubernetes.io/part-of: rabbitmq
{{- end }}

View File

@@ -1,16 +0,0 @@
{{- if .Values.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: rabbitmq-operator
app.kubernetes.io/part-of: rabbitmq
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
name: {{ template "rmqco.serviceAccountName" . }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}

View File

@@ -1,32 +0,0 @@
{{- if and .Values.metrics.serviceMonitor.enabled .Values.metrics.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.names.fullname" . }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
namespace: {{ .Release.Namespace | quote }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
jobLabel: {{ .Values.metrics.serviceMonitor.jobLabel }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
endpoints:
- port: http
{{- if .Values.metrics.serviceMonitor.interval }}
interval: {{ .Values.metrics.serviceMonitor.interval }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.metricRelabelings }}
metricRelabelings: {{ toYaml .Values.metrics.serviceMonitor.metricRelabelings | nindent 8 }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.relabelings }}
relabelings: {{ toYaml .Values.metrics.serviceMonitor.relabelings | nindent 8 }}
{{- end }}
{{- end }}

File diff suppressed because it is too large Load Diff