---
# Source: strimzi-kafka-operator/crds/040-Crd-kafka.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kafkas.kafka.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: kafkas.kafka.strimzi.io-crd
spec:
  group: kafka.strimzi.io
  names:
    kind: Kafka
    listKind: KafkaList
    singular: kafka
    plural: kafkas
    shortNames:
      - k
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
      additionalPrinterColumns:
        - name: Ready
          description: The state of the custom resource
          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
          type: string
        - name: Warnings
          description: Warnings related to the custom resource
          jsonPath: ".status.conditions[?(@.type==\"Warning\")].status"
          type: string
        - name: Kafka version
          description: The Kafka version used by the cluster
          jsonPath: .status.kafkaVersion
          type: string
        - name: Metadata version
          description: The Kafka metadata version used by the cluster
          jsonPath: .status.kafkaMetadataVersion
          type: string
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                kafka:
                  type: object
                  properties:
                    version:
                      type: string
                      description: The Kafka broker version. Defaults to the latest version. Consult the user documentation to understand the process required to upgrade or downgrade the version.
                    metadataVersion:
                      type: string
                      description: "The KRaft metadata version used by the Kafka cluster. This property is ignored when running in ZooKeeper mode. If the property is not set, it defaults to the metadata version that corresponds to the `version` property."
                    image:
                      type: string
                      description: "The container image used for Kafka pods. If the property is not set, the default Kafka image version is determined based on the `version` configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration. Changing the Kafka image version does not automatically update the image versions for other components, such as Kafka Exporter. "
                    listeners:
                      type: array
                      minItems: 1
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            pattern: "^[a-z0-9]{1,11}$"
                            description: Name of the listener. The name will be used to identify the listener and the related Kubernetes objects. The name has to be unique within given a Kafka cluster. The name can consist of lowercase characters and numbers and be up to 11 characters long.
                          port:
                            type: integer
                            minimum: 9092
                            description: "Port number used by the listener inside Kafka. The port number has to be unique within a given Kafka cluster. Allowed port numbers are 9092 and higher with the exception of ports 9404 and 9999, which are already used for Prometheus and JMX. Depending on the listener type, the port number might not be the same as the port number that connects Kafka clients."
                          type:
                            type: string
                            enum:
                              - internal
                              - route
                              - loadbalancer
                              - nodeport
                              - ingress
                              - cluster-ip
                            description: "Type of the listener. The supported types are as follows: \n\n* `internal` type exposes Kafka internally only within the Kubernetes cluster.\n* `route` type uses OpenShift Routes to expose Kafka.\n* `loadbalancer` type uses LoadBalancer type services to expose Kafka.\n* `nodeport` type uses NodePort type services to expose Kafka.\n* `ingress` (deprecated) type uses Kubernetes Nginx Ingress to expose Kafka with TLS passthrough.\n* `cluster-ip` type uses a per-broker `ClusterIP` service.\n"
                          tls:
                            type: boolean
                            description: "Enables TLS encryption on the listener. This is a required property. For `route` and `ingress` type listeners, TLS encryption must be always enabled."
                          authentication:
                            type: object
                            properties:
                              listenerConfig:
                                x-kubernetes-preserve-unknown-fields: true
                                type: object
                                description: Configuration to be used for a specific listener. All values are prefixed with `listener.name.<listener_name>`.
                              sasl:
                                type: boolean
                                description: Enable or disable SASL on this listener.
                              type:
                                type: string
                                enum:
                                  - tls
                                  - scram-sha-512
                                  - custom
                                description: "Authentication type. `oauth` type uses SASL OAUTHBEARER Authentication. `scram-sha-512` type uses SASL SCRAM-SHA-512 Authentication. `tls` type uses TLS Client Authentication. `tls` type is supported only on TLS listeners. `custom` type allows for any authentication type to be used. As of Strimzi 0.49.0, `oauth` type is deprecated and will be removed in the `v1` API version. Please use `custom` type instead."
                            required:
                              - type
                            description: Authentication configuration for this listener.
                          configuration:
                            type: object
                            properties:
                              brokerCertChainAndKey:
                                type: object
                                properties:
                                  secretName:
                                    type: string
                                    description: The name of the Secret containing the certificate.
                                  certificate:
                                    type: string
                                    description: The name of the file certificate in the Secret.
                                  key:
                                    type: string
                                    description: "The name of the private key in the secret. The private key must be in unencrypted PKCS #8 format. For more information, see RFC 5208: https://datatracker.ietf.org/doc/html/rfc5208."
                                required:
                                  - secretName
                                  - certificate
                                  - key
                                description: Reference to the `Secret` which holds the certificate and private key pair which will be used for this listener. The certificate can optionally contain the whole chain. This field can be used only with listeners with enabled TLS encryption.
                              class:
                                type: string
                                description: |-
                                  Configures a specific class for `Ingress` and `LoadBalancer` that defines which controller is used. If not specified, the default controller is used.

                                  * For an `ingress` listener, the operator uses this property to set the `ingressClassName` property in the `Ingress` resources.
                                  * For a `loadbalancer` listener, the operator uses this property to set the `loadBalancerClass` property  in the `Service` resources.

                                  For `ingress` and `loadbalancer` listeners only.
                              externalTrafficPolicy:
                                type: string
                                enum:
                                  - Local
                                  - Cluster
                                description: |-
                                  Specifies whether the service routes external traffic to cluster-wide or node-local endpoints:

                                  * `Cluster` may cause a second hop to another node and obscures the client source IP.
                                  * `Local` avoids a second hop for `LoadBalancer` and `Nodeport` type services and preserves the client source IP (when supported by the infrastructure).

                                  If unspecified, Kubernetes uses `Cluster` as the default. For `loadbalancer` or `nodeport` listeners only.
                              loadBalancerSourceRanges:
                                type: array
                                items:
                                  type: string
                                description: "A list of CIDR ranges (for example `10.0.0.0/8` or `130.211.204.1/32`) from which clients can connect to loadbalancer listeners. If supported by the platform, traffic through the loadbalancer is restricted to the specified CIDR ranges. This field is applicable only for loadbalancer type services and is ignored if the cloud provider does not support the feature. For `loadbalancer` listeners only."
                              bootstrap:
                                type: object
                                properties:
                                  alternativeNames:
                                    type: array
                                    items:
                                      type: string
                                    description: Additional alternative names for the bootstrap service. The alternative names will be added to the list of subject alternative names of the TLS certificates.
                                  host:
                                    type: string
                                    description: Specifies the hostname used for the bootstrap resource. For `route` (optional) or `ingress` (required) listeners only. Ensure the hostname resolves to the Ingress endpoints; no validation is performed by Strimzi.
                                  nodePort:
                                    type: integer
                                    description: Node port for the bootstrap service. For `nodeport` listeners only.
                                  loadBalancerIP:
                                    type: string
                                    description: The loadbalancer is requested with the IP address specified in this property. This feature depends on whether the underlying cloud provider supports specifying the `loadBalancerIP` when a load balancer is created. This property is ignored if the cloud provider does not support the feature. For `loadbalancer` listeners only.
                                  annotations:
                                    additionalProperties:
                                      type: string
                                    type: object
                                    description: "Annotations added to `Ingress`, `Route`, or `Service` resources. You can use this property to configure DNS providers such as External DNS. For `loadbalancer`, `nodeport`, `route`, or `ingress` listeners only."
                                  labels:
                                    additionalProperties:
                                      type: string
                                    type: object
                                    description: "Labels added to `Ingress`, `Route`, or `Service` resources. For `loadbalancer`, `nodeport`, `route`, or `ingress` listeners only."
                                  externalIPs:
                                    type: array
                                    items:
                                      type: string
                                    description: External IPs associated to the nodeport service. These IPs are used by clients external to the Kubernetes cluster to access the Kafka brokers. This property is helpful when `nodeport` without `externalIP` is not sufficient. For example on bare-metal Kubernetes clusters that do not support Loadbalancer service types. For `nodeport` listeners only.
                                description: Bootstrap configuration.
                              brokers:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    broker:
                                      type: integer
                                      description: ID of the kafka broker (broker identifier). Broker IDs start from 0 and correspond to the number of broker replicas.
                                    advertisedHost:
                                      type: string
                                      description: The host name used in the brokers' `advertised.listeners`.
                                    advertisedPort:
                                      type: integer
                                      description: The port number used in the brokers' `advertised.listeners`.
                                    host:
                                      type: string
                                      description: The broker host. This field will be used in the Ingress resource or in the Route resource to specify the desired hostname. This field can be used only with `route` (optional) or `ingress` (required) type listeners.
                                    nodePort:
                                      type: integer
                                      description: Node port for the per-broker service. This field can be used only with `nodeport` type listener.
                                    loadBalancerIP:
                                      type: string
                                      description: The loadbalancer is requested with the IP address specified in this field. This feature depends on whether the underlying cloud provider supports specifying the `loadBalancerIP` when a load balancer is created. This field is ignored if the cloud provider does not support the feature.This field can be used only with `loadbalancer` type listener.
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                      description: "Annotations that will be added to the `Ingress` or `Service` resource. You can use this field to configure DNS providers such as External DNS. This field can be used only with `loadbalancer`, `nodeport`, or `ingress` type listeners."
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                      description: "Labels that will be added to the `Ingress`, `Route`, or `Service` resource. This field can be used only with `loadbalancer`, `nodeport`, `route`, or `ingress` type listeners."
                                    externalIPs:
                                      type: array
                                      items:
                                        type: string
                                      description: External IPs associated to the nodeport service. These IPs are used by clients external to the Kubernetes cluster to access the Kafka brokers. This field is helpful when `nodeport` without `externalIP` is not sufficient. For example on bare-metal Kubernetes clusters that do not support Loadbalancer service types. This field can only be used with `nodeport` type listener.
                                  required:
                                    - broker
                                description: Per-broker configurations.
                              ipFamilyPolicy:
                                type: string
                                enum:
                                  - SingleStack
                                  - PreferDualStack
                                  - RequireDualStack
                                description: |-
                                  Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`:

                                  * `SingleStack` is for a single IP family.
                                  * `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters.
                                  * `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters.

                                  If unspecified, Kubernetes will choose the default value based on the service type.
                              ipFamilies:
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - IPv4
                                    - IPv6
                                description: "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting."
                              createBootstrapService:
                                type: boolean
                                description: Whether to create the bootstrap service or not. The bootstrap service is created by default (if not specified differently). This field can be used with the `loadbalancer` listener.
                              finalizers:
                                type: array
                                items:
                                  type: string
                                description: "A list of finalizers configured for the `LoadBalancer` type services created for this listener. If supported by the platform, the finalizer `service.kubernetes.io/load-balancer-cleanup` to make sure that the external load balancer is deleted together with the service.For more information, see https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#garbage-collecting-load-balancers. For `loadbalancer` listeners only."
                              useServiceDnsDomain:
                                type: boolean
                                description: |-
                                  Configures whether the Kubernetes service DNS domain should be included in the generated addresses.

                                  * If set to `false`, the generated addresses do not contain the service DNS domain suffix. For example, `my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc`.
                                  * If set to `true`, the generated addresses contain the service DNS domain suffix. For example, `my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc.cluster.local`.

                                  The default is `.cluster.local`, but this is customizable using the environment variable `KUBERNETES_SERVICE_DNS_DOMAIN`. For `internal` and `cluster-ip` listeners only.
                              maxConnections:
                                type: integer
                                description: The maximum number of connections we allow for this listener in the broker at any time. New connections are blocked if the limit is reached.
                              maxConnectionCreationRate:
                                type: integer
                                description: The maximum connection creation rate we allow in this listener at any time. New connections will be throttled if the limit is reached.
                              preferredNodePortAddressType:
                                type: string
                                enum:
                                  - ExternalIP
                                  - ExternalDNS
                                  - InternalIP
                                  - InternalDNS
                                  - Hostname
                                description: |-
                                  Defines which address type should be used as the node address. Available types are: `ExternalDNS`, `ExternalIP`, `InternalDNS`, `InternalIP` and `Hostname`. By default, the addresses are used in the following order (the first one found is used):

                                  * `ExternalDNS`
                                  * `ExternalIP`
                                  * `InternalDNS`
                                  * `InternalIP`
                                  * `Hostname`

                                  This property is used to select the preferred address type, which is checked first. If no address is found for this address type, the other types are checked in the default order. For `nodeport` listeners only.
                              publishNotReadyAddresses:
                                type: boolean
                                description: Configures whether the service endpoints are considered "ready" even if the Pods themselves are not. Defaults to `false`. This field can not be used with `internal` listeners.
                              hostTemplate:
                                type: string
                                description: "Configures the template for generating the hostnames of the individual brokers. Valid placeholders that you can use in the template are `{nodeId}` and `{nodePodName}`."
                              advertisedHostTemplate:
                                type: string
                                description: "Configures the template for generating the advertised hostnames of the individual brokers. Valid placeholders that you can use in the template are `{nodeId}` and `{nodePodName}`."
                              advertisedPortTemplate:
                                type: string
                                description: "Configures the template for generating the advertised ports of the individual brokers. It allows to specify a simple mathematics formula that will be used to calculate the port. The only valid placeholder that you can use in the template is `{nodeId}`. Supported operations are `+`, `-`, and `*`. For example, `9000 + {nodeId}` will generate ports `9000`, `9001`, `9002`, and so on for the individual brokers. You can also use a fixed port number in the template, for example `9000`, which will generate the same port for all brokers."
                              allocateLoadBalancerNodePorts:
                                type: boolean
                                description: |-
                                  Configures whether to allocate NodePort automatically for the `Service` with type `LoadBalancer`.
                                  This is a one to one with the `spec.allocateLoadBalancerNodePorts` configuration in the `Service` type
                                  For `loadbalancer` listeners only.
                            description: Additional listener configuration.
                          networkPolicyPeers:
                            type: array
                            items:
                              type: object
                              properties:
                                ipBlock:
                                  type: object
                                  properties:
                                    cidr:
                                      type: string
                                    except:
                                      type: array
                                      items:
                                        type: string
                                namespaceSelector:
                                  type: object
                                  properties:
                                    matchExpressions:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            type: array
                                            items:
                                              type: string
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                podSelector:
                                  type: object
                                  properties:
                                    matchExpressions:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            type: array
                                            items:
                                              type: string
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                            description: "List of peers which should be able to connect to this listener. Peers in this list are combined using a logical OR operation. If this field is empty or missing, all connections will be allowed for this listener. If this field is present and contains at least one item, the listener only allows the traffic which matches at least one item in this list."
                        required:
                          - name
                          - port
                          - type
                          - tls
                      description: Configures listeners to provide access to Kafka brokers.
                    config:
                      x-kubernetes-preserve-unknown-fields: true
                      type: object
                      description: Kafka broker config properties with certain prefixes cannot be set unless it is in the exception list. Consult the documentation for the list of forbidden prefixes and exceptions.
                    authorization:
                      type: object
                      properties:
                        authorizerClass:
                          type: string
                          description: "Authorization implementation class, which must be available in classpath."
                        superUsers:
                          type: array
                          items:
                            type: string
                          description: "List of super users, which are user principals with unlimited access rights."
                        supportsAdminApi:
                          type: boolean
                          description: Indicates whether the custom authorizer supports the APIs for managing ACLs using the Kafka Admin API. Defaults to `false`.
                        type:
                          type: string
                          enum:
                            - simple
                            - custom
                          description: "Authorization type. Currently, the supported types are `simple`, `keycloak`, `opa` and `custom`. `simple` authorization type uses Kafka's built-in authorizer for authorization. `keycloak` authorization type uses Keycloak Authorization Services for authorization. `opa` authorization type uses Open Policy Agent based authorization. `custom` authorization type uses user-provided implementation for authorization. `opa` (as of Strimzi 0.46.0) and `keycloak` (as of Strimzi 0.49.0) types are deprecated and will be removed in the `v1` API version. Please use `custom` type instead."
                      required:
                        - type
                      description: Authorization configuration for Kafka brokers.
                    rack:
                      type: object
                      properties:
                        envVarName:
                          type: string
                          description: The name of the environment variable that defines the rack ID. Its value sets the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect or MirrorMaker 2.
                        topologyKey:
                          type: string
                          example: topology.kubernetes.io/zone
                          description: "A key that matches labels assigned to the Kubernetes cluster nodes. The value of the label is used to set a broker's `broker.rack` config, and the `client.rack` config for Kafka Connect or MirrorMaker 2."
                        type:
                          type: string
                          enum:
                            - topology-label
                            - environment-variable
                          description: "Specifies the rack awareness type. Supported types are `topology-label` and `environment-variable`. `topology-label` uses a Kubernetes worker node label to set the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect and MirrorMaker 2. `environment-variable` uses an environment variable to set the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect and MirrorMaker 2. When not specified, `topology-label` type is used by default."
                      description: Configuration of the `broker.rack` broker config.
                      x-kubernetes-validations:
                        - rule: (has(self.type) && self.type != "topology-label") || self.topologyKey != ""
                          message: topologyKey property is required
                        - rule: has(self.type) == false || self.type != "environment-variable" || self.envVarName != ""
                          message: envVarName property is required
                    brokerRackInitImage:
                      type: string
                      description: The image of the init container used for initializing the `broker.rack`.
                    livenessProbe:
                      type: object
                      properties:
                        initialDelaySeconds:
                          type: integer
                          minimum: 0
                          description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                        timeoutSeconds:
                          type: integer
                          minimum: 1
                          description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                        periodSeconds:
                          type: integer
                          minimum: 1
                          description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                        successThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                        failureThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                      description: Pod liveness checking.
                    readinessProbe:
                      type: object
                      properties:
                        initialDelaySeconds:
                          type: integer
                          minimum: 0
                          description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                        timeoutSeconds:
                          type: integer
                          minimum: 1
                          description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                        periodSeconds:
                          type: integer
                          minimum: 1
                          description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                        successThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                        failureThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                      description: Pod readiness checking.
                    jvmOptions:
                      type: object
                      properties:
                        "-XX":
                          additionalProperties:
                            type: string
                          type: object
                          description: A map of -XX options to the JVM.
                        "-Xmx":
                          type: string
                          pattern: "^[0-9]+[mMgG]?$"
                          description: -Xmx option to to the JVM.
                        "-Xms":
                          type: string
                          pattern: "^[0-9]+[mMgG]?$"
                          description: -Xms option to to the JVM.
                        gcLoggingEnabled:
                          type: boolean
                          description: Specifies whether the Garbage Collection logging is enabled. The default is false.
                        javaSystemProperties:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The system property name.
                              value:
                                type: string
                                description: The system property value.
                          description: A map of additional system properties which will be passed using the `-D` option to the JVM.
                      description: JVM Options for pods.
                    jmxOptions:
                      type: object
                      properties:
                        authentication:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - password
                              description: Authentication type. Currently the only supported types are `password`.`password` type creates a username and protected port with no TLS.
                          required:
                            - type
                          description: Authentication configuration for connecting to the JMX port.
                      description: JMX Options for Kafka brokers.
                    metricsConfig:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - jmxPrometheusExporter
                            - strimziMetricsReporter
                          description: Metrics type. The supported types are `jmxPrometheusExporter` and `strimziMetricsReporter`. Type `jmxPrometheusExporter` uses the Prometheus JMX Exporter to expose Kafka JMX metrics in Prometheus format through an HTTP endpoint. Type `strimziMetricsReporter` uses the Strimzi Metrics Reporter to directly expose Kafka metrics in Prometheus format through an HTTP endpoint.
                        valueFrom:
                          type: object
                          properties:
                            configMapKeyRef:
                              type: object
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              description: Reference to the key in the ConfigMap containing the configuration.
                          description: ConfigMap entry where the Prometheus JMX Exporter configuration is stored.
                        values:
                          type: object
                          properties:
                            allowList:
                              type: array
                              items:
                                type: string
                              description: A list of regex patterns to filter the metrics to collect. Should contain at least one element.
                          description: Configuration values for the Strimzi Metrics Reporter.
                      required:
                        - type
                      description: Metrics configuration.
                      x-kubernetes-validations:
                        - rule: self.type != 'jmxPrometheusExporter' || has(self.valueFrom)
                          message: valueFrom property is required
                    logging:
                      type: object
                      properties:
                        loggers:
                          additionalProperties:
                            type: string
                          type: object
                          description: A Map from logger name to logger level.
                        type:
                          type: string
                          enum:
                            - inline
                            - external
                          description: "Logging type, must be either 'inline' or 'external'."
                        valueFrom:
                          type: object
                          properties:
                            configMapKeyRef:
                              type: object
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              description: Reference to the key in the ConfigMap containing the configuration.
                          description: '`ConfigMap` entry where the logging configuration is stored. '
                      required:
                        - type
                      description: Logging configuration for Kafka.
                    template:
                      type: object
                      properties:
                        pod:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            imagePullSecrets:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                              description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                            securityContext:
                              type: object
                              properties:
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                fsGroup:
                                  type: integer
                                fsGroupChangePolicy:
                                  type: string
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxChangePolicy:
                                  type: string
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                supplementalGroups:
                                  type: array
                                  items:
                                    type: integer
                                supplementalGroupsPolicy:
                                  type: string
                                sysctls:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Configures pod-level security attributes and common container settings.
                            terminationGracePeriodSeconds:
                              type: integer
                              minimum: 0
                              description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                            affinity:
                              type: object
                              properties:
                                nodeAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          preference:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchFields:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: object
                                      properties:
                                        nodeSelectorTerms:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchFields:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                podAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          podAffinityTerm:
                                            type: object
                                            properties:
                                              labelSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              matchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              mismatchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              namespaceSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              namespaces:
                                                type: array
                                                items:
                                                  type: string
                                              topologyKey:
                                                type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                podAntiAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          podAffinityTerm:
                                            type: object
                                            properties:
                                              labelSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              matchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              mismatchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              namespaceSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              namespaces:
                                                type: array
                                                items:
                                                  type: string
                                              topologyKey:
                                                type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                              description: The pod's affinity rules.
                            tolerations:
                              type: array
                              items:
                                type: object
                                properties:
                                  effect:
                                    type: string
                                  key:
                                    type: string
                                  operator:
                                    type: string
                                  tolerationSeconds:
                                    type: integer
                                  value:
                                    type: string
                              description: The pod's tolerations.
                            topologySpreadConstraints:
                              type: array
                              items:
                                type: object
                                properties:
                                  labelSelector:
                                    type: object
                                    properties:
                                      matchExpressions:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              type: array
                                              items:
                                                type: string
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                  matchLabelKeys:
                                    type: array
                                    items:
                                      type: string
                                  maxSkew:
                                    type: integer
                                  minDomains:
                                    type: integer
                                  nodeAffinityPolicy:
                                    type: string
                                  nodeTaintsPolicy:
                                    type: string
                                  topologyKey:
                                    type: string
                                  whenUnsatisfiable:
                                    type: string
                              description: The pod's topology spread constraints.
                            priorityClassName:
                              type: string
                              description: 'The name of the priority class used to assign priority to the pods. '
                            schedulerName:
                              type: string
                              description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                            hostAliases:
                              type: array
                              items:
                                type: object
                                properties:
                                  hostnames:
                                    type: array
                                    items:
                                      type: string
                                  ip:
                                    type: string
                              description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                            dnsPolicy:
                              type: string
                              enum:
                                - ClusterFirst
                                - ClusterFirstWithHostNet
                                - Default
                                - None
                              description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                            dnsConfig:
                              type: object
                              properties:
                                nameservers:
                                  type: array
                                  items:
                                    type: string
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                searches:
                                  type: array
                                  items:
                                    type: string
                              description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                            enableServiceLinks:
                              type: boolean
                              description: Indicates whether information about services should be injected into Pod's environment variables.
                            tmpDirSizeLimit:
                              type: string
                              pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                              description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                            volumes:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: Name to use for the volume. Required.
                                  secret:
                                    type: object
                                    properties:
                                      defaultMode:
                                        type: integer
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              type: integer
                                            path:
                                              type: string
                                      optional:
                                        type: boolean
                                      secretName:
                                        type: string
                                    description: '`Secret` to use to populate the volume.'
                                  configMap:
                                    type: object
                                    properties:
                                      defaultMode:
                                        type: integer
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              type: integer
                                            path:
                                              type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: '`ConfigMap` to use to populate the volume.'
                                  emptyDir:
                                    type: object
                                    properties:
                                      medium:
                                        type: string
                                        enum:
                                          - Memory
                                        description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                      sizeLimit:
                                        type: string
                                        pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                        description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                    description: '`EmptyDir` to use to populate the volume.'
                                  persistentVolumeClaim:
                                    type: object
                                    properties:
                                      claimName:
                                        type: string
                                      readOnly:
                                        type: boolean
                                    description: '`PersistentVolumeClaim` object to use to populate the volume.'
                                  csi:
                                    type: object
                                    properties:
                                      driver:
                                        type: string
                                      fsType:
                                        type: string
                                      nodePublishSecretRef:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                      readOnly:
                                        type: boolean
                                      volumeAttributes:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    description: '`CSIVolumeSource` object to use to populate the volume.'
                                  image:
                                    type: object
                                    properties:
                                      pullPolicy:
                                        type: string
                                      reference:
                                        type: string
                                    description: '`ImageVolumeSource` object to use to populate the volume.'
                                oneOf:
                                  - properties:
                                      secret: {}
                                      configMap: {}
                                      emptyDir: {}
                                      persistentVolumeClaim: {}
                                      csi: {}
                                      image: {}
                              description: Additional volumes that can be mounted to the pod.
                            hostUsers:
                              type: boolean
                              description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                          description: Template for Kafka `Pods`.
                        bootstrapService:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            ipFamilyPolicy:
                              type: string
                              enum:
                                - SingleStack
                                - PreferDualStack
                                - RequireDualStack
                              description: "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type."
                            ipFamilies:
                              type: array
                              items:
                                type: string
                                enum:
                                  - IPv4
                                  - IPv6
                              description: "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting."
                          description: Template for Kafka bootstrap `Service`.
                        brokersService:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            ipFamilyPolicy:
                              type: string
                              enum:
                                - SingleStack
                                - PreferDualStack
                                - RequireDualStack
                              description: "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type."
                            ipFamilies:
                              type: array
                              items:
                                type: string
                                enum:
                                  - IPv4
                                  - IPv6
                              description: "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting."
                          description: Template for Kafka broker `Service`.
                        externalBootstrapService:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for Kafka external bootstrap `Service`.
                        perPodService:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for Kafka per-pod `Services` used for access from outside of Kubernetes.
                        externalBootstrapRoute:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for Kafka external bootstrap `Route`.
                        perPodRoute:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for Kafka per-pod `Routes` used for access from outside of OpenShift.
                        externalBootstrapIngress:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for Kafka external bootstrap `Ingress`.
                        perPodIngress:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for Kafka per-pod `Ingress` used for access from outside of Kubernetes.
                        persistentVolumeClaim:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for all Kafka `PersistentVolumeClaims`.
                        podDisruptionBudget:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata to apply to the `PodDisruptionBudgetTemplate` resource.
                            maxUnavailable:
                              type: integer
                              minimum: 0
                              description: "Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1."
                          description: Template for Kafka `PodDisruptionBudget`.
                        kafkaContainer:
                          type: object
                          properties:
                            env:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The environment variable key.
                                  value:
                                    type: string
                                    description: The environment variable value.
                                  valueFrom:
                                    type: object
                                    properties:
                                      secretKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a secret.
                                      configMapKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a config map.
                                    oneOf:
                                      - properties:
                                          secretKeyRef: {}
                                        required:
                                          - secretKeyRef
                                      - properties:
                                          configMapKeyRef: {}
                                        required:
                                          - configMapKeyRef
                                    description: Reference to the secret or config map property to which the environment variable is set.
                                oneOf:
                                  - properties:
                                      value: {}
                                    required:
                                      - value
                                  - properties:
                                      valueFrom: {}
                                    required:
                                      - valueFrom
                              description: Environment variables which should be applied to the container.
                            securityContext:
                              type: object
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                capabilities:
                                  type: object
                                  properties:
                                    add:
                                      type: array
                                      items:
                                        type: string
                                    drop:
                                      type: array
                                      items:
                                        type: string
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Security context for the container.
                            volumeMounts:
                              type: array
                              items:
                                type: object
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                              description: Additional volume mounts which should be applied to the container.
                          description: Template for the Kafka broker container.
                        initContainer:
                          type: object
                          properties:
                            env:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The environment variable key.
                                  value:
                                    type: string
                                    description: The environment variable value.
                                  valueFrom:
                                    type: object
                                    properties:
                                      secretKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a secret.
                                      configMapKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a config map.
                                    oneOf:
                                      - properties:
                                          secretKeyRef: {}
                                        required:
                                          - secretKeyRef
                                      - properties:
                                          configMapKeyRef: {}
                                        required:
                                          - configMapKeyRef
                                    description: Reference to the secret or config map property to which the environment variable is set.
                                oneOf:
                                  - properties:
                                      value: {}
                                    required:
                                      - value
                                  - properties:
                                      valueFrom: {}
                                    required:
                                      - valueFrom
                              description: Environment variables which should be applied to the container.
                            securityContext:
                              type: object
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                capabilities:
                                  type: object
                                  properties:
                                    add:
                                      type: array
                                      items:
                                        type: string
                                    drop:
                                      type: array
                                      items:
                                        type: string
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Security context for the container.
                            volumeMounts:
                              type: array
                              items:
                                type: object
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                              description: Additional volume mounts which should be applied to the container.
                          description: Template for the Kafka init container.
                        clusterCaCert:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for Secret with Kafka Cluster certificate public key.
                        serviceAccount:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for the Kafka service account.
                        jmxSecret:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for Secret of the Kafka Cluster JMX authentication.
                        clusterRoleBinding:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for the Kafka ClusterRoleBinding.
                        podSet:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for Kafka `StrimziPodSet` resource.
                      description: Template for Kafka cluster resources. The template allows users to specify how the Kubernetes resources are generated.
                    tieredStorage:
                      type: object
                      properties:
                        remoteStorageManager:
                          type: object
                          properties:
                            className:
                              type: string
                              description: The class name for the `RemoteStorageManager` implementation.
                            classPath:
                              type: string
                              description: The class path for the `RemoteStorageManager` implementation.
                            config:
                              additionalProperties:
                                type: string
                              type: object
                              description: "The additional configuration map for the `RemoteStorageManager` implementation. Keys will be automatically prefixed with `rsm.config.`, and added to Kafka broker configuration."
                          description: Configuration for the Remote Storage Manager.
                        type:
                          type: string
                          enum:
                            - custom
                          description: "Storage type, only 'custom' is supported at the moment."
                      required:
                        - type
                      description: Configure the tiered storage feature for Kafka brokers.
                    quotas:
                      type: object
                      properties:
                        consumerByteRate:
                          type: integer
                          minimum: 0
                          description: "A per-broker byte-rate quota for clients consuming from a broker, independent of their number. If clients consume at maximum speed, the quota is shared equally between all non-excluded consumers. Otherwise, the quota is divided based on each client's consumption rate."
                        controllerMutationRate:
                          type: number
                          minimum: 0
                          description: "The default client quota on the rate at which mutations are accepted per second for create topic requests, create partition requests, and delete topic requests, defined for each broker. The mutations rate is measured by the number of partitions created or deleted. Applied on a per-broker basis."
                        excludedPrincipals:
                          type: array
                          items:
                            type: string
                          description: "List of principals that are excluded from the quota. The principals have to be prefixed with `User:`, for example `User:my-user;User:CN=my-other-user`."
                        minAvailableBytesPerVolume:
                          type: integer
                          minimum: 0
                          description: Stop message production if the available size (in bytes) of the storage is lower than or equal to this specified value. This condition is mutually exclusive with `minAvailableRatioPerVolume`.
                        minAvailableRatioPerVolume:
                          type: number
                          minimum: 0
                          maximum: 1
                          description: Stop message production if the percentage of available storage space falls below or equals the specified ratio (set as a decimal representing a percentage). This condition is mutually exclusive with `minAvailableBytesPerVolume`.
                        producerByteRate:
                          type: integer
                          minimum: 0
                          description: "A per-broker byte-rate quota for clients producing to a broker, independent of their number. If clients produce at maximum speed, the quota is shared equally between all non-excluded producers. Otherwise, the quota is divided based on each client's production rate."
                        requestPercentage:
                          type: integer
                          minimum: 0
                          description: The default client quota limits the maximum CPU utilization of each client as a percentage of the network and I/O threads of each broker. Applied on a per-broker basis.
                        type:
                          type: string
                          enum:
                            - kafka
                            - strimzi
                          description: "Quotas plugin type. Currently, the supported types are `kafka` and `strimzi`. `kafka` quotas type uses Kafka's built-in quotas plugin. `strimzi` quotas type uses Strimzi quotas plugin."
                      required:
                        - type
                      description: "Quotas plugin configuration for Kafka brokers allows setting quotas for disk usage, produce/fetch rates, and more. Supported plugin types include `kafka` (default) and `strimzi`. If not specified, the default `kafka` quotas plugin is used."
                  required:
                    - listeners
                  description: Configuration of the Kafka cluster.
                entityOperator:
                  type: object
                  properties:
                    topicOperator:
                      type: object
                      properties:
                        watchedNamespace:
                          type: string
                          description: The namespace the Topic Operator should watch.
                        image:
                          type: string
                          description: The image to use for the Topic Operator.
                        reconciliationIntervalMs:
                          type: integer
                          minimum: 0
                          description: Interval between periodic reconciliations in milliseconds.
                        startupProbe:
                          type: object
                          properties:
                            initialDelaySeconds:
                              type: integer
                              minimum: 0
                              description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                            timeoutSeconds:
                              type: integer
                              minimum: 1
                              description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                            periodSeconds:
                              type: integer
                              minimum: 1
                              description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                            successThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                            failureThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                          description: Pod startup checking.
                        livenessProbe:
                          type: object
                          properties:
                            initialDelaySeconds:
                              type: integer
                              minimum: 0
                              description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                            timeoutSeconds:
                              type: integer
                              minimum: 1
                              description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                            periodSeconds:
                              type: integer
                              minimum: 1
                              description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                            successThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                            failureThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                          description: Pod liveness checking.
                        readinessProbe:
                          type: object
                          properties:
                            initialDelaySeconds:
                              type: integer
                              minimum: 0
                              description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                            timeoutSeconds:
                              type: integer
                              minimum: 1
                              description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                            periodSeconds:
                              type: integer
                              minimum: 1
                              description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                            successThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                            failureThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                          description: Pod readiness checking.
                        resources:
                          type: object
                          properties:
                            claims:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                            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
                          description: CPU and memory resources to reserve.
                        logging:
                          type: object
                          properties:
                            loggers:
                              additionalProperties:
                                type: string
                              type: object
                              description: A Map from logger name to logger level.
                            type:
                              type: string
                              enum:
                                - inline
                                - external
                              description: "Logging type, must be either 'inline' or 'external'."
                            valueFrom:
                              type: object
                              properties:
                                configMapKeyRef:
                                  type: object
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  description: Reference to the key in the ConfigMap containing the configuration.
                              description: '`ConfigMap` entry where the logging configuration is stored. '
                          required:
                            - type
                          description: Logging configuration.
                        jvmOptions:
                          type: object
                          properties:
                            "-XX":
                              additionalProperties:
                                type: string
                              type: object
                              description: A map of -XX options to the JVM.
                            "-Xmx":
                              type: string
                              pattern: "^[0-9]+[mMgG]?$"
                              description: -Xmx option to to the JVM.
                            "-Xms":
                              type: string
                              pattern: "^[0-9]+[mMgG]?$"
                              description: -Xms option to to the JVM.
                            gcLoggingEnabled:
                              type: boolean
                              description: Specifies whether the Garbage Collection logging is enabled. The default is false.
                            javaSystemProperties:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The system property name.
                                  value:
                                    type: string
                                    description: The system property value.
                              description: A map of additional system properties which will be passed using the `-D` option to the JVM.
                          description: JVM Options for pods.
                      description: Configuration of the Topic Operator.
                    userOperator:
                      type: object
                      properties:
                        watchedNamespace:
                          type: string
                          description: The namespace the User Operator should watch.
                        image:
                          type: string
                          description: The image to use for the User Operator.
                        reconciliationIntervalMs:
                          type: integer
                          minimum: 0
                          description: Interval between periodic reconciliations in milliseconds.
                        secretPrefix:
                          type: string
                          description: The prefix that will be added to the KafkaUser name to be used as the Secret name.
                        livenessProbe:
                          type: object
                          properties:
                            initialDelaySeconds:
                              type: integer
                              minimum: 0
                              description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                            timeoutSeconds:
                              type: integer
                              minimum: 1
                              description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                            periodSeconds:
                              type: integer
                              minimum: 1
                              description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                            successThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                            failureThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                          description: Pod liveness checking.
                        readinessProbe:
                          type: object
                          properties:
                            initialDelaySeconds:
                              type: integer
                              minimum: 0
                              description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                            timeoutSeconds:
                              type: integer
                              minimum: 1
                              description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                            periodSeconds:
                              type: integer
                              minimum: 1
                              description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                            successThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                            failureThreshold:
                              type: integer
                              minimum: 1
                              description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                          description: Pod readiness checking.
                        resources:
                          type: object
                          properties:
                            claims:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                            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
                          description: CPU and memory resources to reserve.
                        logging:
                          type: object
                          properties:
                            loggers:
                              additionalProperties:
                                type: string
                              type: object
                              description: A Map from logger name to logger level.
                            type:
                              type: string
                              enum:
                                - inline
                                - external
                              description: "Logging type, must be either 'inline' or 'external'."
                            valueFrom:
                              type: object
                              properties:
                                configMapKeyRef:
                                  type: object
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      type: string
                                    optional:
                                      type: boolean
                                  description: Reference to the key in the ConfigMap containing the configuration.
                              description: '`ConfigMap` entry where the logging configuration is stored. '
                          required:
                            - type
                          description: Logging configuration.
                        jvmOptions:
                          type: object
                          properties:
                            "-XX":
                              additionalProperties:
                                type: string
                              type: object
                              description: A map of -XX options to the JVM.
                            "-Xmx":
                              type: string
                              pattern: "^[0-9]+[mMgG]?$"
                              description: -Xmx option to to the JVM.
                            "-Xms":
                              type: string
                              pattern: "^[0-9]+[mMgG]?$"
                              description: -Xms option to to the JVM.
                            gcLoggingEnabled:
                              type: boolean
                              description: Specifies whether the Garbage Collection logging is enabled. The default is false.
                            javaSystemProperties:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The system property name.
                                  value:
                                    type: string
                                    description: The system property value.
                              description: A map of additional system properties which will be passed using the `-D` option to the JVM.
                          description: JVM Options for pods.
                      description: Configuration of the User Operator.
                    template:
                      type: object
                      properties:
                        deployment:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            deploymentStrategy:
                              type: string
                              enum:
                                - RollingUpdate
                                - Recreate
                              description: Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.
                          description: Template for Entity Operator `Deployment`.
                        pod:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            imagePullSecrets:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                              description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                            securityContext:
                              type: object
                              properties:
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                fsGroup:
                                  type: integer
                                fsGroupChangePolicy:
                                  type: string
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxChangePolicy:
                                  type: string
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                supplementalGroups:
                                  type: array
                                  items:
                                    type: integer
                                supplementalGroupsPolicy:
                                  type: string
                                sysctls:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Configures pod-level security attributes and common container settings.
                            terminationGracePeriodSeconds:
                              type: integer
                              minimum: 0
                              description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                            affinity:
                              type: object
                              properties:
                                nodeAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          preference:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchFields:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: object
                                      properties:
                                        nodeSelectorTerms:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchFields:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                podAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          podAffinityTerm:
                                            type: object
                                            properties:
                                              labelSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              matchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              mismatchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              namespaceSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              namespaces:
                                                type: array
                                                items:
                                                  type: string
                                              topologyKey:
                                                type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                podAntiAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          podAffinityTerm:
                                            type: object
                                            properties:
                                              labelSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              matchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              mismatchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              namespaceSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              namespaces:
                                                type: array
                                                items:
                                                  type: string
                                              topologyKey:
                                                type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                              description: The pod's affinity rules.
                            tolerations:
                              type: array
                              items:
                                type: object
                                properties:
                                  effect:
                                    type: string
                                  key:
                                    type: string
                                  operator:
                                    type: string
                                  tolerationSeconds:
                                    type: integer
                                  value:
                                    type: string
                              description: The pod's tolerations.
                            topologySpreadConstraints:
                              type: array
                              items:
                                type: object
                                properties:
                                  labelSelector:
                                    type: object
                                    properties:
                                      matchExpressions:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              type: array
                                              items:
                                                type: string
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                  matchLabelKeys:
                                    type: array
                                    items:
                                      type: string
                                  maxSkew:
                                    type: integer
                                  minDomains:
                                    type: integer
                                  nodeAffinityPolicy:
                                    type: string
                                  nodeTaintsPolicy:
                                    type: string
                                  topologyKey:
                                    type: string
                                  whenUnsatisfiable:
                                    type: string
                              description: The pod's topology spread constraints.
                            priorityClassName:
                              type: string
                              description: 'The name of the priority class used to assign priority to the pods. '
                            schedulerName:
                              type: string
                              description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                            hostAliases:
                              type: array
                              items:
                                type: object
                                properties:
                                  hostnames:
                                    type: array
                                    items:
                                      type: string
                                  ip:
                                    type: string
                              description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                            dnsPolicy:
                              type: string
                              enum:
                                - ClusterFirst
                                - ClusterFirstWithHostNet
                                - Default
                                - None
                              description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                            dnsConfig:
                              type: object
                              properties:
                                nameservers:
                                  type: array
                                  items:
                                    type: string
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                searches:
                                  type: array
                                  items:
                                    type: string
                              description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                            enableServiceLinks:
                              type: boolean
                              description: Indicates whether information about services should be injected into Pod's environment variables.
                            tmpDirSizeLimit:
                              type: string
                              pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                              description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                            volumes:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: Name to use for the volume. Required.
                                  secret:
                                    type: object
                                    properties:
                                      defaultMode:
                                        type: integer
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              type: integer
                                            path:
                                              type: string
                                      optional:
                                        type: boolean
                                      secretName:
                                        type: string
                                    description: '`Secret` to use to populate the volume.'
                                  configMap:
                                    type: object
                                    properties:
                                      defaultMode:
                                        type: integer
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              type: integer
                                            path:
                                              type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: '`ConfigMap` to use to populate the volume.'
                                  emptyDir:
                                    type: object
                                    properties:
                                      medium:
                                        type: string
                                        enum:
                                          - Memory
                                        description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                      sizeLimit:
                                        type: string
                                        pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                        description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                    description: '`EmptyDir` to use to populate the volume.'
                                  persistentVolumeClaim:
                                    type: object
                                    properties:
                                      claimName:
                                        type: string
                                      readOnly:
                                        type: boolean
                                    description: '`PersistentVolumeClaim` object to use to populate the volume.'
                                  csi:
                                    type: object
                                    properties:
                                      driver:
                                        type: string
                                      fsType:
                                        type: string
                                      nodePublishSecretRef:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                      readOnly:
                                        type: boolean
                                      volumeAttributes:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    description: '`CSIVolumeSource` object to use to populate the volume.'
                                  image:
                                    type: object
                                    properties:
                                      pullPolicy:
                                        type: string
                                      reference:
                                        type: string
                                    description: '`ImageVolumeSource` object to use to populate the volume.'
                                oneOf:
                                  - properties:
                                      secret: {}
                                      configMap: {}
                                      emptyDir: {}
                                      persistentVolumeClaim: {}
                                      csi: {}
                                      image: {}
                              description: Additional volumes that can be mounted to the pod.
                            hostUsers:
                              type: boolean
                              description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                          description: Template for Entity Operator `Pods`.
                        topicOperatorContainer:
                          type: object
                          properties:
                            env:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The environment variable key.
                                  value:
                                    type: string
                                    description: The environment variable value.
                                  valueFrom:
                                    type: object
                                    properties:
                                      secretKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a secret.
                                      configMapKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a config map.
                                    oneOf:
                                      - properties:
                                          secretKeyRef: {}
                                        required:
                                          - secretKeyRef
                                      - properties:
                                          configMapKeyRef: {}
                                        required:
                                          - configMapKeyRef
                                    description: Reference to the secret or config map property to which the environment variable is set.
                                oneOf:
                                  - properties:
                                      value: {}
                                    required:
                                      - value
                                  - properties:
                                      valueFrom: {}
                                    required:
                                      - valueFrom
                              description: Environment variables which should be applied to the container.
                            securityContext:
                              type: object
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                capabilities:
                                  type: object
                                  properties:
                                    add:
                                      type: array
                                      items:
                                        type: string
                                    drop:
                                      type: array
                                      items:
                                        type: string
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Security context for the container.
                            volumeMounts:
                              type: array
                              items:
                                type: object
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                              description: Additional volume mounts which should be applied to the container.
                          description: Template for the Entity Topic Operator container.
                        userOperatorContainer:
                          type: object
                          properties:
                            env:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The environment variable key.
                                  value:
                                    type: string
                                    description: The environment variable value.
                                  valueFrom:
                                    type: object
                                    properties:
                                      secretKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a secret.
                                      configMapKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a config map.
                                    oneOf:
                                      - properties:
                                          secretKeyRef: {}
                                        required:
                                          - secretKeyRef
                                      - properties:
                                          configMapKeyRef: {}
                                        required:
                                          - configMapKeyRef
                                    description: Reference to the secret or config map property to which the environment variable is set.
                                oneOf:
                                  - properties:
                                      value: {}
                                    required:
                                      - value
                                  - properties:
                                      valueFrom: {}
                                    required:
                                      - valueFrom
                              description: Environment variables which should be applied to the container.
                            securityContext:
                              type: object
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                capabilities:
                                  type: object
                                  properties:
                                    add:
                                      type: array
                                      items:
                                        type: string
                                    drop:
                                      type: array
                                      items:
                                        type: string
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Security context for the container.
                            volumeMounts:
                              type: array
                              items:
                                type: object
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                              description: Additional volume mounts which should be applied to the container.
                          description: Template for the Entity User Operator container.
                        serviceAccount:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for the Entity Operator service account.
                        podDisruptionBudget:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata to apply to the `PodDisruptionBudgetTemplate` resource.
                            maxUnavailable:
                              type: integer
                              minimum: 0
                              description: "Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1."
                          description: Template for the Entity Operator Pod Disruption Budget.
                        entityOperatorRole:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for the Entity Operator Role.
                        topicOperatorRoleBinding:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for the Entity Topic Operator RoleBinding.
                        userOperatorRoleBinding:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for the Entity Topic Operator RoleBinding.
                      description: Template for Entity Operator resources. The template allows users to specify how a `Deployment` and `Pod` is generated.
                  description: Configuration of the Entity Operator.
                clusterCa:
                  type: object
                  properties:
                    generateCertificateAuthority:
                      type: boolean
                      description: If true then Certificate Authority certificates will be generated automatically. Otherwise the user will need to provide a Secret with the CA certificate. Default is true.
                    generateSecretOwnerReference:
                      type: boolean
                      description: "If `true`, the Cluster and Client CA Secrets are configured with the `ownerReference` set to the `Kafka` resource. If the `Kafka` resource is deleted when `true`, the CA Secrets are also deleted. If `false`, the `ownerReference` is disabled. If the `Kafka` resource is deleted when `false`, the CA Secrets are retained and available for reuse. Default is `true`."
                    validityDays:
                      type: integer
                      minimum: 1
                      description: The number of days generated certificates should be valid for. The default is 365.
                    renewalDays:
                      type: integer
                      minimum: 1
                      description: "The number of days in the certificate renewal period. This is the number of days before the a certificate expires during which renewal actions may be performed. When `generateCertificateAuthority` is true, this will cause the generation of a new certificate. When `generateCertificateAuthority` is true, this will cause extra logging at WARN level about the pending certificate expiry. Default is 30."
                    certificateExpirationPolicy:
                      type: string
                      enum:
                        - renew-certificate
                        - replace-key
                      description: How should CA certificate expiration be handled when `generateCertificateAuthority=true`. The default is for a new CA certificate to be generated reusing the existing private key.
                  description: Configuration of the cluster certificate authority.
                clientsCa:
                  type: object
                  properties:
                    generateCertificateAuthority:
                      type: boolean
                      description: If true then Certificate Authority certificates will be generated automatically. Otherwise the user will need to provide a Secret with the CA certificate. Default is true.
                    generateSecretOwnerReference:
                      type: boolean
                      description: "If `true`, the Cluster and Client CA Secrets are configured with the `ownerReference` set to the `Kafka` resource. If the `Kafka` resource is deleted when `true`, the CA Secrets are also deleted. If `false`, the `ownerReference` is disabled. If the `Kafka` resource is deleted when `false`, the CA Secrets are retained and available for reuse. Default is `true`."
                    validityDays:
                      type: integer
                      minimum: 1
                      description: The number of days generated certificates should be valid for. The default is 365.
                    renewalDays:
                      type: integer
                      minimum: 1
                      description: "The number of days in the certificate renewal period. This is the number of days before the a certificate expires during which renewal actions may be performed. When `generateCertificateAuthority` is true, this will cause the generation of a new certificate. When `generateCertificateAuthority` is true, this will cause extra logging at WARN level about the pending certificate expiry. Default is 30."
                    certificateExpirationPolicy:
                      type: string
                      enum:
                        - renew-certificate
                        - replace-key
                      description: How should CA certificate expiration be handled when `generateCertificateAuthority=true`. The default is for a new CA certificate to be generated reusing the existing private key.
                  description: Configuration of the clients certificate authority.
                cruiseControl:
                  type: object
                  properties:
                    image:
                      type: string
                      description: "The container image used for Cruise Control pods. If no image name is explicitly specified, the image name corresponds to the name specified in the Cluster Operator configuration. If an image name is not defined in the Cluster Operator configuration, a default value is used."
                    resources:
                      type: object
                      properties:
                        claims:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                              request:
                                type: string
                        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
                      description: CPU and memory resources to reserve for the Cruise Control container.
                    livenessProbe:
                      type: object
                      properties:
                        initialDelaySeconds:
                          type: integer
                          minimum: 0
                          description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                        timeoutSeconds:
                          type: integer
                          minimum: 1
                          description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                        periodSeconds:
                          type: integer
                          minimum: 1
                          description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                        successThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                        failureThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                      description: Pod liveness checking for the Cruise Control container.
                    readinessProbe:
                      type: object
                      properties:
                        initialDelaySeconds:
                          type: integer
                          minimum: 0
                          description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                        timeoutSeconds:
                          type: integer
                          minimum: 1
                          description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                        periodSeconds:
                          type: integer
                          minimum: 1
                          description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                        successThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                        failureThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                      description: Pod readiness checking for the Cruise Control container.
                    jvmOptions:
                      type: object
                      properties:
                        "-XX":
                          additionalProperties:
                            type: string
                          type: object
                          description: A map of -XX options to the JVM.
                        "-Xmx":
                          type: string
                          pattern: "^[0-9]+[mMgG]?$"
                          description: -Xmx option to to the JVM.
                        "-Xms":
                          type: string
                          pattern: "^[0-9]+[mMgG]?$"
                          description: -Xms option to to the JVM.
                        gcLoggingEnabled:
                          type: boolean
                          description: Specifies whether the Garbage Collection logging is enabled. The default is false.
                        javaSystemProperties:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The system property name.
                              value:
                                type: string
                                description: The system property value.
                          description: A map of additional system properties which will be passed using the `-D` option to the JVM.
                      description: JVM Options for the Cruise Control container.
                    logging:
                      type: object
                      properties:
                        loggers:
                          additionalProperties:
                            type: string
                          type: object
                          description: A Map from logger name to logger level.
                        type:
                          type: string
                          enum:
                            - inline
                            - external
                          description: "Logging type, must be either 'inline' or 'external'."
                        valueFrom:
                          type: object
                          properties:
                            configMapKeyRef:
                              type: object
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              description: Reference to the key in the ConfigMap containing the configuration.
                          description: '`ConfigMap` entry where the logging configuration is stored. '
                      required:
                        - type
                      description: Logging configuration (Log4j 2) for Cruise Control.
                    template:
                      type: object
                      properties:
                        deployment:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            deploymentStrategy:
                              type: string
                              enum:
                                - RollingUpdate
                                - Recreate
                              description: Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.
                          description: Template for Cruise Control `Deployment`.
                        pod:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            imagePullSecrets:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                              description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                            securityContext:
                              type: object
                              properties:
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                fsGroup:
                                  type: integer
                                fsGroupChangePolicy:
                                  type: string
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxChangePolicy:
                                  type: string
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                supplementalGroups:
                                  type: array
                                  items:
                                    type: integer
                                supplementalGroupsPolicy:
                                  type: string
                                sysctls:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Configures pod-level security attributes and common container settings.
                            terminationGracePeriodSeconds:
                              type: integer
                              minimum: 0
                              description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                            affinity:
                              type: object
                              properties:
                                nodeAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          preference:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchFields:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: object
                                      properties:
                                        nodeSelectorTerms:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchFields:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                podAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          podAffinityTerm:
                                            type: object
                                            properties:
                                              labelSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              matchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              mismatchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              namespaceSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              namespaces:
                                                type: array
                                                items:
                                                  type: string
                                              topologyKey:
                                                type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                podAntiAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          podAffinityTerm:
                                            type: object
                                            properties:
                                              labelSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              matchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              mismatchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              namespaceSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              namespaces:
                                                type: array
                                                items:
                                                  type: string
                                              topologyKey:
                                                type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                              description: The pod's affinity rules.
                            tolerations:
                              type: array
                              items:
                                type: object
                                properties:
                                  effect:
                                    type: string
                                  key:
                                    type: string
                                  operator:
                                    type: string
                                  tolerationSeconds:
                                    type: integer
                                  value:
                                    type: string
                              description: The pod's tolerations.
                            topologySpreadConstraints:
                              type: array
                              items:
                                type: object
                                properties:
                                  labelSelector:
                                    type: object
                                    properties:
                                      matchExpressions:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              type: array
                                              items:
                                                type: string
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                  matchLabelKeys:
                                    type: array
                                    items:
                                      type: string
                                  maxSkew:
                                    type: integer
                                  minDomains:
                                    type: integer
                                  nodeAffinityPolicy:
                                    type: string
                                  nodeTaintsPolicy:
                                    type: string
                                  topologyKey:
                                    type: string
                                  whenUnsatisfiable:
                                    type: string
                              description: The pod's topology spread constraints.
                            priorityClassName:
                              type: string
                              description: 'The name of the priority class used to assign priority to the pods. '
                            schedulerName:
                              type: string
                              description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                            hostAliases:
                              type: array
                              items:
                                type: object
                                properties:
                                  hostnames:
                                    type: array
                                    items:
                                      type: string
                                  ip:
                                    type: string
                              description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                            dnsPolicy:
                              type: string
                              enum:
                                - ClusterFirst
                                - ClusterFirstWithHostNet
                                - Default
                                - None
                              description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                            dnsConfig:
                              type: object
                              properties:
                                nameservers:
                                  type: array
                                  items:
                                    type: string
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                searches:
                                  type: array
                                  items:
                                    type: string
                              description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                            enableServiceLinks:
                              type: boolean
                              description: Indicates whether information about services should be injected into Pod's environment variables.
                            tmpDirSizeLimit:
                              type: string
                              pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                              description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                            volumes:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: Name to use for the volume. Required.
                                  secret:
                                    type: object
                                    properties:
                                      defaultMode:
                                        type: integer
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              type: integer
                                            path:
                                              type: string
                                      optional:
                                        type: boolean
                                      secretName:
                                        type: string
                                    description: '`Secret` to use to populate the volume.'
                                  configMap:
                                    type: object
                                    properties:
                                      defaultMode:
                                        type: integer
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              type: integer
                                            path:
                                              type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: '`ConfigMap` to use to populate the volume.'
                                  emptyDir:
                                    type: object
                                    properties:
                                      medium:
                                        type: string
                                        enum:
                                          - Memory
                                        description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                      sizeLimit:
                                        type: string
                                        pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                        description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                    description: '`EmptyDir` to use to populate the volume.'
                                  persistentVolumeClaim:
                                    type: object
                                    properties:
                                      claimName:
                                        type: string
                                      readOnly:
                                        type: boolean
                                    description: '`PersistentVolumeClaim` object to use to populate the volume.'
                                  csi:
                                    type: object
                                    properties:
                                      driver:
                                        type: string
                                      fsType:
                                        type: string
                                      nodePublishSecretRef:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                      readOnly:
                                        type: boolean
                                      volumeAttributes:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    description: '`CSIVolumeSource` object to use to populate the volume.'
                                  image:
                                    type: object
                                    properties:
                                      pullPolicy:
                                        type: string
                                      reference:
                                        type: string
                                    description: '`ImageVolumeSource` object to use to populate the volume.'
                                oneOf:
                                  - properties:
                                      secret: {}
                                      configMap: {}
                                      emptyDir: {}
                                      persistentVolumeClaim: {}
                                      csi: {}
                                      image: {}
                              description: Additional volumes that can be mounted to the pod.
                            hostUsers:
                              type: boolean
                              description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                          description: Template for Cruise Control `Pods`.
                        apiService:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            ipFamilyPolicy:
                              type: string
                              enum:
                                - SingleStack
                                - PreferDualStack
                                - RequireDualStack
                              description: "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type."
                            ipFamilies:
                              type: array
                              items:
                                type: string
                                enum:
                                  - IPv4
                                  - IPv6
                              description: "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting."
                          description: Template for Cruise Control API `Service`.
                        podDisruptionBudget:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata to apply to the `PodDisruptionBudgetTemplate` resource.
                            maxUnavailable:
                              type: integer
                              minimum: 0
                              description: "Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1."
                          description: Template for Cruise Control `PodDisruptionBudget`.
                        cruiseControlContainer:
                          type: object
                          properties:
                            env:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The environment variable key.
                                  value:
                                    type: string
                                    description: The environment variable value.
                                  valueFrom:
                                    type: object
                                    properties:
                                      secretKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a secret.
                                      configMapKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a config map.
                                    oneOf:
                                      - properties:
                                          secretKeyRef: {}
                                        required:
                                          - secretKeyRef
                                      - properties:
                                          configMapKeyRef: {}
                                        required:
                                          - configMapKeyRef
                                    description: Reference to the secret or config map property to which the environment variable is set.
                                oneOf:
                                  - properties:
                                      value: {}
                                    required:
                                      - value
                                  - properties:
                                      valueFrom: {}
                                    required:
                                      - valueFrom
                              description: Environment variables which should be applied to the container.
                            securityContext:
                              type: object
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                capabilities:
                                  type: object
                                  properties:
                                    add:
                                      type: array
                                      items:
                                        type: string
                                    drop:
                                      type: array
                                      items:
                                        type: string
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Security context for the container.
                            volumeMounts:
                              type: array
                              items:
                                type: object
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                              description: Additional volume mounts which should be applied to the container.
                          description: Template for the Cruise Control container.
                        serviceAccount:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for the Cruise Control service account.
                      description: "Template to specify how Cruise Control resources, `Deployments` and `Pods`, are generated."
                    brokerCapacity:
                      type: object
                      properties:
                        cpu:
                          type: string
                          pattern: "^[0-9]+([.][0-9]{0,3}|[m]?)$"
                          description: "Broker capacity for CPU resource in cores or millicores. For example, 1, 1.500, 1500m. For more information on valid CPU resource units see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu."
                        inboundNetwork:
                          type: string
                          pattern: "^[0-9]+([KMG]i?)?B/s$"
                          description: "Broker capacity for inbound network throughput in bytes per second. Use an integer value with standard Kubernetes byte units (K, M, G) or their bibyte (power of two) equivalents (Ki, Mi, Gi) per second. For example, 10000KiB/s."
                        outboundNetwork:
                          type: string
                          pattern: "^[0-9]+([KMG]i?)?B/s$"
                          description: "Broker capacity for outbound network throughput in bytes per second. Use an integer value with standard Kubernetes byte units (K, M, G) or their bibyte (power of two) equivalents (Ki, Mi, Gi) per second. For example, 10000KiB/s."
                        overrides:
                          type: array
                          items:
                            type: object
                            properties:
                              brokers:
                                type: array
                                items:
                                  type: integer
                                description: List of Kafka brokers (broker identifiers).
                              cpu:
                                type: string
                                pattern: "^[0-9]+([.][0-9]{0,3}|[m]?)$"
                                description: "Broker capacity for CPU resource in cores or millicores. For example, 1, 1.500, 1500m. For more information on valid CPU resource units see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu."
                              inboundNetwork:
                                type: string
                                pattern: "^[0-9]+([KMG]i?)?B/s$"
                                description: "Broker capacity for inbound network throughput in bytes per second. Use an integer value with standard Kubernetes byte units (K, M, G) or their bibyte (power of two) equivalents (Ki, Mi, Gi) per second. For example, 10000KiB/s."
                              outboundNetwork:
                                type: string
                                pattern: "^[0-9]+([KMG]i?)?B/s$"
                                description: "Broker capacity for outbound network throughput in bytes per second. Use an integer value with standard Kubernetes byte units (K, M, G) or their bibyte (power of two) equivalents (Ki, Mi, Gi) per second. For example, 10000KiB/s."
                            required:
                              - brokers
                          description: Overrides for individual brokers. The `overrides` property lets you specify a different capacity configuration for different brokers.
                      description: The Cruise Control `brokerCapacity` configuration.
                    config:
                      x-kubernetes-preserve-unknown-fields: true
                      type: object
                      description: "The Cruise Control configuration. For a full list of configuration options refer to https://github.com/linkedin/cruise-control/wiki/Configurations. Note that properties with the following prefixes cannot be set: bootstrap.servers, client.id, zookeeper., network., security., failed.brokers.zk.path,webserver.http., webserver.api.urlprefix, webserver.session.path, webserver.accesslog., two.step., request.reason.required,metric.reporter.sampler.bootstrap.servers, capacity.config.file, self.healing., ssl., kafka.broker.failure.detection.enable, topic.config.provider.class (with the exception of: ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols, webserver.http.cors.enabled, webserver.http.cors.origin, webserver.http.cors.exposeheaders, webserver.security.enable, webserver.ssl.enable)."
                    metricsConfig:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - jmxPrometheusExporter
                            - strimziMetricsReporter
                          description: Metrics type. The supported types are `jmxPrometheusExporter` and `strimziMetricsReporter`. Type `jmxPrometheusExporter` uses the Prometheus JMX Exporter to expose Kafka JMX metrics in Prometheus format through an HTTP endpoint. Type `strimziMetricsReporter` uses the Strimzi Metrics Reporter to directly expose Kafka metrics in Prometheus format through an HTTP endpoint.
                        valueFrom:
                          type: object
                          properties:
                            configMapKeyRef:
                              type: object
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              description: Reference to the key in the ConfigMap containing the configuration.
                          description: ConfigMap entry where the Prometheus JMX Exporter configuration is stored.
                        values:
                          type: object
                          properties:
                            allowList:
                              type: array
                              items:
                                type: string
                              description: A list of regex patterns to filter the metrics to collect. Should contain at least one element.
                          description: Configuration values for the Strimzi Metrics Reporter.
                      required:
                        - type
                      description: "Metrics configuration. Only `jmxPrometheusExporter` can be configured, as this component does not support `strimziMetricsReporter`."
                      x-kubernetes-validations:
                        - rule: self.type != 'jmxPrometheusExporter' || has(self.valueFrom)
                          message: valueFrom property is required
                        - rule: self.type != 'strimziMetricsReporter'
                          message: value type not supported
                    apiUsers:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - hashLoginService
                          description: "Type of the Cruise Control API users configuration. Supported format is: `hashLoginService`."
                        valueFrom:
                          type: object
                          properties:
                            secretKeyRef:
                              type: object
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              description: Selects a key of a Secret in the resource's namespace.
                          description: Secret from which the custom Cruise Control API authentication credentials are read.
                      required:
                        - type
                        - valueFrom
                      description: Configuration of the Cruise Control REST API users.
                    autoRebalance:
                      type: array
                      minItems: 1
                      items:
                        type: object
                        properties:
                          mode:
                            type: string
                            enum:
                              - add-brokers
                              - remove-brokers
                            description: "Specifies the mode for automatically rebalancing when brokers are added or removed. Supported modes are `add-brokers` and `remove-brokers`. \n"
                          template:
                            type: object
                            properties:
                              name:
                                type: string
                            description: Reference to the KafkaRebalance custom resource to be used as the configuration template for the auto-rebalancing on scaling when running for the corresponding mode.
                        required:
                          - mode
                      description: "Auto-rebalancing on scaling related configuration listing the modes, when brokers are added or removed, with the corresponding rebalance template configurations.If this field is set, at least one mode has to be defined."
                  description: Configuration for Cruise Control deployment. Deploys a Cruise Control instance when specified.
                kafkaExporter:
                  type: object
                  properties:
                    image:
                      type: string
                      description: "The container image used for the Kafka Exporter pods. If no image name is explicitly specified, the image name corresponds to the version specified in the Cluster Operator configuration. If an image name is not defined in the Cluster Operator configuration, a default value is used."
                    groupRegex:
                      type: string
                      description: Regular expression to specify which consumer groups to collect. Default value is `.*`.
                    topicRegex:
                      type: string
                      description: Regular expression to specify which topics to collect. Default value is `.*`.
                    groupExcludeRegex:
                      type: string
                      description: Regular expression to specify which consumer groups to exclude.
                    topicExcludeRegex:
                      type: string
                      description: Regular expression to specify which topics to exclude.
                    resources:
                      type: object
                      properties:
                        claims:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                              request:
                                type: string
                        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
                      description: CPU and memory resources to reserve.
                    logging:
                      type: string
                      description: "Only log messages with the given severity or above. Valid levels: [`info`, `debug`, `trace`]. Default log level is `info`."
                    livenessProbe:
                      type: object
                      properties:
                        initialDelaySeconds:
                          type: integer
                          minimum: 0
                          description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                        timeoutSeconds:
                          type: integer
                          minimum: 1
                          description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                        periodSeconds:
                          type: integer
                          minimum: 1
                          description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                        successThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                        failureThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                      description: Pod liveness check.
                    readinessProbe:
                      type: object
                      properties:
                        initialDelaySeconds:
                          type: integer
                          minimum: 0
                          description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                        timeoutSeconds:
                          type: integer
                          minimum: 1
                          description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                        periodSeconds:
                          type: integer
                          minimum: 1
                          description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                        successThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                        failureThreshold:
                          type: integer
                          minimum: 1
                          description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                      description: Pod readiness check.
                    enableSaramaLogging:
                      type: boolean
                      description: "Enable Sarama logging, a Go client library used by the Kafka Exporter."
                    showAllOffsets:
                      type: boolean
                      description: "Whether show the offset/lag for all consumer group, otherwise, only show connected consumer groups."
                    template:
                      type: object
                      properties:
                        deployment:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            deploymentStrategy:
                              type: string
                              enum:
                                - RollingUpdate
                                - Recreate
                              description: Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.
                          description: Template for Kafka Exporter `Deployment`.
                        pod:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                            imagePullSecrets:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                              description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                            securityContext:
                              type: object
                              properties:
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                fsGroup:
                                  type: integer
                                fsGroupChangePolicy:
                                  type: string
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxChangePolicy:
                                  type: string
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                supplementalGroups:
                                  type: array
                                  items:
                                    type: integer
                                supplementalGroupsPolicy:
                                  type: string
                                sysctls:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Configures pod-level security attributes and common container settings.
                            terminationGracePeriodSeconds:
                              type: integer
                              minimum: 0
                              description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                            affinity:
                              type: object
                              properties:
                                nodeAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          preference:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchFields:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: object
                                      properties:
                                        nodeSelectorTerms:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchFields:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                podAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          podAffinityTerm:
                                            type: object
                                            properties:
                                              labelSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              matchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              mismatchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              namespaceSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              namespaces:
                                                type: array
                                                items:
                                                  type: string
                                              topologyKey:
                                                type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                podAntiAffinity:
                                  type: object
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          podAffinityTerm:
                                            type: object
                                            properties:
                                              labelSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              matchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              mismatchLabelKeys:
                                                type: array
                                                items:
                                                  type: string
                                              namespaceSelector:
                                                type: object
                                                properties:
                                                  matchExpressions:
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          type: array
                                                          items:
                                                            type: string
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                              namespaces:
                                                type: array
                                                items:
                                                  type: string
                                              topologyKey:
                                                type: string
                                          weight:
                                            type: integer
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                              description: The pod's affinity rules.
                            tolerations:
                              type: array
                              items:
                                type: object
                                properties:
                                  effect:
                                    type: string
                                  key:
                                    type: string
                                  operator:
                                    type: string
                                  tolerationSeconds:
                                    type: integer
                                  value:
                                    type: string
                              description: The pod's tolerations.
                            topologySpreadConstraints:
                              type: array
                              items:
                                type: object
                                properties:
                                  labelSelector:
                                    type: object
                                    properties:
                                      matchExpressions:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              type: array
                                              items:
                                                type: string
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                  matchLabelKeys:
                                    type: array
                                    items:
                                      type: string
                                  maxSkew:
                                    type: integer
                                  minDomains:
                                    type: integer
                                  nodeAffinityPolicy:
                                    type: string
                                  nodeTaintsPolicy:
                                    type: string
                                  topologyKey:
                                    type: string
                                  whenUnsatisfiable:
                                    type: string
                              description: The pod's topology spread constraints.
                            priorityClassName:
                              type: string
                              description: 'The name of the priority class used to assign priority to the pods. '
                            schedulerName:
                              type: string
                              description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                            hostAliases:
                              type: array
                              items:
                                type: object
                                properties:
                                  hostnames:
                                    type: array
                                    items:
                                      type: string
                                  ip:
                                    type: string
                              description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                            dnsPolicy:
                              type: string
                              enum:
                                - ClusterFirst
                                - ClusterFirstWithHostNet
                                - Default
                                - None
                              description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                            dnsConfig:
                              type: object
                              properties:
                                nameservers:
                                  type: array
                                  items:
                                    type: string
                                options:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                searches:
                                  type: array
                                  items:
                                    type: string
                              description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                            enableServiceLinks:
                              type: boolean
                              description: Indicates whether information about services should be injected into Pod's environment variables.
                            tmpDirSizeLimit:
                              type: string
                              pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                              description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                            volumes:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: Name to use for the volume. Required.
                                  secret:
                                    type: object
                                    properties:
                                      defaultMode:
                                        type: integer
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              type: integer
                                            path:
                                              type: string
                                      optional:
                                        type: boolean
                                      secretName:
                                        type: string
                                    description: '`Secret` to use to populate the volume.'
                                  configMap:
                                    type: object
                                    properties:
                                      defaultMode:
                                        type: integer
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              type: integer
                                            path:
                                              type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: '`ConfigMap` to use to populate the volume.'
                                  emptyDir:
                                    type: object
                                    properties:
                                      medium:
                                        type: string
                                        enum:
                                          - Memory
                                        description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                      sizeLimit:
                                        type: string
                                        pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                        description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                    description: '`EmptyDir` to use to populate the volume.'
                                  persistentVolumeClaim:
                                    type: object
                                    properties:
                                      claimName:
                                        type: string
                                      readOnly:
                                        type: boolean
                                    description: '`PersistentVolumeClaim` object to use to populate the volume.'
                                  csi:
                                    type: object
                                    properties:
                                      driver:
                                        type: string
                                      fsType:
                                        type: string
                                      nodePublishSecretRef:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                      readOnly:
                                        type: boolean
                                      volumeAttributes:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    description: '`CSIVolumeSource` object to use to populate the volume.'
                                  image:
                                    type: object
                                    properties:
                                      pullPolicy:
                                        type: string
                                      reference:
                                        type: string
                                    description: '`ImageVolumeSource` object to use to populate the volume.'
                                oneOf:
                                  - properties:
                                      secret: {}
                                      configMap: {}
                                      emptyDir: {}
                                      persistentVolumeClaim: {}
                                      csi: {}
                                      image: {}
                              description: Additional volumes that can be mounted to the pod.
                            hostUsers:
                              type: boolean
                              description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                          description: Template for Kafka Exporter `Pods`.
                        container:
                          type: object
                          properties:
                            env:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                    description: The environment variable key.
                                  value:
                                    type: string
                                    description: The environment variable value.
                                  valueFrom:
                                    type: object
                                    properties:
                                      secretKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a secret.
                                      configMapKeyRef:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                        description: Reference to a key in a config map.
                                    oneOf:
                                      - properties:
                                          secretKeyRef: {}
                                        required:
                                          - secretKeyRef
                                      - properties:
                                          configMapKeyRef: {}
                                        required:
                                          - configMapKeyRef
                                    description: Reference to the secret or config map property to which the environment variable is set.
                                oneOf:
                                  - properties:
                                      value: {}
                                    required:
                                      - value
                                  - properties:
                                      valueFrom: {}
                                    required:
                                      - valueFrom
                              description: Environment variables which should be applied to the container.
                            securityContext:
                              type: object
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                capabilities:
                                  type: object
                                  properties:
                                    add:
                                      type: array
                                      items:
                                        type: string
                                    drop:
                                      type: array
                                      items:
                                        type: string
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  type: integer
                                seLinuxOptions:
                                  type: object
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                seccompProfile:
                                  type: object
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                windowsOptions:
                                  type: object
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                              description: Security context for the container.
                            volumeMounts:
                              type: array
                              items:
                                type: object
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                              description: Additional volume mounts which should be applied to the container.
                          description: Template for the Kafka Exporter container.
                        serviceAccount:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata applied to the resource.
                          description: Template for the Kafka Exporter service account.
                        podDisruptionBudget:
                          type: object
                          properties:
                            metadata:
                              type: object
                              properties:
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Labels added to the Kubernetes resource.
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                  description: Annotations added to the Kubernetes resource.
                              description: Metadata to apply to the `PodDisruptionBudgetTemplate` resource.
                            maxUnavailable:
                              type: integer
                              minimum: 0
                              description: "Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1."
                          description: Template for the Pod Disruption Budget for Kafka Exporter pods.
                      description: Customization of deployment templates and pods.
                  description: "Configuration of the Kafka Exporter. Kafka Exporter can provide additional metrics, for example lag of consumer group at topic/partition."
                maintenanceTimeWindows:
                  type: array
                  items:
                    type: string
                  description: "A list of time windows for maintenance tasks (that is, certificates renewal). Each time window is defined by a cron expression."
              required:
                - kafka
              description: The specification of the Kafka cluster.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                listeners:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: The name of the listener.
                      addresses:
                        type: array
                        items:
                          type: object
                          properties:
                            host:
                              type: string
                              description: The DNS name or IP address of the Kafka bootstrap service.
                            port:
                              type: integer
                              description: The port of the Kafka bootstrap service.
                        description: A list of the addresses for this listener.
                      bootstrapServers:
                        type: string
                        description: A comma-separated list of `host:port` pairs for connecting to the Kafka cluster using this listener.
                      certificates:
                        type: array
                        items:
                          type: string
                        description: A list of TLS certificates which can be used to verify the identity of the server when connecting to the given listener. Set only for `tls` and `external` listeners.
                  description: Addresses of the internal and external listeners.
                kafkaNodePools:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: The name of the KafkaNodePool used by this Kafka resource.
                  description: List of the KafkaNodePools used by this Kafka cluster.
                clusterId:
                  type: string
                  description: Kafka cluster Id.
                operatorLastSuccessfulVersion:
                  type: string
                  description: The version of the Strimzi Cluster Operator which performed the last successful reconciliation.
                kafkaVersion:
                  type: string
                  description: The version of Kafka currently deployed in the cluster.
                kafkaMetadataVersion:
                  type: string
                  description: The KRaft metadata.version currently used by the Kafka cluster.
                autoRebalance:
                  type: object
                  properties:
                    state:
                      type: string
                      enum:
                        - Idle
                        - RebalanceOnScaleDown
                        - RebalanceOnScaleUp
                      description: "The current state of an auto-rebalancing operation. Possible values are: \n\n* `Idle` as the initial state when an auto-rebalancing is requested or as final state when it completes or fails.\n* `RebalanceOnScaleDown` if an auto-rebalance related to a scale-down operation is running.\n* `RebalanceOnScaleUp` if an auto-rebalance related to a scale-up operation is running."
                    lastTransitionTime:
                      type: string
                      description: The timestamp of the latest auto-rebalancing state update.
                    modes:
                      type: array
                      items:
                        type: object
                        properties:
                          mode:
                            type: string
                            enum:
                              - add-brokers
                              - remove-brokers
                            description: "Mode for which there is an auto-rebalancing operation in progress or queued, when brokers are added or removed. The possible modes are `add-brokers` and `remove-brokers`."
                          brokers:
                            type: array
                            items:
                              type: integer
                            description: "List of broker IDs involved in an auto-rebalancing operation related to the current mode. \nThe list contains one of the following: \n\n* Broker IDs for a current auto-rebalance. \n* Broker IDs for a queued auto-rebalance (if a previous auto-rebalance is still in progress). \n"
                      description: "List of modes where an auto-rebalancing operation is either running or queued. \nEach mode entry (`add-brokers` or `remove-brokers`) includes one of the following: \n\n* Broker IDs for a current auto-rebalance. \n* Broker IDs for a queued auto-rebalance (if a previous rebalance is still in progress)."
                  description: The status of an auto-rebalancing triggered by a cluster scaling request.
              description: The status of the Kafka cluster.
          required:
            - spec

---
# Source: strimzi-kafka-operator/crds/041-Crd-kafkaconnect.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kafkaconnects.kafka.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: kafkaconnects.kafka.strimzi.io-crd
spec:
  group: kafka.strimzi.io
  names:
    kind: KafkaConnect
    listKind: KafkaConnectList
    singular: kafkaconnect
    plural: kafkaconnects
    shortNames:
      - kc
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
        scale:
          specReplicasPath: .spec.replicas
          statusReplicasPath: .status.replicas
          labelSelectorPath: .status.labelSelector
      additionalPrinterColumns:
        - name: Desired replicas
          description: The desired number of Kafka Connect replicas
          jsonPath: .spec.replicas
          type: integer
        - name: Ready
          description: The state of the custom resource
          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
          type: string
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                version:
                  type: string
                  description: The Kafka Connect version. Defaults to the latest version. Consult the user documentation to understand the process required to upgrade or downgrade the version.
                replicas:
                  type: integer
                  description: The number of pods in the Kafka Connect group. Required in the `v1` version of the Strimzi API. Defaults to `3` in the `v1beta2` version of the Strimzi API.
                image:
                  type: string
                  description: "The container image used for Kafka Connect pods. If no image name is explicitly specified, it is determined based on the `spec.version` configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration."
                bootstrapServers:
                  type: string
                  description: Bootstrap servers to connect to. This should be given as a comma separated list of _<hostname>_:_<port>_ pairs.
                groupId:
                  type: string
                  description: A unique ID that identifies the Connect cluster group.
                configStorageTopic:
                  type: string
                  description: The name of the Kafka topic where connector configurations are stored.
                statusStorageTopic:
                  type: string
                  description: The name of the Kafka topic where connector and task status are stored.
                offsetStorageTopic:
                  type: string
                  description: The name of the Kafka topic where source connector offsets are stored.
                tls:
                  type: object
                  properties:
                    trustedCertificates:
                      type: array
                      items:
                        type: object
                        properties:
                          secretName:
                            type: string
                            description: The name of the Secret containing the certificate.
                          certificate:
                            type: string
                            description: The name of the file certificate in the secret.
                          pattern:
                            type: string
                            description: "Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used."
                        oneOf:
                          - properties:
                              certificate: {}
                            required:
                              - certificate
                          - properties:
                              pattern: {}
                            required:
                              - pattern
                        required:
                          - secretName
                      description: Trusted certificates for TLS connection.
                  description: TLS configuration.
                authentication:
                  type: object
                  properties:
                    certificateAndKey:
                      type: object
                      properties:
                        secretName:
                          type: string
                          description: The name of the Secret containing the certificate.
                        certificate:
                          type: string
                          description: The name of the file certificate in the Secret.
                        key:
                          type: string
                          description: "The name of the private key in the secret. The private key must be in unencrypted PKCS #8 format. For more information, see RFC 5208: https://datatracker.ietf.org/doc/html/rfc5208."
                      required:
                        - secretName
                        - certificate
                        - key
                      description: Reference to the `Secret` which holds the certificate and private key pair.
                    config:
                      x-kubernetes-preserve-unknown-fields: true
                      type: object
                      description: Configuration for the custom authentication mechanism. Only properties with the `sasl.` and `ssl.keystore.` prefixes are allowed. Specify other options in the regular configuration section of the custom resource.
                    passwordSecret:
                      type: object
                      properties:
                        secretName:
                          type: string
                          description: The name of the Secret containing the password.
                        password:
                          type: string
                          description: The name of the key in the Secret under which the password is stored.
                      required:
                        - secretName
                        - password
                      description: Reference to the `Secret` which holds the password.
                    sasl:
                      type: boolean
                      description: Enable or disable SASL on this authentication mechanism.
                    type:
                      type: string
                      enum:
                        - tls
                        - scram-sha-256
                        - scram-sha-512
                        - plain
                        - custom
                      description: "Specifies the authentication type. Supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, 'oauth', and `custom`. `tls` uses TLS client authentication and is supported only over TLS connections. `scram-sha-256` and `scram-sha-512` use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 authentication, respectively. `plain` uses SASL PLAIN authentication. `oauth` uses SASL OAUTHBEARER authentication. `custom` allows you to configure a custom authentication mechanism. As of Strimzi 0.49.0, `oauth` type is deprecated and will be removed in the `v1` API version. Please use `custom` type instead."
                    username:
                      type: string
                      description: Username used for the authentication.
                  required:
                    - type
                  description: Authentication configuration for Kafka Connect.
                config:
                  x-kubernetes-preserve-unknown-fields: true
                  type: object
                  description: "The Kafka Connect configuration. Properties with the following prefixes cannot be set: group.id, config.storage.topic, offset.storage.topic, status.storage.topic, ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes, prometheus.metrics.reporter. (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols)."
                resources:
                  type: object
                  properties:
                    claims:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          request:
                            type: string
                    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
                  description: The maximum limits for CPU and memory resources and the requested initial resources.
                livenessProbe:
                  type: object
                  properties:
                    initialDelaySeconds:
                      type: integer
                      minimum: 0
                      description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                    timeoutSeconds:
                      type: integer
                      minimum: 1
                      description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                    periodSeconds:
                      type: integer
                      minimum: 1
                      description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                    successThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                    failureThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                  description: Pod liveness checking.
                readinessProbe:
                  type: object
                  properties:
                    initialDelaySeconds:
                      type: integer
                      minimum: 0
                      description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                    timeoutSeconds:
                      type: integer
                      minimum: 1
                      description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                    periodSeconds:
                      type: integer
                      minimum: 1
                      description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                    successThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                    failureThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                  description: Pod readiness checking.
                jvmOptions:
                  type: object
                  properties:
                    "-XX":
                      additionalProperties:
                        type: string
                      type: object
                      description: A map of -XX options to the JVM.
                    "-Xmx":
                      type: string
                      pattern: "^[0-9]+[mMgG]?$"
                      description: -Xmx option to to the JVM.
                    "-Xms":
                      type: string
                      pattern: "^[0-9]+[mMgG]?$"
                      description: -Xms option to to the JVM.
                    gcLoggingEnabled:
                      type: boolean
                      description: Specifies whether the Garbage Collection logging is enabled. The default is false.
                    javaSystemProperties:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            description: The system property name.
                          value:
                            type: string
                            description: The system property value.
                      description: A map of additional system properties which will be passed using the `-D` option to the JVM.
                  description: JVM Options for pods.
                jmxOptions:
                  type: object
                  properties:
                    authentication:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - password
                          description: Authentication type. Currently the only supported types are `password`.`password` type creates a username and protected port with no TLS.
                      required:
                        - type
                      description: Authentication configuration for connecting to the JMX port.
                  description: JMX Options.
                logging:
                  type: object
                  properties:
                    loggers:
                      additionalProperties:
                        type: string
                      type: object
                      description: A Map from logger name to logger level.
                    type:
                      type: string
                      enum:
                        - inline
                        - external
                      description: "Logging type, must be either 'inline' or 'external'."
                    valueFrom:
                      type: object
                      properties:
                        configMapKeyRef:
                          type: object
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          description: Reference to the key in the ConfigMap containing the configuration.
                      description: '`ConfigMap` entry where the logging configuration is stored. '
                  required:
                    - type
                  description: Logging configuration for Kafka Connect.
                clientRackInitImage:
                  type: string
                  description: The image of the init container used for initializing the `client.rack`.
                rack:
                  type: object
                  properties:
                    envVarName:
                      type: string
                      description: The name of the environment variable that defines the rack ID. Its value sets the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect or MirrorMaker 2.
                    topologyKey:
                      type: string
                      example: topology.kubernetes.io/zone
                      description: "A key that matches labels assigned to the Kubernetes cluster nodes. The value of the label is used to set a broker's `broker.rack` config, and the `client.rack` config for Kafka Connect or MirrorMaker 2."
                    type:
                      type: string
                      enum:
                        - topology-label
                        - environment-variable
                      description: "Specifies the rack awareness type. Supported types are `topology-label` and `environment-variable`. `topology-label` uses a Kubernetes worker node label to set the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect and MirrorMaker 2. `environment-variable` uses an environment variable to set the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect and MirrorMaker 2. When not specified, `topology-label` type is used by default."
                  description: Configuration of the node label which will be used as the `client.rack` consumer configuration.
                  x-kubernetes-validations:
                    - rule: (has(self.type) && self.type != "topology-label") || self.topologyKey != ""
                      message: topologyKey property is required
                    - rule: has(self.type) == false || self.type != "environment-variable" || self.envVarName != ""
                      message: envVarName property is required
                metricsConfig:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - jmxPrometheusExporter
                        - strimziMetricsReporter
                      description: Metrics type. The supported types are `jmxPrometheusExporter` and `strimziMetricsReporter`. Type `jmxPrometheusExporter` uses the Prometheus JMX Exporter to expose Kafka JMX metrics in Prometheus format through an HTTP endpoint. Type `strimziMetricsReporter` uses the Strimzi Metrics Reporter to directly expose Kafka metrics in Prometheus format through an HTTP endpoint.
                    valueFrom:
                      type: object
                      properties:
                        configMapKeyRef:
                          type: object
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          description: Reference to the key in the ConfigMap containing the configuration.
                      description: ConfigMap entry where the Prometheus JMX Exporter configuration is stored.
                    values:
                      type: object
                      properties:
                        allowList:
                          type: array
                          items:
                            type: string
                          description: A list of regex patterns to filter the metrics to collect. Should contain at least one element.
                      description: Configuration values for the Strimzi Metrics Reporter.
                  required:
                    - type
                  description: Metrics configuration.
                  x-kubernetes-validations:
                    - rule: self.type != 'jmxPrometheusExporter' || has(self.valueFrom)
                      message: valueFrom property is required
                tracing:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - opentelemetry
                      description: "Type of the tracing used. Currently the only supported type is `opentelemetry` for OpenTelemetry tracing. As of Strimzi 0.37.0, `jaeger` type is not supported anymore and this option is ignored."
                  required:
                    - type
                  description: The configuration of tracing in Kafka Connect.
                template:
                  type: object
                  properties:
                    podSet:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for Kafka Connect `StrimziPodSet` resource.
                    pod:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        imagePullSecrets:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                          description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                        securityContext:
                          type: object
                          properties:
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            fsGroup:
                              type: integer
                            fsGroupChangePolicy:
                              type: string
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxChangePolicy:
                              type: string
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            supplementalGroups:
                              type: array
                              items:
                                type: integer
                            supplementalGroupsPolicy:
                              type: string
                            sysctls:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Configures pod-level security attributes and common container settings.
                        terminationGracePeriodSeconds:
                          type: integer
                          minimum: 0
                          description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                        affinity:
                          type: object
                          properties:
                            nodeAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      preference:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: object
                                  properties:
                                    nodeSelectorTerms:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                            podAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                            podAntiAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                          description: The pod's affinity rules.
                        tolerations:
                          type: array
                          items:
                            type: object
                            properties:
                              effect:
                                type: string
                              key:
                                type: string
                              operator:
                                type: string
                              tolerationSeconds:
                                type: integer
                              value:
                                type: string
                          description: The pod's tolerations.
                        topologySpreadConstraints:
                          type: array
                          items:
                            type: object
                            properties:
                              labelSelector:
                                type: object
                                properties:
                                  matchExpressions:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        operator:
                                          type: string
                                        values:
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    type: object
                              matchLabelKeys:
                                type: array
                                items:
                                  type: string
                              maxSkew:
                                type: integer
                              minDomains:
                                type: integer
                              nodeAffinityPolicy:
                                type: string
                              nodeTaintsPolicy:
                                type: string
                              topologyKey:
                                type: string
                              whenUnsatisfiable:
                                type: string
                          description: The pod's topology spread constraints.
                        priorityClassName:
                          type: string
                          description: 'The name of the priority class used to assign priority to the pods. '
                        schedulerName:
                          type: string
                          description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                        hostAliases:
                          type: array
                          items:
                            type: object
                            properties:
                              hostnames:
                                type: array
                                items:
                                  type: string
                              ip:
                                type: string
                          description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                        dnsPolicy:
                          type: string
                          enum:
                            - ClusterFirst
                            - ClusterFirstWithHostNet
                            - Default
                            - None
                          description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                        dnsConfig:
                          type: object
                          properties:
                            nameservers:
                              type: array
                              items:
                                type: string
                            options:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            searches:
                              type: array
                              items:
                                type: string
                          description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                        enableServiceLinks:
                          type: boolean
                          description: Indicates whether information about services should be injected into Pod's environment variables.
                        tmpDirSizeLimit:
                          type: string
                          pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                          description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                        volumes:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Name to use for the volume. Required.
                              secret:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  optional:
                                    type: boolean
                                  secretName:
                                    type: string
                                description: '`Secret` to use to populate the volume.'
                              configMap:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                description: '`ConfigMap` to use to populate the volume.'
                              emptyDir:
                                type: object
                                properties:
                                  medium:
                                    type: string
                                    enum:
                                      - Memory
                                    description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                  sizeLimit:
                                    type: string
                                    pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                    description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                description: '`EmptyDir` to use to populate the volume.'
                              persistentVolumeClaim:
                                type: object
                                properties:
                                  claimName:
                                    type: string
                                  readOnly:
                                    type: boolean
                                description: '`PersistentVolumeClaim` object to use to populate the volume.'
                              csi:
                                type: object
                                properties:
                                  driver:
                                    type: string
                                  fsType:
                                    type: string
                                  nodePublishSecretRef:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                  readOnly:
                                    type: boolean
                                  volumeAttributes:
                                    additionalProperties:
                                      type: string
                                    type: object
                                description: '`CSIVolumeSource` object to use to populate the volume.'
                              image:
                                type: object
                                properties:
                                  pullPolicy:
                                    type: string
                                  reference:
                                    type: string
                                description: '`ImageVolumeSource` object to use to populate the volume.'
                            oneOf:
                              - properties:
                                  secret: {}
                                  configMap: {}
                                  emptyDir: {}
                                  persistentVolumeClaim: {}
                                  csi: {}
                                  image: {}
                          description: Additional volumes that can be mounted to the pod.
                        hostUsers:
                          type: boolean
                          description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                      description: Template for Kafka Connect `Pods`.
                    apiService:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        ipFamilyPolicy:
                          type: string
                          enum:
                            - SingleStack
                            - PreferDualStack
                            - RequireDualStack
                          description: "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type."
                        ipFamilies:
                          type: array
                          items:
                            type: string
                            enum:
                              - IPv4
                              - IPv6
                          description: "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting."
                      description: Template for Kafka Connect API `Service`.
                    headlessService:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        ipFamilyPolicy:
                          type: string
                          enum:
                            - SingleStack
                            - PreferDualStack
                            - RequireDualStack
                          description: "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type."
                        ipFamilies:
                          type: array
                          items:
                            type: string
                            enum:
                              - IPv4
                              - IPv6
                          description: "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting."
                      description: Template for Kafka Connect headless `Service`.
                    connectContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the Kafka Connect container.
                    initContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the Kafka init container.
                    podDisruptionBudget:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata to apply to the `PodDisruptionBudgetTemplate` resource.
                        maxUnavailable:
                          type: integer
                          minimum: 0
                          description: "Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1."
                      description: Template for Kafka Connect `PodDisruptionBudget`.
                    serviceAccount:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for the Kafka Connect service account.
                    clusterRoleBinding:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for the Kafka Connect ClusterRoleBinding.
                    buildPod:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        imagePullSecrets:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                          description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                        securityContext:
                          type: object
                          properties:
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            fsGroup:
                              type: integer
                            fsGroupChangePolicy:
                              type: string
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxChangePolicy:
                              type: string
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            supplementalGroups:
                              type: array
                              items:
                                type: integer
                            supplementalGroupsPolicy:
                              type: string
                            sysctls:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Configures pod-level security attributes and common container settings.
                        terminationGracePeriodSeconds:
                          type: integer
                          minimum: 0
                          description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                        affinity:
                          type: object
                          properties:
                            nodeAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      preference:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: object
                                  properties:
                                    nodeSelectorTerms:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                            podAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                            podAntiAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                          description: The pod's affinity rules.
                        tolerations:
                          type: array
                          items:
                            type: object
                            properties:
                              effect:
                                type: string
                              key:
                                type: string
                              operator:
                                type: string
                              tolerationSeconds:
                                type: integer
                              value:
                                type: string
                          description: The pod's tolerations.
                        topologySpreadConstraints:
                          type: array
                          items:
                            type: object
                            properties:
                              labelSelector:
                                type: object
                                properties:
                                  matchExpressions:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        operator:
                                          type: string
                                        values:
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    type: object
                              matchLabelKeys:
                                type: array
                                items:
                                  type: string
                              maxSkew:
                                type: integer
                              minDomains:
                                type: integer
                              nodeAffinityPolicy:
                                type: string
                              nodeTaintsPolicy:
                                type: string
                              topologyKey:
                                type: string
                              whenUnsatisfiable:
                                type: string
                          description: The pod's topology spread constraints.
                        priorityClassName:
                          type: string
                          description: 'The name of the priority class used to assign priority to the pods. '
                        schedulerName:
                          type: string
                          description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                        hostAliases:
                          type: array
                          items:
                            type: object
                            properties:
                              hostnames:
                                type: array
                                items:
                                  type: string
                              ip:
                                type: string
                          description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                        dnsPolicy:
                          type: string
                          enum:
                            - ClusterFirst
                            - ClusterFirstWithHostNet
                            - Default
                            - None
                          description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                        dnsConfig:
                          type: object
                          properties:
                            nameservers:
                              type: array
                              items:
                                type: string
                            options:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            searches:
                              type: array
                              items:
                                type: string
                          description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                        enableServiceLinks:
                          type: boolean
                          description: Indicates whether information about services should be injected into Pod's environment variables.
                        tmpDirSizeLimit:
                          type: string
                          pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                          description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                        volumes:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Name to use for the volume. Required.
                              secret:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  optional:
                                    type: boolean
                                  secretName:
                                    type: string
                                description: '`Secret` to use to populate the volume.'
                              configMap:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                description: '`ConfigMap` to use to populate the volume.'
                              emptyDir:
                                type: object
                                properties:
                                  medium:
                                    type: string
                                    enum:
                                      - Memory
                                    description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                  sizeLimit:
                                    type: string
                                    pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                    description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                description: '`EmptyDir` to use to populate the volume.'
                              persistentVolumeClaim:
                                type: object
                                properties:
                                  claimName:
                                    type: string
                                  readOnly:
                                    type: boolean
                                description: '`PersistentVolumeClaim` object to use to populate the volume.'
                              csi:
                                type: object
                                properties:
                                  driver:
                                    type: string
                                  fsType:
                                    type: string
                                  nodePublishSecretRef:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                  readOnly:
                                    type: boolean
                                  volumeAttributes:
                                    additionalProperties:
                                      type: string
                                    type: object
                                description: '`CSIVolumeSource` object to use to populate the volume.'
                              image:
                                type: object
                                properties:
                                  pullPolicy:
                                    type: string
                                  reference:
                                    type: string
                                description: '`ImageVolumeSource` object to use to populate the volume.'
                            oneOf:
                              - properties:
                                  secret: {}
                                  configMap: {}
                                  emptyDir: {}
                                  persistentVolumeClaim: {}
                                  csi: {}
                                  image: {}
                          description: Additional volumes that can be mounted to the pod.
                        hostUsers:
                          type: boolean
                          description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                      description: Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes.
                    buildContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the Kafka Connect Build container. The build container is used only on Kubernetes.
                    buildConfig:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata to apply to the `PodDisruptionBudgetTemplate` resource.
                        pullSecret:
                          type: string
                          description: Container Registry Secret with the credentials for pulling the base image.
                      description: Template for the Kafka Connect BuildConfig used to build new container images. The BuildConfig is used only on OpenShift.
                    buildServiceAccount:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for the Kafka Connect Build service account.
                    jmxSecret:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for Secret of the Kafka Connect Cluster JMX authentication.
                  description: "Template for Kafka Connect and Kafka MirrorMaker 2 resources. The template allows users to specify how the `Pods`, `Service`, and other services are generated."
                build:
                  type: object
                  properties:
                    output:
                      type: object
                      properties:
                        additionalBuildOptions:
                          type: array
                          items:
                            type: string
                          description: "Configures additional options to pass to the `build` command of either Kaniko or Buildah (depending on the feature gate setting) when building a new Kafka Connect image. Allowed Kaniko options: --customPlatform, --custom-platform, --insecure, --insecure-pull, --insecure-registry, --log-format, --log-timestamp, --registry-mirror, --reproducible, --single-snapshot, --skip-tls-verify, --skip-tls-verify-pull, --skip-tls-verify-registry, --verbosity, --snapshotMode, --use-new-run, --registry-certificate, --registry-client-cert, --ignore-path. Allowed Buildah `build` options: --authfile, --cert-dir, --creds, --decryption-key, --retry, --retry-delay, --tls-verify. Those options are used only on Kubernetes, where Kaniko and Buildah are available. They are ignored on OpenShift. For more information, see the link:https://github.com/GoogleContainerTools/kaniko[Kaniko GitHub repository^] or the link:https://github.com/containers/buildah/blob/main/docs/buildah-build.1.md[Buildah build document^]. Changing this field does not trigger a rebuild of the Kafka Connect image."
                        additionalPushOptions:
                          type: array
                          items:
                            type: string
                          description: "Configures additional options to pass to the Buildah `push` command when pushing a new Connect image. Allowed options: --authfile, --cert-dir, --creds, --quiet, --retry, --retry-delay, --tls-verify. Those options are used only on Kubernetes, where Buildah is available. They are ignored on OpenShift. For more information, see the link:https://github.com/containers/buildah/blob/main/docs/buildah-push.1.md[Buildah push document^]. Changing this field does not trigger a rebuild of the Kafka Connect image."
                        image:
                          type: string
                          description: The name of the image which will be built. Required.
                        pushSecret:
                          type: string
                          description: Container Registry Secret with the credentials for pushing the newly built image.
                        type:
                          type: string
                          enum:
                            - docker
                            - imagestream
                          description: Output type. Must be either `docker` for pushing the newly build image to Docker compatible registry or `imagestream` for pushing the image to OpenShift ImageStream. Required.
                      required:
                        - image
                        - type
                      description: Configures where should the newly built image be stored. Required.
                    plugins:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            pattern: "^[a-z0-9][-_a-z0-9]*[a-z0-9]$"
                            description: "The unique name of the connector plugin. Will be used to generate the path where the connector artifacts will be stored. The name has to be unique within the KafkaConnect resource. The name has to follow the following pattern: `^[a-z][-_a-z0-9]*[a-z]$`. Required."
                          artifacts:
                            type: array
                            items:
                              type: object
                              properties:
                                artifact:
                                  type: string
                                  description: Maven artifact id. Applicable to the `maven` artifact type only.
                                fileName:
                                  type: string
                                  description: Name under which the artifact will be stored.
                                group:
                                  type: string
                                  description: Maven group id. Applicable to the `maven` artifact type only.
                                insecure:
                                  type: boolean
                                  description: "By default, connections using TLS are verified to check they are secure. The server certificate used must be valid, trusted, and contain the server name. By setting this option to `true`, all TLS verification is disabled and the artifact will be downloaded, even when the server is considered insecure."
                                repository:
                                  type: string
                                  description: Maven repository to download the artifact from. Applicable to the `maven` artifact type only.
                                sha512sum:
                                  type: string
                                  description: "SHA512 checksum of the artifact. Optional. If specified, the checksum will be verified while building the new container. If not specified, the downloaded artifact will not be verified. Not applicable to the `maven` artifact type. "
                                type:
                                  type: string
                                  enum:
                                    - jar
                                    - tgz
                                    - zip
                                    - maven
                                    - other
                                  description: "Artifact type. Currently, the supported artifact types are `tgz`, `jar`, `zip`, `other` and `maven`."
                                url:
                                  type: string
                                  pattern: "^(https?|ftp)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]$"
                                  description: "URL of the artifact which will be downloaded. Strimzi does not do any security scanning of the downloaded artifacts. For security reasons, you should first verify the artifacts manually and configure the checksum verification to make sure the same artifact is used in the automated build. Required for `jar`, `zip`, `tgz` and `other` artifacts. Not applicable to the `maven` artifact type."
                                version:
                                  type: string
                                  description: Maven version number. Applicable to the `maven` artifact type only.
                              required:
                                - type
                            description: List of artifacts which belong to this connector plugin. Required.
                        required:
                          - name
                          - artifacts
                      description: List of connector plugins which should be added to the Kafka Connect. Required.
                    resources:
                      type: object
                      properties:
                        claims:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                              request:
                                type: string
                        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
                      description: CPU and memory resources to reserve for the build.
                  required:
                    - output
                    - plugins
                  description: Configures how the Connect container image should be built. Optional.
                plugins:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        pattern: "^[a-z0-9][-_a-z0-9]*[a-z0-9]$"
                        description: "A unique name for the connector plugin. This name is used to generate the mount path for the connector artifacts. The name has to be unique within the KafkaConnect resource. The name must be unique within the `KafkaConnect` resource and match the pattern: `^[a-z][-_a-z0-9]*[a-z]$`. Required."
                      artifacts:
                        type: array
                        items:
                          type: object
                          properties:
                            pullPolicy:
                              type: string
                              description: |-
                                Policy that determines when the container image (OCI artifact) is pulled.

                                Possible values are:

                                * `Always`: Always pull the image. If the pull fails, container creation fails.
                                * `Never`: Never pull the image. Use only a locally available image. Container creation fails if the image isn’t present.
                                * `IfNotPresent`: Pull the image only if it’s not already available locally. Container creation fails if the image isn’t present and the pull fails.

                                Defaults to `Always` if `:latest` tag is specified, or `IfNotPresent` otherwise.
                            reference:
                              type: string
                              description: Reference to the container image (OCI artifact) containing the Kafka Connect plugin. The image is mounted as a volume and provides the plugin binary. Required.
                            type:
                              type: string
                              enum:
                                - image
                              description: "Artifact type. Currently, the only supported artifact type is `image`."
                          required:
                            - reference
                            - type
                        description: List of artifacts associated with this connector plugin. Required.
                    required:
                      - name
                      - artifacts
                  description: List of connector plugins to mount into the `KafkaConnect` pod.
              required:
                - replicas
                - bootstrapServers
                - groupId
                - configStorageTopic
                - statusStorageTopic
                - offsetStorageTopic
              description: The specification of the Kafka Connect cluster.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                url:
                  type: string
                  description: The URL of the REST API endpoint for managing and monitoring Kafka Connect connectors.
                connectorPlugins:
                  type: array
                  items:
                    type: object
                    properties:
                      class:
                        type: string
                        description: The class of the connector plugin.
                      type:
                        type: string
                        description: The type of the connector plugin. The available types are `sink` and `source`.
                      version:
                        type: string
                        description: The version of the connector plugin.
                  description: The list of connector plugins available in this Kafka Connect deployment.
                replicas:
                  type: integer
                  description: The current number of pods being used to provide this resource.
                labelSelector:
                  type: string
                  description: Label selector for pods providing this resource.
              description: The status of the Kafka Connect cluster.
          required:
            - spec

---
# Source: strimzi-kafka-operator/crds/042-Crd-strimzipodset.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: strimzipodsets.core.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: stirmzipodsets.core.strimzi.io-crd
spec:
  group: core.strimzi.io
  names:
    kind: StrimziPodSet
    listKind: StrimziPodSetList
    singular: strimzipodset
    plural: strimzipodsets
    shortNames:
      - sps
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
      additionalPrinterColumns:
        - name: Pods
          description: Number of pods managed by the StrimziPodSet
          jsonPath: .status.pods
          type: integer
        - name: Ready Pods
          description: Number of ready pods managed by the StrimziPodSet
          jsonPath: .status.readyPods
          type: integer
        - name: Current Pods
          description: Number of up-to-date pods managed by the StrimziPodSet
          jsonPath: .status.currentPods
          type: integer
        - name: Age
          description: Age of the StrimziPodSet
          jsonPath: .metadata.creationTimestamp
          type: date
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                selector:
                  type: object
                  properties:
                    matchExpressions:
                      type: array
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                          operator:
                            type: string
                          values:
                            type: array
                            items:
                              type: string
                    matchLabels:
                      additionalProperties:
                        type: string
                      type: object
                  description: "Selector is a label query which matches all the pods managed by this `StrimziPodSet`. Only `matchLabels` is supported. If `matchExpressions` is set, it will be ignored."
                pods:
                  type: array
                  items:
                    x-kubernetes-preserve-unknown-fields: true
                    type: object
                  description: The Pods managed by this StrimziPodSet.
              required:
                - selector
                - pods
              description: The specification of the StrimziPodSet.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                pods:
                  type: integer
                  description: Number of pods managed by this `StrimziPodSet` resource.
                readyPods:
                  type: integer
                  description: Number of pods managed by this `StrimziPodSet` resource that are ready.
                currentPods:
                  type: integer
                  description: Number of pods managed by this `StrimziPodSet` resource that have the current revision.
              description: The status of the StrimziPodSet.
          required:
            - spec

---
# Source: strimzi-kafka-operator/crds/043-Crd-kafkatopic.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kafkatopics.kafka.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: kafkatopics.kafka.strimzi.io-crd
spec:
  group: kafka.strimzi.io
  names:
    kind: KafkaTopic
    listKind: KafkaTopicList
    singular: kafkatopic
    plural: kafkatopics
    shortNames:
      - kt
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
      additionalPrinterColumns:
        - name: Cluster
          description: The name of the Kafka cluster this topic belongs to
          jsonPath: .metadata.labels.strimzi\.io/cluster
          type: string
        - name: Partitions
          description: The desired number of partitions in the topic
          jsonPath: .spec.partitions
          type: integer
        - name: Replication factor
          description: The desired number of replicas of each partition
          jsonPath: .spec.replicas
          type: integer
        - name: Ready
          description: The state of the custom resource
          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
          type: string
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                topicName:
                  type: string
                  description: The name of the topic. When absent this will default to the metadata.name of the topic. It is recommended to not set this unless the topic name is not a valid Kubernetes resource name.
                partitions:
                  type: integer
                  minimum: 1
                  description: "The number of partitions the topic should have. This cannot be decreased after topic creation. It can be increased after topic creation, but it is important to understand the consequences that has, especially for topics with semantic partitioning. When absent this will default to the broker configuration for `num.partitions`."
                replicas:
                  type: integer
                  minimum: 1
                  maximum: 32767
                  description: The number of replicas the topic should have. When absent this will default to the broker configuration for `default.replication.factor`.
                config:
                  x-kubernetes-preserve-unknown-fields: true
                  type: object
                  description: The topic configuration.
              description: The specification of the topic.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                topicName:
                  type: string
                  description: Topic name.
                topicId:
                  type: string
                  description: "The topic's id. For a KafkaTopic with the ready condition, this will change only if the topic gets deleted and recreated with the same name."
                replicasChange:
                  type: object
                  properties:
                    targetReplicas:
                      type: integer
                      description: The target replicas value requested by the user. This may be different from .spec.replicas when a change is ongoing.
                    state:
                      type: string
                      enum:
                        - pending
                        - ongoing
                      description: "Current state of the replicas change operation. This can be `pending`, when the change has been requested, or `ongoing`, when the change has been successfully submitted to Cruise Control."
                    message:
                      type: string
                      description: Message for the user related to the replicas change request. This may contain transient error messages that would disappear on periodic reconciliations.
                    sessionId:
                      type: string
                      description: The session identifier for replicas change requests pertaining to this KafkaTopic resource. This is used by the Topic Operator to track the status of `ongoing` replicas change operations.
                  description: Replication factor change status.
              description: The status of the topic.
          required:
            - spec

---
# Source: strimzi-kafka-operator/crds/044-Crd-kafkauser.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kafkausers.kafka.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: kafkausers.kafka.strimzi.io-crd
spec:
  group: kafka.strimzi.io
  names:
    kind: KafkaUser
    listKind: KafkaUserList
    singular: kafkauser
    plural: kafkausers
    shortNames:
      - ku
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
      additionalPrinterColumns:
        - name: Cluster
          description: The name of the Kafka cluster this user belongs to
          jsonPath: .metadata.labels.strimzi\.io/cluster
          type: string
        - name: Authentication
          description: How the user is authenticated
          jsonPath: .spec.authentication.type
          type: string
        - name: Authorization
          description: How the user is authorised
          jsonPath: .spec.authorization.type
          type: string
        - name: Ready
          description: The state of the custom resource
          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
          type: string
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                authentication:
                  type: object
                  properties:
                    password:
                      type: object
                      properties:
                        valueFrom:
                          type: object
                          properties:
                            secretKeyRef:
                              type: object
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                optional:
                                  type: boolean
                              description: Selects a key of a Secret in the resource's namespace.
                          description: Secret from which the password should be read.
                      required:
                        - valueFrom
                      description: "Specify the password for the user. If not set, a new password is generated by the User Operator."
                    type:
                      type: string
                      enum:
                        - tls
                        - tls-external
                        - scram-sha-512
                      description: Authentication type.
                  required:
                    - type
                  description: "Authentication mechanism enabled for this Kafka user. The supported authentication mechanisms are `scram-sha-512`, `tls`, and `tls-external`. \n\n* `scram-sha-512` generates a secret with SASL SCRAM-SHA-512 credentials.\n* `tls` generates a secret with user certificate for mutual TLS authentication.\n* `tls-external` does not generate a user certificate.   But prepares the user for using mutual TLS authentication using a user certificate generated outside the User Operator.\n  ACLs and quotas set for this user are configured in the `CN=<username>` format.\n\nAuthentication is optional. If authentication is not configured, no credentials are generated. ACLs and quotas set for the user are configured in the `<username>` format suitable for SASL authentication."
                authorization:
                  type: object
                  properties:
                    acls:
                      type: array
                      items:
                        type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - allow
                              - deny
                            description: The type of the rule. ACL rules with type `allow` are used to allow user to execute the specified operations. ACL rules with type `deny` are used to deny user to execute the specified operations. Default value is `allow`.
                          resource:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Name of resource for which given ACL rule applies. Can be combined with `patternType` field to use prefix pattern.
                              patternType:
                                type: string
                                enum:
                                  - literal
                                  - prefix
                                description: "Describes the pattern used in the resource field. The supported types are `literal` and `prefix`. With `literal` pattern type, the resource field will be used as a definition of a full name. With `prefix` pattern type, the resource name will be used only as a prefix. Default value is `literal`."
                              type:
                                type: string
                                enum:
                                  - topic
                                  - group
                                  - cluster
                                  - transactionalId
                                description: "Resource type. The available resource types are `topic`, `group`, `cluster`, and `transactionalId`."
                            required:
                              - type
                            description: Indicates the resource for which given ACL rule applies.
                          host:
                            type: string
                            description: "The host from which the action described in the ACL rule is allowed or denied. If not set, it defaults to `*`, allowing or denying the action from any host."
                          operations:
                            type: array
                            items:
                              type: string
                              enum:
                                - Read
                                - Write
                                - Create
                                - Delete
                                - Alter
                                - Describe
                                - ClusterAction
                                - AlterConfigs
                                - DescribeConfigs
                                - IdempotentWrite
                                - All
                            description: "List of operations to allow or deny. Supported operations are: Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite and All. Only certain operations work with the specified resource."
                        required:
                          - resource
                          - operations
                      description: List of ACL rules which should be applied to this user.
                    type:
                      type: string
                      enum:
                        - simple
                      description: Authorization type. Currently the only supported type is `simple`. `simple` authorization type uses the Kafka Admin API for managing the ACL rules.
                  required:
                    - acls
                    - type
                  description: Authorization rules for this Kafka user.
                quotas:
                  type: object
                  properties:
                    producerByteRate:
                      type: integer
                      minimum: 0
                      description: A quota on the maximum bytes per-second that each client group can publish to a broker before the clients in the group are throttled. Defined on a per-broker basis.
                    consumerByteRate:
                      type: integer
                      minimum: 0
                      description: A quota on the maximum bytes per-second that each client group can fetch from a broker before the clients in the group are throttled. Defined on a per-broker basis.
                    requestPercentage:
                      type: integer
                      minimum: 0
                      description: A quota on the maximum CPU utilization of each client group as a percentage of network and I/O threads.
                    controllerMutationRate:
                      type: number
                      minimum: 0
                      description: "A quota on the rate at which mutations are accepted for the create topics request, the create partitions request and the delete topics request. The rate is accumulated by the number of partitions created or deleted."
                  description: "Quotas on requests to control the broker resources used by clients. Network bandwidth and request rate quotas can be enforced. For more information, see the Apache Kafka design documentation about quotas."
                template:
                  type: object
                  properties:
                    secret:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for KafkaUser resources. The template allows users to specify how the `Secret` with password or TLS certificates is generated.
                  description: Template to specify how Kafka User `Secrets` are generated.
              description: The specification of the user.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                username:
                  type: string
                  description: Username.
                secret:
                  type: string
                  description: The name of `Secret` where the credentials are stored.
              description: The status of the Kafka User.
          required:
            - spec

---
# Source: strimzi-kafka-operator/crds/045-Crd-kafkanodepool.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kafkanodepools.kafka.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: kafkanodepools.kafka.strimzi.io-crd
spec:
  group: kafka.strimzi.io
  names:
    kind: KafkaNodePool
    listKind: KafkaNodePoolList
    singular: kafkanodepool
    plural: kafkanodepools
    shortNames:
      - knp
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
        scale:
          specReplicasPath: .spec.replicas
          statusReplicasPath: .status.replicas
          labelSelectorPath: .status.labelSelector
      additionalPrinterColumns:
        - name: Desired replicas
          description: The desired number of replicas
          jsonPath: .spec.replicas
          type: integer
        - name: Roles
          description: Roles of the nodes in the pool
          jsonPath: .status.roles
          type: string
        - name: NodeIds
          description: Node IDs used by Kafka nodes in this pool
          jsonPath: .status.nodeIds
          type: string
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                replicas:
                  type: integer
                  minimum: 0
                  description: The number of pods in the pool.
                storage:
                  type: object
                  properties:
                    class:
                      type: string
                      description: The storage class to use for dynamic volume allocation.
                    deleteClaim:
                      type: boolean
                      description: Specifies whether the persistent volume claim is deleted when a Kafka node is deleted. Optional. Defaults to `false`.
                    id:
                      type: integer
                      minimum: 0
                      description: Storage identification number. It is mandatory only for storage volumes defined in a storage of type 'jbod'.
                    kraftMetadata:
                      type: string
                      enum:
                        - shared
                      description: "Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set."
                    selector:
                      additionalProperties:
                        type: string
                      type: object
                      description: Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume.
                    size:
                      type: string
                      description: "When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`."
                    sizeLimit:
                      type: string
                      pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                      description: "When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi)."
                    type:
                      type: string
                      enum:
                        - ephemeral
                        - persistent-claim
                        - jbod
                      description: "Storage type, must be either 'ephemeral', 'persistent-claim', or 'jbod'."
                    volumeAttributesClass:
                      type: string
                      description: Specifies `VolumeAttributeClass` name for dynamically configuring storage attributes.
                    volumes:
                      type: array
                      items:
                        type: object
                        properties:
                          class:
                            type: string
                            description: The storage class to use for dynamic volume allocation.
                          deleteClaim:
                            type: boolean
                            description: Specifies whether the persistent volume claim is deleted when a Kafka node is deleted. Optional. Defaults to `false`.
                          id:
                            type: integer
                            minimum: 0
                            description: Storage identification number. Mandatory for storage volumes defined with a `jbod` storage type configuration.
                          kraftMetadata:
                            type: string
                            enum:
                              - shared
                            description: "Specifies whether this volume should be used for storing KRaft metadata. This property is optional. When set, the only currently supported value is `shared`. At most one volume can have this property set."
                          selector:
                            additionalProperties:
                              type: string
                            type: object
                            description: Specifies a specific persistent volume to use. It contains key:value pairs representing labels for selecting such a volume.
                          size:
                            type: string
                            description: "When `type=persistent-claim`, defines the size of the persistent volume claim, such as 100Gi. Mandatory when `type=persistent-claim`."
                          sizeLimit:
                            type: string
                            pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                            description: "When type=ephemeral, defines the total amount of local storage required for this EmptyDir volume (for example 1Gi)."
                          type:
                            type: string
                            enum:
                              - ephemeral
                              - persistent-claim
                            description: "Storage type, must be either 'ephemeral' or 'persistent-claim'."
                          volumeAttributesClass:
                            type: string
                            description: Specifies `VolumeAttributeClass` name for dynamically configuring storage attributes.
                        required:
                          - type
                      description: List of volumes as Storage objects representing the JBOD disks array.
                  required:
                    - type
                  description: Storage configuration (disk). Cannot be updated.
                roles:
                  type: array
                  items:
                    type: string
                    enum:
                      - controller
                      - broker
                  description: The roles assigned to the node pool. Supported values are `broker` and `controller`. This property is required.
                resources:
                  type: object
                  properties:
                    claims:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          request:
                            type: string
                    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
                  description: CPU and memory resources to reserve.
                jvmOptions:
                  type: object
                  properties:
                    "-XX":
                      additionalProperties:
                        type: string
                      type: object
                      description: A map of -XX options to the JVM.
                    "-Xmx":
                      type: string
                      pattern: "^[0-9]+[mMgG]?$"
                      description: -Xmx option to to the JVM.
                    "-Xms":
                      type: string
                      pattern: "^[0-9]+[mMgG]?$"
                      description: -Xms option to to the JVM.
                    gcLoggingEnabled:
                      type: boolean
                      description: Specifies whether the Garbage Collection logging is enabled. The default is false.
                    javaSystemProperties:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            description: The system property name.
                          value:
                            type: string
                            description: The system property value.
                      description: A map of additional system properties which will be passed using the `-D` option to the JVM.
                  description: JVM Options for pods.
                template:
                  type: object
                  properties:
                    podSet:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for Kafka `StrimziPodSet` resource.
                    pod:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        imagePullSecrets:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                          description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                        securityContext:
                          type: object
                          properties:
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            fsGroup:
                              type: integer
                            fsGroupChangePolicy:
                              type: string
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxChangePolicy:
                              type: string
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            supplementalGroups:
                              type: array
                              items:
                                type: integer
                            supplementalGroupsPolicy:
                              type: string
                            sysctls:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Configures pod-level security attributes and common container settings.
                        terminationGracePeriodSeconds:
                          type: integer
                          minimum: 0
                          description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                        affinity:
                          type: object
                          properties:
                            nodeAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      preference:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: object
                                  properties:
                                    nodeSelectorTerms:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                            podAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                            podAntiAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                          description: The pod's affinity rules.
                        tolerations:
                          type: array
                          items:
                            type: object
                            properties:
                              effect:
                                type: string
                              key:
                                type: string
                              operator:
                                type: string
                              tolerationSeconds:
                                type: integer
                              value:
                                type: string
                          description: The pod's tolerations.
                        topologySpreadConstraints:
                          type: array
                          items:
                            type: object
                            properties:
                              labelSelector:
                                type: object
                                properties:
                                  matchExpressions:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        operator:
                                          type: string
                                        values:
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    type: object
                              matchLabelKeys:
                                type: array
                                items:
                                  type: string
                              maxSkew:
                                type: integer
                              minDomains:
                                type: integer
                              nodeAffinityPolicy:
                                type: string
                              nodeTaintsPolicy:
                                type: string
                              topologyKey:
                                type: string
                              whenUnsatisfiable:
                                type: string
                          description: The pod's topology spread constraints.
                        priorityClassName:
                          type: string
                          description: 'The name of the priority class used to assign priority to the pods. '
                        schedulerName:
                          type: string
                          description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                        hostAliases:
                          type: array
                          items:
                            type: object
                            properties:
                              hostnames:
                                type: array
                                items:
                                  type: string
                              ip:
                                type: string
                          description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                        dnsPolicy:
                          type: string
                          enum:
                            - ClusterFirst
                            - ClusterFirstWithHostNet
                            - Default
                            - None
                          description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                        dnsConfig:
                          type: object
                          properties:
                            nameservers:
                              type: array
                              items:
                                type: string
                            options:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            searches:
                              type: array
                              items:
                                type: string
                          description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                        enableServiceLinks:
                          type: boolean
                          description: Indicates whether information about services should be injected into Pod's environment variables.
                        tmpDirSizeLimit:
                          type: string
                          pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                          description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                        volumes:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Name to use for the volume. Required.
                              secret:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  optional:
                                    type: boolean
                                  secretName:
                                    type: string
                                description: '`Secret` to use to populate the volume.'
                              configMap:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                description: '`ConfigMap` to use to populate the volume.'
                              emptyDir:
                                type: object
                                properties:
                                  medium:
                                    type: string
                                    enum:
                                      - Memory
                                    description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                  sizeLimit:
                                    type: string
                                    pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                    description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                description: '`EmptyDir` to use to populate the volume.'
                              persistentVolumeClaim:
                                type: object
                                properties:
                                  claimName:
                                    type: string
                                  readOnly:
                                    type: boolean
                                description: '`PersistentVolumeClaim` object to use to populate the volume.'
                              csi:
                                type: object
                                properties:
                                  driver:
                                    type: string
                                  fsType:
                                    type: string
                                  nodePublishSecretRef:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                  readOnly:
                                    type: boolean
                                  volumeAttributes:
                                    additionalProperties:
                                      type: string
                                    type: object
                                description: '`CSIVolumeSource` object to use to populate the volume.'
                              image:
                                type: object
                                properties:
                                  pullPolicy:
                                    type: string
                                  reference:
                                    type: string
                                description: '`ImageVolumeSource` object to use to populate the volume.'
                            oneOf:
                              - properties:
                                  secret: {}
                                  configMap: {}
                                  emptyDir: {}
                                  persistentVolumeClaim: {}
                                  csi: {}
                                  image: {}
                          description: Additional volumes that can be mounted to the pod.
                        hostUsers:
                          type: boolean
                          description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                      description: Template for Kafka `Pods`.
                    perPodService:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for Kafka per-pod `Services` used for access from outside of Kubernetes.
                    perPodRoute:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for Kafka per-pod `Routes` used for access from outside of OpenShift.
                    perPodIngress:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for Kafka per-pod `Ingress` used for access from outside of Kubernetes.
                    persistentVolumeClaim:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for all Kafka `PersistentVolumeClaims`.
                    kafkaContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the Kafka broker container.
                    initContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the Kafka init container.
                  description: Template for pool resources. The template allows users to specify how the resources belonging to this pool are generated.
              required:
                - replicas
                - storage
                - roles
              description: The specification of the KafkaNodePool.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                nodeIds:
                  type: array
                  items:
                    type: integer
                  description: Node IDs used by Kafka nodes in this pool.
                clusterId:
                  type: string
                  description: Kafka cluster ID.
                roles:
                  type: array
                  items:
                    type: string
                    enum:
                      - controller
                      - broker
                  description: The roles currently assigned to this pool.
                replicas:
                  type: integer
                  description: The current number of pods being used to provide this resource.
                labelSelector:
                  type: string
                  description: Label selector for pods providing this resource.
              description: The status of the KafkaNodePool.
          required:
            - spec

