diff --git a/charts/aiven-operator-crds/Chart.yaml b/charts/aiven-operator-crds/Chart.yaml index 293e118..62cbd23 100644 --- a/charts/aiven-operator-crds/Chart.yaml +++ b/charts/aiven-operator-crds/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: aiven-operator-crds description: A Helm chart to deploy the aiven operator custom resource definitions type: application -version: v0.19.0 -appVersion: v0.19.0 +version: v0.20.0 +appVersion: v0.20.0 maintainers: - name: byashimov url: https://www.aiven.io diff --git a/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml b/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml index a7e6bef..c514e70 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: cassandras.aiven.io spec: @@ -31,7 +31,10 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Cassandra is the Schema for the cassandras API + description: + 'Cassandra is the Schema for the cassandras API. Info "Exposes + secret keys": `CASSANDRA_HOST`, `CASSANDRA_PORT`, `CASSANDRA_USER`, `CASSANDRA_PASSWORD`, + `CASSANDRA_URI`, `CASSANDRA_HOSTS`, `CASSANDRA_CA_CERT`' properties: apiVersion: description: @@ -68,10 +71,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `CASSANDRA_HOST`, `CASSANDRA_PORT`, `CASSANDRA_USER`, `CASSANDRA_PASSWORD`, - `CASSANDRA_URI`, `CASSANDRA_HOSTS`, `CASSANDRA_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -90,6 +90,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -112,8 +115,9 @@ spec: description: The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing - will result in the service re-balancing. - format: ^[1-9][0-9]*(GiB|G)* + will result in the service re-balancing. The removal of this field + does not change the value. + pattern: (?i)^[1-9][0-9]*(GiB|G)?$ type: string maintenanceWindowDow: description: @@ -140,8 +144,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -205,7 +209,7 @@ spec: properties: email: description: Email address. - format: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ + pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ type: string required: - email diff --git a/charts/aiven-operator-crds/templates/aiven.io_clickhousedatabases.yaml b/charts/aiven-operator-crds/templates/aiven.io_clickhousedatabases.yaml index 62fff08..42b9718 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_clickhousedatabases.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_clickhousedatabases.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: clickhousedatabases.aiven.io spec: @@ -59,8 +59,8 @@ spec: type: object project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -69,8 +69,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_clickhouseroles.yaml b/charts/aiven-operator-crds/templates/aiven.io_clickhouseroles.yaml index 6361d08..70d56bf 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_clickhouseroles.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_clickhouseroles.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: clickhouseroles.aiven.io spec: @@ -62,16 +62,16 @@ spec: type: object project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable rule: self == oldSelf role: description: The role that is to be created - format: ^[a-zA-Z_][0-9a-zA-Z_]*$ maxLength: 255 + pattern: ^[a-zA-Z_][0-9a-zA-Z_]*$ type: string x-kubernetes-validations: - message: Value is immutable @@ -80,8 +80,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml b/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml index 98327d5..e674f9d 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: clickhouses.aiven.io spec: @@ -18,7 +18,9 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: Clickhouse is the Schema for the clickhouses API + description: + 'Clickhouse is the Schema for the clickhouses API. Info "Exposes + secret keys": `CLICKHOUSE_HOST`, `CLICKHOUSE_PORT`, `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`' properties: apiVersion: description: @@ -55,10 +57,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `CLICKHOUSE_HOST`, `CLICKHOUSE_PORT`, `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`, - `CLICKHOUSE_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -77,6 +76,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -99,8 +101,9 @@ spec: description: The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing - will result in the service re-balancing. - format: ^[1-9][0-9]*(GiB|G)* + will result in the service re-balancing. The removal of this field + does not change the value. + pattern: (?i)^[1-9][0-9]*(GiB|G)?$ type: string maintenanceWindowDow: description: @@ -127,8 +130,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -192,7 +195,7 @@ spec: properties: email: description: Email address. - format: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ + pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ type: string required: - email diff --git a/charts/aiven-operator-crds/templates/aiven.io_clickhouseusers.yaml b/charts/aiven-operator-crds/templates/aiven.io_clickhouseusers.yaml index 328addc..8cc0e2b 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_clickhouseusers.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_clickhouseusers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: clickhouseusers.aiven.io spec: @@ -28,7 +28,10 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ClickhouseUser is the Schema for the clickhouseusers API + description: + 'ClickhouseUser is the Schema for the clickhouseusers API. Info + "Exposes secret keys": `CLICKHOUSEUSER_HOST`, `CLICKHOUSEUSER_PORT`, `CLICKHOUSEUSER_USER`, + `CLICKHOUSEUSER_PASSWORD`' properties: apiVersion: description: @@ -61,10 +64,7 @@ spec: - name type: object connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `CLICKHOUSEUSER_HOST`, `CLICKHOUSEUSER_PORT`, `CLICKHOUSEUSER_USER`, - `CLICKHOUSEUSER_PASSWORD`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -83,6 +83,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -103,8 +106,8 @@ spec: rule: self == oldSelf project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -113,8 +116,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml b/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml index 5354778..2467e77 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: connectionpools.aiven.io spec: @@ -37,7 +37,11 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ConnectionPool is the Schema for the connectionpools API + description: + 'ConnectionPool is the Schema for the connectionpools API. Info + "Exposes secret keys": `CONNECTIONPOOL_NAME`, `CONNECTIONPOOL_HOST`, `CONNECTIONPOOL_PORT`, + `CONNECTIONPOOL_DATABASE`, `CONNECTIONPOOL_USER`, `CONNECTIONPOOL_PASSWORD`, + `CONNECTIONPOOL_SSLMODE`, `CONNECTIONPOOL_DATABASE_URI`, `CONNECTIONPOOL_CA_CERT`' properties: apiVersion: description: @@ -70,11 +74,7 @@ spec: - name type: object connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `CONNECTIONPOOL_NAME`, `CONNECTIONPOOL_HOST`, `CONNECTIONPOOL_PORT`, - `CONNECTIONPOOL_DATABASE`, `CONNECTIONPOOL_USER`, `CONNECTIONPOOL_PASSWORD`, - `CONNECTIONPOOL_SSLMODE`, `CONNECTIONPOOL_DATABASE_URI`, `CONNECTIONPOOL_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -93,6 +93,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -129,8 +132,8 @@ spec: type: integer project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -139,8 +142,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_databases.yaml b/charts/aiven-operator-crds/templates/aiven.io_databases.yaml index a6116af..a867540 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_databases.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_databases.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: databases.aiven.io spec: @@ -79,8 +79,8 @@ spec: rule: self == oldSelf project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -89,8 +89,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml b/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml index 0cd27fa..d9a9e91 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: grafanas.aiven.io spec: @@ -31,7 +31,10 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Grafana is the Schema for the grafanas API + description: + 'Grafana is the Schema for the grafanas API. Info "Exposes secret + keys": `GRAFANA_HOST`, `GRAFANA_PORT`, `GRAFANA_USER`, `GRAFANA_PASSWORD`, + `GRAFANA_URI`, `GRAFANA_HOSTS`' properties: apiVersion: description: @@ -68,10 +71,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `GRAFANA_HOST`, `GRAFANA_PORT`, `GRAFANA_USER`, `GRAFANA_PASSWORD`, - `GRAFANA_URI`, `GRAFANA_HOSTS`, `GRAFANA_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -90,6 +90,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -112,8 +115,9 @@ spec: description: The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing - will result in the service re-balancing. - format: ^[1-9][0-9]*(GiB|G)* + will result in the service re-balancing. The removal of this field + does not change the value. + pattern: (?i)^[1-9][0-9]*(GiB|G)?$ type: string maintenanceWindowDow: description: @@ -140,8 +144,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -205,7 +209,7 @@ spec: properties: email: description: Email address. - format: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ + pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ type: string required: - email diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaacls.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaacls.yaml index cfe4c1c..0ee8693 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaacls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaacls.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: kafkaacls.aiven.io spec: @@ -76,8 +76,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -86,8 +86,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnectors.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnectors.yaml index e81824b..4736cb1 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnectors.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnectors.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: kafkaconnectors.aiven.io spec: @@ -75,8 +75,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -85,8 +85,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml index a1289d1..2e4fba5 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: kafkaconnects.aiven.io spec: @@ -83,8 +83,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -148,7 +148,7 @@ spec: properties: email: description: Email address. - format: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ + pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ type: string required: - email diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml index e9c3e4c..ff46491 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: kafkas.aiven.io spec: @@ -31,7 +31,12 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Kafka is the Schema for the kafkas API + description: + 'Kafka is the Schema for the kafkas API. Info "Exposes secret + keys": `KAFKA_HOST`, `KAFKA_PORT`, `KAFKA_USERNAME`, `KAFKA_PASSWORD`, `KAFKA_ACCESS_CERT`, + `KAFKA_ACCESS_KEY`, `KAFKA_SASL_HOST`, `KAFKA_SASL_PORT`, `KAFKA_SCHEMA_REGISTRY_HOST`, + `KAFKA_SCHEMA_REGISTRY_PORT`, `KAFKA_CONNECT_HOST`, `KAFKA_CONNECT_PORT`, + `KAFKA_REST_HOST`, `KAFKA_REST_PORT`, `KAFKA_CA_CERT`' properties: apiVersion: description: @@ -68,12 +73,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `KAFKA_HOST`, `KAFKA_PORT`, `KAFKA_USERNAME`, `KAFKA_PASSWORD`, - `KAFKA_ACCESS_CERT`, `KAFKA_ACCESS_KEY`, `KAFKA_SASL_HOST`, `KAFKA_SASL_PORT`, - `KAFKA_SCHEMA_REGISTRY_HOST`, `KAFKA_SCHEMA_REGISTRY_PORT`, `KAFKA_CONNECT_HOST`, - `KAFKA_CONNECT_PORT`, `KAFKA_REST_HOST`, `KAFKA_REST_PORT`, `KAFKA_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -92,6 +92,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -114,8 +117,9 @@ spec: description: The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing - will result in the service re-balancing. - format: ^[1-9][0-9]*(GiB|G)* + will result in the service re-balancing. The removal of this field + does not change the value. + pattern: (?i)^[1-9][0-9]*(GiB|G)?$ type: string karapace: description: @@ -147,8 +151,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -212,7 +216,7 @@ spec: properties: email: description: Email address. - format: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ + pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ type: string required: - email @@ -871,6 +875,7 @@ spec: - "3.4" - "3.5" - "3.6" + - "3.7" type: string private_access: description: diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaschemaregistryacls.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaschemaregistryacls.yaml index 7d47c21..bdb37f0 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaschemaregistryacls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaschemaregistryacls.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: kafkaschemaregistryacls.aiven.io spec: @@ -78,8 +78,8 @@ spec: rule: self == oldSelf project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -95,8 +95,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaschemas.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaschemas.yaml index d2b449d..991fc41 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaschemas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaschemas.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: kafkaschemas.aiven.io spec: @@ -79,8 +79,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -94,8 +94,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml index 5c8ccc9..0358282 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: kafkatopics.aiven.io spec: @@ -170,8 +170,8 @@ spec: type: integer project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -184,8 +184,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -195,13 +195,13 @@ spec: items: properties: key: - format: ^[a-zA-Z0-9_-]*$ maxLength: 64 minLength: 1 + pattern: ^[a-zA-Z0-9_-]+$ type: string value: - format: ^[a-zA-Z0-9_-]*$ maxLength: 256 + pattern: ^[a-zA-Z0-9_-]+$ type: string required: - key diff --git a/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml b/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml index 8bb028b..f90672d 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: mysqls.aiven.io spec: @@ -31,7 +31,10 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: MySQL is the Schema for the mysqls API + description: + 'MySQL is the Schema for the mysqls API. Info "Exposes secret + keys": `MYSQL_HOST`, `MYSQL_PORT`, `MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`, + `MYSQL_SSL_MODE`, `MYSQL_URI`, `MYSQL_REPLICA_URI`, `MYSQL_CA_CERT`' properties: apiVersion: description: @@ -68,10 +71,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `MYSQL_HOST`, `MYSQL_PORT`, `MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`, - `MYSQL_SSL_MODE`, `MYSQL_URI`, `MYSQL_REPLICA_URI`, `MYSQL_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -90,6 +90,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -112,8 +115,9 @@ spec: description: The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing - will result in the service re-balancing. - format: ^[1-9][0-9]*(GiB|G)* + will result in the service re-balancing. The removal of this field + does not change the value. + pattern: (?i)^[1-9][0-9]*(GiB|G)?$ type: string maintenanceWindowDow: description: @@ -140,8 +144,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -205,7 +209,7 @@ spec: properties: email: description: Email address. - format: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ + pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ type: string required: - email diff --git a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml index ee3cb5c..f913150 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: opensearches.aiven.io spec: @@ -18,7 +18,9 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: OpenSearch is the Schema for the opensearches API + description: + 'OpenSearch is the Schema for the opensearches API. Info "Exposes + secret keys": `OPENSEARCH_HOST`, `OPENSEARCH_PORT`, `OPENSEARCH_USER`, `OPENSEARCH_PASSWORD`' properties: apiVersion: description: @@ -55,10 +57,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `OPENSEARCH_HOST`, `OPENSEARCH_PORT`, `OPENSEARCH_USER`, `OPENSEARCH_PASSWORD`, - `OPENSEARCH_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -77,6 +76,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -99,8 +101,9 @@ spec: description: The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing - will result in the service re-balancing. - format: ^[1-9][0-9]*(GiB|G)* + will result in the service re-balancing. The removal of this field + does not change the value. + pattern: (?i)^[1-9][0-9]*(GiB|G)?$ type: string maintenanceWindowDow: description: @@ -127,8 +130,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -192,7 +195,7 @@ spec: properties: email: description: Email address. - format: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ + pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ type: string required: - email diff --git a/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml b/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml index 8c696ab..339ace0 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: postgresqls.aiven.io spec: @@ -31,7 +31,11 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: PostgreSQL is the Schema for the postgresql API + description: + 'PostgreSQL is the Schema for the postgresql API. Info "Exposes + secret keys": `POSTGRESQL_HOST`, `POSTGRESQL_PORT`, `POSTGRESQL_DATABASE`, + `POSTGRESQL_USER`, `POSTGRESQL_PASSWORD`, `POSTGRESQL_SSLMODE`, `POSTGRESQL_DATABASE_URI`, + `POSTGRESQL_CA_CERT`' properties: apiVersion: description: @@ -68,11 +72,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `POSTGRESQL_HOST`, `POSTGRESQL_PORT`, `POSTGRESQL_DATABASE`, `POSTGRESQL_USER`, - `POSTGRESQL_PASSWORD`, `POSTGRESQL_SSLMODE`, `POSTGRESQL_DATABASE_URI`, - `POSTGRESQL_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -91,6 +91,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -113,8 +116,9 @@ spec: description: The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing - will result in the service re-balancing. - format: ^[1-9][0-9]*(GiB|G)* + will result in the service re-balancing. The removal of this field + does not change the value. + pattern: (?i)^[1-9][0-9]*(GiB|G)?$ type: string maintenanceWindowDow: description: @@ -141,8 +145,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -206,7 +210,7 @@ spec: properties: email: description: Email address. - format: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ + pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ type: string required: - email diff --git a/charts/aiven-operator-crds/templates/aiven.io_projects.yaml b/charts/aiven-operator-crds/templates/aiven.io_projects.yaml index 6a3c352..5efadb5 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_projects.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_projects.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: projects.aiven.io spec: @@ -18,7 +18,9 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: Project is the Schema for the projects API + description: + 'Project is the Schema for the projects API. Info "Exposes secret + keys": `PROJECT_CA_CERT`' properties: apiVersion: description: @@ -88,6 +90,9 @@ spec: maxLength: 36 minLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf cardId: description: Credit card ID; The ID may be either last 4 digits of @@ -99,9 +104,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `PROJECT_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -120,6 +123,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -142,6 +148,9 @@ spec: description: Project name from which to copy settings to the new project maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf countryCode: description: Billing country code of the project maxLength: 2 diff --git a/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml b/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml index d8383a9..7141912 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: projectvpcs.aiven.io spec: @@ -79,8 +79,8 @@ spec: rule: self == oldSelf project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_redis.yaml b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml index 73c6b69..a3a2089 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_redis.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: redis.aiven.io spec: @@ -18,7 +18,9 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: Redis is the Schema for the redis API + description: + 'Redis is the Schema for the redis API. Info "Exposes secret + keys": `REDIS_HOST`, `REDIS_PORT`, `REDIS_USER`, `REDIS_PASSWORD`' properties: apiVersion: description: @@ -55,9 +57,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `REDIS_HOST`, `REDIS_PORT`, `REDIS_USER`, `REDIS_PASSWORD`, `REDIS_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -76,6 +76,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -98,8 +101,9 @@ spec: description: The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing - will result in the service re-balancing. - format: ^[1-9][0-9]*(GiB|G)* + will result in the service re-balancing. The removal of this field + does not change the value. + pattern: (?i)^[1-9][0-9]*(GiB|G)?$ type: string maintenanceWindowDow: description: @@ -126,8 +130,8 @@ spec: type: string project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -191,7 +195,7 @@ spec: properties: email: description: Email address. - format: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ + pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ type: string required: - email diff --git a/charts/aiven-operator-crds/templates/aiven.io_serviceintegrationendpoints.yaml b/charts/aiven-operator-crds/templates/aiven.io_serviceintegrationendpoints.yaml new file mode 100644 index 0000000..9cf5c29 --- /dev/null +++ b/charts/aiven-operator-crds/templates/aiven.io_serviceintegrationendpoints.yaml @@ -0,0 +1,655 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.10.0 + creationTimestamp: null + name: serviceintegrationendpoints.aiven.io +spec: + group: aiven.io + names: + kind: ServiceIntegrationEndpoint + listKind: ServiceIntegrationEndpointList + plural: serviceintegrationendpoints + singular: serviceintegrationendpoint + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.project + name: Project + type: string + - jsonPath: .spec.endpointName + name: Endpoint Name + type: string + - jsonPath: .spec.endpointType + name: Endpoint Type + type: string + - jsonPath: .status.id + name: ID + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: + ServiceIntegrationEndpoint is the Schema for the serviceintegrationendpoints + 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: + ServiceIntegrationEndpointSpec defines the desired state + of ServiceIntegrationEndpoint + properties: + authSecretRef: + description: Authentication reference to Aiven token in a secret + properties: + key: + minLength: 1 + type: string + name: + minLength: 1 + type: string + required: + - key + - name + type: object + datadog: + description: Datadog configuration values + properties: + datadog_api_key: + description: Datadog API key + maxLength: 256 + minLength: 1 + pattern: ^[A-Za-z0-9]{1,256}$ + type: string + datadog_tags: + description: Custom tags provided by user + items: + description: Datadog tag defined by user + properties: + comment: + description: Optional tag explanation + maxLength: 1024 + type: string + tag: + description: + "Tag format and usage are described here: https://docs.datadoghq.com/getting_started/tagging. + Tags with prefix 'aiven-' are reserved for Aiven." + maxLength: 200 + minLength: 1 + type: string + required: + - tag + type: object + maxItems: 32 + type: array + disable_consumer_stats: + description: Disable consumer group metrics + type: boolean + kafka_consumer_check_instances: + description: + Number of separate instances to fetch kafka consumer + statistics with + maximum: 100 + minimum: 1 + type: integer + kafka_consumer_stats_timeout: + description: + Number of seconds that datadog will wait to get consumer + statistics from brokers + maximum: 300 + minimum: 2 + type: integer + max_partition_contexts: + description: Maximum number of partition contexts to send + maximum: 200000 + minimum: 200 + type: integer + site: + description: Datadog intake site. Defaults to datadoghq.com + enum: + - datadoghq.com + - datadoghq.eu + - us3.datadoghq.com + - us5.datadoghq.com + - ddog-gov.com + - ap1.datadoghq.com + type: string + required: + - datadog_api_key + type: object + endpointName: + description: Source endpoint for the integration (if any) + maxLength: 36 + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + endpointType: + description: Type of the service integration endpoint + enum: + - autoscaler + - datadog + - external_aws_cloudwatch_logs + - external_aws_cloudwatch_metrics + - external_aws_s3 + - external_clickhouse + - external_elasticsearch_logs + - external_google_cloud_bigquery + - external_google_cloud_logging + - external_kafka + - external_mysql + - external_opensearch_logs + - external_postgresql + - external_redis + - external_schema_registry + - external_sumologic_logs + - jolokia + - prometheus + - rsyslog + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + externalAWSCloudwatchLogs: + description: ExternalAwsCloudwatchLogs configuration values + properties: + access_key: + description: + AWS access key. Required permissions are logs:CreateLogGroup, + logs:CreateLogStream, logs:PutLogEvents and logs:DescribeLogStreams + maxLength: 4096 + type: string + log_group_name: + description: AWS CloudWatch log group name + maxLength: 512 + minLength: 1 + pattern: ^[\.\-_/#A-Za-z0-9]+$ + type: string + region: + description: AWS region + maxLength: 32 + type: string + secret_key: + description: AWS secret key + maxLength: 4096 + type: string + required: + - access_key + - region + - secret_key + type: object + externalAWSCloudwatchMetrics: + description: ExternalAwsCloudwatchMetrics configuration values + properties: + access_key: + description: AWS access key. Required permissions are cloudwatch:PutMetricData + maxLength: 4096 + type: string + namespace: + description: AWS CloudWatch Metrics Namespace + maxLength: 255 + minLength: 1 + type: string + region: + description: AWS region + maxLength: 32 + type: string + secret_key: + description: AWS secret key + maxLength: 4096 + type: string + required: + - access_key + - namespace + - region + - secret_key + type: object + externalElasticsearchLogs: + description: ExternalElasticsearchLogs configuration values + properties: + ca: + description: PEM encoded CA certificate + maxLength: 16384 + type: string + index_days_max: + description: Maximum number of days of logs to keep + maximum: 10000 + minimum: 1 + type: integer + index_prefix: + description: Elasticsearch index prefix + maxLength: 1000 + minLength: 1 + pattern: ^[a-z0-9][a-z0-9-_.]+$ + type: string + timeout: + description: Elasticsearch request timeout limit + maximum: 120 + minimum: 10 + type: number + url: + description: Elasticsearch connection URL + maxLength: 2048 + minLength: 12 + type: string + required: + - index_prefix + - url + type: object + externalGoogleCloudBigquery: + description: ExternalGoogleCloudBigquery configuration values + properties: + project_id: + description: GCP project id. + maxLength: 30 + minLength: 6 + type: string + service_account_credentials: + description: + This is a JSON object with the fields documented + in https://cloud.google.com/iam/docs/creating-managing-service-account-keys + . + maxLength: 4096 + type: string + required: + - project_id + - service_account_credentials + type: object + externalGoogleCloudLogging: + description: ExternalGoogleCloudLogging configuration values + properties: + log_id: + description: Google Cloud Logging log id + maxLength: 512 + type: string + project_id: + description: GCP project id. + maxLength: 30 + minLength: 6 + type: string + service_account_credentials: + description: + This is a JSON object with the fields documented + in https://cloud.google.com/iam/docs/creating-managing-service-account-keys + . + maxLength: 4096 + type: string + required: + - log_id + - project_id + - service_account_credentials + type: object + externalKafka: + description: ExternalKafka configuration values + properties: + bootstrap_servers: + description: Bootstrap servers + maxLength: 256 + minLength: 3 + type: string + sasl_mechanism: + description: + SASL mechanism used for connections to the Kafka + server. + enum: + - PLAIN + - SCRAM-SHA-256 + - SCRAM-SHA-512 + type: string + sasl_plain_password: + description: Password for SASL PLAIN mechanism in the Kafka server. + maxLength: 256 + minLength: 1 + type: string + sasl_plain_username: + description: Username for SASL PLAIN mechanism in the Kafka server. + maxLength: 256 + minLength: 1 + type: string + security_protocol: + description: Security protocol + enum: + - PLAINTEXT + - SSL + - SASL_PLAINTEXT + - SASL_SSL + type: string + ssl_ca_cert: + description: PEM-encoded CA certificate + maxLength: 16384 + type: string + ssl_client_cert: + description: PEM-encoded client certificate + maxLength: 16384 + type: string + ssl_client_key: + description: PEM-encoded client key + maxLength: 16384 + type: string + ssl_endpoint_identification_algorithm: + description: + The endpoint identification algorithm to validate + server hostname using server certificate. + enum: + - https + type: string + required: + - bootstrap_servers + - security_protocol + type: object + externalOpensearchLogs: + description: ExternalOpensearchLogs configuration values + properties: + ca: + description: PEM encoded CA certificate + maxLength: 16384 + type: string + index_days_max: + description: Maximum number of days of logs to keep + maximum: 10000 + minimum: 1 + type: integer + index_prefix: + description: OpenSearch index prefix + maxLength: 1000 + minLength: 1 + pattern: ^[a-z0-9][a-z0-9-_.]+$ + type: string + timeout: + description: OpenSearch request timeout limit + maximum: 120 + minimum: 10 + type: number + url: + description: OpenSearch connection URL + maxLength: 2048 + minLength: 12 + type: string + required: + - index_prefix + - url + type: object + externalPostgresql: + description: ExternalPostgresql configuration values + properties: + default_database: + description: Default database + maxLength: 63 + pattern: ^[_A-Za-z0-9][-_A-Za-z0-9]{0,62}$ + type: string + host: + description: Hostname or IP address of the server + maxLength: 255 + type: string + password: + description: Password + maxLength: 256 + type: string + port: + description: Port number of the server + maximum: 65535 + minimum: 1 + type: integer + ssl_client_certificate: + description: Client certificate + maxLength: 16384 + type: string + ssl_client_key: + description: Client key + maxLength: 16384 + type: string + ssl_mode: + description: SSL Mode + enum: + - disable + - allow + - prefer + - require + - verify-ca + - verify-full + type: string + ssl_root_cert: + description: SSL Root Cert + maxLength: 16384 + type: string + username: + description: User name + maxLength: 256 + type: string + required: + - host + - port + - username + type: object + externalSchemaRegistry: + description: ExternalSchemaRegistry configuration values + properties: + authentication: + description: Authentication method + enum: + - none + - basic + type: string + basic_auth_password: + description: Basic authentication password + maxLength: 256 + type: string + basic_auth_username: + description: Basic authentication user name + maxLength: 256 + type: string + url: + description: Schema Registry URL + maxLength: 2048 + type: string + required: + - authentication + - url + type: object + jolokia: + description: Jolokia configuration values + properties: + basic_auth_password: + description: Jolokia basic authentication password + maxLength: 64 + minLength: 8 + type: string + basic_auth_username: + description: Jolokia basic authentication username + maxLength: 32 + minLength: 5 + pattern: ^[a-z0-9\-@_]{5,32}$ + type: string + type: object + project: + description: Identifies the project this resource belongs to + maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + prometheus: + description: Prometheus configuration values + properties: + basic_auth_password: + description: Prometheus basic authentication password + maxLength: 64 + minLength: 8 + type: string + basic_auth_username: + description: Prometheus basic authentication username + maxLength: 32 + minLength: 5 + pattern: ^[a-z0-9\-@_]{5,32}$ + type: string + type: object + rsyslog: + description: Rsyslog configuration values + properties: + ca: + description: PEM encoded CA certificate + maxLength: 16384 + type: string + cert: + description: PEM encoded client certificate + maxLength: 16384 + type: string + format: + description: Message format + enum: + - rfc5424 + - rfc3164 + - custom + type: string + key: + description: PEM encoded client key + maxLength: 16384 + type: string + logline: + description: Custom syslog message format + maxLength: 512 + minLength: 1 + pattern: ^[ -~\t]+$ + type: string + max_message_size: + description: Rsyslog max message size + maximum: 2147483647 + minimum: 2048 + type: integer + port: + description: Rsyslog server port + maximum: 65535 + minimum: 1 + type: integer + sd: + description: Structured data block for log message + maxLength: 1024 + type: string + server: + description: Rsyslog server IP address or hostname + maxLength: 255 + minLength: 4 + type: string + tls: + description: Require TLS + type: boolean + required: + - format + - port + - server + - tls + type: object + required: + - endpointType + - project + type: object + status: + description: + ServiceIntegrationEndpointStatus defines the observed state + of ServiceIntegrationEndpoint + properties: + conditions: + description: + Conditions represent the latest available observations + of an ServiceIntegrationEndpoint state + items: + description: + "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: + lastTransitionTime is the last time the condition + transitioned from one status to another. This should be when + the underlying condition changed. If that is not known, then + using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: + message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: + observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: + reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: + type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + id: + description: Service integration ID + type: string + required: + - conditions + - id + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/aiven-operator-crds/templates/aiven.io_serviceintegrations.yaml b/charts/aiven-operator-crds/templates/aiven.io_serviceintegrations.yaml index 9cfd537..4222206 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_serviceintegrations.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_serviceintegrations.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: serviceintegrations.aiven.io spec: @@ -238,6 +238,9 @@ spec: datadog_dbm_enabled: description: Enable Datadog Database Monitoring type: boolean + datadog_pgbouncer_enabled: + description: Enable Datadog PgBouncer Metric Tracking + type: boolean datadog_tags: description: Custom tags provided by user items: @@ -408,6 +411,7 @@ spec: - external_opensearch_logs - flink - flink_external_kafka + - flink_external_postgresql - internal_connectivity - jolokia - kafka_connect @@ -682,8 +686,8 @@ spec: type: object project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml b/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml index 535a1e3..ee221b8 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 + controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: serviceusers.aiven.io spec: @@ -28,7 +28,11 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ServiceUser is the Schema for the serviceusers API + description: + 'ServiceUser is the Schema for the serviceusers API. Info "Exposes + secret keys": `SERVICEUSER_HOST`, `SERVICEUSER_PORT`, `SERVICEUSER_USERNAME`, + `SERVICEUSER_PASSWORD`, `SERVICEUSER_CA_CERT`, `SERVICEUSER_ACCESS_CERT`, + `SERVICEUSER_ACCESS_KEY`' properties: apiVersion: description: @@ -67,11 +71,7 @@ spec: - mysql_native_password type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `SERVICEUSER_HOST`, `SERVICEUSER_PORT`, `SERVICEUSER_USERNAME`, - `SERVICEUSER_PASSWORD`, `SERVICEUSER_CA_CERT`, `SERVICEUSER_ACCESS_CERT`, - `SERVICEUSER_ACCESS_KEY`" + description: Secret configuration. properties: annotations: additionalProperties: @@ -90,6 +90,9 @@ spec: Name of the secret resource to be created. By default, it is equal to the resource name type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf prefix: description: Prefix for the secret's keys. Added "as is" without @@ -110,8 +113,8 @@ spec: rule: self == oldSelf project: description: Identifies the project this resource belongs to - format: ^[a-zA-Z0-9_-]+$ maxLength: 63 + pattern: ^[a-zA-Z0-9_-]+$ type: string x-kubernetes-validations: - message: Value is immutable @@ -120,8 +123,8 @@ spec: description: Specifies the name of the service that this resource belongs to - format: ^[a-z][-a-z0-9]+$ maxLength: 63 + pattern: ^[a-z][-a-z0-9]+$ type: string x-kubernetes-validations: - message: Value is immutable diff --git a/charts/aiven-operator/Chart.yaml b/charts/aiven-operator/Chart.yaml index 8d245d7..07c8930 100644 --- a/charts/aiven-operator/Chart.yaml +++ b/charts/aiven-operator/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: aiven-operator description: A Helm chart to deploy the aiven operator type: application -version: v0.19.0 -appVersion: v0.19.0 +version: v0.20.0 +appVersion: v0.20.0 maintainers: - name: byashimov url: https://www.aiven.io diff --git a/charts/aiven-operator/templates/cluster_role.yaml b/charts/aiven-operator/templates/cluster_role.yaml index 088c881..78a8559 100644 --- a/charts/aiven-operator/templates/cluster_role.yaml +++ b/charts/aiven-operator/templates/cluster_role.yaml @@ -614,6 +614,34 @@ rules: - get - patch - update + - apiGroups: + - aiven.io + resources: + - serviceintegrationendpoints + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - aiven.io + resources: + - serviceintegrationendpoints/finalizers + verbs: + - create + - get + - update + - apiGroups: + - aiven.io + resources: + - serviceintegrationendpoints/status + verbs: + - get + - patch + - update - apiGroups: - aiven.io resources: diff --git a/charts/aiven-operator/templates/mutating_webhook_configuration.yaml b/charts/aiven-operator/templates/mutating_webhook_configuration.yaml index bd459fd..10924fd 100644 --- a/charts/aiven-operator/templates/mutating_webhook_configuration.yaml +++ b/charts/aiven-operator/templates/mutating_webhook_configuration.yaml @@ -49,26 +49,6 @@ webhooks: resources: - clickhouses sideEffects: None - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: {{ include "aiven-operator.fullname" . }}-webhook-service - namespace: {{ include "aiven-operator.namespace" . }} - path: /mutate-aiven-io-v1alpha1-clickhouseuser - failurePolicy: Fail - name: mclickhouseuser.kb.io - rules: - - apiGroups: - - aiven.io - apiVersions: - - v1alpha1 - operations: - - CREATE - - UPDATE - resources: - - clickhouseusers - sideEffects: None - admissionReviewVersions: - v1 clientConfig: @@ -369,6 +349,26 @@ webhooks: resources: - serviceintegrations sideEffects: None + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: {{ include "aiven-operator.fullname" . }}-webhook-service + namespace: {{ include "aiven-operator.namespace" . }} + path: /mutate-aiven-io-v1alpha1-serviceintegrationendpoint + failurePolicy: Fail + name: mserviceintegrationendpoint.kb.io + rules: + - apiGroups: + - aiven.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - serviceintegrationendpoints + sideEffects: None - admissionReviewVersions: - v1 clientConfig: diff --git a/charts/aiven-operator/templates/validating_webhook_configuration.yaml b/charts/aiven-operator/templates/validating_webhook_configuration.yaml index cffbafc..7289462 100644 --- a/charts/aiven-operator/templates/validating_webhook_configuration.yaml +++ b/charts/aiven-operator/templates/validating_webhook_configuration.yaml @@ -51,26 +51,6 @@ webhooks: resources: - clickhouses sideEffects: None - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: {{ include "aiven-operator.fullname" . }}-webhook-service - namespace: {{ include "aiven-operator.namespace" . }} - path: /validate-aiven-io-v1alpha1-clickhouseuser - failurePolicy: Fail - name: vclickhouseuser.kb.io - rules: - - apiGroups: - - aiven.io - apiVersions: - - v1alpha1 - operations: - - CREATE - - UPDATE - resources: - - clickhouseusers - sideEffects: None - admissionReviewVersions: - v1 clientConfig: @@ -383,6 +363,26 @@ webhooks: resources: - serviceintegrations sideEffects: None + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: {{ include "aiven-operator.fullname" . }}-webhook-service + namespace: {{ include "aiven-operator.namespace" . }} + path: /validate-aiven-io-v1alpha1-serviceintegrationendpoint + failurePolicy: Fail + name: vserviceintegrationendpoint.kb.io + rules: + - apiGroups: + - aiven.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - serviceintegrationendpoints + sideEffects: None - admissionReviewVersions: - v1 clientConfig: