diff --git a/class/defaults.yml b/class/defaults.yml index 28405ba..6d4ca93 100644 --- a/class/defaults.yml +++ b/class/defaults.yml @@ -6,7 +6,7 @@ parameters: charts: rabbitmq-cluster-operator: source: https://charts.bitnami.com/bitnami - version: 3.10.10 + version: 4.4.34 operator: helmValues: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crds-messaging-topology-operator.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crds-messaging-topology-operator.yaml deleted file mode 100644 index 72d6f55..0000000 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crds-messaging-topology-operator.yaml +++ /dev/null @@ -1,1743 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: bindings.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Binding - listKind: BindingList - plural: bindings - singular: binding - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Binding is the Schema for the bindings API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BindingSpec defines the desired state of Binding - properties: - arguments: - description: Cannot be updated - type: object - x-kubernetes-preserve-unknown-fields: true - destination: - description: Cannot be updated - type: string - destinationType: - description: Cannot be updated - enum: - - exchange - - queue - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the binding will - be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - routingKey: - description: Cannot be updated - type: string - source: - description: Cannot be updated - type: string - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - rabbitmqClusterReference - type: object - status: - description: BindingStatus defines the observed state of Binding - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Binding. It corresponds to the Binding's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: exchanges.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Exchange - listKind: ExchangeList - plural: exchanges - singular: exchange - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Exchange is the Schema for the exchanges API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ExchangeSpec defines the desired state of Exchange - properties: - arguments: - type: object - x-kubernetes-preserve-unknown-fields: true - autoDelete: - description: Cannot be updated - type: boolean - durable: - description: Cannot be updated - type: boolean - name: - description: Required property; cannot be updated - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the exchange - will be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - type: - default: direct - description: Cannot be updated - type: string - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - name - - rabbitmqClusterReference - type: object - status: - description: ExchangeStatus defines the observed state of Exchange - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Exchange. It corresponds to the Exchange's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: federations.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Federation - listKind: FederationList - plural: federations - singular: federation - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Federation is the Schema for the federations API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: 'FederationSpec defines the desired state of Federation - For how to configure federation upstreams, see: https://www.rabbitmq.com/federation-reference.html.' - properties: - ackMode: - enum: - - on-confirm - - on-publish - - no-ack - type: string - exchange: - type: string - expires: - type: integer - maxHops: - type: integer - messageTTL: - type: integer - name: - description: Required property; cannot be updated - type: string - prefetch-count: - type: integer - queue: - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that this federation - upstream will be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - reconnectDelay: - type: integer - trustUserId: - type: boolean - uriSecret: - description: Secret contains the AMQP URI(s) for the upstream. The - Secret must contain the key `uri` or operator will error. `uri` - should be one or multiple uris separated by ','. Required property. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - name - - rabbitmqClusterReference - - uriSecret - type: object - status: - description: FederationStatus defines the observed state of Federation - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Federation. It corresponds to the Federation's - generation, which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: permissions.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Permission - listKind: PermissionList - plural: permissions - singular: permission - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Permission is the Schema for the permissions API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PermissionSpec defines the desired state of Permission - properties: - permissions: - description: 'Permissions to grant to the user in the specific vhost; - required property. See RabbitMQ doc for more information: https://www.rabbitmq.com/access-control.html#user-management' - properties: - configure: - type: string - read: - type: string - write: - type: string - type: object - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that both the provided - user and vhost are. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - user: - description: Name of an existing user; must provide user or userReference, - else create/update will fail; cannot be updated - type: string - userReference: - description: Reference to an existing user.rabbitmq.com object; - must provide user or userReference, else create/update will fail; - cannot be updated - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - vhost: - description: Name of an existing vhost; required property; cannot - be updated - type: string - required: - - permissions - - rabbitmqClusterReference - - vhost - type: object - status: - description: PermissionStatus defines the observed state of Permission - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Permission. It corresponds to the Permission's - generation, which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: policies.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Policy - listKind: PolicyList - plural: policies - singular: policy - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Policy is the Schema for the policies API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PolicySpec defines the desired state of Policy https://www.rabbitmq.com/parameters.html#policies - properties: - applyTo: - default: all - description: 'What this policy applies to: ''queues'', ''classic_queues'', - ''quorum_queues'', ''streams'', ''exchanges'', or ''all''. Default - to ''all''.' - enum: - - queues - - classic_queues - - quorum_queues - - streams - - exchanges - - all - type: string - definition: - description: Policy definition. Required property. - type: object - x-kubernetes-preserve-unknown-fields: true - name: - description: Required property; cannot be updated - type: string - pattern: - description: Regular expression pattern used to match queues and - exchanges, e.g. "^amq.". Required property. - type: string - priority: - default: 0 - description: Default to '0'. In the event that more than one policy - can match a given exchange or queue, the policy with the greatest - priority applies. - type: integer - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the exchange - will be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - definition - - name - - pattern - - rabbitmqClusterReference - type: object - status: - description: PolicyStatus defines the observed state of Policy - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Policy. It corresponds to the Policy's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: queues.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Queue - listKind: QueueList - plural: queues - singular: queue - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Queue is the Schema for the queues API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: QueueSpec defines the desired state of Queue - properties: - arguments: - description: 'Queue arguments in the format of KEY: VALUE. e.g. - x-delivery-limit: 10000. Configuring queues through arguments - is not recommended because they cannot be updated once set; we - recommend configuring queues through policies instead.' - type: object - x-kubernetes-preserve-unknown-fields: true - autoDelete: - description: when set to true, queues that have had at least one - consumer before are deleted after the last consumer unsubscribes. - type: boolean - durable: - description: When set to false queues does not survive server restart. - type: boolean - name: - description: Name of the queue; required property. - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the queue will - be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - type: - type: string - vhost: - default: / - description: Default to vhost '/' - type: string - required: - - name - - rabbitmqClusterReference - type: object - status: - description: QueueStatus defines the observed state of Queue - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Queue. It corresponds to the Queue's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: schemareplications.rabbitmq.com -spec: - group: rabbitmq.com - names: - kind: SchemaReplication - listKind: SchemaReplicationList - plural: schemareplications - singular: schemareplication - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: 'SchemaReplication is the Schema for the schemareplications - API This feature requires Tanzu RabbitMQ with schema replication plugin. - For more information, see: https://tanzu.vmware.com/rabbitmq and https://www.rabbitmq.com/definitions-standby.html.' - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: SchemaReplicationSpec defines the desired state of SchemaReplication - properties: - endpoints: - description: endpoints should be one or multiple endpoints separated - by ','. Must provide either spec.endpoints or endpoints in spec.upstreamSecret. - When endpoints are provided in both spec.endpoints and spec.upstreamSecret, - spec.endpoints takes precedence. - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that schema replication - would be set for. Must be an existing cluster. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - secretBackend: - description: Set to fetch user credentials from K8s external secret - stores to be used for schema replication. - properties: - vault: - properties: - secretPath: - description: Path in Vault to access a KV (Key-Value) secret - with the fields username and password to be used for replication. - For example "secret/data/rabbitmq/config". Optional; if - not provided, username and password will come from upstreamSecret - instead. Have to set either secretBackend.vault.secretPath - or upstreamSecret, but not both. - type: string - type: object - type: object - upstreamSecret: - description: Defines a Secret which contains credentials to be used - for schema replication. The Secret must contain the keys `username` - and `password` in its Data field, or operator will error. Have - to set either secretBackend.vault.secretPath or spec.upstreamSecret, - but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - required: - - rabbitmqClusterReference - type: object - status: - description: SchemaReplicationStatus defines the observed state of SchemaReplication - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Queue. It corresponds to the Queue's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: shovels.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Shovel - listKind: ShovelList - plural: shovels - singular: shovel - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Shovel is the Schema for the shovels API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: 'ShovelSpec defines the desired state of Shovel For how - to configure Shovel, see: https://www.rabbitmq.com/shovel.html.' - properties: - ackMode: - enum: - - on-confirm - - on-publish - - no-ack - type: string - addForwardHeaders: - type: boolean - deleteAfter: - type: string - destAddForwardHeaders: - type: boolean - destAddTimestampHeader: - type: boolean - destAddress: - description: amqp10 configuration; required if destProtocol is amqp10 - type: string - destApplicationProperties: - description: amqp10 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - destExchange: - description: amqp091 configuration - type: string - destExchangeKey: - description: amqp091 configuration - type: string - destMessageAnnotations: - description: amqp10 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - destProperties: - description: amqp10 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - destProtocol: - enum: - - amqp091 - - amqp10 - type: string - destPublishProperties: - description: amqp091 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - destQueue: - description: amqp091 configuration - type: string - name: - description: Required property; cannot be updated - type: string - prefetchCount: - type: integer - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that this Shovel will - be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - reconnectDelay: - type: integer - srcAddress: - description: amqp10 configuration; required if srcProtocol is amqp10 - type: string - srcConsumerArgs: - description: amqp091 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - srcDeleteAfter: - type: string - srcExchange: - description: amqp091 configuration - type: string - srcExchangeKey: - description: amqp091 configuration - type: string - srcPrefetchCount: - type: integer - srcProtocol: - enum: - - amqp091 - - amqp10 - type: string - srcQueue: - description: amqp091 configuration - type: string - uriSecret: - description: Secret contains the AMQP URI(s) to configure Shovel - destination and source. The Secret must contain the key `destUri` - and `srcUri` or operator will error. Both fields should be one - or multiple uris separated by ','. Required property. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - name - - rabbitmqClusterReference - - uriSecret - type: object - status: - description: ShovelStatus defines the observed state of Shovel - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Shovel. It corresponds to the Shovel's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: superstreams.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: SuperStream - listKind: SuperStreamList - plural: superstreams - singular: superstream - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: SuperStream is the Schema for the queues API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: SuperStreamSpec defines the desired state of SuperStream - properties: - name: - description: Name of the queue; required property. - type: string - partitions: - default: 3 - description: Number of partitions to create within this super stream. - Defaults to '3'. - type: integer - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the SuperStream - will be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - routingKeys: - description: Routing keys to use for each of the partitions in the - SuperStream If unset, the routing keys for the partitions will - be set to the index of the partitions - items: - type: string - type: array - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - name - - rabbitmqClusterReference - type: object - status: - description: SuperStreamStatus defines the observed state of SuperStream - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this SuperStream. It corresponds to the SuperStream's - generation, which is updated on mutation by the API Server. - format: int64 - type: integer - partitions: - description: Partitions are a list of the stream queue names which - form the partitions of this SuperStream. - items: - type: string - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: topicpermissions.rabbitmq.com -spec: - group: rabbitmq.com - names: - kind: TopicPermission - listKind: TopicPermissionList - plural: topicpermissions - singular: topicpermission - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: TopicPermission is the Schema for the topicpermissions API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: TopicPermissionSpec defines the desired state of TopicPermission - properties: - permissions: - description: Permissions to grant to the user to a topic exchange; - required property. - properties: - exchange: - description: Name of a topic exchange; required property; cannot - be updated. - type: string - read: - type: string - write: - type: string - type: object - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that both the provided - user and vhost are. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - user: - description: Name of an existing user; must provide user or userReference, - else create/update will fail; cannot be updated. - type: string - userReference: - description: Reference to an existing user.rabbitmq.com object; - must provide user or userReference, else create/update will fail; - cannot be updated. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - vhost: - description: Name of an existing vhost; required property; cannot - be updated. - type: string - required: - - permissions - - rabbitmqClusterReference - - vhost - type: object - status: - description: TopicPermissionStatus defines the observed state of TopicPermission - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this TopicPermission. It corresponds to the TopicPermission's - generation, which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: users.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: User - listKind: UserList - plural: users - singular: user - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: User is the Schema for the users API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec configures the desired state of the User object. - properties: - importCredentialsSecret: - description: Defines a Secret used to pre-define the username and - password set for this User. User objects created with this field - set will not have randomly-generated credentials, and will instead - import the username/password values from this Secret. The Secret - must contain the keys `username` and `password` in its Data field, - or the import will fail. Note that this import only occurs at - creation time, and is ignored once a password has been set on - a User. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the user will - be created for. This cluster must exist for the User object to - be created. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - tags: - description: List of permissions tags to associate with the user. - This determines the level of access to the RabbitMQ management - UI granted to the user. Omitting this field will lead to a user - than can still connect to the cluster through messaging protocols, - but cannot perform any management actions. For more information, - see https://www.rabbitmq.com/management.html#permissions. - items: - description: UserTag defines the level of access to the management - UI allocated to the user. For more information, see https://www.rabbitmq.com/management.html#permissions. - enum: - - management - - policymaker - - monitoring - - administrator - type: string - type: array - required: - - rabbitmqClusterReference - type: object - status: - description: Status exposes the observed state of the User object. - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - credentials: - description: Provides a reference to a Secret object containing - the user credentials. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this User. It corresponds to the User's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - username: - description: Provide rabbitmq Username - type: string - required: - - username - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: vhosts.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Vhost - listKind: VhostList - plural: vhosts - singular: vhost - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Vhost is the Schema for the vhosts API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: VhostSpec defines the desired state of Vhost - properties: - defaultQueueType: - description: Default queue type for this vhost; can be set to quorum, - classic or stream. Supported in RabbitMQ 3.11.12 or above. - enum: - - quorum - - classic - - stream - type: string - name: - description: Name of the vhost; see https://www.rabbitmq.com/vhosts.html. - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the vhost will - be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - tags: - items: - type: string - type: array - tracing: - type: boolean - required: - - name - - rabbitmqClusterReference - type: object - status: - description: VhostStatus defines the observed state of Vhost - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Vhost. It corresponds to the Vhost's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_bindings.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_bindings.yaml new file mode 100644 index 0000000..2b1cf6b --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_bindings.yaml @@ -0,0 +1,144 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: bindings.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Binding + listKind: BindingList + plural: bindings + singular: binding + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Binding is the Schema for the bindings API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: BindingSpec defines the desired state of Binding + properties: + arguments: + description: Cannot be updated + type: object + x-kubernetes-preserve-unknown-fields: true + destination: + description: Cannot be updated + type: string + destinationType: + description: Cannot be updated + enum: + - exchange + - queue + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the binding will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + routingKey: + description: Cannot be updated + type: string + source: + description: Cannot be updated + type: string + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - rabbitmqClusterReference + type: object + status: + description: BindingStatus defines the observed state of Binding + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Binding. It corresponds to the + Binding's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_exchanges.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_exchanges.yaml new file mode 100644 index 0000000..02a619b --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_exchanges.yaml @@ -0,0 +1,142 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: exchanges.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Exchange + listKind: ExchangeList + plural: exchanges + singular: exchange + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Exchange is the Schema for the exchanges API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ExchangeSpec defines the desired state of Exchange + properties: + arguments: + type: object + x-kubernetes-preserve-unknown-fields: true + autoDelete: + description: Cannot be updated + type: boolean + durable: + description: Cannot be updated + type: boolean + name: + description: Required property; cannot be updated + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the exchange will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + type: + default: direct + description: Cannot be updated + type: string + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - name + - rabbitmqClusterReference + type: object + status: + description: ExchangeStatus defines the observed state of Exchange + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Exchange. It corresponds to the + Exchange's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_federations.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_federations.yaml new file mode 100644 index 0000000..9cd68a9 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_federations.yaml @@ -0,0 +1,202 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: federations.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Federation + listKind: FederationList + plural: federations + singular: federation + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Federation is the Schema for the federations API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + FederationSpec defines the desired state of Federation + For how to configure federation upstreams, see: https://www.rabbitmq.com/federation-reference.html. + properties: + ackMode: + enum: + - on-confirm + - on-publish + - no-ack + type: string + deletionPolicy: + default: delete + description: |- + DeletionPolicy defines the behavior of federation in the RabbitMQ cluster when the corresponding custom resource is deleted. + Can be set to 'delete' or 'retain'. Default is 'delete'. + enum: + - delete + - retain + type: string + exchange: + type: string + expires: + type: integer + maxHops: + type: integer + messageTTL: + type: integer + name: + description: Required property; cannot be updated + type: string + prefetch-count: + type: integer + queue: + type: string + queueType: + description: |- + The queue type of the internal upstream queue used by exchange federation. + Defaults to classic (a single replica queue type). Set to quorum to use a replicated queue type. + Changing the queue type will delete and recreate the upstream queue by default. + This may lead to messages getting lost or not routed anywhere during the re-declaration. + To avoid that, set resource-cleanup-mode key to never. + This requires manually deleting the old upstream queue so that it can be recreated with the new type. + enum: + - classic + - quorum + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that this federation upstream will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + reconnectDelay: + type: integer + resourceCleanupMode: + description: |- + Whether to delete the internal upstream queue when federation links stop. + By default, the internal upstream queue is deleted immediately when a federation link stops. + Set to never to keep the upstream queue around and collect messages even when changing federation configuration. + enum: + - default + - never + type: string + trustUserId: + type: boolean + uriSecret: + description: |- + Secret contains the AMQP URI(s) for the upstream. + The Secret must contain the key `uri` or operator will error. + `uri` should be one or multiple uris separated by ','. + Required property. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - name + - rabbitmqClusterReference + - uriSecret + type: object + status: + description: FederationStatus defines the observed state of Federation + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Federation. It corresponds to the + Federation's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_operatorpolicies.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_operatorpolicies.yaml new file mode 100644 index 0000000..8ffe7dd --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_operatorpolicies.yaml @@ -0,0 +1,159 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: operatorpolicies.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: OperatorPolicy + listKind: OperatorPolicyList + plural: operatorpolicies + singular: operatorpolicy + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: OperatorPolicy is the Schema for the operator policies API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + OperatorPolicySpec defines the desired state of OperatorPolicy + https://www.rabbitmq.com/parameters.html#operator-policies + properties: + applyTo: + default: queues + description: |- + What this operator policy applies to: 'queues', 'classic_queues', 'quorum_queues', 'streams'. + Default to 'queues'. + enum: + - queues + - classic_queues + - quorum_queues + - streams + type: string + definition: + description: OperatorPolicy definition. Required property. + type: object + x-kubernetes-preserve-unknown-fields: true + name: + description: Required property; cannot be updated + type: string + pattern: + description: |- + Regular expression pattern used to match queues, e.g. "^my-queue$". + Required property. + type: string + priority: + default: 0 + description: |- + Default to '0'. + In the event that more than one operator policy can match a given queue, the operator policy with the greatest priority applies. + type: integer + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the operator policy will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - definition + - name + - pattern + - rabbitmqClusterReference + type: object + status: + description: OperatorPolicyStatus defines the observed state of OperatorPolicy + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this OperatorPolicy. It corresponds to the + OperatorPolicy's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_permissions.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_permissions.yaml new file mode 100644 index 0000000..120b41f --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_permissions.yaml @@ -0,0 +1,159 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: permissions.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Permission + listKind: PermissionList + plural: permissions + singular: permission + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Permission is the Schema for the permissions API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: PermissionSpec defines the desired state of Permission + properties: + permissions: + description: |- + Permissions to grant to the user in the specific vhost; required property. + See RabbitMQ doc for more information: https://www.rabbitmq.com/access-control.html#user-management + properties: + configure: + type: string + read: + type: string + write: + type: string + type: object + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that both the provided user and vhost are. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + user: + description: Name of an existing user; must provide user or userReference, + else create/update will fail; cannot be updated + type: string + userReference: + description: Reference to an existing user.rabbitmq.com object; + must provide user or userReference, else create/update will fail; + cannot be updated + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + vhost: + description: Name of an existing vhost; required property; cannot + be updated + type: string + required: + - permissions + - rabbitmqClusterReference + - vhost + type: object + status: + description: PermissionStatus defines the observed state of Permission + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Permission. It corresponds to the + Permission's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_policies.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_policies.yaml new file mode 100644 index 0000000..4ed5d4e --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_policies.yaml @@ -0,0 +1,161 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: policies.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Policy + listKind: PolicyList + plural: policies + singular: policy + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Policy is the Schema for the policies API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + PolicySpec defines the desired state of Policy + https://www.rabbitmq.com/parameters.html#policies + properties: + applyTo: + default: all + description: |- + What this policy applies to: 'queues', 'classic_queues', 'quorum_queues', 'streams', 'exchanges', or 'all'. + Default to 'all'. + enum: + - queues + - classic_queues + - quorum_queues + - streams + - exchanges + - all + type: string + definition: + description: Policy definition. Required property. + type: object + x-kubernetes-preserve-unknown-fields: true + name: + description: Required property; cannot be updated + type: string + pattern: + description: |- + Regular expression pattern used to match queues and exchanges, e.g. "^amq.". + Required property. + type: string + priority: + default: 0 + description: |- + Default to '0'. + In the event that more than one policy can match a given exchange or queue, the policy with the greatest priority applies. + type: integer + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the policy will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - definition + - name + - pattern + - rabbitmqClusterReference + type: object + status: + description: PolicyStatus defines the observed state of Policy + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Policy. It corresponds to the + Policy's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_queues.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_queues.yaml new file mode 100644 index 0000000..aa1fbf3 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_queues.yaml @@ -0,0 +1,160 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: queues.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Queue + listKind: QueueList + plural: queues + singular: queue + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Queue is the Schema for the queues API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: QueueSpec defines the desired state of Queue + properties: + arguments: + description: |- + Queue arguments in the format of KEY: VALUE. e.g. x-delivery-limit: 10000. + Configuring queues through arguments is not recommended because they cannot be updated once set; we recommend configuring queues through policies instead. + type: object + x-kubernetes-preserve-unknown-fields: true + autoDelete: + description: when set to true, queues that have had at least one + consumer before are deleted after the last consumer unsubscribes. + type: boolean + deleteIfEmpty: + description: when set to true, queues are deleted only if empty. + type: boolean + deleteIfUnused: + description: when set to true, queues are delete only if they have + no consumer. + type: boolean + deletionPolicy: + default: delete + description: |- + DeletionPolicy defines the behavior of queue in the RabbitMQ cluster when the corresponding custom resource is deleted. + Can be set to 'delete' or 'retain'. Default is 'delete'. + enum: + - delete + - retain + type: string + durable: + description: When set to false queues does not survive server restart. + type: boolean + name: + description: Name of the queue; required property. + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the queue will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + type: + type: string + vhost: + default: / + description: Default to vhost '/' + type: string + required: + - name + - rabbitmqClusterReference + type: object + status: + description: QueueStatus defines the observed state of Queue + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Queue. It corresponds to the + Queue's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_schemareplications.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_schemareplications.yaml new file mode 100644 index 0000000..9ef4377 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_schemareplications.yaml @@ -0,0 +1,160 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: schemareplications.rabbitmq.com +spec: + group: rabbitmq.com + names: + kind: SchemaReplication + listKind: SchemaReplicationList + plural: schemareplications + singular: schemareplication + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: |- + SchemaReplication is the Schema for the schemareplications API + This feature requires Tanzu RabbitMQ with schema replication plugin. + For more information, see: https://tanzu.vmware.com/rabbitmq and https://www.rabbitmq.com/definitions-standby.html. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: SchemaReplicationSpec defines the desired state of SchemaReplication + properties: + endpoints: + description: |- + endpoints should be one or multiple endpoints separated by ','. + Must provide either spec.endpoints or endpoints in spec.upstreamSecret. + When endpoints are provided in both spec.endpoints and spec.upstreamSecret, spec.endpoints takes + precedence. + type: string + rabbitmqClusterReference: + description: Reference to the RabbitmqCluster that schema replication + would be set for. Must be an existing cluster. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + secretBackend: + description: Set to fetch user credentials from K8s external secret + stores to be used for schema replication. + properties: + vault: + properties: + secretPath: + description: |- + Path in Vault to access a KV (Key-Value) secret with the fields username and password to be used for replication. + For example "secret/data/rabbitmq/config". + Optional; if not provided, username and password will come from upstreamSecret instead. + Have to set either secretBackend.vault.secretPath or upstreamSecret, but not both. + type: string + type: object + type: object + upstreamSecret: + description: |- + Defines a Secret which contains credentials to be used for schema replication. + The Secret must contain the keys `username` and `password` in its Data field, or operator will error. + Have to set either secretBackend.vault.secretPath or spec.upstreamSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + required: + - rabbitmqClusterReference + type: object + status: + description: SchemaReplicationStatus defines the observed state of SchemaReplication + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Queue. It corresponds to the + Queue's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_shovels.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_shovels.yaml new file mode 100644 index 0000000..f139c4b --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_shovels.yaml @@ -0,0 +1,241 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: shovels.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Shovel + listKind: ShovelList + plural: shovels + singular: shovel + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Shovel is the Schema for the shovels API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + ShovelSpec defines the desired state of Shovel + For how to configure Shovel, see: https://www.rabbitmq.com/shovel.html. + properties: + ackMode: + enum: + - on-confirm + - on-publish + - no-ack + type: string + addForwardHeaders: + type: boolean + deleteAfter: + type: string + deletionPolicy: + default: delete + description: |- + DeletionPolicy defines the behavior of shovel in the RabbitMQ cluster when the corresponding custom resource is deleted. + Can be set to 'delete' or 'retain'. Default is 'delete'. + enum: + - delete + - retain + type: string + destAddForwardHeaders: + type: boolean + destAddTimestampHeader: + type: boolean + destAddress: + description: amqp10 configuration; required if destProtocol is amqp10 + type: string + destApplicationProperties: + description: amqp10 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + destExchange: + description: amqp091 configuration + type: string + destExchangeKey: + description: amqp091 configuration + type: string + destMessageAnnotations: + description: amqp10 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + destProperties: + description: amqp10 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + destProtocol: + enum: + - amqp091 + - amqp10 + type: string + destPublishProperties: + description: amqp091 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + destQueue: + description: amqp091 configuration + type: string + destQueueArgs: + type: object + x-kubernetes-preserve-unknown-fields: true + name: + description: Required property; cannot be updated + type: string + prefetchCount: + type: integer + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that this Shovel will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + reconnectDelay: + type: integer + srcAddress: + description: amqp10 configuration; required if srcProtocol is amqp10 + type: string + srcConsumerArgs: + description: amqp091 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + srcDeleteAfter: + type: string + srcExchange: + description: amqp091 configuration + type: string + srcExchangeKey: + description: amqp091 configuration + type: string + srcPrefetchCount: + type: integer + srcProtocol: + enum: + - amqp091 + - amqp10 + type: string + srcQueue: + description: amqp091 configuration + type: string + srcQueueArgs: + type: object + x-kubernetes-preserve-unknown-fields: true + uriSecret: + description: |- + Secret contains the AMQP URI(s) to configure Shovel destination and source. + The Secret must contain the key `destUri` and `srcUri` or operator will error. + Both fields should be one or multiple uris separated by ','. + Required property. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - name + - rabbitmqClusterReference + - uriSecret + type: object + status: + description: ShovelStatus defines the observed state of Shovel + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Shovel. It corresponds to the + Shovel's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_superstreams.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_superstreams.yaml new file mode 100644 index 0000000..b65c1c0 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_superstreams.yaml @@ -0,0 +1,148 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: superstreams.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: SuperStream + listKind: SuperStreamList + plural: superstreams + singular: superstream + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: SuperStream is the Schema for the queues API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: SuperStreamSpec defines the desired state of SuperStream + properties: + name: + description: Name of the queue; required property. + type: string + partitions: + default: 3 + description: |- + Number of partitions to create within this super stream. + Defaults to '3'. + type: integer + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the SuperStream will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + routingKeys: + description: |- + Routing keys to use for each of the partitions in the SuperStream + If unset, the routing keys for the partitions will be set to the index of the partitions + items: + type: string + type: array + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - name + - rabbitmqClusterReference + type: object + status: + description: SuperStreamStatus defines the observed state of SuperStream + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this SuperStream. It corresponds to the + SuperStream's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + partitions: + description: Partitions are a list of the stream queue names which + form the partitions of this SuperStream. + items: + type: string + type: array + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_topicpermissions.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_topicpermissions.yaml new file mode 100644 index 0000000..a2316af --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_topicpermissions.yaml @@ -0,0 +1,160 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: topicpermissions.rabbitmq.com +spec: + group: rabbitmq.com + names: + kind: TopicPermission + listKind: TopicPermissionList + plural: topicpermissions + singular: topicpermission + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: TopicPermission is the Schema for the topicpermissions API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: TopicPermissionSpec defines the desired state of TopicPermission + properties: + permissions: + description: Permissions to grant to the user to a topic exchange; + required property. + properties: + exchange: + description: Name of a topic exchange; required property; cannot + be updated. + type: string + read: + type: string + write: + type: string + required: + - exchange + type: object + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that both the provided user and vhost are. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + user: + description: Name of an existing user; must provide user or userReference, + else create/update will fail; cannot be updated. + type: string + userReference: + description: Reference to an existing user.rabbitmq.com object; + must provide user or userReference, else create/update will fail; + cannot be updated. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + vhost: + description: Name of an existing vhost; required property; cannot + be updated. + type: string + required: + - permissions + - rabbitmqClusterReference + - vhost + type: object + status: + description: TopicPermissionStatus defines the observed state of TopicPermission + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this TopicPermission. It corresponds to the + TopicPermission's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_users.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_users.yaml new file mode 100644 index 0000000..c7b72e0 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_users.yaml @@ -0,0 +1,200 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: users.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: User + listKind: UserList + plural: users + singular: user + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: User is the Schema for the users API. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec configures the desired state of the User object. + properties: + importCredentialsSecret: + description: "Defines a Secret containing the credentials for the\ + \ User. If this field is omitted, random a username and\npassword\ + \ will be generated. The Secret must have the following keys in\ + \ its Data field:\n\n * `username` \u2013 Must be present or the\ + \ import will fail.\n * `passwordHash` \u2013 The SHA-512 hash\ + \ of the password. If the hash is an empty string, a passwordless\ + \ user\n will be created. For more information, see https://www.rabbitmq.com/docs/passwords.\n\ + \ * `password` \u2013 Plain-text password. Will be used only if\ + \ the `passwordHash` key is missing.\n\nNote that this import\ + \ only occurs at creation time, and is ignored once a password\ + \ has been set on a User." + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + limits: + description: |- + Limits to apply to a user to restrict the number of connections and channels + the user can create. These limits can be used as guard rails in environments + where applications cannot be trusted and monitored in detail, for example, + when RabbitMQ clusters are offered as a service. See https://www.rabbitmq.com/docs/user-limits. + properties: + channels: + description: Limits how many AMQP 0.9.1 channels the user can + open. + format: int32 + type: integer + connections: + description: Limits how many connections the user can open. + format: int32 + type: integer + type: object + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the user will be created for. This cluster must + exist for the User object to be created. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + tags: + description: |- + List of permissions tags to associate with the user. This determines the level of + access to the RabbitMQ management UI granted to the user. Omitting this field will + lead to a user than can still connect to the cluster through messaging protocols, + but cannot perform any management actions. + For more information, see https://www.rabbitmq.com/management.html#permissions. + items: + description: |- + UserTag defines the level of access to the management UI allocated to the user. + For more information, see https://www.rabbitmq.com/management.html#permissions. + enum: + - management + - policymaker + - monitoring + - administrator + type: string + type: array + required: + - rabbitmqClusterReference + type: object + status: + description: Status exposes the observed state of the User object. + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + credentials: + description: Provides a reference to a Secret object containing + the user credentials. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this User. It corresponds to the + User's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + username: + description: Provide rabbitmq Username + type: string + required: + - username + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_vhosts.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_vhosts.yaml new file mode 100644 index 0000000..f047413 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_vhosts.yaml @@ -0,0 +1,162 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: vhosts.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Vhost + listKind: VhostList + plural: vhosts + singular: vhost + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Vhost is the Schema for the vhosts API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: VhostSpec defines the desired state of Vhost + properties: + defaultQueueType: + description: |- + Default queue type for this vhost; can be set to quorum, classic or stream. + Supported in RabbitMQ 3.11.12 or above. + enum: + - quorum + - classic + - stream + type: string + deletionPolicy: + default: delete + description: |- + DeletionPolicy defines the behavior of vhost in the RabbitMQ cluster when the corresponding custom resource is deleted. + Can be set to 'delete' or 'retain'. Default is 'delete'. + enum: + - delete + - retain + type: string + limits: + description: |- + Limits defines limits to be applied to the vhost. + Supported limits include max-connections and max-queues. + See https://www.rabbitmq.com/docs/vhosts#limits + properties: + connections: + format: int32 + type: integer + queues: + format: int32 + type: integer + type: object + name: + description: Name of the vhost; see https://www.rabbitmq.com/vhosts.html. + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the vhost will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + tags: + items: + type: string + type: array + tracing: + type: boolean + required: + - name + - rabbitmqClusterReference + type: object + status: + description: VhostStatus defines the observed state of Vhost + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Vhost. It corresponds to the + Vhost's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crd-rabbitmq-cluster.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/rabbitmq-cluster/rabbitmq.com_rabbitmqclusters.yaml similarity index 75% rename from tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crd-rabbitmq-cluster.yaml rename to tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/rabbitmq-cluster/rabbitmq.com_rabbitmqclusters.yaml index b2d17ce..d46b6f0 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crd-rabbitmq-cluster.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/rabbitmq-cluster/rabbitmq.com_rabbitmqclusters.yaml @@ -2,12 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - labels: - app.kubernetes.io/component: rabbitmq-operator - app.kubernetes.io/name: rabbitmq-cluster-operator - app.kubernetes.io/part-of: rabbitmq - servicebinding.io/provisioned-service: 'true' + controller-gen.kubebuilder.io/version: v0.18.0 name: rabbitmqclusters.rabbitmq.com spec: group: rabbitmq.com @@ -36,19 +31,24 @@ spec: name: v1beta1 schema: openAPIV3Schema: - description: RabbitmqCluster is the Schema for the RabbitmqCluster API. - Each instance of this object corresponds to a single RabbitMQ cluster. + description: |- + RabbitmqCluster is the Schema for the RabbitmqCluster API. Each instance of this object + corresponds to a single RabbitMQ cluster. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -65,22 +65,20 @@ spec: pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods - to nodes that satisfy the affinity expressions specified - by this field, but it may choose a node that violates - one or more of the expressions. The node that is most - preferred is the one with the greatest sum of weights, - i.e. for each node that meets all of the scheduling requirements - (resource request, requiredDuringScheduling affinity expressions, - etc.), compute a sum by iterating through the elements - of this field and adding "weight" to the sum if the node - matches the corresponding matchExpressions; the node(s) - with the highest sum are the most preferred. + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node matches the corresponding matchExpressions; the + node(s) with the highest sum are the most preferred. items: - description: An empty preferred scheduling term matches - all objects with implicit weight 0 (i.e. it's a no-op). - A null preferred scheduling term matches no objects - (i.e. is also a no-op). + description: |- + An empty preferred scheduling term matches all objects with implicit weight 0 + (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). properties: preference: description: A node selector term, associated with @@ -90,74 +88,70 @@ spec: description: A list of node selector requirements by node's labels. items: - description: A node selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values - array must be empty. If the operator is - Gt or Lt, the values array must have a - single element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. items: - description: A node selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values - array must be empty. If the operator is - Gt or Lt, the values array must have a - single element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: @@ -170,99 +164,96 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified by this - field are not met at scheduling time, the pod will not - be scheduled onto the node. If the affinity requirements - specified by this field cease to be met at some point - during pod execution (e.g. due to an update), the system - may or may not try to eventually evict the pod from its - node. + description: |- + If the affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to an update), the system + may or may not try to eventually evict the pod from its node. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: - description: A null or empty node selector term matches - no objects. The requirements of them are ANDed. - The TopologySelectorTerm type implements a subset - of the NodeSelectorTerm. + description: |- + A null or empty node selector term matches no objects. The requirements of + them are ANDed. + The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: - description: A node selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values - array must be empty. If the operator is - Gt or Lt, the values array must have a - single element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. items: - description: A node selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values - array must be empty. If the operator is - Gt or Lt, the values array must have a - single element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object @@ -273,17 +264,16 @@ spec: this pod in the same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods - to nodes that satisfy the affinity expressions specified - by this field, but it may choose a node that violates - one or more of the expressions. The node that is most - preferred is the one with the greatest sum of weights, - i.e. for each node that meets all of the scheduling requirements - (resource request, requiredDuringScheduling affinity expressions, - etc.), compute a sum by iterating through the elements - of this field and adding "weight" to the sum if the node - has pods which matches the corresponding podAffinityTerm; - the node(s) with the highest sum are the most preferred. + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred @@ -294,141 +284,159 @@ spec: with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, - in this case pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied - to the union of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty namespaces - list means "this pod's namespace". An empty - selector ({}) matches all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list - of namespace names that the term applies to. - The term is applied to the union of the namespaces - listed in this field and the ones selected by - namespaceSelector. null or empty namespaces - list and null namespaceSelector means "this - pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified - namespaces, where co-located is defined as running - on a node whose value of the label with key - topologyKey matches that of any node on which - any of the selected pods is running. Empty topologyKey - is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching the corresponding - podAffinityTerm, in the range 1-100. + description: |- + weight associated with matching the corresponding podAffinityTerm, + in the range 1-100. format: int32 type: integer required: @@ -436,151 +444,177 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified by this - field are not met at scheduling time, the pod will not - be scheduled onto the node. If the affinity requirements - specified by this field cease to be met at some point - during pod execution (e.g. due to a pod label update), - the system may or may not try to eventually evict the - pod from its node. When there are multiple elements, the - lists of nodes corresponding to each podAffinityTerm are - intersected, i.e. all terms must be satisfied. + description: |- + If the affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to a pod label update), the + system may or may not try to eventually evict the pod from its node. + When there are multiple elements, the lists of nodes corresponding to each + podAffinityTerm are intersected, i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely those matching - the labelSelector relative to the given namespace(s)) - that this pod should be co-located (affinity) or not - co-located (anti-affinity) with, where co-located is - defined as running on a node whose value of the label - with key matches that of any node on which + description: |- + Defines a set of pods (namely those matching the labelSelector + relative to the given namespace(s)) that this pod should be + co-located (affinity) or not co-located (anti-affinity) with, + where co-located is defined as running on a node whose value of + the label with key matches that of any node on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. This array - is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied to - the union of the namespaces selected by this field - and the ones listed in the namespaces field. null - selector and null or empty namespaces list means - "this pod's namespace". An empty selector ({}) matches - all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. This array - is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list of - namespace names that the term applies to. The term - is applied to the union of the namespaces listed - in this field and the ones selected by namespaceSelector. - null or empty namespaces list and null namespaceSelector - means "this pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified namespaces, - where co-located is defined as running on a node - whose value of the label with key topologyKey matches - that of any node on which any of the selected pods - is running. Empty topologyKey is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object podAntiAffinity: description: Describes pod anti-affinity scheduling rules (e.g. @@ -588,18 +622,16 @@ spec: other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods - to nodes that satisfy the anti-affinity expressions specified - by this field, but it may choose a node that violates - one or more of the expressions. The node that is most - preferred is the one with the greatest sum of weights, - i.e. for each node that meets all of the scheduling requirements - (resource request, requiredDuringScheduling anti-affinity - expressions, etc.), compute a sum by iterating through - the elements of this field and adding "weight" to the - sum if the node has pods which matches the corresponding - podAffinityTerm; the node(s) with the highest sum are - the most preferred. + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the anti-affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling anti-affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred @@ -610,141 +642,159 @@ spec: with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, - in this case pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied - to the union of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty namespaces - list means "this pod's namespace". An empty - selector ({}) matches all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list - of namespace names that the term applies to. - The term is applied to the union of the namespaces - listed in this field and the ones selected by - namespaceSelector. null or empty namespaces - list and null namespaceSelector means "this - pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified - namespaces, where co-located is defined as running - on a node whose value of the label with key - topologyKey matches that of any node on which - any of the selected pods is running. Empty topologyKey - is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching the corresponding - podAffinityTerm, in the range 1-100. + description: |- + weight associated with matching the corresponding podAffinityTerm, + in the range 1-100. format: int32 type: integer required: @@ -752,184 +802,219 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements specified - by this field are not met at scheduling time, the pod - will not be scheduled onto the node. If the anti-affinity - requirements specified by this field cease to be met at - some point during pod execution (e.g. due to a pod label - update), the system may or may not try to eventually evict - the pod from its node. When there are multiple elements, - the lists of nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must be satisfied. + description: |- + If the anti-affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the anti-affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to a pod label update), the + system may or may not try to eventually evict the pod from its node. + When there are multiple elements, the lists of nodes corresponding to each + podAffinityTerm are intersected, i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely those matching - the labelSelector relative to the given namespace(s)) - that this pod should be co-located (affinity) or not - co-located (anti-affinity) with, where co-located is - defined as running on a node whose value of the label - with key matches that of any node on which + description: |- + Defines a set of pods (namely those matching the labelSelector + relative to the given namespace(s)) that this pod should be + co-located (affinity) or not co-located (anti-affinity) with, + where co-located is defined as running on a node whose value of + the label with key matches that of any node on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. This array - is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied to - the union of the namespaces selected by this field - and the ones listed in the namespaces field. null - selector and null or empty namespaces list means - "this pod's namespace". An empty selector ({}) matches - all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. This array - is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list of - namespace names that the term applies to. The term - is applied to the union of the namespaces listed - in this field and the ones selected by namespaceSelector. - null or empty namespaces list and null namespaceSelector - means "this pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified namespaces, - where co-located is defined as running on a node - whose value of the label with key topologyKey matches - that of any node on which any of the selected pods - is running. Empty topologyKey is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object type: object + autoEnableAllFeatureFlags: + description: |- + Set to true to automatically enable all feature flags after each upgrade + For more information, see https://www.rabbitmq.com/docs/feature-flags + type: boolean delayStartSeconds: default: 30 - description: DelayStartSeconds is the time the init container (`setup-container`) - will sleep before terminating. This effectively delays the time - between starting the Pod and starting the `rabbitmq` container. + description: |- + DelayStartSeconds is the time the init container (`setup-container`) will sleep before terminating. + This effectively delays the time between starting the Pod and starting the `rabbitmq` container. RabbitMQ relies on up-to-date DNS entries early during peer discovery. - The purpose of this artificial delay is to ensure that DNS entries - are up-to-date when booting RabbitMQ. For more information, see - https://github.com/kubernetes/kubernetes/issues/92559 If your - Kubernetes DNS backend is configured with a low DNS cache value - or publishes not ready addresses promptly, you can decrase this - value or set it to 0. + The purpose of this artificial delay is to ensure that DNS entries are up-to-date when booting RabbitMQ. + For more information, see https://github.com/kubernetes/kubernetes/issues/92559 + If your Kubernetes DNS backend is configured with a low DNS cache value or publishes not ready addresses + promptly, you can decrase this value or set it to 0. format: int32 minimum: 0 type: integer image: - description: Image is the name of the RabbitMQ docker image to use - for RabbitMQ nodes in the RabbitmqCluster. Must be provided together - with ImagePullSecrets in order to use an image in a private registry. + description: |- + Image is the name of the RabbitMQ docker image to use for RabbitMQ nodes in the RabbitmqCluster. + Must be provided together with ImagePullSecrets in order to use an image in a private registry. type: string imagePullSecrets: description: List of Secret resource containing access credentials to the registry for the RabbitMQ image. Required if the docker registry is private. items: - description: LocalObjectReference contains enough information - to let you locate the referenced object inside the same namespace. + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic @@ -964,6 +1049,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic externalName: type: string externalTrafficPolicy: @@ -988,6 +1074,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic ports: items: properties: @@ -1035,6 +1122,8 @@ spec: type: integer type: object type: object + trafficDistribution: + type: string type: type: string type: object @@ -1082,11 +1171,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1137,11 +1228,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -1153,11 +1246,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: @@ -1168,6 +1263,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -1184,11 +1280,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -1200,14 +1298,17 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object @@ -1233,17 +1334,29 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1257,11 +1370,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1272,6 +1387,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -1285,6 +1401,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -1301,17 +1418,29 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1325,11 +1454,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1340,12 +1471,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object podAntiAffinity: properties: @@ -1367,17 +1500,29 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1391,11 +1536,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1406,6 +1553,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -1419,6 +1567,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -1435,17 +1584,29 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1459,11 +1620,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1474,12 +1637,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object type: object automountServiceAccountToken: @@ -1491,10 +1656,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic command: items: type: string type: array + x-kubernetes-list-type: atomic env: items: properties: @@ -1509,6 +1676,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -1547,6 +1715,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -1559,12 +1728,16 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map envFrom: items: properties: configMapRef: properties: name: + default: '' type: string optional: type: boolean @@ -1575,6 +1748,7 @@ spec: secretRef: properties: name: + default: '' type: string optional: type: boolean @@ -1582,6 +1756,7 @@ spec: x-kubernetes-map-type: atomic type: object type: array + x-kubernetes-list-type: atomic image: type: string imagePullPolicy: @@ -1596,6 +1771,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -1613,6 +1789,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -1625,6 +1802,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -1646,6 +1831,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -1663,6 +1849,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -1675,6 +1862,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -1688,6 +1883,8 @@ spec: - port type: object type: object + stopSignal: + type: string type: object livenessProbe: properties: @@ -1697,6 +1894,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -1707,6 +1905,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -1727,6 +1926,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -1801,6 +2001,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -1811,6 +2012,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -1831,6 +2033,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -1891,6 +2094,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1915,20 +2120,33 @@ spec: x-kubernetes-int-or-string: true type: object type: object + restartPolicy: + type: string securityContext: properties: allowPrivilegeEscalation: type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object capabilities: properties: add: items: type: string type: array + x-kubernetes-list-type: atomic drop: items: type: string type: array + x-kubernetes-list-type: atomic type: object privileged: type: boolean @@ -1984,6 +2202,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -1994,6 +2213,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -2014,6 +2234,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2076,6 +2297,9 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map volumeMounts: items: properties: @@ -2087,6 +2311,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -2096,18 +2322,25 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map workingDir: type: string required: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map dnsConfig: properties: nameservers: items: type: string type: array + x-kubernetes-list-type: atomic options: items: properties: @@ -2117,10 +2350,12 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic searches: items: type: string type: array + x-kubernetes-list-type: atomic type: object dnsPolicy: type: string @@ -2133,10 +2368,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic command: items: type: string type: array + x-kubernetes-list-type: atomic env: items: properties: @@ -2151,6 +2388,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -2189,6 +2427,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -2201,12 +2440,16 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map envFrom: items: properties: configMapRef: properties: name: + default: '' type: string optional: type: boolean @@ -2217,6 +2460,7 @@ spec: secretRef: properties: name: + default: '' type: string optional: type: boolean @@ -2224,6 +2468,7 @@ spec: x-kubernetes-map-type: atomic type: object type: array + x-kubernetes-list-type: atomic image: type: string imagePullPolicy: @@ -2238,6 +2483,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -2255,6 +2501,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2267,6 +2514,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -2288,6 +2543,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -2305,6 +2561,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2317,6 +2574,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -2330,6 +2595,8 @@ spec: - port type: object type: object + stopSignal: + type: string type: object livenessProbe: properties: @@ -2339,6 +2606,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -2349,6 +2617,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -2369,6 +2638,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2443,6 +2713,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -2453,6 +2724,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -2473,6 +2745,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2533,6 +2806,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2557,20 +2832,33 @@ spec: x-kubernetes-int-or-string: true type: object type: object + restartPolicy: + type: string securityContext: properties: allowPrivilegeEscalation: type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object capabilities: properties: add: items: type: string type: array + x-kubernetes-list-type: atomic drop: items: type: string type: array + x-kubernetes-list-type: atomic type: object privileged: type: boolean @@ -2626,6 +2914,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -2636,6 +2925,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -2656,6 +2946,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2720,6 +3011,9 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map volumeMounts: items: properties: @@ -2731,6 +3025,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -2740,12 +3036,18 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map workingDir: type: string required: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map hostAliases: items: properties: @@ -2753,10 +3055,16 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic ip: type: string + required: + - ip type: object type: array + x-kubernetes-list-map-keys: + - ip + x-kubernetes-list-type: map hostIPC: type: boolean hostNetwork: @@ -2771,10 +3079,14 @@ spec: items: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map initContainers: items: properties: @@ -2782,10 +3094,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic command: items: type: string type: array + x-kubernetes-list-type: atomic env: items: properties: @@ -2800,6 +3114,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -2838,6 +3153,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -2850,12 +3166,16 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map envFrom: items: properties: configMapRef: properties: name: + default: '' type: string optional: type: boolean @@ -2866,6 +3186,7 @@ spec: secretRef: properties: name: + default: '' type: string optional: type: boolean @@ -2873,6 +3194,7 @@ spec: x-kubernetes-map-type: atomic type: object type: array + x-kubernetes-list-type: atomic image: type: string imagePullPolicy: @@ -2887,6 +3209,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -2904,6 +3227,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2916,6 +3240,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -2937,6 +3269,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -2954,6 +3287,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2966,6 +3300,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -2979,6 +3321,8 @@ spec: - port type: object type: object + stopSignal: + type: string type: object livenessProbe: properties: @@ -2988,6 +3332,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -2998,6 +3343,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -3018,6 +3364,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -3092,6 +3439,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -3102,6 +3450,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -3122,6 +3471,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -3182,6 +3532,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -3206,20 +3558,33 @@ spec: x-kubernetes-int-or-string: true type: object type: object + restartPolicy: + type: string securityContext: properties: allowPrivilegeEscalation: type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object capabilities: properties: add: items: type: string type: array + x-kubernetes-list-type: atomic drop: items: type: string type: array + x-kubernetes-list-type: atomic type: object privileged: type: boolean @@ -3275,6 +3640,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -3285,6 +3651,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -3305,6 +3672,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -3367,6 +3735,9 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map volumeMounts: items: properties: @@ -3378,6 +3749,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -3387,12 +3760,18 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map workingDir: type: string required: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map nodeName: type: string nodeSelector: @@ -3431,18 +3810,16 @@ spec: - conditionType type: object type: array + x-kubernetes-list-type: atomic resourceClaims: items: properties: name: type: string - source: - properties: - resourceClaimName: - type: string - resourceClaimTemplateName: - type: string - type: object + resourceClaimName: + type: string + resourceClaimTemplateName: + type: string required: - name type: object @@ -3450,6 +3827,39 @@ spec: x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object restartPolicy: type: string runtimeClassName: @@ -3470,6 +3880,15 @@ spec: x-kubernetes-list-type: map securityContext: properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object fsGroup: format: int64 type: integer @@ -3483,6 +3902,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -3508,6 +3929,9 @@ spec: format: int64 type: integer type: array + x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string sysctls: items: properties: @@ -3520,6 +3944,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic windowsOptions: properties: gmsaCredentialSpec: @@ -3561,6 +3986,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic topologySpreadConstraints: items: properties: @@ -3577,11 +4003,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3643,10 +4071,12 @@ spec: diskURI: type: string fsType: + default: ext4 type: string kind: type: string readOnly: + default: false type: boolean required: - diskName @@ -3670,6 +4100,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -3679,6 +4110,7 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -3696,6 +4128,7 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -3724,7 +4157,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: '' type: string optional: type: boolean @@ -3739,6 +4174,7 @@ spec: nodePublishSecretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -3794,6 +4230,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -3818,6 +4255,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic dataSource: properties: apiGroup: @@ -3847,18 +4285,6 @@ spec: type: object resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: additionalProperties: anyOf: @@ -3889,11 +4315,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3902,6 +4330,8 @@ spec: x-kubernetes-map-type: atomic storageClassName: type: string + volumeAttributesClassName: + type: string volumeMode: type: string volumeName: @@ -3924,10 +4354,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object flexVolume: properties: @@ -3944,6 +4376,7 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -4003,6 +4436,13 @@ spec: required: - path type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object iscsi: properties: chapAuthDiscovery: @@ -4016,6 +4456,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -4024,11 +4465,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -4090,6 +4533,45 @@ spec: sources: items: properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object configMap: properties: items: @@ -4107,7 +4589,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: '' type: string optional: type: boolean @@ -4153,6 +4637,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -4171,7 +4656,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: '' type: string optional: type: boolean @@ -4191,6 +4678,7 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object quobyte: properties: @@ -4217,22 +4705,27 @@ spec: image: type: string keyring: + default: /etc/ceph/keyring type: string monitors: items: type: string type: array + x-kubernetes-list-type: atomic pool: + default: rbd type: string readOnly: type: boolean secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic user: + default: admin type: string required: - image @@ -4241,6 +4734,7 @@ spec: scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -4251,12 +4745,14 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -4289,6 +4785,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -4303,6 +4800,7 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -4328,6 +4826,9 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map required: - containers type: object @@ -4376,6 +4877,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic dataSource: properties: apiGroup: @@ -4405,18 +4907,6 @@ spec: type: object resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: additionalProperties: anyOf: @@ -4447,11 +4937,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -4460,6 +4952,8 @@ spec: x-kubernetes-map-type: atomic storageClassName: type: string + volumeAttributesClassName: + type: string volumeMode: type: string volumeName: @@ -4481,10 +4975,10 @@ spec: - type: integer - type: string default: 10Gi - description: The requested size of the persistent volume attached - to each Pod in the RabbitmqCluster. The format of this field - matches that defined by kubernetes/apimachinery. See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity - for more info on the format of this field. + description: |- + The requested size of the persistent volume attached to each Pod in the RabbitmqCluster. + The format of this field matches that defined by kubernetes/apimachinery. + See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info on the format of this field. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true storageClassName: @@ -4497,12 +4991,11 @@ spec: the cluster. properties: additionalConfig: - description: Modify to add to the rabbitmq.conf file in addition - to default configurations set by the operator. Modifying this - property on an existing RabbitmqCluster will trigger a StatefulSet - rolling restart and will cause rabbitmq downtime. For more - information on this config, see https://www.rabbitmq.com/configure.html#config-file - maxLength: 2000 + description: |- + Modify to add to the rabbitmq.conf file in addition to default configurations set by the operator. + Modifying this property on an existing RabbitmqCluster will trigger a StatefulSet rolling restart and will cause rabbitmq downtime. + For more information on this config, see https://www.rabbitmq.com/configure.html#config-file + maxLength: 100000 type: string additionalPlugins: description: 'List of plugins to enable in addition to essential @@ -4515,26 +5008,30 @@ spec: maxItems: 100 type: array advancedConfig: - description: Specify any rabbitmq advanced.config configurations - to apply to the cluster. For more information on advanced - config, see https://www.rabbitmq.com/configure.html#advanced-config-file + description: |- + Specify any rabbitmq advanced.config configurations to apply to the cluster. + For more information on advanced config, see https://www.rabbitmq.com/configure.html#advanced-config-file maxLength: 100000 type: string envConfig: - description: Modify to add to the rabbitmq-env.conf file. Modifying - this property on an existing RabbitmqCluster will trigger - a StatefulSet rolling restart and will cause rabbitmq downtime. + description: |- + Modify to add to the rabbitmq-env.conf file. Modifying this property on an existing RabbitmqCluster will trigger a StatefulSet rolling restart and will cause rabbitmq downtime. For more information on env config, see https://www.rabbitmq.com/man/rabbitmq-env.conf.5.html maxLength: 100000 type: string + erlangInetConfig: + description: |- + Erlang Inet configuration to apply to the Erlang VM running rabbit. + See also: https://www.erlang.org/doc/apps/erts/inet_cfg.html + maxLength: 2000 + type: string type: object replicas: default: 1 - description: Replicas is the number of nodes in the RabbitMQ cluster. - Each node is deployed as a Replica in a StatefulSet. Only 1, 3, - 5 replicas clusters are tested. This value should be an odd number - to ensure the resultant cluster can establish exactly one quorum - of nodes in the event of a fragmenting network partition. + description: |- + Replicas is the number of nodes in the RabbitMQ cluster. Each node is deployed as a Replica in a StatefulSet. Only 1, 3, 5 replicas clusters are tested. + This value should be an odd number to ensure the resultant cluster can establish exactly one quorum of nodes + in the event of a fragmenting network partition. format: int32 minimum: 0 type: integer @@ -4550,18 +5047,28 @@ spec: the cluster. properties: claims: - description: "Claims lists the names of resources, defined in\ - \ spec.resourceClaims, that are used by this container. \n\ - \ This is an alpha field and requires enabling the DynamicResourceAllocation\ - \ feature gate. \n This field is immutable. It can only be\ - \ set for containers." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. type: string required: - name @@ -4577,8 +5084,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -4587,87 +5095,96 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secretBackend: - description: Secret backend configuration for the RabbitmqCluster. - Enables to fetch default user credentials and certificates from - K8s external secret stores. + description: |- + Secret backend configuration for the RabbitmqCluster. + Enables to fetch default user credentials and certificates from K8s external secret stores. properties: externalSecret: - description: LocalObjectReference contains enough information - to let you locate the referenced object inside the same namespace. + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic vault: - description: VaultSpec will add Vault annotations (see https://www.vaultproject.io/docs/platform/k8s/injector/annotations) - to RabbitMQ Pods. It requires a Vault Agent Sidecar Injector - (https://www.vaultproject.io/docs/platform/k8s/injector) to - be installed in the K8s cluster. The injector is a K8s Mutation - Webhook Controller that alters RabbitMQ Pod specifications - (based on the added Vault annotations) to include Vault Agent - containers that render Vault secrets to the volume. + description: |- + VaultSpec will add Vault annotations (see https://www.vaultproject.io/docs/platform/k8s/injector/annotations) + to RabbitMQ Pods. It requires a Vault Agent Sidecar Injector (https://www.vaultproject.io/docs/platform/k8s/injector) + to be installed in the K8s cluster. The injector is a K8s Mutation Webhook Controller that alters RabbitMQ Pod specifications + (based on the added Vault annotations) to include Vault Agent containers that render Vault secrets to the volume. properties: annotations: additionalProperties: type: string - description: Vault annotations that override the Vault annotations - set by the cluster-operator. For a list of valid Vault - annotations, see https://www.vaultproject.io/docs/platform/k8s/injector/annotations + description: |- + Vault annotations that override the Vault annotations set by the cluster-operator. + For a list of valid Vault annotations, see https://www.vaultproject.io/docs/platform/k8s/injector/annotations type: object defaultUserPath: - description: Path in Vault to access a KV (Key-Value) secret - with the fields username and password for the default - user. For example "secret/data/rabbitmq/config". + description: |- + Path in Vault to access a KV (Key-Value) secret with the fields username and password for the default user. + For example "secret/data/rabbitmq/config". type: string defaultUserUpdaterImage: - description: Sidecar container that updates the default - user's password in RabbitMQ when it changes in Vault. - Additionally, it updates /var/lib/rabbitmq/.rabbitmqadmin.conf - (used by rabbitmqadmin CLI). Set to empty string to disable - the sidecar container. + description: |- + Sidecar container that updates the default user's password in RabbitMQ when it changes in Vault. + Additionally, it updates /var/lib/rabbitmq/.rabbitmqadmin.conf (used by rabbitmqadmin CLI). + Set to empty string to disable the sidecar container. type: string role: - description: Role in Vault. If vault.defaultUserPath is - set, this role must have capability to read the pre-created - default user credential in Vault. If vault.tls is set, - this role must have capability to create and update certificates - in the Vault PKI engine for the domains "" - and ".svc". + description: |- + Role in Vault. + If vault.defaultUserPath is set, this role must have capability to read the pre-created default user credential in Vault. + If vault.tls is set, this role must have capability to create and update certificates in the Vault PKI engine for the domains + "" and ".svc". type: string tls: properties: altNames: - description: 'Specifies the requested Subject Alternative - Names (SANs), in a comma-delimited list. These will - be appended to the SANs added by the cluster-operator. - The cluster-operator will add SANs: "-server-.-nodes." - for each pod, e.g. "myrabbit-server-0.myrabbit-nodes.default".' + description: |- + Specifies the requested Subject Alternative Names (SANs), in a comma-delimited list. + These will be appended to the SANs added by the cluster-operator. + The cluster-operator will add SANs: + "-server-.-nodes." for each pod, + e.g. "myrabbit-server-0.myrabbit-nodes.default". type: string commonName: - description: Specifies the requested certificate Common - Name (CN). Defaults to ..svc - if not provided. + description: |- + Specifies the requested certificate Common Name (CN). + Defaults to ..svc if not provided. type: string ipSans: description: Specifies the requested IP Subject Alternative Names, in a comma-delimited list. type: string pkiIssuerPath: - description: Path in Vault PKI engine. For example "pki/issue/hashicorp-com". + description: |- + Path in Vault PKI engine. + For example "pki/issue/hashicorp-com". required type: string + pkiRootPath: + description: Specifies an optional path to retrieve + the root CA from vault. Useful if certificates are + issued by an intermediate CA + type: string type: object type: object type: object @@ -4682,11 +5199,24 @@ spec: type: string description: Annotations to add to the Service. type: object + ipFamilyPolicy: + description: |- + IPFamilyPolicy represents the dual-stack-ness requested or required by a Service + See also: https://pkg.go.dev/k8s.io/api/core/v1#IPFamilyPolicy + enum: + - SingleStack + - PreferDualStack + - RequireDualStack + type: string + labels: + additionalProperties: + type: string + type: object type: default: ClusterIP - description: 'Type of Service to create for the cluster. Must - be one of: ClusterIP, LoadBalancer, NodePort. For more info - see https://pkg.go.dev/k8s.io/api/core/v1#ServiceType' + description: |- + Type of Service to create for the cluster. Must be one of: ClusterIP, LoadBalancer, NodePort. + For more info see https://pkg.go.dev/k8s.io/api/core/v1#ServiceType enum: - ClusterIP - LoadBalancer @@ -4694,19 +5224,18 @@ spec: type: string type: object skipPostDeploySteps: - description: If unset, or set to false, the cluster will run `rabbitmq-queues - rebalance all` whenever the cluster is updated. Set to true to - prevent the operator rebalancing queue leaders after a cluster - update. Has no effect if the cluster only consists of one node. + description: |- + If unset, or set to false, the cluster will run `rabbitmq-queues rebalance all` whenever the cluster is updated. + Set to true to prevent the operator rebalancing queue leaders after a cluster update. + Has no effect if the cluster only consists of one node. For more information, see https://www.rabbitmq.com/rabbitmq-queues.8.html#rebalance type: boolean terminationGracePeriodSeconds: default: 604800 - description: 'TerminationGracePeriodSeconds is the timeout that - each rabbitmqcluster pod will have to terminate gracefully. It - defaults to 604800 seconds ( a week long) to ensure that the container - preStop lifecycle hook can finish running. For more information, - see: https://github.com/rabbitmq/cluster-operator/blob/main/docs/design/20200520-graceful-pod-termination.md' + description: |- + TerminationGracePeriodSeconds is the timeout that each rabbitmqcluster pod will have to terminate gracefully. + It defaults to 604800 seconds ( a week long) to ensure that the container preStop lifecycle hook can finish running. + For more information, see: https://github.com/rabbitmq/cluster-operator/blob/main/docs/design/20200520-graceful-pod-termination.md format: int64 minimum: 0 type: integer @@ -4714,65 +5243,61 @@ spec: description: TLS-related configuration for the RabbitMQ cluster. properties: caSecretName: - description: Name of a Secret in the same Namespace as the RabbitmqCluster, - containing the Certificate Authority's public certificate - for TLS. The Secret must store this as ca.crt. This Secret - can be created by running `kubectl create secret generic ca-secret - --from-file=ca.crt=path/to/ca.cert` Used for mTLS, and TLS - for rabbitmq_web_stomp and rabbitmq_web_mqtt. + description: |- + Name of a Secret in the same Namespace as the RabbitmqCluster, containing the Certificate Authority's public certificate for TLS. + The Secret must store this as ca.crt. + This Secret can be created by running `kubectl create secret generic ca-secret --from-file=ca.crt=path/to/ca.crt` + Used for mTLS, and TLS for rabbitmq_web_stomp and rabbitmq_web_mqtt. type: string disableNonTLSListeners: - description: 'When set to true, the RabbitmqCluster disables - non-TLS listeners for RabbitMQ, management plugin and for - any enabled plugins in the following list: stomp, mqtt, web_stomp, - web_mqtt. Only TLS-enabled clients will be able to connect.' + description: |- + When set to true, the RabbitmqCluster disables non-TLS listeners for RabbitMQ, management plugin and for any enabled plugins in the following list: stomp, mqtt, web_stomp, web_mqtt. + Only TLS-enabled clients will be able to connect. type: boolean secretName: - description: Name of a Secret in the same Namespace as the RabbitmqCluster, - containing the server's private key & public certificate for - TLS. The Secret must store these as tls.key and tls.crt, respectively. - This Secret can be created by running `kubectl create secret - tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key` + description: |- + Name of a Secret in the same Namespace as the RabbitmqCluster, containing the server's private key & public certificate for TLS. + The Secret must store these as tls.key and tls.crt, respectively. + This Secret can be created by running `kubectl create secret tls tls-secret --cert=path/to/tls.crt --key=path/to/tls.key` type: string type: object tolerations: description: Tolerations is the list of Toleration resources attached to each Pod in the RabbitmqCluster. items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using the - matching operator . + description: |- + The pod this Toleration is attached to tolerates any taint that matches + the triple using the matching operator . properties: effect: - description: Effect indicates the taint effect to match. Empty - means match all taint effects. When specified, allowed values - are NoSchedule, PreferNoSchedule and NoExecute. + description: |- + Effect indicates the taint effect to match. Empty means match all taint effects. + When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. type: string key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match - all values and all keys. + description: |- + Key is the taint key that the toleration applies to. Empty means match all taint keys. + If the key is empty, operator must be Exists; this combination means to match all values and all keys. type: string operator: - description: Operator represents a key's relationship to the - value. Valid operators are Exists and Equal. Defaults to - Equal. Exists is equivalent to wildcard for value, so that - a pod can tolerate all taints of a particular category. + description: |- + Operator represents a key's relationship to the value. + Valid operators are Exists and Equal. Defaults to Equal. + Exists is equivalent to wildcard for value, so that a pod can + tolerate all taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents the period of time - the toleration (which must be of effect NoExecute, otherwise - this field is ignored) tolerates the taint. By default, - it is not set, which means tolerate the taint forever (do - not evict). Zero and negative values will be treated as - 0 (evict immediately) by the system. + description: |- + TolerationSeconds represents the period of time the toleration (which must be + of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, + it is not set, which means tolerate the taint forever (do not evict). Zero and + negative values will be treated as 0 (evict immediately) by the system. format: int64 type: integer value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. + description: |- + Value is the taint value the toleration matches to. + If the operator is Exists, the value should be empty, otherwise just a regular string. type: string type: object type: array @@ -4781,13 +5306,19 @@ spec: description: Status presents the observed state of RabbitmqCluster properties: binding: - description: 'Binding exposes a secret containing the binding information - for this RabbitmqCluster. It implements the service binding Provisioned - Service duck type. See: https://github.com/servicebinding/spec#provisioned-service' + description: |- + Binding exposes a secret containing the binding information for this + RabbitmqCluster. It implements the service binding Provisioned Service + duck type. See: https://github.com/servicebinding/spec#provisioned-service properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic @@ -4823,8 +5354,9 @@ spec: description: Identifying information on internal resources properties: secretReference: - description: Reference to the Kubernetes Secret containing the - credentials of the default user. + description: |- + Reference to the Kubernetes Secret containing the credentials of the default + user. properties: keys: additionalProperties: @@ -4861,9 +5393,9 @@ spec: type: object type: object observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this RabbitmqCluster. It corresponds to the RabbitmqCluster's - generation, which is updated on mutation by the API Server. + description: |- + observedGeneration is the most recent successful generation observed for this RabbitmqCluster. It corresponds to the + RabbitmqCluster's generation, which is updated on mutation by the API Server. format: int64 type: integer required: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/aggregate-cluster-roles.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/aggregate-cluster-roles.yaml new file mode 100644 index 0000000..bd3e0a9 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/aggregate-cluster-roles.yaml @@ -0,0 +1,81 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-admin: 'true' + name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat-admin +rules: + - apiGroups: + - rabbitmq.com + resources: + - rabbitmqclusters + - rabbitmqclusters/finalizers + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-edit: 'true' + name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat-edit +rules: + - apiGroups: + - rabbitmq.com + resources: + - rabbitmqclusters + - rabbitmqclusters/finalizers + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-view: 'true' + name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat-view +rules: + - apiGroups: + - rabbitmq.com + resources: + - rabbitmqclusters + - rabbitmqclusters/finalizers + verbs: + - get + - list + - watch diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrole.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrole.yaml index 1c5b02c..9012969 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrole.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrole.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat rules: - apiGroups: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrolebinding.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrolebinding.yaml index 8bcea17..e1f8ad4 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrolebinding.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrolebinding.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/deployment.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/deployment.yaml index 525fd64..387593d 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/deployment.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/deployment.yaml @@ -7,12 +7,13 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator spec: replicas: 1 + revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/component: rabbitmq-operator @@ -28,8 +29,8 @@ spec: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 spec: affinity: nodeAffinity: null @@ -44,31 +45,31 @@ spec: app.kubernetes.io/name: rabbitmq-cluster-operator topologyKey: kubernetes.io/hostname weight: 1 + automountServiceAccountToken: true containers: - args: - --metrics-bind-address=:9782 command: - - /manager + - manager env: - name: OPERATOR_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: DEFAULT_RABBITMQ_IMAGE - value: docker.io/bitnamilegacy/rabbitmq:3.12.12-debian-11-r0 + value: docker.io/bitnamilegacy/rabbitmq:4.1.3-debian-12-r1 - name: DEFAULT_USER_UPDATER_IMAGE - value: docker.io/bitnamilegacy/rmq-default-credential-updater:1.0.4-debian-11-r5 + value: docker.io/bitnamilegacy/rmq-default-credential-updater:1.0.8-debian-12-r0 envFrom: null - image: docker.io/bitnamilegacy/rabbitmq-cluster-operator:2.6.0-debian-11-r3 + image: docker.io/bitnamilegacy/rabbitmq-cluster-operator:2.16.1-debian-12-r0 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 5 - httpGet: - path: /metrics - port: http initialDelaySeconds: 5 periodSeconds: 30 successThreshold: 1 + tcpSocket: + port: http timeoutSeconds: 5 name: rabbitmq-cluster-operator ports: @@ -85,7 +86,13 @@ spec: successThreshold: 1 timeoutSeconds: 5 resources: - limits: {} - requests: {} + limits: + cpu: 150m + ephemeral-storage: 2Gi + memory: 192Mi + requests: + cpu: 100m + ephemeral-storage: 50Mi + memory: 128Mi initContainers: null serviceAccountName: rabbitmq-operator-rabbitmq-cluster-operator diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/networkpolicy.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/networkpolicy.yaml new file mode 100644 index 0000000..cfeef08 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/networkpolicy.yaml @@ -0,0 +1,26 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + name: rabbitmq-operator-rabbitmq-cluster-operator + namespace: syn-rabbitmq-operator +spec: + egress: + - {} + ingress: null + podSelector: + matchLabels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + policyTypes: + - Ingress + - Egress diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/pdb.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/pdb.yaml new file mode 100644 index 0000000..5ba254b --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/pdb.yaml @@ -0,0 +1,20 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + name: rabbitmq-operator-rabbitmq-cluster-operator + namespace: syn-rabbitmq-operator +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/name: rabbitmq-cluster-operator diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/role.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/role.yaml index dd70f15..3f6230f 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/role.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/role.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator rules: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/rolebinding.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/rolebinding.yaml index cf11492..14830b3 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/rolebinding.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/rolebinding.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator roleRef: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/service-account.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/service-account.yaml index bacd0e0..11b6e7a 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/service-account.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/service-account.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -automountServiceAccountToken: true +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -8,7 +8,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/issuer.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/issuer.yaml index 1362732..bdf71d8 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/issuer.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/issuer.yaml @@ -6,8 +6,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator spec: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/aggregate-cluster-roles.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/aggregate-cluster-roles.yaml new file mode 100644 index 0000000..79898c4 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/aggregate-cluster-roles.yaml @@ -0,0 +1,114 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-admin: 'true' + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb-admin +rules: + - apiGroups: + - rabbitmq.com + resources: + - bindings + - exchanges + - federations + - operatorpolicies + - permissions + - policies + - queues + - schemareplications + - shovels + - superstreams + - topicpermissions + - users + - vhosts + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-edit: 'true' + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb-edit +rules: + - apiGroups: + - rabbitmq.com + resources: + - bindings + - exchanges + - federations + - operatorpolicies + - permissions + - policies + - queues + - schemareplications + - shovels + - superstreams + - topicpermissions + - users + - vhosts + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-view: 'true' + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb-view +rules: + - apiGroups: + - rabbitmq.com + resources: + - bindings + - exchanges + - federations + - operatorpolicies + - permissions + - policies + - queues + - schemareplications + - shovels + - superstreams + - topicpermissions + - users + - vhosts + verbs: + - get + - list + - watch diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/certificate.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/certificate.yaml index 9278beb..0d629cd 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/certificate.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/certificate.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook namespace: syn-rabbitmq-operator spec: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrole.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrole.yaml index aaec2fd..b1e5c8c 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrole.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrole.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb rules: - apiGroups: @@ -58,6 +58,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - bindings/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -78,6 +84,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - exchanges/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -98,6 +110,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - federations/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -118,6 +136,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - permissions/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -138,6 +162,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - policies/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -158,6 +188,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - queues/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -192,6 +228,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - schemareplications/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -212,6 +254,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - shovels/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -232,6 +280,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - superstreams/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -252,6 +306,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - users/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -272,6 +332,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - vhosts/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -292,3 +358,35 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - topicpermissions/finalizers + verbs: + - update + - apiGroups: + - rabbitmq.com + resources: + - operatorpolicies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rabbitmq.com + resources: + - operatorpolicies/status + verbs: + - get + - patch + - update + - apiGroups: + - rabbitmq.com + resources: + - operatorpolicies/finalizers + verbs: + - update diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrolebinding.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrolebinding.yaml index c4f8aa7..c99f394 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrolebinding.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrolebinding.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/deployment.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/deployment.yaml index 016a76c..7156561 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/deployment.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/deployment.yaml @@ -7,12 +7,13 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator namespace: syn-rabbitmq-operator spec: replicas: 1 + revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/component: messaging-topology-operator @@ -28,8 +29,8 @@ spec: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 spec: affinity: nodeAffinity: null @@ -44,32 +45,32 @@ spec: app.kubernetes.io/name: rabbitmq-cluster-operator topologyKey: kubernetes.io/hostname weight: 1 + automountServiceAccountToken: true containers: - args: - --metrics-bind-address=:8080 command: - - /manager + - manager env: - name: OPERATOR_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace envFrom: null - image: docker.io/bitnamilegacy/rmq-messaging-topology-operator:1.12.2-debian-11-r1 + image: docker.io/bitnamilegacy/rmq-messaging-topology-operator:1.17.4-debian-12-r0 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 5 - httpGet: - path: /metrics - port: http-metrics initialDelaySeconds: 5 periodSeconds: 30 successThreshold: 1 + tcpSocket: + port: http-metrics timeoutSeconds: 5 name: rabbitmq-cluster-operator ports: - containerPort: 9443 - name: http-webhook + name: https-webhook protocol: TCP - containerPort: 8080 name: http-metrics @@ -84,8 +85,14 @@ spec: successThreshold: 1 timeoutSeconds: 5 resources: - limits: {} - requests: {} + limits: + cpu: 150m + ephemeral-storage: 2Gi + memory: 192Mi + requests: + cpu: 100m + ephemeral-storage: 50Mi + memory: 128Mi volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/networkpolicy.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/networkpolicy.yaml new file mode 100644 index 0000000..668dd78 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/networkpolicy.yaml @@ -0,0 +1,28 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + name: rabbitmq-operator-rabbitmq-messaging-topology-operator + namespace: syn-rabbitmq-operator +spec: + egress: + - {} + ingress: + - ports: + - port: 9443 + podSelector: + matchLabels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + policyTypes: + - Ingress + - Egress diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/pdb.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/pdb.yaml new file mode 100644 index 0000000..4ee1a01 --- /dev/null +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/pdb.yaml @@ -0,0 +1,20 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + name: rabbitmq-operator-rabbitmq-messaging-topology-operator + namespace: syn-rabbitmq-operator +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/name: rabbitmq-cluster-operator diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/role.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/role.yaml index c3d0044..548b183 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/role.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/role.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator namespace: syn-rabbitmq-operator rules: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/rolebinding.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/rolebinding.yaml index 32df759..e4d2492 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/rolebinding.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/rolebinding.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator namespace: syn-rabbitmq-operator roleRef: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/service-account.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/service-account.yaml index b579240..9278604 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/service-account.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/service-account.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -automountServiceAccountToken: true +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -8,7 +8,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator namespace: syn-rabbitmq-operator diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/validating-webhook-configuration.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/validating-webhook-configuration.yaml index d4af6e1..6ac409d 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/validating-webhook-configuration.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/validating-webhook-configuration.yaml @@ -9,8 +9,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook webhooks: - admissionReviewVersions: @@ -76,6 +76,27 @@ webhooks: resources: - federations sideEffects: None + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook + namespace: syn-rabbitmq-operator + path: /validate-rabbitmq-com-v1beta1-operatorpolicy + port: 443 + failurePolicy: Fail + name: voperatorpolicy.kb.io + rules: + - apiGroups: + - rabbitmq.com + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - operatorpolicies + sideEffects: None - admissionReviewVersions: - v1 clientConfig: @@ -118,6 +139,27 @@ webhooks: resources: - permissions sideEffects: None + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook + namespace: syn-rabbitmq-operator + path: /validate-rabbitmq-com-v1beta1-topicpermission + port: 443 + failurePolicy: Fail + name: vtopicpermission.kb.io + rules: + - apiGroups: + - rabbitmq.com + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - topicpermissions + sideEffects: None - admissionReviewVersions: - v1 clientConfig: diff --git a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/webhook-service.yaml b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/webhook-service.yaml index e8632d0..8d57b30 100644 --- a/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/webhook-service.yaml +++ b/tests/golden/custom/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/webhook-service.yaml @@ -7,17 +7,17 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook namespace: syn-rabbitmq-operator spec: ports: - - name: http + - name: https nodePort: null port: 443 protocol: TCP - targetPort: http-webhook + targetPort: https-webhook selector: app.kubernetes.io/component: messaging-topology-operator app.kubernetes.io/instance: rabbitmq-operator diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crds-messaging-topology-operator.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crds-messaging-topology-operator.yaml deleted file mode 100644 index 72d6f55..0000000 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crds-messaging-topology-operator.yaml +++ /dev/null @@ -1,1743 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: bindings.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Binding - listKind: BindingList - plural: bindings - singular: binding - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Binding is the Schema for the bindings API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BindingSpec defines the desired state of Binding - properties: - arguments: - description: Cannot be updated - type: object - x-kubernetes-preserve-unknown-fields: true - destination: - description: Cannot be updated - type: string - destinationType: - description: Cannot be updated - enum: - - exchange - - queue - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the binding will - be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - routingKey: - description: Cannot be updated - type: string - source: - description: Cannot be updated - type: string - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - rabbitmqClusterReference - type: object - status: - description: BindingStatus defines the observed state of Binding - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Binding. It corresponds to the Binding's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: exchanges.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Exchange - listKind: ExchangeList - plural: exchanges - singular: exchange - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Exchange is the Schema for the exchanges API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ExchangeSpec defines the desired state of Exchange - properties: - arguments: - type: object - x-kubernetes-preserve-unknown-fields: true - autoDelete: - description: Cannot be updated - type: boolean - durable: - description: Cannot be updated - type: boolean - name: - description: Required property; cannot be updated - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the exchange - will be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - type: - default: direct - description: Cannot be updated - type: string - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - name - - rabbitmqClusterReference - type: object - status: - description: ExchangeStatus defines the observed state of Exchange - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Exchange. It corresponds to the Exchange's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: federations.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Federation - listKind: FederationList - plural: federations - singular: federation - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Federation is the Schema for the federations API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: 'FederationSpec defines the desired state of Federation - For how to configure federation upstreams, see: https://www.rabbitmq.com/federation-reference.html.' - properties: - ackMode: - enum: - - on-confirm - - on-publish - - no-ack - type: string - exchange: - type: string - expires: - type: integer - maxHops: - type: integer - messageTTL: - type: integer - name: - description: Required property; cannot be updated - type: string - prefetch-count: - type: integer - queue: - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that this federation - upstream will be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - reconnectDelay: - type: integer - trustUserId: - type: boolean - uriSecret: - description: Secret contains the AMQP URI(s) for the upstream. The - Secret must contain the key `uri` or operator will error. `uri` - should be one or multiple uris separated by ','. Required property. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - name - - rabbitmqClusterReference - - uriSecret - type: object - status: - description: FederationStatus defines the observed state of Federation - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Federation. It corresponds to the Federation's - generation, which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: permissions.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Permission - listKind: PermissionList - plural: permissions - singular: permission - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Permission is the Schema for the permissions API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PermissionSpec defines the desired state of Permission - properties: - permissions: - description: 'Permissions to grant to the user in the specific vhost; - required property. See RabbitMQ doc for more information: https://www.rabbitmq.com/access-control.html#user-management' - properties: - configure: - type: string - read: - type: string - write: - type: string - type: object - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that both the provided - user and vhost are. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - user: - description: Name of an existing user; must provide user or userReference, - else create/update will fail; cannot be updated - type: string - userReference: - description: Reference to an existing user.rabbitmq.com object; - must provide user or userReference, else create/update will fail; - cannot be updated - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - vhost: - description: Name of an existing vhost; required property; cannot - be updated - type: string - required: - - permissions - - rabbitmqClusterReference - - vhost - type: object - status: - description: PermissionStatus defines the observed state of Permission - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Permission. It corresponds to the Permission's - generation, which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: policies.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Policy - listKind: PolicyList - plural: policies - singular: policy - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Policy is the Schema for the policies API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PolicySpec defines the desired state of Policy https://www.rabbitmq.com/parameters.html#policies - properties: - applyTo: - default: all - description: 'What this policy applies to: ''queues'', ''classic_queues'', - ''quorum_queues'', ''streams'', ''exchanges'', or ''all''. Default - to ''all''.' - enum: - - queues - - classic_queues - - quorum_queues - - streams - - exchanges - - all - type: string - definition: - description: Policy definition. Required property. - type: object - x-kubernetes-preserve-unknown-fields: true - name: - description: Required property; cannot be updated - type: string - pattern: - description: Regular expression pattern used to match queues and - exchanges, e.g. "^amq.". Required property. - type: string - priority: - default: 0 - description: Default to '0'. In the event that more than one policy - can match a given exchange or queue, the policy with the greatest - priority applies. - type: integer - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the exchange - will be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - definition - - name - - pattern - - rabbitmqClusterReference - type: object - status: - description: PolicyStatus defines the observed state of Policy - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Policy. It corresponds to the Policy's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: queues.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Queue - listKind: QueueList - plural: queues - singular: queue - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Queue is the Schema for the queues API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: QueueSpec defines the desired state of Queue - properties: - arguments: - description: 'Queue arguments in the format of KEY: VALUE. e.g. - x-delivery-limit: 10000. Configuring queues through arguments - is not recommended because they cannot be updated once set; we - recommend configuring queues through policies instead.' - type: object - x-kubernetes-preserve-unknown-fields: true - autoDelete: - description: when set to true, queues that have had at least one - consumer before are deleted after the last consumer unsubscribes. - type: boolean - durable: - description: When set to false queues does not survive server restart. - type: boolean - name: - description: Name of the queue; required property. - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the queue will - be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - type: - type: string - vhost: - default: / - description: Default to vhost '/' - type: string - required: - - name - - rabbitmqClusterReference - type: object - status: - description: QueueStatus defines the observed state of Queue - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Queue. It corresponds to the Queue's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: schemareplications.rabbitmq.com -spec: - group: rabbitmq.com - names: - kind: SchemaReplication - listKind: SchemaReplicationList - plural: schemareplications - singular: schemareplication - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: 'SchemaReplication is the Schema for the schemareplications - API This feature requires Tanzu RabbitMQ with schema replication plugin. - For more information, see: https://tanzu.vmware.com/rabbitmq and https://www.rabbitmq.com/definitions-standby.html.' - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: SchemaReplicationSpec defines the desired state of SchemaReplication - properties: - endpoints: - description: endpoints should be one or multiple endpoints separated - by ','. Must provide either spec.endpoints or endpoints in spec.upstreamSecret. - When endpoints are provided in both spec.endpoints and spec.upstreamSecret, - spec.endpoints takes precedence. - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that schema replication - would be set for. Must be an existing cluster. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - secretBackend: - description: Set to fetch user credentials from K8s external secret - stores to be used for schema replication. - properties: - vault: - properties: - secretPath: - description: Path in Vault to access a KV (Key-Value) secret - with the fields username and password to be used for replication. - For example "secret/data/rabbitmq/config". Optional; if - not provided, username and password will come from upstreamSecret - instead. Have to set either secretBackend.vault.secretPath - or upstreamSecret, but not both. - type: string - type: object - type: object - upstreamSecret: - description: Defines a Secret which contains credentials to be used - for schema replication. The Secret must contain the keys `username` - and `password` in its Data field, or operator will error. Have - to set either secretBackend.vault.secretPath or spec.upstreamSecret, - but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - required: - - rabbitmqClusterReference - type: object - status: - description: SchemaReplicationStatus defines the observed state of SchemaReplication - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Queue. It corresponds to the Queue's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: shovels.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Shovel - listKind: ShovelList - plural: shovels - singular: shovel - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Shovel is the Schema for the shovels API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: 'ShovelSpec defines the desired state of Shovel For how - to configure Shovel, see: https://www.rabbitmq.com/shovel.html.' - properties: - ackMode: - enum: - - on-confirm - - on-publish - - no-ack - type: string - addForwardHeaders: - type: boolean - deleteAfter: - type: string - destAddForwardHeaders: - type: boolean - destAddTimestampHeader: - type: boolean - destAddress: - description: amqp10 configuration; required if destProtocol is amqp10 - type: string - destApplicationProperties: - description: amqp10 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - destExchange: - description: amqp091 configuration - type: string - destExchangeKey: - description: amqp091 configuration - type: string - destMessageAnnotations: - description: amqp10 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - destProperties: - description: amqp10 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - destProtocol: - enum: - - amqp091 - - amqp10 - type: string - destPublishProperties: - description: amqp091 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - destQueue: - description: amqp091 configuration - type: string - name: - description: Required property; cannot be updated - type: string - prefetchCount: - type: integer - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that this Shovel will - be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - reconnectDelay: - type: integer - srcAddress: - description: amqp10 configuration; required if srcProtocol is amqp10 - type: string - srcConsumerArgs: - description: amqp091 configuration - type: object - x-kubernetes-preserve-unknown-fields: true - srcDeleteAfter: - type: string - srcExchange: - description: amqp091 configuration - type: string - srcExchangeKey: - description: amqp091 configuration - type: string - srcPrefetchCount: - type: integer - srcProtocol: - enum: - - amqp091 - - amqp10 - type: string - srcQueue: - description: amqp091 configuration - type: string - uriSecret: - description: Secret contains the AMQP URI(s) to configure Shovel - destination and source. The Secret must contain the key `destUri` - and `srcUri` or operator will error. Both fields should be one - or multiple uris separated by ','. Required property. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - name - - rabbitmqClusterReference - - uriSecret - type: object - status: - description: ShovelStatus defines the observed state of Shovel - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Shovel. It corresponds to the Shovel's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: superstreams.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: SuperStream - listKind: SuperStreamList - plural: superstreams - singular: superstream - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: SuperStream is the Schema for the queues API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: SuperStreamSpec defines the desired state of SuperStream - properties: - name: - description: Name of the queue; required property. - type: string - partitions: - default: 3 - description: Number of partitions to create within this super stream. - Defaults to '3'. - type: integer - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the SuperStream - will be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - routingKeys: - description: Routing keys to use for each of the partitions in the - SuperStream If unset, the routing keys for the partitions will - be set to the index of the partitions - items: - type: string - type: array - vhost: - default: / - description: Default to vhost '/'; cannot be updated - type: string - required: - - name - - rabbitmqClusterReference - type: object - status: - description: SuperStreamStatus defines the observed state of SuperStream - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this SuperStream. It corresponds to the SuperStream's - generation, which is updated on mutation by the API Server. - format: int64 - type: integer - partitions: - description: Partitions are a list of the stream queue names which - form the partitions of this SuperStream. - items: - type: string - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: topicpermissions.rabbitmq.com -spec: - group: rabbitmq.com - names: - kind: TopicPermission - listKind: TopicPermissionList - plural: topicpermissions - singular: topicpermission - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: TopicPermission is the Schema for the topicpermissions API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: TopicPermissionSpec defines the desired state of TopicPermission - properties: - permissions: - description: Permissions to grant to the user to a topic exchange; - required property. - properties: - exchange: - description: Name of a topic exchange; required property; cannot - be updated. - type: string - read: - type: string - write: - type: string - type: object - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that both the provided - user and vhost are. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - user: - description: Name of an existing user; must provide user or userReference, - else create/update will fail; cannot be updated. - type: string - userReference: - description: Reference to an existing user.rabbitmq.com object; - must provide user or userReference, else create/update will fail; - cannot be updated. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - vhost: - description: Name of an existing vhost; required property; cannot - be updated. - type: string - required: - - permissions - - rabbitmqClusterReference - - vhost - type: object - status: - description: TopicPermissionStatus defines the observed state of TopicPermission - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this TopicPermission. It corresponds to the TopicPermission's - generation, which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: users.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: User - listKind: UserList - plural: users - singular: user - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: User is the Schema for the users API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec configures the desired state of the User object. - properties: - importCredentialsSecret: - description: Defines a Secret used to pre-define the username and - password set for this User. User objects created with this field - set will not have randomly-generated credentials, and will instead - import the username/password values from this Secret. The Secret - must contain the keys `username` and `password` in its Data field, - or the import will fail. Note that this import only occurs at - creation time, and is ignored once a password has been set on - a User. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the user will - be created for. This cluster must exist for the User object to - be created. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - tags: - description: List of permissions tags to associate with the user. - This determines the level of access to the RabbitMQ management - UI granted to the user. Omitting this field will lead to a user - than can still connect to the cluster through messaging protocols, - but cannot perform any management actions. For more information, - see https://www.rabbitmq.com/management.html#permissions. - items: - description: UserTag defines the level of access to the management - UI allocated to the user. For more information, see https://www.rabbitmq.com/management.html#permissions. - enum: - - management - - policymaker - - monitoring - - administrator - type: string - type: array - required: - - rabbitmqClusterReference - type: object - status: - description: Status exposes the observed state of the User object. - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - credentials: - description: Provides a reference to a Secret object containing - the user credentials. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this User. It corresponds to the User's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - username: - description: Provide rabbitmq Username - type: string - required: - - username - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: vhosts.rabbitmq.com -spec: - group: rabbitmq.com - names: - categories: - - all - - rabbitmq - kind: Vhost - listKind: VhostList - plural: vhosts - singular: vhost - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Vhost is the Schema for the vhosts API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: VhostSpec defines the desired state of Vhost - properties: - defaultQueueType: - description: Default queue type for this vhost; can be set to quorum, - classic or stream. Supported in RabbitMQ 3.11.12 or above. - enum: - - quorum - - classic - - stream - type: string - name: - description: Name of the vhost; see https://www.rabbitmq.com/vhosts.html. - type: string - rabbitmqClusterReference: - description: Reference to the RabbitmqCluster that the vhost will - be created in. Required property. - properties: - connectionSecret: - description: Secret contains the http management uri for the - RabbitMQ cluster. The Secret must contain the key `uri`, `username` - and `password` or operator will error. Have to set either - name or connectionSecret, but not both. - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - name: - description: The name of the RabbitMQ cluster to reference. - Have to set either name or connectionSecret, but not both. - type: string - namespace: - description: The namespace of the RabbitMQ cluster to reference. - Defaults to the namespace of the requested resource if omitted. - type: string - type: object - tags: - items: - type: string - type: array - tracing: - type: boolean - required: - - name - - rabbitmqClusterReference - type: object - status: - description: VhostStatus defines the observed state of Vhost - properties: - conditions: - items: - properties: - lastTransitionTime: - description: The last time this Condition status changed. - format: date-time - type: string - message: - description: Full text reason for current status of the condition. - type: string - reason: - description: One word, camel-case reason for current status - of the condition. - type: string - status: - description: True, False, or Unknown - type: string - type: - description: Type indicates the scope of the custom resource - status addressed by the condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this Vhost. It corresponds to the Vhost's generation, - which is updated on mutation by the API Server. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_bindings.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_bindings.yaml new file mode 100644 index 0000000..2b1cf6b --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_bindings.yaml @@ -0,0 +1,144 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: bindings.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Binding + listKind: BindingList + plural: bindings + singular: binding + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Binding is the Schema for the bindings API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: BindingSpec defines the desired state of Binding + properties: + arguments: + description: Cannot be updated + type: object + x-kubernetes-preserve-unknown-fields: true + destination: + description: Cannot be updated + type: string + destinationType: + description: Cannot be updated + enum: + - exchange + - queue + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the binding will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + routingKey: + description: Cannot be updated + type: string + source: + description: Cannot be updated + type: string + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - rabbitmqClusterReference + type: object + status: + description: BindingStatus defines the observed state of Binding + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Binding. It corresponds to the + Binding's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_exchanges.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_exchanges.yaml new file mode 100644 index 0000000..02a619b --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_exchanges.yaml @@ -0,0 +1,142 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: exchanges.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Exchange + listKind: ExchangeList + plural: exchanges + singular: exchange + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Exchange is the Schema for the exchanges API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ExchangeSpec defines the desired state of Exchange + properties: + arguments: + type: object + x-kubernetes-preserve-unknown-fields: true + autoDelete: + description: Cannot be updated + type: boolean + durable: + description: Cannot be updated + type: boolean + name: + description: Required property; cannot be updated + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the exchange will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + type: + default: direct + description: Cannot be updated + type: string + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - name + - rabbitmqClusterReference + type: object + status: + description: ExchangeStatus defines the observed state of Exchange + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Exchange. It corresponds to the + Exchange's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_federations.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_federations.yaml new file mode 100644 index 0000000..9cd68a9 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_federations.yaml @@ -0,0 +1,202 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: federations.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Federation + listKind: FederationList + plural: federations + singular: federation + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Federation is the Schema for the federations API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + FederationSpec defines the desired state of Federation + For how to configure federation upstreams, see: https://www.rabbitmq.com/federation-reference.html. + properties: + ackMode: + enum: + - on-confirm + - on-publish + - no-ack + type: string + deletionPolicy: + default: delete + description: |- + DeletionPolicy defines the behavior of federation in the RabbitMQ cluster when the corresponding custom resource is deleted. + Can be set to 'delete' or 'retain'. Default is 'delete'. + enum: + - delete + - retain + type: string + exchange: + type: string + expires: + type: integer + maxHops: + type: integer + messageTTL: + type: integer + name: + description: Required property; cannot be updated + type: string + prefetch-count: + type: integer + queue: + type: string + queueType: + description: |- + The queue type of the internal upstream queue used by exchange federation. + Defaults to classic (a single replica queue type). Set to quorum to use a replicated queue type. + Changing the queue type will delete and recreate the upstream queue by default. + This may lead to messages getting lost or not routed anywhere during the re-declaration. + To avoid that, set resource-cleanup-mode key to never. + This requires manually deleting the old upstream queue so that it can be recreated with the new type. + enum: + - classic + - quorum + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that this federation upstream will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + reconnectDelay: + type: integer + resourceCleanupMode: + description: |- + Whether to delete the internal upstream queue when federation links stop. + By default, the internal upstream queue is deleted immediately when a federation link stops. + Set to never to keep the upstream queue around and collect messages even when changing federation configuration. + enum: + - default + - never + type: string + trustUserId: + type: boolean + uriSecret: + description: |- + Secret contains the AMQP URI(s) for the upstream. + The Secret must contain the key `uri` or operator will error. + `uri` should be one or multiple uris separated by ','. + Required property. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - name + - rabbitmqClusterReference + - uriSecret + type: object + status: + description: FederationStatus defines the observed state of Federation + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Federation. It corresponds to the + Federation's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_operatorpolicies.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_operatorpolicies.yaml new file mode 100644 index 0000000..8ffe7dd --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_operatorpolicies.yaml @@ -0,0 +1,159 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: operatorpolicies.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: OperatorPolicy + listKind: OperatorPolicyList + plural: operatorpolicies + singular: operatorpolicy + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: OperatorPolicy is the Schema for the operator policies API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + OperatorPolicySpec defines the desired state of OperatorPolicy + https://www.rabbitmq.com/parameters.html#operator-policies + properties: + applyTo: + default: queues + description: |- + What this operator policy applies to: 'queues', 'classic_queues', 'quorum_queues', 'streams'. + Default to 'queues'. + enum: + - queues + - classic_queues + - quorum_queues + - streams + type: string + definition: + description: OperatorPolicy definition. Required property. + type: object + x-kubernetes-preserve-unknown-fields: true + name: + description: Required property; cannot be updated + type: string + pattern: + description: |- + Regular expression pattern used to match queues, e.g. "^my-queue$". + Required property. + type: string + priority: + default: 0 + description: |- + Default to '0'. + In the event that more than one operator policy can match a given queue, the operator policy with the greatest priority applies. + type: integer + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the operator policy will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - definition + - name + - pattern + - rabbitmqClusterReference + type: object + status: + description: OperatorPolicyStatus defines the observed state of OperatorPolicy + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this OperatorPolicy. It corresponds to the + OperatorPolicy's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_permissions.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_permissions.yaml new file mode 100644 index 0000000..120b41f --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_permissions.yaml @@ -0,0 +1,159 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: permissions.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Permission + listKind: PermissionList + plural: permissions + singular: permission + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Permission is the Schema for the permissions API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: PermissionSpec defines the desired state of Permission + properties: + permissions: + description: |- + Permissions to grant to the user in the specific vhost; required property. + See RabbitMQ doc for more information: https://www.rabbitmq.com/access-control.html#user-management + properties: + configure: + type: string + read: + type: string + write: + type: string + type: object + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that both the provided user and vhost are. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + user: + description: Name of an existing user; must provide user or userReference, + else create/update will fail; cannot be updated + type: string + userReference: + description: Reference to an existing user.rabbitmq.com object; + must provide user or userReference, else create/update will fail; + cannot be updated + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + vhost: + description: Name of an existing vhost; required property; cannot + be updated + type: string + required: + - permissions + - rabbitmqClusterReference + - vhost + type: object + status: + description: PermissionStatus defines the observed state of Permission + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Permission. It corresponds to the + Permission's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_policies.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_policies.yaml new file mode 100644 index 0000000..4ed5d4e --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_policies.yaml @@ -0,0 +1,161 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: policies.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Policy + listKind: PolicyList + plural: policies + singular: policy + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Policy is the Schema for the policies API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + PolicySpec defines the desired state of Policy + https://www.rabbitmq.com/parameters.html#policies + properties: + applyTo: + default: all + description: |- + What this policy applies to: 'queues', 'classic_queues', 'quorum_queues', 'streams', 'exchanges', or 'all'. + Default to 'all'. + enum: + - queues + - classic_queues + - quorum_queues + - streams + - exchanges + - all + type: string + definition: + description: Policy definition. Required property. + type: object + x-kubernetes-preserve-unknown-fields: true + name: + description: Required property; cannot be updated + type: string + pattern: + description: |- + Regular expression pattern used to match queues and exchanges, e.g. "^amq.". + Required property. + type: string + priority: + default: 0 + description: |- + Default to '0'. + In the event that more than one policy can match a given exchange or queue, the policy with the greatest priority applies. + type: integer + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the policy will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - definition + - name + - pattern + - rabbitmqClusterReference + type: object + status: + description: PolicyStatus defines the observed state of Policy + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Policy. It corresponds to the + Policy's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_queues.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_queues.yaml new file mode 100644 index 0000000..aa1fbf3 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_queues.yaml @@ -0,0 +1,160 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: queues.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Queue + listKind: QueueList + plural: queues + singular: queue + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Queue is the Schema for the queues API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: QueueSpec defines the desired state of Queue + properties: + arguments: + description: |- + Queue arguments in the format of KEY: VALUE. e.g. x-delivery-limit: 10000. + Configuring queues through arguments is not recommended because they cannot be updated once set; we recommend configuring queues through policies instead. + type: object + x-kubernetes-preserve-unknown-fields: true + autoDelete: + description: when set to true, queues that have had at least one + consumer before are deleted after the last consumer unsubscribes. + type: boolean + deleteIfEmpty: + description: when set to true, queues are deleted only if empty. + type: boolean + deleteIfUnused: + description: when set to true, queues are delete only if they have + no consumer. + type: boolean + deletionPolicy: + default: delete + description: |- + DeletionPolicy defines the behavior of queue in the RabbitMQ cluster when the corresponding custom resource is deleted. + Can be set to 'delete' or 'retain'. Default is 'delete'. + enum: + - delete + - retain + type: string + durable: + description: When set to false queues does not survive server restart. + type: boolean + name: + description: Name of the queue; required property. + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the queue will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + type: + type: string + vhost: + default: / + description: Default to vhost '/' + type: string + required: + - name + - rabbitmqClusterReference + type: object + status: + description: QueueStatus defines the observed state of Queue + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Queue. It corresponds to the + Queue's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_schemareplications.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_schemareplications.yaml new file mode 100644 index 0000000..9ef4377 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_schemareplications.yaml @@ -0,0 +1,160 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: schemareplications.rabbitmq.com +spec: + group: rabbitmq.com + names: + kind: SchemaReplication + listKind: SchemaReplicationList + plural: schemareplications + singular: schemareplication + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: |- + SchemaReplication is the Schema for the schemareplications API + This feature requires Tanzu RabbitMQ with schema replication plugin. + For more information, see: https://tanzu.vmware.com/rabbitmq and https://www.rabbitmq.com/definitions-standby.html. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: SchemaReplicationSpec defines the desired state of SchemaReplication + properties: + endpoints: + description: |- + endpoints should be one or multiple endpoints separated by ','. + Must provide either spec.endpoints or endpoints in spec.upstreamSecret. + When endpoints are provided in both spec.endpoints and spec.upstreamSecret, spec.endpoints takes + precedence. + type: string + rabbitmqClusterReference: + description: Reference to the RabbitmqCluster that schema replication + would be set for. Must be an existing cluster. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + secretBackend: + description: Set to fetch user credentials from K8s external secret + stores to be used for schema replication. + properties: + vault: + properties: + secretPath: + description: |- + Path in Vault to access a KV (Key-Value) secret with the fields username and password to be used for replication. + For example "secret/data/rabbitmq/config". + Optional; if not provided, username and password will come from upstreamSecret instead. + Have to set either secretBackend.vault.secretPath or upstreamSecret, but not both. + type: string + type: object + type: object + upstreamSecret: + description: |- + Defines a Secret which contains credentials to be used for schema replication. + The Secret must contain the keys `username` and `password` in its Data field, or operator will error. + Have to set either secretBackend.vault.secretPath or spec.upstreamSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + required: + - rabbitmqClusterReference + type: object + status: + description: SchemaReplicationStatus defines the observed state of SchemaReplication + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Queue. It corresponds to the + Queue's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_shovels.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_shovels.yaml new file mode 100644 index 0000000..f139c4b --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_shovels.yaml @@ -0,0 +1,241 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: shovels.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Shovel + listKind: ShovelList + plural: shovels + singular: shovel + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Shovel is the Schema for the shovels API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + ShovelSpec defines the desired state of Shovel + For how to configure Shovel, see: https://www.rabbitmq.com/shovel.html. + properties: + ackMode: + enum: + - on-confirm + - on-publish + - no-ack + type: string + addForwardHeaders: + type: boolean + deleteAfter: + type: string + deletionPolicy: + default: delete + description: |- + DeletionPolicy defines the behavior of shovel in the RabbitMQ cluster when the corresponding custom resource is deleted. + Can be set to 'delete' or 'retain'. Default is 'delete'. + enum: + - delete + - retain + type: string + destAddForwardHeaders: + type: boolean + destAddTimestampHeader: + type: boolean + destAddress: + description: amqp10 configuration; required if destProtocol is amqp10 + type: string + destApplicationProperties: + description: amqp10 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + destExchange: + description: amqp091 configuration + type: string + destExchangeKey: + description: amqp091 configuration + type: string + destMessageAnnotations: + description: amqp10 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + destProperties: + description: amqp10 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + destProtocol: + enum: + - amqp091 + - amqp10 + type: string + destPublishProperties: + description: amqp091 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + destQueue: + description: amqp091 configuration + type: string + destQueueArgs: + type: object + x-kubernetes-preserve-unknown-fields: true + name: + description: Required property; cannot be updated + type: string + prefetchCount: + type: integer + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that this Shovel will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + reconnectDelay: + type: integer + srcAddress: + description: amqp10 configuration; required if srcProtocol is amqp10 + type: string + srcConsumerArgs: + description: amqp091 configuration + type: object + x-kubernetes-preserve-unknown-fields: true + srcDeleteAfter: + type: string + srcExchange: + description: amqp091 configuration + type: string + srcExchangeKey: + description: amqp091 configuration + type: string + srcPrefetchCount: + type: integer + srcProtocol: + enum: + - amqp091 + - amqp10 + type: string + srcQueue: + description: amqp091 configuration + type: string + srcQueueArgs: + type: object + x-kubernetes-preserve-unknown-fields: true + uriSecret: + description: |- + Secret contains the AMQP URI(s) to configure Shovel destination and source. + The Secret must contain the key `destUri` and `srcUri` or operator will error. + Both fields should be one or multiple uris separated by ','. + Required property. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - name + - rabbitmqClusterReference + - uriSecret + type: object + status: + description: ShovelStatus defines the observed state of Shovel + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Shovel. It corresponds to the + Shovel's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_superstreams.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_superstreams.yaml new file mode 100644 index 0000000..b65c1c0 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_superstreams.yaml @@ -0,0 +1,148 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: superstreams.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: SuperStream + listKind: SuperStreamList + plural: superstreams + singular: superstream + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: SuperStream is the Schema for the queues API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: SuperStreamSpec defines the desired state of SuperStream + properties: + name: + description: Name of the queue; required property. + type: string + partitions: + default: 3 + description: |- + Number of partitions to create within this super stream. + Defaults to '3'. + type: integer + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the SuperStream will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + routingKeys: + description: |- + Routing keys to use for each of the partitions in the SuperStream + If unset, the routing keys for the partitions will be set to the index of the partitions + items: + type: string + type: array + vhost: + default: / + description: Default to vhost '/'; cannot be updated + type: string + required: + - name + - rabbitmqClusterReference + type: object + status: + description: SuperStreamStatus defines the observed state of SuperStream + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this SuperStream. It corresponds to the + SuperStream's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + partitions: + description: Partitions are a list of the stream queue names which + form the partitions of this SuperStream. + items: + type: string + type: array + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_topicpermissions.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_topicpermissions.yaml new file mode 100644 index 0000000..a2316af --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_topicpermissions.yaml @@ -0,0 +1,160 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: topicpermissions.rabbitmq.com +spec: + group: rabbitmq.com + names: + kind: TopicPermission + listKind: TopicPermissionList + plural: topicpermissions + singular: topicpermission + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: TopicPermission is the Schema for the topicpermissions API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: TopicPermissionSpec defines the desired state of TopicPermission + properties: + permissions: + description: Permissions to grant to the user to a topic exchange; + required property. + properties: + exchange: + description: Name of a topic exchange; required property; cannot + be updated. + type: string + read: + type: string + write: + type: string + required: + - exchange + type: object + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that both the provided user and vhost are. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + user: + description: Name of an existing user; must provide user or userReference, + else create/update will fail; cannot be updated. + type: string + userReference: + description: Reference to an existing user.rabbitmq.com object; + must provide user or userReference, else create/update will fail; + cannot be updated. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + vhost: + description: Name of an existing vhost; required property; cannot + be updated. + type: string + required: + - permissions + - rabbitmqClusterReference + - vhost + type: object + status: + description: TopicPermissionStatus defines the observed state of TopicPermission + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this TopicPermission. It corresponds to the + TopicPermission's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_users.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_users.yaml new file mode 100644 index 0000000..c7b72e0 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_users.yaml @@ -0,0 +1,200 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: users.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: User + listKind: UserList + plural: users + singular: user + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: User is the Schema for the users API. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: Spec configures the desired state of the User object. + properties: + importCredentialsSecret: + description: "Defines a Secret containing the credentials for the\ + \ User. If this field is omitted, random a username and\npassword\ + \ will be generated. The Secret must have the following keys in\ + \ its Data field:\n\n * `username` \u2013 Must be present or the\ + \ import will fail.\n * `passwordHash` \u2013 The SHA-512 hash\ + \ of the password. If the hash is an empty string, a passwordless\ + \ user\n will be created. For more information, see https://www.rabbitmq.com/docs/passwords.\n\ + \ * `password` \u2013 Plain-text password. Will be used only if\ + \ the `passwordHash` key is missing.\n\nNote that this import\ + \ only occurs at creation time, and is ignored once a password\ + \ has been set on a User." + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + limits: + description: |- + Limits to apply to a user to restrict the number of connections and channels + the user can create. These limits can be used as guard rails in environments + where applications cannot be trusted and monitored in detail, for example, + when RabbitMQ clusters are offered as a service. See https://www.rabbitmq.com/docs/user-limits. + properties: + channels: + description: Limits how many AMQP 0.9.1 channels the user can + open. + format: int32 + type: integer + connections: + description: Limits how many connections the user can open. + format: int32 + type: integer + type: object + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the user will be created for. This cluster must + exist for the User object to be created. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + tags: + description: |- + List of permissions tags to associate with the user. This determines the level of + access to the RabbitMQ management UI granted to the user. Omitting this field will + lead to a user than can still connect to the cluster through messaging protocols, + but cannot perform any management actions. + For more information, see https://www.rabbitmq.com/management.html#permissions. + items: + description: |- + UserTag defines the level of access to the management UI allocated to the user. + For more information, see https://www.rabbitmq.com/management.html#permissions. + enum: + - management + - policymaker + - monitoring + - administrator + type: string + type: array + required: + - rabbitmqClusterReference + type: object + status: + description: Status exposes the observed state of the User object. + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + credentials: + description: Provides a reference to a Secret object containing + the user credentials. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this User. It corresponds to the + User's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + username: + description: Provide rabbitmq Username + type: string + required: + - username + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_vhosts.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_vhosts.yaml new file mode 100644 index 0000000..f047413 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/messaging-topology-operator/rabbitmq.com_vhosts.yaml @@ -0,0 +1,162 @@ +null +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.17.1 + name: vhosts.rabbitmq.com +spec: + group: rabbitmq.com + names: + categories: + - rabbitmq + kind: Vhost + listKind: VhostList + plural: vhosts + singular: vhost + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: Vhost is the Schema for the vhosts API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: VhostSpec defines the desired state of Vhost + properties: + defaultQueueType: + description: |- + Default queue type for this vhost; can be set to quorum, classic or stream. + Supported in RabbitMQ 3.11.12 or above. + enum: + - quorum + - classic + - stream + type: string + deletionPolicy: + default: delete + description: |- + DeletionPolicy defines the behavior of vhost in the RabbitMQ cluster when the corresponding custom resource is deleted. + Can be set to 'delete' or 'retain'. Default is 'delete'. + enum: + - delete + - retain + type: string + limits: + description: |- + Limits defines limits to be applied to the vhost. + Supported limits include max-connections and max-queues. + See https://www.rabbitmq.com/docs/vhosts#limits + properties: + connections: + format: int32 + type: integer + queues: + format: int32 + type: integer + type: object + name: + description: Name of the vhost; see https://www.rabbitmq.com/vhosts.html. + type: string + rabbitmqClusterReference: + description: |- + Reference to the RabbitmqCluster that the vhost will be created in. + Required property. + properties: + connectionSecret: + description: |- + Secret contains the http management uri for the RabbitMQ cluster. + The Secret must contain the key `uri`, `username` and `password` or operator will error. + Have to set either name or connectionSecret, but not both. + properties: + name: + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + description: |- + The name of the RabbitMQ cluster to reference. + Have to set either name or connectionSecret, but not both. + type: string + namespace: + description: |- + The namespace of the RabbitMQ cluster to reference. + Defaults to the namespace of the requested resource if omitted. + type: string + type: object + tags: + items: + type: string + type: array + tracing: + type: boolean + required: + - name + - rabbitmqClusterReference + type: object + status: + description: VhostStatus defines the observed state of Vhost + properties: + conditions: + items: + properties: + lastTransitionTime: + description: The last time this Condition status changed. + format: date-time + type: string + message: + description: Full text reason for current status of the condition. + type: string + reason: + description: One word, camel-case reason for current status + of the condition. + type: string + status: + description: True, False, or Unknown + type: string + type: + description: Type indicates the scope of the custom resource + status addressed by the condition. + type: string + required: + - status + - type + type: object + type: array + observedGeneration: + description: |- + observedGeneration is the most recent successful generation observed for this Vhost. It corresponds to the + Vhost's generation, which is updated on mutation by the API Server. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crd-rabbitmq-cluster.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/rabbitmq-cluster/rabbitmq.com_rabbitmqclusters.yaml similarity index 75% rename from tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crd-rabbitmq-cluster.yaml rename to tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/rabbitmq-cluster/rabbitmq.com_rabbitmqclusters.yaml index b2d17ce..d46b6f0 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/crd-rabbitmq-cluster.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/crds/rabbitmq-cluster/rabbitmq.com_rabbitmqclusters.yaml @@ -2,12 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 - labels: - app.kubernetes.io/component: rabbitmq-operator - app.kubernetes.io/name: rabbitmq-cluster-operator - app.kubernetes.io/part-of: rabbitmq - servicebinding.io/provisioned-service: 'true' + controller-gen.kubebuilder.io/version: v0.18.0 name: rabbitmqclusters.rabbitmq.com spec: group: rabbitmq.com @@ -36,19 +31,24 @@ spec: name: v1beta1 schema: openAPIV3Schema: - description: RabbitmqCluster is the Schema for the RabbitmqCluster API. - Each instance of this object corresponds to a single RabbitMQ cluster. + description: |- + RabbitmqCluster is the Schema for the RabbitmqCluster API. Each instance of this object + corresponds to a single RabbitMQ cluster. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource - this object represents. Servers may infer this from the endpoint the - client submits requests to. Cannot be updated. In CamelCase. More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -65,22 +65,20 @@ spec: pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods - to nodes that satisfy the affinity expressions specified - by this field, but it may choose a node that violates - one or more of the expressions. The node that is most - preferred is the one with the greatest sum of weights, - i.e. for each node that meets all of the scheduling requirements - (resource request, requiredDuringScheduling affinity expressions, - etc.), compute a sum by iterating through the elements - of this field and adding "weight" to the sum if the node - matches the corresponding matchExpressions; the node(s) - with the highest sum are the most preferred. + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node matches the corresponding matchExpressions; the + node(s) with the highest sum are the most preferred. items: - description: An empty preferred scheduling term matches - all objects with implicit weight 0 (i.e. it's a no-op). - A null preferred scheduling term matches no objects - (i.e. is also a no-op). + description: |- + An empty preferred scheduling term matches all objects with implicit weight 0 + (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). properties: preference: description: A node selector term, associated with @@ -90,74 +88,70 @@ spec: description: A list of node selector requirements by node's labels. items: - description: A node selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values - array must be empty. If the operator is - Gt or Lt, the values array must have a - single element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. items: - description: A node selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values - array must be empty. If the operator is - Gt or Lt, the values array must have a - single element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: @@ -170,99 +164,96 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified by this - field are not met at scheduling time, the pod will not - be scheduled onto the node. If the affinity requirements - specified by this field cease to be met at some point - during pod execution (e.g. due to an update), the system - may or may not try to eventually evict the pod from its - node. + description: |- + If the affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to an update), the system + may or may not try to eventually evict the pod from its node. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: - description: A null or empty node selector term matches - no objects. The requirements of them are ANDed. - The TopologySelectorTerm type implements a subset - of the NodeSelectorTerm. + description: |- + A null or empty node selector term matches no objects. The requirements of + them are ANDed. + The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: - description: A node selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values - array must be empty. If the operator is - Gt or Lt, the values array must have a - single element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. items: - description: A node selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values - array must be empty. If the operator is - Gt or Lt, the values array must have a - single element, which will be interpreted - as an integer. This array is replaced - during a strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object @@ -273,17 +264,16 @@ spec: this pod in the same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods - to nodes that satisfy the affinity expressions specified - by this field, but it may choose a node that violates - one or more of the expressions. The node that is most - preferred is the one with the greatest sum of weights, - i.e. for each node that meets all of the scheduling requirements - (resource request, requiredDuringScheduling affinity expressions, - etc.), compute a sum by iterating through the elements - of this field and adding "weight" to the sum if the node - has pods which matches the corresponding podAffinityTerm; - the node(s) with the highest sum are the most preferred. + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred @@ -294,141 +284,159 @@ spec: with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, - in this case pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied - to the union of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty namespaces - list means "this pod's namespace". An empty - selector ({}) matches all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list - of namespace names that the term applies to. - The term is applied to the union of the namespaces - listed in this field and the ones selected by - namespaceSelector. null or empty namespaces - list and null namespaceSelector means "this - pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified - namespaces, where co-located is defined as running - on a node whose value of the label with key - topologyKey matches that of any node on which - any of the selected pods is running. Empty topologyKey - is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching the corresponding - podAffinityTerm, in the range 1-100. + description: |- + weight associated with matching the corresponding podAffinityTerm, + in the range 1-100. format: int32 type: integer required: @@ -436,151 +444,177 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified by this - field are not met at scheduling time, the pod will not - be scheduled onto the node. If the affinity requirements - specified by this field cease to be met at some point - during pod execution (e.g. due to a pod label update), - the system may or may not try to eventually evict the - pod from its node. When there are multiple elements, the - lists of nodes corresponding to each podAffinityTerm are - intersected, i.e. all terms must be satisfied. + description: |- + If the affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to a pod label update), the + system may or may not try to eventually evict the pod from its node. + When there are multiple elements, the lists of nodes corresponding to each + podAffinityTerm are intersected, i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely those matching - the labelSelector relative to the given namespace(s)) - that this pod should be co-located (affinity) or not - co-located (anti-affinity) with, where co-located is - defined as running on a node whose value of the label - with key matches that of any node on which + description: |- + Defines a set of pods (namely those matching the labelSelector + relative to the given namespace(s)) that this pod should be + co-located (affinity) or not co-located (anti-affinity) with, + where co-located is defined as running on a node whose value of + the label with key matches that of any node on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. This array - is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied to - the union of the namespaces selected by this field - and the ones listed in the namespaces field. null - selector and null or empty namespaces list means - "this pod's namespace". An empty selector ({}) matches - all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. This array - is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list of - namespace names that the term applies to. The term - is applied to the union of the namespaces listed - in this field and the ones selected by namespaceSelector. - null or empty namespaces list and null namespaceSelector - means "this pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified namespaces, - where co-located is defined as running on a node - whose value of the label with key topologyKey matches - that of any node on which any of the selected pods - is running. Empty topologyKey is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object podAntiAffinity: description: Describes pod anti-affinity scheduling rules (e.g. @@ -588,18 +622,16 @@ spec: other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods - to nodes that satisfy the anti-affinity expressions specified - by this field, but it may choose a node that violates - one or more of the expressions. The node that is most - preferred is the one with the greatest sum of weights, - i.e. for each node that meets all of the scheduling requirements - (resource request, requiredDuringScheduling anti-affinity - expressions, etc.), compute a sum by iterating through - the elements of this field and adding "weight" to the - sum if the node has pods which matches the corresponding - podAffinityTerm; the node(s) with the highest sum are - the most preferred. + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the anti-affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling anti-affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred @@ -610,141 +642,159 @@ spec: with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, - in this case pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied - to the union of the namespaces selected by this - field and the ones listed in the namespaces - field. null selector and null or empty namespaces - list means "this pod's namespace". An empty - selector ({}) matches all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a - key, and an operator that relates the - key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only - "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list - of namespace names that the term applies to. - The term is applied to the union of the namespaces - listed in this field and the ones selected by - namespaceSelector. null or empty namespaces - list and null namespaceSelector means "this - pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified - namespaces, where co-located is defined as running - on a node whose value of the label with key - topologyKey matches that of any node on which - any of the selected pods is running. Empty topologyKey - is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching the corresponding - podAffinityTerm, in the range 1-100. + description: |- + weight associated with matching the corresponding podAffinityTerm, + in the range 1-100. format: int32 type: integer required: @@ -752,184 +802,219 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements specified - by this field are not met at scheduling time, the pod - will not be scheduled onto the node. If the anti-affinity - requirements specified by this field cease to be met at - some point during pod execution (e.g. due to a pod label - update), the system may or may not try to eventually evict - the pod from its node. When there are multiple elements, - the lists of nodes corresponding to each podAffinityTerm - are intersected, i.e. all terms must be satisfied. + description: |- + If the anti-affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the anti-affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to a pod label update), the + system may or may not try to eventually evict the pod from its node. + When there are multiple elements, the lists of nodes corresponding to each + podAffinityTerm are intersected, i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely those matching - the labelSelector relative to the given namespace(s)) - that this pod should be co-located (affinity) or not - co-located (anti-affinity) with, where co-located is - defined as running on a node whose value of the label - with key matches that of any node on which + description: |- + Defines a set of pods (namely those matching the labelSelector + relative to the given namespace(s)) that this pod should be + co-located (affinity) or not co-located (anti-affinity) with, + where co-located is defined as running on a node whose value of + the label with key matches that of any node on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. This array - is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied to - the union of the namespaces selected by this field - and the ones listed in the namespaces field. null - selector and null or empty namespaces list means - "this pod's namespace". An empty selector ({}) matches - all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is - a selector that contains values, a key, and - an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If - the operator is Exists or DoesNotExist, - the values array must be empty. This array - is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list of - namespace names that the term applies to. The term - is applied to the union of the namespaces listed - in this field and the ones selected by namespaceSelector. - null or empty namespaces list and null namespaceSelector - means "this pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified namespaces, - where co-located is defined as running on a node - whose value of the label with key topologyKey matches - that of any node on which any of the selected pods - is running. Empty topologyKey is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object type: object + autoEnableAllFeatureFlags: + description: |- + Set to true to automatically enable all feature flags after each upgrade + For more information, see https://www.rabbitmq.com/docs/feature-flags + type: boolean delayStartSeconds: default: 30 - description: DelayStartSeconds is the time the init container (`setup-container`) - will sleep before terminating. This effectively delays the time - between starting the Pod and starting the `rabbitmq` container. + description: |- + DelayStartSeconds is the time the init container (`setup-container`) will sleep before terminating. + This effectively delays the time between starting the Pod and starting the `rabbitmq` container. RabbitMQ relies on up-to-date DNS entries early during peer discovery. - The purpose of this artificial delay is to ensure that DNS entries - are up-to-date when booting RabbitMQ. For more information, see - https://github.com/kubernetes/kubernetes/issues/92559 If your - Kubernetes DNS backend is configured with a low DNS cache value - or publishes not ready addresses promptly, you can decrase this - value or set it to 0. + The purpose of this artificial delay is to ensure that DNS entries are up-to-date when booting RabbitMQ. + For more information, see https://github.com/kubernetes/kubernetes/issues/92559 + If your Kubernetes DNS backend is configured with a low DNS cache value or publishes not ready addresses + promptly, you can decrase this value or set it to 0. format: int32 minimum: 0 type: integer image: - description: Image is the name of the RabbitMQ docker image to use - for RabbitMQ nodes in the RabbitmqCluster. Must be provided together - with ImagePullSecrets in order to use an image in a private registry. + description: |- + Image is the name of the RabbitMQ docker image to use for RabbitMQ nodes in the RabbitmqCluster. + Must be provided together with ImagePullSecrets in order to use an image in a private registry. type: string imagePullSecrets: description: List of Secret resource containing access credentials to the registry for the RabbitMQ image. Required if the docker registry is private. items: - description: LocalObjectReference contains enough information - to let you locate the referenced object inside the same namespace. + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic @@ -964,6 +1049,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic externalName: type: string externalTrafficPolicy: @@ -988,6 +1074,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic ports: items: properties: @@ -1035,6 +1122,8 @@ spec: type: integer type: object type: object + trafficDistribution: + type: string type: type: string type: object @@ -1082,11 +1171,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1137,11 +1228,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -1153,11 +1246,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: @@ -1168,6 +1263,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -1184,11 +1280,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -1200,14 +1298,17 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object @@ -1233,17 +1334,29 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1257,11 +1370,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1272,6 +1387,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -1285,6 +1401,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -1301,17 +1418,29 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1325,11 +1454,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1340,12 +1471,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object podAntiAffinity: properties: @@ -1367,17 +1500,29 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1391,11 +1536,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1406,6 +1553,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -1419,6 +1567,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -1435,17 +1584,29 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: properties: matchExpressions: @@ -1459,11 +1620,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1474,12 +1637,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object type: object automountServiceAccountToken: @@ -1491,10 +1656,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic command: items: type: string type: array + x-kubernetes-list-type: atomic env: items: properties: @@ -1509,6 +1676,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -1547,6 +1715,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -1559,12 +1728,16 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map envFrom: items: properties: configMapRef: properties: name: + default: '' type: string optional: type: boolean @@ -1575,6 +1748,7 @@ spec: secretRef: properties: name: + default: '' type: string optional: type: boolean @@ -1582,6 +1756,7 @@ spec: x-kubernetes-map-type: atomic type: object type: array + x-kubernetes-list-type: atomic image: type: string imagePullPolicy: @@ -1596,6 +1771,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -1613,6 +1789,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -1625,6 +1802,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -1646,6 +1831,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -1663,6 +1849,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -1675,6 +1862,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -1688,6 +1883,8 @@ spec: - port type: object type: object + stopSignal: + type: string type: object livenessProbe: properties: @@ -1697,6 +1894,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -1707,6 +1905,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -1727,6 +1926,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -1801,6 +2001,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -1811,6 +2012,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -1831,6 +2033,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -1891,6 +2094,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1915,20 +2120,33 @@ spec: x-kubernetes-int-or-string: true type: object type: object + restartPolicy: + type: string securityContext: properties: allowPrivilegeEscalation: type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object capabilities: properties: add: items: type: string type: array + x-kubernetes-list-type: atomic drop: items: type: string type: array + x-kubernetes-list-type: atomic type: object privileged: type: boolean @@ -1984,6 +2202,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -1994,6 +2213,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -2014,6 +2234,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2076,6 +2297,9 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map volumeMounts: items: properties: @@ -2087,6 +2311,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -2096,18 +2322,25 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map workingDir: type: string required: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map dnsConfig: properties: nameservers: items: type: string type: array + x-kubernetes-list-type: atomic options: items: properties: @@ -2117,10 +2350,12 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic searches: items: type: string type: array + x-kubernetes-list-type: atomic type: object dnsPolicy: type: string @@ -2133,10 +2368,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic command: items: type: string type: array + x-kubernetes-list-type: atomic env: items: properties: @@ -2151,6 +2388,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -2189,6 +2427,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -2201,12 +2440,16 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map envFrom: items: properties: configMapRef: properties: name: + default: '' type: string optional: type: boolean @@ -2217,6 +2460,7 @@ spec: secretRef: properties: name: + default: '' type: string optional: type: boolean @@ -2224,6 +2468,7 @@ spec: x-kubernetes-map-type: atomic type: object type: array + x-kubernetes-list-type: atomic image: type: string imagePullPolicy: @@ -2238,6 +2483,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -2255,6 +2501,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2267,6 +2514,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -2288,6 +2543,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -2305,6 +2561,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2317,6 +2574,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -2330,6 +2595,8 @@ spec: - port type: object type: object + stopSignal: + type: string type: object livenessProbe: properties: @@ -2339,6 +2606,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -2349,6 +2617,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -2369,6 +2638,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2443,6 +2713,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -2453,6 +2724,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -2473,6 +2745,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2533,6 +2806,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2557,20 +2832,33 @@ spec: x-kubernetes-int-or-string: true type: object type: object + restartPolicy: + type: string securityContext: properties: allowPrivilegeEscalation: type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object capabilities: properties: add: items: type: string type: array + x-kubernetes-list-type: atomic drop: items: type: string type: array + x-kubernetes-list-type: atomic type: object privileged: type: boolean @@ -2626,6 +2914,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -2636,6 +2925,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -2656,6 +2946,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2720,6 +3011,9 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map volumeMounts: items: properties: @@ -2731,6 +3025,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -2740,12 +3036,18 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map workingDir: type: string required: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map hostAliases: items: properties: @@ -2753,10 +3055,16 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic ip: type: string + required: + - ip type: object type: array + x-kubernetes-list-map-keys: + - ip + x-kubernetes-list-type: map hostIPC: type: boolean hostNetwork: @@ -2771,10 +3079,14 @@ spec: items: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map initContainers: items: properties: @@ -2782,10 +3094,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic command: items: type: string type: array + x-kubernetes-list-type: atomic env: items: properties: @@ -2800,6 +3114,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -2838,6 +3153,7 @@ spec: key: type: string name: + default: '' type: string optional: type: boolean @@ -2850,12 +3166,16 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map envFrom: items: properties: configMapRef: properties: name: + default: '' type: string optional: type: boolean @@ -2866,6 +3186,7 @@ spec: secretRef: properties: name: + default: '' type: string optional: type: boolean @@ -2873,6 +3194,7 @@ spec: x-kubernetes-map-type: atomic type: object type: array + x-kubernetes-list-type: atomic image: type: string imagePullPolicy: @@ -2887,6 +3209,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -2904,6 +3227,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2916,6 +3240,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -2937,6 +3269,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object httpGet: properties: @@ -2954,6 +3287,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -2966,6 +3300,14 @@ spec: required: - port type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object tcpSocket: properties: host: @@ -2979,6 +3321,8 @@ spec: - port type: object type: object + stopSignal: + type: string type: object livenessProbe: properties: @@ -2988,6 +3332,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -2998,6 +3343,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -3018,6 +3364,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -3092,6 +3439,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -3102,6 +3450,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -3122,6 +3471,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -3182,6 +3532,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -3206,20 +3558,33 @@ spec: x-kubernetes-int-or-string: true type: object type: object + restartPolicy: + type: string securityContext: properties: allowPrivilegeEscalation: type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object capabilities: properties: add: items: type: string type: array + x-kubernetes-list-type: atomic drop: items: type: string type: array + x-kubernetes-list-type: atomic type: object privileged: type: boolean @@ -3275,6 +3640,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic type: object failureThreshold: format: int32 @@ -3285,6 +3651,7 @@ spec: format: int32 type: integer service: + default: '' type: string required: - port @@ -3305,6 +3672,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic path: type: string port: @@ -3367,6 +3735,9 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map volumeMounts: items: properties: @@ -3378,6 +3749,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -3387,12 +3760,18 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map workingDir: type: string required: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map nodeName: type: string nodeSelector: @@ -3431,18 +3810,16 @@ spec: - conditionType type: object type: array + x-kubernetes-list-type: atomic resourceClaims: items: properties: name: type: string - source: - properties: - resourceClaimName: - type: string - resourceClaimTemplateName: - type: string - type: object + resourceClaimName: + type: string + resourceClaimTemplateName: + type: string required: - name type: object @@ -3450,6 +3827,39 @@ spec: x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map + resources: + properties: + claims: + items: + properties: + name: + type: string + request: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object restartPolicy: type: string runtimeClassName: @@ -3470,6 +3880,15 @@ spec: x-kubernetes-list-type: map securityContext: properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object fsGroup: format: int64 type: integer @@ -3483,6 +3902,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -3508,6 +3929,9 @@ spec: format: int64 type: integer type: array + x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + type: string sysctls: items: properties: @@ -3520,6 +3944,7 @@ spec: - value type: object type: array + x-kubernetes-list-type: atomic windowsOptions: properties: gmsaCredentialSpec: @@ -3561,6 +3986,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic topologySpreadConstraints: items: properties: @@ -3577,11 +4003,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3643,10 +4071,12 @@ spec: diskURI: type: string fsType: + default: ext4 type: string kind: type: string readOnly: + default: false type: boolean required: - diskName @@ -3670,6 +4100,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -3679,6 +4110,7 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -3696,6 +4128,7 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -3724,7 +4157,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: '' type: string optional: type: boolean @@ -3739,6 +4174,7 @@ spec: nodePublishSecretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -3794,6 +4230,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -3818,6 +4255,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic dataSource: properties: apiGroup: @@ -3847,18 +4285,6 @@ spec: type: object resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: additionalProperties: anyOf: @@ -3889,11 +4315,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3902,6 +4330,8 @@ spec: x-kubernetes-map-type: atomic storageClassName: type: string + volumeAttributesClassName: + type: string volumeMode: type: string volumeName: @@ -3924,10 +4354,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object flexVolume: properties: @@ -3944,6 +4376,7 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -4003,6 +4436,13 @@ spec: required: - path type: object + image: + properties: + pullPolicy: + type: string + reference: + type: string + type: object iscsi: properties: chapAuthDiscovery: @@ -4016,6 +4456,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -4024,11 +4465,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -4090,6 +4533,45 @@ spec: sources: items: properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object configMap: properties: items: @@ -4107,7 +4589,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: '' type: string optional: type: boolean @@ -4153,6 +4637,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -4171,7 +4656,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: '' type: string optional: type: boolean @@ -4191,6 +4678,7 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object quobyte: properties: @@ -4217,22 +4705,27 @@ spec: image: type: string keyring: + default: /etc/ceph/keyring type: string monitors: items: type: string type: array + x-kubernetes-list-type: atomic pool: + default: rbd type: string readOnly: type: boolean secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic user: + default: admin type: string required: - image @@ -4241,6 +4734,7 @@ spec: scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -4251,12 +4745,14 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -4289,6 +4785,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -4303,6 +4800,7 @@ spec: secretRef: properties: name: + default: '' type: string type: object x-kubernetes-map-type: atomic @@ -4328,6 +4826,9 @@ spec: - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map required: - containers type: object @@ -4376,6 +4877,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic dataSource: properties: apiGroup: @@ -4405,18 +4907,6 @@ spec: type: object resources: properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map limits: additionalProperties: anyOf: @@ -4447,11 +4937,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -4460,6 +4952,8 @@ spec: x-kubernetes-map-type: atomic storageClassName: type: string + volumeAttributesClassName: + type: string volumeMode: type: string volumeName: @@ -4481,10 +4975,10 @@ spec: - type: integer - type: string default: 10Gi - description: The requested size of the persistent volume attached - to each Pod in the RabbitmqCluster. The format of this field - matches that defined by kubernetes/apimachinery. See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity - for more info on the format of this field. + description: |- + The requested size of the persistent volume attached to each Pod in the RabbitmqCluster. + The format of this field matches that defined by kubernetes/apimachinery. + See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info on the format of this field. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true storageClassName: @@ -4497,12 +4991,11 @@ spec: the cluster. properties: additionalConfig: - description: Modify to add to the rabbitmq.conf file in addition - to default configurations set by the operator. Modifying this - property on an existing RabbitmqCluster will trigger a StatefulSet - rolling restart and will cause rabbitmq downtime. For more - information on this config, see https://www.rabbitmq.com/configure.html#config-file - maxLength: 2000 + description: |- + Modify to add to the rabbitmq.conf file in addition to default configurations set by the operator. + Modifying this property on an existing RabbitmqCluster will trigger a StatefulSet rolling restart and will cause rabbitmq downtime. + For more information on this config, see https://www.rabbitmq.com/configure.html#config-file + maxLength: 100000 type: string additionalPlugins: description: 'List of plugins to enable in addition to essential @@ -4515,26 +5008,30 @@ spec: maxItems: 100 type: array advancedConfig: - description: Specify any rabbitmq advanced.config configurations - to apply to the cluster. For more information on advanced - config, see https://www.rabbitmq.com/configure.html#advanced-config-file + description: |- + Specify any rabbitmq advanced.config configurations to apply to the cluster. + For more information on advanced config, see https://www.rabbitmq.com/configure.html#advanced-config-file maxLength: 100000 type: string envConfig: - description: Modify to add to the rabbitmq-env.conf file. Modifying - this property on an existing RabbitmqCluster will trigger - a StatefulSet rolling restart and will cause rabbitmq downtime. + description: |- + Modify to add to the rabbitmq-env.conf file. Modifying this property on an existing RabbitmqCluster will trigger a StatefulSet rolling restart and will cause rabbitmq downtime. For more information on env config, see https://www.rabbitmq.com/man/rabbitmq-env.conf.5.html maxLength: 100000 type: string + erlangInetConfig: + description: |- + Erlang Inet configuration to apply to the Erlang VM running rabbit. + See also: https://www.erlang.org/doc/apps/erts/inet_cfg.html + maxLength: 2000 + type: string type: object replicas: default: 1 - description: Replicas is the number of nodes in the RabbitMQ cluster. - Each node is deployed as a Replica in a StatefulSet. Only 1, 3, - 5 replicas clusters are tested. This value should be an odd number - to ensure the resultant cluster can establish exactly one quorum - of nodes in the event of a fragmenting network partition. + description: |- + Replicas is the number of nodes in the RabbitMQ cluster. Each node is deployed as a Replica in a StatefulSet. Only 1, 3, 5 replicas clusters are tested. + This value should be an odd number to ensure the resultant cluster can establish exactly one quorum of nodes + in the event of a fragmenting network partition. format: int32 minimum: 0 type: integer @@ -4550,18 +5047,28 @@ spec: the cluster. properties: claims: - description: "Claims lists the names of resources, defined in\ - \ spec.resourceClaims, that are used by this container. \n\ - \ This is an alpha field and requires enabling the DynamicResourceAllocation\ - \ feature gate. \n This field is immutable. It can only be\ - \ set for containers." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in - pod.spec.resourceClaims of the Pod where this field - is used. It makes that resource available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. type: string required: - name @@ -4577,8 +5084,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -4587,87 +5095,96 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed - Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object secretBackend: - description: Secret backend configuration for the RabbitmqCluster. - Enables to fetch default user credentials and certificates from - K8s external secret stores. + description: |- + Secret backend configuration for the RabbitmqCluster. + Enables to fetch default user credentials and certificates from K8s external secret stores. properties: externalSecret: - description: LocalObjectReference contains enough information - to let you locate the referenced object inside the same namespace. + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic vault: - description: VaultSpec will add Vault annotations (see https://www.vaultproject.io/docs/platform/k8s/injector/annotations) - to RabbitMQ Pods. It requires a Vault Agent Sidecar Injector - (https://www.vaultproject.io/docs/platform/k8s/injector) to - be installed in the K8s cluster. The injector is a K8s Mutation - Webhook Controller that alters RabbitMQ Pod specifications - (based on the added Vault annotations) to include Vault Agent - containers that render Vault secrets to the volume. + description: |- + VaultSpec will add Vault annotations (see https://www.vaultproject.io/docs/platform/k8s/injector/annotations) + to RabbitMQ Pods. It requires a Vault Agent Sidecar Injector (https://www.vaultproject.io/docs/platform/k8s/injector) + to be installed in the K8s cluster. The injector is a K8s Mutation Webhook Controller that alters RabbitMQ Pod specifications + (based on the added Vault annotations) to include Vault Agent containers that render Vault secrets to the volume. properties: annotations: additionalProperties: type: string - description: Vault annotations that override the Vault annotations - set by the cluster-operator. For a list of valid Vault - annotations, see https://www.vaultproject.io/docs/platform/k8s/injector/annotations + description: |- + Vault annotations that override the Vault annotations set by the cluster-operator. + For a list of valid Vault annotations, see https://www.vaultproject.io/docs/platform/k8s/injector/annotations type: object defaultUserPath: - description: Path in Vault to access a KV (Key-Value) secret - with the fields username and password for the default - user. For example "secret/data/rabbitmq/config". + description: |- + Path in Vault to access a KV (Key-Value) secret with the fields username and password for the default user. + For example "secret/data/rabbitmq/config". type: string defaultUserUpdaterImage: - description: Sidecar container that updates the default - user's password in RabbitMQ when it changes in Vault. - Additionally, it updates /var/lib/rabbitmq/.rabbitmqadmin.conf - (used by rabbitmqadmin CLI). Set to empty string to disable - the sidecar container. + description: |- + Sidecar container that updates the default user's password in RabbitMQ when it changes in Vault. + Additionally, it updates /var/lib/rabbitmq/.rabbitmqadmin.conf (used by rabbitmqadmin CLI). + Set to empty string to disable the sidecar container. type: string role: - description: Role in Vault. If vault.defaultUserPath is - set, this role must have capability to read the pre-created - default user credential in Vault. If vault.tls is set, - this role must have capability to create and update certificates - in the Vault PKI engine for the domains "" - and ".svc". + description: |- + Role in Vault. + If vault.defaultUserPath is set, this role must have capability to read the pre-created default user credential in Vault. + If vault.tls is set, this role must have capability to create and update certificates in the Vault PKI engine for the domains + "" and ".svc". type: string tls: properties: altNames: - description: 'Specifies the requested Subject Alternative - Names (SANs), in a comma-delimited list. These will - be appended to the SANs added by the cluster-operator. - The cluster-operator will add SANs: "-server-.-nodes." - for each pod, e.g. "myrabbit-server-0.myrabbit-nodes.default".' + description: |- + Specifies the requested Subject Alternative Names (SANs), in a comma-delimited list. + These will be appended to the SANs added by the cluster-operator. + The cluster-operator will add SANs: + "-server-.-nodes." for each pod, + e.g. "myrabbit-server-0.myrabbit-nodes.default". type: string commonName: - description: Specifies the requested certificate Common - Name (CN). Defaults to ..svc - if not provided. + description: |- + Specifies the requested certificate Common Name (CN). + Defaults to ..svc if not provided. type: string ipSans: description: Specifies the requested IP Subject Alternative Names, in a comma-delimited list. type: string pkiIssuerPath: - description: Path in Vault PKI engine. For example "pki/issue/hashicorp-com". + description: |- + Path in Vault PKI engine. + For example "pki/issue/hashicorp-com". required type: string + pkiRootPath: + description: Specifies an optional path to retrieve + the root CA from vault. Useful if certificates are + issued by an intermediate CA + type: string type: object type: object type: object @@ -4682,11 +5199,24 @@ spec: type: string description: Annotations to add to the Service. type: object + ipFamilyPolicy: + description: |- + IPFamilyPolicy represents the dual-stack-ness requested or required by a Service + See also: https://pkg.go.dev/k8s.io/api/core/v1#IPFamilyPolicy + enum: + - SingleStack + - PreferDualStack + - RequireDualStack + type: string + labels: + additionalProperties: + type: string + type: object type: default: ClusterIP - description: 'Type of Service to create for the cluster. Must - be one of: ClusterIP, LoadBalancer, NodePort. For more info - see https://pkg.go.dev/k8s.io/api/core/v1#ServiceType' + description: |- + Type of Service to create for the cluster. Must be one of: ClusterIP, LoadBalancer, NodePort. + For more info see https://pkg.go.dev/k8s.io/api/core/v1#ServiceType enum: - ClusterIP - LoadBalancer @@ -4694,19 +5224,18 @@ spec: type: string type: object skipPostDeploySteps: - description: If unset, or set to false, the cluster will run `rabbitmq-queues - rebalance all` whenever the cluster is updated. Set to true to - prevent the operator rebalancing queue leaders after a cluster - update. Has no effect if the cluster only consists of one node. + description: |- + If unset, or set to false, the cluster will run `rabbitmq-queues rebalance all` whenever the cluster is updated. + Set to true to prevent the operator rebalancing queue leaders after a cluster update. + Has no effect if the cluster only consists of one node. For more information, see https://www.rabbitmq.com/rabbitmq-queues.8.html#rebalance type: boolean terminationGracePeriodSeconds: default: 604800 - description: 'TerminationGracePeriodSeconds is the timeout that - each rabbitmqcluster pod will have to terminate gracefully. It - defaults to 604800 seconds ( a week long) to ensure that the container - preStop lifecycle hook can finish running. For more information, - see: https://github.com/rabbitmq/cluster-operator/blob/main/docs/design/20200520-graceful-pod-termination.md' + description: |- + TerminationGracePeriodSeconds is the timeout that each rabbitmqcluster pod will have to terminate gracefully. + It defaults to 604800 seconds ( a week long) to ensure that the container preStop lifecycle hook can finish running. + For more information, see: https://github.com/rabbitmq/cluster-operator/blob/main/docs/design/20200520-graceful-pod-termination.md format: int64 minimum: 0 type: integer @@ -4714,65 +5243,61 @@ spec: description: TLS-related configuration for the RabbitMQ cluster. properties: caSecretName: - description: Name of a Secret in the same Namespace as the RabbitmqCluster, - containing the Certificate Authority's public certificate - for TLS. The Secret must store this as ca.crt. This Secret - can be created by running `kubectl create secret generic ca-secret - --from-file=ca.crt=path/to/ca.cert` Used for mTLS, and TLS - for rabbitmq_web_stomp and rabbitmq_web_mqtt. + description: |- + Name of a Secret in the same Namespace as the RabbitmqCluster, containing the Certificate Authority's public certificate for TLS. + The Secret must store this as ca.crt. + This Secret can be created by running `kubectl create secret generic ca-secret --from-file=ca.crt=path/to/ca.crt` + Used for mTLS, and TLS for rabbitmq_web_stomp and rabbitmq_web_mqtt. type: string disableNonTLSListeners: - description: 'When set to true, the RabbitmqCluster disables - non-TLS listeners for RabbitMQ, management plugin and for - any enabled plugins in the following list: stomp, mqtt, web_stomp, - web_mqtt. Only TLS-enabled clients will be able to connect.' + description: |- + When set to true, the RabbitmqCluster disables non-TLS listeners for RabbitMQ, management plugin and for any enabled plugins in the following list: stomp, mqtt, web_stomp, web_mqtt. + Only TLS-enabled clients will be able to connect. type: boolean secretName: - description: Name of a Secret in the same Namespace as the RabbitmqCluster, - containing the server's private key & public certificate for - TLS. The Secret must store these as tls.key and tls.crt, respectively. - This Secret can be created by running `kubectl create secret - tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key` + description: |- + Name of a Secret in the same Namespace as the RabbitmqCluster, containing the server's private key & public certificate for TLS. + The Secret must store these as tls.key and tls.crt, respectively. + This Secret can be created by running `kubectl create secret tls tls-secret --cert=path/to/tls.crt --key=path/to/tls.key` type: string type: object tolerations: description: Tolerations is the list of Toleration resources attached to each Pod in the RabbitmqCluster. items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using the - matching operator . + description: |- + The pod this Toleration is attached to tolerates any taint that matches + the triple using the matching operator . properties: effect: - description: Effect indicates the taint effect to match. Empty - means match all taint effects. When specified, allowed values - are NoSchedule, PreferNoSchedule and NoExecute. + description: |- + Effect indicates the taint effect to match. Empty means match all taint effects. + When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. type: string key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match - all values and all keys. + description: |- + Key is the taint key that the toleration applies to. Empty means match all taint keys. + If the key is empty, operator must be Exists; this combination means to match all values and all keys. type: string operator: - description: Operator represents a key's relationship to the - value. Valid operators are Exists and Equal. Defaults to - Equal. Exists is equivalent to wildcard for value, so that - a pod can tolerate all taints of a particular category. + description: |- + Operator represents a key's relationship to the value. + Valid operators are Exists and Equal. Defaults to Equal. + Exists is equivalent to wildcard for value, so that a pod can + tolerate all taints of a particular category. type: string tolerationSeconds: - description: TolerationSeconds represents the period of time - the toleration (which must be of effect NoExecute, otherwise - this field is ignored) tolerates the taint. By default, - it is not set, which means tolerate the taint forever (do - not evict). Zero and negative values will be treated as - 0 (evict immediately) by the system. + description: |- + TolerationSeconds represents the period of time the toleration (which must be + of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, + it is not set, which means tolerate the taint forever (do not evict). Zero and + negative values will be treated as 0 (evict immediately) by the system. format: int64 type: integer value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. + description: |- + Value is the taint value the toleration matches to. + If the operator is Exists, the value should be empty, otherwise just a regular string. type: string type: object type: array @@ -4781,13 +5306,19 @@ spec: description: Status presents the observed state of RabbitmqCluster properties: binding: - description: 'Binding exposes a secret containing the binding information - for this RabbitmqCluster. It implements the service binding Provisioned - Service duck type. See: https://github.com/servicebinding/spec#provisioned-service' + description: |- + Binding exposes a secret containing the binding information for this + RabbitmqCluster. It implements the service binding Provisioned Service + duck type. See: https://github.com/servicebinding/spec#provisioned-service properties: name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' + default: '' + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic @@ -4823,8 +5354,9 @@ spec: description: Identifying information on internal resources properties: secretReference: - description: Reference to the Kubernetes Secret containing the - credentials of the default user. + description: |- + Reference to the Kubernetes Secret containing the credentials of the default + user. properties: keys: additionalProperties: @@ -4861,9 +5393,9 @@ spec: type: object type: object observedGeneration: - description: observedGeneration is the most recent successful generation - observed for this RabbitmqCluster. It corresponds to the RabbitmqCluster's - generation, which is updated on mutation by the API Server. + description: |- + observedGeneration is the most recent successful generation observed for this RabbitmqCluster. It corresponds to the + RabbitmqCluster's generation, which is updated on mutation by the API Server. format: int64 type: integer required: diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/aggregate-cluster-roles.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/aggregate-cluster-roles.yaml new file mode 100644 index 0000000..bd3e0a9 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/aggregate-cluster-roles.yaml @@ -0,0 +1,81 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-admin: 'true' + name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat-admin +rules: + - apiGroups: + - rabbitmq.com + resources: + - rabbitmqclusters + - rabbitmqclusters/finalizers + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-edit: 'true' + name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat-edit +rules: + - apiGroups: + - rabbitmq.com + resources: + - rabbitmqclusters + - rabbitmqclusters/finalizers + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-view: 'true' + name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat-view +rules: + - apiGroups: + - rabbitmq.com + resources: + - rabbitmqclusters + - rabbitmqclusters/finalizers + verbs: + - get + - list + - watch diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrole.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrole.yaml index 1c5b02c..9012969 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrole.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrole.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat rules: - apiGroups: diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrolebinding.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrolebinding.yaml index 8bcea17..e1f8ad4 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrolebinding.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/clusterrolebinding.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator-syn-rabbitmq-operat roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/deployment.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/deployment.yaml index 525fd64..387593d 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/deployment.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/deployment.yaml @@ -7,12 +7,13 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator spec: replicas: 1 + revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/component: rabbitmq-operator @@ -28,8 +29,8 @@ spec: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 spec: affinity: nodeAffinity: null @@ -44,31 +45,31 @@ spec: app.kubernetes.io/name: rabbitmq-cluster-operator topologyKey: kubernetes.io/hostname weight: 1 + automountServiceAccountToken: true containers: - args: - --metrics-bind-address=:9782 command: - - /manager + - manager env: - name: OPERATOR_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: DEFAULT_RABBITMQ_IMAGE - value: docker.io/bitnamilegacy/rabbitmq:3.12.12-debian-11-r0 + value: docker.io/bitnamilegacy/rabbitmq:4.1.3-debian-12-r1 - name: DEFAULT_USER_UPDATER_IMAGE - value: docker.io/bitnamilegacy/rmq-default-credential-updater:1.0.4-debian-11-r5 + value: docker.io/bitnamilegacy/rmq-default-credential-updater:1.0.8-debian-12-r0 envFrom: null - image: docker.io/bitnamilegacy/rabbitmq-cluster-operator:2.6.0-debian-11-r3 + image: docker.io/bitnamilegacy/rabbitmq-cluster-operator:2.16.1-debian-12-r0 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 5 - httpGet: - path: /metrics - port: http initialDelaySeconds: 5 periodSeconds: 30 successThreshold: 1 + tcpSocket: + port: http timeoutSeconds: 5 name: rabbitmq-cluster-operator ports: @@ -85,7 +86,13 @@ spec: successThreshold: 1 timeoutSeconds: 5 resources: - limits: {} - requests: {} + limits: + cpu: 150m + ephemeral-storage: 2Gi + memory: 192Mi + requests: + cpu: 100m + ephemeral-storage: 50Mi + memory: 128Mi initContainers: null serviceAccountName: rabbitmq-operator-rabbitmq-cluster-operator diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/networkpolicy.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/networkpolicy.yaml new file mode 100644 index 0000000..cfeef08 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/networkpolicy.yaml @@ -0,0 +1,26 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + name: rabbitmq-operator-rabbitmq-cluster-operator + namespace: syn-rabbitmq-operator +spec: + egress: + - {} + ingress: null + podSelector: + matchLabels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + policyTypes: + - Ingress + - Egress diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/pdb.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/pdb.yaml new file mode 100644 index 0000000..5ba254b --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/pdb.yaml @@ -0,0 +1,20 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + name: rabbitmq-operator-rabbitmq-cluster-operator + namespace: syn-rabbitmq-operator +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/component: rabbitmq-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/name: rabbitmq-cluster-operator diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/role.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/role.yaml index dd70f15..3f6230f 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/role.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/role.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator rules: diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/rolebinding.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/rolebinding.yaml index cf11492..14830b3 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/rolebinding.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/rolebinding.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator roleRef: diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/service-account.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/service-account.yaml index bacd0e0..11b6e7a 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/service-account.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/cluster-operator/service-account.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -automountServiceAccountToken: true +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -8,7 +8,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/issuer.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/issuer.yaml index 1362732..bdf71d8 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/issuer.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/issuer.yaml @@ -6,8 +6,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 2.6.0 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-cluster-operator namespace: syn-rabbitmq-operator spec: diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/aggregate-cluster-roles.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/aggregate-cluster-roles.yaml new file mode 100644 index 0000000..79898c4 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/aggregate-cluster-roles.yaml @@ -0,0 +1,114 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-admin: 'true' + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb-admin +rules: + - apiGroups: + - rabbitmq.com + resources: + - bindings + - exchanges + - federations + - operatorpolicies + - permissions + - policies + - queues + - schemareplications + - shovels + - superstreams + - topicpermissions + - users + - vhosts + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-edit: 'true' + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb-edit +rules: + - apiGroups: + - rabbitmq.com + resources: + - bindings + - exchanges + - federations + - operatorpolicies + - permissions + - policies + - queues + - schemareplications + - shovels + - superstreams + - topicpermissions + - users + - vhosts + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + rbac.authorization.k8s.io/aggregate-to-view: 'true' + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb-view +rules: + - apiGroups: + - rabbitmq.com + resources: + - bindings + - exchanges + - federations + - operatorpolicies + - permissions + - policies + - queues + - schemareplications + - shovels + - superstreams + - topicpermissions + - users + - vhosts + verbs: + - get + - list + - watch diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/certificate.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/certificate.yaml index 9278beb..0d629cd 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/certificate.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/certificate.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook namespace: syn-rabbitmq-operator spec: diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrole.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrole.yaml index aaec2fd..b1e5c8c 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrole.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrole.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb rules: - apiGroups: @@ -58,6 +58,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - bindings/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -78,6 +84,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - exchanges/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -98,6 +110,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - federations/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -118,6 +136,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - permissions/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -138,6 +162,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - policies/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -158,6 +188,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - queues/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -192,6 +228,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - schemareplications/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -212,6 +254,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - shovels/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -232,6 +280,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - superstreams/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -252,6 +306,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - users/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -272,6 +332,12 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - vhosts/finalizers + verbs: + - update - apiGroups: - rabbitmq.com resources: @@ -292,3 +358,35 @@ rules: - get - patch - update + - apiGroups: + - rabbitmq.com + resources: + - topicpermissions/finalizers + verbs: + - update + - apiGroups: + - rabbitmq.com + resources: + - operatorpolicies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rabbitmq.com + resources: + - operatorpolicies/status + verbs: + - get + - patch + - update + - apiGroups: + - rabbitmq.com + resources: + - operatorpolicies/finalizers + verbs: + - update diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrolebinding.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrolebinding.yaml index c4f8aa7..c99f394 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrolebinding.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/clusterrolebinding.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-syn-rabb roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/deployment.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/deployment.yaml index 016a76c..7156561 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/deployment.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/deployment.yaml @@ -7,12 +7,13 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator namespace: syn-rabbitmq-operator spec: replicas: 1 + revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/component: messaging-topology-operator @@ -28,8 +29,8 @@ spec: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 spec: affinity: nodeAffinity: null @@ -44,32 +45,32 @@ spec: app.kubernetes.io/name: rabbitmq-cluster-operator topologyKey: kubernetes.io/hostname weight: 1 + automountServiceAccountToken: true containers: - args: - --metrics-bind-address=:8080 command: - - /manager + - manager env: - name: OPERATOR_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace envFrom: null - image: docker.io/bitnamilegacy/rmq-messaging-topology-operator:1.12.2-debian-11-r1 + image: docker.io/bitnamilegacy/rmq-messaging-topology-operator:1.17.4-debian-12-r0 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 5 - httpGet: - path: /metrics - port: http-metrics initialDelaySeconds: 5 periodSeconds: 30 successThreshold: 1 + tcpSocket: + port: http-metrics timeoutSeconds: 5 name: rabbitmq-cluster-operator ports: - containerPort: 9443 - name: http-webhook + name: https-webhook protocol: TCP - containerPort: 8080 name: http-metrics @@ -84,8 +85,14 @@ spec: successThreshold: 1 timeoutSeconds: 5 resources: - limits: {} - requests: {} + limits: + cpu: 150m + ephemeral-storage: 2Gi + memory: 192Mi + requests: + cpu: 100m + ephemeral-storage: 50Mi + memory: 128Mi volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/networkpolicy.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/networkpolicy.yaml new file mode 100644 index 0000000..668dd78 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/networkpolicy.yaml @@ -0,0 +1,28 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + name: rabbitmq-operator-rabbitmq-messaging-topology-operator + namespace: syn-rabbitmq-operator +spec: + egress: + - {} + ingress: + - ports: + - port: 9443 + podSelector: + matchLabels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + policyTypes: + - Ingress + - Egress diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/pdb.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/pdb.yaml new file mode 100644 index 0000000..4ee1a01 --- /dev/null +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/pdb.yaml @@ -0,0 +1,20 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: rabbitmq-cluster-operator + app.kubernetes.io/part-of: rabbitmq + app.kubernetes.io/version: 2.16.1 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 + name: rabbitmq-operator-rabbitmq-messaging-topology-operator + namespace: syn-rabbitmq-operator +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/component: messaging-topology-operator + app.kubernetes.io/instance: rabbitmq-operator + app.kubernetes.io/name: rabbitmq-cluster-operator diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/role.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/role.yaml index c3d0044..548b183 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/role.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/role.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator namespace: syn-rabbitmq-operator rules: diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/rolebinding.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/rolebinding.yaml index 32df759..e4d2492 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/rolebinding.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/rolebinding.yaml @@ -7,8 +7,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator namespace: syn-rabbitmq-operator roleRef: diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/service-account.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/service-account.yaml index b579240..9278604 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/service-account.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/service-account.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -automountServiceAccountToken: true +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -8,7 +8,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator namespace: syn-rabbitmq-operator diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/validating-webhook-configuration.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/validating-webhook-configuration.yaml index d4af6e1..6ac409d 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/validating-webhook-configuration.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/validating-webhook-configuration.yaml @@ -9,8 +9,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook webhooks: - admissionReviewVersions: @@ -76,6 +76,27 @@ webhooks: resources: - federations sideEffects: None + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook + namespace: syn-rabbitmq-operator + path: /validate-rabbitmq-com-v1beta1-operatorpolicy + port: 443 + failurePolicy: Fail + name: voperatorpolicy.kb.io + rules: + - apiGroups: + - rabbitmq.com + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - operatorpolicies + sideEffects: None - admissionReviewVersions: - v1 clientConfig: @@ -118,6 +139,27 @@ webhooks: resources: - permissions sideEffects: None + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook + namespace: syn-rabbitmq-operator + path: /validate-rabbitmq-com-v1beta1-topicpermission + port: 443 + failurePolicy: Fail + name: vtopicpermission.kb.io + rules: + - apiGroups: + - rabbitmq.com + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - topicpermissions + sideEffects: None - admissionReviewVersions: - v1 clientConfig: diff --git a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/webhook-service.yaml b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/webhook-service.yaml index e8632d0..8d57b30 100644 --- a/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/webhook-service.yaml +++ b/tests/golden/defaults/rabbitmq-operator/rabbitmq-operator/helmchart/rabbitmq-cluster-operator/templates/messaging-topology-operator/webhook-service.yaml @@ -7,17 +7,17 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: rabbitmq-cluster-operator app.kubernetes.io/part-of: rabbitmq - app.kubernetes.io/version: 1.12.2 - helm.sh/chart: rabbitmq-cluster-operator-3.10.10 + app.kubernetes.io/version: 1.17.4 + helm.sh/chart: rabbitmq-cluster-operator-4.4.34 name: rabbitmq-operator-rabbitmq-messaging-topology-operator-webhook namespace: syn-rabbitmq-operator spec: ports: - - name: http + - name: https nodePort: null port: 443 protocol: TCP - targetPort: http-webhook + targetPort: https-webhook selector: app.kubernetes.io/component: messaging-topology-operator app.kubernetes.io/instance: rabbitmq-operator