---
# Source: strimzi-kafka-operator/crds/046-Crd-kafkabridge.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kafkabridges.kafka.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: kafkabridges.kafka.strimzi.io-crd
spec:
  group: kafka.strimzi.io
  names:
    kind: KafkaBridge
    listKind: KafkaBridgeList
    singular: kafkabridge
    plural: kafkabridges
    shortNames:
      - kb
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
        scale:
          specReplicasPath: .spec.replicas
          statusReplicasPath: .status.replicas
          labelSelectorPath: .status.labelSelector
      additionalPrinterColumns:
        - name: Desired replicas
          description: The desired number of Kafka Bridge replicas
          jsonPath: .spec.replicas
          type: integer
        - name: Bootstrap Servers
          description: The boostrap servers
          jsonPath: .spec.bootstrapServers
          type: string
          priority: 1
        - name: Ready
          description: The state of the custom resource
          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
          type: string
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                replicas:
                  type: integer
                  minimum: 0
                  description: The number of pods in the `Deployment`. Required in the `v1` version of the Strimzi API. Defaults to `1` in the `v1beta2` version of the Strimzi API.
                image:
                  type: string
                  description: "The container image used for HTTP Bridge pods. If no image name is explicitly specified, the image name corresponds to the image specified in the Cluster Operator configuration. If an image name is not defined in the Cluster Operator configuration, a default value is used."
                bootstrapServers:
                  type: string
                  description: A list of host:port pairs for establishing the initial connection to the Kafka cluster.
                tls:
                  type: object
                  properties:
                    trustedCertificates:
                      type: array
                      items:
                        type: object
                        properties:
                          secretName:
                            type: string
                            description: The name of the Secret containing the certificate.
                          certificate:
                            type: string
                            description: The name of the file certificate in the secret.
                          pattern:
                            type: string
                            description: "Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used."
                        oneOf:
                          - properties:
                              certificate: {}
                            required:
                              - certificate
                          - properties:
                              pattern: {}
                            required:
                              - pattern
                        required:
                          - secretName
                      description: Trusted certificates for TLS connection.
                  description: TLS configuration for connecting HTTP Bridge to the cluster.
                authentication:
                  type: object
                  properties:
                    certificateAndKey:
                      type: object
                      properties:
                        secretName:
                          type: string
                          description: The name of the Secret containing the certificate.
                        certificate:
                          type: string
                          description: The name of the file certificate in the Secret.
                        key:
                          type: string
                          description: "The name of the private key in the secret. The private key must be in unencrypted PKCS #8 format. For more information, see RFC 5208: https://datatracker.ietf.org/doc/html/rfc5208."
                      required:
                        - secretName
                        - certificate
                        - key
                      description: Reference to the `Secret` which holds the certificate and private key pair.
                    config:
                      x-kubernetes-preserve-unknown-fields: true
                      type: object
                      description: Configuration for the custom authentication mechanism. Only properties with the `sasl.` and `ssl.keystore.` prefixes are allowed. Specify other options in the regular configuration section of the custom resource.
                    passwordSecret:
                      type: object
                      properties:
                        secretName:
                          type: string
                          description: The name of the Secret containing the password.
                        password:
                          type: string
                          description: The name of the key in the Secret under which the password is stored.
                      required:
                        - secretName
                        - password
                      description: Reference to the `Secret` which holds the password.
                    sasl:
                      type: boolean
                      description: Enable or disable SASL on this authentication mechanism.
                    type:
                      type: string
                      enum:
                        - tls
                        - scram-sha-256
                        - scram-sha-512
                        - plain
                        - custom
                      description: "Specifies the authentication type. Supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, 'oauth', and `custom`. `tls` uses TLS client authentication and is supported only over TLS connections. `scram-sha-256` and `scram-sha-512` use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 authentication, respectively. `plain` uses SASL PLAIN authentication. `oauth` uses SASL OAUTHBEARER authentication. `custom` allows you to configure a custom authentication mechanism. As of Strimzi 0.49.0, `oauth` type is deprecated and will be removed in the `v1` API version. Please use `custom` type instead."
                    username:
                      type: string
                      description: Username used for the authentication.
                  required:
                    - type
                  description: Authentication configuration for connecting to the cluster.
                http:
                  type: object
                  properties:
                    port:
                      type: integer
                      minimum: 1023
                      description: Port the server listens on.
                    tls:
                      type: object
                      properties:
                        certificateAndKey:
                          type: object
                          properties:
                            secretName:
                              type: string
                              description: The name of the Secret containing the certificate.
                            certificate:
                              type: string
                              description: The name of the file certificate in the Secret.
                            key:
                              type: string
                              description: "The name of the private key in the secret. The private key must be in unencrypted PKCS #8 format. For more information, see RFC 5208: https://datatracker.ietf.org/doc/html/rfc5208."
                          required:
                            - secretName
                            - certificate
                            - key
                          description: Reference to the `Secret` which holds the certificate and private key pair.
                        config:
                          x-kubernetes-preserve-unknown-fields: true
                          type: object
                          description: "Additional configuration for the HTTP server TLS. Properties with the following prefixes cannot be set: ssl. (with the exception of: ssl.enabled.cipher.suites, ssl.enabled.protocols)."
                      required:
                        - certificateAndKey
                      description: TLS configuration for clients connections to the HTTP Bridge.
                    cors:
                      type: object
                      properties:
                        allowedOrigins:
                          type: array
                          items:
                            type: string
                          description: List of allowed origins. Java regular expressions can be used.
                        allowedMethods:
                          type: array
                          items:
                            type: string
                          description: List of allowed HTTP methods.
                      required:
                        - allowedOrigins
                        - allowedMethods
                      description: CORS configuration for the HTTP Bridge.
                  description: The HTTP related configuration.
                adminClient:
                  type: object
                  properties:
                    config:
                      x-kubernetes-preserve-unknown-fields: true
                      type: object
                      description: The Kafka AdminClient configuration used for AdminClient instances created by the bridge.
                  description: Kafka AdminClient related configuration.
                consumer:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      description: Whether the HTTP consumer should be enabled or disabled. The default is enabled (`true`).
                    timeoutSeconds:
                      type: integer
                      description: "The timeout in seconds for deleting inactive consumers, default is -1 (disabled)."
                    config:
                      x-kubernetes-preserve-unknown-fields: true
                      type: object
                      description: "The Kafka consumer configuration used for consumer instances created by the bridge. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, group.id, sasl., security. (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols)."
                  description: Kafka consumer related configuration.
                producer:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      description: Whether the HTTP producer should be enabled or disabled. The default is enabled (`true`).
                    config:
                      x-kubernetes-preserve-unknown-fields: true
                      type: object
                      description: "The Kafka producer configuration used for producer instances created by the bridge. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, sasl., security. (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols)."
                  description: Kafka producer related configuration.
                resources:
                  type: object
                  properties:
                    claims:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          request:
                            type: string
                    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
                  description: CPU and memory resources to reserve.
                jvmOptions:
                  type: object
                  properties:
                    "-XX":
                      additionalProperties:
                        type: string
                      type: object
                      description: A map of -XX options to the JVM.
                    "-Xmx":
                      type: string
                      pattern: "^[0-9]+[mMgG]?$"
                      description: -Xmx option to to the JVM.
                    "-Xms":
                      type: string
                      pattern: "^[0-9]+[mMgG]?$"
                      description: -Xms option to to the JVM.
                    gcLoggingEnabled:
                      type: boolean
                      description: Specifies whether the Garbage Collection logging is enabled. The default is false.
                    javaSystemProperties:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            description: The system property name.
                          value:
                            type: string
                            description: The system property value.
                      description: A map of additional system properties which will be passed using the `-D` option to the JVM.
                  description: JVM Options for pods.
                logging:
                  type: object
                  properties:
                    loggers:
                      additionalProperties:
                        type: string
                      type: object
                      description: A Map from logger name to logger level.
                    type:
                      type: string
                      enum:
                        - inline
                        - external
                      description: "Logging type, must be either 'inline' or 'external'."
                    valueFrom:
                      type: object
                      properties:
                        configMapKeyRef:
                          type: object
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          description: Reference to the key in the ConfigMap containing the configuration.
                      description: '`ConfigMap` entry where the logging configuration is stored. '
                  required:
                    - type
                  description: Logging configuration for HTTP Bridge.
                clientRackInitImage:
                  type: string
                  description: The image of the init container used for initializing the `client.rack`.
                rack:
                  type: object
                  properties:
                    envVarName:
                      type: string
                      description: The name of the environment variable that defines the rack ID. Its value sets the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect or MirrorMaker 2.
                    topologyKey:
                      type: string
                      example: topology.kubernetes.io/zone
                      description: "A key that matches labels assigned to the Kubernetes cluster nodes. The value of the label is used to set a broker's `broker.rack` config, and the `client.rack` config for Kafka Connect or MirrorMaker 2."
                    type:
                      type: string
                      enum:
                        - topology-label
                        - environment-variable
                      description: "Specifies the rack awareness type. Supported types are `topology-label` and `environment-variable`. `topology-label` uses a Kubernetes worker node label to set the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect and MirrorMaker 2. `environment-variable` uses an environment variable to set the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect and MirrorMaker 2. When not specified, `topology-label` type is used by default."
                  description: Configuration of the node label which will be used as the client.rack consumer configuration.
                  x-kubernetes-validations:
                    - rule: (has(self.type) && self.type != "topology-label") || self.topologyKey != ""
                      message: topologyKey property is required
                    - rule: has(self.type) == false || self.type != "environment-variable" || self.envVarName != ""
                      message: envVarName property is required
                metricsConfig:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - jmxPrometheusExporter
                        - strimziMetricsReporter
                      description: Metrics type. The supported types are `jmxPrometheusExporter` and `strimziMetricsReporter`. Type `jmxPrometheusExporter` uses the Prometheus JMX Exporter to expose Kafka JMX metrics in Prometheus format through an HTTP endpoint. Type `strimziMetricsReporter` uses the Strimzi Metrics Reporter to directly expose Kafka metrics in Prometheus format through an HTTP endpoint.
                    valueFrom:
                      type: object
                      properties:
                        configMapKeyRef:
                          type: object
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          description: Reference to the key in the ConfigMap containing the configuration.
                      description: ConfigMap entry where the Prometheus JMX Exporter configuration is stored.
                    values:
                      type: object
                      properties:
                        allowList:
                          type: array
                          items:
                            type: string
                          description: A list of regex patterns to filter the metrics to collect. Should contain at least one element.
                      description: Configuration values for the Strimzi Metrics Reporter.
                  required:
                    - type
                  description: Metrics configuration.
                  x-kubernetes-validations:
                    - rule: self.type != 'jmxPrometheusExporter' || has(self.valueFrom)
                      message: valueFrom property is required
                livenessProbe:
                  type: object
                  properties:
                    initialDelaySeconds:
                      type: integer
                      minimum: 0
                      description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                    timeoutSeconds:
                      type: integer
                      minimum: 1
                      description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                    periodSeconds:
                      type: integer
                      minimum: 1
                      description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                    successThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                    failureThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                  description: Pod liveness checking.
                readinessProbe:
                  type: object
                  properties:
                    initialDelaySeconds:
                      type: integer
                      minimum: 0
                      description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                    timeoutSeconds:
                      type: integer
                      minimum: 1
                      description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                    periodSeconds:
                      type: integer
                      minimum: 1
                      description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                    successThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                    failureThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                  description: Pod readiness checking.
                template:
                  type: object
                  properties:
                    deployment:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        deploymentStrategy:
                          type: string
                          enum:
                            - RollingUpdate
                            - Recreate
                          description: Pod replacement strategy for deployment configuration changes. Valid values are `RollingUpdate` and `Recreate`. Defaults to `RollingUpdate`.
                      description: Template for HTTP Bridge `Deployment`.
                    pod:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        imagePullSecrets:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                          description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                        securityContext:
                          type: object
                          properties:
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            fsGroup:
                              type: integer
                            fsGroupChangePolicy:
                              type: string
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxChangePolicy:
                              type: string
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            supplementalGroups:
                              type: array
                              items:
                                type: integer
                            supplementalGroupsPolicy:
                              type: string
                            sysctls:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Configures pod-level security attributes and common container settings.
                        terminationGracePeriodSeconds:
                          type: integer
                          minimum: 0
                          description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                        affinity:
                          type: object
                          properties:
                            nodeAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      preference:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: object
                                  properties:
                                    nodeSelectorTerms:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                            podAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                            podAntiAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                          description: The pod's affinity rules.
                        tolerations:
                          type: array
                          items:
                            type: object
                            properties:
                              effect:
                                type: string
                              key:
                                type: string
                              operator:
                                type: string
                              tolerationSeconds:
                                type: integer
                              value:
                                type: string
                          description: The pod's tolerations.
                        topologySpreadConstraints:
                          type: array
                          items:
                            type: object
                            properties:
                              labelSelector:
                                type: object
                                properties:
                                  matchExpressions:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        operator:
                                          type: string
                                        values:
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    type: object
                              matchLabelKeys:
                                type: array
                                items:
                                  type: string
                              maxSkew:
                                type: integer
                              minDomains:
                                type: integer
                              nodeAffinityPolicy:
                                type: string
                              nodeTaintsPolicy:
                                type: string
                              topologyKey:
                                type: string
                              whenUnsatisfiable:
                                type: string
                          description: The pod's topology spread constraints.
                        priorityClassName:
                          type: string
                          description: 'The name of the priority class used to assign priority to the pods. '
                        schedulerName:
                          type: string
                          description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                        hostAliases:
                          type: array
                          items:
                            type: object
                            properties:
                              hostnames:
                                type: array
                                items:
                                  type: string
                              ip:
                                type: string
                          description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                        dnsPolicy:
                          type: string
                          enum:
                            - ClusterFirst
                            - ClusterFirstWithHostNet
                            - Default
                            - None
                          description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                        dnsConfig:
                          type: object
                          properties:
                            nameservers:
                              type: array
                              items:
                                type: string
                            options:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            searches:
                              type: array
                              items:
                                type: string
                          description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                        enableServiceLinks:
                          type: boolean
                          description: Indicates whether information about services should be injected into Pod's environment variables.
                        tmpDirSizeLimit:
                          type: string
                          pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                          description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                        volumes:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Name to use for the volume. Required.
                              secret:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  optional:
                                    type: boolean
                                  secretName:
                                    type: string
                                description: '`Secret` to use to populate the volume.'
                              configMap:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                description: '`ConfigMap` to use to populate the volume.'
                              emptyDir:
                                type: object
                                properties:
                                  medium:
                                    type: string
                                    enum:
                                      - Memory
                                    description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                  sizeLimit:
                                    type: string
                                    pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                    description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                description: '`EmptyDir` to use to populate the volume.'
                              persistentVolumeClaim:
                                type: object
                                properties:
                                  claimName:
                                    type: string
                                  readOnly:
                                    type: boolean
                                description: '`PersistentVolumeClaim` object to use to populate the volume.'
                              csi:
                                type: object
                                properties:
                                  driver:
                                    type: string
                                  fsType:
                                    type: string
                                  nodePublishSecretRef:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                  readOnly:
                                    type: boolean
                                  volumeAttributes:
                                    additionalProperties:
                                      type: string
                                    type: object
                                description: '`CSIVolumeSource` object to use to populate the volume.'
                              image:
                                type: object
                                properties:
                                  pullPolicy:
                                    type: string
                                  reference:
                                    type: string
                                description: '`ImageVolumeSource` object to use to populate the volume.'
                            oneOf:
                              - properties:
                                  secret: {}
                                  configMap: {}
                                  emptyDir: {}
                                  persistentVolumeClaim: {}
                                  csi: {}
                                  image: {}
                          description: Additional volumes that can be mounted to the pod.
                        hostUsers:
                          type: boolean
                          description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                      description: Template for HTTP Bridge `Pods`.
                    apiService:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        ipFamilyPolicy:
                          type: string
                          enum:
                            - SingleStack
                            - PreferDualStack
                            - RequireDualStack
                          description: "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type."
                        ipFamilies:
                          type: array
                          items:
                            type: string
                            enum:
                              - IPv4
                              - IPv6
                          description: "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting."
                      description: Template for HTTP Bridge API `Service`.
                    podDisruptionBudget:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata to apply to the `PodDisruptionBudgetTemplate` resource.
                        maxUnavailable:
                          type: integer
                          minimum: 0
                          description: "Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1."
                      description: Template for HTTP Bridge `PodDisruptionBudget`.
                    bridgeContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the HTTP Bridge container.
                    clusterRoleBinding:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for the HTTP Bridge ClusterRoleBinding.
                    serviceAccount:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for the HTTP Bridge service account.
                    initContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the HTTP Bridge init container.
                  description: Template for HTTP Bridge resources. The template allows users to specify how a `Deployment` and `Pod` is generated.
                tracing:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - opentelemetry
                      description: "Type of the tracing used. Currently the only supported type is `opentelemetry` for OpenTelemetry tracing. As of Strimzi 0.37.0, `jaeger` type is not supported anymore and this option is ignored."
                  required:
                    - type
                  description: The configuration of tracing in HTTP Bridge.
                config:
                  x-kubernetes-preserve-unknown-fields: true
                  type: object
                  description: "Additional configuration for the HTTP bridge. The following prefixes cannot be set: kafka., http., bridge.metrics. The following options cannot be set: bridge.id, bridge.tracing, bridge.metrics."
              required:
                - replicas
                - bootstrapServers
              description: The specification of the HTTP Bridge.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                url:
                  type: string
                  description: The URL at which external client applications can access the HTTP Bridge.
                replicas:
                  type: integer
                  description: The current number of pods being used to provide this resource.
                labelSelector:
                  type: string
                  description: Label selector for pods providing this resource.
              description: The status of the HTTP Bridge.
          required:
            - spec

