diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4739d4c55a..3d5cfb4903 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: kubectl create -f https://github.com/kubernetes-csi/external-snapshotter/raw/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml kubectl create -f https://github.com/kubestash/installer/raw/master/crds/kubestash-crds.yaml kubectl create -f https://github.com/appscode-cloud/catalog/raw/master/crds/catalog.appscode.com_mongodbbindings.yaml - kubectl create -f https://github.com/voyagermesh/installer/raw/master/charts/voyager-gateway/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml + kubectl create -f https://github.com/envoyproxy/gateway/raw/main/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml kubectl create -f https://github.com/voyagermesh/installer/raw/master/charts/gateway-api/crds/gateway.networking.k8s.io_gatewayclasses.yaml kubectl create -f https://github.com/fluxcd/helm-controller/raw/main/config/crd/bases/helm.toolkit.fluxcd.io_helmreleases.yaml kubectl create -f https://github.com/fluxcd/source-controller/raw/main/config/crd/bases/source.toolkit.fluxcd.io_helmrepositories.yaml diff --git a/docs/examples/cassandra/configuration/cassandra-config-file.yaml b/docs/examples/cassandra/configuration/cassandra-config-file.yaml index 82ddf21ca9..e58840a04b 100644 --- a/docs/examples/cassandra/configuration/cassandra-config-file.yaml +++ b/docs/examples/cassandra/configuration/cassandra-config-file.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 5.0.3 - configSecret: - name: cas-configuration + configuration: + secretName: cas-configuration topology: rack: - name: r0 diff --git a/docs/examples/cassandra/monitoring/cas-with-monitoring.yaml b/docs/examples/cassandra/monitoring/cas-with-monitoring.yaml index c91ae015ac..6bde8a32c9 100644 --- a/docs/examples/cassandra/monitoring/cas-with-monitoring.yaml +++ b/docs/examples/cassandra/monitoring/cas-with-monitoring.yaml @@ -5,7 +5,6 @@ metadata: namespace: demo spec: version: 5.0.3 - configuration: topology: rack: - name: r0 diff --git a/docs/examples/cassandra/monitoring/cassandra-builtin-prom.yaml b/docs/examples/cassandra/monitoring/cassandra-builtin-prom.yaml index 4bbaac694e..53223bcb91 100644 --- a/docs/examples/cassandra/monitoring/cassandra-builtin-prom.yaml +++ b/docs/examples/cassandra/monitoring/cassandra-builtin-prom.yaml @@ -5,7 +5,6 @@ metadata: namespace: demo spec: version: 5.0.3 - configuration: topology: rack: - name: r0 diff --git a/docs/examples/cassandra/reconfigure/cassandra-topology.yaml b/docs/examples/cassandra/reconfigure/cassandra-topology.yaml index 8cd7c7d459..94cf4fec45 100644 --- a/docs/examples/cassandra/reconfigure/cassandra-topology.yaml +++ b/docs/examples/cassandra/reconfigure/cassandra-topology.yaml @@ -5,8 +5,6 @@ metadata: namespace: demo spec: version: 5.0.3 - configSecret: - name: cas-topology-custom-config topology: rack: - name: r0 @@ -29,4 +27,6 @@ spec: requests: storage: 1Gi storageType: Durable + configuration: + secretName: cas-topology-custom-config deletionPolicy: WipeOut \ No newline at end of file diff --git a/docs/examples/cassandra/restart/cassandra.yaml b/docs/examples/cassandra/restart/cassandra.yaml index 9581706fe7..56dc65e9b1 100644 --- a/docs/examples/cassandra/restart/cassandra.yaml +++ b/docs/examples/cassandra/restart/cassandra.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 5.0.3 - configSecret: - name: cas-configuration + configuration: + secretName: cas-configuration topology: rack: - name: r0 diff --git a/docs/examples/clickhouse/custom-config/ch-custom-config-cluster.yaml b/docs/examples/clickhouse/custom-config/ch-custom-config-cluster.yaml index 626b375ed3..40e24745a1 100644 --- a/docs/examples/clickhouse/custom-config/ch-custom-config-cluster.yaml +++ b/docs/examples/clickhouse/custom-config/ch-custom-config-cluster.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 24.4.1 - configSecret: - name: ch-configuration + configuration: + secretName: ch-configuration clusterTopology: clickHouseKeeper: externallyManaged: false diff --git a/docs/examples/clickhouse/custom-config/ch-custom-config-standalone.yaml b/docs/examples/clickhouse/custom-config/ch-custom-config-standalone.yaml index e1c257925a..7354943749 100644 --- a/docs/examples/clickhouse/custom-config/ch-custom-config-standalone.yaml +++ b/docs/examples/clickhouse/custom-config/ch-custom-config-standalone.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 24.4.1 - configSecret: - name: clickhouse-configuration + configuration: + secretName: clickhouse-configuration replicas: 1 storage: accessModes: diff --git a/docs/examples/clickhouse/reconfigure/ch-reconfigure-ops-with-secret.yaml b/docs/examples/clickhouse/reconfigure/ch-reconfigure-ops-with-secret.yaml index 0ab17669c7..2ea026d1ea 100644 --- a/docs/examples/clickhouse/reconfigure/ch-reconfigure-ops-with-secret.yaml +++ b/docs/examples/clickhouse/reconfigure/ch-reconfigure-ops-with-secret.yaml @@ -10,5 +10,6 @@ spec: configuration: configSecret: name: new-ch-custom-config + restart: auto timeout: 10m apply: IfReady \ No newline at end of file diff --git a/docs/examples/clickhouse/reconfigure/clickhouse-cluster.yaml b/docs/examples/clickhouse/reconfigure/clickhouse-cluster.yaml index 711436d593..18450504f1 100644 --- a/docs/examples/clickhouse/reconfigure/clickhouse-cluster.yaml +++ b/docs/examples/clickhouse/reconfigure/clickhouse-cluster.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 24.4.1 - configSecret: - name: ch-custom-config + configuration: + secretName: ch-custom-config clusterTopology: clickHouseKeeper: externallyManaged: false diff --git a/docs/examples/clickhouse/reconfigure/clickhouse-standalone.yaml b/docs/examples/clickhouse/reconfigure/clickhouse-standalone.yaml index 502ece700e..e9e807baa8 100644 --- a/docs/examples/clickhouse/reconfigure/clickhouse-standalone.yaml +++ b/docs/examples/clickhouse/reconfigure/clickhouse-standalone.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 24.4.1 - configSecret: - name: ch-custom-config + configuration: + secretName: ch-custom-config replicas: 1 storage: accessModes: diff --git a/docs/examples/druid/quickstart/druid-quickstart.yaml b/docs/examples/druid/quickstart/druid-quickstart.yaml index 9794578610..1119ffbb67 100644 --- a/docs/examples/druid/quickstart/druid-quickstart.yaml +++ b/docs/examples/druid/quickstart/druid-quickstart.yaml @@ -7,8 +7,8 @@ spec: version: 28.0.1 deepStorage: type: s3 - configSecret: - name: deep-storage-config + configuration: + secretName: deep-storage-config topology: routers: replicas: 1 diff --git a/docs/examples/elasticsearch/custom-config/es-custom-with-topology.yaml b/docs/examples/elasticsearch/custom-config/es-custom-with-topology.yaml index 7e1141af87..c04a87ffa3 100644 --- a/docs/examples/elasticsearch/custom-config/es-custom-with-topology.yaml +++ b/docs/examples/elasticsearch/custom-config/es-custom-with-topology.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: xpack-8.11.1 - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config topology: master: suffix: master diff --git a/docs/examples/elasticsearch/custom-config/es-custom.yaml b/docs/examples/elasticsearch/custom-config/es-custom.yaml index 6c779f897f..25d4d4ad61 100644 --- a/docs/examples/elasticsearch/custom-config/es-custom.yaml +++ b/docs/examples/elasticsearch/custom-config/es-custom.yaml @@ -6,8 +6,8 @@ metadata: spec: version: xpack-8.11.1 replicas: 2 - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config storage: storageClassName: "standard" accessModes: diff --git a/docs/examples/elasticsearch/es-overview.yaml b/docs/examples/elasticsearch/es-overview.yaml index ce20a3c478..91c38fbb4c 100644 --- a/docs/examples/elasticsearch/es-overview.yaml +++ b/docs/examples/elasticsearch/es-overview.yaml @@ -29,8 +29,8 @@ spec: labels: app: kubedb interval: 10s - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config podTemplate: metadata: annotations: diff --git a/docs/examples/elasticsearch/kibana/es-kibana-demo.yaml b/docs/examples/elasticsearch/kibana/es-kibana-demo.yaml index c045204503..5eacb0c688 100644 --- a/docs/examples/elasticsearch/kibana/es-kibana-demo.yaml +++ b/docs/examples/elasticsearch/kibana/es-kibana-demo.yaml @@ -9,8 +9,8 @@ spec: authSecret: kind: Secret name: es-auth - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config storage: storageClassName: "standard" accessModes: diff --git a/docs/examples/elasticsearch/x-pack/es-mon-demo.yaml b/docs/examples/elasticsearch/x-pack/es-mon-demo.yaml index 38670ee6b3..c9d21039ba 100644 --- a/docs/examples/elasticsearch/x-pack/es-mon-demo.yaml +++ b/docs/examples/elasticsearch/x-pack/es-mon-demo.yaml @@ -9,8 +9,8 @@ spec: authSecret: kind: Secret name: es-auth - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config storage: storageClassName: "standard" accessModes: diff --git a/docs/examples/hazelcast/configuration/hazelcast-config.yaml b/docs/examples/hazelcast/configuration/hazelcast-config.yaml index 337135f2ff..6f8a79573c 100644 --- a/docs/examples/hazelcast/configuration/hazelcast-config.yaml +++ b/docs/examples/hazelcast/configuration/hazelcast-config.yaml @@ -8,8 +8,8 @@ spec: version: 5.5.2 licenseSecret: name: hz-license-key - configSecret: - name: hz + configuration: + secretName: hz storage: accessModes: - ReadWriteOnce diff --git a/docs/examples/ignite/custom-config/custom-ignite.yaml b/docs/examples/ignite/custom-config/custom-ignite.yaml index eb19f18c0a..14eaca91d4 100644 --- a/docs/examples/ignite/custom-config/custom-ignite.yaml +++ b/docs/examples/ignite/custom-config/custom-ignite.yaml @@ -6,8 +6,8 @@ metadata: spec: replicas: 3 version: 2.17.0 - configSecret: - name: ignite-configuration + configuration: + secretName: ignite-configuration storage: storageClassName: "standard" accessModes: diff --git a/docs/examples/kafka/configuration/kafka-combined.yaml b/docs/examples/kafka/configuration/kafka-combined.yaml index 45449397e8..8d1da101ed 100644 --- a/docs/examples/kafka/configuration/kafka-combined.yaml +++ b/docs/examples/kafka/configuration/kafka-combined.yaml @@ -6,8 +6,8 @@ metadata: spec: replicas: 2 version: 3.9.0 - configSecret: - name: configsecret-combined + configuration: + secretName: configsecret-combined storage: accessModes: - ReadWriteOnce diff --git a/docs/examples/kafka/configuration/kafka-topology.yaml b/docs/examples/kafka/configuration/kafka-topology.yaml index 87f53b5594..841af3917d 100644 --- a/docs/examples/kafka/configuration/kafka-topology.yaml +++ b/docs/examples/kafka/configuration/kafka-topology.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 3.9.0 - configSecret: - name: configsecret-topology + configuration: + secretName: configsecret-topology topology: broker: replicas: 2 diff --git a/docs/examples/kafka/connectcluster/kcc-distributed.yaml b/docs/examples/kafka/connectcluster/kcc-distributed.yaml index 943b237c77..63e3718711 100644 --- a/docs/examples/kafka/connectcluster/kcc-distributed.yaml +++ b/docs/examples/kafka/connectcluster/kcc-distributed.yaml @@ -11,8 +11,8 @@ spec: apiGroup: cert-manager.io kind: Issuer name: connectcluster-ca-issuer - configSecret: - name: connectcluster-custom-config + configuration: + secretName: connectcluster-custom-config replicas: 3 connectorPlugins: - postgres-3.0.5.final diff --git a/docs/examples/kafka/connectcluster/mongodb-source-connector.yaml b/docs/examples/kafka/connectcluster/mongodb-source-connector.yaml index 0a537ac57c..0f32a0c452 100644 --- a/docs/examples/kafka/connectcluster/mongodb-source-connector.yaml +++ b/docs/examples/kafka/connectcluster/mongodb-source-connector.yaml @@ -4,8 +4,8 @@ metadata: name: mongodb-source-connector namespace: demo spec: - configSecret: - name: mongodb-source-config + configuration: + secretName: mongodb-source-config connectClusterRef: name: connectcluster-quickstart namespace: demo diff --git a/docs/examples/kafka/migration/mirror-checkpoint.yaml b/docs/examples/kafka/migration/mirror-checkpoint.yaml index 23ccb47b28..12ed1f4601 100644 --- a/docs/examples/kafka/migration/mirror-checkpoint.yaml +++ b/docs/examples/kafka/migration/mirror-checkpoint.yaml @@ -34,6 +34,6 @@ spec: connectClusterRef: name: mirror-connect namespace: demo - configSecret: - name: mirror-checkpoint-config + configuration: + secretName: mirror-checkpoint-config deletionPolicy: WipeOut diff --git a/docs/examples/kafka/migration/mirror-heatbeat.yaml b/docs/examples/kafka/migration/mirror-heatbeat.yaml index 6005ad3a01..1905e91bcd 100644 --- a/docs/examples/kafka/migration/mirror-heatbeat.yaml +++ b/docs/examples/kafka/migration/mirror-heatbeat.yaml @@ -29,6 +29,6 @@ spec: connectClusterRef: name: mirror-connect namespace: demo - configSecret: - name: mirror-heartbeat-config + configuration: + secretName: mirror-heartbeat-config deletionPolicy: WipeOut \ No newline at end of file diff --git a/docs/examples/kafka/migration/mirror-source.yaml b/docs/examples/kafka/migration/mirror-source.yaml index 9456fe686e..75e9efd091 100644 --- a/docs/examples/kafka/migration/mirror-source.yaml +++ b/docs/examples/kafka/migration/mirror-source.yaml @@ -36,6 +36,6 @@ spec: connectClusterRef: name: mirror-connect namespace: demo - configSecret: - name: mirror-source-config + configuration: + secretName: mirror-source-config deletionPolicy: WipeOut diff --git a/docs/examples/kafka/reconfigure/kafka-combined.yaml b/docs/examples/kafka/reconfigure/kafka-combined.yaml index 367ec6451e..601fe61797 100644 --- a/docs/examples/kafka/reconfigure/kafka-combined.yaml +++ b/docs/examples/kafka/reconfigure/kafka-combined.yaml @@ -6,8 +6,8 @@ metadata: spec: replicas: 2 version: 3.9.0 - configSecret: - name: kf-combined-custom-config + configuration: + secretName: kf-combined-custom-config storage: accessModes: - ReadWriteOnce diff --git a/docs/examples/kafka/reconfigure/kafka-topology.yaml b/docs/examples/kafka/reconfigure/kafka-topology.yaml index 4161592c9d..308e71671f 100644 --- a/docs/examples/kafka/reconfigure/kafka-topology.yaml +++ b/docs/examples/kafka/reconfigure/kafka-topology.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 3.9.0 - configSecret: - name: kf-topology-custom-config + configuration: + secretName: kf-topology-custom-config topology: broker: replicas: 2 diff --git a/docs/examples/memcached/custom-config/custom-memcached.yaml b/docs/examples/memcached/custom-config/custom-memcached.yaml index 17c561c7ae..d57e3699ab 100644 --- a/docs/examples/memcached/custom-config/custom-memcached.yaml +++ b/docs/examples/memcached/custom-config/custom-memcached.yaml @@ -6,8 +6,8 @@ metadata: spec: replicas: 1 version: "1.6.22" - configSecret: - name: mc-configuration + configuration: + secretName: mc-configuration podTemplate: spec: containers: diff --git a/docs/examples/memcached/reconfigure/config-secret-reconfigure.yaml b/docs/examples/memcached/reconfigure/config-secret-reconfigure.yaml index cb72ce761c..c34aa1e012 100644 --- a/docs/examples/memcached/reconfigure/config-secret-reconfigure.yaml +++ b/docs/examples/memcached/reconfigure/config-secret-reconfigure.yaml @@ -10,3 +10,4 @@ spec: configuration: configSecret: name: new-configuration + restart: auto diff --git a/docs/examples/memcached/reconfigure/memcached-config.yaml b/docs/examples/memcached/reconfigure/memcached-config.yaml index df88d5b121..31a8b8a0a1 100644 --- a/docs/examples/memcached/reconfigure/memcached-config.yaml +++ b/docs/examples/memcached/reconfigure/memcached-config.yaml @@ -6,6 +6,6 @@ metadata: spec: replicas: 1 version: "1.6.22" - configSecret: - name: mc-configuration + configuration: + secretName: mc-configuration deletionPolicy: WipeOut \ No newline at end of file diff --git a/docs/examples/mongodb/configuration/demo-1.yaml b/docs/examples/mongodb/configuration/demo-1.yaml index c19959b922..f349369d81 100644 --- a/docs/examples/mongodb/configuration/demo-1.yaml +++ b/docs/examples/mongodb/configuration/demo-1.yaml @@ -13,5 +13,5 @@ spec: resources: requests: storage: 1Gi - configSecret: - name: mg-configuration + configuration: + secretName: mg-configuration diff --git a/docs/examples/mongodb/reconfigure/mg-replicaset-config.yaml b/docs/examples/mongodb/reconfigure/mg-replicaset-config.yaml index 6ab51dd5f8..1a40ae0dfb 100644 --- a/docs/examples/mongodb/reconfigure/mg-replicaset-config.yaml +++ b/docs/examples/mongodb/reconfigure/mg-replicaset-config.yaml @@ -16,5 +16,5 @@ spec: resources: requests: storage: 1Gi - configSecret: - name: mg-custom-config + configuration: + secretName: mg-custom-config diff --git a/docs/examples/mongodb/reconfigure/mg-shard-config.yaml b/docs/examples/mongodb/reconfigure/mg-shard-config.yaml index 34786ca117..0f688d36d6 100644 --- a/docs/examples/mongodb/reconfigure/mg-shard-config.yaml +++ b/docs/examples/mongodb/reconfigure/mg-shard-config.yaml @@ -8,8 +8,8 @@ spec: shardTopology: configServer: replicas: 3 - configSecret: - name: mg-custom-config + configuration: + secretName: mg-custom-config storage: resources: requests: @@ -17,13 +17,13 @@ spec: storageClassName: standard mongos: replicas: 2 - configSecret: - name: mg-custom-config + configuration: + secretName: mg-custom-config shard: replicas: 3 shards: 2 - configSecret: - name: mg-custom-config + configuration: + secretName: mg-custom-config storage: resources: requests: diff --git a/docs/examples/mongodb/reconfigure/mg-standalone-config.yaml b/docs/examples/mongodb/reconfigure/mg-standalone-config.yaml index 89058b30dd..625c23b965 100644 --- a/docs/examples/mongodb/reconfigure/mg-standalone-config.yaml +++ b/docs/examples/mongodb/reconfigure/mg-standalone-config.yaml @@ -13,5 +13,5 @@ spec: resources: requests: storage: 1Gi - configSecret: - name: mg-custom-config + configuration: + secretName: mg-custom-config diff --git a/docs/examples/mongodb/reconfigure/mops-reconfigure-shard.yaml b/docs/examples/mongodb/reconfigure/mops-reconfigure-shard.yaml index 285d686820..d2c6b89327 100644 --- a/docs/examples/mongodb/reconfigure/mops-reconfigure-shard.yaml +++ b/docs/examples/mongodb/reconfigure/mops-reconfigure-shard.yaml @@ -16,4 +16,4 @@ spec: name: new-custom-config mongos: configSecret: - name: new-custom-config + name: new-custom-config \ No newline at end of file diff --git a/docs/examples/mongodb/reconfigure/mops-reconfigure-standalone.yaml b/docs/examples/mongodb/reconfigure/mops-reconfigure-standalone.yaml index 3e0435f07c..2fe3b4ce6d 100644 --- a/docs/examples/mongodb/reconfigure/mops-reconfigure-standalone.yaml +++ b/docs/examples/mongodb/reconfigure/mops-reconfigure-standalone.yaml @@ -10,4 +10,4 @@ spec: configuration: standalone: configSecret: - name: new-custom-config + name: new-custom-config \ No newline at end of file diff --git a/docs/examples/mssqlserver/configuration/mssql-custom-config.yaml b/docs/examples/mssqlserver/configuration/mssql-custom-config.yaml index 2cf006c072..d6e31c48c8 100644 --- a/docs/examples/mssqlserver/configuration/mssql-custom-config.yaml +++ b/docs/examples/mssqlserver/configuration/mssql-custom-config.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: "2022-cu12" - configSecret: - name: ms-custom-config + configuration: + secretName: ms-custom-config replicas: 1 tls: issuerRef: diff --git a/docs/examples/mssqlserver/reconfigure/ms-standalone.yaml b/docs/examples/mssqlserver/reconfigure/ms-standalone.yaml index a6760b97d0..6beb636b65 100644 --- a/docs/examples/mssqlserver/reconfigure/ms-standalone.yaml +++ b/docs/examples/mssqlserver/reconfigure/ms-standalone.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: "2022-cu12" - configSecret: - name: ms-custom-config + configuration: + secretName: ms-custom-config replicas: 1 tls: issuerRef: diff --git a/docs/examples/mssqlserver/reconfigure/mssqlserver-ag-cluster.yaml b/docs/examples/mssqlserver/reconfigure/mssqlserver-ag-cluster.yaml index 8407bb6fcf..264b27f9d1 100644 --- a/docs/examples/mssqlserver/reconfigure/mssqlserver-ag-cluster.yaml +++ b/docs/examples/mssqlserver/reconfigure/mssqlserver-ag-cluster.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: "2022-cu12" - configSecret: - name: ms-custom-config + configuration: + secretName: ms-custom-config replicas: 3 topology: mode: AvailabilityGroup diff --git a/docs/examples/mysql/configuration/mysql-custom.yaml b/docs/examples/mysql/configuration/mysql-custom.yaml index 1625662199..4995361a5f 100644 --- a/docs/examples/mysql/configuration/mysql-custom.yaml +++ b/docs/examples/mysql/configuration/mysql-custom.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: "9.1.0" - configSecret: - name: my-custom-config + configuration: + secretName: my-custom-config storage: storageClassName: "standard" accessModes: diff --git a/docs/examples/pgbouncer/reconfigure/pbops-reconfigure-apply.yaml b/docs/examples/pgbouncer/reconfigure/pbops-reconfigure-apply.yaml index 867d1a4393..8cf344bd6a 100644 --- a/docs/examples/pgbouncer/reconfigure/pbops-reconfigure-apply.yaml +++ b/docs/examples/pgbouncer/reconfigure/pbops-reconfigure-apply.yaml @@ -8,10 +8,9 @@ spec: databaseRef: name: pb-custom configuration: - pgbouncer: - applyConfig: - pgbouncer.ini: |- - [pgbouncer] - auth_type=scram-sha-256 + applyConfig: + pgbouncer.ini: |- + [pgbouncer] + auth_type=scram-sha-256 timeout: 5m apply: IfReady \ No newline at end of file diff --git a/docs/examples/pgbouncer/reconfigure/pbops-reconfigure.yaml b/docs/examples/pgbouncer/reconfigure/pbops-reconfigure.yaml index 705f385a0f..d7efdd0c4c 100644 --- a/docs/examples/pgbouncer/reconfigure/pbops-reconfigure.yaml +++ b/docs/examples/pgbouncer/reconfigure/pbops-reconfigure.yaml @@ -8,8 +8,7 @@ spec: databaseRef: name: pb-custom configuration: - pgbouncer: - configSecret: - name: new-custom-config + configSecret: + name: new-custom-config timeout: 5m apply: IfReady \ No newline at end of file diff --git a/docs/examples/pgpool/configuration/pgpool-config-file.yaml b/docs/examples/pgpool/configuration/pgpool-config-file.yaml index 946b09b890..284af8cde1 100644 --- a/docs/examples/pgpool/configuration/pgpool-config-file.yaml +++ b/docs/examples/pgpool/configuration/pgpool-config-file.yaml @@ -6,8 +6,8 @@ metadata: spec: version: "4.4.5" replicas: 1 - configSecret: - name: pp-configuration + configuration: + secretName: pp-configuration postgresRef: name: ha-postgres namespace: demo diff --git a/docs/examples/pgpool/configuration/pgpool-config-sidecar.yaml b/docs/examples/pgpool/configuration/pgpool-config-sidecar.yaml index cac5940a8a..6388921c88 100644 --- a/docs/examples/pgpool/configuration/pgpool-config-sidecar.yaml +++ b/docs/examples/pgpool/configuration/pgpool-config-sidecar.yaml @@ -26,14 +26,15 @@ spec: volumes: - name: data emptyDir: {} - initConfig: - pgpoolConfig: - log_destination : 'stderr' - logging_collector : on - log_directory : '/tmp/pgpool_log' - log_filename : 'pgpool-%Y-%m-%d_%H%M%S.log' - log_file_mode : 0777 - log_truncate_on_rotation : off - log_rotation_age : 1d - log_rotation_size : 10MB + configuration: + inline: + pgpool.conf: | + log_destination='stderr' + logging_collector=on + log_directory='/tmp/pgpool_log' + log_filename='pgpool-%Y-%m-%d_%H%M%S.log' + log_file_mode=0777 + log_truncate_on_rotation=off + log_rotation_age=1d + log_rotation_size=10MB deletionPolicy: WipeOut \ No newline at end of file diff --git a/docs/examples/pgpool/configuration/pgpool-init-config.yaml b/docs/examples/pgpool/configuration/pgpool-init-config.yaml index 43cf5e8094..d105344180 100644 --- a/docs/examples/pgpool/configuration/pgpool-init-config.yaml +++ b/docs/examples/pgpool/configuration/pgpool-init-config.yaml @@ -9,9 +9,10 @@ spec: postgresRef: name: ha-postgres namespace: demo - initConfig: - pgpoolConfig: - num_init_children : 6 - max_pool : 65 - child_life_time : 400 + configuration: + inline: + pgpool.conf: | + num_init_children=6 + max_pool=65 + child_life_time=400 deletionPolicy: WipeOut \ No newline at end of file diff --git a/docs/examples/pgpool/initialization/git-sync/git-sync-public.yaml b/docs/examples/pgpool/initialization/git-sync/git-sync-public.yaml index 3af7654926..761ebad6c3 100644 --- a/docs/examples/pgpool/initialization/git-sync/git-sync-public.yaml +++ b/docs/examples/pgpool/initialization/git-sync/git-sync-public.yaml @@ -9,11 +9,12 @@ spec: postgresRef: name: postgres namespace: demo - initConfig: - pgpoolConfig: - num_init_children : 6 - max_pool : 65 - child_life_time : 400 + configuration: + inline: + pgpool.conf: | + num_init_children=6 + max_pool=65 + child_life_time=400 deletionPolicy: WipeOut init: script: diff --git a/docs/examples/pgpool/quickstart/quick-postgres.yaml b/docs/examples/pgpool/quickstart/quick-postgres.yaml index 221e3485c6..bcf6ba82d2 100644 --- a/docs/examples/pgpool/quickstart/quick-postgres.yaml +++ b/docs/examples/pgpool/quickstart/quick-postgres.yaml @@ -6,8 +6,8 @@ metadata: spec: replicas: 3 version: "13.13" - configSecret: - name: pg-configuration + configuration: + secretName: pg-configuration storageType: Durable storage: storageClassName: "standard" diff --git a/docs/examples/pgpool/reconfiguration/pp-custom-config.yaml b/docs/examples/pgpool/reconfiguration/pp-custom-config.yaml index 683eed426c..72a0edc4c2 100644 --- a/docs/examples/pgpool/reconfiguration/pp-custom-config.yaml +++ b/docs/examples/pgpool/reconfiguration/pp-custom-config.yaml @@ -6,8 +6,8 @@ metadata: spec: version: "4.5.0" replicas: 1 - configSecret: - name: pp-custom-config + configuration: + secretName: pp-custom-config postgresRef: name: ha-postgres namespace: demo diff --git a/docs/examples/pgpool/scaling/pp-horizontal.yaml b/docs/examples/pgpool/scaling/pp-horizontal.yaml index 8b401b85fc..3f5d1cde38 100644 --- a/docs/examples/pgpool/scaling/pp-horizontal.yaml +++ b/docs/examples/pgpool/scaling/pp-horizontal.yaml @@ -9,7 +9,8 @@ spec: postgresRef: name: ha-postgres namespace: demo - initConfig: - pgpoolConfig: - max_pool : 60 + configuration: + inline: + pgpool.conf: | + max_pool=60 deletionPolicy: WipeOut \ No newline at end of file diff --git a/docs/examples/postgres/custom-config/pg-custom-config.yaml b/docs/examples/postgres/custom-config/pg-custom-config.yaml index 5c32cfb80f..636a68c53f 100644 --- a/docs/examples/postgres/custom-config/pg-custom-config.yaml +++ b/docs/examples/postgres/custom-config/pg-custom-config.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: "13.13" - configSecret: - name: pg-custom-config + configuration: + secretName: pg-custom-config storage: storageClassName: "standard" accessModes: diff --git a/docs/examples/postgres/pg-overview.yaml b/docs/examples/postgres/pg-overview.yaml index 2acedf4b97..f58cb8d720 100644 --- a/docs/examples/postgres/pg-overview.yaml +++ b/docs/examples/postgres/pg-overview.yaml @@ -30,8 +30,8 @@ spec: labels: app: kubedb interval: 10s - configSecret: - name: pg-custom-config + configuration: + secretName: pg-custom-config podTemplate: metadata: annotations: diff --git a/docs/examples/postgres/reconfigure/ha-postgres.yaml b/docs/examples/postgres/reconfigure/ha-postgres.yaml index 3fc78acc80..3837510830 100644 --- a/docs/examples/postgres/reconfigure/ha-postgres.yaml +++ b/docs/examples/postgres/reconfigure/ha-postgres.yaml @@ -6,8 +6,8 @@ metadata: spec: version: "16.1" replicas: 3 - configSecret: - name: pg-configuration + configuration: + secretName: pg-configuration storageType: Durable storage: storageClassName: "standard" diff --git a/docs/examples/postgres/reconfigure/reconfigure-using-secret.yaml b/docs/examples/postgres/reconfigure/reconfigure-using-secret.yaml index 3567434bb8..344064178d 100644 --- a/docs/examples/postgres/reconfigure/reconfigure-using-secret.yaml +++ b/docs/examples/postgres/reconfigure/reconfigure-using-secret.yaml @@ -7,6 +7,7 @@ spec: type: Reconfigure databaseRef: name: ha-postgres - configuration: + configuration: configSecret: name: new-pg-configuration + restart: auto diff --git a/docs/examples/proxysql/custom-proxysql.yaml b/docs/examples/proxysql/custom-proxysql.yaml index 8baa877e83..b18812422c 100644 --- a/docs/examples/proxysql/custom-proxysql.yaml +++ b/docs/examples/proxysql/custom-proxysql.yaml @@ -8,5 +8,6 @@ spec: replicas: 1 backend: name: my-group - configSecret: - name: my-custom-config + configuration: + init: + secretName: my-custom-config diff --git a/docs/examples/rabbitmq/cluster/rabbit-custom-config.yaml b/docs/examples/rabbitmq/cluster/rabbit-custom-config.yaml index be2241531d..ee459ad216 100644 --- a/docs/examples/rabbitmq/cluster/rabbit-custom-config.yaml +++ b/docs/examples/rabbitmq/cluster/rabbit-custom-config.yaml @@ -13,5 +13,5 @@ spec: resources: requests: storage: 1Gi - configSecret: - name: rabbit-custom-config \ No newline at end of file + configuration: + secretName: rabbit-custom-config diff --git a/docs/examples/rabbitmq/opsrequests/rabbit-reconfigure-with-secret.yaml b/docs/examples/rabbitmq/opsrequests/rabbit-reconfigure-with-secret.yaml index ee47631df1..61156098c0 100644 --- a/docs/examples/rabbitmq/opsrequests/rabbit-reconfigure-with-secret.yaml +++ b/docs/examples/rabbitmq/opsrequests/rabbit-reconfigure-with-secret.yaml @@ -10,5 +10,6 @@ spec: configuration: configSecret: name: new-custom-config + restart: auto timeout: 5m apply: IfReady \ No newline at end of file diff --git a/docs/examples/redis/custom-config/redis-custom.yaml b/docs/examples/redis/custom-config/redis-custom.yaml index 9fa206dcbb..1625b56fd8 100644 --- a/docs/examples/redis/custom-config/redis-custom.yaml +++ b/docs/examples/redis/custom-config/redis-custom.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 6.2.14 - configSecret: - name: rd-configuration + configuration: + secretName: rd-configuration storage: storageClassName: "standard" accessModes: diff --git a/docs/examples/redis/custom-config/valkey-custom.yaml b/docs/examples/redis/custom-config/valkey-custom.yaml index 3cd261191d..224dcbff5f 100644 --- a/docs/examples/redis/custom-config/valkey-custom.yaml +++ b/docs/examples/redis/custom-config/valkey-custom.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: valkey-8.1.1 - configSecret: - name: rd-configuration + configuration: + secretName: rd-configuration storage: storageClassName: "standard" accessModes: diff --git a/docs/examples/redis/reconfigure/rdops-reconfigure.yaml b/docs/examples/redis/reconfigure/rdops-reconfigure.yaml index 6dbc557238..e90a06eab5 100644 --- a/docs/examples/redis/reconfigure/rdops-reconfigure.yaml +++ b/docs/examples/redis/reconfigure/rdops-reconfigure.yaml @@ -10,3 +10,4 @@ spec: configuration: configSecret: name: new-custom-config + restart: auto diff --git a/docs/examples/redis/reconfigure/sample-redis-config.yaml b/docs/examples/redis/reconfigure/sample-redis-config.yaml index bb12ddfa3a..d63e7f84e3 100644 --- a/docs/examples/redis/reconfigure/sample-redis-config.yaml +++ b/docs/examples/redis/reconfigure/sample-redis-config.yaml @@ -13,5 +13,5 @@ spec: resources: requests: storage: 1Gi - configSecret: - name: rd-custom-config + configuration: + secretName: rd-custom-config diff --git a/docs/examples/solr/configuration/solr-combined.yaml b/docs/examples/solr/configuration/solr-combined.yaml index f73db241f6..03c46f37fc 100644 --- a/docs/examples/solr/configuration/solr-combined.yaml +++ b/docs/examples/solr/configuration/solr-combined.yaml @@ -4,8 +4,8 @@ metadata: name: solr namespace: demo spec: - configSecret: - name: sl-combined-custom-config + configuration: + secretName: sl-combined-custom-config version: 9.6.1 replicas: 2 zookeeperRef: diff --git a/docs/examples/solr/reconfigure/solr-combined.yaml b/docs/examples/solr/reconfigure/solr-combined.yaml index f73db241f6..03c46f37fc 100644 --- a/docs/examples/solr/reconfigure/solr-combined.yaml +++ b/docs/examples/solr/reconfigure/solr-combined.yaml @@ -4,8 +4,8 @@ metadata: name: solr namespace: demo spec: - configSecret: - name: sl-combined-custom-config + configuration: + secretName: sl-combined-custom-config version: 9.6.1 replicas: 2 zookeeperRef: diff --git a/docs/examples/zookeeper/reconfiguration/sample-zk-configuration.yaml b/docs/examples/zookeeper/reconfiguration/sample-zk-configuration.yaml index 0f929f28ff..723ebc4d41 100644 --- a/docs/examples/zookeeper/reconfiguration/sample-zk-configuration.yaml +++ b/docs/examples/zookeeper/reconfiguration/sample-zk-configuration.yaml @@ -7,8 +7,8 @@ spec: version: "3.8.3" adminServerPort: 8080 replicas: 3 - configSecret: - name: zk-configuration + configuration: + secretName: zk-configuration storage: resources: requests: diff --git a/docs/examples/zookeeper/reconfiguration/zkops-reconfiguration.yaml b/docs/examples/zookeeper/reconfiguration/zkops-reconfiguration.yaml index 844046ce08..76a8ae6664 100644 --- a/docs/examples/zookeeper/reconfiguration/zkops-reconfiguration.yaml +++ b/docs/examples/zookeeper/reconfiguration/zkops-reconfiguration.yaml @@ -9,4 +9,5 @@ spec: name: zk-quickstart configuration: configSecret: - name: zk-new-configuration \ No newline at end of file + name: zk-new-configuration + restart: auto diff --git a/docs/guides/cassandra/backup/kubestash/logical/examples/cas-sample.yaml b/docs/guides/cassandra/backup/kubestash/logical/examples/cas-sample.yaml index 51f50483b1..8f3094adf3 100644 --- a/docs/guides/cassandra/backup/kubestash/logical/examples/cas-sample.yaml +++ b/docs/guides/cassandra/backup/kubestash/logical/examples/cas-sample.yaml @@ -5,7 +5,6 @@ metadata: namespace: demo spec: version: 5.0.3 - configuration: topology: rack: - name: r0 diff --git a/docs/guides/cassandra/backup/kubestash/logical/index.md b/docs/guides/cassandra/backup/kubestash/logical/index.md index cfbe11dbc5..45f22a53db 100644 --- a/docs/guides/cassandra/backup/kubestash/logical/index.md +++ b/docs/guides/cassandra/backup/kubestash/logical/index.md @@ -71,7 +71,6 @@ metadata: namespace: demo spec: version: 5.0.3 - configuration: topology: rack: - name: r0 diff --git a/docs/guides/cassandra/concepts/cassandra.md b/docs/guides/cassandra/concepts/cassandra.md index 0c8d87a3f8..2046fa413c 100644 --- a/docs/guides/cassandra/concepts/cassandra.md +++ b/docs/guides/cassandra/concepts/cassandra.md @@ -32,8 +32,8 @@ spec: authSecret: kind: Secret name: cassandra-admin-cred - configSecret: - name: cassandra-custom-config + configuration: + secretName: cassandra-custom-config healthChecker: failureThreshold: 3 periodSeconds: 20 @@ -148,9 +148,10 @@ type: Opaque Secrets provided by users are not managed by KubeDB, and therefore, won't be modified or garbage collected by the KubeDB operator (version 0.13.0 and higher). -### spec.configSecret - -`spec.configSecret` is an optional field that points to a Secret used to hold custom Cassandra configuration. If not set, KubeDB operator will use default configuration for Cassandra. +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for Cassandra cluster. It has the following fields: +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for Cassandra cluster. +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the Cassandra object. ### spec.topology diff --git a/docs/guides/cassandra/concepts/cassandraopsrequest.md b/docs/guides/cassandra/concepts/cassandraopsrequest.md index e95297ab0b..716bc0971d 100644 --- a/docs/guides/cassandra/concepts/cassandraopsrequest.md +++ b/docs/guides/cassandra/concepts/cassandraopsrequest.md @@ -162,7 +162,31 @@ status: observedGeneration: 1 phase: Successful ``` - +```yaml +apiVersion: ops.kubedb.com/v1alpha1 +kind: CassandraOpsRequest +metadata: + name: casops-reconfiugre + namespace: demo +spec: + type: Reconfigure + databaseRef: + name: cassandra-prod + configuration: + configSecret: + name: new-configsecret + restart: "true" +status: + conditions: + - lastTransitionTime: "2025-07-25T18:22:38Z" + message: Successfully completed the modification process + observedGeneration: 1 + reason: Successful + status: "True" + type: Successful + observedGeneration: 1 + phase: Successful +``` Sample `CassandraOpsRequest` Objects for Volume Expansion of different database components: ```yaml @@ -346,8 +370,25 @@ If you want to reconfigure your Running Cassandra cluster or different component authenticator: PasswordAuthenticator ``` -- `removeCustomConfig` is a boolean field. Specify this field to true if you want to remove all the custom configuration from the deployed cassandra cluster. +- `spec.configuration.restart` controls whether the database pods will be restarted after applying the new configuration. Supported values: + - `auto` (default): restart only if required (decided by the KubeDB operator) + - `false`: don't restart + - `true`: always restart + +```yaml +spec: + type: Reconfigure + databaseRef: + name: cassandra-prod + configuration: + configSecret: + name: new-configsecret + restart: auto +``` + +- `removeCustomConfig` is a boolean field. Specify this field to true if you want to remove all the custom configuration from the deployed cassandra cluster. +- ### spec.tls If you want to reconfigure the TLS configuration of your Cassandra i.e. add TLS, remove TLS, update issuer/cluster issuer or Certificates and rotate the certificates, you have to specify `spec.tls` section. This field consists of the following sub-field: diff --git a/docs/guides/cassandra/configuration/using-config-file.md b/docs/guides/cassandra/configuration/using-config-file.md index 09ed2a0caf..55d6e4d7a7 100644 --- a/docs/guides/cassandra/configuration/using-config-file.md +++ b/docs/guides/cassandra/configuration/using-config-file.md @@ -33,11 +33,12 @@ KubeDB supports providing custom configuration for Cassandra. This tutorial will ## Overview -Cassandra allows configuring via configuration file. The default configuration file for Cassandra deployed by `KubeDB` can be found in `/etc/cassandra/cassandra.yaml`. When `spec.configSecret` is set to cassandra, KubeDB operator will get the secret and after that it will validate the values of the secret and then will keep the validated customizable configurations from the user and merge it with the remaining default config. After all that this secret will be mounted to cassandra for use it as the configuration file. +When `spec.configuration.secretName` is set to Cassandra, KubeDB operator will get the secret and after that it will validate the values of the secret and then will keep the validated customizable +configurations from the user. After all that this secret will be mounted to cassandra for use it as the configuration file. > To learn available configuration option of Cassandra see [Configuration Options](https://cassandra.apache.org/doc/4.0/cassandra/getting_started/configuring.html). -At first, you have to create a secret with your configuration file contents as the value of this key `cassandra.yaml`. Then, you have to specify the name of this secret in `spec.configSecret.name` section while creating cassandra CRO. +At first, you have to create a secret with your configuration file contents as the value of this key `cassandra.yaml`. Then, you have to specify the name of this secret in `spec.configuration.secretName` section while creating cassandra CRO. ## Custom Configuration @@ -77,7 +78,7 @@ read_request_timeout: 6000ms write_request_timeout: 2500ms ``` -Now, create cassandra crd specifying `spec.configSecret` field. +Now, create cassandra crd specifying `spec.configuration` field. ```yaml apiVersion: kubedb.com/v1alpha2 @@ -87,8 +88,8 @@ metadata: namespace: demo spec: version: 5.0.3 - configSecret: - name: cas-configuration + configuration: + secretName: cas-configuration topology: rack: - name: r0 diff --git a/docs/guides/cassandra/monitoring/overview.md b/docs/guides/cassandra/monitoring/overview.md index dc33acbb07..1dee629674 100644 --- a/docs/guides/cassandra/monitoring/overview.md +++ b/docs/guides/cassandra/monitoring/overview.md @@ -54,7 +54,6 @@ metadata: namespace: demo spec: version: 5.0.3 - configuration: topology: rack: - name: r0 diff --git a/docs/guides/cassandra/monitoring/using-builtin-prometheus.md b/docs/guides/cassandra/monitoring/using-builtin-prometheus.md index f3a9eb470f..81f3e5a223 100644 --- a/docs/guides/cassandra/monitoring/using-builtin-prometheus.md +++ b/docs/guides/cassandra/monitoring/using-builtin-prometheus.md @@ -50,7 +50,6 @@ metadata: namespace: demo spec: version: 5.0.3 - configuration: topology: rack: - name: r0 diff --git a/docs/guides/cassandra/monitoring/using-prometheus-operator.md b/docs/guides/cassandra/monitoring/using-prometheus-operator.md index 5a629a752b..f0a2c18c68 100644 --- a/docs/guides/cassandra/monitoring/using-prometheus-operator.md +++ b/docs/guides/cassandra/monitoring/using-prometheus-operator.md @@ -196,7 +196,6 @@ metadata: namespace: demo spec: version: 5.0.3 - configuration: topology: rack: - name: r0 diff --git a/docs/guides/cassandra/reconfigure/cassandra-topology.md b/docs/guides/cassandra/reconfigure/cassandra-topology.md index 585e911b77..a68c5dded6 100644 --- a/docs/guides/cassandra/reconfigure/cassandra-topology.md +++ b/docs/guides/cassandra/reconfigure/cassandra-topology.md @@ -75,7 +75,7 @@ secret/cas-topology-custom-config created ``` -In this section, we are going to create a Cassandra object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `Cassandra` CR that we are going to create, +In this section, we are going to create a Cassandra object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `Cassandra` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1alpha2 @@ -85,8 +85,8 @@ metadata: namespace: demo spec: version: 5.0.3 - configSecret: - name: cas-topology-custom-config + configuration: + secretName: cas-topology-custom-config topology: rack: - name: r0 @@ -205,7 +205,7 @@ Here, - `spec.databaseRef.name` specifies that we are reconfiguring `cassandra-prod` database. - `spec.type` specifies that we are performing `Reconfigure` on our database. -- `spec.configSecret.name` specifies the name of the new secret. +- `spec.configuration.secretName` specifies the name of the new secret. Let's create the `CassandraOpsRequest` CR we have shown above, diff --git a/docs/guides/cassandra/restart/restart.md b/docs/guides/cassandra/restart/restart.md index 5a870c3f73..331b00d286 100644 --- a/docs/guides/cassandra/restart/restart.md +++ b/docs/guides/cassandra/restart/restart.md @@ -43,8 +43,8 @@ metadata: namespace: demo spec: version: 5.0.3 - configSecret: - name: cas-configuration + configuration: + secretName: cas-configuration topology: rack: - name: r0 diff --git a/docs/guides/clickhouse/concepts/clickhouse.md b/docs/guides/clickhouse/concepts/clickhouse.md index ad0012b264..d80bb6ce19 100644 --- a/docs/guides/clickhouse/concepts/clickhouse.md +++ b/docs/guides/clickhouse/concepts/clickhouse.md @@ -33,8 +33,8 @@ spec: authSecret: kind: Secret name: clickhouse-auth - configSecret: - name: ch-configuration + configuration: + secretName: ch-configuration clusterTopology: clickHouseKeeper: externallyManaged: false @@ -152,10 +152,10 @@ type: Opaque Secrets provided by users are not managed by KubeDB, and therefore, won't be modified or garbage collected by the KubeDB operator (version 0.13.0 and higher). -### spec.configSecret - -`spec.configSecret` is an optional field that points to a Secret used to hold custom ClickHouse configuration. If not set, KubeDB operator will use default configuration for ClickHouse. - +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for clickhouse cluster. It has the following fields: +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for clickhouse cluster. +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the clickhouse object. ### spec.clusterTopology `spec.clusterTopology` represents the topology configuration for ClickHouse cluster. diff --git a/docs/guides/clickhouse/concepts/clickhouseopsrequest.md b/docs/guides/clickhouse/concepts/clickhouseopsrequest.md index 44f720a732..95207c01fe 100644 --- a/docs/guides/clickhouse/concepts/clickhouseopsrequest.md +++ b/docs/guides/clickhouse/concepts/clickhouseopsrequest.md @@ -156,6 +156,7 @@ spec: configuration: configSecret: name: ch-custom-config + restart: "true" databaseRef: name: clickhouse-prod type: Reconfigure @@ -363,6 +364,10 @@ If you want to reconfigure your Running ClickHouse cluster or different componen - `removeCustomConfig` is a boolean field. Specify this field to true if you want to remove all the custom configuration from the deployed clickhouse cluster. +- `restart` significantly reduces unnecessary downtime. + - `auto` (default): restart only if required (determined by ops manager operator) + - `false`: no restart + - `true`: always restart ### spec.tls If you want to reconfigure the TLS configuration of your ClickHouse i.e. add TLS, remove TLS, update issuer/cluster issuer or Certificates and rotate the certificates, you have to specify `spec.tls` section. This field consists of the following sub-field: diff --git a/docs/guides/clickhouse/configuration/using-config-file.md b/docs/guides/clickhouse/configuration/using-config-file.md index 539720f0c6..06197e9c72 100644 --- a/docs/guides/clickhouse/configuration/using-config-file.md +++ b/docs/guides/clickhouse/configuration/using-config-file.md @@ -33,11 +33,12 @@ KubeDB supports providing custom configuration for ClickHouse. This tutorial wil ## Overview -ClickHouse allows configuring via configuration file. The default configuration file for ClickHouse deployed by `KubeDB` can be found in `/etc/clickhouse-server/config.xml`. When `spec.configSecret` is set to clickhouse, KubeDB operator will get the secret and after that it will validate the values of the secret and then will keep the validated customizable configurations from the user and merge it with the remaining default config. After all that this secret will be mounted to clickhouse for use it as the configuration file. +ClickHouse allows configuring via configuration file. The default configuration file for ClickHouse deployed by `KubeDB` can be found in `/etc/clickhouse-server/config.xml`. When `spec.configuration` is set to clickhouse, +KubeDB operator will get the secret and after that it will validate the values of the secret and then will keep the validated customizable configurations from the user. After all that this secret will be mounted to clickhouse for use it as the configuration file. > To learn available configuration option of ClickHouse see [Configuration Options](https://clickhouse.com/docs/operations/configuration-files). -At first, you have to create a secret with your configuration file contents as the value of this key `clickhouse.yaml`. Then, you have to specify the name of this secret in `spec.configSecret.name` section while creating clickhouse CRO. +At first, you have to create a secret with your configuration file contents as the value of this key `clickhouse.yaml`. Then, you have to specify the name of this secret in `spec.configuration.secretName` section while creating clickhouse CRO. ## Custom Configuration @@ -79,7 +80,7 @@ profiles: max_query_size: 200000 ``` -Now, create clickhouse crd specifying `spec.configSecret` field. +Now, create clickhouse crd specifying `spec.configuration` field. ```yaml apiVersion: kubedb.com/v1alpha2 @@ -89,8 +90,8 @@ metadata: namespace: demo spec: version: 24.4.1 - configSecret: - name: clickhouse-configuration + configuration: + secretName: clickhouse-configuration replicas: 1 storage: accessModes: diff --git a/docs/guides/clickhouse/reconfigure/reconfigure.md b/docs/guides/clickhouse/reconfigure/reconfigure.md index 59616e0222..cc681defc2 100644 --- a/docs/guides/clickhouse/reconfigure/reconfigure.md +++ b/docs/guides/clickhouse/reconfigure/reconfigure.md @@ -78,7 +78,7 @@ secret/ch-custom-config created ``` -In this section, we are going to create a ClickHouse object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `ClickHouse` CR that we are going to create, +In this section, we are going to create a ClickHouse object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `ClickHouse` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1alpha2 @@ -88,8 +88,8 @@ metadata: namespace: demo spec: version: 24.4.1 - configSecret: - name: ch-custom-config + configuration: + secretName: ch-custom-config clusterTopology: clickHouseKeeper: externallyManaged: false @@ -232,7 +232,7 @@ Here, - `spec.databaseRef.name` specifies that we are reconfiguring `clickhouse-prod` database. - `spec.type` specifies that we are performing `Reconfigure` on our database. -- `spec.configSecret.name` specifies the name of the new secret. +- `spec.configuration.configSecret.name` specifies the name of the new secret. Let's create the `ClickHouseOpsRequest` CR we have shown above, diff --git a/docs/guides/druid/backup/auto-backup/examples/sample-druid.yaml b/docs/guides/druid/backup/auto-backup/examples/sample-druid.yaml index 90090e9907..4d6f140fcc 100644 --- a/docs/guides/druid/backup/auto-backup/examples/sample-druid.yaml +++ b/docs/guides/druid/backup/auto-backup/examples/sample-druid.yaml @@ -11,7 +11,7 @@ spec: deepStorage: type: s3 configSecret: - name: deep-storage-config + name: configsecret-combined topology: routers: replicas: 1 diff --git a/docs/guides/druid/clustering/guide/index.md b/docs/guides/druid/clustering/guide/index.md index de26f199df..33b7c6e21f 100644 --- a/docs/guides/druid/clustering/guide/index.md +++ b/docs/guides/druid/clustering/guide/index.md @@ -148,7 +148,7 @@ Metadata: .: f:deepStorage: .: - f:configSecret: + f:configuration: f:type: f:deletionPolicy: f:healthChecker: @@ -520,7 +520,7 @@ Metadata: .: f:deepStorage: .: - f:configSecret: + f:configuration: f:type: f:deletionPolicy: f:healthChecker: diff --git a/docs/guides/druid/concepts/druid.md b/docs/guides/druid/concepts/druid.md index d8728b5e5a..48d415b245 100644 --- a/docs/guides/druid/concepts/druid.md +++ b/docs/guides/druid/concepts/druid.md @@ -45,8 +45,8 @@ spec: authSecret: kind: Secret name: druid-admin-cred - configSecret: - name: druid-custom-config + configuration: + secretName: druid-custom-config enableSSL: true healthChecker: failureThreshold: 3 @@ -228,10 +228,10 @@ type: Opaque Secrets provided by users are not managed by KubeDB, and therefore, won't be modified or garbage collected by the KubeDB operator (version 0.13.0 and higher). -### spec.configSecret - -`spec.configSecret` is an optional field that points to a Secret used to hold custom Druid configuration. If not set, KubeDB operator will use default configuration for Druid. - +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for Druid cluster. It has the following fields: +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for Druid cluster. +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the Druid object. ### spec.topology `spec.topology` represents the topology configuration for Druid cluster in KRaft mode. diff --git a/docs/guides/druid/concepts/druidopsrequest.md b/docs/guides/druid/concepts/druidopsrequest.md index 6a846814f2..c464528f6b 100644 --- a/docs/guides/druid/concepts/druidopsrequest.md +++ b/docs/guides/druid/concepts/druidopsrequest.md @@ -161,6 +161,7 @@ spec: configuration: configSecret: name: new-configsecret + restart: "true" status: conditions: - lastTransitionTime: "2024-07-25T18:22:38Z" @@ -173,6 +174,7 @@ status: phase: Successful ``` + **Sample `DruidOpsRequest` Objects for Volume Expansion of different database components:** ```yaml @@ -387,6 +389,13 @@ middleManagers.properties: | - `removeCustomConfig` is a boolean field. Specify this field to true if you want to remove all the custom configuration from the deployed druid cluster. +- `restart` significantly reduces unnecessary downtime. + - `auto` (default): restart only if required (determined by ops manager operator) + - `false`: no restart + - `true`: always restart + + + ### spec.tls If you want to reconfigure the TLS configuration of your Druid i.e. add TLS, remove TLS, update issuer/cluster issuer or Certificates and rotate the certificates, you have to specify `spec.tls` section. This field consists of the following sub-field: @@ -420,54 +429,4 @@ Use IfReady, if you want to process the opsRequest only when the database is Rea | Denied | KubeDB has denied the operation requested in the DruidOpsRequest | | Skipped | KubeDB has skipped the operation requested in the DruidOpsRequest | -Important: Ops-manager Operator can skip an opsRequest, only if its execution has not been started yet & there is a newer opsRequest applied in the cluster. `spec.type` has to be same as the skipped one, in this case. - -### status.observedGeneration - -`status.observedGeneration` shows the most recent generation observed by the `DruidOpsRequest` controller. - -### status.conditions - -`status.conditions` is an array that specifies the conditions of different steps of `DruidOpsRequest` processing. Each condition entry has the following fields: - -- `types` specifies the type of the condition. DruidOpsRequest has the following types of conditions: - -| Type | Meaning | -|-------------------------------|---------------------------------------------------------------------------| -| `Progressing` | Specifies that the operation is now in the progressing state | -| `Successful` | Specifies such a state that the operation on the database was successful. | -| `HaltDatabase` | Specifies such a state that the database is halted by the operator | -| `ResumeDatabase` | Specifies such a state that the database is resumed by the operator | -| `Failed` | Specifies such a state that the operation on the database failed. | -| `StartingBalancer` | Specifies such a state that the balancer has successfully started | -| `StoppingBalancer` | Specifies such a state that the balancer has successfully stopped | -| `UpdateShardImage` | Specifies such a state that the Shard Images has been updated | -| `UpdateReplicaSetImage` | Specifies such a state that the Replicaset Image has been updated | -| `UpdateConfigServerImage` | Specifies such a state that the ConfigServer Image has been updated | -| `UpdateMongosImage` | Specifies such a state that the Mongos Image has been updated | -| `UpdatePetSetResources` | Specifies such a state that the Petset resources has been updated | -| `UpdateShardResources` | Specifies such a state that the Shard resources has been updated | -| `UpdateReplicaSetResources` | Specifies such a state that the Replicaset resources has been updated | -| `UpdateConfigServerResources` | Specifies such a state that the ConfigServer resources has been updated | -| `UpdateMongosResources` | Specifies such a state that the Mongos resources has been updated | -| `ScaleDownReplicaSet` | Specifies such a state that the scale down operation of replicaset | -| `ScaleUpReplicaSet` | Specifies such a state that the scale up operation of replicaset | -| `ScaleUpShardReplicas` | Specifies such a state that the scale up operation of shard replicas | -| `ScaleDownShardReplicas` | Specifies such a state that the scale down operation of shard replicas | -| `ScaleDownConfigServer` | Specifies such a state that the scale down operation of config server | -| `ScaleUpConfigServer` | Specifies such a state that the scale up operation of config server | -| `ScaleMongos` | Specifies such a state that the scale down operation of replicaset | -| `VolumeExpansion` | Specifies such a state that the volume expansion operaton of the database | -| `ReconfigureReplicaset` | Specifies such a state that the reconfiguration of replicaset nodes | -| `ReconfigureMongos` | Specifies such a state that the reconfiguration of mongos nodes | -| `ReconfigureShard` | Specifies such a state that the reconfiguration of shard nodes | -| `ReconfigureConfigServer` | Specifies such a state that the reconfiguration of config server nodes | - -- The `status` field is a string, with possible values `True`, `False`, and `Unknown`. - - `status` will be `True` if the current transition succeeded. - - `status` will be `False` if the current transition failed. - - `status` will be `Unknown` if the current transition was denied. -- The `message` field is a human-readable message indicating details about the condition. -- The `reason` field is a unique, one-word, CamelCase reason for the condition's last transition. -- The `lastTransitionTime` field provides a timestamp for when the operation last transitioned from one state to another. -- The `observedGeneration` shows the most recent condition transition generation observed by the controller. +Important: Ops-manager Operator can skip an opsRequest, only if an diff --git a/docs/guides/druid/configuration/config-file/index.md b/docs/guides/druid/configuration/config-file/index.md index c046161185..c7365dc5e8 100644 --- a/docs/guides/druid/configuration/config-file/index.md +++ b/docs/guides/druid/configuration/config-file/index.md @@ -12,7 +12,6 @@ section_menu_id: guides > New to KubeDB? Please start [here](/docs/README.md). -> New to KubeDB? Please start [here](/docs/README.md). # Configure Druid Cluster @@ -155,8 +154,8 @@ metadata: namespace: demo spec: version: 28.0.1 - configSecret: - name: config-secret + configuration: + secretName: config-secret deepStorage: type: s3 configSecret: @@ -281,4 +280,3 @@ $ kubectl delete namespace demo [//]: # (- Monitor your Druid database with KubeDB using [out-of-the-box Prometheus operator](/docs/guides/druid/monitoring/using-prometheus-operator.md).) - Want to hack on KubeDB? Check our [contribution guidelines](/docs/CONTRIBUTING.md). - diff --git a/docs/guides/druid/configuration/config-file/yamls/druid-with-config.yaml b/docs/guides/druid/configuration/config-file/yamls/druid-with-config.yaml index b2225f22b1..d4573cf773 100644 --- a/docs/guides/druid/configuration/config-file/yamls/druid-with-config.yaml +++ b/docs/guides/druid/configuration/config-file/yamls/druid-with-config.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 28.0.1 - configSecret: - name: config-secret + configuration: + secretName: config-secret deepStorage: type: s3 configSecret: diff --git a/docs/guides/druid/configuration/podtemplating/index.md b/docs/guides/druid/configuration/podtemplating/index.md index 6b4a64c0de..a00bd0b972 100644 --- a/docs/guides/druid/configuration/podtemplating/index.md +++ b/docs/guides/druid/configuration/podtemplating/index.md @@ -121,8 +121,8 @@ metadata: namespace: demo spec: version: 28.0.1 - configSecret: - name: config-secret + configuration: + secretName: config-secret deepStorage: type: s3 configSecret: diff --git a/docs/guides/druid/configuration/podtemplating/yamls/druid-cluster.yaml b/docs/guides/druid/configuration/podtemplating/yamls/druid-cluster.yaml index 2004002096..3a84fb47d1 100644 --- a/docs/guides/druid/configuration/podtemplating/yamls/druid-cluster.yaml +++ b/docs/guides/druid/configuration/podtemplating/yamls/druid-cluster.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: 28.0.1 - configSecret: - name: config-secret + configuration: + secretName: config-secret deepStorage: type: s3 configSecret: diff --git a/docs/guides/druid/failover/guide.md b/docs/guides/druid/failover/guide.md index 030e1d676b..b2c674e5f8 100644 --- a/docs/guides/druid/failover/guide.md +++ b/docs/guides/druid/failover/guide.md @@ -543,4 +543,3 @@ $ kubectl delete ns demo - Monitor your Druid cluster with [Prometheus integration](/docs/guides/druid/monitoring/using-builtin-prometheus.md). - Explore Druid [configuration options](/docs/guides/druid/configuration/_index.md). - Contribute to KubeDB: [contribution guidelines](/docs/CONTRIBUTING.md). - diff --git a/docs/guides/druid/monitoring/yamls/druid-with-monitoring.yaml b/docs/guides/druid/monitoring/yamls/druid-with-monitoring.yaml index aa91054f8f..0b8b074410 100644 --- a/docs/guides/druid/monitoring/yamls/druid-with-monitoring.yaml +++ b/docs/guides/druid/monitoring/yamls/druid-with-monitoring.yaml @@ -20,4 +20,3 @@ spec: release: prometheus interval: 10s deletionPolicy: WipeOut - diff --git a/docs/guides/druid/quickstart/guide/index.md b/docs/guides/druid/quickstart/guide/index.md index 48fb3a8d7a..6d577ec7cd 100644 --- a/docs/guides/druid/quickstart/guide/index.md +++ b/docs/guides/druid/quickstart/guide/index.md @@ -650,7 +650,7 @@ Now, the Druid cluster is accessible at `localhost:8888`. Let's check the [Servi $ curl "http://localhost:8888/status/health" true ``` -From the retrieved health information above, we can see that our Druid cluster’s status is `true`, indicating that the service can receive API calls and is healthy. In the same way it possible to check the health of other druid nodes by port-forwarding the appropriate services. +From the retrieved health information above, we can see that our Druid cluster’s status is `true`, indicating that the service can receive API calls and is healthy. In the same way it is possible to check the health of other druid nodes by port-forwarding the appropriate services. ### Access the web console diff --git a/docs/guides/druid/reconfigure-tls/guide.md b/docs/guides/druid/reconfigure-tls/guide.md index 5cd0080298..6baa86542e 100644 --- a/docs/guides/druid/reconfigure-tls/guide.md +++ b/docs/guides/druid/reconfigure-tls/guide.md @@ -492,11 +492,10 @@ Events: Normal UpdatePetSets 85s KubeDB Ops-manager Operator successfully reconciled the Druid with tls configuration Warning get pod; ConditionStatus:True; PodName:druid-cluster-historicals-0 79s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-historicals-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-historicals-0 79s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-historicals-0 - Warning check pod running; ConditionStatus:False; PodName:druid-cluster-historicals-0 74s KubeDB Ops-manager Operator check pod running; ConditionStatus:False; PodName:druid-cluster-historicals-0 - Warning check pod running; ConditionStatus:True; PodName:druid-cluster-historicals-0 69s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-historicals-0 + Warning check pod running; ConditionStatus:True; PodName:druid-cluster-historicals-0 74s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-historicals-0 Warning get pod; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 64s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 64s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 - Warning check pod running; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 59s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 + Warning check pod running: ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 59s KubeDB Ops-manager Operator check pod running: ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 Warning get pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 54s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 54s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 Warning check pod running; ConditionStatus:True; PodName:druid-cluster-brokers-0 49s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-brokers-0 @@ -877,10 +876,10 @@ Events: Normal CertificateSynced 93s KubeDB Ops-manager Operator Successfully synced all certificates Warning get certificate; ConditionStatus:True 88s KubeDB Ops-manager Operator get certificate; ConditionStatus:True Warning check ready condition; ConditionStatus:True 88s KubeDB Ops-manager Operator check ready condition; ConditionStatus:True - Warning issuing condition; ConditionStatus:True 88s KubeDB Ops-manager Operator issuing condition; ConditionStatus:True + Warning issuing condition: ConditionStatus:True 88s KubeDB Ops-manager Operator issuing condition: ConditionStatus:True Warning get certificate; ConditionStatus:True 88s KubeDB Ops-manager Operator get certificate; ConditionStatus:True Warning check ready condition; ConditionStatus:True 88s KubeDB Ops-manager Operator check ready condition; ConditionStatus:True - Warning issuing condition; ConditionStatus:True 88s KubeDB Ops-manager Operator issuing condition; ConditionStatus:True + Warning issuing condition; ConditionStatus:True 88s KubeDB Ops-manager Operator issuing condition: ConditionStatus:True Normal CertificateSynced 87s KubeDB Ops-manager Operator Successfully synced all certificates Normal UpdatePetSets 82s KubeDB Ops-manager Operator successfully reconciled the Druid with tls configuration Warning get pod; ConditionStatus:True; PodName:druid-cluster-historicals-0 77s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-historicals-0 @@ -1169,7 +1168,7 @@ Status: Status: True Type: CheckPodRunning--druid-cluster-routers-0 Last Transition Time: 2024-10-28T14:25:25Z - Message: get pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 + Message: get pod: ConditionStatus:True; PodName:druid-cluster-coordinators-0 Observed Generation: 1 Status: True Type: GetPod--druid-cluster-coordinators-0 @@ -1232,7 +1231,7 @@ Events: Normal Successful 19s KubeDB Ops-manager Operator Successfully resumed Druid database: demo/druid-cluster for DruidOpsRequest: drops-update-issuer ``` -Now, Lets exec into a druid node and find out the ca subject to see if it matches the one we have provided. +Now, let's exec into a druid node and find out the ca subject to see if it matches the one we have provided. ```bash $ kubectl exec -it druid-cluster-broker-0 -- bash @@ -1474,10 +1473,10 @@ Events: Warning get pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 98s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 98s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 Warning check pod running; ConditionStatus:True; PodName:druid-cluster-brokers-0 93s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-brokers-0 - Warning get pod; ConditionStatus:True; PodName:druid-cluster-routers-0 88s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-routers-0 + Warning get pod: ConditionStatus:True; PodName:druid-cluster-routers-0 88s KubeDB Ops-manager Operator get pod: ConditionStatus:True; PodName:druid-cluster-routers-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-routers-0 88s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-routers-0 Warning check pod running; ConditionStatus:True; PodName:druid-cluster-routers-0 83s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-routers-0 - Warning get pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 78s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 + Warning get pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 78s KubeDB Ops-manager Operator get pod: ConditionStatus:True; PodName:druid-cluster-coordinators-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 78s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 Warning check pod running; ConditionStatus:True; PodName:druid-cluster-coordinators-0 73s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-coordinators-0 Warning get pod; ConditionStatus:True; PodName:druid-cluster-historicals-0 68s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-historicals-0 @@ -1486,13 +1485,13 @@ Events: Warning get pod; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 58s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 58s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 Warning check pod running; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 53s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-middlemanagers-0 - Warning get pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 48s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 + Warning get pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 48s KubeDB Ops-manager Operator get pod: ConditionStatus:True; PodName:druid-cluster-brokers-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 48s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-brokers-0 Warning check pod running; ConditionStatus:True; PodName:druid-cluster-brokers-0 43s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-brokers-0 - Warning get pod; ConditionStatus:True; PodName:druid-cluster-routers-0 38s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-routers-0 + Warning get pod: ConditionStatus:True; PodName:druid-cluster-routers-0 38s KubeDB Ops-manager Operator get pod: ConditionStatus:True; PodName:druid-cluster-routers-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-routers-0 38s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-routers-0 Warning check pod running; ConditionStatus:True; PodName:druid-cluster-routers-0 33s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-routers-0 - Warning get pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 28s KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 + Warning get pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 28s KubeDB Ops-manager Operator get pod: ConditionStatus:True; PodName:druid-cluster-coordinators-0 Warning evict pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 28s KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:druid-cluster-coordinators-0 Warning check pod running; ConditionStatus:True; PodName:druid-cluster-coordinators-0 23s KubeDB Ops-manager Operator check pod running; ConditionStatus:True; PodName:druid-cluster-coordinators-0 Normal RestartNodes 18s KubeDB Ops-manager Operator Successfully restarted all nodes @@ -1500,7 +1499,7 @@ Events: Normal Successful 18s KubeDB Ops-manager Operator Successfully resumed Druid database: demo/druid-cluster for DruidOpsRequest: drops-remove ``` -Now, Let's exec into one of the broker node and find out that TLS is disabled or not. +Now, Lets exec into one of the broker node and find out that TLS is disabled or not. ```bash $$ kubectl exec -it -n demo druid-cluster-broker-0 -- druid-configs.sh --bootstrap-server localhost:9092 --command-config /opt/druid/config/clientauth.properties --describe --entity-type brokers --all | grep 'ssl.keystore' diff --git a/docs/guides/druid/reconfigure-tls/yamls/druid-cluster.yaml b/docs/guides/druid/reconfigure-tls/yamls/druid-cluster.yaml index 6351c2ddda..7a89d0dc91 100644 --- a/docs/guides/druid/reconfigure-tls/yamls/druid-cluster.yaml +++ b/docs/guides/druid/reconfigure-tls/yamls/druid-cluster.yaml @@ -13,4 +13,3 @@ spec: routers: replicas: 1 deletionPolicy: Delete - diff --git a/docs/guides/druid/reconfigure/guide.md b/docs/guides/druid/reconfigure/guide.md index cf85960a9c..5ff094b3c3 100644 --- a/docs/guides/druid/reconfigure/guide.md +++ b/docs/guides/druid/reconfigure/guide.md @@ -256,7 +256,7 @@ Here, - `spec.databaseRef.name` specifies that we are reconfiguring `druid-prod` database. - `spec.type` specifies that we are performing `Reconfigure` on our database. -- `spec.configSecret.name` specifies the name of the new secret. +- `spec.configuration.secretName` specifies the name of the new secret. Let's create the `DruidOpsRequest` CR we have shown above, diff --git a/docs/guides/druid/reconfigure/yamls/druid-cluster.yaml b/docs/guides/druid/reconfigure/yamls/druid-cluster.yaml index f7a695b062..7a89d0dc91 100644 --- a/docs/guides/druid/reconfigure/yamls/druid-cluster.yaml +++ b/docs/guides/druid/reconfigure/yamls/druid-cluster.yaml @@ -12,4 +12,4 @@ spec: topology: routers: replicas: 1 - deletionPolicy: WipeOut + deletionPolicy: Delete diff --git a/docs/guides/druid/reconfigure/yamls/reconfigure-druid-ops.yaml b/docs/guides/druid/reconfigure/yamls/reconfigure-druid-ops.yaml index cc5f789a54..c41db511d2 100644 --- a/docs/guides/druid/reconfigure/yamls/reconfigure-druid-ops.yaml +++ b/docs/guides/druid/reconfigure/yamls/reconfigure-druid-ops.yaml @@ -9,4 +9,4 @@ spec: name: druid-cluster configuration: configSecret: - name: new-config \ No newline at end of file + name: new-config diff --git a/docs/guides/druid/volume-expansion/guide.md b/docs/guides/druid/volume-expansion/guide.md index d9a110aa18..96eed7eecc 100644 --- a/docs/guides/druid/volume-expansion/guide.md +++ b/docs/guides/druid/volume-expansion/guide.md @@ -437,62 +437,4 @@ Events: Warning is pvc patched; ConditionStatus:True 8m59s KubeDB Ops-manager Operator is pvc patched; ConditionStatus:True Warning compare storage; ConditionStatus:False 8m59s KubeDB Ops-manager Operator compare storage; ConditionStatus:False Warning get pod; ConditionStatus:True 8m54s KubeDB Ops-manager Operator get pod; ConditionStatus:True - Warning get pvc; ConditionStatus:True 8m54s KubeDB Ops-manager Operator get pvc; ConditionStatus:True - Warning get pod; ConditionStatus:True 8m49s KubeDB Ops-manager Operator get pod; ConditionStatus:True - Warning get pvc; ConditionStatus:True 8m49s KubeDB Ops-manager Operator get pvc; ConditionStatus:True - Warning get pod; ConditionStatus:True 8m44s KubeDB Ops-manager Operator get pod; ConditionStatus:True - Warning get pvc; ConditionStatus:True 8m44s KubeDB Ops-manager Operator get pvc; ConditionStatus:True - Warning get pod; ConditionStatus:True 8m39s KubeDB Ops-manager Operator get pod; ConditionStatus:True - Warning get pvc; ConditionStatus:True 8m39s KubeDB Ops-manager Operator get pvc; ConditionStatus:True - Warning compare storage; ConditionStatus:True 8m39s KubeDB Ops-manager Operator compare storage; ConditionStatus:True - Warning create; ConditionStatus:True 8m39s KubeDB Ops-manager Operator create; ConditionStatus:True - Warning is ops req patched; ConditionStatus:True 8m39s KubeDB Ops-manager Operator is ops req patched; ConditionStatus:True - Warning get pod; ConditionStatus:True 8m34s KubeDB Ops-manager Operator get pod; ConditionStatus:True - Warning is druid running; ConditionStatus:False 8m31s KubeDB Ops-manager Operator is druid running; ConditionStatus:False - Warning get pod; ConditionStatus:True 8m29s KubeDB Ops-manager Operator get pod; ConditionStatus:True - Warning get pod; ConditionStatus:True 8m24s KubeDB Ops-manager Operator get pod; ConditionStatus:True - Warning get pod; ConditionStatus:True 8m19s KubeDB Ops-manager Operator get pod; ConditionStatus:True - Normal UpdateHistoricalsNodePVCs 8m14s KubeDB Ops-manager Operator successfully updated historicals node PVC sizes - Normal UpdatePetSets 7m59s KubeDB Ops-manager Operator successfully reconciled the Druid resources - Warning get pet set; ConditionStatus:True 7m54s KubeDB Ops-manager Operator get pet set; ConditionStatus:True - Warning get pet set; ConditionStatus:True 7m54s KubeDB Ops-manager Operator get pet set; ConditionStatus:True - Normal ReadyPetSets 7m54s KubeDB Ops-manager Operator PetSet is recreated - Normal Starting 7m54s KubeDB Ops-manager Operator Resuming Druid database: demo/druid-cluster - Normal Successful 7m54s KubeDB Ops-manager Operator Successfully resumed Druid database: demo/druid-cluster for DruidOpsRequest: dr-volume-exp -``` - -Now, we are going to verify from the `Petset`, and the `Persistent Volumes` whether the volume of the database has expanded to meet the desired state, Let's check, - -```bash -$ kubectl get petset -n demo druid-cluster-historicals -o json | jq '.spec.volumeClaimTemplates[].spec.resources.requests.storage' -"3Gi" - -$ kubectl get petset -n demo druid-cluster-middleManagers -o json | jq '.spec.volumeClaimTemplates[].spec.resources.requests.storage' -"2Gi" - -$ kubectl get pv -n demo -NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE -pvc-0bf49077-1c7a-4943-bb17-1dffd1626dcd 2Gi RWO Delete Bound demo/druid-cluster-segment-cache-druid-cluster-historicals-0 longhorn 23m -pvc-59ed4914-53b3-4f18-a6aa-7699c2b738e2 2Gi RWO Delete Bound demo/druid-cluster-base-task-dir-druid-cluster-middlemanagers-0 longhorn 23m -``` - -The above output verifies that we have successfully expanded the volume of the Druid. - -## Cleaning Up - -To clean up the Kubernetes resources created by this tutorial, run: - -```bash -kubectl delete druidopsrequest -n demo dr-volume-exp -kubectl delete dr -n demo druid-cluster -kubectl delete ns demo -``` - -## Next Steps - -- Detail concepts of [Druid object](/docs/guides/druid/concepts/druid.md). -- Different Druid topology clustering modes [here](/docs/guides/druid/clustering/_index.md). -- Monitor your Druid database with KubeDB using [out-of-the-box Prometheus operator](/docs/guides/druid/monitoring/using-prometheus-operator.md). -- -[//]: # (- Monitor your Druid database with KubeDB using [out-of-the-box builtin-Prometheus](/docs/guides/druid/monitoring/using-builtin-prometheus.md).) -- Want to hack on KubeDB? Check our [contribution guidelines](/docs/CONTRIBUTING.md). + Warning get pvc: diff --git a/docs/guides/druid/volume-expansion/yamls/druid-cluster.yaml b/docs/guides/druid/volume-expansion/yamls/druid-cluster.yaml index cb8e321237..235818e2c3 100644 --- a/docs/guides/druid/volume-expansion/yamls/druid-cluster.yaml +++ b/docs/guides/druid/volume-expansion/yamls/druid-cluster.yaml @@ -31,4 +31,3 @@ spec: routers: replicas: 1 deletionPolicy: Delete - diff --git a/docs/guides/elasticsearch/concepts/elasticsearch-dashboard/index.md b/docs/guides/elasticsearch/concepts/elasticsearch-dashboard/index.md index 1870d54879..cb0c9f3d7b 100644 --- a/docs/guides/elasticsearch/concepts/elasticsearch-dashboard/index.md +++ b/docs/guides/elasticsearch/concepts/elasticsearch-dashboard/index.md @@ -81,9 +81,9 @@ The k8s secret must be of type: kubernetes.io/basic-auth with the following keys - `password`: Password for the `elastic`/`admin` user. If `spec.authSecret` is not set, dashboard operator will use the authSecret from referred database object. -### spec.configSecret +### spec.configuration -`spec.configSecret` is an optional field that allows users to provide custom configuration for `ElasticsearchDashboard`. It contains a k8s secret name that holds the configuration files for `ElasticsearchDashboard`. If not provided, operator generated configurations will be applied to dashboard. If `configSecret` is provided, it will be merged with the operator-generated configuration. The user-provided configuration has higher precedence over the operator-generated configuration. The configuration file names are used as secret keys. +`spec.configuration` is an optional field that allows users to provide custom configuration for `ElasticsearchDashboard`. It contains a k8s secret name that holds the configuration files for `ElasticsearchDashboard`. If not provided, operator generated configurations will be applied to dashboard. If `configSecret` is provided, it will be merged with the operator-generated configuration. The user-provided configuration has higher precedence over the operator-generated configuration. The configuration file names are used as secret keys. - Kibana: - `kibana.yml` for configuring Kibana diff --git a/docs/guides/elasticsearch/concepts/elasticsearch-ops-request/index.md b/docs/guides/elasticsearch/concepts/elasticsearch-ops-request/index.md index 410dde5d0d..8ccb001ff6 100644 --- a/docs/guides/elasticsearch/concepts/elasticsearch-ops-request/index.md +++ b/docs/guides/elasticsearch/concepts/elasticsearch-ops-request/index.md @@ -451,7 +451,7 @@ To enable TLS on the HTTP layer, the configuration for the `http` layer certific If you want to reconfigure your Running Elasticsearch cluster or different components of it with new custom configuration, you have to specify `spec.configuration` section. This field consists of the following sub-field: -- `spec.configuration.configsecret`: ConfigSecret is an optional field to provide custom configuration file for database. +- `spec.configuration.configSecret`: ConfigSecret is an optional field to provide custom configuration file for database. - `spec.configuration.secureConfigSecret`: SecureConfigSecret is an optional field to provide secure settings for database. - `spec.configuration.applyConfig`: ApplyConfig is an optional field to provide Elasticsearch configuration. Provided configuration will be applied to config files stored in ConfigSecret. If the ConfigSecret is missing, the operator will create a new k8s secret by the following naming convention: {db-name}-user-config. ```yaml diff --git a/docs/guides/elasticsearch/concepts/elasticsearch/index.md b/docs/guides/elasticsearch/concepts/elasticsearch/index.md index 4837294544..2f7c692d1c 100644 --- a/docs/guides/elasticsearch/concepts/elasticsearch/index.md +++ b/docs/guides/elasticsearch/concepts/elasticsearch/index.md @@ -35,8 +35,8 @@ spec: kind: Secret name: es-admin-cred externallyManaged: false - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config enableSSL: true internalUsers: metrics_exporter: {} @@ -635,14 +635,17 @@ Elasticsearch managed by KubeDB can be monitored with builtin-Prometheus and Pro - [Monitor Elasticsearch with builtin Prometheus](/docs/guides/elasticsearch/monitoring/using-builtin-prometheus.md) - [Monitor Elasticsearch with Prometheus operator](/docs/guides/elasticsearch/monitoring/using-prometheus-operator.md) -### spec.configSecret - -`spec.configSecret` is an `optional` field that allows users to provide custom configuration for Elasticsearch. It contains a k8s secret name that holds the configuration files for both Elasticsearch and the security plugins (ie. x-pack, SearchGuard, and openDistro). +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for Elasticsearch cluster. It has the following fields: +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the Elasticsearch object. +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for Elasticsearch cluster. ```yaml spec: - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config + inline: + key: value ``` The configuration file names are used as secret keys. diff --git a/docs/guides/elasticsearch/configuration/combined-cluster/index.md b/docs/guides/elasticsearch/configuration/combined-cluster/index.md index 253aaaa124..65873f13d1 100644 --- a/docs/guides/elasticsearch/configuration/combined-cluster/index.md +++ b/docs/guides/elasticsearch/configuration/combined-cluster/index.md @@ -104,8 +104,8 @@ spec: version: xpack-8.11.1 enableSSL: true replicas: 3 - configSecret: - name: es-custom-config # mentioned here! + configuration: + secretName: es-custom-config # mentioned here! storageType: Durable storage: storageClassName: "standard" diff --git a/docs/guides/elasticsearch/configuration/combined-cluster/yamls/es-combined.yaml b/docs/guides/elasticsearch/configuration/combined-cluster/yamls/es-combined.yaml index 36ee6c3b9d..3a1cc8bf78 100644 --- a/docs/guides/elasticsearch/configuration/combined-cluster/yamls/es-combined.yaml +++ b/docs/guides/elasticsearch/configuration/combined-cluster/yamls/es-combined.yaml @@ -7,8 +7,8 @@ spec: version: xpack-8.11.1 enableSSL: true replicas: 3 - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config storageType: Durable storage: storageClassName: "standard" diff --git a/docs/guides/elasticsearch/configuration/jvm-options/index.md b/docs/guides/elasticsearch/configuration/jvm-options/index.md index 0d8f0fb5db..eadb8b0c6f 100644 --- a/docs/guides/elasticsearch/configuration/jvm-options/index.md +++ b/docs/guides/elasticsearch/configuration/jvm-options/index.md @@ -82,8 +82,8 @@ metadata: namespace: demo spec: # Make sure that you've mentioned the config secret name here - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config enableSSL: false version: opensearch-2.8.0 storageType: Durable diff --git a/docs/guides/elasticsearch/configuration/jvm-options/yamls/elasticsearch.yaml b/docs/guides/elasticsearch/configuration/jvm-options/yamls/elasticsearch.yaml index c11f4fd81e..b0de5a9b82 100644 --- a/docs/guides/elasticsearch/configuration/jvm-options/yamls/elasticsearch.yaml +++ b/docs/guides/elasticsearch/configuration/jvm-options/yamls/elasticsearch.yaml @@ -4,8 +4,8 @@ metadata: name: es-test namespace: demo spec: - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config enableSSL: false version: opensearch-2.8.0 storageType: Durable diff --git a/docs/guides/elasticsearch/configuration/overview/index.md b/docs/guides/elasticsearch/configuration/overview/index.md index 39edc93ff1..5f0e944286 100644 --- a/docs/guides/elasticsearch/configuration/overview/index.md +++ b/docs/guides/elasticsearch/configuration/overview/index.md @@ -52,7 +52,7 @@ The `OpenDistro` security plugin has the following configuration files: ## Custom Config Seceret -The custom configuration files are passed via a Kubernetes secret. The **file names are the keys** of the Secret with the **file-contents as the values**. The secret name needs to be mentioned in `spec.configSecret.name` of the [Elasticsearch](/docs/guides/elasticsearch/concepts/elasticsearch/index.md) object. +The custom configuration files are passed via a Kubernetes secret. The **file names are the keys** of the Secret with the **file-contents as the values**. The secret name needs to be mentioned in `spec.configuration.secretName` of the [Elasticsearch](/docs/guides/elasticsearch/concepts/elasticsearch/index.md) object. ```yaml apiVersion: kubedb.com/v1 @@ -62,8 +62,8 @@ metadata: namespace: demo spec: version: xpack-8.11.1 - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config ``` ```yaml diff --git a/docs/guides/elasticsearch/configuration/topology-cluster/index.md b/docs/guides/elasticsearch/configuration/topology-cluster/index.md index e44707edbb..de85c1a666 100644 --- a/docs/guides/elasticsearch/configuration/topology-cluster/index.md +++ b/docs/guides/elasticsearch/configuration/topology-cluster/index.md @@ -141,8 +141,8 @@ metadata: spec: enableSSL: true version: xpack-8.11.1 - configSecret: - name: es-custom-config # mentioned here! + configuration: + secretName: es-custom-config # mentioned here! storageType: Durable deletionPolicy: WipeOut topology: diff --git a/docs/guides/elasticsearch/configuration/topology-cluster/yamls/es-topology.yaml b/docs/guides/elasticsearch/configuration/topology-cluster/yamls/es-topology.yaml index 1a7d4d38b9..275f7f047c 100644 --- a/docs/guides/elasticsearch/configuration/topology-cluster/yamls/es-topology.yaml +++ b/docs/guides/elasticsearch/configuration/topology-cluster/yamls/es-topology.yaml @@ -6,8 +6,8 @@ metadata: spec: enableSSL: true version: xpack-8.11.1 - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config storageType: Durable deletionPolicy: WipeOut topology: diff --git a/docs/guides/elasticsearch/monitoring/overview.md b/docs/guides/elasticsearch/monitoring/overview.md index c304dffec8..6ec2bf3e20 100644 --- a/docs/guides/elasticsearch/monitoring/overview.md +++ b/docs/guides/elasticsearch/monitoring/overview.md @@ -55,8 +55,8 @@ metadata: spec: version: 6.0.20 deletionPolicy: WipeOut - configSecret: # configure Redis to use password for authentication - name: redis-config + configuration: # configure Redis to use password for authentication + secretName: redis-config storageType: Durable storage: storageClassName: default diff --git a/docs/guides/elasticsearch/plugins-backup/s3-repository/index.md b/docs/guides/elasticsearch/plugins-backup/s3-repository/index.md index 1faa887da4..be35af9689 100644 --- a/docs/guides/elasticsearch/plugins-backup/s3-repository/index.md +++ b/docs/guides/elasticsearch/plugins-backup/s3-repository/index.md @@ -109,8 +109,8 @@ metadata: namespace: demo spec: # Custom configuration, which will update elasticsearch.yml - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config # Secure settings which will be stored in elasticsearch.keystore secureConfigSecret: name: es-secure-settings diff --git a/docs/guides/elasticsearch/plugins-backup/s3-repository/yamls/elasticsearch.yaml b/docs/guides/elasticsearch/plugins-backup/s3-repository/yamls/elasticsearch.yaml index 1eff98f913..fa38f9ac6b 100644 --- a/docs/guides/elasticsearch/plugins-backup/s3-repository/yamls/elasticsearch.yaml +++ b/docs/guides/elasticsearch/plugins-backup/s3-repository/yamls/elasticsearch.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: # Custom configuration, which will update elasticsearch.yml - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config # Secure settings which will be stored in elasticsearch.keystore secureConfigSecret: name: es-secure-settings diff --git a/docs/guides/elasticsearch/plugins/search-guard/x-pack-monitoring.md b/docs/guides/elasticsearch/plugins/search-guard/x-pack-monitoring.md index 15e1251e20..10f4030c8c 100644 --- a/docs/guides/elasticsearch/plugins/search-guard/x-pack-monitoring.md +++ b/docs/guides/elasticsearch/plugins/search-guard/x-pack-monitoring.md @@ -284,7 +284,7 @@ metadata: ... ``` -Now, create Elasticsearch crd specifying `spec.authSecret` and `spec.configSecret` field. +Now, create Elasticsearch crd specifying `spec.authSecret` and `spec.configuration` field. ```bash $ kubectl apply -f kubectl apply -f https://github.com/kubedb/docs/raw/{{< param "info.version" >}}/docs/examples/elasticsearch/x-pack/es-mon-demo.yaml @@ -305,8 +305,8 @@ spec: authSecret: kind: Secret name: es-auth - configSecret: - name: es-custom-config + configuration: + secretName: es-custom-config storage: storageClassName: "standard" accessModes: diff --git a/docs/guides/hazelcast/concepts/hazelcast-opsrequest.md b/docs/guides/hazelcast/concepts/hazelcast-opsrequest.md index 354cca0214..0b74ef19c5 100644 --- a/docs/guides/hazelcast/concepts/hazelcast-opsrequest.md +++ b/docs/guides/hazelcast/concepts/hazelcast-opsrequest.md @@ -129,6 +129,7 @@ spec: configuration: configSecret: name: hazelcast-custom-config + restart: "true" applyConfig: hazelcast.yaml: |- hazelcast: diff --git a/docs/guides/hazelcast/concepts/hazelcast.md b/docs/guides/hazelcast/concepts/hazelcast.md index 116f22551c..d1f16cbe23 100644 --- a/docs/guides/hazelcast/concepts/hazelcast.md +++ b/docs/guides/hazelcast/concepts/hazelcast.md @@ -233,9 +233,10 @@ We can add java environment variables using this attribute. Hazelcast managed by KubeDB can be monitored with builtin-Prometheus and Prometheus operator out-of-the-box. -### spec.configSecret - -`spec.configSecret` is an optional field that allows users to provide custom configuration for Hazelcast. This field accepts a [`VolumeSource`](https://github.com/kubernetes/api/blob/release-1.11/core/v1/types.go#L47). So you can use any Kubernetes supported volume source such as `configMap`, `secret`, `azureDisk` etc. +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for Hazelcast cluster. It has the following fields: +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the Hazelcast object. +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for Hazelcast cluster. ### spec.podTemplate diff --git a/docs/guides/hazelcast/configuration/hazelcast-config.md b/docs/guides/hazelcast/configuration/hazelcast-config.md index 3f704218e5..191cffd4fc 100644 --- a/docs/guides/hazelcast/configuration/hazelcast-config.md +++ b/docs/guides/hazelcast/configuration/hazelcast-config.md @@ -105,8 +105,8 @@ spec: version: 5.5.2 licenseSecret: name: hz-license-key - configSecret: - name: hz + configuration: + secretName: hz storage: accessModes: - ReadWriteOnce diff --git a/docs/guides/hazelcast/monitoring/overview.md b/docs/guides/hazelcast/monitoring/overview.md index 7ebe010f7a..4329bf1e93 100644 --- a/docs/guides/hazelcast/monitoring/overview.md +++ b/docs/guides/hazelcast/monitoring/overview.md @@ -57,8 +57,8 @@ metadata: spec: version: 6.0.20 deletionPolicy: WipeOut - configSecret: # configure Redis to use password for authentication - name: redis-config + configuration: # configure Redis to use password for authentication + secretName: redis-config storageType: Durable storage: storageClassName: default diff --git a/docs/guides/ignite/concepts/ignite.md b/docs/guides/ignite/concepts/ignite.md index 842b62a258..10e4caf5a5 100644 --- a/docs/guides/ignite/concepts/ignite.md +++ b/docs/guides/ignite/concepts/ignite.md @@ -31,8 +31,8 @@ metadata: spec: replicas: 3 version: 2.17.0 - configSecret: - name: ignite-configuration + configuration: + secretName: ignite-configuration authSecret: kind: Secret name: ignite-quickstart-auth @@ -80,9 +80,12 @@ Ignite managed by KubeDB can be monitored with builtin-Prometheus and Prometheus - [Monitor Ignite with builtin Prometheus](/docs/guides/ignite/monitoring/using-builtin-prometheus.md) - [Monitor Ignite with Prometheus operator](/docs/guides/ignite/monitoring/using-prometheus-operator.md) -### spec.configSecret +### spec.configuration -`spec.configSecret` is an optional field that allows users to provide custom configuration for Ignite. This field accepts a [`VolumeSource`](https://github.com/kubernetes/api/blob/release-1.11/core/v1/types.go#L47). So you can use any Kubernetes supported volume source such as `configMap`, `secret`, `azureDisk` etc. To learn more about how to use a custom configuration file see [here](/docs/guides/ignite/custom-configuration/using-config-file.md). +`spec.configuration` is an optional field that allows users to provide custom configuration for Ignite. This field accepts a [`VolumeSource`](https://github.com/kubernetes/api/blob/release-1.11/core/v1/types.go#L47). So you can use any Kubernetes supported volume source such as `configMap`, `secret`, `azureDisk` etc. To learn more about how to use a custom configuration file see [here](/docs/guides/ignite/custom-configuration/using-config-file.md). +-`spec.configuration.secretName` is the name of the secret that contains the Ignite configuration file. This field accepts a secret name that holds the custom configuration parameters. + +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the ignite object. ### spec.podTemplate diff --git a/docs/guides/ignite/concepts/opsrequest.md b/docs/guides/ignite/concepts/opsrequest.md index 3b4d147a68..8a93c72b8c 100644 --- a/docs/guides/ignite/concepts/opsrequest.md +++ b/docs/guides/ignite/concepts/opsrequest.md @@ -81,6 +81,7 @@ spec: configuration: configSecret: name: new-custom-config + restart: "true" timeout: 5m apply: IfReady ``` diff --git a/docs/guides/ignite/custom-configuration/using-config-file.md b/docs/guides/ignite/custom-configuration/using-config-file.md index 702e9eff1c..f24934a8cb 100644 --- a/docs/guides/ignite/custom-configuration/using-config-file.md +++ b/docs/guides/ignite/custom-configuration/using-config-file.md @@ -41,7 +41,7 @@ Ignite does not allow to configuration via any file. However, configuration para To know more about configuring Ignite server see [here](https://ignite.apache.org/docs/ignite3/latest/administrators-guide/config/node-config). -At first, you have to create a config file named `node-configuration.xml` with your desired configuration. Then you have to put this file into a [volume](https://kubernetes.io/docs/concepts/storage/volumes/). You have to specify this volume in `spec.configSecret` section while creating Ignite crd. KubeDB will mount this volume into `/usr/config` directory of the database pod. +At first, you have to create a config file named `node-configuration.xml` with your desired configuration. Then you have to put this file into a [volume](https://kubernetes.io/docs/concepts/storage/volumes/). You have to specify this volume in `spec.configuration` section while creating Ignite crd. KubeDB will mount this volume into `/usr/config` directory of the database pod. In this tutorial, we will enable Ignite's authentication via secret. @@ -94,7 +94,7 @@ metadata: type: Opaque ``` -Now, create Ignite crd specifying `spec.configSecret` field. +Now, create Ignite crd specifying `spec.configuration` field. ```bash $ kubectl apply -f https://github.com/kubedb/docs/raw/{{< param "info.version" >}}/docs/examples/ignite/configuration/custom-ignite.yaml @@ -112,8 +112,8 @@ metadata: spec: replicas: 3 version: 2.17.0 - configSecret: - name: ignite-configuration + configuration: + secretName: ignite-configuration storage: storageClassName: "standard" accessModes: diff --git a/docs/guides/ignite/reconfigure/reconfigure.md b/docs/guides/ignite/reconfigure/reconfigure.md index 2e1de5e549..a2f48b2e26 100644 --- a/docs/guides/ignite/reconfigure/reconfigure.md +++ b/docs/guides/ignite/reconfigure/reconfigure.md @@ -53,7 +53,7 @@ $ kubectl create secret generic -n demo ig-custom-config --from-file=./node-conf secret/ig-custom-config created ``` -In this section, we are going to create a Ignite object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `Ignite` CR that we are going to create, +In this section, we are going to create a Ignite object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `Ignite` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1alpha2 @@ -71,8 +71,8 @@ spec: resources: requests: storage: 1Gi - configSecret: - name: ig-custom-config + configuration: + secretName: ig-custom-config ``` Let's create the `Ignite` CR we have shown above, diff --git a/docs/guides/kafka/concepts/connectcluster.md b/docs/guides/kafka/concepts/connectcluster.md index 4e05bce6e4..90eaa0ea21 100644 --- a/docs/guides/kafka/concepts/connectcluster.md +++ b/docs/guides/kafka/concepts/connectcluster.md @@ -52,8 +52,20 @@ spec: secretName: connectcluster-server-cert - alias: client secretName: connectcluster-client-cert - configSecret: - name: custom-connectcluster-config + configuration: + secretName: custom-connectcluster-config + configuration: + secretName: custom-connectcluster-config + inline: + config.properties: | + key.converter=org.apache.kafka.connect.json.JsonConverter + value.converter=org.apache.kafka.connect.json.JsonConverter + key.converter.schemas.enable=true + value.converter.schemas.enable=true + offset.storage.topic=connect-cluster-offsets + config.storage.topic=connect-cluster-configs + status.storage.topic=connect-cluster-status + offset.flush.interval.ms=10000 replicas: 3 connectorPlugins: - gcs-0.13.0 @@ -126,12 +138,37 @@ kafkaRef: namespace: ``` -### spec.configSecret +### spec.configuration -`spec.configSecret` is an optional field that specifies the name of the secret containing the custom configuration for the ConnectCluster. The secret should contain a key `config.properties` which contains the custom configuration for the ConnectCluster. The default value of this field is `nil`. +`spec.configuration` is an optional field that specifies the name of the secret containing the custom configuration for the ConnectCluster. The secret should contain a key `config.properties` which contains the custom configuration for the ConnectCluster. The default value of this field is `nil`. ```yaml -configSecret: - name: +configuration: + secretName: +``` + +> **Note**: Use `.spec.configuration.secretName` to specify the name of the secret instead of `.spec.configuration.secretName`. The field `.spec.configuration` is deprecated and will be removed in future releases. If you still use `.spec.configuration`, KubeDB will copy `.spec.configuration.secretName` to `.spec.configuration.secretName` internally. + +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for Kafka Connect Cluster. It has the following fields: +- `configuration.secretName` is a optional field that specifies the name of the secret that holds custom configuration files for Kafka Connect Cluster. +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the ConnectCluster object. It has the following possible keys: + - `config.properties` - is used to provide custom configuration for Kafka Connect Cluster. + +```yaml +spec: + configuration: + secretName: +``` +or +```yaml +spec: + configuration: + inline: + config.properties: | + key.converter=org.apache.kafka.connect.json.JsonConverter + value.converter=org.apache.kafka.connect.json.JsonConverter + ..... + .... ``` ### spec.authSecret diff --git a/docs/guides/kafka/concepts/connector.md b/docs/guides/kafka/concepts/connector.md index 85f1927d77..0fc268217c 100644 --- a/docs/guides/kafka/concepts/connector.md +++ b/docs/guides/kafka/concepts/connector.md @@ -29,21 +29,51 @@ metadata: name: mongodb-source-connector namespace: demo spec: - configSecret: - name: mongodb-source-config + configuration: + secretName: mongodb-source-config + configuration: + secretName: mongodb-source-config + inline: + config.properties: | + connector.class=com.mongodb.* + tasks.max=1 + topic.prefix=mongodb- + connection.uri=mongodb://mongo-user: connectClusterRef: name: connectcluster-quickstart namespace: demo deletionPolicy: WipeOut ``` -### spec.configSecret +### spec.configuration -`spec.configSecret` is a required field that specifies the name of the secret containing the configuration for the Connector. The secret should contain a key `config.properties` which contains the configuration for the Connector. +`spec.configuration` is a required field that specifies the name of the secret containing the configuration for the Connector. The secret should contain a key `config.properties` which contains the configuration for the Connector. ```yaml spec: - configSecret: - name: + configuration: + secretName: +``` + +> **Note**: Use `.spec.configuration.secretName` to specify the name of the secret instead of `.spec.configuration.secretName`. The field `.spec.configuration` is deprecated and will be removed in future releases. If you still use `.spec.configuration`, KubeDB will copy `.spec.configuration.secretName` to `.spec.configuration.secretName` internally. + +### spec.configuration + +`spec.configuration` is a required field that specifies the configuration for the Connector. It can either be specified inline or as a reference to a secret. +```yaml +spec: + configuration: + secretName: +``` +or +```yaml +spec: + configuration: + inline: + config.properties: | + connector.class=com.mongodb.* + tasks.max=1 + topic.prefix=mongodb- + connection.uri=mongodb://mongo-user:mongo-password@mongo-host:27017 ``` ### spec.connectClusterRef diff --git a/docs/guides/kafka/concepts/kafka.md b/docs/guides/kafka/concepts/kafka.md index 4158455336..57a310cabd 100644 --- a/docs/guides/kafka/concepts/kafka.md +++ b/docs/guides/kafka/concepts/kafka.md @@ -33,8 +33,20 @@ spec: authSecret: kind: Secret name: kafka-admin-cred - configSecret: - name: kafka-custom-config + configuration: + secretName: kafka-custom-config + configuration: + secretName: kafka-custom-config + inline: + broker.properties: | + log.retention.hours=168 + log.segment.bytes=1073741824 + controller.properties: | + log.retention.hours=168 + log.segment.bytes=1073741824 + server.properties: | + log.retention.hours=168 + log.segment.bytes=1073741824 enableSSL: true healthChecker: failureThreshold: 3 @@ -180,7 +192,16 @@ Secrets provided by users are not managed by KubeDB, and therefore, won't be mod ### spec.configSecret -`spec.configSecret` is an optional field that points to a Secret used to hold custom Kafka configuration. If not set, KubeDB operator will use default configuration for Kafka. +`spec.configSecret +> **Note**: Use `.spec.configuration.secretName` to specify the name of the secret instead of `.spec.configuration.secretName`. The field `.spec.configSecret.name` is deprecated and will be removed in future releases. If you still use `.spec.configuration`, KubeDB will copy `.spec.configuration.secretName` to `.spec.configuration.secretName` internally. + +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for Kafka cluster. It has the following fields: +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for Kafka cluster. +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the Kafka object. It has the following possible keys: + - `broker.properties` - is used to provide custom configuration for Kafka brokers. + - `controller.properties` - is used to provide custom configuration for Kafka controllers. + - `server.propertbies` - is used to provide custom configuration for both Kafka brokers and controllers. ### spec.topology diff --git a/docs/guides/kafka/concepts/kafkaopsrequest.md b/docs/guides/kafka/concepts/kafkaopsrequest.md index 21fd484c64..85a3299f2d 100644 --- a/docs/guides/kafka/concepts/kafkaopsrequest.md +++ b/docs/guides/kafka/concepts/kafkaopsrequest.md @@ -271,6 +271,7 @@ spec: configuration: configSecret: name: new-configsecret-topology + restart: "auto" status: conditions: - lastTransitionTime: "2024-07-25T18:22:38Z" @@ -533,7 +534,12 @@ controller.properties: | controller.properties: | metadata.log.dir=/var/log/kafka/metadata-custom ``` +- `restart` significantly reduces unnecessary downtime. + - `auto` (default): restart only if required (determined by ops manager operator) + - `false`: no restart + - `true`: always restart + - `removeCustomConfig` is a boolean field. Specify this field to true if you want to remove all the custom configuration from the deployed kafka cluster. ### spec.tls diff --git a/docs/guides/kafka/configuration/kafka-combined.md b/docs/guides/kafka/configuration/kafka-combined.md index 5622394106..710ac4e885 100644 --- a/docs/guides/kafka/configuration/kafka-combined.md +++ b/docs/guides/kafka/configuration/kafka-combined.md @@ -89,8 +89,8 @@ metadata: spec: replicas: 2 version: 3.9.0 - configSecret: - name: configsecret-combined + configuration: + secretName: configsecret-combined storage: accessModes: - ReadWriteOnce diff --git a/docs/guides/kafka/configuration/kafka-topology.md b/docs/guides/kafka/configuration/kafka-topology.md index 779f8adccd..1ac224b33e 100644 --- a/docs/guides/kafka/configuration/kafka-topology.md +++ b/docs/guides/kafka/configuration/kafka-topology.md @@ -98,8 +98,8 @@ metadata: namespace: demo spec: version: 3.9.0 - configSecret: - name: configsecret-topology + configuration: + secretName: configsecret-topology topology: broker: replicas: 2 diff --git a/docs/guides/kafka/connectcluster/connectcluster.md b/docs/guides/kafka/connectcluster/connectcluster.md index 217b04961a..376b9cf301 100644 --- a/docs/guides/kafka/connectcluster/connectcluster.md +++ b/docs/guides/kafka/connectcluster/connectcluster.md @@ -99,8 +99,8 @@ spec: apiGroup: cert-manager.io kind: Issuer name: connectcluster-ca-issuer - configSecret: - name: connectcluster-custom-config + configuration: + secretName: connectcluster-custom-config replicas: 3 connectorPlugins: - postgres-3.0.5.final @@ -115,7 +115,7 @@ Here, - `spec.enableSSL` - specifies whether the ConnectCluster should be TLS secured or not. - `spec.tls.issuerRef` - specifies the name of the Issuer CR. Here, the ConnectCluster will use the `connectcluster-ca-issuer` Issuer to enable SSL/TLS. - `spec.replicas` - specifies the number of ConnectCluster workers. -- `spec.configSecret` - specifies the name of the secret that contains the custom configuration for the ConnectCluster. Here, the ConnectCluster will use the `connectcluster-custom-config` secret for custom configuration. +- `spec.configuration.secretName` - specifies the name of the secret that contains the custom configuration for the ConnectCluster. Here, the ConnectCluster will use the `connectcluster-custom-config` secret for custom configuration. - `spec.connectorPlugins` - is the name of the KafkaConnectorVersion CR. Here, mongodb, mysql, postgres, and jdbc connector-plugins will be loaded to the ConnectCluster worker nodes. - `spec.kafkaRef` specifies the Kafka instance that the ConnectCluster will connect to. Here, the ConnectCluster will connect to the Kafka instance named `kafka-prod` in the `demo` namespace. - `spec.deletionPolicy` specifies what KubeDB should do when a user try to delete ConnectCluster CR. Deletion policy `WipeOut` will delete the worker pods, secret when the ConnectCluster CR is deleted. @@ -267,8 +267,8 @@ metadata: name: postgres-source-connector namespace: demo spec: - configSecret: - name: postgres-source-connector-config + configuration: + secretName: postgres-source-connector-config connectClusterRef: name: connectcluster-distributed namespace: demo @@ -417,8 +417,8 @@ metadata: name: mysql-sink-connector namespace: demo spec: - configSecret: - name: mysql-sink-connector-config + configuration: + secretName: mysql-sink-connector-config connectClusterRef: name: connectcluster-distributed namespace: demo diff --git a/docs/guides/kafka/connectcluster/quickstart.md b/docs/guides/kafka/connectcluster/quickstart.md index 3c5fa37e70..5a87f83679 100644 --- a/docs/guides/kafka/connectcluster/quickstart.md +++ b/docs/guides/kafka/connectcluster/quickstart.md @@ -422,8 +422,8 @@ metadata: name: mongodb-source-connector namespace: demo spec: - configSecret: - name: mongodb-source-config + configuration: + secretName: mongodb-source-config connectClusterRef: name: connectcluster-quickstart namespace: demo @@ -432,7 +432,7 @@ spec: Here, -- `spec.configSecret` - is the name of the secret containing the connector configuration. +- `spec.configuration.secretName` - is the name of the secret containing the connector configuration. - `spec.connectClusterRef` - is the name of the ConnectCluster instance that the connector will run on. This is an appbinding reference of the ConnectCluster instance. - `spec.deletionPolicy` - specifies what KubeDB should do when a user try to delete Connector CR. Deletion policy `WipeOut` will delete the connector from the ConnectCluster when the Connector CR is deleted. If you want to keep the connector after deleting the Connector CR, you can set the deletion policy to `Delete`. diff --git a/docs/guides/kafka/migration/migration.md b/docs/guides/kafka/migration/migration.md index 2181dd5e59..12b5382e97 100644 --- a/docs/guides/kafka/migration/migration.md +++ b/docs/guides/kafka/migration/migration.md @@ -442,8 +442,8 @@ spec: connectClusterRef: name: mirror-connect namespace: demo - configSecret: - name: mirror-source-config + configuration: + secretName: mirror-source-config deletionPolicy: WipeOut ``` @@ -506,8 +506,8 @@ spec: connectClusterRef: name: mirror-connect namespace: demo - configSecret: - name: mirror-checkpoint-config + configuration: + secretName: mirror-checkpoint-config deletionPolicy: WipeOut ``` @@ -563,8 +563,8 @@ spec: connectClusterRef: name: mirror-connect namespace: demo - configSecret: - name: mirror-heartbeat-config + configuration: + secretName: mirror-heartbeat-config deletionPolicy: WipeOut ``` diff --git a/docs/guides/kafka/reconfigure/kafka-combined.md b/docs/guides/kafka/reconfigure/kafka-combined.md index ae6977946a..a7be8deffc 100644 --- a/docs/guides/kafka/reconfigure/kafka-combined.md +++ b/docs/guides/kafka/reconfigure/kafka-combined.md @@ -72,7 +72,7 @@ $ kubectl apply -f https://github.com/kubedb/docs/raw/{{< param "info.version" > secret/kf-combined-custom-config created ``` -In this section, we are going to create a Kafka object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `Kafka` CR that we are going to create, +In this section, we are going to create a Kafka object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `Kafka` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1 @@ -83,8 +83,8 @@ metadata: spec: replicas: 2 version: 3.9.0 - configSecret: - name: kf-combined-custom-config + configuration: + secretName: kf-combined-custom-config storage: accessModes: - ReadWriteOnce @@ -181,7 +181,7 @@ Here, - `spec.databaseRef.name` specifies that we are reconfiguring `kafka-dev` database. - `spec.type` specifies that we are performing `Reconfigure` on our database. -- `spec.configSecret.name` specifies the name of the new secret. +- `spec.configuration.configSecret.name` specifies the name of the new secret. Let's create the `KafkaOpsRequest` CR we have shown above, @@ -192,7 +192,7 @@ kafkaopsrequest.ops.kubedb.com/kfops-reconfigure-combined created #### Verify the new configuration is working -If everything goes well, `KubeDB` Ops-manager operator will update the `configSecret` of `Kafka` object. +If everything goes well, `KubeDB` Ops-manager operator will update the `.spec.configuration` of `Kafka` object. Let's wait for `KafkaOpsRequest` to be `Successful`. Run the following command to watch `KafkaOpsRequest` CR, diff --git a/docs/guides/kafka/reconfigure/kafka-topology.md b/docs/guides/kafka/reconfigure/kafka-topology.md index 164c3a272b..660c6d055f 100644 --- a/docs/guides/kafka/reconfigure/kafka-topology.md +++ b/docs/guides/kafka/reconfigure/kafka-topology.md @@ -83,7 +83,7 @@ secret/kf-topology-custom-config created > **Note:** -In this section, we are going to create a Kafka object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `Kafka` CR that we are going to create, +In this section, we are going to create a Kafka object specifying `spec.configuration.secretName` field to apply this custom configuration. Below is the YAML of the `Kafka` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1 @@ -93,8 +93,8 @@ metadata: namespace: demo spec: version: 3.9.0 - configSecret: - name: kf-topology-custom-config + configuration: + secretName: kf-topology-custom-config topology: broker: replicas: 2 @@ -213,7 +213,7 @@ Here, - `spec.databaseRef.name` specifies that we are reconfiguring `kafka-prod` database. - `spec.type` specifies that we are performing `Reconfigure` on our database. -- `spec.configSecret.name` specifies the name of the new secret. +- `spec.configuration.configSecret.name` specifies the name of the new secret. Let's create the `KafkaOpsRequest` CR we have shown above, @@ -224,7 +224,7 @@ kafkaopsrequest.ops.kubedb.com/kfops-reconfigure-topology created #### Verify the new configuration is working -If everything goes well, `KubeDB` Ops-manager operator will update the `configSecret` of `Kafka` object. +If everything goes well, `KubeDB` Ops-manager operator will update the `configuration` of `Kafka` object. Let's wait for `KafkaOpsRequest` to be `Successful`. Run the following command to watch `KafkaOpsRequest` CR, diff --git a/docs/guides/kafka/update-version/update-version.md b/docs/guides/kafka/update-version/update-version.md index 3e0e069d8d..59afd1ccfa 100644 --- a/docs/guides/kafka/update-version/update-version.md +++ b/docs/guides/kafka/update-version/update-version.md @@ -52,8 +52,8 @@ metadata: namespace: demo spec: version: 3.9.0 - configSecret: - name: configsecret-topology + configuration: + secretName: configsecret-topology topology: broker: replicas: 2 diff --git a/docs/guides/mariadb/concepts/mariadb/index.md b/docs/guides/mariadb/concepts/mariadb/index.md index bfb44f7e74..4dd0db046a 100644 --- a/docs/guides/mariadb/concepts/mariadb/index.md +++ b/docs/guides/mariadb/concepts/mariadb/index.md @@ -217,9 +217,10 @@ The following fields are configurable in the `spec.tls` section: - `uriSANs` (optional) is a list of URI Subject Alternative Names to be set in the Certificate. - `emailSANs` (optional) is a list of email Subject Alternative Names to be set in the Certificate. -### spec.configSecret - -`spec.configSecret` is an optional field that allows users to provide custom configuration for MariaDB. This field accepts a [`VolumeSource`](https://github.com/kubernetes/api/blob/release-1.11/core/v1/types.go#L47). +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for Mariadb cluster. It has the following fields: +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the Mariadb object. +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for Mariadb cluster. ### spec.podTemplate diff --git a/docs/guides/mariadb/concepts/opsrequest/index.md b/docs/guides/mariadb/concepts/opsrequest/index.md index eef3ed21dd..4ff7f0c504 100644 --- a/docs/guides/mariadb/concepts/opsrequest/index.md +++ b/docs/guides/mariadb/concepts/opsrequest/index.md @@ -127,6 +127,7 @@ spec: [mysqld] max_connections = 300 read_buffer_size = 1234567 + restart: "true" status: conditions: - lastTransitionTime: "2020-08-25T18:22:38Z" @@ -297,6 +298,12 @@ If you want to reconfigure your Running MariaDB cluster with new custom configur - `configSecret` points to a secret in the same namespace of a MariaDB resource, which contains the new custom configurations. If there are any configSecret set before in the database, this secret will replace it. - `applyConfig` contains the new custom config as a string which will be merged with the previous configuration. - `removeCustomConfig` reomoves all the custom configs of the MariaDB server. +- `restart` significantly reduces unnecessary downtime. + - `auto` (default): restart only if required (determined by ops manager operator) + - `false`: If user set the restart to false, then pod will not be restarted and new config will not be synced with database. + - `true`: always restart + + ### spec.tls diff --git a/docs/guides/mariadb/configuration/using-config-file/examples/md-custom.yaml b/docs/guides/mariadb/configuration/using-config-file/examples/md-custom.yaml index fa1809ad46..25afd7e47a 100644 --- a/docs/guides/mariadb/configuration/using-config-file/examples/md-custom.yaml +++ b/docs/guides/mariadb/configuration/using-config-file/examples/md-custom.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: "10.5.23" - configSecret: - name: md-configuration + configuration: + secretName: md-configuration storageType: Durable storage: storageClassName: "standard" diff --git a/docs/guides/mariadb/configuration/using-config-file/index.md b/docs/guides/mariadb/configuration/using-config-file/index.md index c808f04266..c9ed48f4f4 100644 --- a/docs/guides/mariadb/configuration/using-config-file/index.md +++ b/docs/guides/mariadb/configuration/using-config-file/index.md @@ -39,7 +39,7 @@ KubeDB supports providing custom configuration for MariaDB. This tutorial will s MariaDB allows to configure database via configuration file. The default configuration for MariaDB can be found in `/etc/mysql/my.cnf` file. When MariaDB starts, it will look for custom configuration file in `/etc/mysql/conf.d` directory. If configuration file exist, MariaDB instance will use combined startup setting from both `/etc/mysql/my.cnf` and `*.cnf` files in `/etc/mysql/conf.d` directory. This custom configuration will overwrite the existing default one. To know more about configuring MariaDB see [here](https://mariadb.com/kb/en/configuring-mariadb-with-option-files/). -At first, you have to create a config file with `.cnf` extension with your desired configuration. Then you have to put this file into a [volume](https://kubernetes.io/docs/concepts/storage/volumes/). You have to specify this volume in `spec.configSecret` section while creating MariaDB crd. KubeDB will mount this volume into `/etc/mysql/conf.d` directory of the database pod. +At first, you have to create a config file with `.cnf` extension with your desired configuration. Then you have to put this file into a [volume](https://kubernetes.io/docs/concepts/storage/volumes/). You have to specify this volume in `spec.configuration` section while creating MariaDB crd. KubeDB will mount this volume into `/etc/mysql/conf.d` directory of the database pod. In this tutorial, we will configure [max_connections](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/system-variables/server-system-variables#max_connections) and [read_buffer_size](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/system-variables/server-system-variables#read_buffer_size/) via a custom config file. We will use Secret as volume source. @@ -86,7 +86,7 @@ metadata: ... ``` -Now, create MariaDB crd specifying `spec.configSecret` field. +Now, create MariaDB crd specifying `spec.configuration` field. ```bash $ kubectl apply -f https://github.com/kubedb/docs/raw/{{< param "info.version" >}}/docs/guides/mariadb/configuration/using-config-file/examples/md-custom.yaml @@ -103,8 +103,8 @@ metadata: namespace: demo spec: version: "10.5.23" - configSecret: - name: md-configuration + configuration: + secretName: md-configuration storageType: Durable storage: storageClassName: "standard" diff --git a/docs/guides/mariadb/reconfigure/cluster/examples/sample-mariadb-config.yaml b/docs/guides/mariadb/reconfigure/cluster/examples/sample-mariadb-config.yaml index 882f722362..8ee616b3dd 100644 --- a/docs/guides/mariadb/reconfigure/cluster/examples/sample-mariadb-config.yaml +++ b/docs/guides/mariadb/reconfigure/cluster/examples/sample-mariadb-config.yaml @@ -6,8 +6,8 @@ metadata: spec: version: "10.6.16" replicas: 3 - configSecret: - name: md-configuration + configuration: + secretName: md-configuration storageType: Durable storage: storageClassName: "standard" diff --git a/docs/guides/mariadb/reconfigure/cluster/index.md b/docs/guides/mariadb/reconfigure/cluster/index.md index 09c7339120..368075f16c 100644 --- a/docs/guides/mariadb/reconfigure/cluster/index.md +++ b/docs/guides/mariadb/reconfigure/cluster/index.md @@ -61,7 +61,7 @@ $ kubectl create secret generic -n demo md-configuration --from-file=./md-config secret/md-configuration created ``` -In this section, we are going to create a MariaDB object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `MariaDB` CR that we are going to create, +In this section, we are going to create a MariaDB object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `MariaDB` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1 @@ -72,8 +72,8 @@ metadata: spec: version: "10.6.16" replicas: 3 - configSecret: - name: md-configuration + configuration: + secretName: md-configuration storageType: Durable storage: storageClassName: "standard" @@ -203,7 +203,7 @@ mariadbopsrequest.ops.kubedb.com/mdops-reconfigure-config created #### Verify the new configuration is working -If everything goes well, `KubeDB` Enterprise operator will update the `configSecret` of `MariaDB` object. +If everything goes well, `KubeDB` Enterprise operator will update the `configuration.secretName` of `MariaDB` object. Let's wait for `MariaDBOpsRequest` to be `Successful`. Run the following command to watch `MariaDBOpsRequest` CR, @@ -371,7 +371,7 @@ mariadbopsrequest.ops.kubedb.com/mdops-reconfigure-apply-config created #### Verify the new configuration is working -If everything goes well, `KubeDB` Enterprise operator will update the `configSecret` of `MariaDB` object. +If everything goes well, `KubeDB` operator will update the `configuration.secretName` of `MariaDB` object. Let's wait for `MariaDBOpsRequest` to be `Successful`. Run the following command to watch `MariaDBOpsRequest` CR, @@ -529,7 +529,7 @@ mariadbopsrequest.ops.kubedb.com/mdops-reconfigure-remove created #### Verify the new configuration is working -If everything goes well, `KubeDB` Enterprise operator will update the `configSecret` of `MariaDB` object. +If everything goes well, `KubeDB` operator will update the `configuration.secretName` of `MariaDB` object. Let's wait for `MariaDBOpsRequest` to be `Successful`. Run the following command to watch `MariaDBOpsRequest` CR, diff --git a/docs/guides/mariadb/reconfigure/standalone/examples/sample-mariadb-config.yaml b/docs/guides/mariadb/reconfigure/standalone/examples/sample-mariadb-config.yaml index 6eca7205ba..96db96b0bc 100644 --- a/docs/guides/mariadb/reconfigure/standalone/examples/sample-mariadb-config.yaml +++ b/docs/guides/mariadb/reconfigure/standalone/examples/sample-mariadb-config.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: "10.6.16" - configSecret: - name: md-configuration + configuration: + secretName: md-configuration storageType: Durable storage: storageClassName: "standard" diff --git a/docs/guides/mariadb/reconfigure/standalone/index.md b/docs/guides/mariadb/reconfigure/standalone/index.md index 50417386e7..36aa86d377 100644 --- a/docs/guides/mariadb/reconfigure/standalone/index.md +++ b/docs/guides/mariadb/reconfigure/standalone/index.md @@ -60,7 +60,7 @@ $ kubectl create secret generic -n demo md-configuration --from-file=./md-config secret/md-configuration created ``` -In this section, we are going to create a MariaDB object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `MariaDB` CR that we are going to create, +In this section, we are going to create a MariaDB object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `MariaDB` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1 @@ -70,8 +70,8 @@ metadata: namespace: demo spec: version: "10.6.16" - configSecret: - name: md-configuration + configuration: + secretName: md-configuration storageType: Durable storage: storageClassName: "standard" diff --git a/docs/guides/memcached/concepts/memcached-opsrequest.md b/docs/guides/memcached/concepts/memcached-opsrequest.md index 5d43da18ff..c9a68d8c5e 100644 --- a/docs/guides/memcached/concepts/memcached-opsrequest.md +++ b/docs/guides/memcached/concepts/memcached-opsrequest.md @@ -94,7 +94,7 @@ spec: memcached.conf: | -m 50 -c 50 - + restart: "true" ``` ## MemcachedOpsRequest Spec diff --git a/docs/guides/memcached/concepts/memcached.md b/docs/guides/memcached/concepts/memcached.md index fce448f28f..cf58fdae84 100644 --- a/docs/guides/memcached/concepts/memcached.md +++ b/docs/guides/memcached/concepts/memcached.md @@ -38,8 +38,8 @@ spec: labels: app: kubedb interval: 10s - configSecret: - name: mc-custom-config + configuration: + secretName: mc-custom-config podTemplate: metadata: annotations: @@ -102,9 +102,10 @@ Memcached managed by KubeDB can be monitored with builtin-Prometheus and Prometh - [Monitor Memcached with builtin Prometheus](/docs/guides/memcached/monitoring/using-builtin-prometheus.md) - [Monitor Memcached with Prometheus operator](/docs/guides/memcached/monitoring/using-prometheus-operator.md) -### spec.configSecret - -`spec.configSecret` is an optional field that allows users to provide custom configuration for Memcached. This field accepts a [`VolumeSource`](https://github.com/kubernetes/api/blob/release-1.11/core/v1/types.go#L47). So you can use any Kubernetes supported volume source such as `configMap`, `secret`, `azureDisk` etc. To learn more about how to use a custom configuration file see [here](/docs/guides/memcached/custom-configuration/using-config-file.md). +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for Memcached cluster. It has the following fields: +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the Memcached object. +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for Memcached cluster. ### spec.podTemplate diff --git a/docs/guides/memcached/custom-configuration/using-config-file.md b/docs/guides/memcached/custom-configuration/using-config-file.md index 514118a85b..753dd3a2d1 100644 --- a/docs/guides/memcached/custom-configuration/using-config-file.md +++ b/docs/guides/memcached/custom-configuration/using-config-file.md @@ -41,7 +41,7 @@ Memcached does not allows to configuration via any file. However, configuration To know more about configuring Memcached server see [here](https://github.com/memcached/memcached/wiki/ConfiguringServer). -At first, you have to create a config file named `memcached.conf` with your desired configuration. Then you have to put this file into a [volume](https://kubernetes.io/docs/concepts/storage/volumes/). You have to specify this volume in `spec.configSecret` section while creating Memcached crd. KubeDB will mount this volume into `/usr/config` directory of the database pod. +At first, you have to create a config file named `memcached.conf` with your desired configuration. Then you have to put this file into a [volume](https://kubernetes.io/docs/concepts/storage/volumes/). You have to specify this volume in `spec.configuration` section while creating Memcached crd. KubeDB will mount this volume into `/usr/config` directory of the database pod. In this tutorial, we will configure [max_connections](https://github.com/memcached/memcached/blob/ee171109b3afe1f30ff053166d205768ce635342/doc/protocol.txt#L672) and [limit_maxbytes](https://github.com/memcached/memcached/blob/ee171109b3afe1f30ff053166d205768ce635342/doc/protocol.txt#L720) via secret. @@ -86,7 +86,7 @@ metadata: type: Opaque ``` -Now, create Memcached crd specifying `spec.configSecret` field. +Now, create Memcached crd specifying `spec.configuration` field. ```bash $ kubectl apply -f https://github.com/kubedb/docs/raw/{{< param "info.version" >}}/docs/examples/memcached/configuration/mc-custom.yaml @@ -104,8 +104,8 @@ metadata: spec: replicas: 1 version: "1.6.22" - configSecret: - name: mc-configuration + configuration: + secretName: mc-configuration podTemplate: spec: containers: diff --git a/docs/guides/memcached/reconfigure/reconfigure.md b/docs/guides/memcached/reconfigure/reconfigure.md index c08f926739..44c79204c8 100644 --- a/docs/guides/memcached/reconfigure/reconfigure.md +++ b/docs/guides/memcached/reconfigure/reconfigure.md @@ -65,7 +65,7 @@ $ kubectl create -f mc-configuration secret/mc-configuration created ``` -In this section, we are going to create a Memcached object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `Memcahced` CR that we are going to create, +In this section, we are going to create a Memcached object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `Memcahced` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1 @@ -76,8 +76,8 @@ metadata: spec: replicas: 1 version: "1.6.22" - configSecret: - name: mc-configuration + configuration: + secretName: mc-configuration deletionPolicy: WipeOut ``` @@ -186,7 +186,7 @@ If everything goes well, `KubeDB` Ops-manager operator will update the `configSe Let's wait for `MemcachedOpsRequest` to be `Successful`. Run the following command to watch `MemcahcedOpsRequest` CR, ```bash -$ watch kubectl get memcahcedopsrequest -n demo +$ watch kubectl get memcachedopsrequest -n demo Every 2.0s: kubectl get memcachedopsrequest -n demo NAME TYPE STATUS AGE memcd-reconfig Reconfigure Successful 1m diff --git a/docs/guides/mongodb/concepts/mongodb.md b/docs/guides/mongodb/concepts/mongodb.md index 25b1092efa..940aaef928 100644 --- a/docs/guides/mongodb/concepts/mongodb.md +++ b/docs/guides/mongodb/concepts/mongodb.md @@ -109,8 +109,8 @@ spec: labels: app: kubedb interval: 10s - configSecret: - name: mg-custom-config + configuration: + secretName: mg-custom-config podTemplate: metadata: annotations: @@ -167,8 +167,8 @@ spec: requests: cpu: "200m" memory: "200Mi" - configSecret: - name: another-config + configuration: + secretName: another-config allowedSchemas: namespaces: from: Selector @@ -285,7 +285,7 @@ When `spec.shardTopology` is set, the following fields needs to be empty, otherw - `spec.replicas` - `spec.podTemplate` -- `spec.configSecret` +- `spec.configuration` - `spec.storage` - `spec.ephemeralStorage` @@ -300,7 +300,7 @@ Available configurable fields: - `shards` represents number of shards for a mongodb deployment. Each shard is deployed as a [replicaset](/docs/guides/mongodb/clustering/replication_concept.md). - `replicas` represents number of replicas of each shard replicaset. - `prefix` represents the prefix of each shard node. -- `configSecret` is an optional field to provide custom configuration file for shards (i.e. mongod.cnf). If specified, this file will be used as configuration file otherwise a default configuration file will be used. See below to know about [spec.configSecret](/docs/guides/mongodb/concepts/mongodb.md#specconfigsecret) in details. +- `configSecret` is an optional field to provide custom configuration file for shards (i.e. mongod.cnf). If specified, this file will be used as configuration file otherwise a default configuration file will be used. See below to know about [spec.configuration](/docs/guides/mongodb/concepts/mongodb.md#specconfigsecret) in details. - `podTemplate` is an optional configuration for pods. See below to know about [spec.podTemplate](/docs/guides/mongodb/concepts/mongodb.md#specpodtemplate) in details. - `storage` to specify pvc spec for each node of sharding. You can specify any StorageClass available in your cluster with appropriate resource requests. See below to know about [spec.storage](/docs/guides/mongodb/concepts/mongodb.md#specstorage) in details. - `ephemeralStorage` to specify the configuration of ephemeral storage type, If you want to use volatile temporary storage attached to your instances which is only present during the running lifetime of the instance. @@ -313,7 +313,7 @@ Available configurable fields: - `replicas` represents number of replicas for configServer replicaset. Here, configServer is deployed as a replicaset of mongodb. - `prefix` represents the prefix of configServer nodes. -- `configSecret` is an optional field to provide custom configuration file for config server (i.e mongod.cnf). If specified, this file will be used as configuration file otherwise a default configuration file will be used. See below to know about [spec.configSecret](/docs/guides/mongodb/concepts/mongodb.md#specconfigsecret) in details. +- `configSecret` is an optional field to provide custom configuration file for config server (i.e mongod.cnf). If specified, this file will be used as configuration file otherwise a default configuration file will be used. See below to know about [spec.configuration](/docs/guides/mongodb/concepts/mongodb.md#specconfigsecret) in details. - `podTemplate` is an optional configuration for pods. See below to know about [spec.podTemplate](/docs/guides/mongodb/concepts/mongodb.md#specpodtemplate) in details. - `storage` to specify pvc spec for each node of configServer. You can specify any StorageClass available in your cluster with appropriate resource requests. See below to know about [spec.storage](/docs/guides/mongodb/concepts/mongodb.md#specstorage) in details. - `ephemeralStorage` to specify the configuration of ephemeral storage type, If you want to use volatile temporary storage attached to your instances which is only present during the running lifetime of the instance. @@ -326,7 +326,7 @@ Available configurable fields: - `replicas` represents number of replicas of `Mongos` instance. Here, Mongos is deployed as stateless (deployment) instance. - `prefix` represents the prefix of mongos nodes. -- `configSecret` is an optional field to provide custom configuration file for mongos (i.e. mongod.cnf). If specified, this file will be used as configuration file otherwise a default configuration file will be used. See below to know about [spec.configSecret](/docs/guides/mongodb/concepts/mongodb.md#specconfigsecret) in details. +- `configSecret` is an optional field to provide custom configuration file for mongos (i.e. mongod.cnf). If specified, this file will be used as configuration file otherwise a default configuration file will be used. See below to know about [spec.configuration](/docs/guides/mongodb/concepts/mongodb.md#specconfigsecret) in details. - `podTemplate` is an optional configuration for pods. See below to know about [spec.podTemplate](/docs/guides/mongodb/concepts/mongodb.md#specpodtemplate) in details. ### spec.sslMode @@ -463,15 +463,15 @@ MongoDB managed by KubeDB can be monitored with builtin-Prometheus and Prometheu - [Monitor MongoDB with builtin Prometheus](/docs/guides/mongodb/monitoring/using-builtin-prometheus.md) - [Monitor MongoDB with Prometheus operator](/docs/guides/mongodb/monitoring/using-prometheus-operator.md) -### spec.configSecret +### spec.configuration -`spec.configSecret` is an optional field that allows users to provide custom configuration for MongoDB. You can provide the custom configuration in a secret, then you can specify the secret name `spec.configSecret.name`. +`spec.configuration` is an optional field that allows users to provide custom configuration for MongoDB. You can provide the custom configuration in a secret, then you can specify the secret name `spec.configuration.secretName`. > Please note that, the secret key needs to be `mongod.conf`. To learn more about how to use a custom configuration file see [here](/docs/guides/mongodb/configuration/using-config-file.md). -NB. If `spec.shardTopology` is set, then `spec.configSecret` needs to be empty. Instead use `spec.shardTopology..configSecret` +NB. If `spec.shardTopology` is set, then `spec.configuration` needs to be empty. Instead use `spec.shardTopology..configuration` ### spec.podTemplate @@ -645,7 +645,7 @@ Indicates that the database is halted and all offshoot Kubernetes resources exce ### spec.arbiter If `spec.arbiter` is not null, there will be one arbiter pod on each of the replicaset structure, including shards. It has two fields. - `spec.arbiter.podTemplate` defines the arbiter-pod's template. See [spec.podTemplate](/docs/guides/mongodb/configuration/using-config-file.md) part for more details of this. -- `spec.arbiter.configSecret` is an optional field that allows users to provide custom configurations for MongoDB arbiter. You just need to refer the configuration secret in `spec.arbiter.configSecret.name` field. +- `spec.arbiter.configSecret` is an optional field that allows users to provide custom configurations for MongoDB arbiter. You just need to refer the configuration secret in `spec.arbiter.configuration.secretName` field. > Please note that, the secret key needs to be `mongod.conf`. N.B. If `spec.replicaset` & `spec.shardTopology` both is empty, `spec.arbiter` has to be empty too. diff --git a/docs/guides/mongodb/concepts/opsrequest.md b/docs/guides/mongodb/concepts/opsrequest.md index 06a9e4843b..14f7df0d4c 100644 --- a/docs/guides/mongodb/concepts/opsrequest.md +++ b/docs/guides/mongodb/concepts/opsrequest.md @@ -657,9 +657,8 @@ If you want to reconfigure your Running MongoDB cluster or different components All of them has the following sub-fields: - `configSecret` points to a secret in the same namespace of a MongoDB resource, which contains the new custom configurations. If there are any configSecret set before in the database, this secret will replace it. -- `applyConfig` contains the new custom config as a string which will be merged with the previous configuration. +- `applyConfig` contains the new custom config as a string which will be merged with the previous configuration. It is a map where key supports 3 values, namely `mongod.conf`, `replicaset.json`, `configuration.js`. And value represents the corresponding configurations. -- `applyConfig` is a map where key supports 3 values, namely `mongod.conf`, `replicaset.json`, `configuration.js`. And value represents the corresponding configurations. For your information, replicaset.json is used to modify replica set configurations, which we see in the output of `rs.config()`. And `configurarion.js` is used to apply a js script to configure mongodb at runtime. KubeDB provisioner operator applies these two directly while reconciling. diff --git a/docs/guides/mongodb/configuration/using-config-file.md b/docs/guides/mongodb/configuration/using-config-file.md index 553474d845..98b023cd66 100644 --- a/docs/guides/mongodb/configuration/using-config-file.md +++ b/docs/guides/mongodb/configuration/using-config-file.md @@ -37,11 +37,11 @@ MongoDB allows configuring database via configuration file. The default configur > To learn available configuration option of MongoDB see [Configuration File Options](https://docs.mongodb.com/manual/reference/configuration-options/). -At first, you have to create a secret with your configuration file contents as the value of this key `mongod.conf`. Then, you have to specify the name of this secret in `spec.configSecret.name` section while creating MongoDB crd. KubeDB will mount this secret into `/configdb-readonly/` directory of the database pod. +At first, you have to create a secret with your configuration file contents as the value of this key `mongod.conf`. Then, you have to specify the name of this secret in `spec.configuration.secretName` section while creating MongoDB crd. KubeDB will mount this secret into `/configdb-readonly/` directory of the database pod. -Here one important thing to note that, `spec.configSecret.name` will be used for standard replicaset members & standalone mongodb only. If you want to configure a specific type of mongo nodes, you have to set the name in respective fields. -For example, to configure shard topology node, set `spec.shardTopology..configSecret.name` field. -Similarly, To configure arbiter node, set `spec.arbiter.configSecret.name` field. +Here one important thing to note that, `spec.configuration.secretName` will be used for standard replicaset members & standalone mongodb only. If you want to configure a specific type of mongo nodes, you have to set the name in respective fields. +For example, to configure shard topology node, set `spec.shardTopology..configuration.secretName` field. +Similarly, To configure arbiter node, set `spec.arbiter.configuration.secretName` field. In this tutorial, we will configure [net.maxIncomingConnections](https://docs.mongodb.com/manual/reference/configuration-options/#net.maxIncomingConnections) (default value: 65536) via a custom config file. @@ -85,7 +85,7 @@ net: maxIncomingConnections: 100000 ``` -Now, create MongoDB crd specifying `spec.configSecret` field. +Now, create MongoDB crd specifying `spec.configuration` field. ```yaml apiVersion: kubedb.com/v1 @@ -103,8 +103,8 @@ spec: resources: requests: storage: 1Gi - configSecret: - name: mg-configuration + configuration: + secretName: mg-configuration ``` ```bash diff --git a/docs/guides/mongodb/monitoring/overview.md b/docs/guides/mongodb/monitoring/overview.md index 461fbb54a5..887ad06920 100644 --- a/docs/guides/mongodb/monitoring/overview.md +++ b/docs/guides/mongodb/monitoring/overview.md @@ -55,8 +55,8 @@ metadata: spec: version: "4.4.26" deletionPolicy: WipeOut - configSecret: - name: config + configuration: + secretName: config storageType: Durable storage: storageClassName: default diff --git a/docs/guides/mongodb/reconfigure/replicaset.md b/docs/guides/mongodb/reconfigure/replicaset.md index 543fc789ba..5d137aad9b 100644 --- a/docs/guides/mongodb/reconfigure/replicaset.md +++ b/docs/guides/mongodb/reconfigure/replicaset.md @@ -61,7 +61,7 @@ $ kubectl create secret generic -n demo mg-custom-config --from-file=./mongod.co secret/mg-custom-config created ``` -In this section, we are going to create a MongoDB object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `MongoDB` CR that we are going to create, +In this section, we are going to create a MongoDB object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `MongoDB` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1 @@ -82,8 +82,8 @@ spec: resources: requests: storage: 1Gi - configSecret: - name: mg-custom-config + configuration: + secretName: mg-custom-config ``` Let's create the `MongoDB` CR we have shown above, diff --git a/docs/guides/mongodb/reconfigure/sharding.md b/docs/guides/mongodb/reconfigure/sharding.md index cc6210a731..dca0304f0a 100644 --- a/docs/guides/mongodb/reconfigure/sharding.md +++ b/docs/guides/mongodb/reconfigure/sharding.md @@ -61,7 +61,7 @@ $ kubectl create secret generic -n demo mg-custom-config --from-file=./mongod.co secret/mg-custom-config created ``` -In this section, we are going to create a MongoDB object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `MongoDB` CR that we are going to create, +In this section, we are going to create a MongoDB object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `MongoDB` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1 diff --git a/docs/guides/mongodb/reconfigure/standalone.md b/docs/guides/mongodb/reconfigure/standalone.md index 36ca7f654c..9bab9255de 100644 --- a/docs/guides/mongodb/reconfigure/standalone.md +++ b/docs/guides/mongodb/reconfigure/standalone.md @@ -60,7 +60,7 @@ $ kubectl create secret generic -n demo mg-custom-config --from-file=./mongod.co secret/mg-custom-config created ``` -In this section, we are going to create a MongoDB object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `MongoDB` CR that we are going to create, +In this section, we are going to create a MongoDB object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `MongoDB` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1 @@ -78,8 +78,8 @@ spec: resources: requests: storage: 1Gi - configSecret: - name: mg-custom-config + configuration: + secretName: mg-custom-config ``` Let's create the `MongoDB` CR we have shown above, diff --git a/docs/guides/mongodb/vault-integration/kmip-encryption/examples/mg.yaml b/docs/guides/mongodb/vault-integration/kmip-encryption/examples/mg.yaml index 110b046aca..ebfbbe66e1 100644 --- a/docs/guides/mongodb/vault-integration/kmip-encryption/examples/mg.yaml +++ b/docs/guides/mongodb/vault-integration/kmip-encryption/examples/mg.yaml @@ -24,5 +24,5 @@ spec: storageType: Durable deletionPolicy: WipeOut version: "percona-5.0.23" - configSecret: - name: mg-configuration \ No newline at end of file + configuration: + secretName: mg-configuration \ No newline at end of file diff --git a/docs/guides/mongodb/vault-integration/kmip-encryption/index.md b/docs/guides/mongodb/vault-integration/kmip-encryption/index.md index 800cb1c4e6..08feea2843 100644 --- a/docs/guides/mongodb/vault-integration/kmip-encryption/index.md +++ b/docs/guides/mongodb/vault-integration/kmip-encryption/index.md @@ -173,8 +173,8 @@ spec: storageType: Durable deletionPolicy: WipeOut version: "percona-5.0.23" - configSecret: - name: mg-configuration + configuration: + secretName: mg-configuration ``` ```bash diff --git a/docs/guides/mssqlserver/clustering/ag_cluster.md b/docs/guides/mssqlserver/clustering/ag_cluster.md index 3e5ee0db25..8d7860c7be 100644 --- a/docs/guides/mssqlserver/clustering/ag_cluster.md +++ b/docs/guides/mssqlserver/clustering/ag_cluster.md @@ -101,7 +101,7 @@ When deploying `Microsoft SQL Server` on Linux using `containers`, you need to s `EnterpriseCore`: This will run the container using the Enterprise Edition Core ``: This will run the container with the edition that is associated with the PID -`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://go.microsoft.com/fwlink/?linkid=857698). +`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-ver17#:~:text=ACCEPT_EULA,SQL%20Server%20image.). For a complete list of environment variables that can be used, refer to the documentation [here](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-2017). diff --git a/docs/guides/mssqlserver/clustering/dag_cluster.md b/docs/guides/mssqlserver/clustering/dag_cluster.md index 3d216072eb..2856295421 100644 --- a/docs/guides/mssqlserver/clustering/dag_cluster.md +++ b/docs/guides/mssqlserver/clustering/dag_cluster.md @@ -104,7 +104,7 @@ When deploying `Microsoft SQL Server` on Linux using `containers`, you need to s `EnterpriseCore`: This will run the container using the Enterprise Edition Core ``: This will run the container with the edition that is associated with the PID -`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://go.microsoft.com/fwlink/?linkid=857698). +`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-ver17#:~:text=ACCEPT_EULA,SQL%20Server%20image.). For a complete list of environment variables that can be used, refer to the documentation [here](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-2017). diff --git a/docs/guides/mssqlserver/clustering/standalone.md b/docs/guides/mssqlserver/clustering/standalone.md index 2d41c9f402..2ce28b37a2 100644 --- a/docs/guides/mssqlserver/clustering/standalone.md +++ b/docs/guides/mssqlserver/clustering/standalone.md @@ -103,7 +103,7 @@ When deploying `Microsoft SQL Server` on Linux using `containers`, you need to s `EnterpriseCore`: This will run the container using the Enterprise Edition Core ``: This will run the container with the edition that is associated with the PID -`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://go.microsoft.com/fwlink/?linkid=857698). +`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-ver17#:~:text=ACCEPT_EULA,SQL%20Server%20image.). For a complete list of environment variables that can be used, refer to the documentation [here](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-2017). diff --git a/docs/guides/mssqlserver/concepts/mssqlserver.md b/docs/guides/mssqlserver/concepts/mssqlserver.md index e97eb0d3f1..3115cbe32c 100644 --- a/docs/guides/mssqlserver/concepts/mssqlserver.md +++ b/docs/guides/mssqlserver/concepts/mssqlserver.md @@ -31,11 +31,11 @@ metadata: name: mssqlserver namespace: demo spec: + configuration: + secretName: mssql-custom-config authSecret: kind: Secret - name: mssqlserver-auth - configSecret: - name: mssqlserver-custom-config + name: mssql-admin-cred topology: availabilityGroup: databases: @@ -254,9 +254,10 @@ To learn how to configure `spec.storage`, please visit the links below: MSSQLServer managed by KubeDB can be monitored with Prometheus operator out-of-the-box. -### spec.configSecret - -`spec.configSecret` is an optional field that allows users to provide custom configuration for MSSQLServer. This field accepts a [`VolumeSource`](https://github.com/kubernetes/api/blob/release-1.11/core/v1/types.go#L47). You can use Kubernetes supported volume source `secret`. +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for mssqlserver cluster. It has the following fields: +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the mssqlserver object. +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for mssqlserver cluster. ### spec.topology @@ -566,8 +567,7 @@ When deploying `Microsoft SQL Server` on Linux using `containers`, you need to s `EnterpriseCore`: This will run the container using the Enterprise Edition Core ``: This will run the container with the edition that is associated with the PID -`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://go.microsoft.com/fwlink/?linkid=857698). - +`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-ver17#:~:text=ACCEPT_EULA,SQL%20Server%20image). For a complete list of environment variables that can be used, refer to the documentation [here](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-2017). Below is an example of how to configure the `MSSQL_PID` and `ACCEPT_EULA` environment variable in the KubeDB MSSQLServer Custom Resource Definition (CRD): diff --git a/docs/guides/mssqlserver/configuration/using-config-file.md b/docs/guides/mssqlserver/configuration/using-config-file.md index e4d0158891..aad051746e 100644 --- a/docs/guides/mssqlserver/configuration/using-config-file.md +++ b/docs/guides/mssqlserver/configuration/using-config-file.md @@ -39,7 +39,7 @@ SQL Server allows configuring database via configuration file. The default confi > To learn available configuration option of SQL Server see [Configure SQL Server on Linux](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf?view=sql-server-ver16). -At first, you have to create a config file named `mssql.conf` with your desired configuration. Then you have to create a [secret](https://kubernetes.io/docs/concepts/configuration/secret/) using this file. Then specify this secret name in `spec.configSecret.name` section while creating MSSQLServer CR. +At first, you have to create a config file named `mssql.conf` with your desired configuration. Then you have to create a [secret](https://kubernetes.io/docs/concepts/configuration/secret/) using this file. Then specify this secret name in `spec.configuration.secretName` section while creating MSSQLServer CR. KubeDB will create a secret named `{mssqlserver-name}-config` with configuration file contents as the value of the key `mssql.conf` and mount this secret into `/var/opt/mssql/` directory of the database pod. The secret named `{mssqlserver-name}-config` will contain your desired configurations with some default configurations. @@ -134,7 +134,7 @@ issuer.cert-manager.io/mssqlserver-ca-issuer created -Now, create MSSQLServer CR specifying `spec.configSecret` field. +Now, create MSSQLServer CR specifying `spec.configuration` field. ```yaml apiVersion: kubedb.com/v1alpha2 @@ -144,8 +144,8 @@ metadata: namespace: demo spec: version: "2022-cu12" - configSecret: - name: ms-custom-config + configuration: + secretName: ms-custom-config replicas: 1 tls: issuerRef: diff --git a/docs/guides/mssqlserver/quickstart/quickstart.md b/docs/guides/mssqlserver/quickstart/quickstart.md index 2c1e1d3749..0a51b4d311 100644 --- a/docs/guides/mssqlserver/quickstart/quickstart.md +++ b/docs/guides/mssqlserver/quickstart/quickstart.md @@ -106,7 +106,7 @@ When deploying `Microsoft SQL Server` on Linux using `containers`, you need to s `EnterpriseCore`: This will run the container using the Enterprise Edition Core ``: This will run the container with the edition that is associated with the PID -`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://go.microsoft.com/fwlink/?linkid=857698). +`ACCEPT_EULA` confirms your acceptance of the [End-User Licensing Agreement](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-ver17#:~:text=ACCEPT_EULA,SQL%20Server%20image.). For a complete list of environment variables that can be used, refer to the documentation [here](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-2017). diff --git a/docs/guides/mssqlserver/reconfigure/ag_cluster.md b/docs/guides/mssqlserver/reconfigure/ag_cluster.md index 1ce0a35ffa..0b143899c4 100644 --- a/docs/guides/mssqlserver/reconfigure/ag_cluster.md +++ b/docs/guides/mssqlserver/reconfigure/ag_cluster.md @@ -97,7 +97,7 @@ $ kubectl create secret generic -n demo ms-custom-config --from-file=./mssql.con secret/ms-custom-config created ``` -In this section, we are going to create a MSSQLServer object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `MSSQLServer` CR that we are going to create, +In this section, we are going to create a MSSQLServer object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `MSSQLServer` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1alpha2 @@ -107,8 +107,8 @@ metadata: namespace: demo spec: version: "2022-cu12" - configSecret: - name: ms-custom-config + configuration: + secretName: ms-custom-config replicas: 3 topology: mode: AvailabilityGroup @@ -223,8 +223,8 @@ spec: databaseRef: name: mssqlserver-ag-cluster configuration: - configSecret: - name: new-custom-config +- configuration: ++ secretName: new-custom-config timeout: 5m apply: IfReady ``` @@ -233,7 +233,7 @@ Here, - `spec.databaseRef.name` specifies that we are reconfiguring `mssqlserver-ag-cluster` database. - `spec.type` specifies that we are performing `Reconfigure` on our database. -- `spec.customConfig.replicaSet.configSecret.name` specifies the name of the new secret. +- `spec.configuration.secretName` specifies the name of the new secret. - Have a look [here](/docs/guides/mssqlserver/concepts/opsrequest.md#spectimeout) on the respective sections to understand the `timeout` & `apply` fields. Let's create the `MSSQLServerOpsRequest` CR we have shown above, diff --git a/docs/guides/mssqlserver/reconfigure/standalone.md b/docs/guides/mssqlserver/reconfigure/standalone.md index 3a9790a135..1b48451d86 100644 --- a/docs/guides/mssqlserver/reconfigure/standalone.md +++ b/docs/guides/mssqlserver/reconfigure/standalone.md @@ -97,7 +97,7 @@ $ kubectl create secret generic -n demo ms-custom-config --from-file=./mssql.con secret/ms-custom-config created ``` -In this section, we are going to create a MSSQLServer object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `MSSQLServer` CR that we are going to create, +In this section, we are going to create a MSSQLServer object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `MSSQLServer` CR that we are going to create, ```yaml apiVersion: kubedb.com/v1alpha2 @@ -107,8 +107,8 @@ metadata: namespace: demo spec: version: "2022-cu12" - configSecret: - name: ms-custom-config + configuration: + secretName: ms-custom-config replicas: 1 tls: issuerRef: @@ -270,8 +270,8 @@ Metadata: Spec: Apply: IfReady Configuration: - Config Secret: - Name: new-custom-config + Configuration: + SecretName: new-custom-config Database Ref: Name: ms-standalone Timeout: 5m diff --git a/docs/guides/mysql/concepts/database/index.md b/docs/guides/mysql/concepts/database/index.md index 28af5d2070..bdabc2461d 100644 --- a/docs/guides/mysql/concepts/database/index.md +++ b/docs/guides/mysql/concepts/database/index.md @@ -69,8 +69,8 @@ spec: - localhost ipAddresses: - "127.0.0.1" - configSecret: - name: my-custom-config + configuration: + secretName: my-custom-config podTemplate: metadata: annotations: @@ -274,9 +274,10 @@ The following fields are configurable in the `spec.tls` section: - `uriSANs` (optional) is a list of URI Subject Alternative Names to be set in the Certificate. - `emailSANs` (optional) is a list of email Subject Alternative Names to be set in the Certificate. -### spec.configSecret - -`spec.configSecret` is an optional field that allows users to provide custom configuration for MySQL. This field accepts a [`VolumeSource`](https://github.com/kubernetes/api/blob/release-1.11/core/v1/types.go#L47). So you can use any Kubernetes supported volume source such as `configMap`, `secret`, `azureDisk` etc. To learn more about how to use a custom configuration file see [here](/docs/guides/mysql/configuration/config-file/index.md). +### spec.configuration +`spec.configuration` is an optional field that specifies custom configuration for MySql cluster. It has the following fields: +- `configuration.inline` is an optional field that allows you to provide custom configuration directly in the MySql object. +- `configuration.secretName` is an optional field that specifies the name of the secret that holds custom configuration files for MySql cluster. ### spec.podTemplate diff --git a/docs/guides/mysql/configuration/config-file/index.md b/docs/guides/mysql/configuration/config-file/index.md index 10b0649359..e329d0288e 100644 --- a/docs/guides/mysql/configuration/config-file/index.md +++ b/docs/guides/mysql/configuration/config-file/index.md @@ -39,7 +39,7 @@ KubeDB supports providing custom configuration for MySQL. This tutorial will sho MySQL allows to configure database via configuration file. The default configuration for MySQL can be found in `/etc/mysql/my.cnf` file. When MySQL starts, it will look for custom configuration file in `/etc/mysql/conf.d` directory. If configuration file exist, MySQL instance will use combined startup setting from both `/etc/mysql/my.cnf` and `*.cnf` files in `/etc/mysql/conf.d` directory. This custom configuration will overwrite the existing default one. To know more about configuring MySQL see [here](https://dev.mysql.com/doc/refman/8.0/en/server-configuration.html). -At first, you have to create a config file with `.cnf` extension with your desired configuration. Then you have to put this file into a [volume](https://kubernetes.io/docs/concepts/storage/volumes/). You have to specify this volume in `spec.configSecret` section while creating MySQL crd. KubeDB will mount this volume into `/etc/mysql/conf.d` directory of the database pod. +At first, you have to create a config file with `.cnf` extension with your desired configuration. Then you have to put this file into a [volume](https://kubernetes.io/docs/concepts/storage/volumes/). You have to specify this volume in `spec.configuration` section while creating MySQL crd. KubeDB will mount this volume into `/etc/mysql/conf.d` directory of the database pod. In this tutorial, we will configure [max_connections](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_connections) and [read_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_read_buffer_size) via a custom config file. We will use configMap as volume source. @@ -87,7 +87,7 @@ type: Opaque ``` -Now, create MySQL crd specifying `spec.configSecret` field. +Now, create MySQL crd specifying `spec.configuration` field. ```bash $ kubectl apply -f https://github.com/kubedb/docs/raw/{{< param "info.version" >}}/docs/guides/mysql/configuration/config-file/yamls/mysql-custom.yaml @@ -104,8 +104,8 @@ metadata: namespace: demo spec: version: "9.1.0" - configSecret: - name: my-configuration + configuration: + secretName: my-configuration storage: storageClassName: "standard" accessModes: diff --git a/docs/guides/mysql/configuration/config-file/yamls/mysql-custom.yaml b/docs/guides/mysql/configuration/config-file/yamls/mysql-custom.yaml index 6ffa1df958..5e438f2a1b 100644 --- a/docs/guides/mysql/configuration/config-file/yamls/mysql-custom.yaml +++ b/docs/guides/mysql/configuration/config-file/yamls/mysql-custom.yaml @@ -5,8 +5,8 @@ metadata: namespace: demo spec: version: "9.1.0" - configSecret: - name: my-configuration + configuration: + secretName: my-configuration storage: storageClassName: "standard" accessModes: diff --git a/docs/guides/mysql/reconfigure/reconfigure-steps/index.md b/docs/guides/mysql/reconfigure/reconfigure-steps/index.md index d7e2fe5cf7..815183677d 100644 --- a/docs/guides/mysql/reconfigure/reconfigure-steps/index.md +++ b/docs/guides/mysql/reconfigure/reconfigure-steps/index.md @@ -60,7 +60,7 @@ $ kubectl create secret generic -n demo my-configuration --from-file=./my-config secret/my-configuration created ``` -In this section, we are going to create a MySQL object specifying `spec.configSecret` field to apply this custom configuration. Below is the YAML of the `MySQL` CR that we are going to create, +In this section, we are going to create a MySQL object specifying `spec.configuration` field to apply this custom configuration. Below is the YAML of the `MySQL` CR that we are going to create,