From 16e6e0ed3d25813c803a48979392232e93d167e4 Mon Sep 17 00:00:00 2001 From: Murad Biashimov Date: Fri, 12 Apr 2024 13:30:54 +0200 Subject: [PATCH] refactor: unifies models to share fields validation rules --- CHANGELOG.md | 44 ++ api/v1alpha1/cassandra_types.go | 19 +- api/v1alpha1/clickhouse_types.go | 19 +- api/v1alpha1/clickhousedatabase_types.go | 5 +- api/v1alpha1/clickhouserole_types.go | 5 +- api/v1alpha1/clickhouseuser_types.go | 18 +- api/v1alpha1/common.go | 43 +- api/v1alpha1/connectionpool_types.go | 18 +- api/v1alpha1/database_types.go | 5 +- api/v1alpha1/grafana_types.go | 19 +- api/v1alpha1/kafka_types.go | 19 +- api/v1alpha1/kafkaacl_types.go | 5 +- api/v1alpha1/kafkaconnect_types.go | 5 +- api/v1alpha1/kafkaconnector_types.go | 5 +- api/v1alpha1/kafkaschema_types.go | 5 +- api/v1alpha1/kafkaschemaregistryacl_types.go | 5 +- api/v1alpha1/kafkatopic_types.go | 5 +- api/v1alpha1/mysql_types.go | 19 +- api/v1alpha1/opensearch_types.go | 19 +- api/v1alpha1/postgresql_types.go | 19 +- api/v1alpha1/project_types.go | 18 +- api/v1alpha1/projectvpc_types.go | 5 +- api/v1alpha1/redis_types.go | 19 +- api/v1alpha1/serviceintegration_types.go | 5 +- api/v1alpha1/serviceuser_types.go | 18 +- api/v1alpha1/zz_generated.deepcopy.go | 391 +++++++----------- .../templates/aiven.io_cassandras.yaml | 10 +- .../templates/aiven.io_clickhouses.yaml | 10 +- .../templates/aiven.io_clickhouseusers.yaml | 10 +- .../templates/aiven.io_connectionpools.yaml | 12 +- .../templates/aiven.io_grafanas.yaml | 10 +- .../templates/aiven.io_kafkas.yaml | 14 +- .../templates/aiven.io_mysqls.yaml | 10 +- .../templates/aiven.io_opensearches.yaml | 10 +- .../templates/aiven.io_postgresqls.yaml | 12 +- .../templates/aiven.io_projects.yaml | 8 +- .../templates/aiven.io_redis.yaml | 8 +- .../templates/aiven.io_serviceusers.yaml | 12 +- config/crd/bases/aiven.io_cassandras.yaml | 10 +- config/crd/bases/aiven.io_clickhouses.yaml | 10 +- .../crd/bases/aiven.io_clickhouseusers.yaml | 10 +- .../crd/bases/aiven.io_connectionpools.yaml | 12 +- config/crd/bases/aiven.io_grafanas.yaml | 10 +- config/crd/bases/aiven.io_kafkas.yaml | 14 +- config/crd/bases/aiven.io_mysqls.yaml | 10 +- config/crd/bases/aiven.io_opensearches.yaml | 10 +- config/crd/bases/aiven.io_postgresqls.yaml | 12 +- config/crd/bases/aiven.io_projects.yaml | 8 +- config/crd/bases/aiven.io_redis.yaml | 8 +- config/crd/bases/aiven.io_serviceusers.yaml | 12 +- controllers/kafkaconnect_controller.go | 2 +- docs/docs/api-reference/cassandra.md | 10 +- docs/docs/api-reference/clickhouse.md | 10 +- docs/docs/api-reference/clickhouseuser.md | 10 +- docs/docs/api-reference/connectionpool.md | 10 +- docs/docs/api-reference/grafana.md | 10 +- docs/docs/api-reference/kafka.md | 10 +- docs/docs/api-reference/mysql.md | 10 +- docs/docs/api-reference/opensearch.md | 10 +- docs/docs/api-reference/postgresql.md | 10 +- docs/docs/api-reference/project.md | 10 +- docs/docs/api-reference/redis.md | 10 +- docs/docs/api-reference/serviceuser.md | 10 +- generators/docs/generator.go | 11 +- 64 files changed, 486 insertions(+), 656 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 751ec20d..c15fc90f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,50 @@ - Add kind: `ClickhouseRole` - Unified User-Agent format with the Terraform Provider +- Remove `ClickhouseUser` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret + containing connection information will not be created, defaults to false +- Remove `ConnectionPool` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret + containing connection information will not be created, defaults to false +- Remove `Project` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Remove `ServiceUser` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Remove `Clickhouse` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Remove `Grafana` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Remove `Kafka` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Remove `MySQL` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Remove `OpenSearch` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Remove `PostgreSQL` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Remove `Redis` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `Clickhouse` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `Grafana` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `Kafka` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `MySQL` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `OpenSearch` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `PostgreSQL` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `Redis` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `ClickhouseUser` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `ConnectionPool` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `Project` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false +- Add `ServiceUser` field `connInfoSecretTargetDisabled`, type `boolean`: When true, the secret containing + connection information will not be created, defaults to false ## v0.18.1 - 2024-04-02 diff --git a/api/v1alpha1/cassandra_types.go b/api/v1alpha1/cassandra_types.go index e3c77d15..446480a8 100644 --- a/api/v1alpha1/cassandra_types.go +++ b/api/v1alpha1/cassandra_types.go @@ -11,30 +11,15 @@ import ( // NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. // CassandraSpec defines the desired state of Cassandra -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type CassandraSpec struct { ServiceCommonSpec `json:",inline"` - // +kubebuilder:validation:Format="^[1-9][0-9]*(GiB|G)*" - // 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. - DiskSpace string `json:"disk_space,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` - - // Information regarding secret creation. - // Exposed keys: `CASSANDRA_HOST`, `CASSANDRA_PORT`, `CASSANDRA_USER`, `CASSANDRA_PASSWORD`, `CASSANDRA_URI`, `CASSANDRA_HOSTS`, `CASSANDRA_CA_CERT` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - // Cassandra specific user configuration options UserConfig *cassandrauserconfig.CassandraUserConfig `json:"userConfig,omitempty"` } -// Cassandra is the Schema for the cassandras API +// 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` // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Project",type="string",JSONPath=".spec.project" diff --git a/api/v1alpha1/clickhouse_types.go b/api/v1alpha1/clickhouse_types.go index 3ddd7c9d..f655b280 100644 --- a/api/v1alpha1/clickhouse_types.go +++ b/api/v1alpha1/clickhouse_types.go @@ -9,25 +9,9 @@ import ( ) // ClickhouseSpec defines the desired state of Clickhouse -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type ClickhouseSpec struct { ServiceCommonSpec `json:",inline"` - // +kubebuilder:validation:Format="^[1-9][0-9]*(GiB|G)*" - // 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. - DiskSpace string `json:"disk_space,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` - - // Information regarding secret creation. - // Exposed keys: `CLICKHOUSE_HOST`, `CLICKHOUSE_PORT`, `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`, `CLICKHOUSE_CA_CERT` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - // OpenSearch specific user configuration options UserConfig *clickhouseuserconfig.ClickhouseUserConfig `json:"userConfig,omitempty"` } @@ -35,7 +19,8 @@ type ClickhouseSpec struct { //+kubebuilder:object:root=true //+kubebuilder:subresource:status -// Clickhouse is the Schema for the clickhouses API +// Clickhouse is the Schema for the clickhouses API. +// Info "Exposes secret keys": `CLICKHOUSE_HOST`, `CLICKHOUSE_PORT`, `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`, `CLICKHOUSE_CA_CERT` type Clickhouse struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/api/v1alpha1/clickhousedatabase_types.go b/api/v1alpha1/clickhousedatabase_types.go index 872d64eb..c5c03c4e 100644 --- a/api/v1alpha1/clickhousedatabase_types.go +++ b/api/v1alpha1/clickhousedatabase_types.go @@ -8,10 +8,7 @@ import ( // ClickhouseDatabaseSpec defines the desired state of ClickhouseDatabase type ClickhouseDatabaseSpec struct { - ProjectServiceFields `json:",inline"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` + ServiceDependant `json:",inline"` } // ClickhouseDatabaseStatus defines the observed state of ClickhouseDatabase diff --git a/api/v1alpha1/clickhouserole_types.go b/api/v1alpha1/clickhouserole_types.go index 6b1fa195..793d6f47 100644 --- a/api/v1alpha1/clickhouserole_types.go +++ b/api/v1alpha1/clickhouserole_types.go @@ -8,16 +8,13 @@ import ( // ClickhouseRoleSpec defines the desired state of ClickhouseRole type ClickhouseRoleSpec struct { - ProjectServiceFields `json:",inline"` + ServiceDependant `json:",inline"` // +kubebuilder:validation:MaxLength=255 // +kubebuilder:validation:Format="^[a-zA-Z_][0-9a-zA-Z_]*$" // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" // The role that is to be created Role string `json:"role"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // ClickhouseRoleStatus defines the observed state of ClickhouseRole diff --git a/api/v1alpha1/clickhouseuser_types.go b/api/v1alpha1/clickhouseuser_types.go index a9c778d5..5d89ce64 100644 --- a/api/v1alpha1/clickhouseuser_types.go +++ b/api/v1alpha1/clickhouseuser_types.go @@ -7,20 +7,9 @@ import ( ) // ClickhouseUserSpec defines the desired state of ClickhouseUser -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type ClickhouseUserSpec struct { - ProjectServiceFields `json:",inline"` - - // Information regarding secret creation. - // Exposed keys: `CLICKHOUSEUSER_HOST`, `CLICKHOUSEUSER_PORT`, `CLICKHOUSEUSER_USER`, `CLICKHOUSEUSER_PASSWORD` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` + ServiceDependant `json:",inline"` + SecretFields `json:",inline"` } // ClickhouseUserStatus defines the observed state of ClickhouseUser @@ -36,7 +25,8 @@ type ClickhouseUserStatus struct { //+kubebuilder:object:root=true //+kubebuilder:subresource:status -// ClickhouseUser is the Schema for the clickhouseusers API +// ClickhouseUser is the Schema for the clickhouseusers API. +// Info "Exposes secret keys": `CLICKHOUSEUSER_HOST`, `CLICKHOUSEUSER_PORT`, `CLICKHOUSEUSER_USER`, `CLICKHOUSEUSER_PASSWORD` // +kubebuilder:printcolumn:name="Service Name",type="string",JSONPath=".spec.serviceName" // +kubebuilder:printcolumn:name="Project",type="string",JSONPath=".spec.project" // +kubebuilder:printcolumn:name="Connection Information Secret",type="string",JSONPath=".spec.connInfoSecretTarget.name" diff --git a/api/v1alpha1/common.go b/api/v1alpha1/common.go index fe9af90e..dda80fd1 100644 --- a/api/v1alpha1/common.go +++ b/api/v1alpha1/common.go @@ -69,13 +69,23 @@ type ServiceField struct { ServiceName string `json:"serviceName"` } -type ProjectServiceFields struct { - ProjectField `json:",inline"` - ServiceField `json:",inline"` +type AuthSecretRefField struct { + // Authentication reference to Aiven token in a secret + AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } -type ServiceCommonSpec struct { - ProjectField `json:",inline"` +type ProjectDependant struct { + ProjectField `json:",inline"` + AuthSecretRefField `json:",inline"` +} + +type ServiceDependant struct { + ProjectDependant `json:",inline"` + ServiceField `json:",inline"` +} + +type BaseServiceFields struct { + ProjectDependant `json:",inline"` // +kubebuilder:validation:MaxLength=128 // Subscription plan. @@ -116,8 +126,18 @@ type ServiceCommonSpec struct { TechnicalEmails []ServiceTechEmail `json:"technicalEmails,omitempty"` } +// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." +type SecretFields struct { + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." + // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. + ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` + + // Secret configuration. + ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` +} + // Validate runs complex validation on ServiceCommonSpec -func (in *ServiceCommonSpec) Validate() error { +func (in *BaseServiceFields) Validate() error { // todo: remove when resolved https://github.com/kubernetes-sigs/controller-tools/issues/461 if in.ProjectVPCID != "" && in.ProjectVPCRef != nil { return fmt.Errorf("please set ProjectVPCID or ProjectVPCRef, not both") @@ -126,13 +146,22 @@ func (in *ServiceCommonSpec) Validate() error { } // GetRefs is inherited by kafka, pg, os, etc -func (in *ServiceCommonSpec) GetRefs(namespace string) (refs []*ResourceReferenceObject) { +func (in *BaseServiceFields) GetRefs(namespace string) (refs []*ResourceReferenceObject) { if in.ProjectVPCRef != nil { refs = append(refs, in.ProjectVPCRef.ProjectVPC(namespace)) } return refs } +type ServiceCommonSpec struct { + BaseServiceFields `json:",inline"` + SecretFields `json:",inline"` + + // +kubebuilder:validation:Format="^[1-9][0-9]*(GiB|G)*" + // 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. + DiskSpace string `json:"disk_space,omitempty"` +} + // ResourceReference is a generic reference to another resource. // Resource referring to another (dependency) won't start reconciliation until // dependency is not ready diff --git a/api/v1alpha1/connectionpool_types.go b/api/v1alpha1/connectionpool_types.go index 773db88b..653ac378 100644 --- a/api/v1alpha1/connectionpool_types.go +++ b/api/v1alpha1/connectionpool_types.go @@ -7,9 +7,9 @@ import ( ) // ConnectionPoolSpec defines the desired state of ConnectionPool -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type ConnectionPoolSpec struct { - ProjectServiceFields `json:",inline"` + ServiceDependant `json:",inline"` + SecretFields `json:",inline"` // +kubebuilder:validation:MaxLength=40 // Name of the database the pool connects to @@ -27,17 +27,6 @@ type ConnectionPoolSpec struct { // +kubebuilder:validation:Enum=session;transaction;statement // Mode the pool operates in (session, transaction, statement) PoolMode string `json:"poolMode,omitempty"` - - // 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` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // ConnectionPoolStatus defines the observed state of ConnectionPool @@ -49,7 +38,8 @@ type ConnectionPoolStatus struct { // +kubebuilder:object:root=true // +kubebuilder:subresource:status -// ConnectionPool is the Schema for the connectionpools API +// 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` // +kubebuilder:printcolumn:name="Service Name",type="string",JSONPath=".spec.serviceName" // +kubebuilder:printcolumn:name="Project",type="string",JSONPath=".spec.project" // +kubebuilder:printcolumn:name="Database",type="string",JSONPath=".spec.databaseName" diff --git a/api/v1alpha1/database_types.go b/api/v1alpha1/database_types.go index 1206fe09..b159de97 100644 --- a/api/v1alpha1/database_types.go +++ b/api/v1alpha1/database_types.go @@ -8,7 +8,7 @@ import ( // DatabaseSpec defines the desired state of Database type DatabaseSpec struct { - ProjectServiceFields `json:",inline"` + ServiceDependant `json:",inline"` // +kubebuilder:validation:MaxLength=128 // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" @@ -26,9 +26,6 @@ type DatabaseSpec struct { // from being deleted by Kubernetes. It is recommended to enable this for any production // databases containing critical data. TerminationProtection *bool `json:"terminationProtection,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // DatabaseStatus defines the observed state of Database diff --git a/api/v1alpha1/grafana_types.go b/api/v1alpha1/grafana_types.go index afc5b5cb..136c261b 100644 --- a/api/v1alpha1/grafana_types.go +++ b/api/v1alpha1/grafana_types.go @@ -11,30 +11,15 @@ import ( // NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. // GrafanaSpec defines the desired state of Grafana -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type GrafanaSpec struct { ServiceCommonSpec `json:",inline"` - // +kubebuilder:validation:Format="^[1-9][0-9]*(GiB|G)*" - // 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. - DiskSpace string `json:"disk_space,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` - - // Information regarding secret creation. - // Exposed keys: `GRAFANA_HOST`, `GRAFANA_PORT`, `GRAFANA_USER`, `GRAFANA_PASSWORD`, `GRAFANA_URI`, `GRAFANA_HOSTS`, `GRAFANA_CA_CERT` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - // Cassandra specific user configuration options UserConfig *grafanauserconfig.GrafanaUserConfig `json:"userConfig,omitempty"` } -// Grafana is the Schema for the grafanas API +// Grafana is the Schema for the grafanas API. +// Info "Exposes secret keys": `GRAFANA_HOST`, `GRAFANA_PORT`, `GRAFANA_USER`, `GRAFANA_PASSWORD`, `GRAFANA_URI`, `GRAFANA_HOSTS`, `GRAFANA_CA_CERT` // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Project",type="string",JSONPath=".spec.project" diff --git a/api/v1alpha1/kafka_types.go b/api/v1alpha1/kafka_types.go index 4e5eba51..ee4f428d 100644 --- a/api/v1alpha1/kafka_types.go +++ b/api/v1alpha1/kafka_types.go @@ -9,25 +9,9 @@ import ( ) // KafkaSpec defines the desired state of Kafka -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type KafkaSpec struct { ServiceCommonSpec `json:",inline"` - // +kubebuilder:validation:Format="^[1-9][0-9]*(GiB|G)*" - // 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. - DiskSpace string `json:"disk_space,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` - - // 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` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - // Switch the service to use Karapace for schema registry and REST proxy Karapace *bool `json:"karapace,omitempty"` @@ -38,7 +22,8 @@ type KafkaSpec struct { // +kubebuilder:object:root=true // +kubebuilder:subresource:status -// Kafka is the Schema for the kafkas API +// 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` // +kubebuilder:printcolumn:name="Project",type="string",JSONPath=".spec.project" // +kubebuilder:printcolumn:name="Region",type="string",JSONPath=".spec.cloudName" // +kubebuilder:printcolumn:name="Plan",type="string",JSONPath=".spec.plan" diff --git a/api/v1alpha1/kafkaacl_types.go b/api/v1alpha1/kafkaacl_types.go index 7ee7661b..2d8ddf43 100644 --- a/api/v1alpha1/kafkaacl_types.go +++ b/api/v1alpha1/kafkaacl_types.go @@ -8,7 +8,7 @@ import ( // KafkaACLSpec defines the desired state of KafkaACL type KafkaACLSpec struct { - ProjectServiceFields `json:",inline"` + ServiceDependant `json:",inline"` // +kubebuilder:validation:Enum=admin;read;readwrite;write // Kafka permission to grant (admin, read, readwrite, write) @@ -19,9 +19,6 @@ type KafkaACLSpec struct { // Username pattern for the ACL entry Username string `json:"username"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // KafkaACLStatus defines the observed state of KafkaACL diff --git a/api/v1alpha1/kafkaconnect_types.go b/api/v1alpha1/kafkaconnect_types.go index df8a7d57..01850037 100644 --- a/api/v1alpha1/kafkaconnect_types.go +++ b/api/v1alpha1/kafkaconnect_types.go @@ -10,10 +10,7 @@ import ( // KafkaConnectSpec defines the desired state of KafkaConnect type KafkaConnectSpec struct { - ServiceCommonSpec `json:",inline"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` + BaseServiceFields `json:",inline"` // KafkaConnect specific user configuration options UserConfig *kafkaconnectuserconfig.KafkaConnectUserConfig `json:"userConfig,omitempty"` diff --git a/api/v1alpha1/kafkaconnector_types.go b/api/v1alpha1/kafkaconnector_types.go index d116dca7..896d9d3c 100644 --- a/api/v1alpha1/kafkaconnector_types.go +++ b/api/v1alpha1/kafkaconnector_types.go @@ -8,10 +8,7 @@ import ( // KafkaConnectorSpec defines the desired state of KafkaConnector type KafkaConnectorSpec struct { - ProjectServiceFields `json:",inline"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` + ServiceDependant `json:",inline"` // +kubebuilder:validation:MaxLength=1024 // The Java class of the connector. diff --git a/api/v1alpha1/kafkaschema_types.go b/api/v1alpha1/kafkaschema_types.go index cfc20615..aa958d45 100644 --- a/api/v1alpha1/kafkaschema_types.go +++ b/api/v1alpha1/kafkaschema_types.go @@ -8,7 +8,7 @@ import ( // KafkaSchemaSpec defines the desired state of KafkaSchema type KafkaSchemaSpec struct { - ProjectServiceFields `json:",inline"` + ServiceDependant `json:",inline"` // +kubebuilder:validation:MaxLength=63 // Kafka Schema Subject name @@ -20,9 +20,6 @@ type KafkaSchemaSpec struct { // +kubebuilder:validation:Enum=BACKWARD;BACKWARD_TRANSITIVE;FORWARD;FORWARD_TRANSITIVE;FULL;FULL_TRANSITIVE;NONE // Kafka Schemas compatibility level CompatibilityLevel string `json:"compatibilityLevel,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // KafkaSchemaStatus defines the observed state of KafkaSchema diff --git a/api/v1alpha1/kafkaschemaregistryacl_types.go b/api/v1alpha1/kafkaschemaregistryacl_types.go index 67c9c343..1b7c172e 100644 --- a/api/v1alpha1/kafkaschemaregistryacl_types.go +++ b/api/v1alpha1/kafkaschemaregistryacl_types.go @@ -8,10 +8,7 @@ import ( // KafkaSchemaRegistryACLSpec defines the desired state of KafkaSchemaRegistryACL type KafkaSchemaRegistryACLSpec struct { - ProjectServiceFields `json:",inline"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` + ServiceDependant `json:",inline"` // +kubebuilder:validation:Enum=schema_registry_read;schema_registry_write // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" diff --git a/api/v1alpha1/kafkatopic_types.go b/api/v1alpha1/kafkatopic_types.go index 7b067cbb..01b7b015 100644 --- a/api/v1alpha1/kafkatopic_types.go +++ b/api/v1alpha1/kafkatopic_types.go @@ -8,7 +8,7 @@ import ( // KafkaTopicSpec defines the desired state of KafkaTopic type KafkaTopicSpec struct { - ProjectServiceFields `json:",inline"` + ServiceDependant `json:",inline"` // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=249 @@ -37,9 +37,6 @@ type KafkaTopicSpec struct { // from being deleted by Kubernetes. It is recommended to enable this for any production // databases containing critical data. TerminationProtection *bool `json:"termination_protection,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // GetTopicName returns topic name with a backward compatibility. diff --git a/api/v1alpha1/mysql_types.go b/api/v1alpha1/mysql_types.go index bb4d1b17..dc4c8582 100644 --- a/api/v1alpha1/mysql_types.go +++ b/api/v1alpha1/mysql_types.go @@ -9,30 +9,15 @@ import ( ) // MySQLSpec defines the desired state of MySQL -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type MySQLSpec struct { ServiceCommonSpec `json:",inline"` - // +kubebuilder:validation:Format="^[1-9][0-9]*(GiB|G)*" - // 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. - DiskSpace string `json:"disk_space,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` - - // 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` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - // MySQL specific user configuration options UserConfig *mysqluserconfig.MysqlUserConfig `json:"userConfig,omitempty"` } -// MySQL is the Schema for the mysqls API +// 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` // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Project",type="string",JSONPath=".spec.project" diff --git a/api/v1alpha1/opensearch_types.go b/api/v1alpha1/opensearch_types.go index 4f258930..72c4332d 100644 --- a/api/v1alpha1/opensearch_types.go +++ b/api/v1alpha1/opensearch_types.go @@ -9,25 +9,9 @@ import ( ) // OpenSearchSpec defines the desired state of OpenSearch -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type OpenSearchSpec struct { ServiceCommonSpec `json:",inline"` - // +kubebuilder:validation:Format="^[1-9][0-9]*(GiB|G)*" - // 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. - DiskSpace string `json:"disk_space,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` - - // Information regarding secret creation. - // Exposed keys: `OPENSEARCH_HOST`, `OPENSEARCH_PORT`, `OPENSEARCH_USER`, `OPENSEARCH_PASSWORD`, `OPENSEARCH_CA_CERT` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - // OpenSearch specific user configuration options UserConfig *opensearchuserconfig.OpensearchUserConfig `json:"userConfig,omitempty"` } @@ -35,7 +19,8 @@ type OpenSearchSpec struct { //+kubebuilder:object:root=true //+kubebuilder:subresource:status -// OpenSearch is the Schema for the opensearches API +// OpenSearch is the Schema for the opensearches API. +// Info "Exposes secret keys": `OPENSEARCH_HOST`, `OPENSEARCH_PORT`, `OPENSEARCH_USER`, `OPENSEARCH_PASSWORD`, `OPENSEARCH_CA_CERT` type OpenSearch struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/api/v1alpha1/postgresql_types.go b/api/v1alpha1/postgresql_types.go index 404faa5c..c77272f8 100644 --- a/api/v1alpha1/postgresql_types.go +++ b/api/v1alpha1/postgresql_types.go @@ -9,25 +9,9 @@ import ( ) // PostgreSQLSpec defines the desired state of postgres instance -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type PostgreSQLSpec struct { ServiceCommonSpec `json:",inline"` - // +kubebuilder:validation:Format="^[1-9][0-9]*(GiB|G)*" - // 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. - DiskSpace string `json:"disk_space,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` - - // Information regarding secret creation. - // Exposed keys: `POSTGRESQL_HOST`, `POSTGRESQL_PORT`, `POSTGRESQL_DATABASE`, `POSTGRESQL_USER`, `POSTGRESQL_PASSWORD`, `POSTGRESQL_SSLMODE`, `POSTGRESQL_DATABASE_URI`, `POSTGRESQL_CA_CERT` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - // PostgreSQL specific user configuration options UserConfig *pguserconfig.PgUserConfig `json:"userConfig,omitempty"` } @@ -35,7 +19,8 @@ type PostgreSQLSpec struct { // +kubebuilder:object:root=true // +kubebuilder:subresource:status -// PostgreSQL is the Schema for the postgresql API +// 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` // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Project",type="string",JSONPath=".spec.project" // +kubebuilder:printcolumn:name="Region",type="string",JSONPath=".spec.cloudName" diff --git a/api/v1alpha1/project_types.go b/api/v1alpha1/project_types.go index c8951a77..f19c7eae 100644 --- a/api/v1alpha1/project_types.go +++ b/api/v1alpha1/project_types.go @@ -7,8 +7,10 @@ import ( ) // ProjectSpec defines the desired state of Project -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type ProjectSpec struct { + AuthSecretRefField `json:",inline"` + SecretFields `json:",inline"` + // +kubebuilder:validation:MaxLength=64 // Credit card ID; The ID may be either last 4 digits of the card or the actual ID CardID string `json:"cardId,omitempty"` @@ -55,19 +57,8 @@ type ProjectSpec struct { // Technical contact emails of the project TechnicalEmails []string `json:"technicalEmails,omitempty"` - // Information regarding secret creation. - // Exposed keys: `PROJECT_CA_CERT` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - // Tags are key-value pairs that allow you to categorize projects Tags map[string]string `json:"tags,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // ProjectStatus defines the observed state of Project @@ -94,7 +85,8 @@ type ProjectStatus struct { // +kubebuilder:object:root=true -// Project is the Schema for the projects API +// Project is the Schema for the projects API. +// Info "Exposes secret keys": `PROJECT_CA_CERT` // +kubebuilder:subresource:status type Project struct { metav1.TypeMeta `json:",inline"` diff --git a/api/v1alpha1/projectvpc_types.go b/api/v1alpha1/projectvpc_types.go index a2ff3acc..f55f90bc 100644 --- a/api/v1alpha1/projectvpc_types.go +++ b/api/v1alpha1/projectvpc_types.go @@ -8,7 +8,7 @@ import ( // ProjectVPCSpec defines the desired state of ProjectVPC type ProjectVPCSpec struct { - ProjectField `json:",inline"` + ProjectDependant `json:",inline"` // +kubebuilder:validation:MaxLength=256 // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" @@ -19,9 +19,6 @@ type ProjectVPCSpec struct { // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" // Network address range used by the VPC like 192.168.0.0/24 NetworkCidr string `json:"networkCidr"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // ProjectVPCStatus defines the observed state of ProjectVPC diff --git a/api/v1alpha1/redis_types.go b/api/v1alpha1/redis_types.go index 61ed0a13..5fa45c88 100644 --- a/api/v1alpha1/redis_types.go +++ b/api/v1alpha1/redis_types.go @@ -9,25 +9,9 @@ import ( ) // RedisSpec defines the desired state of Redis -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type RedisSpec struct { ServiceCommonSpec `json:",inline"` - // +kubebuilder:validation:Format="^[1-9][0-9]*(GiB|G)*" - // 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. - DiskSpace string `json:"disk_space,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` - - // Information regarding secret creation. - // Exposed keys: `REDIS_HOST`, `REDIS_PORT`, `REDIS_USER`, `REDIS_PASSWORD`, `REDIS_CA_CERT` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - // Redis specific user configuration options UserConfig *redisuserconfig.RedisUserConfig `json:"userConfig,omitempty"` } @@ -35,7 +19,8 @@ type RedisSpec struct { //+kubebuilder:object:root=true //+kubebuilder:subresource:status -// Redis is the Schema for the redis API +// Redis is the Schema for the redis API. +// Info "Exposes secret keys": `REDIS_HOST`, `REDIS_PORT`, `REDIS_USER`, `REDIS_PASSWORD`, `REDIS_CA_CERT` // +kubebuilder:subresource:status type Redis struct { metav1.TypeMeta `json:",inline"` diff --git a/api/v1alpha1/serviceintegration_types.go b/api/v1alpha1/serviceintegration_types.go index cfbae053..fa8ec3a0 100644 --- a/api/v1alpha1/serviceintegration_types.go +++ b/api/v1alpha1/serviceintegration_types.go @@ -21,7 +21,7 @@ import ( // ServiceIntegrationSpec defines the desired state of ServiceIntegration type ServiceIntegrationSpec struct { - ProjectField `json:",inline"` + ProjectDependant `json:",inline"` // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" // +kubebuilder:validation:Enum=alertmanager;autoscaler;caching;cassandra_cross_service_cluster;clickhouse_kafka;clickhouse_postgresql;dashboard;datadog;datasource;external_aws_cloudwatch_logs;external_aws_cloudwatch_metrics;external_elasticsearch_logs;external_google_cloud_logging;external_opensearch_logs;flink;flink_external_kafka;internal_connectivity;jolokia;kafka_connect;kafka_logs;kafka_mirrormaker;logs;m3aggregator;m3coordinator;metrics;opensearch_cross_cluster_replication;opensearch_cross_cluster_search;prometheus;read_replica;rsyslog;schema_registry_proxy;stresstester;thanosquery;thanosstore;vmalert @@ -84,9 +84,6 @@ type ServiceIntegrationSpec struct { // External AWS CloudWatch Metrics integration Logs configuration values ExternalAWSCloudwatchMetricsUserConfig *externalawscloudwatchmetricsuserconfig.ExternalAwsCloudwatchMetricsUserConfig `json:"externalAWSCloudwatchMetrics,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // ServiceIntegrationStatus defines the observed state of ServiceIntegration diff --git a/api/v1alpha1/serviceuser_types.go b/api/v1alpha1/serviceuser_types.go index de1d2f13..c76ef15d 100644 --- a/api/v1alpha1/serviceuser_types.go +++ b/api/v1alpha1/serviceuser_types.go @@ -7,24 +7,13 @@ import ( ) // ServiceUserSpec defines the desired state of ServiceUser -// +kubebuilder:validation:XValidation:rule="has(oldSelf.connInfoSecretTargetDisabled) == has(self.connInfoSecretTargetDisabled)",message="connInfoSecretTargetDisabled can only be set during resource creation." type ServiceUserSpec struct { - ProjectServiceFields `json:",inline"` + ServiceDependant `json:",inline"` + SecretFields `json:",inline"` // +kubebuilder:validation:Enum=caching_sha2_password;mysql_native_password // Authentication details Authentication string `json:"authentication,omitempty"` - - // Information regarding secret creation. - // Exposed keys: `SERVICEUSER_HOST`, `SERVICEUSER_PORT`, `SERVICEUSER_USERNAME`, `SERVICEUSER_PASSWORD`, `SERVICEUSER_CA_CERT`, `SERVICEUSER_ACCESS_CERT`, `SERVICEUSER_ACCESS_KEY` - ConnInfoSecretTarget ConnInfoSecretTarget `json:"connInfoSecretTarget,omitempty"` - - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="connInfoSecretTargetDisabled is immutable." - // When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - ConnInfoSecretTargetDisabled *bool `json:"connInfoSecretTargetDisabled,omitempty"` - - // Authentication reference to Aiven token in a secret - AuthSecretRef *AuthSecretReference `json:"authSecretRef,omitempty"` } // ServiceUserStatus defines the observed state of ServiceUser @@ -39,7 +28,8 @@ type ServiceUserStatus struct { // +kubebuilder:object:root=true // +kubebuilder:subresource:status -// ServiceUser is the Schema for the serviceusers API +// 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` // +kubebuilder:printcolumn:name="Service Name",type="string",JSONPath=".spec.serviceName" // +kubebuilder:printcolumn:name="Project",type="string",JSONPath=".spec.project" // +kubebuilder:printcolumn:name="Connection Information Secret",type="string",JSONPath=".spec.connInfoSecretTarget.name" diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index 6cc2c6c4..1dfb2f86 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -31,6 +31,26 @@ import ( redis "github.com/aiven/aiven-operator/api/v1alpha1/userconfig/service/redis" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AuthSecretRefField) DeepCopyInto(out *AuthSecretRefField) { + *out = *in + if in.AuthSecretRef != nil { + in, out := &in.AuthSecretRef, &out.AuthSecretRef + *out = new(AuthSecretReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthSecretRefField. +func (in *AuthSecretRefField) DeepCopy() *AuthSecretRefField { + if in == nil { + return nil + } + out := new(AuthSecretRefField) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AuthSecretReference) DeepCopyInto(out *AuthSecretReference) { *out = *in @@ -46,6 +66,55 @@ func (in *AuthSecretReference) DeepCopy() *AuthSecretReference { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BaseServiceFields) DeepCopyInto(out *BaseServiceFields) { + *out = *in + in.ProjectDependant.DeepCopyInto(&out.ProjectDependant) + if in.ProjectVPCRef != nil { + in, out := &in.ProjectVPCRef, &out.ProjectVPCRef + *out = new(ResourceReference) + **out = **in + } + if in.TerminationProtection != nil { + in, out := &in.TerminationProtection, &out.TerminationProtection + *out = new(bool) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ServiceIntegrations != nil { + in, out := &in.ServiceIntegrations, &out.ServiceIntegrations + *out = make([]*ServiceIntegrationItem, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(ServiceIntegrationItem) + **out = **in + } + } + } + if in.TechnicalEmails != nil { + in, out := &in.TechnicalEmails, &out.TechnicalEmails + *out = make([]ServiceTechEmail, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BaseServiceFields. +func (in *BaseServiceFields) DeepCopy() *BaseServiceFields { + if in == nil { + return nil + } + out := new(BaseServiceFields) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Cassandra) DeepCopyInto(out *Cassandra) { *out = *in @@ -109,17 +178,6 @@ func (in *CassandraList) DeepCopyObject() runtime.Object { func (in *CassandraSpec) DeepCopyInto(out *CassandraSpec) { *out = *in in.ServiceCommonSpec.DeepCopyInto(&out.ServiceCommonSpec) - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } if in.UserConfig != nil { in, out := &in.UserConfig, &out.UserConfig *out = new(cassandra.CassandraUserConfig) @@ -226,12 +284,7 @@ func (in *ClickhouseDatabaseList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ClickhouseDatabaseSpec) DeepCopyInto(out *ClickhouseDatabaseSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClickhouseDatabaseSpec. @@ -360,12 +413,7 @@ func (in *ClickhouseRoleList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ClickhouseRoleSpec) DeepCopyInto(out *ClickhouseRoleSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClickhouseRoleSpec. @@ -404,17 +452,6 @@ func (in *ClickhouseRoleStatus) DeepCopy() *ClickhouseRoleStatus { func (in *ClickhouseSpec) DeepCopyInto(out *ClickhouseSpec) { *out = *in in.ServiceCommonSpec.DeepCopyInto(&out.ServiceCommonSpec) - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } if in.UserConfig != nil { in, out := &in.UserConfig, &out.UserConfig *out = new(clickhouse.ClickhouseUserConfig) @@ -494,18 +531,8 @@ func (in *ClickhouseUserList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ClickhouseUserSpec) DeepCopyInto(out *ClickhouseUserSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) + in.SecretFields.DeepCopyInto(&out.SecretFields) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClickhouseUserSpec. @@ -631,18 +658,8 @@ func (in *ConnectionPoolList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConnectionPoolSpec) DeepCopyInto(out *ConnectionPoolSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) + in.SecretFields.DeepCopyInto(&out.SecretFields) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionPoolSpec. @@ -739,17 +756,12 @@ func (in *DatabaseList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) if in.TerminationProtection != nil { in, out := &in.TerminationProtection, &out.TerminationProtection *out = new(bool) **out = **in } - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseSpec. @@ -847,17 +859,6 @@ func (in *GrafanaList) DeepCopyObject() runtime.Object { func (in *GrafanaSpec) DeepCopyInto(out *GrafanaSpec) { *out = *in in.ServiceCommonSpec.DeepCopyInto(&out.ServiceCommonSpec) - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } if in.UserConfig != nil { in, out := &in.UserConfig, &out.UserConfig *out = new(grafana.GrafanaUserConfig) @@ -964,12 +965,7 @@ func (in *KafkaACLList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *KafkaACLSpec) DeepCopyInto(out *KafkaACLSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaACLSpec. @@ -1066,12 +1062,7 @@ func (in *KafkaConnectList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *KafkaConnectSpec) DeepCopyInto(out *KafkaConnectSpec) { *out = *in - in.ServiceCommonSpec.DeepCopyInto(&out.ServiceCommonSpec) - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.BaseServiceFields.DeepCopyInto(&out.BaseServiceFields) if in.UserConfig != nil { in, out := &in.UserConfig, &out.UserConfig *out = new(kafka_connect.KafkaConnectUserConfig) @@ -1166,12 +1157,7 @@ func (in *KafkaConnectorPluginStatus) DeepCopy() *KafkaConnectorPluginStatus { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *KafkaConnectorSpec) DeepCopyInto(out *KafkaConnectorSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) if in.UserConfig != nil { in, out := &in.UserConfig, &out.UserConfig *out = make(map[string]string, len(*in)) @@ -1383,12 +1369,7 @@ func (in *KafkaSchemaRegistryACLList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *KafkaSchemaRegistryACLSpec) DeepCopyInto(out *KafkaSchemaRegistryACLSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaSchemaRegistryACLSpec. @@ -1426,12 +1407,7 @@ func (in *KafkaSchemaRegistryACLStatus) DeepCopy() *KafkaSchemaRegistryACLStatus // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *KafkaSchemaSpec) DeepCopyInto(out *KafkaSchemaSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaSchemaSpec. @@ -1470,17 +1446,6 @@ func (in *KafkaSchemaStatus) DeepCopy() *KafkaSchemaStatus { func (in *KafkaSpec) DeepCopyInto(out *KafkaSpec) { *out = *in in.ServiceCommonSpec.DeepCopyInto(&out.ServiceCommonSpec) - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } if in.Karapace != nil { in, out := &in.Karapace, &out.Karapace *out = new(bool) @@ -1690,7 +1655,7 @@ func (in *KafkaTopicList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *KafkaTopicSpec) DeepCopyInto(out *KafkaTopicSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) if in.Tags != nil { in, out := &in.Tags, &out.Tags *out = make([]KafkaTopicTag, len(*in)) @@ -1702,11 +1667,6 @@ func (in *KafkaTopicSpec) DeepCopyInto(out *KafkaTopicSpec) { *out = new(bool) **out = **in } - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaTopicSpec. @@ -1819,17 +1779,6 @@ func (in *MySQLList) DeepCopyObject() runtime.Object { func (in *MySQLSpec) DeepCopyInto(out *MySQLSpec) { *out = *in in.ServiceCommonSpec.DeepCopyInto(&out.ServiceCommonSpec) - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } if in.UserConfig != nil { in, out := &in.UserConfig, &out.UserConfig *out = new(mysql.MysqlUserConfig) @@ -1910,17 +1859,6 @@ func (in *OpenSearchList) DeepCopyObject() runtime.Object { func (in *OpenSearchSpec) DeepCopyInto(out *OpenSearchSpec) { *out = *in in.ServiceCommonSpec.DeepCopyInto(&out.ServiceCommonSpec) - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } if in.UserConfig != nil { in, out := &in.UserConfig, &out.UserConfig *out = new(opensearch.OpensearchUserConfig) @@ -2001,17 +1939,6 @@ func (in *PostgreSQLList) DeepCopyObject() runtime.Object { func (in *PostgreSQLSpec) DeepCopyInto(out *PostgreSQLSpec) { *out = *in in.ServiceCommonSpec.DeepCopyInto(&out.ServiceCommonSpec) - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } if in.UserConfig != nil { in, out := &in.UserConfig, &out.UserConfig *out = new(pg.PgUserConfig) @@ -2056,6 +1983,23 @@ func (in *Project) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectDependant) DeepCopyInto(out *ProjectDependant) { + *out = *in + out.ProjectField = in.ProjectField + in.AuthSecretRefField.DeepCopyInto(&out.AuthSecretRefField) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectDependant. +func (in *ProjectDependant) DeepCopy() *ProjectDependant { + if in == nil { + return nil + } + out := new(ProjectDependant) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ProjectField) DeepCopyInto(out *ProjectField) { *out = *in @@ -2103,26 +2047,11 @@ func (in *ProjectList) DeepCopyObject() runtime.Object { return nil } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProjectServiceFields) DeepCopyInto(out *ProjectServiceFields) { - *out = *in - out.ProjectField = in.ProjectField - out.ServiceField = in.ServiceField -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectServiceFields. -func (in *ProjectServiceFields) DeepCopy() *ProjectServiceFields { - if in == nil { - return nil - } - out := new(ProjectServiceFields) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec) { *out = *in + in.AuthSecretRefField.DeepCopyInto(&out.AuthSecretRefField) + in.SecretFields.DeepCopyInto(&out.SecretFields) if in.BillingEmails != nil { in, out := &in.BillingEmails, &out.BillingEmails *out = make([]string, len(*in)) @@ -2133,12 +2062,6 @@ func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec) { *out = make([]string, len(*in)) copy(*out, *in) } - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } if in.Tags != nil { in, out := &in.Tags, &out.Tags *out = make(map[string]string, len(*in)) @@ -2146,11 +2069,6 @@ func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec) { (*out)[key] = val } } - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectSpec. @@ -2247,12 +2165,7 @@ func (in *ProjectVPCList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ProjectVPCSpec) DeepCopyInto(out *ProjectVPCSpec) { *out = *in - out.ProjectField = in.ProjectField - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ProjectDependant.DeepCopyInto(&out.ProjectDependant) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectVPCSpec. @@ -2350,17 +2263,6 @@ func (in *RedisList) DeepCopyObject() runtime.Object { func (in *RedisSpec) DeepCopyInto(out *RedisSpec) { *out = *in in.ServiceCommonSpec.DeepCopyInto(&out.ServiceCommonSpec) - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } if in.UserConfig != nil { in, out := &in.UserConfig, &out.UserConfig *out = new(redis.RedisUserConfig) @@ -2411,42 +2313,31 @@ func (in *ResourceReferenceObject) DeepCopy() *ResourceReferenceObject { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServiceCommonSpec) DeepCopyInto(out *ServiceCommonSpec) { +func (in *SecretFields) DeepCopyInto(out *SecretFields) { *out = *in - out.ProjectField = in.ProjectField - if in.ProjectVPCRef != nil { - in, out := &in.ProjectVPCRef, &out.ProjectVPCRef - *out = new(ResourceReference) - **out = **in - } - if in.TerminationProtection != nil { - in, out := &in.TerminationProtection, &out.TerminationProtection + if in.ConnInfoSecretTargetDisabled != nil { + in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled *out = new(bool) **out = **in } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.ServiceIntegrations != nil { - in, out := &in.ServiceIntegrations, &out.ServiceIntegrations - *out = make([]*ServiceIntegrationItem, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(ServiceIntegrationItem) - **out = **in - } - } - } - if in.TechnicalEmails != nil { - in, out := &in.TechnicalEmails, &out.TechnicalEmails - *out = make([]ServiceTechEmail, len(*in)) - copy(*out, *in) + in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretFields. +func (in *SecretFields) DeepCopy() *SecretFields { + if in == nil { + return nil } + out := new(SecretFields) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceCommonSpec) DeepCopyInto(out *ServiceCommonSpec) { + *out = *in + in.BaseServiceFields.DeepCopyInto(&out.BaseServiceFields) + in.SecretFields.DeepCopyInto(&out.SecretFields) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceCommonSpec. @@ -2459,6 +2350,23 @@ func (in *ServiceCommonSpec) DeepCopy() *ServiceCommonSpec { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceDependant) DeepCopyInto(out *ServiceDependant) { + *out = *in + in.ProjectDependant.DeepCopyInto(&out.ProjectDependant) + out.ServiceField = in.ServiceField +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDependant. +func (in *ServiceDependant) DeepCopy() *ServiceDependant { + if in == nil { + return nil + } + out := new(ServiceDependant) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceField) DeepCopyInto(out *ServiceField) { *out = *in @@ -2551,7 +2459,7 @@ func (in *ServiceIntegrationList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceIntegrationSpec) DeepCopyInto(out *ServiceIntegrationSpec) { *out = *in - out.ProjectField = in.ProjectField + in.ProjectDependant.DeepCopyInto(&out.ProjectDependant) if in.DatadogUserConfig != nil { in, out := &in.DatadogUserConfig, &out.DatadogUserConfig *out = new(datadog.DatadogUserConfig) @@ -2597,11 +2505,6 @@ func (in *ServiceIntegrationSpec) DeepCopyInto(out *ServiceIntegrationSpec) { *out = new(external_aws_cloudwatch_metrics.ExternalAwsCloudwatchMetricsUserConfig) (*in).DeepCopyInto(*out) } - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceIntegrationSpec. @@ -2735,18 +2638,8 @@ func (in *ServiceUserList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceUserSpec) DeepCopyInto(out *ServiceUserSpec) { *out = *in - out.ProjectServiceFields = in.ProjectServiceFields - in.ConnInfoSecretTarget.DeepCopyInto(&out.ConnInfoSecretTarget) - if in.ConnInfoSecretTargetDisabled != nil { - in, out := &in.ConnInfoSecretTargetDisabled, &out.ConnInfoSecretTargetDisabled - *out = new(bool) - **out = **in - } - if in.AuthSecretRef != nil { - in, out := &in.AuthSecretRef, &out.AuthSecretRef - *out = new(AuthSecretReference) - **out = **in - } + in.ServiceDependant.DeepCopyInto(&out.ServiceDependant) + in.SecretFields.DeepCopyInto(&out.SecretFields) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceUserSpec. diff --git a/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml b/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml index a7e6befe..070251bd 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml @@ -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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml b/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml index 98327d56..406f636f 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml @@ -18,7 +18,10 @@ 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`, + `CLICKHOUSE_CA_CERT`' properties: apiVersion: description: @@ -55,10 +58,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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_clickhouseusers.yaml b/charts/aiven-operator-crds/templates/aiven.io_clickhouseusers.yaml index 328addcb..8f6bda97 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_clickhouseusers.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_clickhouseusers.yaml @@ -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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml b/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml index 53547780..93f461f0 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml @@ -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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml b/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml index 0cd27fac..dfb0767b 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml @@ -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`, `GRAFANA_CA_CERT`' 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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml index e9c3e4ca..d8761843 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml @@ -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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml b/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml index 8bb028b1..0044a6ff 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml @@ -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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml index ee3cb5c7..8b5e5373 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml @@ -18,7 +18,10 @@ 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`, + `OPENSEARCH_CA_CERT`' properties: apiVersion: description: @@ -55,10 +58,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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml b/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml index 8c696ab6..6d331691 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml @@ -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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_projects.yaml b/charts/aiven-operator-crds/templates/aiven.io_projects.yaml index 6a3c352c..9ae2e092 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_projects.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_projects.yaml @@ -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: @@ -99,9 +101,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `PROJECT_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: diff --git a/charts/aiven-operator-crds/templates/aiven.io_redis.yaml b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml index 73c6b691..4c8844e7 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_redis.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml @@ -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`, `REDIS_CA_CERT`' 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: diff --git a/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml b/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml index 535a1e3e..a5800a37 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml @@ -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: diff --git a/config/crd/bases/aiven.io_cassandras.yaml b/config/crd/bases/aiven.io_cassandras.yaml index a7e6befe..070251bd 100644 --- a/config/crd/bases/aiven.io_cassandras.yaml +++ b/config/crd/bases/aiven.io_cassandras.yaml @@ -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: diff --git a/config/crd/bases/aiven.io_clickhouses.yaml b/config/crd/bases/aiven.io_clickhouses.yaml index 98327d56..406f636f 100644 --- a/config/crd/bases/aiven.io_clickhouses.yaml +++ b/config/crd/bases/aiven.io_clickhouses.yaml @@ -18,7 +18,10 @@ 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`, + `CLICKHOUSE_CA_CERT`' properties: apiVersion: description: @@ -55,10 +58,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: diff --git a/config/crd/bases/aiven.io_clickhouseusers.yaml b/config/crd/bases/aiven.io_clickhouseusers.yaml index 328addcb..8f6bda97 100644 --- a/config/crd/bases/aiven.io_clickhouseusers.yaml +++ b/config/crd/bases/aiven.io_clickhouseusers.yaml @@ -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: diff --git a/config/crd/bases/aiven.io_connectionpools.yaml b/config/crd/bases/aiven.io_connectionpools.yaml index 53547780..93f461f0 100644 --- a/config/crd/bases/aiven.io_connectionpools.yaml +++ b/config/crd/bases/aiven.io_connectionpools.yaml @@ -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: diff --git a/config/crd/bases/aiven.io_grafanas.yaml b/config/crd/bases/aiven.io_grafanas.yaml index 0cd27fac..dfb0767b 100644 --- a/config/crd/bases/aiven.io_grafanas.yaml +++ b/config/crd/bases/aiven.io_grafanas.yaml @@ -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`, `GRAFANA_CA_CERT`' 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: diff --git a/config/crd/bases/aiven.io_kafkas.yaml b/config/crd/bases/aiven.io_kafkas.yaml index e9c3e4ca..d8761843 100644 --- a/config/crd/bases/aiven.io_kafkas.yaml +++ b/config/crd/bases/aiven.io_kafkas.yaml @@ -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: diff --git a/config/crd/bases/aiven.io_mysqls.yaml b/config/crd/bases/aiven.io_mysqls.yaml index 8bb028b1..0044a6ff 100644 --- a/config/crd/bases/aiven.io_mysqls.yaml +++ b/config/crd/bases/aiven.io_mysqls.yaml @@ -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: diff --git a/config/crd/bases/aiven.io_opensearches.yaml b/config/crd/bases/aiven.io_opensearches.yaml index ee3cb5c7..8b5e5373 100644 --- a/config/crd/bases/aiven.io_opensearches.yaml +++ b/config/crd/bases/aiven.io_opensearches.yaml @@ -18,7 +18,10 @@ 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`, + `OPENSEARCH_CA_CERT`' properties: apiVersion: description: @@ -55,10 +58,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: diff --git a/config/crd/bases/aiven.io_postgresqls.yaml b/config/crd/bases/aiven.io_postgresqls.yaml index 8c696ab6..6d331691 100644 --- a/config/crd/bases/aiven.io_postgresqls.yaml +++ b/config/crd/bases/aiven.io_postgresqls.yaml @@ -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: diff --git a/config/crd/bases/aiven.io_projects.yaml b/config/crd/bases/aiven.io_projects.yaml index 6a3c352c..9ae2e092 100644 --- a/config/crd/bases/aiven.io_projects.yaml +++ b/config/crd/bases/aiven.io_projects.yaml @@ -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: @@ -99,9 +101,7 @@ spec: maxLength: 256 type: string connInfoSecretTarget: - description: - "Information regarding secret creation. Exposed keys: - `PROJECT_CA_CERT`" + description: Secret configuration. properties: annotations: additionalProperties: diff --git a/config/crd/bases/aiven.io_redis.yaml b/config/crd/bases/aiven.io_redis.yaml index 73c6b691..4c8844e7 100644 --- a/config/crd/bases/aiven.io_redis.yaml +++ b/config/crd/bases/aiven.io_redis.yaml @@ -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`, `REDIS_CA_CERT`' 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: diff --git a/config/crd/bases/aiven.io_serviceusers.yaml b/config/crd/bases/aiven.io_serviceusers.yaml index 535a1e3e..a5800a37 100644 --- a/config/crd/bases/aiven.io_serviceusers.yaml +++ b/config/crd/bases/aiven.io_serviceusers.yaml @@ -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: diff --git a/controllers/kafkaconnect_controller.go b/controllers/kafkaconnect_controller.go index a9771bda..0156a44b 100644 --- a/controllers/kafkaconnect_controller.go +++ b/controllers/kafkaconnect_controller.go @@ -61,7 +61,7 @@ func (a *kafkaConnectAdapter) getServiceStatus() *v1alpha1.ServiceStatus { } func (a *kafkaConnectAdapter) getServiceCommonSpec() *v1alpha1.ServiceCommonSpec { - return &a.Spec.ServiceCommonSpec + return &v1alpha1.ServiceCommonSpec{BaseServiceFields: a.Spec.BaseServiceFields} } func (a *kafkaConnectAdapter) getUserConfig() any { diff --git a/docs/docs/api-reference/cassandra.md b/docs/docs/api-reference/cassandra.md index bd5fd7d8..6fed6de5 100644 --- a/docs/docs/api-reference/cassandra.md +++ b/docs/docs/api-reference/cassandra.md @@ -41,7 +41,11 @@ spec: ## Cassandra {: #Cassandra } -Cassandra is the Schema for the cassandras API. +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`. **Required** @@ -65,7 +69,7 @@ CassandraSpec defines the desired state of Cassandra. - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). - [`cloudName`](#spec.cloudName-property){: name='spec.cloudName-property'} (string, MaxLength: 256). Cloud the service runs in. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Information regarding secret creation. Exposed keys: `CASSANDRA_HOST`, `CASSANDRA_PORT`, `CASSANDRA_USER`, `CASSANDRA_PASSWORD`, `CASSANDRA_URI`, `CASSANDRA_HOSTS`, `CASSANDRA_CA_CERT`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`disk_space`](#spec.disk_space-property){: name='spec.disk_space-property'} (string, Format: `^[1-9][0-9]*(GiB|G)*`). 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. - [`maintenanceWindowDow`](#spec.maintenanceWindowDow-property){: name='spec.maintenanceWindowDow-property'} (string, Enum: `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`). Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc. @@ -93,7 +97,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -Information regarding secret creation. Exposed keys: `CASSANDRA_HOST`, `CASSANDRA_PORT`, `CASSANDRA_USER`, `CASSANDRA_PASSWORD`, `CASSANDRA_URI`, `CASSANDRA_HOSTS`, `CASSANDRA_CA_CERT`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/clickhouse.md b/docs/docs/api-reference/clickhouse.md index 02f053a2..61a1426c 100644 --- a/docs/docs/api-reference/clickhouse.md +++ b/docs/docs/api-reference/clickhouse.md @@ -32,7 +32,11 @@ spec: ## Clickhouse {: #Clickhouse } -Clickhouse is the Schema for the clickhouses API. +Clickhouse is the Schema for the clickhouses API. + +!!! Info "Exposes secret keys" + + `CLICKHOUSE_HOST`, `CLICKHOUSE_PORT`, `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`, `CLICKHOUSE_CA_CERT`. **Required** @@ -56,7 +60,7 @@ ClickhouseSpec defines the desired state of Clickhouse. - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). - [`cloudName`](#spec.cloudName-property){: name='spec.cloudName-property'} (string, MaxLength: 256). Cloud the service runs in. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Information regarding secret creation. Exposed keys: `CLICKHOUSE_HOST`, `CLICKHOUSE_PORT`, `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`, `CLICKHOUSE_CA_CERT`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`disk_space`](#spec.disk_space-property){: name='spec.disk_space-property'} (string, Format: `^[1-9][0-9]*(GiB|G)*`). 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. - [`maintenanceWindowDow`](#spec.maintenanceWindowDow-property){: name='spec.maintenanceWindowDow-property'} (string, Enum: `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`). Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc. @@ -84,7 +88,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -Information regarding secret creation. Exposed keys: `CLICKHOUSE_HOST`, `CLICKHOUSE_PORT`, `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`, `CLICKHOUSE_CA_CERT`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/clickhouseuser.md b/docs/docs/api-reference/clickhouseuser.md index 28438e96..121b7ab1 100644 --- a/docs/docs/api-reference/clickhouseuser.md +++ b/docs/docs/api-reference/clickhouseuser.md @@ -28,7 +28,11 @@ spec: ## ClickhouseUser {: #ClickhouseUser } -ClickhouseUser is the Schema for the clickhouseusers API. +ClickhouseUser is the Schema for the clickhouseusers API. + +!!! Info "Exposes secret keys" + + `CLICKHOUSEUSER_HOST`, `CLICKHOUSEUSER_PORT`, `CLICKHOUSEUSER_USER`, `CLICKHOUSEUSER_PASSWORD`. **Required** @@ -51,7 +55,7 @@ ClickhouseUserSpec defines the desired state of ClickhouseUser. **Optional** - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Information regarding secret creation. Exposed keys: `CLICKHOUSEUSER_HOST`, `CLICKHOUSEUSER_PORT`, `CLICKHOUSEUSER_USER`, `CLICKHOUSEUSER_PASSWORD`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. ## authSecretRef {: #spec.authSecretRef } @@ -69,7 +73,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -Information regarding secret creation. Exposed keys: `CLICKHOUSEUSER_HOST`, `CLICKHOUSEUSER_PORT`, `CLICKHOUSEUSER_USER`, `CLICKHOUSEUSER_PASSWORD`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/connectionpool.md b/docs/docs/api-reference/connectionpool.md index aa12c497..75f26132 100644 --- a/docs/docs/api-reference/connectionpool.md +++ b/docs/docs/api-reference/connectionpool.md @@ -32,7 +32,11 @@ spec: ## ConnectionPool {: #ConnectionPool } -ConnectionPool is the Schema for the connectionpools API. +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`. **Required** @@ -57,7 +61,7 @@ ConnectionPoolSpec defines the desired state of ConnectionPool. **Optional** - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). 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`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`poolMode`](#spec.poolMode-property){: name='spec.poolMode-property'} (string, Enum: `session`, `transaction`, `statement`). Mode the pool operates in (session, transaction, statement). - [`poolSize`](#spec.poolSize-property){: name='spec.poolSize-property'} (integer). Number of connections the pool may create towards the backend server. @@ -77,7 +81,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -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`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/grafana.md b/docs/docs/api-reference/grafana.md index 84ee0a21..51a57e75 100644 --- a/docs/docs/api-reference/grafana.md +++ b/docs/docs/api-reference/grafana.md @@ -40,7 +40,11 @@ spec: ## Grafana {: #Grafana } -Grafana is the Schema for the grafanas API. +Grafana is the Schema for the grafanas API. + +!!! Info "Exposes secret keys" + + `GRAFANA_HOST`, `GRAFANA_PORT`, `GRAFANA_USER`, `GRAFANA_PASSWORD`, `GRAFANA_URI`, `GRAFANA_HOSTS`, `GRAFANA_CA_CERT`. **Required** @@ -64,7 +68,7 @@ GrafanaSpec defines the desired state of Grafana. - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). - [`cloudName`](#spec.cloudName-property){: name='spec.cloudName-property'} (string, MaxLength: 256). Cloud the service runs in. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Information regarding secret creation. Exposed keys: `GRAFANA_HOST`, `GRAFANA_PORT`, `GRAFANA_USER`, `GRAFANA_PASSWORD`, `GRAFANA_URI`, `GRAFANA_HOSTS`, `GRAFANA_CA_CERT`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`disk_space`](#spec.disk_space-property){: name='spec.disk_space-property'} (string, Format: `^[1-9][0-9]*(GiB|G)*`). 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. - [`maintenanceWindowDow`](#spec.maintenanceWindowDow-property){: name='spec.maintenanceWindowDow-property'} (string, Enum: `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`). Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc. @@ -92,7 +96,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -Information regarding secret creation. Exposed keys: `GRAFANA_HOST`, `GRAFANA_PORT`, `GRAFANA_USER`, `GRAFANA_PASSWORD`, `GRAFANA_URI`, `GRAFANA_HOSTS`, `GRAFANA_CA_CERT`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/kafka.md b/docs/docs/api-reference/kafka.md index 1430a25e..cfbe3923 100644 --- a/docs/docs/api-reference/kafka.md +++ b/docs/docs/api-reference/kafka.md @@ -32,7 +32,11 @@ spec: ## Kafka {: #Kafka } -Kafka is the Schema for the kafkas API. +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`. **Required** @@ -56,7 +60,7 @@ KafkaSpec defines the desired state of Kafka. - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). - [`cloudName`](#spec.cloudName-property){: name='spec.cloudName-property'} (string, MaxLength: 256). Cloud the service runs in. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). 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`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`disk_space`](#spec.disk_space-property){: name='spec.disk_space-property'} (string, Format: `^[1-9][0-9]*(GiB|G)*`). 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. - [`karapace`](#spec.karapace-property){: name='spec.karapace-property'} (boolean). Switch the service to use Karapace for schema registry and REST proxy. @@ -85,7 +89,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -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`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/mysql.md b/docs/docs/api-reference/mysql.md index 422e8318..092d03f4 100644 --- a/docs/docs/api-reference/mysql.md +++ b/docs/docs/api-reference/mysql.md @@ -40,7 +40,11 @@ spec: ## MySQL {: #MySQL } -MySQL is the Schema for the mysqls API. +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`. **Required** @@ -64,7 +68,7 @@ MySQLSpec defines the desired state of MySQL. - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). - [`cloudName`](#spec.cloudName-property){: name='spec.cloudName-property'} (string, MaxLength: 256). Cloud the service runs in. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). 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`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`disk_space`](#spec.disk_space-property){: name='spec.disk_space-property'} (string, Format: `^[1-9][0-9]*(GiB|G)*`). 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. - [`maintenanceWindowDow`](#spec.maintenanceWindowDow-property){: name='spec.maintenanceWindowDow-property'} (string, Enum: `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`). Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc. @@ -92,7 +96,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -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`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/opensearch.md b/docs/docs/api-reference/opensearch.md index 76d3bba5..5ac2809a 100644 --- a/docs/docs/api-reference/opensearch.md +++ b/docs/docs/api-reference/opensearch.md @@ -33,7 +33,11 @@ spec: ## OpenSearch {: #OpenSearch } -OpenSearch is the Schema for the opensearches API. +OpenSearch is the Schema for the opensearches API. + +!!! Info "Exposes secret keys" + + `OPENSEARCH_HOST`, `OPENSEARCH_PORT`, `OPENSEARCH_USER`, `OPENSEARCH_PASSWORD`, `OPENSEARCH_CA_CERT`. **Required** @@ -57,7 +61,7 @@ OpenSearchSpec defines the desired state of OpenSearch. - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). - [`cloudName`](#spec.cloudName-property){: name='spec.cloudName-property'} (string, MaxLength: 256). Cloud the service runs in. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Information regarding secret creation. Exposed keys: `OPENSEARCH_HOST`, `OPENSEARCH_PORT`, `OPENSEARCH_USER`, `OPENSEARCH_PASSWORD`, `OPENSEARCH_CA_CERT`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`disk_space`](#spec.disk_space-property){: name='spec.disk_space-property'} (string, Format: `^[1-9][0-9]*(GiB|G)*`). 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. - [`maintenanceWindowDow`](#spec.maintenanceWindowDow-property){: name='spec.maintenanceWindowDow-property'} (string, Enum: `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`). Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc. @@ -85,7 +89,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -Information regarding secret creation. Exposed keys: `OPENSEARCH_HOST`, `OPENSEARCH_PORT`, `OPENSEARCH_USER`, `OPENSEARCH_PASSWORD`, `OPENSEARCH_CA_CERT`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/postgresql.md b/docs/docs/api-reference/postgresql.md index b9b7c6e7..a2f10a3e 100644 --- a/docs/docs/api-reference/postgresql.md +++ b/docs/docs/api-reference/postgresql.md @@ -35,7 +35,11 @@ spec: ## PostgreSQL {: #PostgreSQL } -PostgreSQL is the Schema for the postgresql API. +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`. **Required** @@ -59,7 +63,7 @@ PostgreSQLSpec defines the desired state of postgres instance. - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). - [`cloudName`](#spec.cloudName-property){: name='spec.cloudName-property'} (string, MaxLength: 256). Cloud the service runs in. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Information regarding secret creation. Exposed keys: `POSTGRESQL_HOST`, `POSTGRESQL_PORT`, `POSTGRESQL_DATABASE`, `POSTGRESQL_USER`, `POSTGRESQL_PASSWORD`, `POSTGRESQL_SSLMODE`, `POSTGRESQL_DATABASE_URI`, `POSTGRESQL_CA_CERT`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`disk_space`](#spec.disk_space-property){: name='spec.disk_space-property'} (string, Format: `^[1-9][0-9]*(GiB|G)*`). 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. - [`maintenanceWindowDow`](#spec.maintenanceWindowDow-property){: name='spec.maintenanceWindowDow-property'} (string, Enum: `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`). Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc. @@ -87,7 +91,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -Information regarding secret creation. Exposed keys: `POSTGRESQL_HOST`, `POSTGRESQL_PORT`, `POSTGRESQL_DATABASE`, `POSTGRESQL_USER`, `POSTGRESQL_PASSWORD`, `POSTGRESQL_SSLMODE`, `POSTGRESQL_DATABASE_URI`, `POSTGRESQL_CA_CERT`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/project.md b/docs/docs/api-reference/project.md index 3d813179..c2309822 100644 --- a/docs/docs/api-reference/project.md +++ b/docs/docs/api-reference/project.md @@ -31,7 +31,11 @@ spec: ## Project {: #Project } -Project is the Schema for the projects API. +Project is the Schema for the projects API. + +!!! Info "Exposes secret keys" + + `PROJECT_CA_CERT`. **Required** @@ -57,7 +61,7 @@ ProjectSpec defines the desired state of Project. - [`billingGroupId`](#spec.billingGroupId-property){: name='spec.billingGroupId-property'} (string, MinLength: 36, MaxLength: 36). BillingGroup ID. - [`cardId`](#spec.cardId-property){: name='spec.cardId-property'} (string, MaxLength: 64). Credit card ID; The ID may be either last 4 digits of the card or the actual ID. - [`cloud`](#spec.cloud-property){: name='spec.cloud-property'} (string, MaxLength: 256). Target cloud, example: aws-eu-central-1. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Information regarding secret creation. Exposed keys: `PROJECT_CA_CERT`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`copyFromProject`](#spec.copyFromProject-property){: name='spec.copyFromProject-property'} (string, MaxLength: 63). Project name from which to copy settings to the new project. - [`countryCode`](#spec.countryCode-property){: name='spec.countryCode-property'} (string, MinLength: 2, MaxLength: 2). Billing country code of the project. @@ -79,7 +83,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -Information regarding secret creation. Exposed keys: `PROJECT_CA_CERT`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/redis.md b/docs/docs/api-reference/redis.md index 655c9a78..51cd5d09 100644 --- a/docs/docs/api-reference/redis.md +++ b/docs/docs/api-reference/redis.md @@ -35,7 +35,11 @@ spec: ## Redis {: #Redis } -Redis is the Schema for the redis API. +Redis is the Schema for the redis API. + +!!! Info "Exposes secret keys" + + `REDIS_HOST`, `REDIS_PORT`, `REDIS_USER`, `REDIS_PASSWORD`, `REDIS_CA_CERT`. **Required** @@ -59,7 +63,7 @@ RedisSpec defines the desired state of Redis. - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). - [`cloudName`](#spec.cloudName-property){: name='spec.cloudName-property'} (string, MaxLength: 256). Cloud the service runs in. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Information regarding secret creation. Exposed keys: `REDIS_HOST`, `REDIS_PORT`, `REDIS_USER`, `REDIS_PASSWORD`, `REDIS_CA_CERT`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. - [`disk_space`](#spec.disk_space-property){: name='spec.disk_space-property'} (string, Format: `^[1-9][0-9]*(GiB|G)*`). 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. - [`maintenanceWindowDow`](#spec.maintenanceWindowDow-property){: name='spec.maintenanceWindowDow-property'} (string, Enum: `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`). Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc. @@ -87,7 +91,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -Information regarding secret creation. Exposed keys: `REDIS_HOST`, `REDIS_PORT`, `REDIS_USER`, `REDIS_PASSWORD`, `REDIS_CA_CERT`. +Secret configuration. **Required** diff --git a/docs/docs/api-reference/serviceuser.md b/docs/docs/api-reference/serviceuser.md index 1af3f018..8319594c 100644 --- a/docs/docs/api-reference/serviceuser.md +++ b/docs/docs/api-reference/serviceuser.md @@ -28,7 +28,11 @@ spec: ## ServiceUser {: #ServiceUser } -ServiceUser is the Schema for the serviceusers API. +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`. **Required** @@ -52,7 +56,7 @@ ServiceUserSpec defines the desired state of ServiceUser. - [`authSecretRef`](#spec.authSecretRef-property){: name='spec.authSecretRef-property'} (object). Authentication reference to Aiven token in a secret. See below for [nested schema](#spec.authSecretRef). - [`authentication`](#spec.authentication-property){: name='spec.authentication-property'} (string, Enum: `caching_sha2_password`, `mysql_native_password`). Authentication details. -- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Information regarding secret creation. Exposed keys: `SERVICEUSER_HOST`, `SERVICEUSER_PORT`, `SERVICEUSER_USERNAME`, `SERVICEUSER_PASSWORD`, `SERVICEUSER_CA_CERT`, `SERVICEUSER_ACCESS_CERT`, `SERVICEUSER_ACCESS_KEY`. See below for [nested schema](#spec.connInfoSecretTarget). +- [`connInfoSecretTarget`](#spec.connInfoSecretTarget-property){: name='spec.connInfoSecretTarget-property'} (object). Secret configuration. See below for [nested schema](#spec.connInfoSecretTarget). - [`connInfoSecretTargetDisabled`](#spec.connInfoSecretTargetDisabled-property){: name='spec.connInfoSecretTargetDisabled-property'} (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation. ## authSecretRef {: #spec.authSecretRef } @@ -70,7 +74,7 @@ Authentication reference to Aiven token in a secret. _Appears on [`spec`](#spec)._ -Information regarding secret creation. Exposed keys: `SERVICEUSER_HOST`, `SERVICEUSER_PORT`, `SERVICEUSER_USERNAME`, `SERVICEUSER_PASSWORD`, `SERVICEUSER_CA_CERT`, `SERVICEUSER_ACCESS_CERT`, `SERVICEUSER_ACCESS_KEY`. +Secret configuration. **Required** diff --git a/generators/docs/generator.go b/generators/docs/generator.go index caaabec7..027f5277 100644 --- a/generators/docs/generator.go +++ b/generators/docs/generator.go @@ -220,8 +220,13 @@ func (s *schemaType) IsNested() bool { return len(s.Properties) > 0 || (s.Items != nil && s.Items.IsNested()) } -// reInlineCode finds all code-like text -var reInlineCode = regexp.MustCompile(`'(\S+)'`) +var ( + // reInlineCode to wrap inline code into backticks + reInlineCode = regexp.MustCompile(`'(\S+)'`) + + // reAdmonitions to render markdown admonitions + reAdmonitions = regexp.MustCompile(`(?i)((?:note|tip|info|warning|danger|bug|success|example) "[^"]*"):\s*(.+)`) +) // GetDescription Returns description with a dot suffix. Fallbacks to items description func (s *schemaType) GetDescription() string { @@ -236,6 +241,8 @@ func (s *schemaType) GetDescription() string { } // Wraps code chunks with backticks + d = reAdmonitions.ReplaceAllString(d, "\n\n!!! $1\n\n $2") + d = strings.ReplaceAll(d, "Exposes secret keys:", "\n!!! note\n\n Exposes secret keys:") return reInlineCode.ReplaceAllString(d, "`$1`") }