---
# Source: strimzi-kafka-operator/crds/047-Crd-kafkaconnector.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kafkaconnectors.kafka.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: kafkaconnectors.kafka.strimzi.io-crd
spec:
  group: kafka.strimzi.io
  names:
    kind: KafkaConnector
    listKind: KafkaConnectorList
    singular: kafkaconnector
    plural: kafkaconnectors
    shortNames:
      - kctr
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
        scale:
          specReplicasPath: .spec.tasksMax
          statusReplicasPath: .status.tasksMax
      additionalPrinterColumns:
        - name: Cluster
          description: The name of the Kafka Connect cluster this connector belongs to
          jsonPath: .metadata.labels.strimzi\.io/cluster
          type: string
        - name: Connector class
          description: The class used by this connector
          jsonPath: .spec.class
          type: string
        - name: Max Tasks
          description: Maximum number of tasks
          jsonPath: .spec.tasksMax
          type: integer
        - name: Ready
          description: The state of the custom resource
          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
          type: string
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                class:
                  type: string
                  description: The Class for the Kafka Connector.
                tasksMax:
                  type: integer
                  minimum: 1
                  description: The maximum number of tasks for the Kafka Connector.
                autoRestart:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      description: Whether automatic restart for failed connectors and tasks should be enabled or disabled.
                    maxRestarts:
                      type: integer
                      description: "The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts."
                  description: Automatic restart of connector and tasks configuration.
                version:
                  type: string
                  description: Desired version or version range to respect when starting the Kafka Connector. This is only supported when using Kafka Connect version 4.1.0 and higher.
                config:
                  x-kubernetes-preserve-unknown-fields: true
                  type: object
                  description: "The Kafka Connector configuration. The following properties cannot be set: name, connector.class, tasks.max, connector.plugin.version."
                state:
                  type: string
                  enum:
                    - paused
                    - stopped
                    - running
                  description: The state the connector should be in. Defaults to running.
                listOffsets:
                  type: object
                  properties:
                    toConfigMap:
                      type: object
                      properties:
                        name:
                          type: string
                      description: Reference to the ConfigMap where the list of offsets will be written to.
                  required:
                    - toConfigMap
                  description: Configuration for listing offsets.
                alterOffsets:
                  type: object
                  properties:
                    fromConfigMap:
                      type: object
                      properties:
                        name:
                          type: string
                      description: Reference to the ConfigMap where the new offsets are stored.
                  required:
                    - fromConfigMap
                  description: Configuration for altering offsets.
              description: The specification of the Kafka Connector.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                autoRestart:
                  type: object
                  properties:
                    count:
                      type: integer
                      description: The number of times the connector or task is restarted.
                    connectorName:
                      type: string
                      description: The name of the connector being restarted.
                    lastRestartTimestamp:
                      type: string
                      description: The last time the automatic restart was attempted. The required format is 'yyyy-MM-ddTHH:mm:ssZ' in the UTC time zone.
                  description: The auto restart status.
                connectorStatus:
                  x-kubernetes-preserve-unknown-fields: true
                  type: object
                  description: "The connector status, as reported by the Kafka Connect REST API."
                tasksMax:
                  type: integer
                  description: The maximum number of tasks for the Kafka Connector.
                topics:
                  type: array
                  items:
                    type: string
                  description: The list of topics used by the Kafka Connector.
              description: The status of the Kafka Connector.
          required:
            - spec

