diff --git a/manifests/strimzi-kafka-operator/Kafka-v1beta1.crd.yaml b/manifests/strimzi-kafka-operator/Kafka-v1beta1.crd.yaml new file mode 100644 index 000000000..5f7ec9f81 --- /dev/null +++ b/manifests/strimzi-kafka-operator/Kafka-v1beta1.crd.yaml @@ -0,0 +1,2957 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app: strimzi + name: kafkas.kafka.strimzi.io +spec: + additionalPrinterColumns: + - JSONPath: .spec.kafka.replicas + description: The desired number of Kafka replicas in the cluster + name: Desired Kafka replicas + type: integer + - JSONPath: .spec.zookeeper.replicas + description: The desired number of Zookeeper replicas in the cluster + name: Desired ZK replicas + type: integer + group: kafka.strimzi.io + names: + kind: Kafka + listKind: KafkaList + plural: kafkas + shortNames: + - k + singular: kafka + scope: Namespaced + subresources: + status: {} + validation: + openAPIV3Schema: + properties: + spec: + properties: + clientsCa: + properties: + certificateExpirationPolicy: + enum: + - renew-certificate + - replace-key + type: string + generateCertificateAuthority: + type: boolean + renewalDays: + minimum: 1 + type: integer + validityDays: + minimum: 1 + type: integer + type: object + clusterCa: + properties: + certificateExpirationPolicy: + enum: + - renew-certificate + - replace-key + type: string + generateCertificateAuthority: + type: boolean + renewalDays: + minimum: 1 + type: integer + validityDays: + minimum: 1 + type: integer + type: object + entityOperator: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + template: + properties: + deployment: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + pod: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + imagePullSecrets: + items: + properties: + name: + type: string + type: object + type: array + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + securityContext: + properties: + fsGroup: + type: integer + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + supplementalGroups: + items: + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + type: object + terminationGracePeriodSeconds: + minimum: 0 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + type: object + tlsSidecar: + properties: + image: + type: string + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logLevel: + enum: + - emerg + - alert + - crit + - err + - warning + - notice + - info + - debug + type: string + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + resources: + properties: + limits: + type: object + requests: + type: object + type: object + type: object + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + topicOperator: + properties: + image: + type: string + jvmOptions: + properties: + gcLoggingEnabled: + type: boolean + type: object + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logging: + properties: + loggers: + type: object + name: + type: string + type: + enum: + - inline + - external + type: string + required: + - type + type: object + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + reconciliationIntervalSeconds: + minimum: 0 + type: integer + resources: + properties: + limits: + type: object + requests: + type: object + type: object + topicMetadataMaxAttempts: + minimum: 0 + type: integer + watchedNamespace: + type: string + zookeeperSessionTimeoutSeconds: + minimum: 0 + type: integer + type: object + userOperator: + properties: + image: + type: string + jvmOptions: + properties: + gcLoggingEnabled: + type: boolean + type: object + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logging: + properties: + loggers: + type: object + name: + type: string + type: + enum: + - inline + - external + type: string + required: + - type + type: object + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + reconciliationIntervalSeconds: + minimum: 0 + type: integer + resources: + properties: + limits: + type: object + requests: + type: object + type: object + watchedNamespace: + type: string + zookeeperSessionTimeoutSeconds: + minimum: 0 + type: integer + type: object + type: object + kafka: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + authorization: + properties: + superUsers: + items: + type: string + type: array + type: + enum: + - simple + type: string + required: + - type + type: object + brokerRackInitImage: + type: string + config: + type: object + image: + type: string + jvmOptions: + properties: + -XX: + type: object + -Xms: + pattern: '[0-9]+[mMgG]?' + type: string + -Xmx: + pattern: '[0-9]+[mMgG]?' + type: string + gcLoggingEnabled: + type: boolean + type: object + listeners: + properties: + external: + properties: + authentication: + properties: + type: + enum: + - tls + - scram-sha-512 + type: string + required: + - type + type: object + configuration: + properties: + bootstrap: + properties: + address: + type: string + dnsAnnotations: + type: object + host: + type: string + required: + - host + type: object + brokers: + items: + properties: + advertisedHost: + type: string + advertisedPort: + type: integer + broker: + type: integer + dnsAnnotations: + type: object + host: + type: string + required: + - host + type: object + type: array + type: object + networkPolicyPeers: + items: + properties: + ipBlock: + properties: + cidr: + type: string + except: + items: + type: string + type: array + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + podSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + type: object + type: array + overrides: + properties: + bootstrap: + properties: + address: + type: string + nodePort: + type: integer + type: object + brokers: + items: + properties: + advertisedHost: + type: string + advertisedPort: + type: integer + broker: + type: integer + nodePort: + type: integer + type: object + type: array + type: object + tls: + type: boolean + type: + enum: + - route + - loadbalancer + - nodeport + - ingress + type: string + required: + - type + type: object + plain: + properties: + authentication: + properties: + type: + enum: + - tls + - scram-sha-512 + type: string + required: + - type + type: object + networkPolicyPeers: + items: + properties: + ipBlock: + properties: + cidr: + type: string + except: + items: + type: string + type: array + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + podSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + type: object + type: array + type: object + tls: + properties: + authentication: + properties: + type: + enum: + - tls + - scram-sha-512 + type: string + required: + - type + type: object + networkPolicyPeers: + items: + properties: + ipBlock: + properties: + cidr: + type: string + except: + items: + type: string + type: array + type: object + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + podSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + type: object + type: array + type: object + type: object + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logging: + properties: + loggers: + type: object + name: + type: string + type: + enum: + - inline + - external + type: string + required: + - type + type: object + metrics: + type: object + rack: + properties: + topologyKey: + example: failure-domain.beta.kubernetes.io/zone + type: string + required: + - topologyKey + type: object + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + replicas: + minimum: 1 + type: integer + resources: + properties: + limits: + type: object + requests: + type: object + type: object + storage: + properties: + class: + type: string + deleteClaim: + type: boolean + id: + minimum: 0 + type: integer + overrides: + items: + properties: + broker: + type: integer + class: + type: string + type: object + type: array + selector: + type: object + size: + type: string + type: + enum: + - ephemeral + - persistent-claim + - jbod + type: string + volumes: + items: + properties: + class: + type: string + deleteClaim: + type: boolean + id: + minimum: 0 + type: integer + overrides: + items: + properties: + broker: + type: integer + class: + type: string + type: object + type: array + selector: + type: object + size: + type: string + type: + enum: + - ephemeral + - persistent-claim + type: string + required: + - type + type: object + type: array + required: + - type + type: object + template: + properties: + bootstrapService: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + brokersService: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + externalBootstrapIngress: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + externalBootstrapRoute: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + externalBootstrapService: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + perPodIngress: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + perPodRoute: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + perPodService: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + pod: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + imagePullSecrets: + items: + properties: + name: + type: string + type: object + type: array + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + securityContext: + properties: + fsGroup: + type: integer + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + supplementalGroups: + items: + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + type: object + terminationGracePeriodSeconds: + minimum: 0 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + podDisruptionBudget: + properties: + maxUnavailable: + minimum: 0 + type: integer + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + statefulset: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + type: object + tlsSidecar: + properties: + image: + type: string + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logLevel: + enum: + - emerg + - alert + - crit + - err + - warning + - notice + - info + - debug + type: string + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + resources: + properties: + limits: + type: object + requests: + type: object + type: object + type: object + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + required: + - replicas + - storage + - listeners + type: object + maintenanceTimeWindows: + items: + type: string + type: array + topicOperator: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + image: + type: string + jvmOptions: + properties: + gcLoggingEnabled: + type: boolean + type: object + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logging: + properties: + loggers: + type: object + name: + type: string + type: + enum: + - inline + - external + type: string + required: + - type + type: object + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + reconciliationIntervalSeconds: + minimum: 0 + type: integer + resources: + properties: + limits: + type: object + requests: + type: object + type: object + tlsSidecar: + properties: + image: + type: string + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logLevel: + enum: + - emerg + - alert + - crit + - err + - warning + - notice + - info + - debug + type: string + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + resources: + properties: + limits: + type: object + requests: + type: object + type: object + type: object + topicMetadataMaxAttempts: + minimum: 0 + type: integer + watchedNamespace: + type: string + zookeeperSessionTimeoutSeconds: + minimum: 0 + type: integer + type: object + zookeeper: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + config: + type: object + image: + type: string + jvmOptions: + properties: + -XX: + type: object + -Xms: + pattern: '[0-9]+[mMgG]?' + type: string + -Xmx: + pattern: '[0-9]+[mMgG]?' + type: string + gcLoggingEnabled: + type: boolean + type: object + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logging: + properties: + loggers: + type: object + name: + type: string + type: + enum: + - inline + - external + type: string + required: + - type + type: object + metrics: + type: object + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + replicas: + minimum: 1 + type: integer + resources: + properties: + limits: + type: object + requests: + type: object + type: object + storage: + properties: + class: + type: string + deleteClaim: + type: boolean + id: + minimum: 0 + type: integer + overrides: + items: + properties: + broker: + type: integer + class: + type: string + type: object + type: array + selector: + type: object + size: + type: string + type: + enum: + - ephemeral + - persistent-claim + type: string + required: + - type + type: object + template: + properties: + clientService: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + nodesService: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + pod: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + imagePullSecrets: + items: + properties: + name: + type: string + type: object + type: array + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + securityContext: + properties: + fsGroup: + type: integer + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + supplementalGroups: + items: + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + type: object + terminationGracePeriodSeconds: + minimum: 0 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + podDisruptionBudget: + properties: + maxUnavailable: + minimum: 0 + type: integer + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + statefulset: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + type: object + tlsSidecar: + properties: + image: + type: string + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logLevel: + enum: + - emerg + - alert + - crit + - err + - warning + - notice + - info + - debug + type: string + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + resources: + properties: + limits: + type: object + requests: + type: object + type: object + type: object + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + required: + - replicas + - storage + type: object + required: + - kafka + - zookeeper + type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + type: string + reason: + type: string + status: + type: string + type: + type: string + type: object + type: array + listeners: + items: + properties: + addresses: + items: + properties: + host: + type: string + port: + type: integer + type: object + type: array + type: + type: string + type: object + type: array + type: object + version: v1beta1 + versions: + - name: v1beta1 + served: true + storage: true + - name: v1alpha1 + served: true + storage: false +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/manifests/strimzi-kafka-operator/KafkaBridge-v1alpha1.crd.yaml b/manifests/strimzi-kafka-operator/KafkaBridge-v1alpha1.crd.yaml new file mode 100644 index 000000000..6b5bad039 --- /dev/null +++ b/manifests/strimzi-kafka-operator/KafkaBridge-v1alpha1.crd.yaml @@ -0,0 +1,500 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app: strimzi + name: kafkabridges.kafka.strimzi.io +spec: + additionalPrinterColumns: + - JSONPath: .spec.replicas + description: The desired number of Kafka Bridge replicas + name: Desired replicas + type: integer + - JSONPath: .spec.bootstrapServers + description: The boostrap servers + name: Bootstrap Servers + priority: 1 + type: string + group: kafka.strimzi.io + names: + kind: KafkaBridge + listKind: KafkaBridgeList + plural: kafkabridges + shortNames: + - kb + singular: kafkabridge + scope: Namespaced + validation: + openAPIV3Schema: + properties: + spec: + properties: + authentication: + properties: + certificateAndKey: + properties: + certificate: + type: string + key: + type: string + secretName: + type: string + required: + - certificate + - key + - secretName + type: object + passwordSecret: + properties: + password: + type: string + secretName: + type: string + required: + - password + - secretName + type: object + type: + enum: + - tls + - scram-sha-512 + - plain + type: string + username: + type: string + required: + - type + type: object + bootstrapServers: + type: string + consumer: + properties: + config: + type: object + type: object + http: + properties: + port: + minimum: 1023 + type: integer + type: object + image: + type: string + jvmOptions: + properties: + -XX: + type: object + -Xms: + pattern: '[0-9]+[mMgG]?' + type: string + -Xmx: + pattern: '[0-9]+[mMgG]?' + type: string + gcLoggingEnabled: + type: boolean + type: object + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logging: + properties: + loggers: + type: object + name: + type: string + type: + enum: + - inline + - external + type: string + required: + - type + type: object + metrics: + type: object + producer: + properties: + config: + type: object + type: object + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + replicas: + minimum: 0 + type: integer + resources: + properties: + limits: + type: object + requests: + type: object + type: object + template: + properties: + apiService: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + deployment: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + pod: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + imagePullSecrets: + items: + properties: + name: + type: string + type: object + type: array + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + securityContext: + properties: + fsGroup: + type: integer + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + supplementalGroups: + items: + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + type: object + terminationGracePeriodSeconds: + minimum: 0 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + podDisruptionBudget: + properties: + maxUnavailable: + minimum: 0 + type: integer + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + type: object + tls: + properties: + trustedCertificates: + items: + properties: + certificate: + type: string + secretName: + type: string + required: + - certificate + - secretName + type: object + type: array + type: object + required: + - bootstrapServers + type: object + version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/manifests/strimzi-kafka-operator/KafkaConnect-v1beta1.crd.yaml b/manifests/strimzi-kafka-operator/KafkaConnect-v1beta1.crd.yaml new file mode 100644 index 000000000..b04fc8b26 --- /dev/null +++ b/manifests/strimzi-kafka-operator/KafkaConnect-v1beta1.crd.yaml @@ -0,0 +1,791 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app: strimzi + name: kafkaconnects.kafka.strimzi.io +spec: + additionalPrinterColumns: + - JSONPath: .spec.replicas + description: The desired number of Kafka Connect replicas + name: Desired replicas + type: integer + group: kafka.strimzi.io + names: + kind: KafkaConnect + listKind: KafkaConnectList + plural: kafkaconnects + shortNames: + - kc + singular: kafkaconnect + scope: Namespaced + validation: + openAPIV3Schema: + properties: + spec: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + authentication: + properties: + certificateAndKey: + properties: + certificate: + type: string + key: + type: string + secretName: + type: string + required: + - certificate + - key + - secretName + type: object + passwordSecret: + properties: + password: + type: string + secretName: + type: string + required: + - password + - secretName + type: object + type: + enum: + - tls + - scram-sha-512 + - plain + type: string + username: + type: string + required: + - type + type: object + bootstrapServers: + type: string + config: + type: object + externalConfiguration: + properties: + env: + items: + properties: + name: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + type: object + type: object + required: + - name + - valueFrom + type: object + type: array + volumes: + items: + properties: + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + name: + type: string + secret: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + required: + - name + type: object + type: array + type: object + image: + type: string + jvmOptions: + properties: + -XX: + type: object + -Xms: + pattern: '[0-9]+[mMgG]?' + type: string + -Xmx: + pattern: '[0-9]+[mMgG]?' + type: string + gcLoggingEnabled: + type: boolean + type: object + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logging: + properties: + loggers: + type: object + name: + type: string + type: + enum: + - inline + - external + type: string + required: + - type + type: object + metrics: + type: object + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + replicas: + type: integer + resources: + properties: + limits: + type: object + requests: + type: object + type: object + template: + properties: + apiService: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + deployment: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + pod: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + imagePullSecrets: + items: + properties: + name: + type: string + type: object + type: array + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + securityContext: + properties: + fsGroup: + type: integer + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + supplementalGroups: + items: + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + type: object + terminationGracePeriodSeconds: + minimum: 0 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + podDisruptionBudget: + properties: + maxUnavailable: + minimum: 0 + type: integer + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + type: object + tls: + properties: + trustedCertificates: + items: + properties: + certificate: + type: string + secretName: + type: string + required: + - certificate + - secretName + type: object + type: array + type: object + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + required: + - bootstrapServers + type: object + version: v1beta1 + versions: + - name: v1beta1 + served: true + storage: true + - name: v1alpha1 + served: true + storage: false +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/manifests/strimzi-kafka-operator/KafkaConnectS2I-v1beta1.crd.yaml b/manifests/strimzi-kafka-operator/KafkaConnectS2I-v1beta1.crd.yaml new file mode 100644 index 000000000..851b08fbe --- /dev/null +++ b/manifests/strimzi-kafka-operator/KafkaConnectS2I-v1beta1.crd.yaml @@ -0,0 +1,793 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app: strimzi + name: kafkaconnects2is.kafka.strimzi.io +spec: + additionalPrinterColumns: + - JSONPath: .spec.replicas + description: The desired number of Kafka Connect replicas + name: Desired replicas + type: integer + group: kafka.strimzi.io + names: + kind: KafkaConnectS2I + listKind: KafkaConnectS2IList + plural: kafkaconnects2is + shortNames: + - kcs2i + singular: kafkaconnects2i + scope: Namespaced + validation: + openAPIV3Schema: + properties: + spec: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + authentication: + properties: + certificateAndKey: + properties: + certificate: + type: string + key: + type: string + secretName: + type: string + required: + - certificate + - key + - secretName + type: object + passwordSecret: + properties: + password: + type: string + secretName: + type: string + required: + - password + - secretName + type: object + type: + enum: + - tls + - scram-sha-512 + - plain + type: string + username: + type: string + required: + - type + type: object + bootstrapServers: + type: string + config: + type: object + externalConfiguration: + properties: + env: + items: + properties: + name: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + type: object + type: object + required: + - name + - valueFrom + type: object + type: array + volumes: + items: + properties: + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + name: + type: string + secret: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + required: + - name + type: object + type: array + type: object + image: + type: string + insecureSourceRepository: + type: boolean + jvmOptions: + properties: + -XX: + type: object + -Xms: + pattern: '[0-9]+[mMgG]?' + type: string + -Xmx: + pattern: '[0-9]+[mMgG]?' + type: string + gcLoggingEnabled: + type: boolean + type: object + livenessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + logging: + properties: + loggers: + type: object + name: + type: string + type: + enum: + - inline + - external + type: string + required: + - type + type: object + metrics: + type: object + readinessProbe: + properties: + failureThreshold: + type: integer + initialDelaySeconds: + minimum: 0 + type: integer + periodSeconds: + type: integer + successThreshold: + type: integer + timeoutSeconds: + minimum: 0 + type: integer + type: object + replicas: + type: integer + resources: + properties: + limits: + type: object + requests: + type: object + type: object + template: + properties: + apiService: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + deployment: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + pod: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + imagePullSecrets: + items: + properties: + name: + type: string + type: object + type: array + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + securityContext: + properties: + fsGroup: + type: integer + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + supplementalGroups: + items: + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + type: object + terminationGracePeriodSeconds: + minimum: 0 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + podDisruptionBudget: + properties: + maxUnavailable: + minimum: 0 + type: integer + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + type: object + tls: + properties: + trustedCertificates: + items: + properties: + certificate: + type: string + secretName: + type: string + required: + - certificate + - secretName + type: object + type: array + type: object + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + required: + - bootstrapServers + type: object + version: v1beta1 + versions: + - name: v1beta1 + served: true + storage: true + - name: v1alpha1 + served: true + storage: false +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/manifests/strimzi-kafka-operator/KafkaMirrorMaker-v1beta1.crd.yaml b/manifests/strimzi-kafka-operator/KafkaMirrorMaker-v1beta1.crd.yaml new file mode 100644 index 000000000..32cbd341f --- /dev/null +++ b/manifests/strimzi-kafka-operator/KafkaMirrorMaker-v1beta1.crd.yaml @@ -0,0 +1,755 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app: strimzi + name: kafkamirrormakers.kafka.strimzi.io +spec: + additionalPrinterColumns: + - JSONPath: .spec.replicas + description: The desired number of Kafka Mirror Maker replicas + name: Desired replicas + type: integer + - JSONPath: .spec.consumer.bootstrapServers + description: The boostrap servers for the consumer + name: Consumer Bootstrap Servers + priority: 1 + type: string + - JSONPath: .spec.producer.bootstrapServers + description: The boostrap servers for the producer + name: Producer Bootstrap Servers + priority: 1 + type: string + group: kafka.strimzi.io + names: + kind: KafkaMirrorMaker + listKind: KafkaMirrorMakerList + plural: kafkamirrormakers + shortNames: + - kmm + singular: kafkamirrormaker + scope: Namespaced + validation: + openAPIV3Schema: + properties: + spec: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + consumer: + properties: + authentication: + properties: + certificateAndKey: + properties: + certificate: + type: string + key: + type: string + secretName: + type: string + required: + - certificate + - key + - secretName + type: object + passwordSecret: + properties: + password: + type: string + secretName: + type: string + required: + - password + - secretName + type: object + type: + enum: + - tls + - scram-sha-512 + - plain + type: string + username: + type: string + required: + - type + type: object + bootstrapServers: + type: string + config: + type: object + groupId: + type: string + numStreams: + minimum: 1 + type: integer + tls: + properties: + trustedCertificates: + items: + properties: + certificate: + type: string + secretName: + type: string + required: + - certificate + - secretName + type: object + type: array + type: object + required: + - groupId + - bootstrapServers + type: object + image: + type: string + jvmOptions: + properties: + -XX: + type: object + -Xms: + pattern: '[0-9]+[mMgG]?' + type: string + -Xmx: + pattern: '[0-9]+[mMgG]?' + type: string + gcLoggingEnabled: + type: boolean + type: object + logging: + properties: + loggers: + type: object + name: + type: string + type: + enum: + - inline + - external + type: string + required: + - type + type: object + metrics: + type: object + producer: + properties: + authentication: + properties: + certificateAndKey: + properties: + certificate: + type: string + key: + type: string + secretName: + type: string + required: + - certificate + - key + - secretName + type: object + passwordSecret: + properties: + password: + type: string + secretName: + type: string + required: + - password + - secretName + type: object + type: + enum: + - tls + - scram-sha-512 + - plain + type: string + username: + type: string + required: + - type + type: object + bootstrapServers: + type: string + config: + type: object + tls: + properties: + trustedCertificates: + items: + properties: + certificate: + type: string + secretName: + type: string + required: + - certificate + - secretName + type: object + type: array + type: object + required: + - bootstrapServers + type: object + replicas: + minimum: 1 + type: integer + resources: + properties: + limits: + type: object + requests: + type: object + type: object + template: + properties: + deployment: + properties: + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + pod: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + type: object + type: array + type: object + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + weight: + type: integer + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + type: array + matchLabels: + type: object + type: object + namespaces: + items: + type: string + type: array + topologyKey: + type: string + type: object + type: array + type: object + type: object + imagePullSecrets: + items: + properties: + name: + type: string + type: object + type: array + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + securityContext: + properties: + fsGroup: + type: integer + runAsGroup: + type: integer + runAsNonRoot: + type: boolean + runAsUser: + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + supplementalGroups: + items: + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + type: object + type: array + type: object + terminationGracePeriodSeconds: + minimum: 0 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + podDisruptionBudget: + properties: + maxUnavailable: + minimum: 0 + type: integer + metadata: + properties: + annotations: + type: object + labels: + type: object + type: object + type: object + type: object + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + whitelist: + type: string + required: + - replicas + - whitelist + - consumer + - producer + type: object + version: v1beta1 + versions: + - name: v1beta1 + served: true + storage: true + - name: v1alpha1 + served: true + storage: false +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/manifests/strimzi-kafka-operator/KafkaTopic-v1beta1.crd.yaml b/manifests/strimzi-kafka-operator/KafkaTopic-v1beta1.crd.yaml new file mode 100644 index 000000000..26161c54c --- /dev/null +++ b/manifests/strimzi-kafka-operator/KafkaTopic-v1beta1.crd.yaml @@ -0,0 +1,60 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app: strimzi + name: kafkatopics.kafka.strimzi.io +spec: + additionalPrinterColumns: + - JSONPath: .spec.partitions + description: The desired number of partitions in the topic + name: Partitions + type: integer + - JSONPath: .spec.replicas + description: The desired number of replicas of each partition + name: Replication factor + type: integer + group: kafka.strimzi.io + names: + kind: KafkaTopic + listKind: KafkaTopicList + plural: kafkatopics + shortNames: + - kt + singular: kafkatopic + scope: Namespaced + validation: + openAPIV3Schema: + properties: + spec: + properties: + config: + type: object + partitions: + minimum: 1 + type: integer + replicas: + maximum: 32767 + minimum: 1 + type: integer + topicName: + type: string + required: + - partitions + - replicas + type: object + version: v1beta1 + versions: + - name: v1beta1 + served: true + storage: true + - name: v1alpha1 + served: true + storage: false +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/manifests/strimzi-kafka-operator/KafkaUser-v1beta1.crd.yaml b/manifests/strimzi-kafka-operator/KafkaUser-v1beta1.crd.yaml new file mode 100644 index 000000000..aadcfeedd --- /dev/null +++ b/manifests/strimzi-kafka-operator/KafkaUser-v1beta1.crd.yaml @@ -0,0 +1,116 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app: strimzi + name: kafkausers.kafka.strimzi.io +spec: + additionalPrinterColumns: + - JSONPath: .spec.authentication.type + description: How the user is authenticated + name: Authentication + type: string + - JSONPath: .spec.authorization.type + description: How the user is authorised + name: Authorization + type: string + group: kafka.strimzi.io + names: + kind: KafkaUser + listKind: KafkaUserList + plural: kafkausers + shortNames: + - ku + singular: kafkauser + scope: Namespaced + validation: + openAPIV3Schema: + properties: + spec: + properties: + authentication: + properties: + type: + enum: + - tls + - scram-sha-512 + type: string + required: + - type + type: object + authorization: + properties: + acls: + items: + properties: + host: + type: string + operation: + enum: + - Read + - Write + - Create + - Delete + - Alter + - Describe + - ClusterAction + - AlterConfigs + - DescribeConfigs + - IdempotentWrite + - All + type: string + resource: + properties: + name: + type: string + patternType: + enum: + - literal + - prefix + type: string + type: + enum: + - topic + - group + - cluster + - transactionalId + type: string + required: + - type + type: object + type: + enum: + - allow + - deny + type: string + required: + - operation + - resource + type: object + type: array + type: + enum: + - simple + type: string + required: + - acls + - type + type: object + required: + - authentication + type: object + version: v1beta1 + versions: + - name: v1beta1 + served: true + storage: true + - name: v1alpha1 + served: true + storage: false +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.11.0.clusterserviceversion.yaml b/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.11.0.clusterserviceversion.yaml new file mode 100644 index 000000000..b5d495c28 --- /dev/null +++ b/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.11.0.clusterserviceversion.yaml @@ -0,0 +1,526 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: '[{"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"Kafka","metadata":{"name":"my-cluster"},"spec":{"kafka":{"version":"2.1.0","replicas":3,"listeners":{"plain":{},"tls":{}},"config":{"offsets.topic.replication.factor":3,"transaction.state.log.replication.factor":3,"transaction.state.log.min.isr":2},"storage":{"type":"ephemeral"}},"zookeeper":{"replicas":3,"storage":{"type":"ephemeral"}},"entityOperator":{"topicOperator":{},"userOperator":{}}}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaConnect","metadata":{"name":"my-connect-cluster"},"spec":{"version":"2.1.0","replicas":1,"bootstrapServers":"my-cluster-kafka-bootstrap:9093","tls":{"trustedCertificates":[{"secretName":"my-cluster-cluster-ca-cert","certificate":"ca.crt"}]}}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaConnectS2I","metadata":{"name":"my-connect-cluster"},"spec":{"version":"2.1.0","replicas":1,"bootstrapServers":"my-cluster-kafka-bootstrap:9093","tls":{"trustedCertificates":[{"secretName":"my-cluster-cluster-ca-cert","certificate":"ca.crt"}]}}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaMirrorMaker","metadata":{"name":"my-mirror-maker"},"spec":{"version":"2.1.0","replicas":1,"consumer":{"bootstrapServers":"my-source-cluster-kafka-bootstrap:9092","groupId":"my-source-group-id"},"producer":{"bootstrapServers":"my-target-cluster-kafka-bootstrap:9092"},"whitelist":".*"}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaTopic","metadata":{"name":"my-topic","labels":{"strimzi.io/cluster":"my-cluster"}},"spec":{"partitions":10,"replicas":3,"config":{"retention.ms":604800000,"segment.bytes":1073741824}}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaUser","metadata":{"name":"my-user","labels":{"strimzi.io/cluster":"my-cluster"}},"spec":{"authentication":{"type":"tls"},"authorization":{"type":"simple","acls":[{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Read","host":"*"},{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Describe","host":"*"},{"resource":{"type":"group","name":"my-group","patternType":"literal"},"operation":"Read","host":"*"},{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Write","host":"*"},{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Create","host":"*"},{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Describe","host":"*"}]}}}]' + capabilities: Seamless Upgrades + categories: Streaming & Messaging + certified: "false" + containerImage: docker.io/strimzi/cluster-operator:0.11.0 + createdAt: "2019-02-25 22:09:00" + description: Run an Apache Kafka cluster, including Kafka Connect, ZooKeeper and + more. + repository: https://github.com/strimzi/strimzi-kafka-operator + support: Strimzi + creationTimestamp: null + name: strimzi-cluster-operator.v0.11.0 + namespace: placeholder +spec: + MinKubeVersion: 1.9.0 + customresourcedefinitions: + owned: + - description: Represents a Kafka cluster + displayName: Kafka + kind: Kafka + name: kafkas.kafka.strimzi.io + version: v1beta1 + - description: Represents a topic inside a Kafka cluster + displayName: Kafka Topic + kind: KafkaTopic + name: kafkatopics.kafka.strimzi.io + version: v1beta1 + - description: Represents a user inside a Kafka cluster + displayName: Kafka User + kind: KafkaUser + name: kafkausers.kafka.strimzi.io + version: v1beta1 + - description: Represents a Kafka Connect cluster + displayName: Kafka Connect + kind: KafkaConnect + name: kafkaconnects.kafka.strimzi.io + version: v1beta1 + - description: Represents a Kafka Connect cluster with Source 2 Image support + displayName: Kafka Connect Source to Image + kind: KafkaConnectS2I + name: kafkaconnects2is.kafka.strimzi.io + version: v1beta1 + - description: Represents a Kafka MirrorMaker cluster + displayName: Kafka Mirror Maker + kind: KafkaMirrorMaker + name: kafkamirrormakers.kafka.strimzi.io + version: v1beta1 + description: | + Strimzi provides a way to run an [Apache Kafka](https://kafka.apache.org) cluster on [Kubernetes](https://kubernetes.io/) or [OpenShift](https://www.openshift.com/) in various deployment configurations. See our [website](https://strimzi.io) for more details about the project. + ### Supported Features + * **Manages the Kafka Cluster** - Deploys and manages all of the components of this complex application, including dependencies like ZooKeeper that are traditionally hard to administer. + * **Includes Kafka Connect** - Allows for configuration of common data sources and sinks to move data into and out of the Kafka cluster. + * **Topic Management** - Creates and manages Kafka Topics within the cluster. + * **User Management** - Creates and manages Kafka Users within the cluster. + ### Documentation + Documentation to the current _master_ branch as well as all releases can be found on our [website](https://strimzi.io/docs/0.11.0). + ### Getting help + If you encounter any issues while using Strimzi, you can get help using: + * [Strimzi mailing list](https://www.redhat.com/mailman/listinfo/strimzi) + * [Strimzi Slack workspace](https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY) + ### Contributing + You can contribute by: + * Raising any issues you find using Strimzi + * Fixing issues by opening Pull Requests + * Improving documentation + * Talking about Strimzi + + All bugs, tasks or enhancements are tracked as [GitHub issues](https://github.com/strimzi/strimzi-kafka-operator/issues). Issues which might be a good start for new contributors are marked with ["good-start"](https://github.com/strimzi/strimzi-kafka-operator/labels/good-start) label. + + The [Hacking guide](https://github.com/strimzi/strimzi-kafka-operator/blob/master/HACKING.md) describes how to build Strimzi and how to test your changes before submitting a patch or opening a PR. + + The [Documentation Contributor Guide](https://strimzi.io/contributing/guide/) describes how to contribute to Strimzi documentation. + + If you want to get in touch with us first before contributing, you can use: + * [Strimzi mailing list](https://www.redhat.com/mailman/listinfo/strimzi) + * [Strimzi Slack workspace](https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY) + ### License + Strimzi is licensed under the [Apache License, Version 2.0](https://github.com/strimzi/strimzi-kafka-operator/blob/master/LICENSE). + displayName: Strimzi Kafka + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTk1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTk1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzE5MkM0Nzt9Cgkuc3Qxe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQoJLnN0MntmaWxsOnVybCgjU1ZHSURfMl8pO30KCS5zdDN7ZmlsbDp1cmwoI1NWR0lEXzNfKTt9Cgkuc3Q0e2ZpbGw6dXJsKCNTVkdJRF80Xyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfNV8pO30KCS5zdDZ7ZmlsbDp1cmwoI1NWR0lEXzZfKTt9Cjwvc3R5bGU+CjxnPgoJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIyNTYsNSAxLDE1Mi4yIDEsNDQ2LjcgMjU2LDU5My45IDUxMSw0NDYuNyA1MTEsMTUyLjIgMjU2LDUgCSIvPgoJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMDkuNDk5NiIgeTE9Ijg0Ljk2MjIiIHgyPSI0NDAuOTUxNyIgeTI9Ijc5My44MTAyIj4KCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGIi8+CgkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzU0QkFEOCIvPgoJPC9saW5lYXJHcmFkaWVudD4KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yNTYsNTYxbDIyNi41LTEzMC44di0yNi4zYy0zNy42LTcuMy04NC45LTE0LjMtMTQzLjUtMTkuM2MtMTk5LjItMTcuMi0xNC44LTU2LjYsNjguOS0xMjcuMQoJCVMxMzAsMTY1LjcsMTMwLDE2NS43czE0Ny42LDMxLDEzMi44LDUwYy0xMC41LDEzLjUtMTM0LjMsNDMuNS0yMzMuMyw4OC4xdjEyNi41TDI1Niw1NjF6Ii8+CjwvZz4KPC9zdmc+Cg== + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - kafka.strimzi.io + resources: + - kafkas + - kafkaconnects + - kafkaconnects2is + - kafkamirrormakers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - delete + - apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - endpoints + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - deployments + - deployments/scale + - replicasets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - apps + resources: + - deployments + - deployments/scale + - deployments/status + - statefulsets + - replicasets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - extensions + resources: + - replicationcontrollers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - apps.openshift.io + resources: + - deploymentconfigs + - deploymentconfigs/scale + - deploymentconfigs/status + - deploymentconfigs/finalizers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - build.openshift.io + resources: + - buildconfigs + - builds + verbs: + - create + - delete + - get + - list + - patch + - watch + - update + - apiGroups: + - image.openshift.io + resources: + - imagestreams + - imagestreams/status + verbs: + - create + - delete + - get + - list + - watch + - patch + - update + - apiGroups: + - "" + resources: + - replicationcontrollers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - extensions + resources: + - networkpolicies + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - route.openshift.io + resources: + - routes + - routes/custom-host + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - apiGroups: + - kafka.strimzi.io + resources: + - kafkatopics + verbs: + - get + - list + - watch + - create + - patch + - update + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - kafka.strimzi.io + resources: + - kafkausers + verbs: + - get + - list + - watch + - create + - patch + - update + - delete + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + verbs: + - get + - create + - delete + - patch + - update + serviceAccountName: strimzi-cluster-operator + deployments: + - name: strimzi-cluster-operator + spec: + replicas: 1 + selector: + matchLabels: + name: strimzi-cluster-operator + strategy: + type: Recreate + template: + metadata: + labels: + name: strimzi-cluster-operator + spec: + containers: + - env: + - name: STRIMZI_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS + value: "120000" + - name: STRIMZI_OPERATION_TIMEOUT_MS + value: "300000" + - name: STRIMZI_DEFAULT_ZOOKEEPER_IMAGE + value: strimzi/zookeeper:0.11.0-kafka-2.0.0 + - name: STRIMZI_KAFKA_IMAGES + value: | + 2.0.0=strimzi/kafka:0.11.0-kafka-2.0.0 + 2.0.1=strimzi/kafka:0.11.0-kafka-2.0.1 + 2.1.0=strimzi/kafka:0.11.0-kafka-2.1.0 + - name: STRIMZI_KAFKA_CONNECT_IMAGES + value: | + 2.0.0=strimzi/kafka-connect:0.11.0-kafka-2.0.0 + 2.0.1=strimzi/kafka-connect:0.11.0-kafka-2.0.1 + 2.1.0=strimzi/kafka-connect:0.11.0-kafka-2.1.0 + - name: STRIMZI_KAFKA_CONNECT_S2I_IMAGES + value: | + 2.0.0=strimzi/kafka-connect-s2i:0.11.0-kafka-2.0.0 + 2.0.1=strimzi/kafka-connect-s2i:0.11.0-kafka-2.0.1 + 2.1.0=strimzi/kafka-connect-s2i:0.11.0-kafka-2.1.0 + - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES + value: | + 2.0.0=strimzi/kafka-mirror-maker:0.11.0-kafka-2.0.0 + 2.0.1=strimzi/kafka-mirror-maker:0.11.0-kafka-2.0.1 + 2.1.0=strimzi/kafka-mirror-maker:0.11.0-kafka-2.1.0 + - name: STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE + value: strimzi/topic-operator:0.11.0 + - name: STRIMZI_DEFAULT_USER_OPERATOR_IMAGE + value: strimzi/user-operator:0.11.0 + - name: STRIMZI_DEFAULT_KAFKA_INIT_IMAGE + value: strimzi/kafka-init:0.11.0 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_ZOOKEEPER_IMAGE + value: strimzi/zookeeper-stunnel:0.11.0 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_KAFKA_IMAGE + value: strimzi/kafka-stunnel:0.11.0 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE + value: strimzi/entity-operator-stunnel:0.11.0 + - name: STRIMZI_CREATE_CLUSTER_ROLES + value: "TRUE" + - name: STRIMZI_LOG_LEVEL + value: INFO + image: strimzi/cluster-operator:0.11.0 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthy + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + name: strimzi-cluster-operator + readinessProbe: + httpGet: + path: /ready + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + resources: + limits: + cpu: 1000m + memory: 256Mi + requests: + cpu: 200m + memory: 256Mi + serviceAccountName: strimzi-cluster-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - kafka + - messaging + - kafka-connect + - kafka-streams + - data-streaming + - data-streams + - streaming + - streams + labels: + name: strimzi-cluster-operator + links: + - name: Website + url: https://strimzi.io/ + - name: Documentation + url: https://strimzi.io/docs/0.11.0/full.html + - name: Mailing list + url: https://www.redhat.com/mailman/listinfo/strimzi + - name: Slack + url: https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY + - name: GitHub + url: https://github.com/strimzi/strimzi-kafka-operator + maintainers: + - email: strimzi@redhat.com + name: Strimzi + maturity: stable + provider: + name: Red Hat + selector: + matchLabels: + name: strimzi-cluster-operator + version: 0.11.0 diff --git a/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.11.1.clusterserviceversion.yaml b/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.11.1.clusterserviceversion.yaml new file mode 100644 index 000000000..cfcffa7fe --- /dev/null +++ b/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.11.1.clusterserviceversion.yaml @@ -0,0 +1,529 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: '[{"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"Kafka","metadata":{"name":"my-cluster"},"spec":{"kafka":{"version":"2.1.0","replicas":3,"listeners":{"plain":{},"tls":{}},"config":{"offsets.topic.replication.factor":3,"transaction.state.log.replication.factor":3,"transaction.state.log.min.isr":2},"storage":{"type":"ephemeral"}},"zookeeper":{"replicas":3,"storage":{"type":"ephemeral"}},"entityOperator":{"topicOperator":{},"userOperator":{}}}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaConnect","metadata":{"name":"my-connect-cluster"},"spec":{"version":"2.1.0","replicas":1,"bootstrapServers":"my-cluster-kafka-bootstrap:9093","tls":{"trustedCertificates":[{"secretName":"my-cluster-cluster-ca-cert","certificate":"ca.crt"}]}}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaConnectS2I","metadata":{"name":"my-connect-cluster"},"spec":{"version":"2.1.0","replicas":1,"bootstrapServers":"my-cluster-kafka-bootstrap:9093","tls":{"trustedCertificates":[{"secretName":"my-cluster-cluster-ca-cert","certificate":"ca.crt"}]}}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaMirrorMaker","metadata":{"name":"my-mirror-maker"},"spec":{"version":"2.1.0","replicas":1,"consumer":{"bootstrapServers":"my-source-cluster-kafka-bootstrap:9092","groupId":"my-source-group-id"},"producer":{"bootstrapServers":"my-target-cluster-kafka-bootstrap:9092"},"whitelist":".*"}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaTopic","metadata":{"name":"my-topic","labels":{"strimzi.io/cluster":"my-cluster"}},"spec":{"partitions":10,"replicas":3,"config":{"retention.ms":604800000,"segment.bytes":1073741824}}}, + {"apiVersion":"kafka.strimzi.io/v1alpha1","kind":"KafkaUser","metadata":{"name":"my-user","labels":{"strimzi.io/cluster":"my-cluster"}},"spec":{"authentication":{"type":"tls"},"authorization":{"type":"simple","acls":[{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Read","host":"*"},{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Describe","host":"*"},{"resource":{"type":"group","name":"my-group","patternType":"literal"},"operation":"Read","host":"*"},{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Write","host":"*"},{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Create","host":"*"},{"resource":{"type":"topic","name":"my-topic","patternType":"literal"},"operation":"Describe","host":"*"}]}}}]' + capabilities: Seamless Upgrades + categories: Streaming & Messaging + certified: "false" + containerImage: docker.io/strimzi/cluster-operator:0.11.1 + createdAt: "2019-02-25 22:09:00" + description: Run an Apache Kafka cluster, including Kafka Connect, MirrorMaker + and more. + repository: https://github.com/strimzi/strimzi-kafka-operator + support: Strimzi + creationTimestamp: null + name: strimzi-cluster-operator.v0.11.1 + namespace: placeholder +spec: + MinKubeVersion: 1.9.0 + customresourcedefinitions: + owned: + - description: Represents a Kafka cluster + displayName: Kafka + kind: Kafka + name: kafkas.kafka.strimzi.io + version: v1beta1 + - description: Represents a topic inside a Kafka cluster + displayName: Kafka Topic + kind: KafkaTopic + name: kafkatopics.kafka.strimzi.io + version: v1beta1 + - description: Represents a user inside a Kafka cluster + displayName: Kafka User + kind: KafkaUser + name: kafkausers.kafka.strimzi.io + version: v1beta1 + - description: Represents a Kafka Connect cluster + displayName: Kafka Connect + kind: KafkaConnect + name: kafkaconnects.kafka.strimzi.io + version: v1beta1 + - description: Represents a Kafka Connect cluster with Source 2 Image support + displayName: Kafka Connect Source to Image + kind: KafkaConnectS2I + name: kafkaconnects2is.kafka.strimzi.io + version: v1beta1 + - description: Represents a Kafka MirrorMaker cluster + displayName: Kafka Mirror Maker + kind: KafkaMirrorMaker + name: kafkamirrormakers.kafka.strimzi.io + version: v1beta1 + description: | + Strimzi provides a way to run an [Apache Kafka®](https://kafka.apache.org) cluster on [Kubernetes](https://kubernetes.io/) or [OpenShift](https://www.openshift.com/) in various deployment configurations. See our [website](https://strimzi.io) for more details about the project. + ### Supported Features + * **Manages the Kafka Cluster** - Deploys and manages all of the components of this complex application, including dependencies like Apache ZooKeeper® that are traditionally hard to administer. + * **Includes Kafka Connect** - Allows for configuration of common data sources and sinks to move data into and out of the Kafka cluster. + * **Topic Management** - Creates and manages Kafka Topics within the cluster. + * **User Management** - Creates and manages Kafka Users within the cluster. + ### Upgrading your Clusters + The Strimzi Operator understands how to run and upgrade between a set of Kafka versions. When specifying a new version in your config, check to make sure you aren't using any features that may have been removed. See [the upgrade guide](https://strimzi.io/docs/latest/#assembly-upgrading-kafka-versions-str) for more information. + ### Documentation + Documentation to the current _master_ branch as well as all releases can be found on our [website](https://strimzi.io/documentation). + ### Getting help + If you encounter any issues while using Strimzi, you can get help using: + * [Strimzi mailing list](https://www.redhat.com/mailman/listinfo/strimzi) + * [Strimzi Slack workspace](https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY) + ### Contributing + You can contribute by: + * Raising any issues you find using Strimzi + * Fixing issues by opening Pull Requests + * Improving documentation + * Talking about Strimzi + + All bugs, tasks or enhancements are tracked as [GitHub issues](https://github.com/strimzi/strimzi-kafka-operator/issues). Issues which might be a good start for new contributors are marked with ["good-start"](https://github.com/strimzi/strimzi-kafka-operator/labels/good-start) label. + + The [Hacking guide](https://github.com/strimzi/strimzi-kafka-operator/blob/master/HACKING.md) describes how to build Strimzi and how to test your changes before submitting a patch or opening a PR. + + The [Documentation Contributor Guide](https://strimzi.io/contributing/guide/) describes how to contribute to Strimzi documentation. + + If you want to get in touch with us first before contributing, you can use: + * [Strimzi mailing list](https://www.redhat.com/mailman/listinfo/strimzi) + * [Strimzi Slack workspace](https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY) + ### License + Strimzi is licensed under the [Apache License, Version 2.0](https://github.com/strimzi/strimzi-kafka-operator/blob/master/LICENSE). + displayName: Strimzi Apache Kafka Operator + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTk1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTk1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzE5MkM0Nzt9Cgkuc3Qxe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQoJLnN0MntmaWxsOnVybCgjU1ZHSURfMl8pO30KCS5zdDN7ZmlsbDp1cmwoI1NWR0lEXzNfKTt9Cgkuc3Q0e2ZpbGw6dXJsKCNTVkdJRF80Xyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfNV8pO30KCS5zdDZ7ZmlsbDp1cmwoI1NWR0lEXzZfKTt9Cjwvc3R5bGU+CjxnPgoJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIyNTYsNSAxLDE1Mi4yIDEsNDQ2LjcgMjU2LDU5My45IDUxMSw0NDYuNyA1MTEsMTUyLjIgMjU2LDUgCSIvPgoJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMDkuNDk5NiIgeTE9Ijg0Ljk2MjIiIHgyPSI0NDAuOTUxNyIgeTI9Ijc5My44MTAyIj4KCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGIi8+CgkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzU0QkFEOCIvPgoJPC9saW5lYXJHcmFkaWVudD4KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yNTYsNTYxbDIyNi41LTEzMC44di0yNi4zYy0zNy42LTcuMy04NC45LTE0LjMtMTQzLjUtMTkuM2MtMTk5LjItMTcuMi0xNC44LTU2LjYsNjguOS0xMjcuMQoJCVMxMzAsMTY1LjcsMTMwLDE2NS43czE0Ny42LDMxLDEzMi44LDUwYy0xMC41LDEzLjUtMTM0LjMsNDMuNS0yMzMuMyw4OC4xdjEyNi41TDI1Niw1NjF6Ii8+CjwvZz4KPC9zdmc+Cg== + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - kafka.strimzi.io + resources: + - kafkas + - kafkaconnects + - kafkaconnects2is + - kafkamirrormakers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - delete + - apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - endpoints + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - deployments + - deployments/scale + - replicasets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - apps + resources: + - deployments + - deployments/scale + - deployments/status + - statefulsets + - replicasets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - extensions + resources: + - replicationcontrollers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - apps.openshift.io + resources: + - deploymentconfigs + - deploymentconfigs/scale + - deploymentconfigs/status + - deploymentconfigs/finalizers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - build.openshift.io + resources: + - buildconfigs + - builds + verbs: + - create + - delete + - get + - list + - patch + - watch + - update + - apiGroups: + - image.openshift.io + resources: + - imagestreams + - imagestreams/status + verbs: + - create + - delete + - get + - list + - watch + - patch + - update + - apiGroups: + - "" + resources: + - replicationcontrollers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - extensions + resources: + - networkpolicies + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - route.openshift.io + resources: + - routes + - routes/custom-host + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - apiGroups: + - kafka.strimzi.io + resources: + - kafkatopics + verbs: + - get + - list + - watch + - create + - patch + - update + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - kafka.strimzi.io + resources: + - kafkausers + verbs: + - get + - list + - watch + - create + - patch + - update + - delete + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + verbs: + - get + - create + - delete + - patch + - update + serviceAccountName: strimzi-cluster-operator + deployments: + - name: strimzi-cluster-operator + spec: + replicas: 1 + selector: + matchLabels: + name: strimzi-cluster-operator + strategy: + type: Recreate + template: + metadata: + labels: + name: strimzi-cluster-operator + spec: + containers: + - env: + - name: STRIMZI_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS + value: "120000" + - name: STRIMZI_OPERATION_TIMEOUT_MS + value: "300000" + - name: STRIMZI_DEFAULT_ZOOKEEPER_IMAGE + value: strimzi/zookeeper:0.11.1-kafka-2.0.0 + - name: STRIMZI_KAFKA_IMAGES + value: | + 2.0.0=strimzi/kafka:0.11.1-kafka-2.0.0 + 2.0.1=strimzi/kafka:0.11.1-kafka-2.0.1 + 2.1.0=strimzi/kafka:0.11.1-kafka-2.1.0 + - name: STRIMZI_KAFKA_CONNECT_IMAGES + value: | + 2.0.0=strimzi/kafka-connect:0.11.1-kafka-2.0.0 + 2.0.1=strimzi/kafka-connect:0.11.1-kafka-2.0.1 + 2.1.0=strimzi/kafka-connect:0.11.1-kafka-2.1.0 + - name: STRIMZI_KAFKA_CONNECT_S2I_IMAGES + value: | + 2.0.0=strimzi/kafka-connect-s2i:0.11.1-kafka-2.0.0 + 2.0.1=strimzi/kafka-connect-s2i:0.11.1-kafka-2.0.1 + 2.1.0=strimzi/kafka-connect-s2i:0.11.1-kafka-2.1.0 + - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES + value: | + 2.0.0=strimzi/kafka-mirror-maker:0.11.1-kafka-2.0.0 + 2.0.1=strimzi/kafka-mirror-maker:0.11.1-kafka-2.0.1 + 2.1.0=strimzi/kafka-mirror-maker:0.11.1-kafka-2.1.0 + - name: STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE + value: strimzi/topic-operator:0.11.1 + - name: STRIMZI_DEFAULT_USER_OPERATOR_IMAGE + value: strimzi/user-operator:0.11.1 + - name: STRIMZI_DEFAULT_KAFKA_INIT_IMAGE + value: strimzi/kafka-init:0.11.1 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_ZOOKEEPER_IMAGE + value: strimzi/zookeeper-stunnel:0.11.1 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_KAFKA_IMAGE + value: strimzi/kafka-stunnel:0.11.1 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE + value: strimzi/entity-operator-stunnel:0.11.1 + - name: STRIMZI_CREATE_CLUSTER_ROLES + value: "TRUE" + - name: STRIMZI_LOG_LEVEL + value: INFO + image: strimzi/cluster-operator:0.11.1 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthy + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + name: strimzi-cluster-operator + readinessProbe: + httpGet: + path: /ready + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + resources: + limits: + cpu: 1000m + memory: 256Mi + requests: + cpu: 200m + memory: 256Mi + serviceAccountName: strimzi-cluster-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - kafka + - messaging + - kafka-connect + - kafka-streams + - data-streaming + - data-streams + - streaming + - streams + labels: + name: strimzi-cluster-operator + links: + - name: Website + url: https://strimzi.io/ + - name: Documentation + url: https://strimzi.io/docs/0.11.1/full.html + - name: Mailing list + url: https://www.redhat.com/mailman/listinfo/strimzi + - name: Slack + url: https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY + - name: GitHub + url: https://github.com/strimzi/strimzi-kafka-operator + maintainers: + - email: strimzi@redhat.com + name: Strimzi + maturity: stable + provider: + name: Red Hat + replaces: strimzi-cluster-operator.v0.11.0 + selector: + matchLabels: + name: strimzi-cluster-operator + version: 0.11.1 diff --git a/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.12.1.clusterserviceversion.yaml b/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.12.1.clusterserviceversion.yaml new file mode 100644 index 000000000..5f3f872e7 --- /dev/null +++ b/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.12.1.clusterserviceversion.yaml @@ -0,0 +1,1013 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"Kafka", + "metadata":{ + "name":"my-cluster" + }, + "spec":{ + "kafka":{ + "version":"2.2.1", + "replicas":3, + "listeners":{ + "plain":{ + }, + "tls":{ + } + }, + "config":{ + "offsets.topic.replication.factor":3, + "transaction.state.log.replication.factor":3, + "transaction.state.log.min.isr":2, + "log.message.format.version":"2.2" + }, + "storage":{ + "type":"ephemeral" + } + }, + "zookeeper":{ + "replicas":3, + "storage":{ + "type":"ephemeral" + } + }, + "entityOperator":{ + "topicOperator":{ + }, + "userOperator":{ + } + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaConnect", + "metadata":{ + "name":"my-connect-cluster" + }, + "spec":{ + "version":"2.2.1", + "replicas":1, + "bootstrapServers":"my-cluster-kafka-bootstrap:9093", + "tls":{ + "trustedCertificates":[ + { + "secretName":"my-cluster-cluster-ca-cert", + "certificate":"ca.crt" + } + ] + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaConnectS2I", + "metadata":{ + "name":"my-connect-cluster" + }, + "spec":{ + "version":"2.2.1", + "replicas":1, + "bootstrapServers":"my-cluster-kafka-bootstrap:9093", + "tls":{ + "trustedCertificates":[ + { + "secretName":"my-cluster-cluster-ca-cert", + "certificate":"ca.crt" + } + ] + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaMirrorMaker", + "metadata":{ + "name":"my-mirror-maker" + }, + "spec":{ + "version":"2.2.1", + "replicas":1, + "consumer":{ + "bootstrapServers":"my-source-cluster-kafka-bootstrap:9092", + "groupId":"my-source-group-id" + }, + "producer":{ + "bootstrapServers":"my-target-cluster-kafka-bootstrap:9092" + }, + "whitelist":".*" + } + }, + { + "apiVersion":"kafka.strimzi.io/v1alpha1", + "kind":"KafkaBridge", + "metadata":{ + "name":"my-bridge" + }, + "spec":{ + "replicas":1, + "bootstrapServers":"my-cluster-kafka-bootstrap:9092", + "http":{ + "port":8080 + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaTopic", + "metadata":{ + "name":"my-topic", + "labels":{ + "strimzi.io/cluster":"my-cluster" + } + }, + "spec":{ + "partitions":10, + "replicas":3, + "config":{ + "retention.ms":604800000, + "segment.bytes":1073741824 + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaUser", + "metadata":{ + "name":"my-user", + "labels":{ + "strimzi.io/cluster":"my-cluster" + } + }, + "spec":{ + "authentication":{ + "type":"tls" + }, + "authorization":{ + "type":"simple", + "acls":[ + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Read", + "host":"*" + }, + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Describe", + "host":"*" + }, + { + "resource":{ + "type":"group", + "name":"my-group", + "patternType":"literal" + }, + "operation":"Read", + "host":"*" + }, + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Write", + "host":"*" + }, + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Create", + "host":"*" + }, + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Describe", + "host":"*" + } + ] + } + } + } + ] + capabilities: Full Lifecycle + categories: Streaming & Messaging + certified: "false" + containerImage: docker.io/strimzi/operator:0.12.1 + createdAt: "2019-06-10 11:00:00" + description: Strimzi provides a way to run an Apache Kafka cluster on Kubernetes + or OpenShift in various deployment configurations. + repository: https://github.com/strimzi/strimzi-kafka-operator + support: Strimzi + creationTimestamp: null + name: strimzi-cluster-operator.v0.12.1 + namespace: placeholder +spec: + MinKubeVersion: 1.11.0 + customresourcedefinitions: + owned: + - description: Represents a Kafka cluster + displayName: Kafka + kind: Kafka + name: kafkas.kafka.strimzi.io + resources: + - kind: Route + name: "" + version: route.openshift.io/v1 + - kind: Service + name: "" + version: v1 + - kind: StatefulSet + name: "" + version: v1 + - kind: Deployment + name: "" + version: v1 + - kind: ReplicaSet + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + - kind: Secret + name: "" + version: v1 + specDescriptors: + - description: Kafka version + displayName: Version + path: kafka.version + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The desired number of Kafka brokers. + displayName: Kafka Brokers + path: kafka.replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: The type of storage used by Kafka brokers + displayName: Kafka storage + path: kafka.storage.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Kafka Resource Requirements + path: kafka.resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: The desired number of Zookeeper nodes. + displayName: Zookeeper Nodes + path: zookeeper.replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: The type of storage used by Zookeeper nodes + displayName: Zookeeper storage + path: zookeeper.storage.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Zookeeper Resource Requirements + path: zookeeper.resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + statusDescriptors: + - description: Kafka cluster conditions + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents a Kafka Connect cluster + displayName: Kafka Connect + kind: KafkaConnect + name: kafkaconnects.kafka.strimzi.io + resources: + - kind: Service + name: "" + version: v1 + - kind: Deployment + name: "" + version: v1 + - kind: ReplicaSet + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + specDescriptors: + - description: The desired number of Kafka Connect nodes. + displayName: Connect nodes + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: Kafka Connect version + displayName: Version + path: version + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The address of the bootstrap server + displayName: Bootstrap server + path: bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Resource Requirements + path: resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + version: v1beta1 + - description: Represents a Kafka Connect cluster with Source 2 Image support + displayName: Kafka Connect Source to Image + kind: KafkaConnectS2I + name: kafkaconnects2is.kafka.strimzi.io + resources: + - kind: Service + name: "" + version: v1 + - kind: DeploymentConfig + name: "" + version: apps.openshift.io/v1 + - kind: ReplicationController + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + - kind: BuildConfig + name: "" + version: build.openshift.io/v1 + - kind: ImageStream + name: "" + version: image.openshift.io/v1 + specDescriptors: + - description: The desired number of Kafka Connect nodes. + displayName: Connect nodes + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: Kafka Connect version + displayName: Version + path: version + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The address of the bootstrap server + displayName: Bootstrap server + path: bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Resource Requirements + path: resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + version: v1beta1 + - description: Represents a Kafka MirrorMaker cluster + displayName: Kafka Mirror Maker + kind: KafkaMirrorMaker + name: kafkamirrormakers.kafka.strimzi.io + resources: + - kind: Deployment + name: "" + version: v1 + - kind: ReplicaSet + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + specDescriptors: + - description: The desired number of Kafka MirrorMaker nodes. + displayName: MirrorMaker nodes + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: Kafka Mirror Maker version + displayName: Version + path: version + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The bootstrap address of the Source cluster + displayName: Source cluster + path: consumer.bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The bootstrap address of the Target cluster + displayName: Target cluster + path: producer.bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Expression specifying the topics which should be mirrored + displayName: Mirrored topics + path: whitelist + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Resource Requirements + path: resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + version: v1beta1 + - description: Represents a Kafka Bridge cluster + displayName: Kafka Bridge + kind: KafkaBridge + name: kafkabridges.kafka.strimzi.io + resources: + - kind: Deployment + name: "" + version: v1 + - kind: ReplicaSet + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + - kind: Service + name: "" + version: v1 + specDescriptors: + - description: The desired number of Kafka Bridge nodes. + displayName: Bridge nodes + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: The bootstrap address of the Kafka cluster + displayName: Kafka cluster + path: bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The HTTP configuration + displayName: HTTP configuration + path: http + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + version: v1alpha1 + - description: Represents a topic inside a Kafka cluster + displayName: Kafka Topic + kind: KafkaTopic + name: kafkatopics.kafka.strimzi.io + specDescriptors: + - description: The number of partitions + displayName: Partitions + path: partitions + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The number of replicas + displayName: Replication factor + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + version: v1beta1 + - description: Represents a user inside a Kafka cluster + displayName: Kafka User + kind: KafkaUser + name: kafkausers.kafka.strimzi.io + resources: + - kind: Secret + name: "" + version: v1 + specDescriptors: + - description: Authentication type + displayName: Authentication type + path: authentication.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Authorization type + displayName: Authorization type + path: authorization.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + version: v1beta1 + description: | + Strimzi provides a way to run an [Apache Kafka®](https://kafka.apache.org) cluster on [Kubernetes](https://kubernetes.io/) or [OpenShift](https://www.openshift.com/) in various deployment configurations. See our [website](https://strimzi.io) for more details about the project. + ### Supported Features + * **Manages the Kafka Cluster** - Deploys and manages all of the components of this complex application, including dependencies like Apache ZooKeeper® that are traditionally hard to administer. + * **Includes Kafka Connect** - Allows for configuration of common data sources and sinks to move data into and out of the Kafka cluster. + * **Topic Management** - Creates and manages Kafka Topics within the cluster. + * **User Management** - Creates and manages Kafka Users within the cluster. + * **Includes Kafka Mirror Maker** - Allows for morroring data between different Apache Kafka® clusters. + * **Includes HTTP Kafka Bridge** - Allows clients to send and receive messages through an Apache Kafka® cluster via HTTP protocol. + ### Upgrading your Clusters + The Strimzi Operator understands how to run and upgrade between a set of Kafka versions. When specifying a new version in your config, check to make sure you aren't using any features that may have been removed. See [the upgrade guide](https://strimzi.io/docs/latest/#assembly-upgrading-kafka-versions-str) for more information. + ### Storage + An efficient data storage infrastructure is essential to the optimal performance of Apache Kafka®. Apache Kafka® deployed via Strimzi requires block storage. The use of file storage (for example, NFS) is not recommended. + The Strimzi Operator supports three types of data storage: + * Ephemeral (Recommended for development only) + * Persistent + * JBOD (Just a Bunch of Disks, suitable for Kafka only. Not supported in Zookeeper.) + Strimzi also supports advanced operations such as adding or removing disks in Apache Kafka® brokers or resizing the persistent volumes (where supported by the infrastructure). + ### Documentation + Documentation to the current _master_ branch as well as all releases can be found on our [website](https://strimzi.io/documentation). + ### Getting help + If you encounter any issues while using Strimzi, you can get help using: + * [Strimzi mailing list](https://www.redhat.com/mailman/listinfo/strimzi) + * [Strimzi Slack workspace](https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY) + ### Contributing + You can contribute by: + * Raising any issues you find using Strimzi + * Fixing issues by opening Pull Requests + * Improving documentation + * Talking about Strimzi + + All bugs, tasks or enhancements are tracked as [GitHub issues](https://github.com/strimzi/strimzi-kafka-operator/issues). Issues which might be a good start for new contributors are marked with ["good-start"](https://github.com/strimzi/strimzi-kafka-operator/labels/good-start) label. + + The [Hacking guide](https://github.com/strimzi/strimzi-kafka-operator/blob/master/HACKING.md) describes how to build Strimzi and how to test your changes before submitting a patch or opening a PR. + + The [Documentation Contributor Guide](https://strimzi.io/contributing/guide/) describes how to contribute to Strimzi documentation. + + If you want to get in touch with us first before contributing, you can use: + * [Strimzi mailing list](https://www.redhat.com/mailman/listinfo/strimzi) + * [Strimzi Slack workspace](https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY) + ### License + Strimzi is licensed under the [Apache License, Version 2.0](https://github.com/strimzi/strimzi-kafka-operator/blob/master/LICENSE). + displayName: Strimzi Apache Kafka Operator + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTk1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTk1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzE5MkM0Nzt9Cgkuc3Qxe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQoJLnN0MntmaWxsOnVybCgjU1ZHSURfMl8pO30KCS5zdDN7ZmlsbDp1cmwoI1NWR0lEXzNfKTt9Cgkuc3Q0e2ZpbGw6dXJsKCNTVkdJRF80Xyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfNV8pO30KCS5zdDZ7ZmlsbDp1cmwoI1NWR0lEXzZfKTt9Cjwvc3R5bGU+CjxnPgoJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIyNTYsNSAxLDE1Mi4yIDEsNDQ2LjcgMjU2LDU5My45IDUxMSw0NDYuNyA1MTEsMTUyLjIgMjU2LDUgCSIvPgoJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMDkuNDk5NiIgeTE9Ijg0Ljk2MjIiIHgyPSI0NDAuOTUxNyIgeTI9Ijc5My44MTAyIj4KCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGIi8+CgkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzU0QkFEOCIvPgoJPC9saW5lYXJHcmFkaWVudD4KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yNTYsNTYxbDIyNi41LTEzMC44di0yNi4zYy0zNy42LTcuMy04NC45LTE0LjMtMTQzLjUtMTkuM2MtMTk5LjItMTcuMi0xNC44LTU2LjYsNjguOS0xMjcuMQoJCVMxMzAsMTY1LjcsMTMwLDE2NS43czE0Ny42LDMxLDEzMi44LDUwYy0xMC41LDEzLjUtMTM0LjMsNDMuNS0yMzMuMyw4OC4xdjEyNi41TDI1Niw1NjF6Ii8+CjwvZz4KPC9zdmc+Cg== + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - kafka.strimzi.io + resources: + - kafkas + - kafkas/status + - kafkaconnects + - kafkaconnects2is + - kafkamirrormakers + - kafkabridges + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - delete + - apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - endpoints + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - deployments + - deployments/scale + - replicasets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - apps + resources: + - deployments + - deployments/scale + - deployments/status + - statefulsets + - replicasets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - extensions + resources: + - replicationcontrollers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - apps.openshift.io + resources: + - deploymentconfigs + - deploymentconfigs/scale + - deploymentconfigs/status + - deploymentconfigs/finalizers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - build.openshift.io + resources: + - buildconfigs + - builds + verbs: + - create + - delete + - get + - list + - patch + - watch + - update + - apiGroups: + - image.openshift.io + resources: + - imagestreams + - imagestreams/status + verbs: + - create + - delete + - get + - list + - watch + - patch + - update + - apiGroups: + - "" + resources: + - replicationcontrollers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - extensions + resources: + - networkpolicies + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - route.openshift.io + resources: + - routes + - routes/custom-host + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - extensions + resources: + - ingresses + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - apiGroups: + - kafka.strimzi.io + resources: + - kafkatopics + verbs: + - get + - list + - watch + - create + - patch + - update + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - kafka.strimzi.io + resources: + - kafkausers + verbs: + - get + - list + - watch + - create + - patch + - update + - delete + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + verbs: + - get + - create + - delete + - patch + - update + serviceAccountName: strimzi-cluster-operator + deployments: + - name: strimzi-cluster-operator + spec: + replicas: 1 + selector: + matchLabels: + name: strimzi-cluster-operator + strategy: + type: Recreate + template: + metadata: + labels: + name: strimzi-cluster-operator + strimzi.io/kind: cluster-operator + spec: + containers: + - args: + - /opt/strimzi/bin/cluster_operator_run.sh + env: + - name: STRIMZI_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS + value: "120000" + - name: STRIMZI_OPERATION_TIMEOUT_MS + value: "300000" + - name: STRIMZI_DEFAULT_ZOOKEEPER_IMAGE + value: strimzi/kafka:0.12.1-kafka-2.2.1 + - name: STRIMZI_KAFKA_IMAGES + value: | + 2.1.0=strimzi/kafka:0.12.1-kafka-2.1.0 + 2.1.1=strimzi/kafka:0.12.1-kafka-2.1.1 + 2.2.0=strimzi/kafka:0.12.1-kafka-2.2.0 + 2.2.1=strimzi/kafka:0.12.1-kafka-2.2.1 + - name: STRIMZI_KAFKA_CONNECT_IMAGES + value: | + 2.1.0=strimzi/kafka:0.12.1-kafka-2.1.0 + 2.1.1=strimzi/kafka:0.12.1-kafka-2.1.1 + 2.2.0=strimzi/kafka:0.12.1-kafka-2.2.0 + 2.2.1=strimzi/kafka:0.12.1-kafka-2.2.1 + - name: STRIMZI_KAFKA_CONNECT_S2I_IMAGES + value: | + 2.1.0=strimzi/kafka:0.12.1-kafka-2.1.0 + 2.1.1=strimzi/kafka:0.12.1-kafka-2.1.1 + 2.2.0=strimzi/kafka:0.12.1-kafka-2.2.0 + 2.2.1=strimzi/kafka:0.12.1-kafka-2.2.1 + - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES + value: | + 2.1.0=strimzi/kafka:0.12.1-kafka-2.1.0 + 2.1.1=strimzi/kafka:0.12.1-kafka-2.1.1 + 2.2.0=strimzi/kafka:0.12.1-kafka-2.2.0 + 2.2.1=strimzi/kafka:0.12.1-kafka-2.2.1 + - name: STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE + value: strimzi/operator:0.12.1 + - name: STRIMZI_DEFAULT_USER_OPERATOR_IMAGE + value: strimzi/operator:0.12.1 + - name: STRIMZI_DEFAULT_KAFKA_INIT_IMAGE + value: strimzi/operator:0.12.1 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_ZOOKEEPER_IMAGE + value: strimzi/kafka:0.12.1-kafka-2.2.1 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_KAFKA_IMAGE + value: strimzi/kafka:0.12.1-kafka-2.2.1 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE + value: strimzi/kafka:0.12.1-kafka-2.2.1 + - name: STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE + value: strimzi/kafka-bridge:0.12.1 + - name: STRIMZI_CREATE_CLUSTER_ROLES + value: "TRUE" + - name: STRIMZI_LOG_LEVEL + value: INFO + image: strimzi/operator:0.12.1 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthy + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + name: strimzi-cluster-operator + readinessProbe: + httpGet: + path: /ready + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + resources: + limits: + cpu: 1000m + memory: 256Mi + requests: + cpu: 200m + memory: 256Mi + serviceAccountName: strimzi-cluster-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - kafka + - messaging + - kafka-connect + - kafka-streams + - data-streaming + - data-streams + - streaming + - streams + labels: + name: strimzi-cluster-operator + links: + - name: Website + url: https://strimzi.io/ + - name: Documentation + url: https://strimzi.io/docs/0.12.1/full.html + - name: Mailing list + url: https://www.redhat.com/mailman/listinfo/strimzi + - name: Slack + url: https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY + - name: GitHub + url: https://github.com/strimzi/strimzi-kafka-operator + maintainers: + - email: strimzi@redhat.com + name: Strimzi + maturity: stable + provider: + name: Red Hat + replaces: strimzi-cluster-operator.v0.11.1 + selector: + matchLabels: + name: strimzi-cluster-operator + version: 0.12.1 diff --git a/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.12.2.clusterserviceversion.yaml b/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.12.2.clusterserviceversion.yaml new file mode 100644 index 000000000..3794cccb6 --- /dev/null +++ b/manifests/strimzi-kafka-operator/strimzi-cluster-operator.v0.12.2.clusterserviceversion.yaml @@ -0,0 +1,1013 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"Kafka", + "metadata":{ + "name":"my-cluster" + }, + "spec":{ + "kafka":{ + "version":"2.2.1", + "replicas":3, + "listeners":{ + "plain":{ + }, + "tls":{ + } + }, + "config":{ + "offsets.topic.replication.factor":3, + "transaction.state.log.replication.factor":3, + "transaction.state.log.min.isr":2, + "log.message.format.version":"2.2" + }, + "storage":{ + "type":"ephemeral" + } + }, + "zookeeper":{ + "replicas":3, + "storage":{ + "type":"ephemeral" + } + }, + "entityOperator":{ + "topicOperator":{ + }, + "userOperator":{ + } + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaConnect", + "metadata":{ + "name":"my-connect-cluster" + }, + "spec":{ + "version":"2.2.1", + "replicas":1, + "bootstrapServers":"my-cluster-kafka-bootstrap:9093", + "tls":{ + "trustedCertificates":[ + { + "secretName":"my-cluster-cluster-ca-cert", + "certificate":"ca.crt" + } + ] + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaConnectS2I", + "metadata":{ + "name":"my-connect-cluster" + }, + "spec":{ + "version":"2.2.1", + "replicas":1, + "bootstrapServers":"my-cluster-kafka-bootstrap:9093", + "tls":{ + "trustedCertificates":[ + { + "secretName":"my-cluster-cluster-ca-cert", + "certificate":"ca.crt" + } + ] + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaMirrorMaker", + "metadata":{ + "name":"my-mirror-maker" + }, + "spec":{ + "version":"2.2.1", + "replicas":1, + "consumer":{ + "bootstrapServers":"my-source-cluster-kafka-bootstrap:9092", + "groupId":"my-source-group-id" + }, + "producer":{ + "bootstrapServers":"my-target-cluster-kafka-bootstrap:9092" + }, + "whitelist":".*" + } + }, + { + "apiVersion":"kafka.strimzi.io/v1alpha1", + "kind":"KafkaBridge", + "metadata":{ + "name":"my-bridge" + }, + "spec":{ + "replicas":1, + "bootstrapServers":"my-cluster-kafka-bootstrap:9092", + "http":{ + "port":8080 + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaTopic", + "metadata":{ + "name":"my-topic", + "labels":{ + "strimzi.io/cluster":"my-cluster" + } + }, + "spec":{ + "partitions":10, + "replicas":3, + "config":{ + "retention.ms":604800000, + "segment.bytes":1073741824 + } + } + }, + { + "apiVersion":"kafka.strimzi.io/v1beta1", + "kind":"KafkaUser", + "metadata":{ + "name":"my-user", + "labels":{ + "strimzi.io/cluster":"my-cluster" + } + }, + "spec":{ + "authentication":{ + "type":"tls" + }, + "authorization":{ + "type":"simple", + "acls":[ + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Read", + "host":"*" + }, + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Describe", + "host":"*" + }, + { + "resource":{ + "type":"group", + "name":"my-group", + "patternType":"literal" + }, + "operation":"Read", + "host":"*" + }, + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Write", + "host":"*" + }, + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Create", + "host":"*" + }, + { + "resource":{ + "type":"topic", + "name":"my-topic", + "patternType":"literal" + }, + "operation":"Describe", + "host":"*" + } + ] + } + } + } + ] + capabilities: Full Lifecycle + categories: Streaming & Messaging + certified: "false" + containerImage: docker.io/strimzi/operator:0.12.2 + createdAt: "2019-07-18 16:00:00" + description: Strimzi provides a way to run an Apache Kafka cluster on Kubernetes + or OpenShift in various deployment configurations. + repository: https://github.com/strimzi/strimzi-kafka-operator + support: Strimzi + creationTimestamp: null + name: strimzi-cluster-operator.v0.12.2 + namespace: placeholder +spec: + MinKubeVersion: 1.11.0 + customresourcedefinitions: + owned: + - description: Represents a Kafka cluster + displayName: Kafka + kind: Kafka + name: kafkas.kafka.strimzi.io + resources: + - kind: Route + name: "" + version: route.openshift.io/v1 + - kind: Service + name: "" + version: v1 + - kind: StatefulSet + name: "" + version: v1 + - kind: Deployment + name: "" + version: v1 + - kind: ReplicaSet + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + - kind: Secret + name: "" + version: v1 + specDescriptors: + - description: Kafka version + displayName: Version + path: kafka.version + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The desired number of Kafka brokers. + displayName: Kafka Brokers + path: kafka.replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: The type of storage used by Kafka brokers + displayName: Kafka storage + path: kafka.storage.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Kafka Resource Requirements + path: kafka.resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: The desired number of Zookeeper nodes. + displayName: Zookeeper Nodes + path: zookeeper.replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: The type of storage used by Zookeeper nodes + displayName: Zookeeper storage + path: zookeeper.storage.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Zookeeper Resource Requirements + path: zookeeper.resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + statusDescriptors: + - description: Kafka cluster conditions + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents a Kafka Connect cluster + displayName: Kafka Connect + kind: KafkaConnect + name: kafkaconnects.kafka.strimzi.io + resources: + - kind: Service + name: "" + version: v1 + - kind: Deployment + name: "" + version: v1 + - kind: ReplicaSet + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + specDescriptors: + - description: The desired number of Kafka Connect nodes. + displayName: Connect nodes + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: Kafka Connect version + displayName: Version + path: version + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The address of the bootstrap server + displayName: Bootstrap server + path: bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Resource Requirements + path: resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + version: v1beta1 + - description: Represents a Kafka Connect cluster with Source 2 Image support + displayName: Kafka Connect Source to Image + kind: KafkaConnectS2I + name: kafkaconnects2is.kafka.strimzi.io + resources: + - kind: Service + name: "" + version: v1 + - kind: DeploymentConfig + name: "" + version: apps.openshift.io/v1 + - kind: ReplicationController + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + - kind: BuildConfig + name: "" + version: build.openshift.io/v1 + - kind: ImageStream + name: "" + version: image.openshift.io/v1 + specDescriptors: + - description: The desired number of Kafka Connect nodes. + displayName: Connect nodes + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: Kafka Connect version + displayName: Version + path: version + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The address of the bootstrap server + displayName: Bootstrap server + path: bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Resource Requirements + path: resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + version: v1beta1 + - description: Represents a Kafka MirrorMaker cluster + displayName: Kafka Mirror Maker + kind: KafkaMirrorMaker + name: kafkamirrormakers.kafka.strimzi.io + resources: + - kind: Deployment + name: "" + version: v1 + - kind: ReplicaSet + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + specDescriptors: + - description: The desired number of Kafka MirrorMaker nodes. + displayName: MirrorMaker nodes + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: Kafka Mirror Maker version + displayName: Version + path: version + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The bootstrap address of the Source cluster + displayName: Source cluster + path: consumer.bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The bootstrap address of the Target cluster + displayName: Target cluster + path: producer.bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Expression specifying the topics which should be mirrored + displayName: Mirrored topics + path: whitelist + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Limits describes the minimum/maximum amount of compute resources + required/allowed + displayName: Resource Requirements + path: resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + version: v1beta1 + - description: Represents a Kafka Bridge cluster + displayName: Kafka Bridge + kind: KafkaBridge + name: kafkabridges.kafka.strimzi.io + resources: + - kind: Deployment + name: "" + version: v1 + - kind: ReplicaSet + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + - kind: Service + name: "" + version: v1 + specDescriptors: + - description: The desired number of Kafka Bridge nodes. + displayName: Bridge nodes + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: The bootstrap address of the Kafka cluster + displayName: Kafka cluster + path: bootstrapServers + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The HTTP configuration + displayName: HTTP configuration + path: http + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + version: v1alpha1 + - description: Represents a topic inside a Kafka cluster + displayName: Kafka Topic + kind: KafkaTopic + name: kafkatopics.kafka.strimzi.io + specDescriptors: + - description: The number of partitions + displayName: Partitions + path: partitions + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: The number of replicas + displayName: Replication factor + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + version: v1beta1 + - description: Represents a user inside a Kafka cluster + displayName: Kafka User + kind: KafkaUser + name: kafkausers.kafka.strimzi.io + resources: + - kind: Secret + name: "" + version: v1 + specDescriptors: + - description: Authentication type + displayName: Authentication type + path: authentication.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + - description: Authorization type + displayName: Authorization type + path: authorization.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:label + version: v1beta1 + description: | + Strimzi provides a way to run an [Apache Kafka®](https://kafka.apache.org) cluster on [Kubernetes](https://kubernetes.io/) or [OpenShift](https://www.openshift.com/) in various deployment configurations. See our [website](https://strimzi.io) for more details about the project. + ### Supported Features + * **Manages the Kafka Cluster** - Deploys and manages all of the components of this complex application, including dependencies like Apache ZooKeeper® that are traditionally hard to administer. + * **Includes Kafka Connect** - Allows for configuration of common data sources and sinks to move data into and out of the Kafka cluster. + * **Topic Management** - Creates and manages Kafka Topics within the cluster. + * **User Management** - Creates and manages Kafka Users within the cluster. + * **Includes Kafka Mirror Maker** - Allows for morroring data between different Apache Kafka® clusters. + * **Includes HTTP Kafka Bridge** - Allows clients to send and receive messages through an Apache Kafka® cluster via HTTP protocol. + ### Upgrading your Clusters + The Strimzi Operator understands how to run and upgrade between a set of Kafka versions. When specifying a new version in your config, check to make sure you aren't using any features that may have been removed. See [the upgrade guide](https://strimzi.io/docs/latest/#assembly-upgrading-kafka-versions-str) for more information. + ### Storage + An efficient data storage infrastructure is essential to the optimal performance of Apache Kafka®. Apache Kafka® deployed via Strimzi requires block storage. The use of file storage (for example, NFS) is not recommended. + The Strimzi Operator supports three types of data storage: + * Ephemeral (Recommended for development only) + * Persistent + * JBOD (Just a Bunch of Disks, suitable for Kafka only. Not supported in Zookeeper.) + Strimzi also supports advanced operations such as adding or removing disks in Apache Kafka® brokers or resizing the persistent volumes (where supported by the infrastructure). + ### Documentation + Documentation to the current _master_ branch as well as all releases can be found on our [website](https://strimzi.io/documentation). + ### Getting help + If you encounter any issues while using Strimzi, you can get help using: + * [Strimzi mailing list](https://www.redhat.com/mailman/listinfo/strimzi) + * [Strimzi Slack workspace](https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY) + ### Contributing + You can contribute by: + * Raising any issues you find using Strimzi + * Fixing issues by opening Pull Requests + * Improving documentation + * Talking about Strimzi + + All bugs, tasks or enhancements are tracked as [GitHub issues](https://github.com/strimzi/strimzi-kafka-operator/issues). Issues which might be a good start for new contributors are marked with ["good-start"](https://github.com/strimzi/strimzi-kafka-operator/labels/good-start) label. + + The [Hacking guide](https://github.com/strimzi/strimzi-kafka-operator/blob/master/HACKING.md) describes how to build Strimzi and how to test your changes before submitting a patch or opening a PR. + + The [Documentation Contributor Guide](https://strimzi.io/contributing/guide/) describes how to contribute to Strimzi documentation. + + If you want to get in touch with us first before contributing, you can use: + * [Strimzi mailing list](https://www.redhat.com/mailman/listinfo/strimzi) + * [Strimzi Slack workspace](https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY) + ### License + Strimzi is licensed under the [Apache License, Version 2.0](https://github.com/strimzi/strimzi-kafka-operator/blob/master/LICENSE). + displayName: Strimzi Apache Kafka Operator + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTk1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTk1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzE5MkM0Nzt9Cgkuc3Qxe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQoJLnN0MntmaWxsOnVybCgjU1ZHSURfMl8pO30KCS5zdDN7ZmlsbDp1cmwoI1NWR0lEXzNfKTt9Cgkuc3Q0e2ZpbGw6dXJsKCNTVkdJRF80Xyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfNV8pO30KCS5zdDZ7ZmlsbDp1cmwoI1NWR0lEXzZfKTt9Cjwvc3R5bGU+CjxnPgoJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIyNTYsNSAxLDE1Mi4yIDEsNDQ2LjcgMjU2LDU5My45IDUxMSw0NDYuNyA1MTEsMTUyLjIgMjU2LDUgCSIvPgoJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMDkuNDk5NiIgeTE9Ijg0Ljk2MjIiIHgyPSI0NDAuOTUxNyIgeTI9Ijc5My44MTAyIj4KCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGIi8+CgkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzU0QkFEOCIvPgoJPC9saW5lYXJHcmFkaWVudD4KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yNTYsNTYxbDIyNi41LTEzMC44di0yNi4zYy0zNy42LTcuMy04NC45LTE0LjMtMTQzLjUtMTkuM2MtMTk5LjItMTcuMi0xNC44LTU2LjYsNjguOS0xMjcuMQoJCVMxMzAsMTY1LjcsMTMwLDE2NS43czE0Ny42LDMxLDEzMi44LDUwYy0xMC41LDEzLjUtMTM0LjMsNDMuNS0yMzMuMyw4OC4xdjEyNi41TDI1Niw1NjF6Ii8+CjwvZz4KPC9zdmc+Cg== + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - kafka.strimzi.io + resources: + - kafkas + - kafkas/status + - kafkaconnects + - kafkaconnects2is + - kafkamirrormakers + - kafkabridges + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - delete + - apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - endpoints + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - deployments + - deployments/scale + - replicasets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - apps + resources: + - deployments + - deployments/scale + - deployments/status + - statefulsets + - replicasets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - extensions + resources: + - replicationcontrollers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - apps.openshift.io + resources: + - deploymentconfigs + - deploymentconfigs/scale + - deploymentconfigs/status + - deploymentconfigs/finalizers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - build.openshift.io + resources: + - buildconfigs + - builds + verbs: + - create + - delete + - get + - list + - patch + - watch + - update + - apiGroups: + - image.openshift.io + resources: + - imagestreams + - imagestreams/status + verbs: + - create + - delete + - get + - list + - watch + - patch + - update + - apiGroups: + - "" + resources: + - replicationcontrollers + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - extensions + resources: + - networkpolicies + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - route.openshift.io + resources: + - routes + - routes/custom-host + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - list + - create + - delete + - patch + - update + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - extensions + resources: + - ingresses + verbs: + - get + - list + - watch + - create + - delete + - patch + - update + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + verbs: + - get + - create + - delete + - patch + - update + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - apiGroups: + - kafka.strimzi.io + resources: + - kafkatopics + verbs: + - get + - list + - watch + - create + - patch + - update + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - kafka.strimzi.io + resources: + - kafkausers + verbs: + - get + - list + - watch + - create + - patch + - update + - delete + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + verbs: + - get + - create + - delete + - patch + - update + serviceAccountName: strimzi-cluster-operator + deployments: + - name: strimzi-cluster-operator + spec: + replicas: 1 + selector: + matchLabels: + name: strimzi-cluster-operator + strategy: + type: Recreate + template: + metadata: + labels: + name: strimzi-cluster-operator + strimzi.io/kind: cluster-operator + spec: + containers: + - args: + - /opt/strimzi/bin/cluster_operator_run.sh + env: + - name: STRIMZI_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS + value: "120000" + - name: STRIMZI_OPERATION_TIMEOUT_MS + value: "300000" + - name: STRIMZI_DEFAULT_ZOOKEEPER_IMAGE + value: strimzi/kafka:0.12.2-kafka-2.2.1 + - name: STRIMZI_KAFKA_IMAGES + value: | + 2.1.0=strimzi/kafka:0.12.2-kafka-2.1.0 + 2.1.1=strimzi/kafka:0.12.2-kafka-2.1.1 + 2.2.0=strimzi/kafka:0.12.2-kafka-2.2.0 + 2.2.1=strimzi/kafka:0.12.2-kafka-2.2.1 + - name: STRIMZI_KAFKA_CONNECT_IMAGES + value: | + 2.1.0=strimzi/kafka:0.12.2-kafka-2.1.0 + 2.1.1=strimzi/kafka:0.12.2-kafka-2.1.1 + 2.2.0=strimzi/kafka:0.12.2-kafka-2.2.0 + 2.2.1=strimzi/kafka:0.12.2-kafka-2.2.1 + - name: STRIMZI_KAFKA_CONNECT_S2I_IMAGES + value: | + 2.1.0=strimzi/kafka:0.12.2-kafka-2.1.0 + 2.1.1=strimzi/kafka:0.12.2-kafka-2.1.1 + 2.2.0=strimzi/kafka:0.12.2-kafka-2.2.0 + 2.2.1=strimzi/kafka:0.12.2-kafka-2.2.1 + - name: STRIMZI_KAFKA_MIRROR_MAKER_IMAGES + value: | + 2.1.0=strimzi/kafka:0.12.2-kafka-2.1.0 + 2.1.1=strimzi/kafka:0.12.2-kafka-2.1.1 + 2.2.0=strimzi/kafka:0.12.2-kafka-2.2.0 + 2.2.1=strimzi/kafka:0.12.2-kafka-2.2.1 + - name: STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE + value: strimzi/operator:0.12.2 + - name: STRIMZI_DEFAULT_USER_OPERATOR_IMAGE + value: strimzi/operator:0.12.2 + - name: STRIMZI_DEFAULT_KAFKA_INIT_IMAGE + value: strimzi/operator:0.12.2 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_ZOOKEEPER_IMAGE + value: strimzi/kafka:0.12.2-kafka-2.2.1 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_KAFKA_IMAGE + value: strimzi/kafka:0.12.2-kafka-2.2.1 + - name: STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE + value: strimzi/kafka:0.12.2-kafka-2.2.1 + - name: STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE + value: strimzi/kafka-bridge:0.12.2 + - name: STRIMZI_CREATE_CLUSTER_ROLES + value: "TRUE" + - name: STRIMZI_LOG_LEVEL + value: INFO + image: strimzi/operator:0.12.2 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthy + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + name: strimzi-cluster-operator + readinessProbe: + httpGet: + path: /ready + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + resources: + limits: + cpu: 1000m + memory: 256Mi + requests: + cpu: 200m + memory: 256Mi + serviceAccountName: strimzi-cluster-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - kafka + - messaging + - kafka-connect + - kafka-streams + - data-streaming + - data-streams + - streaming + - streams + labels: + name: strimzi-cluster-operator + links: + - name: Website + url: https://strimzi.io/ + - name: Documentation + url: https://strimzi.io/docs/0.12.2/full.html + - name: Mailing list + url: https://www.redhat.com/mailman/listinfo/strimzi + - name: Slack + url: https://join.slack.com/t/strimzi/shared_invite/enQtMzU2Mjk3NTgxMzE5LTYyMTUwMGNlMDQwMzBhOGI4YmY4MjhiMDgyNjA5OTk2MTFiYjc4M2Q3NGU1YTFjOWRiMzM2NGMwNDUwMjBlNDY + - name: GitHub + url: https://github.com/strimzi/strimzi-kafka-operator + maintainers: + - email: strimzi@redhat.com + name: Strimzi + maturity: stable + provider: + name: Red Hat + replaces: strimzi-cluster-operator.v0.12.1 + selector: + matchLabels: + name: strimzi-cluster-operator + version: 0.12.2 diff --git a/manifests/strimzi-kafka-operator/strimzi-kafka-operator.package.yaml b/manifests/strimzi-kafka-operator/strimzi-kafka-operator.package.yaml new file mode 100644 index 000000000..444f5785b --- /dev/null +++ b/manifests/strimzi-kafka-operator/strimzi-kafka-operator.package.yaml @@ -0,0 +1,9 @@ +channels: +- currentCSV: strimzi-cluster-operator.v0.11.1 + name: stable +- currentCSV: strimzi-cluster-operator.v0.12.1 + name: beta +- currentCSV: strimzi-cluster-operator.v0.12.2 + name: alpha +defaultChannel: "stable" +packageName: strimzi-kafka-operator diff --git a/pkg/server/server_test.go b/pkg/server/server_test.go index 4f9b7231e..d54a1f567 100644 --- a/pkg/server/server_test.go +++ b/pkg/server/server_test.go @@ -90,7 +90,7 @@ func TestListPackages(t *testing.T) { } }(t) <-waitc - require.ElementsMatch(t, []string{"etcd", "prometheus"}, packages) + require.ElementsMatch(t, []string{"etcd", "prometheus", "strimzi-kafka-operator"}, packages) } func TestGetPackage(t *testing.T) { diff --git a/pkg/sqlite/directory.go b/pkg/sqlite/directory.go index 44acff095..fedd8dfb9 100644 --- a/pkg/sqlite/directory.go +++ b/pkg/sqlite/directory.go @@ -40,13 +40,13 @@ func (d *DirectoryLoader) Populate() error { log := logrus.WithField("dir", d.directory) log.Info("loading Bundles") - var errs []error - if err := filepath.Walk(d.directory, collectWalkErrs(d.LoadBundleWalkFunc, errs)); err != nil { + errs := make([]error, 0) + if err := filepath.Walk(d.directory, collectWalkErrs(d.LoadBundleWalkFunc, &errs)); err != nil { errs = append(errs, err) } log.Info("loading Packages and Entries") - if err := filepath.Walk(d.directory, collectWalkErrs(d.LoadPackagesWalkFunc, errs)); err != nil { + if err := filepath.Walk(d.directory, collectWalkErrs(d.LoadPackagesWalkFunc, &errs)); err != nil { errs = append(errs, err) } @@ -54,10 +54,11 @@ func (d *DirectoryLoader) Populate() error { } // collectWalkErrs calls the given walk func and appends any non-nil, non skip dir error returned to the given errors slice. -func collectWalkErrs(walk filepath.WalkFunc, errs []error) filepath.WalkFunc { +func collectWalkErrs(walk filepath.WalkFunc, errs *[]error) filepath.WalkFunc { return func(path string, f os.FileInfo, err error) (walkErr error) { - if walkErr = walk(path, f, err); walk != nil && walkErr != filepath.SkipDir { - errs = append(errs, walkErr) + if walkErr = walk(path, f, err); walkErr != nil && walkErr != filepath.SkipDir { + *errs = append(*errs, walkErr) + return nil } return walkErr @@ -161,7 +162,7 @@ func (d *DirectoryLoader) loadBundle(csvName string, dir string) (*registry.Bund decoder := yaml.NewYAMLOrJSONDecoder(fileReader, 30) obj := &unstructured.Unstructured{} if err = decoder.Decode(obj); err != nil { - errs = append(errs, fmt.Errorf("could not decode file contents for %s: %s", path, err)) + logrus.WithError(err).Debugf("could not decode file contents for %s", path) continue } diff --git a/pkg/sqlite/directory_test.go b/pkg/sqlite/directory_test.go index faf8c0020..01c83dd84 100644 --- a/pkg/sqlite/directory_test.go +++ b/pkg/sqlite/directory_test.go @@ -88,7 +88,7 @@ func TestQuerierForDirectory(t *testing.T) { foundPackages, err := store.ListPackages(context.TODO()) require.NoError(t, err) - require.ElementsMatch(t, []string{"etcd", "prometheus"}, foundPackages) + require.ElementsMatch(t, []string{"etcd", "prometheus", "strimzi-kafka-operator"}, foundPackages) etcdPackage, err := store.GetPackage(context.TODO(), "etcd") require.NoError(t, err) @@ -151,4 +151,28 @@ func TestQuerierForDirectory(t *testing.T) { require.NoError(t, err) require.Equal(t, expectedBundle, etcdBundleByProvides) require.Equal(t, ®istry.ChannelEntry{"etcd", "alpha", "etcdoperator.v0.9.2", ""}, entry) + + kafkaPackage, err := store.GetPackage(context.TODO(), "strimzi-kafka-operator") + require.NoError(t, err) + expectedKafkaPackage := ®istry.PackageManifest{ + PackageName: "strimzi-kafka-operator", + DefaultChannelName: "stable", + Channels: []registry.PackageChannel{ + { + Name: "stable", + CurrentCSVName: "strimzi-cluster-operator.v0.11.1", + }, + { + Name: "beta", + CurrentCSVName: "strimzi-cluster-operator.v0.12.1", + }, + { + Name: "alpha", + CurrentCSVName: "strimzi-cluster-operator.v0.12.2", + }, + }, + } + require.Equal(t, expectedKafkaPackage.PackageName, kafkaPackage.PackageName) + require.Equal(t, expectedKafkaPackage.DefaultChannelName, kafkaPackage.DefaultChannelName) + require.ElementsMatch(t, expectedKafkaPackage.Channels, kafkaPackage.Channels) }