Merge pull request #160 from jhogan-confluent/main-source

(Confluent) main-source
pull/163/head
Steven Crespo 2021-09-03 21:21:11 -07:00 committed by GitHub
commit 29599533e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 36927 additions and 0 deletions

View File

@ -0,0 +1,22 @@
annotations:
catalog.cattle.io/certified: partner
catalog.cattle.io/display-name: Confluent For Kubernetes
catalog.cattle.io/release-name: confluent-for-kubernetes
apiVersion: v1
appVersion: 2.0.2
description: A Helm chart to deploy Confluent for Kubernetes
home: https://www.confluent.io/
icon: https://cdn.confluent.io/wp-content/uploads/seo-logo-meadow.png
keywords:
- Confluent
- Confluent Operator
- Confluent Platform
- CFK
kubeVersion: 1.15 - 1.20
maintainers:
- email: operator@confluent.io
name: Confluent Operator
name: confluent-for-kubernetes
sources:
- https://docs.confluent.io/current/index.html
version: 0.174.2101

View File

@ -0,0 +1,72 @@
Confluent for Kubernetes
==================================================================
Confluent for Kubernetes (CFK) is a cloud-native control plane for deploying and managing Confluent in your private cloud environment. It provides standard and simple interface to customize, deploy, and manage Confluent Platform through declarative API.
Confluent for Kubernetes runs on Kubernetes, the runtime for private cloud architectures.
NOTE: Confluent for Kubernetes is the next generation of Confluent Operator. For Confluent Operator 1.x documentation, see [Confluent Operator 1](https://docs.confluent.io/operator/1.7.0/overview.html), or use the version picker to browse to a specific version of the documentation.
See [Introducing Confluent for Kubernetes](https://www.confluent.io/blog/confluent-for-kubernetes-offers-cloud-native-kafka-automation/) for an overview.
The following shows the high-level architecture of Confluent for Kubernetes and Confluent Platform in Kubernetes.
[![_images/co-architecture.png](https://docs.confluent.io/operator/current/_images/co-architecture.png)](_images/co-architecture.png)
Features
---------------------------------------------------
The following are summaries of the main, notable features of Confluent for Kubernetes.
#### Cloud Native Declarative API
* Declarative Kubernetes-native API approach to configure, deploy, and manage Confluent Platform components (Apache KafkaB., Connect workers, ksqlDB, Schema Registry, Confluent Control Center) and resources (topics, rolebindings) through Infrastructure as Code (IaC).
* Provides built-in automation for cloud-native security best practices:
* Complete granular RBAC, authentication and TLS network encryption
* Auto-generated certificates
* Support for credential management systems, such as Hashicorp Vault, to inject sensitive configurations in memory to Confluent deployments
* Provides server properties, JVM, and Log4j configuration overrides for customization of all Confluent Platform components.
#### Upgrades
* Provides automated rolling updates for configuration changes.
* Provides automated rolling upgrades with no impact to Kafka availability.
#### Scaling
* Provides single command, automated scaling and reliability checks of Confluent Platform.
#### Resiliency
* Restores a Kafka pod with the same Kafka broker ID, configuration, and persistent storage volumes if a failure occurs.
* Provides automated rack awareness to spread replicas of a partition across different racks (or zones), improving availability of Kafka brokers and limiting the risk of data loss.
#### Scheduling
* Supports Kubernetes labels and annotations to provide useful context to DevOps teams and ecosystem tooling.
* Supports Kubernetes tolerations and pod/node affinity for efficient resource utilization and pod placement.
#### Monitoring
* Supports metrics aggregation using JMX/Jolokia.
* Supports aggregated metrics export to Prometheus.
Licensing
-----------------------------------------------------
You can use Confluent for Kubernetes and Confluent Control Center for a 30-day trial period without a license key.
After 30 days, Confluent for Kubernetes and Control Center require a license key. Confluent issues keys to subscribers, along with providing [enterprise-level support](https://www.confluent.io/subscription/) for Confluent components and Confluent for Kubernetes.
If you are a subscriber, contact Confluent Support at [support@confluent.io](mailto:support@confluent.io) for more information.
See [Update Confluent Platform License](co-license.html#co-license-key) if you have received a key for Confluent for Kubernetes.
© Copyright 2021 , Confluent, Inc. [Privacy Policy](https://www.confluent.io/confluent-privacy-statement/) | [Terms & Conditions](https://www.confluent.io/terms-of-use/). Apache, Apache Kafka, Kafka and the Kafka logo are trademarks of the [Apache Software Foundation](http://www.apache.org/). All other trademarks, servicemarks, and copyrights are the property of their respective owners.
[Please report any inaccuracies on this page or suggest an edit.](mailto:docs@confluent.io)

View File

@ -0,0 +1,3 @@
##Confluent For Kubernetes
With Confluent for Kubernetes, Confluent brings a cloud-native experience for data in motion workloads in on-premises environments. Based on our expertise and learnings from operating over 5,000 clusters in Confluent Cloud, Confluent for Kubernetes offers an opinionated deployment of Confluent Platform that enhances the platformb's elasticity, ease of operations, and resiliency.

View File

@ -0,0 +1,249 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: confluentrolebindings.platform.confluent.io
spec:
additionalPrinterColumns:
- JSONPath: .status.state
name: Status
type: string
- JSONPath: .status.kafkaClusterId
name: KafkaClusterId
type: string
- JSONPath: .status.principal
name: Principal
type: string
- JSONPath: .status.role
name: Role
type: string
- JSONPath: .status.kafkaRestClass
name: KafkaRestClass
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
- JSONPath: .status.clusterRegistryName
name: ClusterRegistryName
priority: 1
type: string
group: platform.confluent.io
names:
categories:
- all
- confluent-platform
- confluent
kind: ConfluentRolebinding
listKind: ConfluentRolebindingList
plural: confluentrolebindings
shortNames:
- cfrb
- confluentrolebinding
singular: confluentrolebinding
preserveUnknownFields: false
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: ConfluentRolebinding is the Schema for the confluentrolebinding
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: ConfluentRolebindingSpec defines the desired state of rolebinding
for cp component when rbac is enabled
properties:
clustersScopeByIds:
description: ClusterScope defines the scope of clustersId
properties:
connectClusterId:
minLength: 1
type: string
kafkaClusterId:
minLength: 1
type: string
ksqlClusterId:
minLength: 1
type: string
schemaRegistryClusterId:
minLength: 1
type: string
type: object
clustersScopeByRegistryName:
description: ClusterRegistryName defines the unique cluster name customer
registered in cluster registry
minLength: 1
type: string
kafkaRestClassRef:
description: KafkaRestClassRef defines the reference for KafkaRestClass
which defines Kafka Rest API
properties:
name:
description: Name defines the name of KafkaRestClass
minLength: 1
type: string
namespace:
description: Namespace defines the namespace of the KafkaRestClass
type: string
required:
- name
type: object
principal:
description: Principal defines the confluent rolebinding principal name
and the binding details.
properties:
name:
description: Name defines the name of the principal(user/group)
minLength: 1
type: string
type:
enum:
- user
- group
type: string
required:
- name
- type
type: object
resourcePatterns:
description: ResourcePatterns define the qualified resources associated
with this rolebinding
items:
description: ResourcePattern define the qualified resource info associated
with this rolebinding
properties:
name:
description: Name defines the name of resource associated with
this rolebinding
minLength: 1
type: string
patternType:
description: PatternType defines whether the pattern of resource
is PREFIXED or LITERAL, default is LITERAL if not set
enum:
- PREFIXED
- LITERAL
type: string
resourceType:
description: ResourceType defines the type of resource
minLength: 1
type: string
required:
- name
- resourceType
type: object
type: array
role:
description: Role defines the name of the Role
minLength: 1
type: string
required:
- principal
- role
type: object
status:
description: ConfluentRolebindingStatus defines the observed state of ConfluentRolebinding
properties:
clusterRegistryName:
type: string
conditions:
items:
description: Conditions represents the latest available observations
of a statefulset's current state.
properties:
lastProbeTime:
description: LastProbeTime defines a last time the condition is
evaluated.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime defines a last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: ' Message defines a human readable message indicating
details about the transition.'
type: string
reason:
description: ' Reason defines reason for the condition''s last
transition.'
type: string
status:
description: Status defines a status of the condition, one of
True, False, Unknown
type: string
type:
description: Type defines type of condition
type: string
type: object
type: array
kafkaClusterId:
type: string
kafkaRestClass:
type: string
mdsEndpoint:
type: string
principal:
type: string
resourcePatterns:
items:
description: ResourcePattern define the qualified resource info associated
with this rolebinding
properties:
name:
description: Name defines the name of resource associated with
this rolebinding
minLength: 1
type: string
patternType:
description: PatternType defines whether the pattern of resource
is PREFIXED or LITERAL, default is LITERAL if not set
enum:
- PREFIXED
- LITERAL
type: string
resourceType:
description: ResourceType defines the type of resource
minLength: 1
type: string
required:
- name
- resourceType
type: object
type: array
role:
type: string
state:
type: string
type: object
required:
- spec
type: object
version: v1beta1
versions:
- name: v1beta1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@ -0,0 +1,323 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: kafkarestclasses.platform.confluent.io
spec:
additionalPrinterColumns:
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: platform.confluent.io
names:
categories:
- all
- confluent-platform
- confluent
kind: KafkaRestClass
listKind: KafkaRestClassList
plural: kafkarestclasses
shortNames:
- krc
- kafkarestclass
singular: kafkarestclass
preserveUnknownFields: false
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: KafkaRestClass is the Schema for the kafkarestclasses API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: KafkaRestClassSpec defines the desired state of KafkaRestClass
properties:
kafkaClusterRef:
description: KafkaClusterRef defines the name of the kafka cluster
properties:
name:
description: Name defines name of the Kafka cluster
minLength: 1
type: string
namespace:
description: Namespace defines namespace where kafka cluster is
running
minLength: 1
type: string
required:
- name
type: object
kafkaRest:
description: KafkaRestApiInfo defines Kafka Rest API configuration
properties:
authentication:
description: Authentication defines authentication of Kafka Rest
API
properties:
basic:
description: KafkaRestBasicAuthentication defines basic authentication
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
bearer:
description: KafkaRestBearerAuthentication defines bearer authentication,
used by MDS clients when RBAC enabled
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
type:
enum:
- basic
- bearer
type: string
required:
- type
type: object
endpoint:
description: Endpoint defines where confluent Kafka Rest API is
running
minLength: 1
pattern: ^https?://.*
type: string
tls:
description: TLSDependencyConfig defines the client side tls configuration
to connect to Kafka Rest API
properties:
directoryPathInContainer:
description: DirectoryPathInContainer contains the directory
path in container where keystore/truststore.jks/jksPassword.txt
keys are mounted. CP will not configure truststore.jks can
be ignored with IgnoreTrustStoreConfig field
minLength: 1
type: string
enabled:
description: Enabled enables the TLS configuration for CP component
type: boolean
ignoreTrustStoreConfig:
description: IgnoreTrustStoreConfig when configure ignores the
truststore configuration for CP component
type: boolean
jksPassword:
description: JksPassword defines the secret name referenced
for jks password
properties:
secretRef:
description: SecretRef defines the secret name referenced
for jks password More information about jks password key/value
format can be found in Confluent Operator document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
secretRef:
description: SecretRef defines the secret name referenced for
certificates More information about certificates key/value
format can be found in Confluent Operator document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- enabled
type: object
type: object
secondaryKafkaClusterRef:
description: SecondaryKafkaClusterRef defines the name of the secondary
kafka cluster when using centralized RBAC
properties:
name:
description: Name defines name of the Kafka cluster
minLength: 1
type: string
namespace:
description: Namespace defines namespace where kafka cluster is
running
minLength: 1
type: string
required:
- name
type: object
secondaryKafkaRest:
description: SeconaryKafkaRestApiInfo defines secondary Kafka Rest API
configuration when using centralized RBAC
properties:
authentication:
description: Authentication defines authentication of Kafka Rest
API
properties:
basic:
description: KafkaRestBasicAuthentication defines basic authentication
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
bearer:
description: KafkaRestBearerAuthentication defines bearer authentication,
used by MDS clients when RBAC enabled
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
type:
enum:
- basic
- bearer
type: string
required:
- type
type: object
endpoint:
description: Endpoint defines where confluent Kafka Rest API is
running
minLength: 1
pattern: ^https?://.*
type: string
tls:
description: TLSDependencyConfig defines the client side tls configuration
to connect to Kafka Rest API
properties:
directoryPathInContainer:
description: DirectoryPathInContainer contains the directory
path in container where keystore/truststore.jks/jksPassword.txt
keys are mounted. CP will not configure truststore.jks can
be ignored with IgnoreTrustStoreConfig field
minLength: 1
type: string
enabled:
description: Enabled enables the TLS configuration for CP component
type: boolean
ignoreTrustStoreConfig:
description: IgnoreTrustStoreConfig when configure ignores the
truststore configuration for CP component
type: boolean
jksPassword:
description: JksPassword defines the secret name referenced
for jks password
properties:
secretRef:
description: SecretRef defines the secret name referenced
for jks password More information about jks password key/value
format can be found in Confluent Operator document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
secretRef:
description: SecretRef defines the secret name referenced for
certificates More information about certificates key/value
format can be found in Confluent Operator document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- enabled
type: object
type: object
type: object
status:
description: KafkaRestClassStatus defines the observed state of KafkaRestClass
properties:
conditions:
items:
description: Conditions represents the latest available observations
of a statefulset's current state.
properties:
lastProbeTime:
description: LastProbeTime defines a last time the condition is
evaluated.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime defines a last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: ' Message defines a human readable message indicating
details about the transition.'
type: string
reason:
description: ' Reason defines reason for the condition''s last
transition.'
type: string
status:
description: Status defines a status of the condition, one of
True, False, Unknown
type: string
type:
description: Type defines type of condition
type: string
type: object
type: array
endpoint:
description: Endpoint defines the kafkarest/mds endpoint
type: string
kafkaClusterId:
description: KafkaClusterId defines the cluster id of kafka cluster
If using centralized RBAC and kafkarestclass is for secondary kafka
cluster, it will be clusterId of secondary kafka cluster
type: string
type: object
required:
- spec
type: object
version: v1beta1
versions:
- name: v1beta1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@ -0,0 +1,267 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: kafkatopics.platform.confluent.io
spec:
additionalPrinterColumns:
- JSONPath: .status.replicas
name: Replicas
type: string
- JSONPath: .status.partitionCount
name: Partition
type: string
- JSONPath: .status.state
name: Status
type: string
- JSONPath: .status.kafkaClusterId
name: ClusterId
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: platform.confluent.io
names:
categories:
- all
- confluent-platform
- confluent
kind: KafkaTopic
listKind: KafkaTopicList
plural: kafkatopics
shortNames:
- kt
- topic
singular: kafkatopic
preserveUnknownFields: false
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: KafkaTopic is the Schema for the kafkatopics API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: KafkaTopicSpec defines the desired state of KafkaTopic
properties:
configs:
additionalProperties:
type: string
description: Configs allows passing configs for topic More information
about topic configs is available here https://docs.confluent.io/current/installation/configuration/topic-configs.html
type: object
kafkaClusterRef:
description: KafkaClusterRef defines the name of the kafka cluster
properties:
name:
description: Name defines name of the Kafka cluster
minLength: 1
type: string
namespace:
description: Namespace defines namespace where kafka cluster is
running
minLength: 1
type: string
required:
- name
type: object
kafkaRest:
description: KafkaRestRef defines the Kafka Rest API configuration
properties:
authentication:
description: Authentication defines authentication of Kafka Rest
API
properties:
basic:
description: KafkaRestBasicAuthentication defines basic authentication
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
bearer:
description: KafkaRestBearerAuthentication defines bearer authentication,
used by MDS clients when RBAC enabled
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
type:
enum:
- basic
- bearer
type: string
required:
- type
type: object
endpoint:
description: Endpoint defines where confluent Kafka Rest API is
running
minLength: 1
pattern: ^https?://.*
type: string
tls:
description: TLSDependencyConfig defines the client side tls configuration
to connect to Kafka Rest API
properties:
directoryPathInContainer:
description: DirectoryPathInContainer contains the directory
path in container where keystore/truststore.jks/jksPassword.txt
keys are mounted. CP will not configure truststore.jks can
be ignored with IgnoreTrustStoreConfig field
minLength: 1
type: string
enabled:
description: Enabled enables the TLS configuration for CP component
type: boolean
ignoreTrustStoreConfig:
description: IgnoreTrustStoreConfig when configure ignores the
truststore configuration for CP component
type: boolean
jksPassword:
description: JksPassword defines the secret name referenced
for jks password
properties:
secretRef:
description: SecretRef defines the secret name referenced
for jks password More information about jks password key/value
format can be found in Confluent Operator document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
secretRef:
description: SecretRef defines the secret name referenced for
certificates More information about certificates key/value
format can be found in Confluent Operator document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- enabled
type: object
type: object
kafkaRestClassRef:
description: KafkaRestClassRef defines the reference for KafkaRestClass
which defines Kafka Rest API
properties:
name:
description: Name defines the name of KafkaRestClass
minLength: 1
type: string
namespace:
description: Namespace defines the namespace of the KafkaRestClass
type: string
required:
- name
type: object
name:
description: Name defines the topic name. If not configured uses the
CR name as topic name.
maxLength: 255
minLength: 1
pattern: ^[a-zA-Z0-9\._\-]*$
type: string
partitionCount:
description: PartitionCount defines the partition count. If not configured
then it will be defaulted to whatever kafkarest V3 APIs supports
format: int32
type: integer
replicas:
description: Replicas defines the replication factor for a topic. If
not configured then it will be defaulted to whatever kafkarest V3
APIs supports
format: int32
type: integer
type: object
status:
description: KafkaTopicStatus defines the observed state of KafkaTopic
properties:
conditions:
items:
description: Conditions represents the latest available observations
of a statefulset's current state.
properties:
lastProbeTime:
description: LastProbeTime defines a last time the condition is
evaluated.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime defines a last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: ' Message defines a human readable message indicating
details about the transition.'
type: string
reason:
description: ' Reason defines reason for the condition''s last
transition.'
type: string
status:
description: Status defines a status of the condition, one of
True, False, Unknown
type: string
type:
description: Type defines type of condition
type: string
type: object
type: array
kafkaClusterId:
type: string
kafkaRestEndpoint:
type: string
partitionCount:
format: int32
type: integer
replicas:
format: int32
type: integer
state:
type: string
type: object
type: object
version: v1beta1
versions:
- name: v1beta1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@ -0,0 +1,669 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: migrationjobs.platform.confluent.io
spec:
group: platform.confluent.io
names:
categories:
- all
- confluent-platform
- confluent
kind: MigrationJob
listKind: MigrationJobList
plural: migrationjobs
shortNames:
- migrationjob
- migration
singular: migrationjob
preserveUnknownFields: false
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: MigrationJob is the Schema for the migrationjobs API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: MigrationJobSpec defines the desired state of MigrationJob
properties:
blockReconcile:
type: boolean
connect:
description: ConnectMigrationJobSpec defines the desired state of Connect
after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that may
be set by external tools to store and retrieve arbitrary metadata.
They are not queryable and should be preserved when modifying
objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize (scope
and select) objects. May match selectors of replication controllers
and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must be
unique. An empty namespace is equivalent to the "default" namespace,
but "default" is the canonical representation. Not all objects
are required to be scoped to a namespace - the value of this field
for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
controlcenter:
description: ControlCenterMigrationJobSpec defines the desired state
of ControlCenter after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that may
be set by external tools to store and retrieve arbitrary metadata.
They are not queryable and should be preserved when modifying
objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize (scope
and select) objects. May match selectors of replication controllers
and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must be
unique. An empty namespace is equivalent to the "default" namespace,
but "default" is the canonical representation. Not all objects
are required to be scoped to a namespace - the value of this field
for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
initContainerImage:
minLength: 1
type: string
kafka:
description: KafkaMigrationJobSpec defines the descired state of Kafka
after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that may
be set by external tools to store and retrieve arbitrary metadata.
They are not queryable and should be preserved when modifying
objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize (scope
and select) objects. May match selectors of replication controllers
and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must be
unique. An empty namespace is equivalent to the "default" namespace,
but "default" is the canonical representation. Not all objects
are required to be scoped to a namespace - the value of this field
for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
ksqldb:
description: KsqlDBMigrationJobSpec defines the desired state of KsqlDB
after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that may
be set by external tools to store and retrieve arbitrary metadata.
They are not queryable and should be preserved when modifying
objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize (scope
and select) objects. May match selectors of replication controllers
and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must be
unique. An empty namespace is equivalent to the "default" namespace,
but "default" is the canonical representation. Not all objects
are required to be scoped to a namespace - the value of this field
for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
pullSecretRef:
items:
type: string
type: array
replicator:
description: ReplicatorMigrationJobSpec defines the desired state of
Replicator after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that may
be set by external tools to store and retrieve arbitrary metadata.
They are not queryable and should be preserved when modifying
objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize (scope
and select) objects. May match selectors of replication controllers
and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must be
unique. An empty namespace is equivalent to the "default" namespace,
but "default" is the canonical representation. Not all objects
are required to be scoped to a namespace - the value of this field
for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
schemaRegistry:
description: SchemaRegistryMigrationJobSpec defines the desired state
of SchemaRegistry after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that may
be set by external tools to store and retrieve arbitrary metadata.
They are not queryable and should be preserved when modifying
objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize (scope
and select) objects. May match selectors of replication controllers
and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must be
unique. An empty namespace is equivalent to the "default" namespace,
but "default" is the canonical representation. Not all objects
are required to be scoped to a namespace - the value of this field
for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
skipCleanup:
type: boolean
skipRollback:
type: boolean
zookeeper:
description: ZookeeperMigrationJobSpec defines the desired state of
Zookeeper after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that may
be set by external tools to store and retrieve arbitrary metadata.
They are not queryable and should be preserved when modifying
objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize (scope
and select) objects. May match selectors of replication controllers
and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must be
unique. An empty namespace is equivalent to the "default" namespace,
but "default" is the canonical representation. Not all objects
are required to be scoped to a namespace - the value of this field
for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
required:
- initContainerImage
type: object
status:
description: MigrationJobStatus defines the observed state of MigrationJob
properties:
conditions:
items:
description: Conditions represents the latest available observations
of a statefulset's current state.
properties:
lastProbeTime:
description: LastProbeTime defines a last time the condition is
evaluated.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime defines a last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: ' Message defines a human readable message indicating
details about the transition.'
type: string
reason:
description: ' Reason defines reason for the condition''s last
transition.'
type: string
status:
description: Status defines a status of the condition, one of
True, False, Unknown
type: string
type:
description: Type defines type of condition
type: string
type: object
type: array
connect:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
controlcenter:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
kafka:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
ksqldb:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
phase:
type: string
replicator:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
schemaRegistry:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
zookeeper:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
required:
- phase
type: object
required:
- spec
type: object
version: v1beta1
versions:
- name: v1beta1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@ -0,0 +1,248 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: confluentrolebindings.platform.confluent.io
spec:
group: platform.confluent.io
names:
categories:
- all
- confluent-platform
- confluent
kind: ConfluentRolebinding
listKind: ConfluentRolebindingList
plural: confluentrolebindings
shortNames:
- cfrb
- confluentrolebinding
singular: confluentrolebinding
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.state
name: Status
type: string
- jsonPath: .status.kafkaClusterId
name: KafkaClusterId
type: string
- jsonPath: .status.principal
name: Principal
type: string
- jsonPath: .status.role
name: Role
type: string
- jsonPath: .status.kafkaRestClass
name: KafkaRestClass
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- jsonPath: .status.clusterRegistryName
name: ClusterRegistryName
priority: 1
type: string
name: v1beta1
schema:
openAPIV3Schema:
description: ConfluentRolebinding is the Schema for the confluentrolebinding
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: ConfluentRolebindingSpec defines the desired state of rolebinding
for cp component when rbac is enabled
properties:
clustersScopeByIds:
description: ClusterScope defines the scope of clustersId
properties:
connectClusterId:
minLength: 1
type: string
kafkaClusterId:
minLength: 1
type: string
ksqlClusterId:
minLength: 1
type: string
schemaRegistryClusterId:
minLength: 1
type: string
type: object
clustersScopeByRegistryName:
description: ClusterRegistryName defines the unique cluster name customer
registered in cluster registry
minLength: 1
type: string
kafkaRestClassRef:
description: KafkaRestClassRef defines the reference for KafkaRestClass
which defines Kafka Rest API
properties:
name:
description: Name defines the name of KafkaRestClass
minLength: 1
type: string
namespace:
description: Namespace defines the namespace of the KafkaRestClass
type: string
required:
- name
type: object
principal:
description: Principal defines the confluent rolebinding principal
name and the binding details.
properties:
name:
description: Name defines the name of the principal(user/group)
minLength: 1
type: string
type:
enum:
- user
- group
type: string
required:
- name
- type
type: object
resourcePatterns:
description: ResourcePatterns define the qualified resources associated
with this rolebinding
items:
description: ResourcePattern define the qualified resource info
associated with this rolebinding
properties:
name:
description: Name defines the name of resource associated with
this rolebinding
minLength: 1
type: string
patternType:
description: PatternType defines whether the pattern of resource
is PREFIXED or LITERAL, default is LITERAL if not set
enum:
- PREFIXED
- LITERAL
type: string
resourceType:
description: ResourceType defines the type of resource
minLength: 1
type: string
required:
- name
- resourceType
type: object
type: array
role:
description: Role defines the name of the Role
minLength: 1
type: string
required:
- principal
- role
type: object
status:
description: ConfluentRolebindingStatus defines the observed state of
ConfluentRolebinding
properties:
clusterRegistryName:
type: string
conditions:
items:
description: Conditions represents the latest available observations
of a statefulset's current state.
properties:
lastProbeTime:
description: LastProbeTime defines a last time the condition
is evaluated.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime defines a last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: ' Message defines a human readable message indicating
details about the transition.'
type: string
reason:
description: ' Reason defines reason for the condition''s last
transition.'
type: string
status:
description: Status defines a status of the condition, one of
True, False, Unknown
type: string
type:
description: Type defines type of condition
type: string
type: object
type: array
kafkaClusterId:
type: string
kafkaRestClass:
type: string
mdsEndpoint:
type: string
principal:
type: string
resourcePatterns:
items:
description: ResourcePattern define the qualified resource info
associated with this rolebinding
properties:
name:
description: Name defines the name of resource associated with
this rolebinding
minLength: 1
type: string
patternType:
description: PatternType defines whether the pattern of resource
is PREFIXED or LITERAL, default is LITERAL if not set
enum:
- PREFIXED
- LITERAL
type: string
resourceType:
description: ResourceType defines the type of resource
minLength: 1
type: string
required:
- name
- resourceType
type: object
type: array
role:
type: string
state:
type: string
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@ -0,0 +1,325 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: kafkarestclasses.platform.confluent.io
spec:
group: platform.confluent.io
names:
categories:
- all
- confluent-platform
- confluent
kind: KafkaRestClass
listKind: KafkaRestClassList
plural: kafkarestclasses
shortNames:
- krc
- kafkarestclass
singular: kafkarestclass
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1beta1
schema:
openAPIV3Schema:
description: KafkaRestClass is the Schema for the kafkarestclasses API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: KafkaRestClassSpec defines the desired state of KafkaRestClass
properties:
kafkaClusterRef:
description: KafkaClusterRef defines the name of the kafka cluster
properties:
name:
description: Name defines name of the Kafka cluster
minLength: 1
type: string
namespace:
description: Namespace defines namespace where kafka cluster is
running
minLength: 1
type: string
required:
- name
type: object
kafkaRest:
description: KafkaRestApiInfo defines Kafka Rest API configuration
properties:
authentication:
description: Authentication defines authentication of Kafka Rest
API
properties:
basic:
description: KafkaRestBasicAuthentication defines basic authentication
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
bearer:
description: KafkaRestBearerAuthentication defines bearer
authentication, used by MDS clients when RBAC enabled
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
type:
enum:
- basic
- bearer
type: string
required:
- type
type: object
endpoint:
description: Endpoint defines where confluent Kafka Rest API is
running
minLength: 1
pattern: ^https?://.*
type: string
tls:
description: TLSDependencyConfig defines the client side tls configuration
to connect to Kafka Rest API
properties:
directoryPathInContainer:
description: DirectoryPathInContainer contains the directory
path in container where keystore/truststore.jks/jksPassword.txt
keys are mounted. CP will not configure truststore.jks can
be ignored with IgnoreTrustStoreConfig field
minLength: 1
type: string
enabled:
description: Enabled enables the TLS configuration for CP
component
type: boolean
ignoreTrustStoreConfig:
description: IgnoreTrustStoreConfig when configure ignores
the truststore configuration for CP component
type: boolean
jksPassword:
description: JksPassword defines the secret name referenced
for jks password
properties:
secretRef:
description: SecretRef defines the secret name referenced
for jks password More information about jks password
key/value format can be found in Confluent Operator
document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
secretRef:
description: SecretRef defines the secret name referenced
for certificates More information about certificates key/value
format can be found in Confluent Operator document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- enabled
type: object
type: object
secondaryKafkaClusterRef:
description: SecondaryKafkaClusterRef defines the name of the secondary
kafka cluster when using centralized RBAC
properties:
name:
description: Name defines name of the Kafka cluster
minLength: 1
type: string
namespace:
description: Namespace defines namespace where kafka cluster is
running
minLength: 1
type: string
required:
- name
type: object
secondaryKafkaRest:
description: SeconaryKafkaRestApiInfo defines secondary Kafka Rest
API configuration when using centralized RBAC
properties:
authentication:
description: Authentication defines authentication of Kafka Rest
API
properties:
basic:
description: KafkaRestBasicAuthentication defines basic authentication
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
bearer:
description: KafkaRestBearerAuthentication defines bearer
authentication, used by MDS clients when RBAC enabled
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
type:
enum:
- basic
- bearer
type: string
required:
- type
type: object
endpoint:
description: Endpoint defines where confluent Kafka Rest API is
running
minLength: 1
pattern: ^https?://.*
type: string
tls:
description: TLSDependencyConfig defines the client side tls configuration
to connect to Kafka Rest API
properties:
directoryPathInContainer:
description: DirectoryPathInContainer contains the directory
path in container where keystore/truststore.jks/jksPassword.txt
keys are mounted. CP will not configure truststore.jks can
be ignored with IgnoreTrustStoreConfig field
minLength: 1
type: string
enabled:
description: Enabled enables the TLS configuration for CP
component
type: boolean
ignoreTrustStoreConfig:
description: IgnoreTrustStoreConfig when configure ignores
the truststore configuration for CP component
type: boolean
jksPassword:
description: JksPassword defines the secret name referenced
for jks password
properties:
secretRef:
description: SecretRef defines the secret name referenced
for jks password More information about jks password
key/value format can be found in Confluent Operator
document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
secretRef:
description: SecretRef defines the secret name referenced
for certificates More information about certificates key/value
format can be found in Confluent Operator document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- enabled
type: object
type: object
type: object
status:
description: KafkaRestClassStatus defines the observed state of KafkaRestClass
properties:
conditions:
items:
description: Conditions represents the latest available observations
of a statefulset's current state.
properties:
lastProbeTime:
description: LastProbeTime defines a last time the condition
is evaluated.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime defines a last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: ' Message defines a human readable message indicating
details about the transition.'
type: string
reason:
description: ' Reason defines reason for the condition''s last
transition.'
type: string
status:
description: Status defines a status of the condition, one of
True, False, Unknown
type: string
type:
description: Type defines type of condition
type: string
type: object
type: array
endpoint:
description: Endpoint defines the kafkarest/mds endpoint
type: string
kafkaClusterId:
description: KafkaClusterId defines the cluster id of kafka cluster
If using centralized RBAC and kafkarestclass is for secondary kafka
cluster, it will be clusterId of secondary kafka cluster
type: string
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@ -0,0 +1,267 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: kafkatopics.platform.confluent.io
spec:
group: platform.confluent.io
names:
categories:
- all
- confluent-platform
- confluent
kind: KafkaTopic
listKind: KafkaTopicList
plural: kafkatopics
shortNames:
- kt
- topic
singular: kafkatopic
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.replicas
name: Replicas
type: string
- jsonPath: .status.partitionCount
name: Partition
type: string
- jsonPath: .status.state
name: Status
type: string
- jsonPath: .status.kafkaClusterId
name: ClusterId
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1beta1
schema:
openAPIV3Schema:
description: KafkaTopic is the Schema for the kafkatopics API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: KafkaTopicSpec defines the desired state of KafkaTopic
properties:
configs:
additionalProperties:
type: string
description: Configs allows passing configs for topic More information
about topic configs is available here https://docs.confluent.io/current/installation/configuration/topic-configs.html
type: object
kafkaClusterRef:
description: KafkaClusterRef defines the name of the kafka cluster
properties:
name:
description: Name defines name of the Kafka cluster
minLength: 1
type: string
namespace:
description: Namespace defines namespace where kafka cluster is
running
minLength: 1
type: string
required:
- name
type: object
kafkaRest:
description: KafkaRestRef defines the Kafka Rest API configuration
properties:
authentication:
description: Authentication defines authentication of Kafka Rest
API
properties:
basic:
description: KafkaRestBasicAuthentication defines basic authentication
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
bearer:
description: KafkaRestBearerAuthentication defines bearer
authentication, used by MDS clients when RBAC enabled
properties:
secretRef:
description: Name of the secret reference
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
type:
enum:
- basic
- bearer
type: string
required:
- type
type: object
endpoint:
description: Endpoint defines where confluent Kafka Rest API is
running
minLength: 1
pattern: ^https?://.*
type: string
tls:
description: TLSDependencyConfig defines the client side tls configuration
to connect to Kafka Rest API
properties:
directoryPathInContainer:
description: DirectoryPathInContainer contains the directory
path in container where keystore/truststore.jks/jksPassword.txt
keys are mounted. CP will not configure truststore.jks can
be ignored with IgnoreTrustStoreConfig field
minLength: 1
type: string
enabled:
description: Enabled enables the TLS configuration for CP
component
type: boolean
ignoreTrustStoreConfig:
description: IgnoreTrustStoreConfig when configure ignores
the truststore configuration for CP component
type: boolean
jksPassword:
description: JksPassword defines the secret name referenced
for jks password
properties:
secretRef:
description: SecretRef defines the secret name referenced
for jks password More information about jks password
key/value format can be found in Confluent Operator
document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- secretRef
type: object
secretRef:
description: SecretRef defines the secret name referenced
for certificates More information about certificates key/value
format can be found in Confluent Operator document
maxLength: 30
minLength: 1
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
required:
- enabled
type: object
type: object
kafkaRestClassRef:
description: KafkaRestClassRef defines the reference for KafkaRestClass
which defines Kafka Rest API
properties:
name:
description: Name defines the name of KafkaRestClass
minLength: 1
type: string
namespace:
description: Namespace defines the namespace of the KafkaRestClass
type: string
required:
- name
type: object
name:
description: Name defines the topic name. If not configured uses the
CR name as topic name.
maxLength: 255
minLength: 1
pattern: ^[a-zA-Z0-9\._\-]*$
type: string
partitionCount:
description: PartitionCount defines the partition count. If not configured
then it will be defaulted to whatever kafkarest V3 APIs supports
format: int32
type: integer
replicas:
description: Replicas defines the replication factor for a topic.
If not configured then it will be defaulted to whatever kafkarest
V3 APIs supports
format: int32
type: integer
type: object
status:
description: KafkaTopicStatus defines the observed state of KafkaTopic
properties:
conditions:
items:
description: Conditions represents the latest available observations
of a statefulset's current state.
properties:
lastProbeTime:
description: LastProbeTime defines a last time the condition
is evaluated.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime defines a last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: ' Message defines a human readable message indicating
details about the transition.'
type: string
reason:
description: ' Reason defines reason for the condition''s last
transition.'
type: string
status:
description: Status defines a status of the condition, one of
True, False, Unknown
type: string
type:
description: Type defines type of condition
type: string
type: object
type: array
kafkaClusterId:
type: string
kafkaRestEndpoint:
type: string
partitionCount:
format: int32
type: integer
replicas:
format: int32
type: integer
state:
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@ -0,0 +1,688 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: migrationjobs.platform.confluent.io
spec:
group: platform.confluent.io
names:
categories:
- all
- confluent-platform
- confluent
kind: MigrationJob
listKind: MigrationJobList
plural: migrationjobs
shortNames:
- migrationjob
- migration
singular: migrationjob
scope: Namespaced
versions:
- name: v1beta1
schema:
openAPIV3Schema:
description: MigrationJob is the Schema for the migrationjobs API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: MigrationJobSpec defines the desired state of MigrationJob
properties:
blockReconcile:
type: boolean
connect:
description: ConnectMigrationJobSpec defines the desired state of
Connect after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that
may be set by external tools to store and retrieve arbitrary
metadata. They are not queryable and should be preserved when
modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing
configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication
controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must
be unique. An empty namespace is equivalent to the "default"
namespace, but "default" is the canonical representation. Not
all objects are required to be scoped to a namespace - the value
of this field for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
controlcenter:
description: ControlCenterMigrationJobSpec defines the desired state
of ControlCenter after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that
may be set by external tools to store and retrieve arbitrary
metadata. They are not queryable and should be preserved when
modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing
configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication
controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must
be unique. An empty namespace is equivalent to the "default"
namespace, but "default" is the canonical representation. Not
all objects are required to be scoped to a namespace - the value
of this field for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
initContainerImage:
minLength: 1
type: string
kafka:
description: KafkaMigrationJobSpec defines the descired state of Kafka
after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that
may be set by external tools to store and retrieve arbitrary
metadata. They are not queryable and should be preserved when
modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing
configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication
controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must
be unique. An empty namespace is equivalent to the "default"
namespace, but "default" is the canonical representation. Not
all objects are required to be scoped to a namespace - the value
of this field for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
ksqldb:
description: KsqlDBMigrationJobSpec defines the desired state of KsqlDB
after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that
may be set by external tools to store and retrieve arbitrary
metadata. They are not queryable and should be preserved when
modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing
configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication
controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must
be unique. An empty namespace is equivalent to the "default"
namespace, but "default" is the canonical representation. Not
all objects are required to be scoped to a namespace - the value
of this field for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
pullSecretRef:
items:
type: string
type: array
replicator:
description: ReplicatorMigrationJobSpec defines the desired state
of Replicator after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that
may be set by external tools to store and retrieve arbitrary
metadata. They are not queryable and should be preserved when
modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing
configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication
controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must
be unique. An empty namespace is equivalent to the "default"
namespace, but "default" is the canonical representation. Not
all objects are required to be scoped to a namespace - the value
of this field for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
schemaRegistry:
description: SchemaRegistryMigrationJobSpec defines the desired state
of SchemaRegistry after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that
may be set by external tools to store and retrieve arbitrary
metadata. They are not queryable and should be preserved when
modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing
configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication
controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must
be unique. An empty namespace is equivalent to the "default"
namespace, but "default" is the canonical representation. Not
all objects are required to be scoped to a namespace - the value
of this field for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
skipCleanup:
type: boolean
skipRollback:
type: boolean
zookeeper:
description: ZookeeperMigrationJobSpec defines the desired state of
Zookeeper after migration
properties:
annotations:
additionalProperties:
type: string
description: 'Annotations for the new resource created. Annotations
is an unstructured key value map stored with a resource that
may be set by external tools to store and retrieve arbitrary
metadata. They are not queryable and should be preserved when
modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
type: object
configOverrides:
description: ConfigurationOverrides for the new resource created.
Takes precedence over configuration already present in old CR
properties:
jvm:
description: JVM defines a list of jvm configuration supported
by application. This will either add or update existing
configuration
items:
type: string
type: array
log4j:
description: Log4j defines a list of log4J configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
server:
description: server is list of server configuration supported
by application. This will either add or update existing
configuration.
items:
type: string
type: array
type: object
enabled:
description: Indicates if Migration of this component is enabled
type: boolean
labels:
additionalProperties:
type: string
description: 'Labels for the new resource created. Map of string
keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication
controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
type: object
name:
description: Name of the V1 resource to migrate. It must be unique
within a namespace Note that the resource will be deleted once
the migration is complete Required if this component is enabled
type: string
namespace:
description: Namespace defines the space within each name must
be unique. An empty namespace is equivalent to the "default"
namespace, but "default" is the canonical representation. Not
all objects are required to be scoped to a namespace - the value
of this field for those objects will be empty.
type: string
release:
description: ReleaseName for the helm release for the component.
It is optional for kafka and zookeeper release.
minLength: 1
type: string
required:
- enabled
type: object
required:
- initContainerImage
type: object
status:
description: MigrationJobStatus defines the observed state of MigrationJob
properties:
conditions:
items:
description: Conditions represents the latest available observations
of a statefulset's current state.
properties:
lastProbeTime:
description: LastProbeTime defines a last time the condition
is evaluated.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime defines a last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: ' Message defines a human readable message indicating
details about the transition.'
type: string
reason:
description: ' Reason defines reason for the condition''s last
transition.'
type: string
status:
description: Status defines a status of the condition, one of
True, False, Unknown
type: string
type:
description: Type defines type of condition
type: string
type: object
type: array
connect:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
controlcenter:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
kafka:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
ksqldb:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
phase:
type: string
replicator:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
schemaRegistry:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
zookeeper:
description: CommonMigrationStatus defines spec common to different
migration resources
properties:
message:
type: string
phase:
type: string
required:
- message
- phase
type: object
required:
- phase
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@ -0,0 +1,4 @@
The Confluent Operator
The Confluent Operator brings the component (Confluent Services) specific controllers for kubernetes by providing components specific Custom Resource
Definition (CRD) as well as managing other Confluent Platform services

View File

@ -0,0 +1,42 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "confluent-operator.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "confluent-operator.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "confluent-operator.service-account" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "confluent-operator.name" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "confluent-operator.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}

View File

@ -0,0 +1,126 @@
{{- if .Values.rbac }}
{{- $clusterRole := or (not .Values.namespaced) (gt (len .Values.namespaceList) 0)}}
apiVersion: rbac.authorization.k8s.io/v1
{{- if not $clusterRole }}
kind: Role
{{- else }}
kind: ClusterRole
{{- end }}
metadata:
labels:
app: {{ include "confluent-operator.name" . }}
app.kubernetes.io/name: {{ include "confluent-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/component: "confluent-operator"
helm.sh/chart: {{ include "confluent-operator.chart" . }}
name: {{ .Values.name }}
{{- if not $clusterRole }}
namespace: {{ .Release.Namespace }}
{{- end }}
rules:
- apiGroups:
- cluster.confluent.com
resources:
- zookeeperclusters
- zookeeperclusters/status
- zookeeperclusters/scale
- zookeeperclusters/finalizers
- kafkaclusters
- kafkaclusters/status
- kafkaclusters/scale
- kafkaclusters/finalizers
verbs:
- '*'
- apiGroups:
- operator.confluent.cloud
resources:
- physicalstatefulclusters
- physicalstatefulclusters/scale
- physicalstatefulclusters/status
- physicalstatefulclusters/finalizers
verbs:
- '*'
- apiGroups:
- platform.confluent.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- route.openshift.io
resources:
- routes
- routes/custom-host
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- apps
resources:
- statefulsets
- statefulsets/scale
- statefulsets/status
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- configmaps
- events
- persistentvolumeclaims
- secrets
- secrets/finalizers
- pods
- services
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- networking.k8s.io
resources:
- ingresses
- ingresses/status
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
{{- end }}

View File

@ -0,0 +1,33 @@
{{- if .Values.rbac }}
{{- $clusterRoleBinding := or (not .Values.namespaced) (gt (len .Values.namespaceList) 0)}}
{{- if not $clusterRoleBinding }}
kind: RoleBinding
{{- else }}
kind: ClusterRoleBinding
{{- end }}
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
app: {{ include "confluent-operator.name" . }}
app.kubernetes.io/name: {{ include "confluent-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/component: "confluent-operator"
helm.sh/chart: {{ include "confluent-operator.chart" . }}
name: {{ .Values.name }}
{{- if not $clusterRoleBinding }}
namespace: {{ .Release.Namespace }}
{{- end }}
subjects:
- kind: ServiceAccount
name: {{ template "confluent-operator.service-account" . }}
namespace: {{ .Release.Namespace }}
roleRef:
{{- if not $clusterRoleBinding }}
kind: Role
{{- else }}
kind: ClusterRole
{{- end }}
name: {{ .Values.name }}
apiGroup: rbac.authorization.k8s.io
{{- end }}

View File

@ -0,0 +1,130 @@
{{- $_ := required "Namespace is required" .Release.Namespace }}
{{- $_ := required "Name of operator is required." .Values.name }}
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: {{ include "confluent-operator.name" . }}
app.kubernetes.io/name: {{ include "confluent-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/component: "confluent-operator"
helm.sh/chart: {{ include "confluent-operator.chart" . }}
version: {{ .Values.image.tag }}
name: {{ .Values.name }}
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels:
app.kubernetes.io/name: "confluent-operator"
app.kubernetes.io/instance: {{ .Release.Name }}
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
annotations:
{{- range $key, $value := .Values.pod.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
labels:
app: "confluent-operator"
app.kubernetes.io/name: "confluent-operator"
app.kubernetes.io/instance: {{ .Release.Name }}
confluent-platform: "true"
version: {{ .Values.image.tag }}
{{- range $key, $value := .Values.pod.labels }}
{{ $key }}: {{ $value | quote }}
{{- end }}
spec:
{{- if not (empty $.Values.affinity) }}
affinity:
{{ toYaml .Values.affinity | trim | indent 8 }}
{{- end }}
{{- if not (empty $.Values.tolerations) }}
tolerations:
{{ toYaml .Values.tolerations | trim | indent 6 }}
{{- end }}
{{- if .Values.podSecurity.enabled }}
securityContext:
{{ toYaml .Values.podSecurity.securityContext | indent 8 }}
{{- end }}
containers:
- args:
- --debug={{.Values.debug}}
{{- if gt (int (.Values.replicas)) 1 }}
- --enable-leader-election
{{- end }}
{{- if .Values.namespaced }}
{{- if empty .Values.namespaceList }}
- --namespaces={{ .Release.Namespace }}
{{- else}}
{{- $ns := "" }}
{{- range $i, $v := .Values.namespaceList }}
{{- $ns = printf "%s,%s" $ns (trim $v) }}
{{- end }}
- --namespaces={{ substr 1 (len $ns) $ns }}
{{- end }}
{{- end }}
name: {{ .Values.name }}
image: {{ .Values.image.registry }}/{{ .Values.image.repository }}:{{.Values.image.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
readinessProbe:
httpGet:
port: 8080
path: /readyz
livenessProbe:
httpGet:
port: 8080
path: /healthz
resources:
{{ toYaml .Values.resources | trim | indent 10 }}
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NODEIP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: DD_ENTITY_ID
valueFrom:
fieldRef:
fieldPath: metadata.uid
{{- if .Values.licenseSecretRef }}
- name: CONFLUENT_LICENSE_SECRET_NAME
value: {{ .Values.licenseSecretRef }}
{{- end }}
{{- if .Values.telemetry.enabled }}
{{- if and (empty .Values.telemetry.secretRef) (empty .Values.telemetry.directoryPathInContainer) }}
{{- $_ := required "secretRef or directoryPathInContainer must be configured when telemetry is enabled" .Values.telemetry.secretRef }}
{{- end }}
{{- if .Values.telemetry.secretRef }}
- name: CONFLUENT_TELEMETRY_SECRET_NAME
value: {{ .Values.telemetry.secretRef }}
{{- end }}
{{- if .Values.telemetry.directoryPathInContainer }}
- name: CONFLUENT_TELEMETRY_DIRECTORY_PATH
value: {{ .Values.telemetry.directoryPathInContainer }}
{{- end }}
{{- if .Values.telemetry.proxy.enabled }}
- name: CONFLUENT_TELEMETRY_PROXY_ENABLED
value: "true"
{{- end }}
{{- if .Values.telemetry.proxy.credentialRequired }}
- name: CONFLUENT_TELEMETRY_PROXY_CREDENTIAL_REQUIRED
value: "true"
{{- end }}
{{- end }}
serviceAccountName: {{ template "confluent-operator.service-account" . }}
{{- if .Values.priorityClassName }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- end }}
restartPolicy: Always
terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}

View File

@ -0,0 +1,20 @@
{{- if not .Values.licenseSecretRef }}
apiVersion: v1
kind: Secret
metadata:
labels:
app: {{ include "confluent-operator.name" . }}
app.kubernetes.io/name: {{ include "confluent-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/component: "confluent-operator"
helm.sh/chart: {{ include "confluent-operator.chart" . }}
namespace: {{ .Release.Namespace }}
name: confluent-operator-licensing
type: Opaque
data:
{{- if .Values.licenseKey }}
license.txt: {{ .Values.licenseKey | b64enc }}
{{- end }}
publicKey.pem: {{ .Values.publicKey | b64enc }}
{{- end }}

View File

@ -0,0 +1,23 @@
apiVersion: v1
kind: Service
metadata:
labels:
app: {{ include "confluent-operator.name" . }}
app.kubernetes.io/name: {{ include "confluent-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/component: "confluent-operator"
helm.sh/chart: {{ include "confluent-operator.chart" . }}
name: confluent-operator
namespace: {{ .Release.Namespace }}
spec:
ports:
- name: http-metric
port: 7778
protocol: TCP
targetPort: 7778
selector:
app: "confluent-operator"
app.kubernetes.io/name: "confluent-operator"
type: ClusterIP

View File

@ -0,0 +1,18 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
{{- if .Values.imagePullSecretRef }}
imagePullSecrets:
- name: {{ .Values.imagePullSecretRef }}
{{- end }}
kind: ServiceAccount
metadata:
labels:
app: {{ include "confluent-operator.name" . }}
app.kubernetes.io/name: {{ include "confluent-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/component: "confluent-operator"
helm.sh/chart: {{ include "confluent-operator.chart" . }}
name: {{ template "confluent-operator.service-account" . }}
namespace: {{ .Release.Namespace }}
{{- end }}

View File

@ -0,0 +1,146 @@
## Confluent operator name
##
name: confluent-operator
##
## License Key for Operator
##
licenseKey: ""
publicKey: |-
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvaGy8TOdbCMySM7zqZsx
n62yuE+BhIPlc9z9ctrX+tBWNCCJePZbKHTZS9uKLeKUi9u07ts/35XRnE4ATD6q
lwjnSoJOkeIXcYiJ+XGExN1oRE8Rl5otvdmJEsb9Y6Jsfe2lRCCsZNx6k1s1NmQF
R4wnRiKylIiYJ9uWUGfH18JKZqM8z9QqkZ/+zQkzHNYsXn/YyRuDIQXeUSechr93
Jjt79AikskicoT04lqz/GaHz2WJEyuvLLE1jNBOComKl05Qb+yvJmGnt/7HX6HT7
3hnCXbslwtzp0CmeGOiJRbJxbahkTFqh1oKqZXUDCZrKCNNRvXqN/QHqnawo6kJy
8wIDAQAB
-----END PUBLIC KEY-----
##
## The license secret ref is injected through
## CONFLUENT_LICENSE_SECRET_NAME environment variable.
## The expected keys: license.txt, publicKey.pem
## If the value is empty, then charts will create license secret
## with name `confluent-operator-licensing`
###
licenseSecretRef: ""
###
## Image pull secret
imagePullSecretRef: confluent-registry
## Confluent Operator Image Information
##
image:
registry: docker.io
repository: confluentinc/confluent-operator
pullPolicy: IfNotPresent
tag: "0.174.21"
###
## Priority class for Confluent Operator pod
priorityClassName: ""
## Number of pods for Operator
## Enables leader election if more than one replica
replicas: 1
## Confluent Operator Cluster Access
## If true, operator only creates roles/rolebinding for the release namespace
## Otherwise, it has cluster access with clusterrole/clusterrrolebinding
namespaced: true
### list of namespaces to watch by operator
### This field only takes in effect if `namespaced=true`. By default, it will only watch the release namespace
### Otherwise, it will watch specified namespaces. If watching only release namespace, do not specify this field
namespaceList: []
## Confluent Operator Pod Resources
##
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 256Mi
## Pod termination grace-period
##
terminationGracePeriodSeconds: 30
## Enable debugging
##
debug: false
##
## Configure affinity,
## More information here https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
##
affinity: {}
## Example for nodeAffinity, configure as required.
##affinity:
## nodeAffinity:
## requiredDuringSchedulingIgnoredDuringExecution:
## nodeSelectorTerms:
## - matchExpressions:
## - key: "node-role.kubernetes.io/compute"
## operator: In
## values:
## - "true"
##
## Configure tolerations
## https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
##
##tolerations:
##- key: "dedicated"
## operator: "Equal"
## value: "operator"
## effect: "NoSchedule"
## Pod Security Context
##
podSecurity:
enabled: true
securityContext:
fsGroup: 1001
runAsUser: 1001
runAsNonRoot: true
##
## ServiceAccount
## If enabled it will create, otherwise it will
## not create
##
serviceAccount:
create: true
name: ""
## Enable Kubernetes RBAC
## When set to true, it will create a proper role/rolebinding or cluster/clusterrolebinding based on namespaced field.
## If a user doesn't have permission to create role/rolebinding then they can disable rbac field and
## create required resources out of band to be used by the Operator. In this case, follow the
## templates/clusterrole.yaml and templates/clusterrolebiding.yaml to create proper required resources.
rbac: true
###
### Confluent Telemetry Report configuration
## The secretRef contains following data,
## telemetry.txt: |-
## api.key=<api_key>
## api.secret=<api_secret>
## proxy.url=<proxy_url> # only required if proxy is enabled
## proxy.username=<proxy_username> # only required if proxy requires credential
## proxy.password=<proxy_password>
##
telemetry:
enabled: false
proxy:
enabled: false
credentialRequired: false
secretRef: ""
## To use directoryPathInContainer, need to make sure
## you mount telemetry.txt in the path you provided here in each pod
directoryPathInContainer: ""
##
## Pod annotations/labels configurations
##
pod:
annotations:
prometheus.io/path: "/metrics"
prometheus.io/port: "7778"
prometheus.io/scrape: "true"
labels: {}
# labels:
# key: "value"

View File

@ -452,6 +452,33 @@ entries:
urls:
- assets/cockroachdb/cockroachdb-4.1.200.tgz
version: 4.1.200
confluent-for-kubernetes:
- annotations:
catalog.cattle.io/certified: partner
catalog.cattle.io/display-name: Confluent For Kubernetes
catalog.cattle.io/release-name: confluent-for-kubernetes
apiVersion: v1
appVersion: 2.0.2
created: "2021-09-03T16:12:20.007868-04:00"
description: A Helm chart to deploy Confluent for Kubernetes
digest: 14d6eb38fca10b8ed7fca9f3c256993b8e3560211f96733a1ab6318fa8e2cd83
home: https://www.confluent.io/
icon: https://cdn.confluent.io/wp-content/uploads/seo-logo-meadow.png
keywords:
- Confluent
- Confluent Operator
- Confluent Platform
- CFK
kubeVersion: 1.15 - 1.20
maintainers:
- email: operator@confluent.io
name: Confluent Operator
name: confluent-for-kubernetes
sources:
- https://docs.confluent.io/current/index.html
urls:
- assets/confluent-for-kubernetes/confluent-for-kubernetes-0.174.2101.tgz
version: 0.174.2101
control-agent:
- annotations:
catalog.cattle.io/certified: partner

View File

@ -0,0 +1,72 @@
Confluent for Kubernetes
==================================================================
Confluent for Kubernetes (CFK) is a cloud-native control plane for deploying and managing Confluent in your private cloud environment. It provides standard and simple interface to customize, deploy, and manage Confluent Platform through declarative API.
Confluent for Kubernetes runs on Kubernetes, the runtime for private cloud architectures.
NOTE: Confluent for Kubernetes is the next generation of Confluent Operator. For Confluent Operator 1.x documentation, see [Confluent Operator 1](https://docs.confluent.io/operator/1.7.0/overview.html), or use the version picker to browse to a specific version of the documentation.
See [Introducing Confluent for Kubernetes](https://www.confluent.io/blog/confluent-for-kubernetes-offers-cloud-native-kafka-automation/) for an overview.
The following shows the high-level architecture of Confluent for Kubernetes and Confluent Platform in Kubernetes.
[![_images/co-architecture.png](https://docs.confluent.io/operator/current/_images/co-architecture.png)](_images/co-architecture.png)
Features
---------------------------------------------------
The following are summaries of the main, notable features of Confluent for Kubernetes.
#### Cloud Native Declarative API
* Declarative Kubernetes-native API approach to configure, deploy, and manage Confluent Platform components (Apache KafkaB., Connect workers, ksqlDB, Schema Registry, Confluent Control Center) and resources (topics, rolebindings) through Infrastructure as Code (IaC).
* Provides built-in automation for cloud-native security best practices:
* Complete granular RBAC, authentication and TLS network encryption
* Auto-generated certificates
* Support for credential management systems, such as Hashicorp Vault, to inject sensitive configurations in memory to Confluent deployments
* Provides server properties, JVM, and Log4j configuration overrides for customization of all Confluent Platform components.
#### Upgrades
* Provides automated rolling updates for configuration changes.
* Provides automated rolling upgrades with no impact to Kafka availability.
#### Scaling
* Provides single command, automated scaling and reliability checks of Confluent Platform.
#### Resiliency
* Restores a Kafka pod with the same Kafka broker ID, configuration, and persistent storage volumes if a failure occurs.
* Provides automated rack awareness to spread replicas of a partition across different racks (or zones), improving availability of Kafka brokers and limiting the risk of data loss.
#### Scheduling
* Supports Kubernetes labels and annotations to provide useful context to DevOps teams and ecosystem tooling.
* Supports Kubernetes tolerations and pod/node affinity for efficient resource utilization and pod placement.
#### Monitoring
* Supports metrics aggregation using JMX/Jolokia.
* Supports aggregated metrics export to Prometheus.
Licensing
-----------------------------------------------------
You can use Confluent for Kubernetes and Confluent Control Center for a 30-day trial period without a license key.
After 30 days, Confluent for Kubernetes and Control Center require a license key. Confluent issues keys to subscribers, along with providing [enterprise-level support](https://www.confluent.io/subscription/) for Confluent components and Confluent for Kubernetes.
If you are a subscriber, contact Confluent Support at [support@confluent.io](mailto:support@confluent.io) for more information.
See [Update Confluent Platform License](co-license.html#co-license-key) if you have received a key for Confluent for Kubernetes.
&copy; Copyright 2021 , Confluent, Inc. [Privacy Policy](https://www.confluent.io/confluent-privacy-statement/) | [Terms & Conditions](https://www.confluent.io/terms-of-use/). Apache, Apache Kafka, Kafka and the Kafka logo are trademarks of the [Apache Software Foundation](http://www.apache.org/). All other trademarks, servicemarks, and copyrights are the property of their respective owners.
[Please report any inaccuracies on this page or suggest an edit.](mailto:docs@confluent.io)

View File

@ -0,0 +1,3 @@
##Confluent For Kubernetes
With Confluent for Kubernetes, Confluent brings a cloud-native experience for data in motion workloads in on-premises environments. Based on our expertise and learnings from operating over 5,000 clusters in Confluent Cloud, Confluent for Kubernetes offers an opinionated deployment of Confluent Platform that enhances the platformb's elasticity, ease of operations, and resiliency.

View File

@ -0,0 +1,21 @@
--- charts-original/Chart.yaml
+++ charts/Chart.yaml
@@ -1,12 +1,18 @@
apiVersion: v1
appVersion: 2.0.2
+annotations:
+ catalog.cattle.io/certified: partner
+ catalog.cattle.io/display-name: Confluent For Kubernetes
+ catalog.cattle.io/release-name: confluent-for-kubernetes
description: A Helm chart to deploy Confluent for Kubernetes
home: https://www.confluent.io/
+icon: https://cdn.confluent.io/wp-content/uploads/seo-logo-meadow.png
keywords:
- Confluent
- Confluent Operator
- Confluent Platform
- CFK
+kubeVersion: 1.15 - 1.20
maintainers:
- email: operator@confluent.io
name: Confluent Operator

View File

@ -0,0 +1,3 @@
url: https://confluent-helm-prod.s3-us-west-2.amazonaws.com/helm/confluent-for-kubernetes-0.174.21.tgz
packageVersion: 01