---
# Source: strimzi-kafka-operator/crds/048-Crd-kafkamirrormaker2.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kafkamirrormaker2s.kafka.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: kafkamirrormaker2.kafka.strimzi.io-crd
spec:
  group: kafka.strimzi.io
  names:
    kind: KafkaMirrorMaker2
    listKind: KafkaMirrorMaker2List
    singular: kafkamirrormaker2
    plural: kafkamirrormaker2s
    shortNames:
      - kmm2
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
        scale:
          specReplicasPath: .spec.replicas
          statusReplicasPath: .status.replicas
          labelSelectorPath: .status.labelSelector
      additionalPrinterColumns:
        - name: Desired replicas
          description: The desired number of Kafka MirrorMaker 2 replicas
          jsonPath: .spec.replicas
          type: integer
        - name: Ready
          description: The state of the custom resource
          jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
          type: string
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                version:
                  type: string
                  description: The Kafka Connect version. Defaults to the latest version. Consult the user documentation to understand the process required to upgrade or downgrade the version.
                replicas:
                  type: integer
                  description: The number of pods in the Kafka Connect group. Required in the `v1` version of the Strimzi API. Defaults to `3` in the `v1beta2` version of the Strimzi API.
                image:
                  type: string
                  description: "The container image used for Kafka Connect pods. If no image name is explicitly specified, it is determined based on the `spec.version` configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration."
                target:
                  type: object
                  properties:
                    alias:
                      type: string
                      pattern: "^[a-zA-Z0-9\\._\\-]{1,100}$"
                      description: Alias used to reference the Kafka cluster.
                    bootstrapServers:
                      type: string
                      description: A comma-separated list of `host:port` pairs for establishing the connection to the Kafka cluster.
                    groupId:
                      type: string
                      description: A unique ID that identifies the Connect cluster group. Required.
                    configStorageTopic:
                      type: string
                      description: The name of the Kafka topic where connector configurations are stored. Required.
                    statusStorageTopic:
                      type: string
                      description: The name of the Kafka topic where connector and task statuses are stored. Required.
                    offsetStorageTopic:
                      type: string
                      description: The name of the Kafka topic where source connector offsets are stored. Required.
                    tls:
                      type: object
                      properties:
                        trustedCertificates:
                          type: array
                          items:
                            type: object
                            properties:
                              secretName:
                                type: string
                                description: The name of the Secret containing the certificate.
                              certificate:
                                type: string
                                description: The name of the file certificate in the secret.
                              pattern:
                                type: string
                                description: "Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used."
                            oneOf:
                              - properties:
                                  certificate: {}
                                required:
                                  - certificate
                              - properties:
                                  pattern: {}
                                required:
                                  - pattern
                            required:
                              - secretName
                          description: Trusted certificates for TLS connection.
                      description: TLS configuration for connecting MirrorMaker 2 connectors to a cluster.
                    authentication:
                      type: object
                      properties:
                        certificateAndKey:
                          type: object
                          properties:
                            secretName:
                              type: string
                              description: The name of the Secret containing the certificate.
                            certificate:
                              type: string
                              description: The name of the file certificate in the Secret.
                            key:
                              type: string
                              description: "The name of the private key in the secret. The private key must be in unencrypted PKCS #8 format. For more information, see RFC 5208: https://datatracker.ietf.org/doc/html/rfc5208."
                          required:
                            - secretName
                            - certificate
                            - key
                          description: Reference to the `Secret` which holds the certificate and private key pair.
                        config:
                          x-kubernetes-preserve-unknown-fields: true
                          type: object
                          description: Configuration for the custom authentication mechanism. Only properties with the `sasl.` and `ssl.keystore.` prefixes are allowed. Specify other options in the regular configuration section of the custom resource.
                        passwordSecret:
                          type: object
                          properties:
                            secretName:
                              type: string
                              description: The name of the Secret containing the password.
                            password:
                              type: string
                              description: The name of the key in the Secret under which the password is stored.
                          required:
                            - secretName
                            - password
                          description: Reference to the `Secret` which holds the password.
                        sasl:
                          type: boolean
                          description: Enable or disable SASL on this authentication mechanism.
                        type:
                          type: string
                          enum:
                            - tls
                            - scram-sha-256
                            - scram-sha-512
                            - plain
                            - custom
                          description: "Specifies the authentication type. Supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, 'oauth', and `custom`. `tls` uses TLS client authentication and is supported only over TLS connections. `scram-sha-256` and `scram-sha-512` use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 authentication, respectively. `plain` uses SASL PLAIN authentication. `oauth` uses SASL OAUTHBEARER authentication. `custom` allows you to configure a custom authentication mechanism. As of Strimzi 0.49.0, `oauth` type is deprecated and will be removed in the `v1` API version. Please use `custom` type instead."
                        username:
                          type: string
                          description: Username used for the authentication.
                      required:
                        - type
                      description: Authentication configuration for connecting to the cluster.
                    config:
                      x-kubernetes-preserve-unknown-fields: true
                      type: object
                      description: "The MirrorMaker 2 cluster config. Properties with the following prefixes cannot be set: group.id, config.storage.topic, offset.storage.topic, status.storage.topic, ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols)."
                  required:
                    - alias
                    - bootstrapServers
                    - groupId
                    - configStorageTopic
                    - statusStorageTopic
                    - offsetStorageTopic
                  description: The target Apache Kafka cluster. The target Kafka cluster is used by the underlying Kafka Connect framework for its internal topics.
                mirrors:
                  type: array
                  items:
                    type: object
                    properties:
                      source:
                        type: object
                        properties:
                          alias:
                            type: string
                            pattern: "^[a-zA-Z0-9\\._\\-]{1,100}$"
                            description: Alias used to reference the Kafka cluster.
                          bootstrapServers:
                            type: string
                            description: A comma-separated list of `host:port` pairs for establishing the connection to the Kafka cluster.
                          tls:
                            type: object
                            properties:
                              trustedCertificates:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    secretName:
                                      type: string
                                      description: The name of the Secret containing the certificate.
                                    certificate:
                                      type: string
                                      description: The name of the file certificate in the secret.
                                    pattern:
                                      type: string
                                      description: "Pattern for the certificate files in the secret. Use the link:https://en.wikipedia.org/wiki/Glob_(programming)[_glob syntax_] for the pattern. All files in the secret that match the pattern are used."
                                  oneOf:
                                    - properties:
                                        certificate: {}
                                      required:
                                        - certificate
                                    - properties:
                                        pattern: {}
                                      required:
                                        - pattern
                                  required:
                                    - secretName
                                description: Trusted certificates for TLS connection.
                            description: TLS configuration for connecting MirrorMaker 2 connectors to a cluster.
                          authentication:
                            type: object
                            properties:
                              certificateAndKey:
                                type: object
                                properties:
                                  secretName:
                                    type: string
                                    description: The name of the Secret containing the certificate.
                                  certificate:
                                    type: string
                                    description: The name of the file certificate in the Secret.
                                  key:
                                    type: string
                                    description: "The name of the private key in the secret. The private key must be in unencrypted PKCS #8 format. For more information, see RFC 5208: https://datatracker.ietf.org/doc/html/rfc5208."
                                required:
                                  - secretName
                                  - certificate
                                  - key
                                description: Reference to the `Secret` which holds the certificate and private key pair.
                              config:
                                x-kubernetes-preserve-unknown-fields: true
                                type: object
                                description: Configuration for the custom authentication mechanism. Only properties with the `sasl.` and `ssl.keystore.` prefixes are allowed. Specify other options in the regular configuration section of the custom resource.
                              passwordSecret:
                                type: object
                                properties:
                                  secretName:
                                    type: string
                                    description: The name of the Secret containing the password.
                                  password:
                                    type: string
                                    description: The name of the key in the Secret under which the password is stored.
                                required:
                                  - secretName
                                  - password
                                description: Reference to the `Secret` which holds the password.
                              sasl:
                                type: boolean
                                description: Enable or disable SASL on this authentication mechanism.
                              type:
                                type: string
                                enum:
                                  - tls
                                  - scram-sha-256
                                  - scram-sha-512
                                  - plain
                                  - custom
                                description: "Specifies the authentication type. Supported types are `tls`, `scram-sha-256`, `scram-sha-512`, `plain`, 'oauth', and `custom`. `tls` uses TLS client authentication and is supported only over TLS connections. `scram-sha-256` and `scram-sha-512` use SASL SCRAM-SHA-256 and SASL SCRAM-SHA-512 authentication, respectively. `plain` uses SASL PLAIN authentication. `oauth` uses SASL OAUTHBEARER authentication. `custom` allows you to configure a custom authentication mechanism. As of Strimzi 0.49.0, `oauth` type is deprecated and will be removed in the `v1` API version. Please use `custom` type instead."
                              username:
                                type: string
                                description: Username used for the authentication.
                            required:
                              - type
                            description: Authentication configuration for connecting to the cluster.
                          config:
                            x-kubernetes-preserve-unknown-fields: true
                            type: object
                            description: "The MirrorMaker 2 cluster config. Properties with the following prefixes cannot be set: group.id, config.storage.topic, offset.storage.topic, status.storage.topic, ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols)."
                        required:
                          - alias
                          - bootstrapServers
                        description: The source Apache Kafka cluster. The source Kafka cluster is used by the Kafka MirrorMaker 2 connectors.
                      sourceConnector:
                        type: object
                        properties:
                          tasksMax:
                            type: integer
                            minimum: 1
                            description: The maximum number of tasks for the Kafka Connector.
                          version:
                            type: string
                            description: Desired version or version range to respect when starting the Kafka Connector. This is only supported when using Kafka Connect version 4.1.0 and higher.
                          config:
                            x-kubernetes-preserve-unknown-fields: true
                            type: object
                            description: "The Kafka Connector configuration. The following properties cannot be set: name, connector.class, tasks.max, connector.plugin.version."
                          state:
                            type: string
                            enum:
                              - paused
                              - stopped
                              - running
                            description: The state the connector should be in. Defaults to running.
                          autoRestart:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Whether automatic restart for failed connectors and tasks should be enabled or disabled.
                              maxRestarts:
                                type: integer
                                description: "The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts."
                            description: Automatic restart of connector and tasks configuration.
                          listOffsets:
                            type: object
                            properties:
                              toConfigMap:
                                type: object
                                properties:
                                  name:
                                    type: string
                                description: Reference to the ConfigMap where the list of offsets will be written to.
                            required:
                              - toConfigMap
                            description: Configuration for listing offsets.
                          alterOffsets:
                            type: object
                            properties:
                              fromConfigMap:
                                type: object
                                properties:
                                  name:
                                    type: string
                                description: Reference to the ConfigMap where the new offsets are stored.
                            required:
                              - fromConfigMap
                            description: Configuration for altering offsets.
                        description: The specification of the Kafka MirrorMaker 2 source connector.
                      checkpointConnector:
                        type: object
                        properties:
                          tasksMax:
                            type: integer
                            minimum: 1
                            description: The maximum number of tasks for the Kafka Connector.
                          version:
                            type: string
                            description: Desired version or version range to respect when starting the Kafka Connector. This is only supported when using Kafka Connect version 4.1.0 and higher.
                          config:
                            x-kubernetes-preserve-unknown-fields: true
                            type: object
                            description: "The Kafka Connector configuration. The following properties cannot be set: name, connector.class, tasks.max, connector.plugin.version."
                          state:
                            type: string
                            enum:
                              - paused
                              - stopped
                              - running
                            description: The state the connector should be in. Defaults to running.
                          autoRestart:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                                description: Whether automatic restart for failed connectors and tasks should be enabled or disabled.
                              maxRestarts:
                                type: integer
                                description: "The maximum number of connector restarts that the operator will try. If the connector remains in a failed state after reaching this limit, it must be restarted manually by the user. Defaults to an unlimited number of restarts."
                            description: Automatic restart of connector and tasks configuration.
                          listOffsets:
                            type: object
                            properties:
                              toConfigMap:
                                type: object
                                properties:
                                  name:
                                    type: string
                                description: Reference to the ConfigMap where the list of offsets will be written to.
                            required:
                              - toConfigMap
                            description: Configuration for listing offsets.
                          alterOffsets:
                            type: object
                            properties:
                              fromConfigMap:
                                type: object
                                properties:
                                  name:
                                    type: string
                                description: Reference to the ConfigMap where the new offsets are stored.
                            required:
                              - fromConfigMap
                            description: Configuration for altering offsets.
                        description: The specification of the Kafka MirrorMaker 2 checkpoint connector.
                      topicsPattern:
                        type: string
                        description: "A regular expression matching the topics to be mirrored, for example, \"topic1\\|topic2\\|topic3\". Comma-separated lists are also supported."
                      topicsExcludePattern:
                        type: string
                        description: A regular expression matching the topics to exclude from mirroring. Comma-separated lists are also supported.
                      groupsPattern:
                        type: string
                        description: A regular expression matching the consumer groups to be mirrored. Comma-separated lists are also supported.
                      groupsExcludePattern:
                        type: string
                        description: A regular expression matching the consumer groups to exclude from mirroring. Comma-separated lists are also supported.
                    required:
                      - source
                  description: Configuration of the MirrorMaker 2 connectors.
                resources:
                  type: object
                  properties:
                    claims:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          request:
                            type: string
                    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
                  description: The maximum limits for CPU and memory resources and the requested initial resources.
                livenessProbe:
                  type: object
                  properties:
                    initialDelaySeconds:
                      type: integer
                      minimum: 0
                      description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                    timeoutSeconds:
                      type: integer
                      minimum: 1
                      description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                    periodSeconds:
                      type: integer
                      minimum: 1
                      description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                    successThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                    failureThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                  description: Pod liveness checking.
                readinessProbe:
                  type: object
                  properties:
                    initialDelaySeconds:
                      type: integer
                      minimum: 0
                      description: The initial delay before first the health is first checked. Default to 15 seconds. Minimum value is 0.
                    timeoutSeconds:
                      type: integer
                      minimum: 1
                      description: The timeout for each attempted health check. Default to 5 seconds. Minimum value is 1.
                    periodSeconds:
                      type: integer
                      minimum: 1
                      description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
                    successThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
                    failureThreshold:
                      type: integer
                      minimum: 1
                      description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
                  description: Pod readiness checking.
                jvmOptions:
                  type: object
                  properties:
                    "-XX":
                      additionalProperties:
                        type: string
                      type: object
                      description: A map of -XX options to the JVM.
                    "-Xmx":
                      type: string
                      pattern: "^[0-9]+[mMgG]?$"
                      description: -Xmx option to to the JVM.
                    "-Xms":
                      type: string
                      pattern: "^[0-9]+[mMgG]?$"
                      description: -Xms option to to the JVM.
                    gcLoggingEnabled:
                      type: boolean
                      description: Specifies whether the Garbage Collection logging is enabled. The default is false.
                    javaSystemProperties:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            description: The system property name.
                          value:
                            type: string
                            description: The system property value.
                      description: A map of additional system properties which will be passed using the `-D` option to the JVM.
                  description: JVM Options for pods.
                jmxOptions:
                  type: object
                  properties:
                    authentication:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - password
                          description: Authentication type. Currently the only supported types are `password`.`password` type creates a username and protected port with no TLS.
                      required:
                        - type
                      description: Authentication configuration for connecting to the JMX port.
                  description: JMX Options.
                logging:
                  type: object
                  properties:
                    loggers:
                      additionalProperties:
                        type: string
                      type: object
                      description: A Map from logger name to logger level.
                    type:
                      type: string
                      enum:
                        - inline
                        - external
                      description: "Logging type, must be either 'inline' or 'external'."
                    valueFrom:
                      type: object
                      properties:
                        configMapKeyRef:
                          type: object
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          description: Reference to the key in the ConfigMap containing the configuration.
                      description: '`ConfigMap` entry where the logging configuration is stored. '
                  required:
                    - type
                  description: Logging configuration for Kafka Connect.
                clientRackInitImage:
                  type: string
                  description: The image of the init container used for initializing the `client.rack`.
                rack:
                  type: object
                  properties:
                    envVarName:
                      type: string
                      description: The name of the environment variable that defines the rack ID. Its value sets the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect or MirrorMaker 2.
                    topologyKey:
                      type: string
                      example: topology.kubernetes.io/zone
                      description: "A key that matches labels assigned to the Kubernetes cluster nodes. The value of the label is used to set a broker's `broker.rack` config, and the `client.rack` config for Kafka Connect or MirrorMaker 2."
                    type:
                      type: string
                      enum:
                        - topology-label
                        - environment-variable
                      description: "Specifies the rack awareness type. Supported types are `topology-label` and `environment-variable`. `topology-label` uses a Kubernetes worker node label to set the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect and MirrorMaker 2. `environment-variable` uses an environment variable to set the `broker.rack` configuration for Kafka brokers and the `client.rack` configuration for Kafka Connect and MirrorMaker 2. When not specified, `topology-label` type is used by default."
                  description: Configuration of the node label which will be used as the `client.rack` consumer configuration.
                  x-kubernetes-validations:
                    - rule: (has(self.type) && self.type != "topology-label") || self.topologyKey != ""
                      message: topologyKey property is required
                    - rule: has(self.type) == false || self.type != "environment-variable" || self.envVarName != ""
                      message: envVarName property is required
                metricsConfig:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - jmxPrometheusExporter
                        - strimziMetricsReporter
                      description: Metrics type. The supported types are `jmxPrometheusExporter` and `strimziMetricsReporter`. Type `jmxPrometheusExporter` uses the Prometheus JMX Exporter to expose Kafka JMX metrics in Prometheus format through an HTTP endpoint. Type `strimziMetricsReporter` uses the Strimzi Metrics Reporter to directly expose Kafka metrics in Prometheus format through an HTTP endpoint.
                    valueFrom:
                      type: object
                      properties:
                        configMapKeyRef:
                          type: object
                          properties:
                            key:
                              type: string
                            name:
                              type: string
                            optional:
                              type: boolean
                          description: Reference to the key in the ConfigMap containing the configuration.
                      description: ConfigMap entry where the Prometheus JMX Exporter configuration is stored.
                    values:
                      type: object
                      properties:
                        allowList:
                          type: array
                          items:
                            type: string
                          description: A list of regex patterns to filter the metrics to collect. Should contain at least one element.
                      description: Configuration values for the Strimzi Metrics Reporter.
                  required:
                    - type
                  description: Metrics configuration.
                  x-kubernetes-validations:
                    - rule: self.type != 'jmxPrometheusExporter' || has(self.valueFrom)
                      message: valueFrom property is required
                tracing:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - opentelemetry
                      description: "Type of the tracing used. Currently the only supported type is `opentelemetry` for OpenTelemetry tracing. As of Strimzi 0.37.0, `jaeger` type is not supported anymore and this option is ignored."
                  required:
                    - type
                  description: The configuration of tracing in Kafka Connect.
                template:
                  type: object
                  properties:
                    podSet:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for Kafka Connect `StrimziPodSet` resource.
                    pod:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        imagePullSecrets:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                          description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                        securityContext:
                          type: object
                          properties:
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            fsGroup:
                              type: integer
                            fsGroupChangePolicy:
                              type: string
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxChangePolicy:
                              type: string
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            supplementalGroups:
                              type: array
                              items:
                                type: integer
                            supplementalGroupsPolicy:
                              type: string
                            sysctls:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Configures pod-level security attributes and common container settings.
                        terminationGracePeriodSeconds:
                          type: integer
                          minimum: 0
                          description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                        affinity:
                          type: object
                          properties:
                            nodeAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      preference:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: object
                                  properties:
                                    nodeSelectorTerms:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                            podAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                            podAntiAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                          description: The pod's affinity rules.
                        tolerations:
                          type: array
                          items:
                            type: object
                            properties:
                              effect:
                                type: string
                              key:
                                type: string
                              operator:
                                type: string
                              tolerationSeconds:
                                type: integer
                              value:
                                type: string
                          description: The pod's tolerations.
                        topologySpreadConstraints:
                          type: array
                          items:
                            type: object
                            properties:
                              labelSelector:
                                type: object
                                properties:
                                  matchExpressions:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        operator:
                                          type: string
                                        values:
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    type: object
                              matchLabelKeys:
                                type: array
                                items:
                                  type: string
                              maxSkew:
                                type: integer
                              minDomains:
                                type: integer
                              nodeAffinityPolicy:
                                type: string
                              nodeTaintsPolicy:
                                type: string
                              topologyKey:
                                type: string
                              whenUnsatisfiable:
                                type: string
                          description: The pod's topology spread constraints.
                        priorityClassName:
                          type: string
                          description: 'The name of the priority class used to assign priority to the pods. '
                        schedulerName:
                          type: string
                          description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                        hostAliases:
                          type: array
                          items:
                            type: object
                            properties:
                              hostnames:
                                type: array
                                items:
                                  type: string
                              ip:
                                type: string
                          description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                        dnsPolicy:
                          type: string
                          enum:
                            - ClusterFirst
                            - ClusterFirstWithHostNet
                            - Default
                            - None
                          description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                        dnsConfig:
                          type: object
                          properties:
                            nameservers:
                              type: array
                              items:
                                type: string
                            options:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            searches:
                              type: array
                              items:
                                type: string
                          description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                        enableServiceLinks:
                          type: boolean
                          description: Indicates whether information about services should be injected into Pod's environment variables.
                        tmpDirSizeLimit:
                          type: string
                          pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                          description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                        volumes:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Name to use for the volume. Required.
                              secret:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  optional:
                                    type: boolean
                                  secretName:
                                    type: string
                                description: '`Secret` to use to populate the volume.'
                              configMap:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                description: '`ConfigMap` to use to populate the volume.'
                              emptyDir:
                                type: object
                                properties:
                                  medium:
                                    type: string
                                    enum:
                                      - Memory
                                    description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                  sizeLimit:
                                    type: string
                                    pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                    description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                description: '`EmptyDir` to use to populate the volume.'
                              persistentVolumeClaim:
                                type: object
                                properties:
                                  claimName:
                                    type: string
                                  readOnly:
                                    type: boolean
                                description: '`PersistentVolumeClaim` object to use to populate the volume.'
                              csi:
                                type: object
                                properties:
                                  driver:
                                    type: string
                                  fsType:
                                    type: string
                                  nodePublishSecretRef:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                  readOnly:
                                    type: boolean
                                  volumeAttributes:
                                    additionalProperties:
                                      type: string
                                    type: object
                                description: '`CSIVolumeSource` object to use to populate the volume.'
                              image:
                                type: object
                                properties:
                                  pullPolicy:
                                    type: string
                                  reference:
                                    type: string
                                description: '`ImageVolumeSource` object to use to populate the volume.'
                            oneOf:
                              - properties:
                                  secret: {}
                                  configMap: {}
                                  emptyDir: {}
                                  persistentVolumeClaim: {}
                                  csi: {}
                                  image: {}
                          description: Additional volumes that can be mounted to the pod.
                        hostUsers:
                          type: boolean
                          description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                      description: Template for Kafka Connect `Pods`.
                    apiService:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        ipFamilyPolicy:
                          type: string
                          enum:
                            - SingleStack
                            - PreferDualStack
                            - RequireDualStack
                          description: "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type."
                        ipFamilies:
                          type: array
                          items:
                            type: string
                            enum:
                              - IPv4
                              - IPv6
                          description: "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting."
                      description: Template for Kafka Connect API `Service`.
                    headlessService:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        ipFamilyPolicy:
                          type: string
                          enum:
                            - SingleStack
                            - PreferDualStack
                            - RequireDualStack
                          description: "Specifies the IP Family Policy used by the service. Available options are `SingleStack`, `PreferDualStack` and `RequireDualStack`. `SingleStack` is for a single IP family. `PreferDualStack` is for two IP families on dual-stack configured clusters or a single IP family on single-stack clusters. `RequireDualStack` fails unless there are two IP families on dual-stack configured clusters. If unspecified, Kubernetes will choose the default value based on the service type."
                        ipFamilies:
                          type: array
                          items:
                            type: string
                            enum:
                              - IPv4
                              - IPv6
                          description: "Specifies the IP Families used by the service. Available options are `IPv4` and `IPv6`. If unspecified, Kubernetes will choose the default value based on the `ipFamilyPolicy` setting."
                      description: Template for Kafka Connect headless `Service`.
                    connectContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the Kafka Connect container.
                    initContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the Kafka init container.
                    podDisruptionBudget:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata to apply to the `PodDisruptionBudgetTemplate` resource.
                        maxUnavailable:
                          type: integer
                          minimum: 0
                          description: "Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the `maxUnavailable` number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1."
                      description: Template for Kafka Connect `PodDisruptionBudget`.
                    serviceAccount:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for the Kafka Connect service account.
                    clusterRoleBinding:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for the Kafka Connect ClusterRoleBinding.
                    buildPod:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                        imagePullSecrets:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                          description: "List of references to secrets in the same namespace to use for pulling any of the images used by this Pod. When the `STRIMZI_IMAGE_PULL_SECRETS` environment variable in Cluster Operator and the `imagePullSecrets` option are specified, only the `imagePullSecrets` variable is used and the `STRIMZI_IMAGE_PULL_SECRETS` variable is ignored."
                        securityContext:
                          type: object
                          properties:
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            fsGroup:
                              type: integer
                            fsGroupChangePolicy:
                              type: string
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxChangePolicy:
                              type: string
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            supplementalGroups:
                              type: array
                              items:
                                type: integer
                            supplementalGroupsPolicy:
                              type: string
                            sysctls:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Configures pod-level security attributes and common container settings.
                        terminationGracePeriodSeconds:
                          type: integer
                          minimum: 0
                          description: "The grace period is the duration in seconds after the processes running in the pod are sent a termination signal, and the time when the processes are forcibly halted with a kill signal. Set this value to longer than the expected cleanup time for your process. Value must be a non-negative integer. A zero value indicates delete immediately. You might need to increase the grace period for very large Kafka clusters, so that the Kafka brokers have enough time to transfer their work to another broker before they are terminated. Defaults to 30 seconds."
                        affinity:
                          type: object
                          properties:
                            nodeAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      preference:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: object
                                  properties:
                                    nodeSelectorTerms:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchFields:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                            podAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                            podAntiAffinity:
                              type: object
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      podAffinityTerm:
                                        type: object
                                        properties:
                                          labelSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          matchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          mismatchLabelKeys:
                                            type: array
                                            items:
                                              type: string
                                          namespaceSelector:
                                            type: object
                                            properties:
                                              matchExpressions:
                                                type: array
                                                items:
                                                  type: object
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      type: array
                                                      items:
                                                        type: string
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                          namespaces:
                                            type: array
                                            items:
                                              type: string
                                          topologyKey:
                                            type: string
                                      weight:
                                        type: integer
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      labelSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      matchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      mismatchLabelKeys:
                                        type: array
                                        items:
                                          type: string
                                      namespaceSelector:
                                        type: object
                                        properties:
                                          matchExpressions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                      namespaces:
                                        type: array
                                        items:
                                          type: string
                                      topologyKey:
                                        type: string
                          description: The pod's affinity rules.
                        tolerations:
                          type: array
                          items:
                            type: object
                            properties:
                              effect:
                                type: string
                              key:
                                type: string
                              operator:
                                type: string
                              tolerationSeconds:
                                type: integer
                              value:
                                type: string
                          description: The pod's tolerations.
                        topologySpreadConstraints:
                          type: array
                          items:
                            type: object
                            properties:
                              labelSelector:
                                type: object
                                properties:
                                  matchExpressions:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        operator:
                                          type: string
                                        values:
                                          type: array
                                          items:
                                            type: string
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    type: object
                              matchLabelKeys:
                                type: array
                                items:
                                  type: string
                              maxSkew:
                                type: integer
                              minDomains:
                                type: integer
                              nodeAffinityPolicy:
                                type: string
                              nodeTaintsPolicy:
                                type: string
                              topologyKey:
                                type: string
                              whenUnsatisfiable:
                                type: string
                          description: The pod's topology spread constraints.
                        priorityClassName:
                          type: string
                          description: 'The name of the priority class used to assign priority to the pods. '
                        schedulerName:
                          type: string
                          description: "The name of the scheduler used to dispatch this `Pod`. If not specified, the default scheduler will be used."
                        hostAliases:
                          type: array
                          items:
                            type: object
                            properties:
                              hostnames:
                                type: array
                                items:
                                  type: string
                              ip:
                                type: string
                          description: The pod's HostAliases. HostAliases is an optional list of hosts and IPs that will be injected into the Pod's hosts file if specified.
                        dnsPolicy:
                          type: string
                          enum:
                            - ClusterFirst
                            - ClusterFirstWithHostNet
                            - Default
                            - None
                          description: "The pod's DNSPolicy. Defaults to `ClusterFirst`. Valid values are `ClusterFirstWithHostNet`, `ClusterFirst`, `Default` or `None`."
                        dnsConfig:
                          type: object
                          properties:
                            nameservers:
                              type: array
                              items:
                                type: string
                            options:
                              type: array
                              items:
                                type: object
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                            searches:
                              type: array
                              items:
                                type: string
                          description: "The pod's DNSConfig. If specified, it will be merged to the generated DNS configuration based on the DNSPolicy."
                        enableServiceLinks:
                          type: boolean
                          description: Indicates whether information about services should be injected into Pod's environment variables.
                        tmpDirSizeLimit:
                          type: string
                          pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                          description: "Defines the total amount of pod memory allocated for the temporary `EmptyDir` volume `/tmp`. Specify the allocation in memory units, for example, `100Mi` for 100 mebibytes. Default value is `5Mi`. The `/tmp` volume is backed by pod memory, not disk storage, so avoid setting a high value as it consumes pod memory resources."
                        volumes:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: Name to use for the volume. Required.
                              secret:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  optional:
                                    type: boolean
                                  secretName:
                                    type: string
                                description: '`Secret` to use to populate the volume.'
                              configMap:
                                type: object
                                properties:
                                  defaultMode:
                                    type: integer
                                  items:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          type: integer
                                        path:
                                          type: string
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                description: '`ConfigMap` to use to populate the volume.'
                              emptyDir:
                                type: object
                                properties:
                                  medium:
                                    type: string
                                    enum:
                                      - Memory
                                    description: "Medium represents the type of storage medium should back this volume. Valid values are unset or `Memory`. When not set, it will use the node's default medium."
                                  sizeLimit:
                                    type: string
                                    pattern: "^([0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"
                                    description: The total amount of local storage required for this EmptyDir volume (for example 1Gi).
                                description: '`EmptyDir` to use to populate the volume.'
                              persistentVolumeClaim:
                                type: object
                                properties:
                                  claimName:
                                    type: string
                                  readOnly:
                                    type: boolean
                                description: '`PersistentVolumeClaim` object to use to populate the volume.'
                              csi:
                                type: object
                                properties:
                                  driver:
                                    type: string
                                  fsType:
                                    type: string
                                  nodePublishSecretRef:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                  readOnly:
                                    type: boolean
                                  volumeAttributes:
                                    additionalProperties:
                                      type: string
                                    type: object
                                description: '`CSIVolumeSource` object to use to populate the volume.'
                              image:
                                type: object
                                properties:
                                  pullPolicy:
                                    type: string
                                  reference:
                                    type: string
                                description: '`ImageVolumeSource` object to use to populate the volume.'
                            oneOf:
                              - properties:
                                  secret: {}
                                  configMap: {}
                                  emptyDir: {}
                                  persistentVolumeClaim: {}
                                  csi: {}
                                  image: {}
                          description: Additional volumes that can be mounted to the pod.
                        hostUsers:
                          type: boolean
                          description: "Use the host user namespace. Optional. Defaults to `true`. When `true` or not set, the pod runs in the host user namespace. This is required when the pod needs features available only in the host namespace, such as loading kernel modules with `CAP_SYS_MODULE`.When set to `false`, the pod runs in a new user namespace. Setting `false` helps mitigate container breakout vulnerabilities and allows containers to run as `root` without granting `root` privileges on the host. This property is alpha-level in Kubernetes and is supported only by Kubernetes clusters that enable the `UserNamespacesSupport` feature."
                      description: Template for Kafka Connect Build `Pods`. The build pod is used only on Kubernetes.
                    buildContainer:
                      type: object
                      properties:
                        env:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                description: The environment variable key.
                              value:
                                type: string
                                description: The environment variable value.
                              valueFrom:
                                type: object
                                properties:
                                  secretKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a secret.
                                  configMapKeyRef:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    description: Reference to a key in a config map.
                                oneOf:
                                  - properties:
                                      secretKeyRef: {}
                                    required:
                                      - secretKeyRef
                                  - properties:
                                      configMapKeyRef: {}
                                    required:
                                      - configMapKeyRef
                                description: Reference to the secret or config map property to which the environment variable is set.
                            oneOf:
                              - properties:
                                  value: {}
                                required:
                                  - value
                              - properties:
                                  valueFrom: {}
                                required:
                                  - valueFrom
                          description: Environment variables which should be applied to the container.
                        securityContext:
                          type: object
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            capabilities:
                              type: object
                              properties:
                                add:
                                  type: array
                                  items:
                                    type: string
                                drop:
                                  type: array
                                  items:
                                    type: string
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              type: integer
                            seLinuxOptions:
                              type: object
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                            seccompProfile:
                              type: object
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                            windowsOptions:
                              type: object
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                          description: Security context for the container.
                        volumeMounts:
                          type: array
                          items:
                            type: object
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                          description: Additional volume mounts which should be applied to the container.
                      description: Template for the Kafka Connect Build container. The build container is used only on Kubernetes.
                    buildConfig:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata to apply to the `PodDisruptionBudgetTemplate` resource.
                        pullSecret:
                          type: string
                          description: Container Registry Secret with the credentials for pulling the base image.
                      description: Template for the Kafka Connect BuildConfig used to build new container images. The BuildConfig is used only on OpenShift.
                    buildServiceAccount:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for the Kafka Connect Build service account.
                    jmxSecret:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                              description: Labels added to the Kubernetes resource.
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                              description: Annotations added to the Kubernetes resource.
                          description: Metadata applied to the resource.
                      description: Template for Secret of the Kafka Connect Cluster JMX authentication.
                  description: "Template for Kafka Connect and Kafka MirrorMaker 2 resources. The template allows users to specify how the `Pods`, `Service`, and other services are generated."
              required:
                - replicas
                - target
                - mirrors
              description: The specification of the Kafka MirrorMaker 2 cluster.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                url:
                  type: string
                  description: The URL of the REST API endpoint for managing and monitoring Kafka Connect connectors.
                connectors:
                  type: array
                  items:
                    x-kubernetes-preserve-unknown-fields: true
                    type: object
                  description: "List of MirrorMaker 2 connector statuses, as reported by the Kafka Connect REST API."
                autoRestartStatuses:
                  type: array
                  items:
                    type: object
                    properties:
                      count:
                        type: integer
                        description: The number of times the connector or task is restarted.
                      connectorName:
                        type: string
                        description: The name of the connector being restarted.
                      lastRestartTimestamp:
                        type: string
                        description: The last time the automatic restart was attempted. The required format is 'yyyy-MM-ddTHH:mm:ssZ' in the UTC time zone.
                  description: List of MirrorMaker 2 connector auto restart statuses.
                connectorPlugins:
                  type: array
                  items:
                    type: object
                    properties:
                      class:
                        type: string
                        description: The class of the connector plugin.
                      type:
                        type: string
                        description: The type of the connector plugin. The available types are `sink` and `source`.
                      version:
                        type: string
                        description: The version of the connector plugin.
                  description: The list of connector plugins available in this Kafka Connect deployment.
                labelSelector:
                  type: string
                  description: Label selector for pods providing this resource.
                replicas:
                  type: integer
                  description: The current number of pods being used to provide this resource.
              description: The status of the Kafka MirrorMaker 2 cluster.
          required:
            - spec

---
# Source: strimzi-kafka-operator/crds/049-Crd-kafkarebalance.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kafkarebalances.kafka.strimzi.io
  labels:
    app: strimzi
    strimzi.io/crd-install: "true"
    component: kafkarebalances.kafka.strimzi.io-crd
spec:
  group: kafka.strimzi.io
  names:
    kind: KafkaRebalance
    listKind: KafkaRebalanceList
    singular: kafkarebalance
    plural: kafkarebalances
    shortNames:
      - kr
    categories:
      - strimzi
  scope: Namespaced
  conversion:
    strategy: None
  versions:
    - name: v1
      served: true
      storage: true
      subresources:
        status: {}
      additionalPrinterColumns:
        - name: Cluster
          description: The name of the Kafka cluster this resource rebalances
          jsonPath: .metadata.labels.strimzi\.io/cluster
          type: string
        - name: Template
          description: If this rebalance resource is a template
          jsonPath: .metadata.annotations.strimzi\.io/rebalance-template
          type: string
        - name: Status
          description: Status of the current rebalancing operation
          jsonPath: ".status.conditions[*].type"
          type: string
      schema:
        openAPIV3Schema:
          type: object
          properties:
            apiVersion:
              type: string
              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"
            kind:
              type: string
              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"
            metadata:
              type: object
            spec:
              type: object
              properties:
                mode:
                  type: string
                  enum:
                    - full
                    - add-brokers
                    - remove-brokers
                    - remove-disks
                  description: "Mode to run the rebalancing. The supported modes are `full`, `add-brokers`, `remove-brokers`.\nIf not specified, the `full` mode is used by default. \n\n* `full` mode runs the rebalancing across all the brokers in the cluster.\n* `add-brokers` mode can be used after scaling up the cluster to move some replicas to the newly added brokers.\n* `remove-brokers` mode can be used before scaling down the cluster to move replicas out of the brokers to be removed.\n* `remove-disks` mode can be used to move data across the volumes within the same broker\n."
                brokers:
                  type: array
                  items:
                    type: integer
                  description: The list of newly added brokers in case of scaling up or the ones to be removed in case of scaling down to use for rebalancing. This list can be used only with rebalancing mode `add-brokers` and `removed-brokers`. It is ignored with `full` mode.
                goals:
                  type: array
                  items:
                    type: string
                  description: "A list of goals, ordered by decreasing priority, to use for generating and executing the rebalance proposal. The supported goals are available at https://github.com/linkedin/cruise-control#goals. If an empty goals list is provided, the goals declared in the default.goals Cruise Control configuration parameter are used."
                skipHardGoalCheck:
                  type: boolean
                  description: Whether to allow the hard goals specified in the Kafka CR to be skipped in optimization proposal generation. This can be useful when some of those hard goals are preventing a balance solution being found. Default is false.
                rebalanceDisk:
                  type: boolean
                  description: "Enables intra-broker disk balancing, which balances disk space utilization between disks on the same broker. Only applies to Kafka deployments that use JBOD storage with multiple disks. When enabled, inter-broker balancing is disabled. Default is false."
                excludedTopics:
                  type: string
                  description: A regular expression where any matching topics will be excluded from the calculation of optimization proposals. This expression will be parsed by the java.util.regex.Pattern class; for more information on the supported format consult the documentation for that class.
                concurrentPartitionMovementsPerBroker:
                  type: integer
                  minimum: 0
                  description: The upper bound of ongoing partition replica movements going into/out of each broker. Default is 5.
                concurrentIntraBrokerPartitionMovements:
                  type: integer
                  minimum: 0
                  description: The upper bound of ongoing partition replica movements between disks within each broker. Default is 2.
                concurrentLeaderMovements:
                  type: integer
                  minimum: 0
                  description: The upper bound of ongoing partition leadership movements. Default is 1000.
                replicationThrottle:
                  type: integer
                  minimum: 0
                  description: "The upper bound, in bytes per second, on the bandwidth used to move replicas. There is no limit by default."
                replicaMovementStrategies:
                  type: array
                  items:
                    type: string
                  description: "A list of strategy class names used to determine the execution order for the replica movements in the generated optimization proposal. By default BaseReplicaMovementStrategy is used, which will execute the replica movements in the order that they were generated."
                moveReplicasOffVolumes:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    properties:
                      brokerId:
                        type: integer
                        description: ID of the broker that contains the disk from which you want to move the partition replicas.
                      volumeIds:
                        type: array
                        minItems: 1
                        items:
                          type: integer
                        description: IDs of the disks from which the partition replicas need to be moved.
                  description: List of brokers and their corresponding volumes from which replicas need to be moved.
              description: The specification of the Kafka rebalance.
            status:
              type: object
              properties:
                conditions:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: "The unique identifier of a condition, used to distinguish between other conditions in the resource."
                      status:
                        type: string
                        description: "The status of the condition, either True, False or Unknown."
                      lastTransitionTime:
                        type: string
                        description: "Last time the condition of a type changed from one status to another. The required format is 'yyyy-MM-ddTHH:mm:ssZ', in the UTC time zone."
                      reason:
                        type: string
                        description: The reason for the condition's last transition (a single word in CamelCase).
                      message:
                        type: string
                        description: Human-readable message indicating details about the condition's last transition.
                  description: List of status conditions.
                observedGeneration:
                  type: integer
                  description: The generation of the CRD that was last reconciled by the operator.
                sessionId:
                  type: string
                  description: The session identifier for requests to Cruise Control pertaining to this KafkaRebalance resource. This is used by the Kafka Rebalance operator to track the status of ongoing rebalancing operations.
                progress:
                  type: object
                  properties:
                    rebalanceProgressConfigMap:
                      type: string
                      description: The name of the `ConfigMap` containing information related to the progress of a partition rebalance.
                  description: A reference to Config Map with the progress information.
                optimizationResult:
                  x-kubernetes-preserve-unknown-fields: true
                  type: object
                  description: A JSON object describing the optimization result.
              description: The status of the Kafka rebalance.
          required:
            - spec

---
# Source: strimzi-kafka-operator/templates/010-ServiceAccount-strimzi-cluster-operator.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: strimzi-cluster-operator
  namespace: default
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: service-account
    release: strimzi-kafka-operator
    heritage: Helm
---
# Source: strimzi-kafka-operator/templates/050-ConfigMap-strimzi-cluster-operator.yaml
kind: ConfigMap
apiVersion: v1
metadata:
  name: strimzi-cluster-operator
  namespace: default
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: logging-config-map
    release: strimzi-kafka-operator
    heritage: Helm
data:
  log4j2.properties: |
    name = COConfig
    monitorInterval = 30

    appender.console.type = Console
    appender.console.name = STDOUT
    appender.console.layout.type = PatternLayout
    appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

    rootLogger.level = ${env:STRIMZI_LOG_LEVEL:-INFO}
    rootLogger.appenderRefs = stdout
    rootLogger.appenderRef.console.ref = STDOUT

    # Kafka AdminClient logging is a bit noisy at INFO level
    logger.kafka.name = org.apache.kafka
    logger.kafka.level = WARN

    # Keeps separate level for Netty logging -> to not be changed by the root logger
    logger.netty.name = io.netty
    logger.netty.level = INFO
---
# Source: strimzi-kafka-operator/templates/020-ClusterRole-strimzi-cluster-operator-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: strimzi-cluster-operator-namespaced
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: role
    release: strimzi-kafka-operator
    heritage: Helm
rules:
# Resources in this role are used by the operator based on an operand being deployed in some namespace. When needed, you
# can deploy the operator as a cluster-wide operator. But grant the rights listed in this role only on the namespaces
# where the operands will be deployed. That way, you can limit the access the operator has to other namespaces where it
# does not manage any clusters.
- apiGroups:
  - "rbac.authorization.k8s.io"
  resources:
    # The cluster operator needs to access and manage rolebindings to grant Strimzi components cluster permissions
  - rolebindings
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
- apiGroups:
  - "rbac.authorization.k8s.io"
  resources:
    # The cluster operator needs to access and manage roles to grant the entity operator permissions
  - roles
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
- apiGroups:
  - ""
  resources:
    # The cluster operator needs to access and delete pods, this is to allow it to monitor pod health and coordinate rolling updates
  - pods
    # The cluster operator needs to access and manage service accounts to grant Strimzi components cluster permissions
  - serviceaccounts
    # The cluster operator needs to access and manage config maps for Strimzi components configuration
  - configmaps
    # The cluster operator needs to access and manage services and endpoints to expose Strimzi components to network traffic
  - services
  - endpoints
    # The cluster operator needs to access and manage secrets to handle credentials
  - secrets
    # The cluster operator needs to access and manage persistent volume claims to bind them to Strimzi components for persistent data
  - persistentvolumeclaims
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
- apiGroups:
    - ""
  resources:
    # For inplace resizing, we need access to pods/resize subresource
    - pods/resize
  verbs:
    - patch
    - update
- apiGroups:
  - "apps"
  resources:
    # The cluster operator needs to access and manage deployments to run deployment based Strimzi components
  - deployments
    # The cluster operator needs to access replica-sets to manage Strimzi components and to determine error states
  - replicasets
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
- apiGroups:
  - "apps"
  resources:
    # The Cluster Operator needs to scale Deployments while migrating Connect and Mirror Maker 2 clusters from Deployments to StrimziPodSets
  - deployments/scale
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - "events.k8s.io" # new events api, used by cluster operator
  resources:
    # The cluster operator needs to be able to create events
  - events
  verbs:
  - create
- apiGroups:
    # Kafka Connect Build on OpenShift requirement
  - build.openshift.io
  resources:
  - buildconfigs
  - buildconfigs/instantiate
  - builds
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
- apiGroups:
  - networking.k8s.io
  resources:
    # The cluster operator needs to access and manage network policies to lock down communication between Strimzi components
  - networkpolicies
    # The cluster operator needs to access and manage ingresses which allow external access to the services in a cluster
  - ingresses
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
- apiGroups:
  - route.openshift.io
  resources:
    # The cluster operator needs to access and manage routes to expose Strimzi components for external access
  - routes
  - routes/custom-host
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
- apiGroups:
  - image.openshift.io
  resources:
  # The cluster operator needs to verify the image stream when used for Kafka Connect image build
  - imagestreams
  verbs:
  - get
- apiGroups:
  - policy
  resources:
    # The cluster operator needs to access and manage pod disruption budgets this limits the number of concurrent disruptions
    # that a Strimzi component experiences, allowing for higher availability
  - poddisruptionbudgets
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
---
# Source: strimzi-kafka-operator/templates/021-ClusterRole-strimzi-cluster-operator-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: strimzi-cluster-operator-global
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: role
    release: strimzi-kafka-operator
    heritage: Helm
rules:
- apiGroups:
  - "rbac.authorization.k8s.io"
  resources:
    # The cluster operator needs to create and manage cluster role bindings in the case of an install where a user
    # has specified they want their cluster role bindings generated
  - clusterrolebindings
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
- apiGroups:
  - storage.k8s.io
  resources:
    # The cluster operator requires "get" permissions to view storage class details
    # This is because only a persistent volume of a supported storage class type can be resized
  - storageclasses
  verbs:
  - get
- apiGroups:
    - ""
  resources:
    # The cluster operator requires "list" permissions to view all nodes in a cluster
    # The listing is used to determine the node addresses when NodePort access is configured
    # These addresses are then exposed in the custom resource states
  - nodes
  verbs:
  - list
---
# Source: strimzi-kafka-operator/templates/022-ClusterRole-strimzi-cluster-operator-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: strimzi-cluster-operator-leader-election
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: role
    release: strimzi-kafka-operator
    heritage: Helm
rules:
- apiGroups:
  - coordination.k8s.io
  resources:
    # The cluster operator needs to access and manage leases for leader election
    # The "create" verb cannot be used with "resourceNames"
  - leases
  verbs:
  - create
- apiGroups:
  - coordination.k8s.io
  resources:
    # The cluster operator needs to access and manage leases for leader election
  - leases
  resourceNames:
    # The default RBAC files give the operator only access to the Lease resource names strimzi-cluster-operator
    # If you want to use another resource name or resource namespace, you have to configure the RBAC resources accordingly
  - strimzi-cluster-operator
  verbs:
  - get
  - list
  - watch
  - delete
  - patch
  - update
---
# Source: strimzi-kafka-operator/templates/023-ClusterRole-strimzi-cluster-operator-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: strimzi-cluster-operator-watched
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: role
    release: strimzi-kafka-operator
    heritage: Helm
rules:
# Resources in this role are being watched by the operator. When operator is deployed as cluster-wide, these permissions
# need to be granted to the operator on a cluster wide level as well, even if the operands will be deployed only in
# few of the namespaces in given cluster. This is required to set up the Kubernetes watches and informers.
# Note: The rights included in this role might change in the future
- apiGroups:
  - ""
  resources:
    # The cluster operator needs to access and delete pods, this is to allow it to monitor pod health and coordinate rolling updates
  - pods
  verbs:
  - watch
  - list
- apiGroups:
  - "kafka.strimzi.io"
  resources:
  # The Cluster Operator operates the Strimzi custom resources
  - kafkas
  - kafkanodepools
  - kafkaconnects
  - kafkaconnectors
  - kafkabridges
  - kafkamirrormaker2s
  - kafkarebalances
  verbs:
  - get
  - list
  - watch
  - create
  - patch
  - update
- apiGroups:
  - "kafka.strimzi.io"
  resources:
  # The Cluster Operator needs to manage the status of the Strimzi custom resources
  - kafkas/status
  - kafkanodepools/status
  - kafkaconnects/status
  - kafkaconnectors/status
  - kafkabridges/status
  - kafkamirrormaker2s/status
  - kafkarebalances/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
    - "kafka.strimzi.io"
  resources:
    # Needed for environments with enabled OwnerReferencesPermissionEnforcement admission controller (e.g. OpenShift)
    - kafkas/finalizers
    - kafkanodepools/finalizers
    - kafkaconnects/finalizers
    - kafkaconnectors/finalizers
    - kafkabridges/finalizers
    - kafkamirrormaker2s/finalizers
    - kafkarebalances/finalizers
  verbs:
    - update
- apiGroups:
  - "core.strimzi.io"
  resources:
  # The cluster operator uses StrimziPodSets to manage the Kafka, Kafka Connect, and Kafka MirrorMaker 2 pods
  - strimzipodsets
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
- apiGroups:
  - "core.strimzi.io"
  resources:
  # The Cluster Operator needs to manage the status of the StrimziPodSet custom resource
  - strimzipodsets/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - "core.strimzi.io"
  resources:
  # Needed for environments with enabled OwnerReferencesPermissionEnforcement admission controller (e.g. OpenShift)
  - strimzipodsets/finalizers
  verbs:
  - update
- apiGroups:
    - "kafka.strimzi.io"
  resources:
    # The Cluster Operator needs deletion for KafkaRebalance only (during auto-rebalancing)
    - kafkarebalances
  verbs:
    - delete
---
# Source: strimzi-kafka-operator/templates/030-ClusterRole-strimzi-kafka-broker.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: strimzi-kafka-broker
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: broker-role
    release: strimzi-kafka-operator
    heritage: Helm
rules:
- apiGroups:
  - ""
  resources:
    # The Kafka Brokers require "get" permissions to view the node they are on
    # This information is used to generate a Rack ID that is used for High Availability configurations
  - nodes
  verbs:
  - get
---
# Source: strimzi-kafka-operator/templates/031-ClusterRole-strimzi-entity-operator.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: strimzi-entity-operator
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: entity-operator-role
    release: strimzi-kafka-operator
    heritage: Helm
rules:
- apiGroups:
  - "kafka.strimzi.io"
  resources:
    # The Entity Operator contains the Topic Operator which needs to access and manage KafkaTopic resources
  - kafkatopics
  verbs:
  - get
  - list
  - watch
  - create
  - patch
  - update
  - delete
- apiGroups:
  - "kafka.strimzi.io"
  resources:
    # The Entity Operator contains the User Operator which needs to access and manage KafkaUser resources
  - kafkausers
  verbs:
  - get
  - list
  - watch
  - create
  - patch
  - update
- apiGroups:
  - "kafka.strimzi.io"
  resources:
    # The Entity Operator contains the Topic Operator which needs to access and manage KafkaTopic resources
  - kafkatopics/status
    # The Entity Operator contains the User Operator which needs to access and manage KafkaUser resources
  - kafkausers/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
    - "kafka.strimzi.io"
  resources:
    # Needed for environments with enabled OwnerReferencesPermissionEnforcement admission controller (e.g. OpenShift)
    - kafkatopics/finalizers
    - kafkausers/finalizers
  verbs:
    - update
- apiGroups:
  - ""
  resources:
    # The entity operator user-operator needs to access and manage secrets to store generated credentials
  - secrets
  verbs:
  - get
  - list
  - watch
  - create
  - delete
  - patch
  - update
---
# Source: strimzi-kafka-operator/templates/033-ClusterRole-strimzi-kafka-client.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: strimzi-kafka-client
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: client-role
    release: strimzi-kafka-operator
    heritage: Helm
rules:
- apiGroups:
  - ""
  resources:
    # The Kafka clients (Connect, Mirror Maker, etc.) require "get" permissions to view the node they are on
    # This information is used to generate a Rack ID (client.rack option) that is used for consuming from the closest
    # replicas when enabled
  - nodes
  verbs:
  - get
---
# Source: strimzi-kafka-operator/templates/021-ClusterRoleBinding-strimzi-cluster-operator.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: strimzi-cluster-operator
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: role-binding
    release: strimzi-kafka-operator
    heritage: Helm
subjects:
  - kind: ServiceAccount
    name: strimzi-cluster-operator
    namespace: default
roleRef:
  kind: ClusterRole
  name: strimzi-cluster-operator-global
  apiGroup: rbac.authorization.k8s.io
---
# Source: strimzi-kafka-operator/templates/030-ClusterRoleBinding-strimzi-cluster-operator-kafka-broker-delegation.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: strimzi-cluster-operator-kafka-broker-delegation
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: broker-role-binding
    release: strimzi-kafka-operator
    heritage: Helm
# The Kafka broker cluster role must be bound to the cluster operator service account so that it can delegate the cluster role to the Kafka brokers.
# This must be done to avoid escalating privileges which would be blocked by Kubernetes.
subjects:
  - kind: ServiceAccount
    name: strimzi-cluster-operator
    namespace: default
roleRef:
  kind: ClusterRole
  name: strimzi-kafka-broker
  apiGroup: rbac.authorization.k8s.io
---
# Source: strimzi-kafka-operator/templates/033-ClusterRoleBinding-strimzi-cluster-operator-kafka-client-delegation.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: strimzi-cluster-operator-kafka-client-delegation
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: client-role-binding
    release: strimzi-kafka-operator
    heritage: Helm
# The Kafka clients cluster role must be bound to the cluster operator service account so that it can delegate the
# cluster role to the Kafka clients using it for consuming from closest replica.
# This must be done to avoid escalating privileges which would be blocked by Kubernetes.
subjects:
  - kind: ServiceAccount
    name: strimzi-cluster-operator
    namespace: default
roleRef:
  kind: ClusterRole
  name: strimzi-kafka-client
  apiGroup: rbac.authorization.k8s.io
---
# Source: strimzi-kafka-operator/templates/020-RoleBinding-strimzi-cluster-operator.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: strimzi-cluster-operator
  namespace: default
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: role-binding
    release: strimzi-kafka-operator
    heritage: Helm
subjects:
  - kind: ServiceAccount
    name: strimzi-cluster-operator
    namespace: default
roleRef:
  kind: ClusterRole
  name: strimzi-cluster-operator-namespaced
  apiGroup: rbac.authorization.k8s.io
---
# Source: strimzi-kafka-operator/templates/022-RoleBinding-strimzi-cluster-operator.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: strimzi-cluster-operator-leader-election
  namespace: default
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: role-binding
    release: strimzi-kafka-operator
    heritage: Helm
subjects:
  - kind: ServiceAccount
    name: strimzi-cluster-operator
    namespace: default
roleRef:
  kind: ClusterRole
  name: strimzi-cluster-operator-leader-election
  apiGroup: rbac.authorization.k8s.io
---
# Source: strimzi-kafka-operator/templates/023-RoleBinding-strimzi-cluster-operator.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: strimzi-cluster-operator-watched
  namespace: default
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: role-binding
    release: strimzi-kafka-operator
    heritage: Helm
subjects:
  - kind: ServiceAccount
    name: strimzi-cluster-operator
    namespace: default
roleRef:
  kind: ClusterRole
  name: strimzi-cluster-operator-watched
  apiGroup: rbac.authorization.k8s.io
---
# Source: strimzi-kafka-operator/templates/031-RoleBinding-strimzi-cluster-operator-entity-operator-delegation.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: strimzi-cluster-operator-entity-operator-delegation
  namespace: default
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: entity-operator-role-binding
    release: strimzi-kafka-operator
    heritage: Helm
# The Entity Operator cluster role must be bound to the cluster operator service account so that it can delegate the cluster role to the Entity Operator.
# This must be done to avoid escalating privileges which would be blocked by Kubernetes.
subjects:
  - kind: ServiceAccount
    name: strimzi-cluster-operator
    namespace: default
roleRef:
  kind: ClusterRole
  name: strimzi-entity-operator
  apiGroup: rbac.authorization.k8s.io
---
# Source: strimzi-kafka-operator/templates/060-Deployment-strimzi-cluster-operator.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: strimzi-cluster-operator
  namespace: default
  labels:
    app: strimzi
    chart: strimzi-kafka-operator-1.0.0
    component: deployment
    release: strimzi-kafka-operator
    heritage: Helm
spec:
  replicas: 1
  selector:
    matchLabels:
      name: strimzi-cluster-operator
      strimzi.io/kind: cluster-operator
  template:
    metadata:
      labels:
        name: strimzi-cluster-operator
        strimzi.io/kind: cluster-operator
    spec:
      serviceAccountName: strimzi-cluster-operator
      volumes:
        - name: strimzi-tmp
          emptyDir:
            medium: Memory
            sizeLimit: 1Mi
        - name: co-config-volume
          configMap:
            name: strimzi-cluster-operator
      containers:
        - name: strimzi-cluster-operator
          image: quay.io/strimzi/operator:1.0.0
          ports:
            - containerPort: 8080
              name: http
          args:
            - /opt/strimzi/bin/cluster_operator_run.sh
          volumeMounts:
            - name: strimzi-tmp
              mountPath: /tmp
            - name: co-config-volume
              mountPath: /opt/strimzi/custom-config/
          env:
            - name: STRIMZI_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS
              value: "120000"
            - name: STRIMZI_OPERATION_TIMEOUT_MS
              value: "300000"
            - name: STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE
              value: quay.io/strimzi/kafka:1.0.0-kafka-4.2.0
            - name: STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE
              value: quay.io/strimzi/kafka:1.0.0-kafka-4.2.0
            - name: STRIMZI_KAFKA_IMAGES
              value: |
                4.1.0=quay.io/strimzi/kafka:1.0.0-kafka-4.1.0
                4.1.1=quay.io/strimzi/kafka:1.0.0-kafka-4.1.1
                4.1.2=quay.io/strimzi/kafka:1.0.0-kafka-4.1.2
                4.2.0=quay.io/strimzi/kafka:1.0.0-kafka-4.2.0
            - name: STRIMZI_KAFKA_CONNECT_IMAGES
              value: |
                4.1.0=quay.io/strimzi/kafka:1.0.0-kafka-4.1.0
                4.1.1=quay.io/strimzi/kafka:1.0.0-kafka-4.1.1
                4.1.2=quay.io/strimzi/kafka:1.0.0-kafka-4.1.2
                4.2.0=quay.io/strimzi/kafka:1.0.0-kafka-4.2.0
            - name: STRIMZI_KAFKA_MIRROR_MAKER_2_IMAGES
              value: |
                4.1.0=quay.io/strimzi/kafka:1.0.0-kafka-4.1.0
                4.1.1=quay.io/strimzi/kafka:1.0.0-kafka-4.1.1
                4.1.2=quay.io/strimzi/kafka:1.0.0-kafka-4.1.2
                4.2.0=quay.io/strimzi/kafka:1.0.0-kafka-4.2.0
            - name: STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE
              value: quay.io/strimzi/operator:1.0.0
            - name: STRIMZI_DEFAULT_USER_OPERATOR_IMAGE
              value: quay.io/strimzi/operator:1.0.0
            - name: STRIMZI_DEFAULT_KAFKA_INIT_IMAGE
              value: quay.io/strimzi/operator:1.0.0
            - name: STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE
              value: quay.io/strimzi/kafka-bridge:1.0.0
            - name: STRIMZI_DEFAULT_KANIKO_EXECUTOR_IMAGE
              value: quay.io/strimzi/kaniko-executor:1.0.0
            - name: STRIMZI_DEFAULT_BUILDAH_IMAGE
              value: quay.io/strimzi/buildah:1.0.0
            - name: STRIMZI_DEFAULT_MAVEN_BUILDER
              value: quay.io/strimzi/maven-builder:1.0.0
            - name: STRIMZI_OPERATOR_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace

            - name: STRIMZI_FEATURE_GATES
              value: ""
            - name: STRIMZI_LEADER_ELECTION_ENABLED
              value: "true"
            - name: STRIMZI_LEADER_ELECTION_LEASE_NAME
              value: "strimzi-cluster-operator"
            - name: STRIMZI_LEADER_ELECTION_LEASE_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: STRIMZI_LEADER_ELECTION_IDENTITY
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
          livenessProbe:
            httpGet:
              path: /healthy
              port: http
            initialDelaySeconds: 10
            periodSeconds: 30
          readinessProbe:
            httpGet:
              path: /ready
              port: http
            initialDelaySeconds: 10
            periodSeconds: 30
          resources:
            limits:
              cpu: 1000m
              memory: 384Mi
            requests:
              cpu: 200m
              memory: 384Mi
