kubedb

package
v0.66.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2026 License: Apache-2.0 Imports: 6 Imported by: 50

Documentation

Index

Constants

View Source
const (
	// Deprecated
	DatabaseNamePrefix = "kubedb"

	KubeDBOrganization = "kubedb"

	StatefulSetPodNameLabelKey = "statefulset.kubernetes.io/pod-name"
	LabelRole                  = GroupName + "/role"
	LabelPetSet                = GroupName + "/petset"

	PrometheusAddressFile     = "/var/prometheus-data/address"
	PrometheusCaFile          = "/var/prometheus-data/ca.crt"
	PrometheusTokenFile       = "/var/prometheus-data/token.txt"
	MonitoringAgentAnnotation = GroupName + "/monitoring-agent"

	InlinePropertiesKey     = "inline.properties"
	InlineConfigKey         = "inline.conf"
	InlineConfigKeyPrefix   = "inline"
	InlineConfigKeyPrefixZZ = "zz-inline"

	ReplicationModeDetectorContainerName = "replication-mode-detector"
	DatabasePodPrimary                   = "primary"
	DatabasePodStandby                   = "standby"
	DatabasePodSecondary                 = "secondary"

	ComponentDatabase         = "database"
	ComponentConnectionPooler = "connection-pooler"
	RoleStats                 = "stats"
	DefaultStatsPath          = "/metrics"
	DefaultPasswordLength     = 16
	HealthCheckInterval       = 10 * time.Second

	ContainerExporterName = "exporter"
	LocalHost             = "localhost"
	LocalHostIP           = "127.0.0.1"

	DBCustomConfigName             = "custom-config"
	DefaultVolumeClaimTemplateName = "data"

	DBTLSVolume         = "tls-volume"
	DBExporterTLSVolume = "exporter-tls-volume"

	CACert = "ca.crt"

	// =========================== Database key Constants ============================
	PostgresKey      = "postgres" + "." + GroupName
	ElasticsearchKey = "elasticsearch" + "." + GroupName
	MySQLKey         = "mysql" + "." + GroupName
	MariaDBKey       = "mariadb" + "." + GroupName
	PerconaXtraDBKey = "perconaxtradb" + "." + GroupName
	MongoDBKey       = "mongodb" + "." + GroupName
	RedisKey         = "redis" + "." + GroupName
	MemcachedKey     = "memcached" + "." + GroupName
	EtcdKey          = "etcd" + "." + GroupName
	ProxySQLKey      = "proxysql" + "." + GroupName

	// Auth related constants
	AuthActiveFromAnnotation     = GroupName + "/auth-active-from"
	HanaDBTLSResetModeAnnotation = GroupName + "/hanadb-tls-reset-mode"
	HanaDBTLSResetModeClientPKI  = "clientpki"

	// =========================== Elasticsearch Constants ============================
	ElasticsearchRestPort                        = 9200
	ElasticsearchRestPortName                    = "http"
	ElasticsearchTransportPort                   = 9300
	ElasticsearchTransportPortName               = "transport"
	ElasticsearchPerformanceAnalyzerPort         = 9600
	ElasticsearchPerformanceAnalyzerPortName     = "analyzer"
	ElasticsearchNodeRoleSet                     = "set"
	ElasticsearchConfigDir                       = "/usr/share/elasticsearch/config"
	ElasticsearchOpenSearchConfigDir             = "/usr/share/opensearch/config"
	ElasticsearchSecureSettingsDir               = "/elasticsearch/secure-settings"
	ElasticsearchTempConfigDir                   = "/elasticsearch/temp-config"
	ElasticsearchCustomConfigDir                 = "/elasticsearch/custom-config"
	ElasticsearchDataDir                         = "/usr/share/elasticsearch/data"
	ElasticsearchOpenSearchDataDir               = "/usr/share/opensearch/data"
	ElasticsearchTempDir                         = "/tmp"
	ElasticsearchOpendistroSecurityConfigDir     = "/usr/share/elasticsearch/plugins/opendistro_security/securityconfig"
	ElasticsearchOpenSearchSecurityConfigDir     = "/usr/share/opensearch/plugins/opensearch-security/securityconfig"
	ElasticsearchOpenSearchSecurityConfigDirV2   = "/usr/share/opensearch/config/opensearch-security"
	ElasticsearchSearchGuardSecurityConfigDir    = "/usr/share/elasticsearch/plugins/search-guard-%v/sgconfig"
	ElasticsearchOpendistroReadallMonitorRole    = "readall_and_monitor"
	ElasticsearchOpenSearchReadallMonitorRole    = "readall_and_monitor"
	ElasticsearchSearchGuardReadallMonitorRoleV7 = "SGS_READALL_AND_MONITOR"
	ElasticsearchSearchGuardReadallMonitorRoleV6 = "sg_readall_and_monitor"
	ElasticsearchStatusGreen                     = "green"
	ElasticsearchStatusYellow                    = "yellow"
	ElasticsearchStatusRed                       = "red"
	ElasticsearchInitSysctlContainerName         = "init-sysctl"
	ElasticsearchInitConfigMergerContainerName   = "config-merger"
	ElasticsearchContainerName                   = "elasticsearch"
	ElasticsearchExporterContainerName           = "exporter"
	ElasticsearchSearchGuardRolesMappingFileName = "sg_roles_mapping.yml"
	ElasticsearchSearchGuardInternalUserFileName = "sg_internal_users.yml"
	ElasticsearchOpendistroRolesMappingFileName  = "roles_mapping.yml"
	ElasticsearchOpendistroInternalUserFileName  = "internal_users.yml"
	ElasticsearchJavaOptsEnv                     = "ES_JAVA_OPTS"
	ElasticsearchOpenSearchJavaOptsEnv           = "OPENSEARCH_JAVA_OPTS"
	ElasticsearchVolumeConfig                    = "esconfig"
	ElasticsearchVolumeTempConfig                = "temp-config"
	ElasticsearchVolumeSecurityConfig            = "security-config"
	ElasticsearchVolumeSecureSettings            = "secure-settings"
	ElasticsearchVolumeCustomConfig              = "custom-config"
	ElasticsearchVolumeData                      = "data"
	ElasticsearchVolumeTemp                      = "temp"
	ElasticsearchConfigFileName                  = "elasticsearch.yml"
	ElasticsearchScriptFileName                  = "startup.sh"
	ElasticsearchVolumeScriptFileName            = "startup-script"
	ElasticsearchVolumeScriptDir                 = "/script"

	// Ref:
	//	- https://www.elastic.co/guide/en/elasticsearch/reference/7.6/heap-size.html#heap-size
	//	- no more than 50% of your physical RAM
	//	- no more than 32GB that the JVM uses for compressed object pointers (compressed oops)
	//	- no more than 26GB for zero-based compressed oops;
	// 26 GB is safe on most systems
	ElasticsearchMaxHeapSize = 26 * 1024 * 1024 * 1024
	// 128MB
	ElasticsearchMinHeapSize = 128 * 1024 * 1024

	MemcachedConfigKey              = "memcached.conf" // MemcachedConfigKey is going to create for the customize memcached configuration
	MemcachedDefaultKey             = "default.conf"   //
	MemcachedDatabasePortName       = "db"
	MemcachedPrimaryServicePortName = "primary"
	MemcachedDatabasePort           = 11211
	MemcachedContainerName          = "memcached"
	MemcachedExporterContainerName  = "exporter"

	MemcachedConfigVolumeName = "memcached-config"
	MemcachedConfigVolumePath = "/usr/config/"

	MemcachedDataVolumeName = "data"
	MemcachedDataVolumePath = "/usr/data/"

	MemcachedAuthVolumeName = "auth"
	MemcachedAuthVolumePath = "/usr/auth/"

	MemcachedExporterAuthVolumeName = "exporter-auth"
	MemcachedExporterAuthVolumePath = "/auth/"

	// AuthDataKey store Username Password Pairs.
	AuthDataKey = "authData"

	MemcachedExporterTLSVolumeName = "exporter-tls"
	MemcachedExporterTLSVolumePath = "/certs/"

	MemcachedTLSVolumeName = "tls"
	MemcachedTLSVolumePath = "/usr/certs/"

	MemcachedHealthKey   = "kubedb_memcached_health_key"
	MemcachedHealthValue = "kubedb_memcached_health_value"

	MemcachedUserName = "user"
	MemcachedPassword = "pass"

	MongoDBDatabasePortName       = "db"
	MongoDBPrimaryServicePortName = "primary"
	MongoDBDatabasePort           = 27017
	MongoDBKeyFileSecretSuffix    = "-key"
	MongoDBRootUsername           = "root"
	MongoDBCustomConfigFile       = "mongod.conf"
	MongoDBReplicaSetConfig       = "replicaset.json"
	MongoDBConfigurationJSFile    = "configuration.js"
	NodeTypeMongos                = "mongos"
	NodeTypeShard                 = "shard"
	NodeTypeConfig                = "configsvr"
	NodeTypeArbiter               = "arbiter"
	NodeTypeHidden                = "hidden"
	NodeTypeReplica               = "replica"
	NodeTypeStandalone            = "standalone"

	MongoDBWorkDirectoryName = "workdir"
	MongoDBWorkDirectoryPath = "/work-dir"

	MongoDBCertDirectoryName = "certdir"

	MongoDBDataDirectoryName = "datadir"
	MongoDBDataDirectoryPath = "/data/db"

	MongoDBInitInstallContainerName   = "copy-config"
	MongoDBInitBootstrapContainerName = "bootstrap"

	MongoDBConfigDirectoryName = "config"
	MongoDBConfigDirectoryPath = "/data/configdb"

	MongoDBInitialConfigDirectoryName = "configdir"
	MongoDBInitialConfigDirectoryPath = "/configdb-readonly"

	MongoDBInitScriptDirectoryName = "init-scripts"
	MongoDBInitScriptDirectoryPath = "/init-scripts"

	MongoDBInitialDirectoryName = "initial-script"
	MongoDBInitialDirectoryPath = "/docker-entrypoint-initdb.d"

	MongoDBClientCertDirectoryName = "client-cert"
	MongoDBClientCertDirectoryPath = "/client-cert"

	MongoDBServerCertDirectoryName = "server-cert"
	MongoDBServerCertDirectoryPath = "/server-cert"

	MongoDBInitialKeyDirectoryName = "keydir"
	MongoDBInitialKeyDirectoryPath = "/keydir-readonly"

	MongoDBContainerName = "mongodb"

	MongoDBDefaultVolumeClaimTemplateName = MongoDBDataDirectoryName

	MongodbUser             = "root"
	MongoDBKeyForKeyFile    = "key.txt"
	MongoDBAuthSecretSuffix = "-auth"

	// =========================== MySQL Constants ============================
	MySQLMetricsExporterConfigSecretSuffix = "metrics-exporter-config"
	MySQLDatabasePortName                  = "db"
	MySQLRouterReadWritePortName           = "rw"
	MySQLRouterReadOnlyPortName            = "ro"
	MySQLRouterReadWriteSplitPortName      = "rwsplit"
	MySQLPrimaryServicePortName            = "primary"
	MySQLStandbyServicePortName            = "standby"
	MySQLDatabasePort                      = 3306
	MySQLRouterReadWritePort               = 6446
	MySQLRouterReadOnlyPort                = 6447
	MySQLRouterReadWriteSplitPort          = 6450

	MySQLCoordinatorClientPort = 2379
	MySQLCoordinatorPort       = 2380
	MySQLCoordinatorStatus     = "Coordinator/Status"

	MySQLGroupComPort    = 33060
	MySQLMaxGroupMembers = 9
	// The recommended MySQL server version for group replication (GR)
	MySQLGRRecommendedVersion = "8.0.23"
	MySQLDefaultGroupSize     = 3
	MySQLRootUserName         = "MYSQL_ROOT_USERNAME"
	MySQLRootPassword         = "MYSQL_ROOT_PASSWORD"
	MySQLName                 = "MYSQL_NAME"
	MySQLRootUser             = "root"

	MySQLTLSConfigCustom     = "custom"
	MySQLTLSConfigSkipVerify = "skip-verify"
	MySQLTLSConfigTrue       = "true"
	MySQLTLSConfigFalse      = "false"
	MySQLTLSConfigPreferred  = "preferred"
	MySQLRouterSuffix        = "router"

	MySQLContainerName            = "mysql"
	MySQLRouterContainerName      = "mysql-router"
	MySQLRouterInitContainerName  = "mysql-router-init"
	MySQLCoordinatorContainerName = "mysql-coordinator"
	MySQLInitContainerName        = "mysql-init"

	MySQLRouterInitScriptDirectoryName = "init-scripts"
	MySQLRouterInitScriptDirectoryPath = "/scripts"
	MySQLRouterConfigDirectoryName     = "router-config-secret"
	MySQLRouterConfigDirectoryPath     = "/etc/mysqlrouter"
	MySQLRouterTLSDirectoryName        = "router-tls-volume"
	MySQLRouterTLSDirectoryPath        = "/etc/mysql/certs"
	MySQLReplicationUser               = "repl"

	MySQLComponentKey     = MySQLKey + "/component"
	MySQLComponentDB      = "database"
	MySQLComponentRouter  = "router"
	MySQLCustomConfigFile = "my-inline.cnf"

	MySQLVolumeNameTemp      = "tmp"
	MySQLVolumeMountPathTemp = "/tmp"

	MySQLVolumeNameData      = "data"
	MySQLVolumeMountPathData = "/var/lib/mysql"

	MySQLVolumeNameUserInitScript      = "initial-script"
	MySQLVolumeMountPathUserInitScript = "/docker-entrypoint-initdb.d"

	MySQLVolumeNameInitScript      = "init-scripts"
	MySQLVolumeMountPathInitScript = "/scripts"

	MySQLVolumeNameCustomConfig      = "custom-config"
	MySQLVolumeMountPathCustomConfig = "/etc/mysql/conf.d"

	MySQLVolumeNameTLS      = "tls-volume"
	MySQLVolumeMountPathTLS = "/etc/mysql/certs"

	MySQLVolumeNameExporterTLS      = "exporter-tls-volume"
	MySQLVolumeMountPathExporterTLS = "/etc/mysql/certs"

	MySQLVolumeNameSourceCA      = "source-ca"
	MySQLVolumeMountPathSourceCA = "/etc/mysql/server/certs"

	// =========================== PerconaXtraDB Constants ============================
	PerconaXtraDBClusterRecommendedVersion     = "5.7"
	PerconaXtraDBMaxClusterNameLength          = 32
	PerconaXtraDBStandaloneReplicas            = 1
	PerconaXtraDBDefaultClusterSize            = 3
	PerconaXtraDBDataMountPath                 = "/var/lib/mysql"
	PerconaXtraDBDataLostFoundPath             = PerconaXtraDBDataMountPath + "/lost+found"
	PerconaXtraDBInitDBVolumeName              = "initial-script"
	PerconaXtraDBInitDBMountPath               = "/docker-entrypoint-initdb.d"
	PerconaXtraDBCustomConfigMountPath         = "/etc/percona-server.conf.d/"
	PerconaXtraDBClusterCustomConfigMountPath  = "/etc/mysql/custom.conf.d/"
	PerconaXtraDBCustomConfigVolumeName        = "custom-config"
	PerconaXtraDBTLSConfigCustom               = "custom"
	PerconaXtraDBInitContainerName             = "px-init"
	PerconaXtraDBCoordinatorContainerName      = "px-coordinator"
	PerconaXtraDBRunScriptVolumeName           = "run-script"
	PerconaXtraDBRunScriptVolumeMountPath      = "/run-script"
	PerconaXtraDBInitScriptVolumeName          = "init-scripts"
	PerconaXtraDBInitScriptVolumeMountPath     = "/scripts"
	PerconaXtraDBContainerName                 = "perconaxtradb"
	PerconaXtraDBCertMountPath                 = "/etc/mysql/certs"
	PerconaXtraDBExporterConfigFileName        = "exporter.cnf"
	PerconaXtraDBGaleraClusterPrimaryComponent = "Primary"
	PerconaXtraDBServerTLSVolumeName           = "tls-server-config"
	PerconaXtraDBClientTLSVolumeName           = "tls-client-config"
	PerconaXtraDBExporterTLSVolumeName         = "tls-metrics-exporter-config"
	PerconaXtraDBMetricsExporterTLSVolumeName  = "metrics-exporter-config"
	PerconaXtraDBMetricsExporterConfigPath     = "/etc/mysql/config/exporter"
	PerconaXtraDBDataVolumeName                = "data"
	PerconaXtraDBMySQLUserGroupID              = 1001

	// =========================== MariaDB Constants ============================
	MariaDBMaxClusterNameLength          = 32
	MariaDBStandaloneReplicas            = 1
	MariaDBDefaultClusterSize            = 3
	MariaDBDataMountPath                 = "/var/lib/mysql"
	MariaDBDataLostFoundPath             = MariaDBDataMountPath + "/lost+found"
	MariaDBInitDBVolumeName              = "initial-script"
	MariaDBInitDBMountPath               = "/docker-entrypoint-initdb.d"
	MariaDBCustomConfigMountPath         = "/etc/mysql/conf.d/"
	MariaDBClusterCustomConfigMountPath  = "/etc/mysql/custom.conf.d/"
	MariaDBCustomConfigVolumeName        = "custom-config"
	MariaDBTLSConfigCustom               = "custom"
	MariaDBInitContainerName             = "mariadb-init"
	MariaDBCoordinatorContainerName      = "md-coordinator"
	MariaDBRunScriptVolumeName           = "run-script"
	MariaDBRunScriptVolumeMountPath      = "/run-script"
	MariaDBInitScriptVolumeName          = "init-scripts"
	MariaDBInitScriptVolumeMountPath     = "/scripts"
	MariaDBContainerName                 = "mariadb"
	MariaDBCertMountPath                 = "/etc/mysql/certs"
	MariaDBExporterConfigFileName        = "exporter.cnf"
	MariaDBGaleraClusterPrimaryComponent = "Primary"
	MariaDBServerTLSVolumeName           = "tls-server-config"
	MariaDBClientTLSVolumeName           = "tls-client-config"
	MariaDBExporterTLSVolumeName         = "tls-metrics-exporter-config"
	MariaDBMetricsExporterTLSVolumeName  = "metrics-exporter-config"
	MariaDBMetricsExporterConfigPath     = "/etc/mysql/config/exporter"
	MariaDBDataVolumeName                = "data"

	DatabasePodPrimaryComponent = "Primary"
	DatabasePodMasterComponent  = "Master"
	DatabasePodSlaveComponent   = "Slave"

	MariaDBArchiverPVCRestorerSuffix           = "pvc-restorer"
	MariaDBBinlogRestoreSidekickSuffix         = "binlog-restorer"
	MariaDBBinlogRestoreServiceSuffix          = "binlog-restore"
	MariaDBXtraBackupInfoFile                  = "/var/lib/mysql/mariadb_backup_binlog_info"
	MariaDBBackupInfoFile                      = "/var/lib/mysql/xtrabackup_binlog_info"
	MariaDBArchiverRestoreRecoveryFileName     = "/tmp/recovery.done"
	MariaDBArchiverBackupJobSelector           = GroupName + "/archiver-job-name"
	MariaDBSidekickNameLabelKey                = GroupName + "/sidekick-name"
	MariaDBArchiverBaseBackupRestic            = "Restic"
	MariaDBArchiverBaseBackupVolumeSnapshooter = "VolumeSnapshotter"

	// Maxscale
	MaxscaleCommonName            = "mx"
	MaxscaleContainerName         = "maxscale"
	MaxscaleInitContainerName     = "maxscale-init"
	MaxscaleServerName            = "server"
	MaxscaleConfigName            = "config"
	MaxscaleConfigPath            = "/etc/maxscale.cnf.d"
	MaxScaleCustomConfigMountPath = "/etc/maxscale/maxscale.custom.d"
	MaxscaleDefaultConfigName     = "default-config"
	MaxscaleDefaultConfigPath     = "/etc/maxscale"
	MaxscaleDataVolumeName        = "data"
	MaxscaleDataVolumePath        = "/var/lib/maxscale"
	MaxscaleUIPort                = 8989
	MaxscaleUIPortName            = "ui"
	MaxscaleCertMountPath         = "/etc/ssl/maxscale"

	// =========================== SingleStore Constants ============================
	SinglestoreDatabasePortName       = "db"
	SinglestorePrimaryServicePortName = "primary"
	SinglestoreStudioPortName         = "studio"

	SinglestoreDatabasePort = 3306
	SinglestoreStudioPort   = 8081
	SinglestoreExporterPort = 9104

	SinglestoreRootUserName = "ROOT_USERNAME"
	SinglestoreRootPassword = "ROOT_PASSWORD"
	SinglestoreRootUser     = "root"
	DatabasePodMaster       = "Master"
	DatabasePodAggregator   = "Aggregator"
	DatabasePodLeaf         = "Leaf"
	PetSetTypeAggregator    = "aggregator"
	PetSetTypeLeaf          = "leaf"
	PetSetTypeStandalone    = "standalone"

	SinglestoreDatabaseHealth = "singlestore_health"
	SinglestoreTableHealth    = "singlestore_health_table"

	SinglestoreCoordinatorContainerName = "singlestore-coordinator"
	SinglestoreContainerName            = "singlestore"
	SinglestoreInitContainerName        = "singlestore-init"

	SinglestoreVolumeNameUserInitScript      = "initial-script"
	SinglestoreVolumeMountPathUserInitScript = "/docker-entrypoint-initdb.d"
	SinglestoreVolumeNameCustomConfig        = "custom-config"
	SinglestoreVolumeMountPathCustomConfig   = "/etc/memsql/conf.d"
	SinglestoreVolmeNameInitScript           = "init-scripts"
	SinglestoreVolumeMountPathInitScript     = "/scripts"
	SinglestoreVolumeNameData                = "data"
	SinglestoreVolumeMountPathData           = "/var/lib/memsql"
	SinglestoreVolumeNameTLS                 = "tls-volume"
	SinglestoreVolumeMountPathTLS            = "/etc/memsql/certs"

	SinglestoreTLSConfigCustom     = "custom"
	SinglestoreTLSConfigSkipVerify = "skip-verify"
	SinglestoreTLSConfigTrue       = "true"
	SinglestoreTLSConfigFalse      = "false"
	SinglestoreTLSConfigPreferred  = "preferred"

	// =========================== MSSQLServer Constants ============================
	MSSQLSAUser    = "sa"
	MSSQLConfigKey = "mssql.conf"

	AGPrimaryReplicaReadyCondition = "AGPrimaryReplicaReady"

	MSSQLDatabasePodPrimary    = "primary"
	MSSQLDatabasePodSecondary  = "secondary"
	MSSQLSecondaryServiceAlias = "secondary"

	// port related
	MSSQLDatabasePortName              = "db"
	MSSQLPrimaryServicePortName        = "primary"
	MSSQLSecondaryServicePortName      = "secondary"
	MSSQLCoordinatorPortName           = "coordinator"
	MSSQLCoordinatorClientPortName     = "coordinatclient"
	MSSQLDatabasePort                  = 1433
	MSSQLDatabaseMirroringEndpointPort = 5022
	MSSQLCoordinatorPort               = 2380
	MSSQLCoordinatorClientPort         = 2379
	MSSQLMonitoringDefaultServicePort  = 9399

	// environment variables
	EnvAcceptEula        = "ACCEPT_EULA"
	EnvMSSQLPid          = "MSSQL_PID"
	EnvMSSQLEnableHADR   = "MSSQL_ENABLE_HADR"
	EnvMSSQLAgentEnabled = "MSSQL_AGENT_ENABLED"
	EnvMSSQLSAUsername   = "MSSQL_SA_USERNAME"
	EnvMSSQLSAPassword   = "MSSQL_SA_PASSWORD"
	EnvMSSQLVersion      = "VERSION"

	// container related
	MSSQLContainerName            = "mssql"
	MSSQLCoordinatorContainerName = "mssql-coordinator"
	MSSQLInitContainerName        = "mssql-init"

	// volume related
	MSSQLVolumeNameData                        = "data"
	MSSQLVolumeMountPathData                   = "/var/opt/mssql"
	MSSQLVolumeNameConfig                      = "config"
	MSSQLVolumeMountPathConfig                 = "/var/opt/mssql/mssql.conf"
	MSSQLVolumeNameInitScript                  = "init-scripts"
	MSSQLVolumeMountPathInitScript             = "/scripts"
	MSSQLVolumeNameInitDatabase                = "init-database"
	MSSQLVolumeMountPathInitDatabase           = "/init-database"
	MSSQLVolumeNameEndpointCert                = "endpoint-cert"
	MSSQLVolumeMountPathEndpointCert           = "/var/opt/mssql/endpoint-cert"
	MSSQLVolumeNameCerts                       = "certs"
	MSSQLVolumeMountPathCerts                  = "/var/opt/mssql/certs"
	MSSQLVolumeNameTLS                         = "tls"
	MSSQLVolumeMountPathTLS                    = "/var/opt/mssql/tls"
	MSSQLVolumeNameSecurityCACertificates      = "security-ca-certificates"
	MSSQLVolumeMountPathSecurityCACertificates = "/var/opt/mssql/security/ca-certificates"
	MSSQLVolumeNameCACerts                     = "cacerts"
	MSSQLVolumeMountPathCACerts                = "/etc/ssl/certs"

	// tls related
	MSSQLInternalTLSCrt = "tls.crt"
	MSSQLInternalTLSKey = "tls.key"

	// =========================== PostgreSQL Constants ============================
	PostgresDatabasePortName          = "db"
	PostgresPrimaryServicePortName    = "primary"
	PostgresStandbyServicePortName    = "standby"
	PostgresDatabasePort              = 5432
	PostgresPodPrimary                = "primary"
	PostgresPodStandby                = "standby"
	PostgresPodReadReplica            = "read-replica"
	EnvPostgresUser                   = "POSTGRES_USER"
	EnvPostgresPassword               = "POSTGRES_PASSWORD"
	PostgresRootUser                  = "postgres"
	PostgresCoordinatorContainerName  = "pg-coordinator"
	PostgresCoordinatorPort           = 2380
	PostgresCoordinatorPortName       = "coordinator"
	PostgresContainerName             = "postgres"
	PostgresInitContainerName         = "postgres-init-container"
	PostgresCoordinatorClientPort     = 2379
	PostgresCoordinatorClientPortName = "coordinatclient"

	PostgresGRPCServerPort      = 2384
	PostgresGRPCServerPortName  = "grpcserver"
	RaftMetricsExporterPort     = 23790
	RaftMetricsExporterPortName = "raft-metrics"

	PostgresInitVolumeName           = "initial-script"
	PostgresInitDir                  = "/var/initdb"
	PostgresSharedMemoryVolumeName   = "shared-memory"
	PostgresSharedMemoryDir          = "/dev/shm"
	PostgresDataVolumeName           = "data"
	PostgresDataDir                  = "/var/pv"
	PostgresCustomConfigVolumeName   = "custom-config"
	PostgresCustomConfigDir          = "/etc/config"
	PostgresRunScriptsVolumeName     = "run-scripts"
	PostgresRunScriptsDir            = "/run_scripts"
	PostgresRoleScriptsVolumeName    = "role-scripts"
	PostgresRoleScriptsDir           = "/role_scripts"
	PostgresSharedScriptsVolumeName  = "scripts"
	PostgresSharedScriptsDir         = "/scripts"
	PostgresSharedTlsVolumeName      = "certs"
	PostgresSharedTlsVolumeMountPath = "/tls/certs"
	PostgresCustomConfigFile         = "user.conf"
	PostgresTuningConfigFile         = "pgtune.conf"
	PostgresKeyFileSecretSuffix      = "key"
	PostgresPEMSecretSuffix          = "pem"
	PostgresDefaultUsername          = "postgres"
	PostgresPgCoordinatorStatus      = "Coordinator/Status"
	// to pause the failover for postgres. this is helpful for ops request
	PostgresPgCoordinatorStatusPause = "Pause"
	// to resume the failover for postgres. this is helpful for ops request
	PostgresPgCoordinatorStatusResume = "Resume"

	// when we need to resume pg-coordinator as non transferable we are going to set this state.
	// this is useful when we have set a node as primary and you don't want other node rather then this node to become primary.
	PostgresPgCoordinatorStatusResumeNonTransferable = "NonTransferableResume"

	SharedBuffersGbAsByte = 1024 * 1024 * 1024
	SharedBuffersMbAsByte = 1024 * 1024

	SharedBuffersGbAsKiloByte = 1024 * 1024
	SharedBuffersMbAsKiloByte = 1024
	IPS_LOCK                  = "IPC_LOCK"
	SYS_RESOURCE              = "SYS_RESOURCE"
	DropCapabilityALL         = "ALL"

	PostgresGRPCIssuerName              = "grpc-issuer"
	PostgresGRPCSelfSignedIssuerName    = "grpc-selfsigned"
	PostgresDatabaseClusterLabelKey     = "postgreses.kubedb.com/database.cluster"
	PostgresDatabaseReadReplicaLabelKey = "postgreses.kubedb.com/database.read-replica"

	// =========================== ProxySQL Constants ============================
	LabelProxySQLName                  = ProxySQLKey + "/name"
	LabelProxySQLLoadBalance           = ProxySQLKey + "/load-balance"
	LabelProxySQLLoadBalanceStandalone = "Standalone"

	ProxySQLContainerName          = "proxysql"
	ProxySQLDatabasePort           = 6033
	ProxySQLDatabasePortName       = "db"
	ProxySQLPrimaryServicePortName = "db"
	ProxySQLAdminPort              = 6032
	ProxySQLAdminPortName          = "admin"
	ProxySQLDataMountPath          = "/var/lib/proxysql"
	ProxySQLCustomConfigMountPath  = "/etc/custom-config"

	ProxySQLBackendSSLMountPath  = "/var/lib/certs"
	ProxySQLFrontendSSLMountPath = "/var/lib/frontend"
	ProxySQLClusterAdmin         = "cluster"
	ProxySQLClusterPasswordField = "cluster_password"
	ProxySQLTLSConfigCustom      = "custom"
	ProxySQLTLSConfigSkipVerify  = "skip-verify"

	ProxySQLMonitorUsername = "proxysql"
	ProxySQLAuthUsername    = "cluster"
	ProxySQLConfigSecretKey = "proxysql.cnf"

	// =========================== Redis Constants ============================
	RedisConfigKey      = "redis.conf"    // RedisConfigKey is going to create for the customize redis configuration
	RedisAclUserListKey = "user_acl.conf" // RedisAclUserListKey is going to create for the redis acl user list configuration
	// DefaultConfigKey is going to create for the default redis configuration
	RedisContainerName             = "redis"
	RedisSentinelContainerName     = "redissentinel"
	DefaultConfigKey               = "default.conf"
	RedisShardKey                  = RedisKey + "/shard"
	RedisDatabasePortName          = "db"
	RedisPrimaryServicePortName    = "primary"
	RedisDatabasePort              = 6379
	RedisSentinelPort              = 26379
	RedisGossipPortName            = "gossip"
	RedisGossipPort                = 16379
	RedisSentinelPortName          = "sentinel"
	RedisInitContainerName         = "redis-init"
	RedisCoordinatorContainerName  = "rd-coordinator"
	RedisSentinelInitContainerName = "sentinel-init"

	RedisScriptVolumeName      = "script-vol"
	RedisScriptVolumePath      = "/scripts"
	RedisDataVolumeName        = "data"
	RedisDataVolumePath        = "/data"
	RedisTLSVolumeName         = "tls-volume"
	RedisExporterTLSVolumeName = "exporter-tls-volume"
	RedisTLSVolumePath         = "/certs"
	RedisSentinelTLSVolumeName = "sentinel-tls-volume"
	RedisSentinelTLSVolumePath = "/sentinel-certs"
	RedisConfigVolumeName      = "redis-config"
	RedisConfigVolumePath      = "/usr/local/etc/redis/"
	RedisInitVolumeName        = "init-volume"
	RedisInitVolumePath        = "/init"

	RedisNodeFlagMaster = "master"
	RedisNodeFlagNoAddr = "noaddr"
	RedisNodeFlagSlave  = "slave"

	RedisKeyFileSecretSuffix = "key"
	RedisPEMSecretSuffix     = "pem"
	RedisRootUsername        = "default"

	EnvRedisUser              = "USERNAME"
	EnvRedisPassword          = "REDISCLI_AUTH"
	EnvRedisMode              = "REDIS_MODE"
	EnvRedisMajorRedisVersion = "MAJOR_REDIS_VERSION"

	// =========================== Valkey Constants ============================
	ValkeyConfigKey = "valkey.conf" // ValkeyConfigKey is going to create for the customize valkey configuration

	EnvValkeyPassword          = "VALKEYCLI_AUTH"
	EnvValkeyMajorRedisVersion = "MAJOR_VALKEY_VERSION"
	ValkeyConfigVolumePath     = "/usr/local/etc/valkey/"
	ValkeyConfigVolumeName     = "valkey-config"

	// =========================== PgBouncer Constants ============================
	PgBouncerUpstreamServerCA               = "upstream-server-ca.crt"
	PgBouncerUpstreamServerClientCert       = "upstream-server-client.crt"
	PgBouncerUpstreamServerClientKey        = "upstream-server-client.key"
	PgBouncerClientCrt                      = "client.crt"
	PgBouncerClientKey                      = "client.key"
	PgBouncerCACrt                          = "ca.crt"
	PgBouncerTLSCrt                         = "tls.crt"
	PgBouncerTLSKey                         = "tls.key"
	PgBouncerDatabasePortName               = "db"
	PgBouncerPrimaryServicePortName         = "primary"
	PgBouncerDatabasePort                   = 5432
	PgBouncerConfigFile                     = "pgbouncer.ini"
	PgBouncerAdminUsername                  = "pgbouncer"
	PgBouncerContainerName                  = "pgbouncer"
	PgBouncerDefaultPoolMode                = "session"
	PgBouncerDefaultIgnoreStartupParameters = "empty"
	BackendSecretResourceVersion            = "backend-secret-resource-version"
	PgBouncerAdminDatabase                  = "pgbouncer"
	PgBouncerUserDataKey                    = "userlist"
	PgBouncerAuthSecretVolume               = "user-secret"
	PgBouncerConfigMountPath                = "/etc/config"
	PgBouncerSecretMountPath                = "/var/run/pgbouncer/secret"
	PgBouncerServingCertMountPath           = "/var/run/pgbouncer/tls/serving"
	PgBouncerConfigSectionDatabases         = "databases"
	PgBouncerConfigSectionPeers             = "peers"
	PgBouncerConfigSectionPgbouncer         = "pgbouncer"
	PgBouncerConfigSectionUsers             = "users"
	PgBouncerInitVolumePath                 = "/init-scripts"
	PgBouncerInitVolumeName                 = "init-scripts"

	// =========================== Aerospike Constants ============================
	AerospikeConfigVolumeName      = "config"
	AerospikeConfigVolumeMountPath = "/opt/aerospike/conf"
	AerospikeContainerName         = "aerospike"
	AerospikeDataVolumeName        = "data"
	AerospikeDataVolumeMountPath   = "/opt/aerospike/data"
	AerospikeConfigKey             = "aerospike.conf"
	AerospikeDatabasePortName      = "db"
	AerospikeDatabasePort          = 3000
	AerospikeMeshPortName          = "heartbeat"
	AerospikeMeshPort              = 3002

	// =========================== Pgpool Constants ============================
	EnvPostgresUsername                = "POSTGRES_USERNAME"
	EnvPgpoolPcpUser                   = "PGPOOL_PCP_USER"
	EnvPgpoolPcpPassword               = "PGPOOL_PCP_PASSWORD"
	EnvPgpoolPasswordEncryptionMethod  = "PGPOOL_PASSWORD_ENCRYPTION_METHOD"
	EnvEnablePoolPasswd                = "PGPOOL_ENABLE_POOL_PASSWD"
	EnvSkipPasswdEncryption            = "PGPOOL_SKIP_PASSWORD_ENCRYPTION"
	PgpoolConfigSecretMountPath        = "/config"
	PgpoolConfigVolumeName             = "pgpool-config"
	PgpoolPcpConfigVolumeName          = "pgpool-pcp-config"
	PgpoolContainerName                = "pgpool"
	PgpoolDefaultServicePort           = 9999
	PgpoolMonitoringDefaultServicePort = 9719
	PgpoolPcpPort                      = 9595
	PgpoolExporterDatabase             = "postgres"
	EnvPgpoolExporterDatabase          = "POSTGRES_DATABASE"
	EnvPgpoolService                   = "PGPOOL_SERVICE"
	EnvPgpoolServicePort               = "PGPOOL_SERVICE_PORT"
	EnvPgpoolSSLMode                   = "SSLMODE"
	EnvPgpoolExporterConnectionString  = "DATA_SOURCE_NAME"
	PgpoolDefaultSSLMode               = "disable"
	PgpoolExporterContainerName        = "exporter"
	PgpoolAuthUsername                 = "pcp"
	SyncPeriod                         = 10
	PgpoolTlsVolumeName                = "certs"
	PgpoolTlsVolumeMountPath           = "/config/tls"
	PgpoolExporterTlsVolumeName        = "exporter-certs"
	PgpoolExporterTlsVolumeMountPath   = "/tls/certs"
	PgpoolRootUser                     = "postgres"
	PgpoolPrimaryServicePortName       = "primary"
	PgpoolDatabasePortName             = "db"
	PgpoolPcpPortName                  = "pcp"
	PgpoolCustomConfigFile             = "pgpool.conf"
	PgpoolCustomHBAConfigFile          = "pool_hba.conf"
	PgpoolCustomPCPFile                = "pcp.conf"
	PGPOOL_INSTALL_DIR                 = "/opt/pgpool-II"
	PgpoolInitVolumePath               = "/init-scripts"
	PgpoolInitVolumeName               = "init-scripts"

	KubeDBZooKeeperRoleName         = "kubedb:zookeeper-version-reader"
	KubeDBZooKeeperRoleBindingName  = "kubedb:zookeeper-version-reader"
	ZooKeeperClientPortName         = "client"
	ZooKeeperClientPort             = 2181
	ZooKeeperQuorumPortName         = "quorum"
	ZooKeeperQuorumPort             = 2888
	ZooKeeperLeaderElectionPortName = "leader-election"
	ZooKeeperLeaderElectionPort     = 3888
	ZooKeeperMetricsPortName        = "metrics"
	ZooKeeperMetricsPort            = 7000
	ZooKeeperAdminServerPortName    = "admin-server"
	ZooKeeperSecureClientPortName   = "secure-client"
	ZooKeeperAdminServerPort        = 8080
	ZooKeeperSecureClientPort       = 2182
	ZooKeeperNode                   = "/kubedb_health_checker_node"
	ZooKeeperData                   = "kubedb_health_checker_data"
	ZooKeeperConfigVolumeName       = "zookeeper-config"
	ZooKeeperConfigVolumePath       = "/conf"
	ZooKeeperVolumeTempConfig       = "temp-config"
	ZooKeeperDataVolumeName         = "data"
	ZooKeeperDataVolumePath         = "/data"
	ZooKeeperScriptVolumeName       = "script-vol"
	ZooKeeperScriptVolumePath       = "/scripts"
	ZooKeeperContainerName          = "zookeeper"
	ZooKeeperUserAdmin              = "admin"
	ZooKeeperInitContainerName      = "zookeeper" + "-init"

	ZooKeeperConfigFileName               = "zoo.cfg"
	ZooKeeperLog4jPropertiesFileName      = "log4j.properties"
	ZooKeeperLog4jQuietPropertiesFileName = "log4j-quiet.properties"

	ZooKeeperCertDir       = "/var/private/ssl"
	ZooKeeperKeyStoreDir   = "/var/private/ssl/server.keystore.jks"
	ZooKeeperTrustStoreDir = "/var/private/ssl/server.truststore.jks"

	ZooKeeperKeystoreKey           = "keystore.jks"
	ZooKeeperTruststoreKey         = "truststore.jks"
	ZooKeeperServerKeystoreKey     = "server.keystore.jks"
	ZooKeeperServerTruststoreKey   = "server.truststore.jks"
	ZooKeeperKeyPassword           = "ssl.key.password"
	ZooKeeperKeystorePasswordKey   = "ssl.quorum.keyStore.password"
	ZooKeeperTruststorePasswordKey = "ssl.quorum.trustStore.password"
	ZooKeeperKeystoreLocationKey   = "ssl.quorum.keyStore.location"
	ZooKeeperTruststoreLocationKey = "ssl.quorum.trustStore.location"

	ZooKeeperSSLPropertiesFileName = "ssl.properties"

	EnvZooKeeperDomain          = "DOMAIN"
	EnvZooKeeperQuorumPort      = "QUORUM_PORT"
	EnvZooKeeperLeaderPort      = "LEADER_PORT"
	EnvZooKeeperClientHost      = "CLIENT_HOST"
	EnvZooKeeperClientPort      = "CLIENT_PORT"
	EnvZooKeeperAdminServerHost = "ADMIN_SERVER_HOST"
	EnvZooKeeperAdminServerPort = "ADMIN_SERVER_PORT"
	EnvZooKeeperClusterName     = "CLUSTER_NAME"
	EnvZooKeeperClusterSize     = "CLUSTER_SIZE"
	EnvZooKeeperUser            = "ZK_USER"
	EnvZooKeeperPassword        = "ZK_PASSWORD"
	EnvZooKeeperJaasFilePath    = "ZK_JAAS_FILE_PATH"
	EnvZooKeeperJVMFLags        = "JVMFLAGS"

	ZooKeeperSuperUsername       = "super"
	ZooKeeperSASLAuthLoginConfig = "-Djava.security.auth.login.config"
	ZooKeeperJaasFilePath        = "/data/jaas.conf"

	// ========================================== Hazelcast Constants =================================================//
	HazelcastAdmin                = "admin"
	HazelcastSecretKey            = "hazelcast.yaml"
	HazelcastClientSecretKey      = "hazelcast-client.yaml"
	HazelcastRestPort             = 5701
	HazelcastUIPort               = 8443
	HazelcastPortName             = "hazelcast"
	HazelcastConfigVolume         = "hzconfig"
	HazelcastDefaultConfigVolume  = "default-config"
	HazelcastCustomConfigVolume   = "custom-config"
	HazelcastCustomConfigDir      = "/data/custom"
	HazelcastTempConfigDir        = "/data/temp"
	HazelcastConfigFileName       = "hazelcast.yaml"
	HazelcastVolumeData           = "data"
	HazelcastDataDir              = "/data/persistence"
	HazelcastContainerName        = "hazelcast"
	HazelcastInitContainerName    = "hazelcast-init"
	HazelcastConfigDir            = "/data/hazelcast"
	HazelcastKeystorePassKey      = "keystore-secret"
	HazelcastServerKeystoreFile   = "/data/etc/server/keystore.p12"
	HazelcastServerTruststoreFile = "/data/etc/server/truststore.p12"
	HazelcastClientKeystoreFile   = "/data/etc/client/keystore.p12"
	HazelcastClientTruststoreFile = "/data/etc/client/truststore.p12"
	HazelcastTLSServerMountPath   = "/data/etc/server"
	HazelcastTLSClientMountPath   = "/data/etc/client"
	HazelcastLicenseKey           = "licenseKey"
)
View Source
const (
	// used for Databases that have started provisioning
	DatabaseProvisioningStarted = "ProvisioningStarted"
	// used for Databases which completed provisioning
	DatabaseProvisioned = "Provisioned"
	// used for Databases that are currently being initialized using stash
	DatabaseDataRestoreStarted = "DataRestoreStarted"
	// used for Databases that have been initialized using stash
	DatabaseDataRestored = "DataRestored"
	// used for Databases whose pods are ready
	DatabaseReplicaReady = "ReplicaReady"
	// used for Databases that are currently accepting connection
	DatabaseAcceptingConnection = "AcceptingConnection"
	// used for Databases that report status OK (also implies that we can connect to it)
	DatabaseReady = "Ready"
	// used for database that reports ok when all the instances are available
	ServerReady = "ServerReady"
	// used for Databases that are paused
	DatabasePaused = "Paused"
	// used for Databases that are halted
	DatabaseHalted = "Halted"
	// used for pausing health check of a Database
	DatabaseHealthCheckPaused = "HealthCheckPaused"
	// used for Databases whose internal user credentials are synced
	InternalUsersSynced = "InternalUsersSynced"
	// user for databases that have read access
	DatabaseReadAccess = "DatabaseReadAccess"
	// user for databases that have write access
	DatabaseWriteAccess = "DatabaseWriteAccess"
	// check dependencies are ready
	DatabaseDependencyReady = "DatabaseDependencyReady"
	// update config secret for backup in solr
	PatchConfigSecretUpdateForBackup = "PatchConfigSecretUpdatesForBackup"
	// sync db to update configuration
	SyncDatabaseForConfigurationUpdate = "SyncDatabaseForConfigurationUpdate"

	// Condition reasons
	DataRestoreStartedByExternalInitializer    = "DataRestoreStartedByExternalInitializer"
	DataRestoreInterrupted                     = "DataRestoreInterrupted"
	DatabaseSuccessfullyRestored               = "SuccessfullyDataRestored"
	FailedToRestoreData                        = "FailedToRestoreData"
	AllReplicasAreReady                        = "AllReplicasReady"
	SomeReplicasAreNotReady                    = "SomeReplicasNotReady"
	DatabaseAcceptingConnectionRequest         = "DatabaseAcceptingConnectionRequest"
	DatabaseNotAcceptingConnectionRequest      = "DatabaseNotAcceptingConnectionRequest"
	ReadinessCheckSucceeded                    = "ReadinessCheckSucceeded"
	ReadinessCheckFailed                       = "ReadinessCheckFailed"
	DatabaseProvisioningStartedSuccessfully    = "DatabaseProvisioningStartedSuccessfully"
	DatabaseSuccessfullyProvisioned            = "DatabaseSuccessfullyProvisioned"
	DatabaseHaltedSuccessfully                 = "DatabaseHaltedSuccessfully"
	DatabaseReadAccessCheckSucceeded           = "DatabaseReadAccessCheckSucceeded"
	DatabaseWriteAccessCheckSucceeded          = "DatabaseWriteAccessCheckSucceeded"
	DatabaseReadAccessCheckFailed              = "DatabaseReadAccessCheckFailed"
	DatabaseWriteAccessCheckFailed             = "DatabaseWriteAccessCheckFailed"
	InternalUsersCredentialSyncFailed          = "InternalUsersCredentialsSyncFailed"
	InternalUsersCredentialsSyncedSuccessfully = "InternalUsersCredentialsSyncedSuccessfully"
	FailedToEnsureDependency                   = "FailedToEnsureDependency"
)

List of possible condition types for a KubeDB object

View Source
const (
	MilvusUsername = "root"

	MilvusGrpcPortName    = "grpc"
	MilvusMetricsPortName = "metrics"
	MilvusHttpPortName    = "http"
	MilvusUIPortName      = "ui"
	MilvusGrpcPort        = int32(19530)

	MilvusVolumeNameData = "data"
	MilvusConfigVolName  = "milvus-config"
	MilvusConfigFileName = "milvus.yaml"
	MilvusLogFileName    = "glog.conf"

	MilvusDataDir       = "/var/lib/milvus"
	MilvusConfigVolDir  = "/milvus/configs"
	MilvusContainerName = "milvus"

	EtcdEndpointsName = "ETCD_ENDPOINTS"
	EtcdAPIVersion    = "operator.etcd.io/v1alpha1"
	EtcdKind          = "EtcdCluster"
	ControllerName    = "milvus-controller"
	EtcdName          = "etcd"

	MinioAddressName   = "MINIO_ADDRESS"
	MinioAddressKey    = "address"
	MinioAccessKeyName = "MINIO_ACCESS_KEY"
	MinioAccessKey     = "accesskey"
	MinioSecretKeyName = "MINIO_SECRET_KEY"
	MinioSecretKey     = "secretkey"

	MilvusMetricsPort       = 9091
	MilvusUIPort            = 9091
	MilvusHttpPort          = 8080
	MilvusPortDataNode      = 21124
	MilvusPortQueryNode     = 21123
	MilvusPortStreamingNode = 22222

	MilvusTLSVolName      = "milvus-tls"
	MilvusTLSVolDir       = "/milvus/tls"
	MilvusTLSCACert       = "ca.crt"
	MilvusTLSCAPem        = "ca.pem"
	MilvusTLSCert         = "tls.crt"
	MilvusTLSKey          = "tls.key"
	MilvusTLSServerPem    = "server.pem"
	MilvusTLSServerKeyPem = "server.key"
	MilvusTLSClientPem    = "client.pem"
	MilvusTLSClientKeyPem = "client.key"
)
View Source
const (
	KafkaPortNameREST                  = "http"
	KafkaPortNameController            = "controller"
	KafkaPortNameCruiseControlListener = "cc-listener"
	KafkaPortNameCruiseControlREST     = "cc-rest"
	KafkaBrokerClientPortName          = "broker"
	KafkaControllerClientPortName      = "controller"
	KafkaPortNameLocal                 = "local"
	KafkaTopicNameHealth               = "kafka-health"
	KafkaTopicDeletionThresholdOffset  = 1000
	KafkaBrokerMaxID                   = 1000
	KafkaRESTPort                      = 9092
	KafkaControllerRESTPort            = 9093
	KafkaLocalRESTPort                 = 29092
	KafkaCruiseControlRESTPort         = 9090
	KafkaCruiseControlListenerPort     = 9094
	KafkaCCDefaultInNetwork            = 500000
	KafkaCCDefaultOutNetwork           = 500000

	KafkaContainerName          = "kafka"
	KafkaInitContainerName      = "kafka-init"
	KafkaUserAdmin              = "admin"
	KafkaNodeRoleSet            = "set"
	KafkaNodeRolesCombined      = "controller,broker"
	KafkaNodeRolesController    = "controller"
	KafkaNodeRolesBrokers       = "broker"
	KafkaNodeRolesCruiseControl = "cruise-control"
	KafkaStandbyServiceSuffix   = "standby"

	KafkaBrokerListener     = "KafkaBrokerListener"
	KafkaControllerListener = "KafkaControllerListener"

	KafkaDataDir                              = "/var/log/kafka"
	KafkaMetaDataDir                          = "/var/log/kafka/metadata"
	KafkaCertDir                              = "/var/private/ssl"
	KafkaInitScriptsDir                       = "/opt/kafka/init-scripts"
	KafkaConfigDir                            = "/opt/kafka/config/kafkaconfig"
	KafkaTempConfigDir                        = "/opt/kafka/config/temp-config"
	KafkaCustomConfigDir                      = "/opt/kafka/config/custom-config"
	KafkaCCTempConfigDir                      = "/opt/cruise-control/temp-config"
	KafkaCCCustomConfigDir                    = "/opt/cruise-control/custom-config"
	KafkaCapacityConfigPath                   = "config/capacity.json"
	KafkaConfigFileName                       = "config.properties"
	KafkaServerCustomConfigFileName           = "server.properties"
	KafkaBrokerCustomConfigFileName           = "broker.properties"
	KafkaControllerCustomConfigFileName       = "controller.properties"
	KafkaSSLPropertiesFileName                = "ssl.properties"
	KafkaClientAuthConfigFileName             = "clientauth.properties"
	KafkaCruiseControlConfigFileName          = "cruisecontrol.properties"
	KafkaCruiseControlCapacityConfigFileName  = "capacity.json"
	KafkaCruiseControlBrokerSetConfigFileName = "brokerSets.json"
	KafkaCruiseControlClusterConfigFileName   = "clusterConfigs.json"
	KafkaCruiseControlLog4jConfigFileName     = "log4j.properties"
	KafkaCruiseControlUIConfigFileName        = "config.csv"

	KafkaListeners                         = "listeners"
	KafkaAdvertisedListeners               = "advertised.listeners"
	KafkaBootstrapServers                  = "bootstrap.servers"
	KafkaListenerSecurityProtocolMap       = "listener.security.protocol.map"
	KafkaControllerNodeCount               = "controller.count"
	KafkaControllerQuorumVoters            = "controller.quorum.voters"
	KafkaControllerQuorumBootstrapServers  = "controller.quorum.bootstrap.servers"
	KafkaControllerListenersName           = "controller.listener.names"
	KafkaInterBrokerListener               = "inter.broker.listener.name"
	KafkaNodeRole                          = "process.roles"
	KafkaClusterID                         = "cluster.id"
	KafkaClientID                          = "client.id"
	KafkaDataDirName                       = "log.dirs"
	KafkaReplicaSelectorClassKey           = "replica.selector.class"
	KafkaReplicaSelectorClassName          = "org.apache.kafka.common.replica.RackAwareReplicaSelector"
	KafkaMetadataDirName                   = "metadata.log.dir"
	KafkaServerKeystoreKey                 = "server.keystore.jks"
	KafkaServerTruststoreKey               = "server.truststore.jks"
	KafkaSecurityProtocol                  = "security.protocol"
	KafkaGracefulShutdownTimeout           = "task.shutdown.graceful.timeout.ms"
	KafkaTopicConfigProviderClass          = "topic.config.provider.class"
	KafkaCapacityConfigFile                = "capacity.config.file"
	KafkaTwoStepVerification               = "two.step.verification.enabled"
	KafkaBrokerFailureDetection            = "kafka.broker.failure.detection.enable"
	KafkaMetricSamplingInterval            = "metric.sampling.interval.ms"
	KafkaPartitionMetricsWindow            = "partition.metrics.window.ms"
	KafkaPartitionMetricsWindowNum         = "num.partition.metrics.windows"
	KafkaSampleStoreTopicReplicationFactor = "sample.store.topic.replication.factor"

	KafkaEndpointVerifyAlgo     = "ssl.endpoint.identification.algorithm"
	KafkaKeystoreLocation       = "ssl.keystore.location"
	KafkaTruststoreLocation     = "ssl.truststore.location"
	KafkaKeystorePassword       = "ssl.keystore.password"
	KafkaTruststorePassword     = "ssl.truststore.password"
	KafkaKeyPassword            = "ssl.key.password"
	KafkaTruststoreType         = "ssl.truststore.type"
	KafkaKeystoreType           = "ssl.keystore.type"
	KafkaSSLClientAuthKey       = "ssl.client.auth"
	KafkaSSLClientAuthRequired  = "required"
	KafkaSSLClientAuthRequested = "requested"
	KafkaTruststoreTypeJKS      = "JKS"

	KafkaMetricReporters       = "metric.reporters"
	KafkaAutoCreateTopicEnable = "auto.create.topics.enable"

	KafkaEnabledSASLMechanisms       = "sasl.enabled.mechanisms"
	KafkaSASLMechanism               = "sasl.mechanism"
	KafkaMechanismControllerProtocol = "sasl.mechanism.controller.protocol"
	KafkaSASLInterBrokerProtocol     = "sasl.mechanism.inter.broker.protocol"
	KafkaSASLPLAINConfigKey          = "listener.name.SASL_PLAINTEXT.plain.sasl.jaas.config"
	KafkaSASLSSLConfigKey            = "listener.name.SASL_SSL.plain.sasl.jaas.config"
	KafkaAuthorizerClassName         = "authorizer.class.name"
	KafkaSuperUsers                  = "super.users"
	KafkaStandardAuthorizerClass     = "org.apache.kafka.metadata.authorizer.StandardAuthorizer"
	KafkaSASLJAASConfig              = "sasl.jaas.config"
	KafkaServiceName                 = "serviceName"
	KafkaSASLPlainMechanism          = "PLAIN"
	KafkaSASLScramSHA256Mechanism    = "SCRAM-SHA-256"
	KafkaSASLScramSHA512Mechanism    = "SCRAM-SHA-512"

	KafkaCCMetricSamplerClass            = "metric.sampler.class"
	KafkaCCCapacityConfig                = "capacity.config.file"
	KafkaCCTwoStepVerificationEnabled    = "two.step.verification.enabled"
	KafkaCCBrokerFailureDetectionEnabled = "kafka.broker.failure.detection.enable"
	KafkaOffSetTopicReplica              = "offsets.topic.replication.factor"
	KafkaTransactionStateLogReplica      = "transaction.state.log.replication.factor"
	KafkaTransactionSateLogMinISR        = "transaction.state.log.min.isr"
	KafkaLogCleanerMinLagSec             = "log.cleaner.min.compaction.lag.ms"
	KafkaLogCleanerBackoffMS             = "log.cleaner.backoff.ms"

	KafkaCCKubernetesMode                 = "cruise.control.metrics.reporter.kubernetes.mode"
	KafkaCCBootstrapServers               = "cruise.control.metrics.reporter.bootstrap.servers"
	KafkaCCMetricTopicAutoCreate          = "cruise.control.metrics.topic.auto.create"
	KafkaCCMetricTopicNumPartition        = "cruise.control.metrics.topic.num.partitions"
	KafkaCCMetricTopicReplica             = "cruise.control.metrics.topic.replication.factor"
	KafkaCCMetricReporterSecurityProtocol = "cruise.control.metrics.reporter.security.protocol"
	KafkaCCMetricReporterSaslMechanism    = "cruise.control.metrics.reporter.sasl.mechanism"
	KafkaCCSampleLoadingThreadsNum        = "num.sample.loading.threads"
	KafkaCCMinSamplesPerBrokerWindow      = "min.samples.per.broker.metrics.window"

	KafkaVolumeData         = "data"
	KafkaVolumeConfig       = "kafkaconfig"
	KafkaVolumeTempConfig   = "temp-config"
	KafkaVolumeCustomConfig = "custom-config"
	KafkaVolumeInitScripts  = "init-scripts"

	EnvKafkaUser      = "KAFKA_USER"
	EnvKafkaPassword  = "KAFKA_PASSWORD"
	EnvKafkaClusterID = "KAFKA_CLUSTER_ID"

	KafkaListenerPLAINTEXTProtocol = "PLAINTEXT"
	KafkaListenerSASLProtocol      = "SASL_PLAINTEXT"
	KafkaListenerSASLSSLProtocol   = "SASL_SSL"

	KafkaCCMetricsSampler         = "com.linkedin.kafka.cruisecontrol.monitor.sampling.CruiseControlMetricsReporterSampler"
	KafkaAdminTopicConfigProvider = "com.linkedin.kafka.cruisecontrol.config.KafkaAdminTopicConfigProvider"
	KafkaCCMetricReporter         = "com.linkedin.kafka.cruisecontrol.metricsreporter.CruiseControlMetricsReporter"
	KafkaJMXMetricReporter        = "org.apache.kafka.common.metrics.JmxReporter"

	// Kafka Tiered Storage Constants
	KafkaAivenTieredStorageClassName      = "io.aiven.kafka.tieredstorage.RemoteStorageManager"
	KafkaVolumeTieredStoragePlugins       = "tiered-plugins"
	KafkaTieredStoragePluginDir           = "/opt/kafka/libs/tiered-plugins"
	KafkaVolumeTieredStorageChunkCache    = "tiered-chunk-cache"
	KafkaTieredStorageChunkCacheDir       = "/opt/kafka/tiered-storage/cache"
	KafkaVolumeTieredStorageGCSCredential = "gcs-credential"
	KafkaTieredStorageGCSCredentialDir    = "/etc/credentials"
	KafkaVolumeTieredStorageLocalDir      = "tiered-local"

	// =========================== Solr Constants ============================
	SolrPortName          = "http"
	SolrRestPort          = 8983
	SolrExporterPort      = 9854
	SolrSecretKey         = "solr.xml"
	SolrContainerName     = "solr"
	SolrInitContainerName = "init-solr"
	SolrAdmin             = "admin"
	SecurityJSON          = "security.json"
	SolrZkDigest          = "zk-digest"
	SolrZkReadonlyDigest  = "zk-digest-readonly"

	SolrVolumeDefaultConfig = "default-config"
	SolrVolumeCustomConfig  = "custom-config"
	SolrVolumeAuthConfig    = "auth-config"
	SolrVolumeData          = "data"
	SolrVolumeConfig        = "slconfig"

	DistLibs              = "/opt/solr/dist"
	ContribLibs           = "/opt/solr/contrib/%s/lib"
	SysPropLibPlaceholder = "${solr.sharedLib:}"
	SolrHomeDir           = "/var/solr"
	SolrDataDir           = "/var/solr/data"
	SolrTempConfigDir     = "/temp-config"
	SolrCustomConfigDir   = "/custom-config"
	SolrSecurityConfigDir = "/var/security"
	SolrZkReadyCondition  = "SolrZkReady"
	SolrZkReady           = "ZookeeperReady"

	SolrCloudHostKey                       = "host"
	SolrCloudHostValue                     = ""
	SolrCloudHostPortKey                   = "hostPort"
	SolrCloudHostPortValue                 = 80
	SolrCloudHostContextKey                = "hostContext"
	SolrCloudHostContextValue              = "solr"
	SolrCloudGenericCoreNodeNamesKey       = "genericCoreNodeNames"
	SolrCloudGenericCoreNodeNamesValue     = true
	SolrCloudZKClientTimeoutKey            = "zkClientTimeout"
	SolrCloudZKClientTimeoutValue          = 30000
	SolrCloudDistribUpdateSoTimeoutKey     = "distribUpdateSoTimeout"
	SolrCloudDistribUpdateSoTimeoutValue   = 600000
	SolrCloudDistribUpdateConnTimeoutKey   = "distribUpdateConnTimeout"
	SolrCloudDistribUpdateConnTimeoutValue = 60000
	SolrCloudZKCredentialProviderKey       = "zkCredentialsProvider"
	SolrCloudZKCredentialProviderValue     = "org.apache.solr.common.cloud.DigestZkCredentialsProvider"
	SolrCloudZKAclProviderKey              = "zkACLProvider"
	SolrCloudZKAclProviderValue            = "org.apache.solr.common.cloud.DigestZkACLProvider"
	SolrCloudZKCredentialsInjectorKey      = "zkCredentialsInjector"
	SolrCloudZKCredentialsInjectorValue    = "org.apache.solr.common.cloud.VMParamsZkCredentialsInjector"

	ShardHandlerFactorySocketTimeoutKey   = "socketTimeout"
	ShardHandlerFactorySocketTimeoutValue = 600000
	ShardHandlerFactoryConnTimeoutKey     = "connTimeout"
	ShardHandlerFactoryConnTimeoutValue   = 60000

	SolrKeysMaxBooleanClausesKey   = "maxBooleanClauses"
	SolrKeysMaxBooleanClausesValue = "solr.max.booleanClauses"
	SolrKeysSharedLibKey           = "sharedLib"
	SolrKeysShardLibValue          = "solr.sharedLib"
	SolrKeysHostPortKey            = "hostPort"
	SolrKeysHostPortValue          = "solr.port.advertise"
	SolrKeysAllowPathsKey          = "allowPaths"
	SolrKeysAllowPathsValue        = "solr.allowPaths"

	SolrConfMaxBooleanClausesKey   = "maxBooleanClauses"
	SolrConfMaxBooleanClausesValue = 1024
	SolrConfAllowPathsKey          = "allowPaths"
	SolrConfAllowPathsValue        = ""
	SolrConfSolrCloudKey           = "solrcloud"
	SolrConfShardHandlerFactoryKey = "shardHandlerFactory"
	SolrJavaMem                    = "-Xms3g -Xmx3g"
	SolrKeystorePassKey            = "keystore-secret"
	SolrServerKeystorePath         = "/var/solr/etc/keystore.p12"
	SolrServerTruststorePath       = "/var/solr/etc/truststore.p12"
	SolrTLSMountPath               = "/var/solr/etc"

	ProxyDeploymentName = "s3proxy"
	ProxyServiceName    = "proxy-svc"
	ProxySecretName     = "proxy-env"
	ProxyImage          = "andrewgaul/s3proxy"
	ProxyPortName       = "http"
	ProxyPortNumber     = 80
	ProxyContainerName  = "proxy"
	ProxyLabelsApp      = "app"
)
View Source
const (
	DruidConfigDirCommon              = "/opt/druid/conf/druid/cluster/_common"
	DruidConfigDirCoordinatorOverlord = "/opt/druid/conf/druid/cluster/master/coordinator-overlord"
	DruidConfigDirHistoricals         = "/opt/druid/conf/druid/cluster/data/historical"
	DruidConfigDirMiddleManagers      = "/opt/druid/conf/druid/cluster/data/middleManager"
	DruidConfigDirBrokers             = "/opt/druid/conf/druid/cluster/query/broker"
	DruidConfigDirRouters             = "/opt/druid/conf/druid/cluster/query/router"
	DruidCConfigDirMySQLMetadata      = "/opt/druid/extensions/mysql-metadata-storage"

	DruidVolumeOperatorConfig  = "operator-config-volume"
	DruidVolumeMainConfig      = "main-config-volume"
	DruidVolumeCustomConfig    = "custom-config"
	DruidMetadataTLSVolume     = "metadata-tls-volume"
	DruidMetadataTLSTempVolume = "metadata-tls-volume-temp"

	DruidOperatorConfigDir        = "/tmp/config/operator-config"
	DruidMainConfigDir            = "/opt/druid/conf"
	DruidCustomConfigDir          = "/tmp/config/custom-config"
	DruidMetadataTLSTempConfigDir = "/tmp/metadata-tls"

	DruidVolumeCommonConfig          = "common-config-volume"
	DruidCommonConfigFile            = "common.runtime.properties"
	DruidCoordinatorsJVMConfigFile   = "coordinators.jvm.config"
	DruidHistoricalsJVMConfigFile    = "historicals.jvm.config"
	DruidBrokersJVMConfigFile        = "brokers.jvm.config"
	DruidMiddleManagersJVMConfigFile = "middleManagers.jvm.config"
	DruidRoutersJVMConfigFile        = "routers.jvm.config"
	DruidCoordinatorsConfigFile      = "coordinators.properties"
	DruidHistoricalsConfigFile       = "historicals.properties"
	DruidMiddleManagersConfigFile    = "middleManagers.properties"
	DruidBrokersConfigFile           = "brokers.properties"
	DruidRoutersConfigFile           = "routers.properties"
	DruidVolumeMySQLMetadataStorage  = "mysql-metadata-storage"

	DruidContainerName     = "druid"
	DruidInitContainerName = "init-druid"
	DruidUserAdmin         = "admin"

	EnvDruidAdminPassword          = "DRUID_ADMIN_PASSWORD"
	EnvDruidMetdataStoragePassword = "DRUID_METADATA_STORAGE_PASSWORD"
	EnvDruidZKServicePassword      = "DRUID_ZK_SERVICE_PASSWORD"
	EnvDruidCoordinatorAsOverlord  = "DRUID_COORDINATOR_AS_OVERLORD"
	EnvDruidMetadataTLSEnable      = "DRUID_METADATA_TLS_ENABLE"
	EnvDruidMetadataStorageType    = "DRUID_METADATA_STORAGE_TYPE"
	EnvDruidKeyStorePassword       = "DRUID_KEY_STORE_PASSWORD"

	DruidPlainTextPortCoordinators   = 8081
	DruidPlainTextPortOverlords      = 8090
	DruidPlainTextPortHistoricals    = 8083
	DruidPlainTextPortMiddleManagers = 8091
	DruidPlainTextPortBrokers        = 8082
	DruidPlainTextPortRouters        = 8888

	DruidTLSPortCoordinators   = 8281
	DruidTLSPortOverlords      = 8290
	DruidTLSPortHistoricals    = 8283
	DruidTLSPortMiddleManagers = 8291
	DruidTLSPortBrokers        = 8282
	DruidTLSPortRouters        = 9088

	DruidExporterPort = 9104

	DruidMetadataStorageTypePostgres = "Postgres"

	// Common Runtime Configurations Properties
	// ZooKeeper
	DruidZKServiceHost              = "druid.zk.service.host"
	DruidZKPathsBase                = "druid.zk.paths.base"
	DruidZKServiceCompress          = "druid.zk.service.compress"
	DruidZKServiceUserKey           = "druid.zk.service.user"
	DruidZKServicePasswordKey       = "druid.zk.service.pwd"
	DruidZKServicePasswordEnvConfig = "{\"type\": \"environment\", \"variable\": \"DRUID_ZK_SERVICE_PASSWORD\"}"

	// Metadata Storage
	DruidMetadataStorageTypeKey                    = "druid.metadata.storage.type"
	DruidMetadataStorageConnectorConnectURI        = "druid.metadata.storage.connector.connectURI"
	DruidMetadataStorageConnectURIPrefixMySQL      = "jdbc:mysql://"
	DruidMetadataStorageConnectURIPrefixPostgreSQL = "jdbc:postgresql://"
	DruidMetadataStorageConnectorUser              = "druid.metadata.storage.connector.user"
	DruidMetadataStorageConnectorPassword          = "druid.metadata.storage.connector.password"
	DruidMetadataStorageConnectorPasswordEnvConfig = "{\"type\": \"environment\", \"variable\": \"DRUID_METADATA_STORAGE_PASSWORD\"}"
	DruidMetadataStorageCreateTables               = "druid.metadata.storage.connector.createTables"

	// Druid TLS
	DruidKeystorePasswordKey   = "keystore_password"
	DruidTrustStorePasswordKey = "truststore_password"
	DruidKeystoreSecretKey     = "keystore-cred"

	DruidEnablePlaintextPort      = "druid.enablePlaintextPort"
	DruidEnableTLSPort            = "druid.enableTlsPort"
	DruidKeyStorePath             = "druid.server.https.keyStorePath"
	DruidKeyStoreType             = "druid.server.https.keyStoreType"
	DruidCertAlias                = "druid.server.https.certAlias"
	DruidKeyStorePassword         = "druid.server.https.keyStorePassword"
	DruidRequireClientCertificate = "druid.server.https.requireClientCertificate"
	DruidTrustStoreType           = "druid.server.https.trustStoreType"

	DruidTrustStorePassword      = "druid.client.https.trustStorePassword"
	DruidTrustStorePath          = "druid.client.https.trustStorePath"
	DruidClientTrustStoreType    = "druid.client.https.trustStoreType"
	DruidClientValidateHostNames = "druid.client.https.validateHostnames"

	DruidKeyStoreTypeJKS           = "jks"
	DruidKeyStorePasswordEnvConfig = "{\"type\": \"environment\", \"variable\": \"DRUID_KEY_STORE_PASSWORD\"}"

	DruidValueTrue  = "true"
	DruidValueFalse = "false"

	DruidCertDir            = "/opt/druid/ssl"
	DruidCertMetadataSubDir = "metadata"

	// MySQL TLS
	DruidMetadataMySQLUseSSL                          = "druid.metadata.mysql.ssl.useSSL"
	DruidMetadataMySQLClientCertKeyStoreURL           = "druid.metadata.mysql.ssl.clientCertificateKeyStoreUrl"
	DruidMetadataMySQLClientCertKeyStoreType          = "druid.metadata.mysql.ssl.clientCertificateKeyStoreType"
	DruidMetadataMySQLClientCertKeyStoreTypeJKS       = "JKS"
	DruidMetadataMySQLClientCertKeyStorePassword      = "druid.metadata.mysql.ssl.clientCertificateKeyStorePassword"
	DruidMetadataMySQLClientCertKeyStorePasswordValue = "password"

	// Postgres TLS
	DruidMetadataPostgresUseSSL         = "druid.metadata.postgres.ssl.useSSL"
	DruidMetadataPGUseSSLMode           = "druid.metadata.postgres.ssl.sslMode"
	DruidMetadataPGUseSSLModeVerifyFull = "verify-full"
	DruidMetadataPGSSLCert              = "druid.metadata.postgres.ssl.sslCert"
	DruidMetadataPGSSLKey               = "druid.metadata.postgres.ssl.sslKey"
	DruidMetadataPGSSLRootCert          = "druid.metadata.postgres.ssl.sslRootCert"

	// Deep Storage
	DruidDeepStorageTypeKey      = "druid.storage.type"
	DruidDeepStorageTypeS3       = "s3"
	DruidDeepStorageBaseKey      = "druid.storage.baseKey"
	DruidDeepStorageBucket       = "druid.storage.bucket"
	DruidS3AccessKey             = "druid.s3.accessKey"
	DruidS3SecretKey             = "druid.s3.secretKey"
	DruidS3EndpointSigningRegion = "druid.s3.endpoint.signingRegion"
	DruidS3EnablePathStyleAccess = "druid.s3.enablePathStyleAccess"
	DruidS3EndpointURL           = "druid.s3.endpoint.url"

	// Indexing service logs
	DruidIndexerLogsType           = "druid.indexer.logs.type"
	DruidIndexerLogsS3Bucket       = "druid.indexer.logs.s3Bucket"
	DruidIndexerLogsS3Prefix       = "druid.indexer.logs.s3Prefix"
	DruidEnableLookupSyncOnStartup = "druid.lookup.enableLookupSyncOnStartup"

	// Authentication
	DruidAuthAuthenticationChain                             = "druid.auth.authenticatorChain"
	DruidAuthAuthenticationChainValueBasic                   = "[\"basic\"]"
	DruidAuthAuthenticatorBasicType                          = "druid.auth.authenticator.basic.type"
	DruidAuthAuthenticatorBasicTypeValue                     = "basic"
	DruidAuthAuthenticatorBasicInitialAdminPassword          = "druid.auth.authenticator.basic.initialAdminPassword"
	DruidAuthAuthenticatorBasicInitialAdminPasswordEnvConfig = "{\"type\": \"environment\", \"variable\": \"DRUID_ADMIN_PASSWORD\"}"
	DruidAuthAuthenticatorBasicInitialInternalClientPassword = "druid.auth.authenticator.basic.initialInternalClientPassword"
	DruidAuthAuthenticatorBasicCredentialsValidatorType      = "druid.auth.authenticator.basic.credentialsValidator.type"
	DruidAuthAuthenticatorBasicSkipOnFailure                 = "druid.auth.authenticator.basic.skipOnFailure"
	DruidAuthAuthenticatorBasicAuthorizerName                = "druid.auth.authenticator.basic.authorizerName"

	// Escalator
	DruidAuthEscalatorType                   = "druid.escalator.type"
	DruidAuthEscalatorInternalClientUsername = "druid.escalator.internalClientUsername"
	DruidAuthEscalatorInternalClientPassword = "druid.escalator.internalClientPassword"
	DruidAuthEscalatorAuthorizerName         = "druid.escalator.authorizerName"
	DruidAuthAuthorizers                     = "druid.auth.authorizers"
	DruidAuthAuthorizerBasicType             = "druid.auth.authorizer.basic.type"

	// Extension Load List
	DruidExtensionLoadListKey               = "druid.extensions.loadList"
	DruidExtensionLoadList                  = "" /* 217-byte string literal not displayed */
	DruidExtensionAvro                      = "druid-avro-extensions"
	DruidExtensionS3                        = "druid-s3-extensions"
	DruidExtensionHDFS                      = "druid-hdfs-storage"
	DruidExtensionGoogle                    = "druid-google-extensions"
	DruidExtensionAzure                     = "druid-azure-extensions"
	DruidExtensionKafkaIndexingService      = "druid-kafka-indexing-service"
	DruidExtensionDataSketches              = "druid-datasketches"
	DruidExtensionKubernetes                = "druid-kubernetes-extensions"
	DruidExtensionMySQLMetadataStorage      = "mysql-metadata-storage"
	DruidExtensionPostgreSQLMetadataStorage = "postgresql-metadata-storage"
	DruidExtensionBasicSecurity             = "druid-basic-security"
	DruidExtensionMultiStageQuery           = "druid-multi-stage-query"
	DruidExtensionPrometheusEmitter         = "prometheus-emitter"
	DruidExtensionSSLContext                = "simple-client-sslcontext"
	DruidService                            = "druid.service"

	// Monitoring Configurations
	DruidEmitter                                = "druid.emitter"
	DruidEmitterPrometheus                      = "prometheus"
	DruidEmitterPrometheusPortKey               = "druid.emitter.prometheus.port"
	DruidEmitterPrometheusPortVal               = 9104
	DruidMonitoringMonitorsKey                  = "druid.monitoring.monitors"
	DruidEmitterPrometheusDimensionMapPath      = "druid.emitter.prometheus.dimensionMapPath"
	DruidEmitterPrometheusStrategy              = "druid.emitter.prometheus.strategy"
	DruidMetricsJVMMonitor                      = "org.apache.druid.java.util.metrics.JvmMonitor"
	DruidMetricsServiceStatusMonitor            = "org.apache.druid.server.metrics.ServiceStatusMonitor"
	DruidMetricsQueryCountStatsMonitor          = "org.apache.druid.server.metrics.QueryCountStatsMonitor"
	DruidMonitoringHistoricalMetricsMonitor     = "org.apache.druid.server.metrics.HistoricalMetricsMonitor"
	DruidMonitoringSegmentsStatsMonitor         = "org.apache.druid.server.metrics.SegmentStatsMonitor"
	DruidMonitoringWorkerTaskCountsStatsMonitor = "org.apache.druid.server.metrics.WorkerTaskCountStatsMonitor"
	DruidMonitoringQueryCountStatsMonitor       = "org.apache.druid.server.metrics.QueryCountStatsMonitor"
	DruidMonitoringTaskCountStatsMonitor        = "org.apache.druid.server.metrics.TaskCountStatsMonitor"
	DruidMonitoringSysMonitor                   = "org.apache.druid.java.util.metrics.SysMonitor"

	DruidDimensionMapDir                = "/opt/druid/conf/metrics.json"
	DruidEmitterPrometheusStrategyValue = "exporter"

	/// Coordinators Configurations
	DruidCoordinatorStartDelay                = "druid.coordinator.startDelay"
	DruidCoordinatorPeriod                    = "druid.coordinator.period"
	DruidIndexerQueueStartDelay               = "druid.indexer.queue.startDelay"
	DruidManagerSegmentsPollDuration          = "druid.manager.segments.pollDuration"
	DruidCoordinatorKillAuditLogOn            = "druid.coordinator.kill.audit.on"
	DruidMillisToWaitBeforeDeleting           = "millisToWaitBeforeDeleting"
	DruidCoordinatorAsOverlord                = "druid.coordinator.asOverlord.enabled"
	DruidCoordinatorAsOverlordOverlordService = "druid.coordinator.asOverlord.overlordService"

	/// Overlords Configurations
	DruidServiceNameOverlords            = "druid/overlord"
	DruidIndexerStorageType              = "druid.indexer.storage.type"
	DruidIndexerAuditLogEnabled          = "druid.indexer.auditLog.enabled"
	DruidIndexerLogsKillEnables          = "druid.indexer.logs.kill.enabled"
	DruidIndexerLogsKillDurationToRetain = "druid.indexer.logs.kill.durationToRetain"
	DruidIndexerLogsKillInitialDelay     = "druid.indexer.logs.kill.initialDelay"
	DruidIndexerLogsKillDelay            = "druid.indexer.logs.kill.delay"

	DruidEmitterLoggingLogLevel = "druid.emitter.logging.logLevel"

	/// Historicals Configurations
	// Properties
	DruidProcessingNumOfThreads = "druid.processing.numThreads"

	// Segment Cache
	DruidHistoricalsSegmentCacheLocations              = "druid.segmentCache.locations"
	DruidHistoricalsSegmentCacheDropSegmentDelayMillis = "druid.segmentCache.dropSegmentDelayMillis"
	DruidHistoricalsSegmentCacheDir                    = "/druid/data/segments"
	DruidVolumeHistoricalsSegmentCache                 = "data"

	// Query Cache
	DruidHistoricalCacheUseCache      = "druid.historical.cache.useCache"
	DruidHistoricalCachePopulateCache = "druid.historical.cache.populateCache"
	DruidCacheSizeInBytes             = "druid.cache.sizeInBytes"

	// Values
	DruidSegmentCacheLocationsDefaultValue = "[{\"path\":\"/druid/data/segments\",\"maxSize\":10737418240}]"

	/// MiddleManagers Configurations
	// Properties
	DruidWorkerCapacity                                    = "druid.worker.capacity"
	DruidIndexerTaskBaseTaskDir                            = "druid.indexer.task.baseTaskDir"
	DruidWorkerTaskBaseTaskDirKey                          = "druid.worker.task.baseTaskDir"
	DruidWorkerTaskBaseTaskDir                             = "/var/druid/task"
	DruidWorkerBaseTaskDirSize                             = "druid.worker.baseTaskDirSize"
	DruidIndexerForkPropertyDruidProcessingBufferSizeBytes = "druid.indexer.fork.property.druid.processing.buffer.sizeBytes"
	DruidMiddleManagersVolumeBaseTaskDir                   = "base-task-dir"
	DruidVolumeMiddleManagersBaseTaskDir                   = "data"

	// Values
	DruidIndexerTaskBaseTaskDirValue = "/druid/data/baseTaskDir"

	/// Brokers Configurations
	DruidBrokerHTTPNumOfConnections = "druid.broker.http.numConnections"
	DruidSQLEnable                  = "druid.sql.enable"

	/// Routers Configurations
	DruidRouterHTTPNumOfConnections = "druid.router.http.numConnections"
	DruidRouterHTTPNumOfMaxThreads  = "druid.router.http.numMaxThreads"

	// Common Nodes Configurations
	// Properties
	DruidPlaintextPort               = "druid.plaintextPort"
	DruidProcessingBufferSizeBytes   = "druid.processing.buffer.sizeBytes"
	DruidProcessingNumOfMergeBuffers = "druid.processing.numMergeBuffers"
	DruidServerHTTPNumOfThreads      = "druid.server.http.numThreads"

	// Health Check
	DruidHealthDataZero = "0"
	DruidHealthDataOne  = "1"
)

=========================== Druid Constants ============================

View Source
const (
	RabbitMQAMQPPort                = 5672
	RabbitMQAMQPSPort               = 5671
	RabbitMQMQTTPort                = 1883
	RabbitMQMQTTPortWithSSL         = 8883
	RabbitMQSTOMPPort               = 61613
	RabbitMQSTOMPPortWithSSL        = 61614
	RabbitMQWebSTOMPPort            = 15674
	RabbitMQWebSTOMPPortWithSSL     = 15673
	RabbitMQWebMQTTPort             = 15675
	RabbitMQWebMQTTPortWithSSL      = 15676
	RabbitMQExporterPort            = 15692
	RabbitMQExporterPortWithSSL     = 15691
	RabbitMQManagementUIPort        = 15672
	RabbitMQManagementUIPortWithSSL = 15671
	RabbitMQInterNodePort           = 25672
	RabbitMQPeerDiscoveryPort       = 4369

	RabbitMQVolumeData         = "data"
	RabbitMQVolumeConfig       = "rabbitmqconfig"
	RabbitMQVolumeTempConfig   = "temp-config"
	RabbitMQVolumeCustomConfig = "custom-config"

	RabbitMQDataDir         = "/var/lib/rabbitmq/mnesia"
	RabbitMQConfigDir       = "/config/"
	RabbitMQPluginsDir      = "/etc/rabbitmq/"
	RabbitMQCertDir         = "/var/private/ssl"
	RabbitMQTempConfigDir   = "/tmp/config/"
	RabbitMQCustomConfigDir = "/tmp/config/custom_config/"

	RabbitMQConfigVolName     = "rabbitmq-config"
	RabbitMQPluginsVolName    = "rabbitmq-plugins"
	RabbitMQTempConfigVolName = "temp-config"

	RabbitMQContainerName              = "rabbitmq"
	RabbitMQInitContainerName          = "rabbitmq-init"
	RabbitMQManagementPlugin           = "rabbitmq_management"
	RabbitMQPeerdiscoveryPlugin        = "rabbitmq_peer_discovery_k8s"
	RabbitMQFederationPlugin           = "rabbitmq_federation"
	RabbitMQFederationManagementPlugin = "rabbitmq_federation_management"
	RabbitMQShovelPlugin               = "rabbitmq_shovel"
	RabbitMQShovelManagementPlugin     = "rabbitmq_shovel_management"
	RabbitMQWebDispatchPlugin          = "rabbitmq_web_dispatch"
	RabbitMQMQTTPlugin                 = "rabbitmq_mqtt"
	RabbitMQWebMQTTPlugin              = "rabbitmq_stomp"
	RabbitMQSTOMPPlugin                = "rabbitmq_web_mqtt"
	RabbitMQWebSTOMPPlugin             = "rabbitmq_web_stomp"
	RabbitMQPrometheusPlugin           = "rabbitmq_prometheus"
	RabbitMQLoopBackUserKey            = "loopback_users"
	RabbitMQLoopBackUserVal            = "none"
	RabbitMQDefaultTCPListenerKey      = "listeners.tcp.default"
	RabbitMQDefaultSSLListenerKey      = "listeners.ssl.default"
	RabbitMQDefaultSSLListener1Key     = "listeners.ssl.1"
	RabbitMQDefaultTCPListenerVal      = "5672"
	RabbitMQDefaultTLSListenerVal      = "5671"
	RabbitMQQueueMasterLocatorKey      = "queue_master_locator"
	RabbitMQQueueMasterLocatorVal      = "min-masters"
	RabbitMQQueueLeaderLocatorKey      = "queue_leader_locator"
	RabbitMQQueueLeaderLocatorVal      = "balanced"
	RabbitMQDiskFreeLimitKey           = "disk_free_limit.absolute"
	RabbitMQDiskFreeLimitVal           = "2GB"
	RabbitMQPartitionHandingKey        = "cluster_partition_handling"
	RabbitMQPartitionHandingVal        = "pause_minority"
	RabbitMQPeerDiscoveryKey           = "cluster_formation.peer_discovery_backend"
	RabbitMQPeerDiscoveryVal           = "rabbit_peer_discovery_k8s"
	RabbitMQK8sHostKey                 = "cluster_formation.k8s.host"
	RabbitMQK8sHostVal                 = "kubernetes.default.svc"
	RabbitMQK8sAddressTypeKey          = "cluster_formation.k8s.address_type"
	RabbitMQK8sAddressTypeVal          = "hostname"
	RabbitMQNodeCleanupWarningKey      = "cluster_formation.node_cleanup.only_log_warning"
	RabbitMQNodeCleanupWarningVal      = "true"
	RabbitMQLogFileLevelKey            = "log.file.level"
	RabbitMQLogFileLevelVal            = "info"
	RabbitMQLogConsoleKey              = "log.console"
	RabbitMQLogConsoleVal              = "true"
	RabbitMQLogConsoleLevelKey         = "log.console.level"
	RabbitMQLogConsoleLevelVal         = "info"
	RabbitMQDefaultUserKey             = "default_user"
	RabbitMQAnonymousUserKey           = "anonymous_login_user"
	RabbitMQDefaultUserVal             = "$(RABBITMQ_DEFAULT_USER)"
	RabbitMQAnonymousUserVal           = "guest"
	RabbitMQDefaultPasswordKey         = "default_pass"
	RabbitMQAnonymousPasswordKey       = "anonymous_login_pass"
	RabbitMQDefaultPasswordVal         = "$(RABBITMQ_DEFAULT_PASS)"
	RabbitMQAnonymousPasswordVal       = "guest"
	RabbitMQClusterNameKey             = "cluster_name"
	RabbitMQK8sSvcNameKey              = "cluster_formation.k8s.service_name"
	RabbitMQSSLOptionsCAKey            = "ssl_options.cacertfile"
	RabbitMQSSLOptionsCertKey          = "ssl_options.certfile"
	RabbitMQSSLOptionsPrivateKey       = "ssl_options.keyfile"
	RabbitMQSSLOptionsVerifyKey        = "ssl_options.verify"
	RabbitMQSSLOptionsFailIfNoPeerKey  = "ssl_options.fail_if_no_peer_cert"
	RabbitMQSSLPortKey                 = "ssl.port"

	RabbitMQSSLCAKey               = "ssl.cacertfile"
	RabbitMQSSLCertKey             = "ssl.certfile"
	RabbitMQSSLPrivateKey          = "ssl.keyfile"
	RabbitMQSSLVerifyKey           = "ssl.verify"
	RabbitMQSSLFailIfNoPeerKey     = "ssl.fail_if_no_peer_cert"
	RabbitMQConfigFileName         = "rabbitmq.conf"
	RabbitMQEnabledPluginsFileName = "enabled_plugins"
	RabbitMQHealthCheckerQueueName = "kubedb-system"
)
View Source
const (
	WeaviateHTTPPortName    = "http"
	WeaviateHTTPPort        = 8080
	WeaviateHTTPSPortName   = "https"
	WeaviateHTTPSPort       = 8443
	WeaviateMetricsPortName = "metrics"
	WeaviateMetricsPort     = 2112
	WeaviateGRPCPortName    = "grpc"
	WeaviateGRPCPort        = 50051
	WeaviateRAFTPortName    = "raft"
	WeaviateRAFTPort        = 8300
	WeaviateGOSSIPPortName  = "gossip"
	WeaviateGOSSIPPort      = 7102
	WeaviateDATAPortName    = "data"
	WeaviateDATAPort        = 7103

	WeaviateClassNameKubeDBSystem = "KubeDBSystem"

	WeaviateVolumeData    = "data"
	WeaviateDataDir       = "/var/lib/weaviate"
	WeaviateContainerName = "weaviate"
	WeaviateAPIKey        = "AUTHENTICATION_APIKEY_ALLOWED_KEYS"
	WeaviateAPIKeyEnabled = "AUTHENTICATION_APIKEY_ENABLED"
	WeaviateAPIKeyUsers   = "AUTHENTICATION_APIKEY_USERS"

	WeaviateConfigFileName  = "conf.yaml"
	WeaviateCustomConfigDir = "/weaviate-config/conf.yaml"
	WeaviateConfigVolName   = "config"

	WeaviateTLSServerMountPath = "/weaviate/certs/server"
	WeaviateTLSClientMountPath = "/weaviate/certs/client"
	WeaviateTLSCACert          = "ca.crt"
	WeaviateTLSCert            = "tls.crt"
	WeaviateTLSKey             = "tls.key"
)
View Source
const (

	// envs
	EnvDocumentDBHandler   = "DOCUMENTDB_HANDLER"
	EnvDocumentDBPgURL     = "DOCUMENTDB_POSTGRESQL_URL"
	EnvDocumentDBTLSPort   = "DOCUMENTDB_LISTEN_TLS"
	EnvDocumentDBCAPath    = "DOCUMENTDB_LISTEN_TLS_CA_FILE"
	EnvDocumentDBCertPath  = "DOCUMENTDB_LISTEN_TLS_CERT_FILE"
	EnvDocumentDBKeyPath   = "DOCUMENTDB_LISTEN_TLS_KEY_FILE"
	EnvDocumentDBDebugAddr = "DOCUMENTDB_DEBUG_ADDR"

	DocumentDBDatabaseServiceName = "DocumentDB"
	DocumentDBSqlNetPortName      = "documentdb-port"
	DocumentDBSqlNetPort          = 10260
	DocumentDBDefaultPort         = 10260

	DocumentDBDatabasePortName = "postgres"
	DocumentDBDatabasePort     = 9712

	DocumentDBGatewayPortName = "gateway"
	DocumentDBGatewayPort     = 10260

	DocumentDBCoordinatorPortName       = "coordinator"
	DocumentDBCoordinatorPort           = 2380
	DocumentDBCoordinatorClientPortName = "coordinatclient"
	DocumentDBCoordinatorClientPort     = 2379
	DocumentDBGRPCServerPortName        = "grpcserver"
	DocumentDBGRPCServerPort            = 2384

	DocumentDBPrimaryRole = "primary"
	DocumentDBStandbyRole = "standby"

	DocumentDBDatabaseRoleKey      = "documentdb.db/role"
	DocumentDBDatabaseRoleInstance = "instance"

	DocumentDBDefaultUsername       = "default_user"
	DocumentDBAdminUsername         = "documentdb"
	DocumentDBAdminAuthSecretSuffix = "admin-auth"

	DefaultDocumentDBDatabase = "sampledb"

	// volume related constants
	DocumentDBVolumeMountData = "data"
	DocumentDBDataDir         = "/var/pv"

	DocumentDBScripts    = "scripts"
	DocumentDBScriptsDir = "/scripts"

	DocumentDBInitScripts    = "run-scripts"
	DocumentDBInitScriptsDir = "/run_scripts"

	DocumentDBBootstrapScripts    = "bootstrap-scripts"
	DocumentDBBootstrapScriptsDir = "/bootstrap_scripts"

	DocumentDBVolumeNameInitScript      = "init-scripts"
	DocumentDBVolumeMountPathInitScript = "/scripts"

	DocumentDBContainerName            = "documentdb"
	DocumentDBInitContainerName        = "documentdb-init"
	DocumentDBCoordinatorContainerName = "documentdb-coordinator"

	DocumentDBServerPath = "/etc/certs/server"

	DocumentDBExternalClientPath = "/etc/certs/ext"

	DocumentDBMetricsPort = 56790
	DocumentDBTLSPort     = 27018

	DocumentDBMetricsPath     = "/debug/metrics"
	DocumentDBMetricsPortName = "metrics"

	DocumentDBPrimaryLabelKey = "documentdb.kubedb.com/server.primary"

	DocumentDBBackendInitShellFile = "data.sh"
	DocumentDBBackendInitSqlFile   = "data.sql"
	DocumentDBBackendConfigFile    = "user.conf"

	// DocumentDBCustomConfigVolumeName is the projected volume that carries the user-provided
	// custom config secret along with the operator-generated tuning/inline config.
	DocumentDBCustomConfigVolumeName = "custom-config"
	// DocumentDBCustomConfigDir is the mount path where config files (user.conf, inline.conf,
	// pgtune.conf) are made available to the database container. The init-docker scripts
	// reference this path via include_if_exists directives.
	DocumentDBCustomConfigDir = "/etc/config"
	// DocumentDBCustomConfigFile is the key/path of the user-provided custom config file.
	DocumentDBCustomConfigFile = "user.conf"
	// DocumentDBTuningConfigFile is the key/path of the operator-generated pgtune config file.
	DocumentDBTuningConfigFile = "pgtune.conf"
)

=========================== DocumentDB Constants ============================

View Source
const (
	EnvPetsetName                          = "PETSET_NAME"
	EnvDBName                              = "DB_NAME"
	EnvDBNamespace                         = "DB_NAMESPACE"
	EnvNamespace                           = "NAMESPACE"
	EnvPodName                             = "POD_NAME"
	EnvReplicas                            = "REPLICAS"
	EnvPGMajorVersion                      = "MAJOR_PG_VERSION"
	EnvDBVersion                           = "DB_VERSION"
	EnvGoverningServiceDns                 = "GOVERNING_SERVICE_DNS"
	EnvPrimaryServiceDns                   = "PRIMARY_SERVICE_DNS"
	EnvPrimaryHost                         = "PRIMARY_HOST"
	EnvDocumentDBUser                      = "POSTGRES_USER"
	EnvDocumentDBPassword                  = "POSTGRES_PASSWORD"
	EnvSSL                                 = "SSL"
	EnvSSLMode                             = "SSL_MODE"
	EnvClientAuthMode                      = "CLIENT_AUTH_MODE"
	EnvMaxLagBeforeFailover                = "MAX_LAG_BEFORE_FAILOVER"
	EnvPeriod                              = "PERIOD"
	EnvElectionTick                        = "ELECTION_TICK"
	EnvHeartbeatTick                       = "HEARTBEAT_TICK"
	EnvTransferLeadershipInterval          = "TRANSFER_LEADERSHIP_INTERVAL"
	EnvTransferLeadershipTimeout           = "TRANSFER_LEADERSHIP_TIMEOUT"
	EnvIsArbiterEnabled                    = "IS_ARBITER"
	EnvIsDistributed                       = "IS_DISTRIBUTED"
	EnvWalLimitPolicy                      = "WAL_LIMIT_POLICY"
	EnvArchiverEnabled                     = "ARCHIVER_ENABLED"
	EnvArchivePath                         = "ARCHIVE_PATH"
	EnvArchiverCompletePath                = "LAST_ARCHIVED_FILE_INFO_DIR"
	EnvForceFailOverAcceptingDataLossAfter = "FORCE_FAILOVER_ACCEPTING_DATA_LOSS_AFTER"
	EnvArbiterPod                          = "ARBITER_POD"
	EnvReadReplica                         = "READ_REPLICA"
)
View Source
const (
	IgniteCustomConfigVolName  = "custom-config"
	IgniteCustomConfigDir      = "/tmp/config/custom_config"
	IgniteTempConfigVolName    = "temp-config"
	IgniteTempConfigDir        = "/tmp/config"
	IgniteInitContainerName    = "ignite-init"
	IgniteInitScriptVolName    = "init-scripts"
	IgniteInitScriptDir        = "/scripts"
	IgniteConfigVolName        = "ignite-config"
	IgniteConfigFileName       = "node-configuration.xml"
	IgniteDataVolName          = "data"
	IgniteDataDir              = "/opt/ignite/apache-ignite/work"
	IgniteContainerName        = "ignite"
	IgniteConfigDir            = "/ignite/config"
	IgniteRestPortName         = "rest"
	IgniteRestPort             = 8080
	IgniteThinPortName         = "thin"
	IgniteThinPort             = 10800
	IgniteSPIPortName          = "spi"
	IgniteSPIPort              = 47100
	IgniteTCPPortName          = "tcp"
	IgniteTCPPort              = 47500
	IgniteJMXPortName          = "jmx"
	IgniteJMXPort              = 49112
	IgniteUserName             = "ignite"
	OPTION_LIBS                = "OPTION_LIBS"
	CONFIG_URI                 = "CONFIG_URI"
	CONTROL_JVM_OPTS           = "CONTROL_JVM_OPTS"
	IGNITE_PASSWORD            = "IGNITE_PASSWORD"
	DISABLE_SECURITY           = "DISABLE_SECURITY"
	ENABLE_SSL                 = "ENABLE_SSL"
	IGNITE_KEYSTORE_PASSWORD   = "IGNITE_KEYSTORE_PASSWORD"
	IgniteKeystorePassKey      = "keystore-secret"
	IgniteServerKeystoreFile   = "/ignite/certs/server/keystore.jks"
	IgniteServerTruststoreFile = "/ignite/certs/server/truststore.jks"
	IgniteClientKeystoreFile   = "/ignite/certs/client/keystore.jks"
	IgniteClientTruststoreFile = "/ignite/certs/client/truststore.jks"
	IgniteTLSServerMountPath   = "/ignite/certs/server"
	IgniteTLSClientMountPath   = "/ignite/certs/client"
)

=========================== Ignite Constants ============================

View Source
const (
	ClickHouseKeeperPort  = 9181
	ClickHouseDefaultHTTP = 8123
	ClickHouseDefaultTLS  = 8443
	ClickHouseNativeTCP   = 9000
	ClickHouseNativeTLS   = 9440
	ClickhousePromethues  = 9363
	ClickHouseRaftPort    = 9234

	ComponentCoOrdinator = "coordinator"

	ClickHouseDataSyncCheckFile           = "/scripts/check.txt"
	ClickHousePromethusEndpoint           = "/metrics"
	ClickHouseDataDir                     = "/var/lib/clickhouse"
	ClickHouseKeeperDataDir               = "/var/lib/clickhouse_keeper"
	ClickHouseConfigDir                   = "/etc/clickhouse-server/config.d"
	ClickHouseKeeperConfigDir             = "/etc/clickhouse-keeper"
	ClickHouseCommonConfigDir             = "/etc/clickhouse-server/conf.d"
	ClickHouseInternalKeeperTempConfigDir = "/keeper"
	ClickHouseKeeperConfigPath            = "/etc/clickhouse-keeper"
	ClickHouseUserConfigDir               = "/etc/clickhouse-server/user.d"
	ClickHouseLogPath                     = "/var/log/clickhouse-server/clickhouse-server.log"
	ClickHouseErrorLogPath                = "/var/log/clickhouse-server/clickhouse-server.err.log"

	ClickHouseClientCertMountPath      = "/etc/clickhouse-server/certs"
	ClickHouseClientCertVolumeName     = "certs"
	ClickHouseTempClientCertVolumeName = "certs-tmp"
	ClickHouseTempClientCertMountPath  = "/certs-tmp"
	ClickHouseScriptsVolumeName        = "scripts"
	ClickHouseScriptsMountPath         = "/scripts"
	ClickHouseTempConfigDir            = "/config-tmp"
	ClickHouseCACertKey                = "ca.crt"
	ClickHouseCACertPath               = "ca.crt"
	ClickHouseClientCACertPath         = "client-ca.crt"
	ClickHouseServerCertKey            = "tls.crt"
	ClickHouseServerCertPath           = "server.crt"
	ClickHouseServerKey                = "tls.key"
	ClickHouseServerKeyPath            = "server.key"
	ClickHouseClientCertKey            = "tls.crt"
	ClickHouseClientCertPath           = "client.crt"
	ClickHouseClientKey                = "tls.key"
	ClickHouseClientPath               = "client.key"

	ClickHouseUserInitScriptVolumeName      = "initial-script"
	ClickHouseUserInitScriptVolumeMountPath = "/docker-entrypoint-initdb.d"

	// keeper
	ClickHouseKeeperDataPath     = "/var/lib/clickhouse"
	ClickHouseKeeperLogPath      = "/var/lib/clickhouse/coordination/logs"
	ClickHouseKeeperSnapshotPath = "/var/lib/clickhouse/coordination/snapshots"

	ClickHouseInternalKeeperDataPath     = "/var/lib/clickhouse/coordination/log"
	ClickHouseInternalKeeperSnapshotPath = "/var/lib/clickhouse/coordination/snapshots"
	ClickHOuseKeeeprConfigFileVolumeDir  = "/tmp/clickhouse-keeper"

	ClickHouseVolumeData  = "data"
	ClickHouseDefaultUser = "default"

	ClickHouseConfigVolumeName               = "clickhouse-config"
	ClickHouseKeeperConfigVolumeName         = "clickhouse-keeper-config"
	ClickHouseInternalKeeperConfigVolumeName = "clickhouse-internal-keeper-config"

	ClickHouseDefaultStorageSize = "2Gi"

	ClickHouseClusterConfigVolName = "cluster-config"

	ClickHouseClusterTempConfigVolName = "temp-cluster-config"

	ClickHouseContainerName     = "clickhouse"
	ClickHouseInitContainerName = "clickhouse-init"

	ClickHouseClusterConfigFile = "cluster-config.yaml"

	ClickHouseMacrosFileName = "macros.yaml"

	ClickHouseStandalone = "standalone"
	ClickHouseCluster    = "cluster"

	ClickHouseHealthCheckerDatabase = "kubedb_system"
	ClickHouseHealthCheckerTable    = "kubedb_write_check"
	ClickHouseReplicationTableName  = "kubedb_events_local"

	ClickHouseServerConfigFile   = "server-config.yaml"
	ClickHouseKeeperFileConfig   = "keeper_config.yaml"
	ClickHouseVolumeCustomConfig = "custom-config"

	// keeper
	ClickHouseKeeperContainerName        = "clickhouse-keeper"
	ClickHouseKeeeprConfigFileName       = "keeper_config.xml"
	ClickHOuseKeeeprConfigFileVolumeName = "keeper-config"
	ClickHouseKeeperInitContainerName    = "clickhouse-keeper-init"
	ClickHouseKeeperConfig               = "etc-clickhouse-keeper"
	ClickHouseInternalServerListFile     = "server_list.yaml"
	ClickHouseKeeperServerIdNo           = "serverid"
	ClickHouseKeeperServerID             = "KEEPERID"
)
View Source
const (
	Neo4jBoltPort      = 7687 // Bolt protocol (binary driver, neo4j:// and bolt://)
	Neo4jHTTPPort      = 7474 // Neo4j Browser and Cypher HTTP API
	Neo4jHTTPSPort     = 7473 // Neo4j Browser and Cypher HTTPS API
	Neo4jBackupPort    = 6362 // Online backup service (internal)
	Neo4jGraphitePort  = 2003 // Graphite metrics (optional)
	Neo4jExporterPort  = 2004 // Prometheus metrics (optional)
	Neo4jJMXPort       = 3637 // Java Management Extensions (o // ptional)
	Neo4jRoutingPort   = 7688 // Routing protocol for Causal Clustering
	Neo4jRaftPort      = 7000 // Raft protocol for Causal Clustering
	Neo4jClusterTxPort = 6000 // Cluster transaction protocol for Causal Clustering

	Neo4jConfigVolName      = "neo4j-conf"
	Neo4jVolumeCustomConfig = "custom-config"
	Neo4jVolumeData         = "data"
	Neo4jVolumeAuthName     = "neo4j-auth"

	Neo4jDataDir         = "/data"
	Neo4jConfDir         = "/config/neo4j.conf"
	Neo4jCustomConfigDir = "/custom-config/neo4j.conf"
	Neo4jBackupDir       = "/backups"
	Neo4jImportDir       = "/import"
	Neo4jLicenseDir      = "/licenses"
	Neo4jLogDir          = "/logs"
	Neo4jAuthDir         = "/config/neo4j-auth"
	Neo4jMetricsDir      = "/metrics"

	Neo4jContainerName     = "neo4j"
	Neo4jInitContainerName = "neo4j-init"
	Neo4jConfigFileName    = "neo4j.conf"
)
View Source
const (
	CassandraNativeTcpPort    = 9042
	CassandraInterNodePort    = 7000
	CassandraInterNodeSslPort = 7001
	CassandraJmxPort          = 7199
	CassandraExporterPort     = 8080

	CassandraNativeTcpPortName    = "cql"
	CassandraInterNodePortName    = "internode"
	CassandraInterNodeSslPortName = "internode-ssl"
	CassandraJmxPortName          = "jmx"
	CassandraExporterPortName     = "exporter"

	CassandraUserAdmin = "admin"

	CassandraAuthCommand       = "/tmp/sc/cassandra-start-and-auth.sh"
	CassandraMetadataName      = "metadata.name"
	CassandraMetadataNamespace = "metadata.namespace"
	CassandraStatusPodIP       = "status.podIP"

	CassandraPasswordAuthenticator = "PasswordAuthenticator"
	CassandraAllowAllAuthenticator = "AllowAllAuthenticator"

	CassandraTopology = "CASSANDRA_TOPOLOGY"

	CassandraOperatorConfigDir = "/tmp/config/operator-config"
	CassandraMainConfigDir     = "/etc/cassandra"
	CassandraCustomConfigDir   = "/tmp/config/custom-config"
	CassandraScriptDir         = "/tmp/sc"

	CassandraVolumeOperatorConfig = "operator-config-volume"
	CassandraVolumeMainConfig     = "main-config-volume"
	CassandraVolumeCustomConfig   = "custom-config"
	CassandraVolumeScript         = "script-volume"

	CassandraVolumeData                  = "data"
	CassandraDataDir                     = "/var/lib/cassandra"
	CassandraServerLogFile               = "var/log/cassandra-server/cassandra-server.log"
	CassandraServerErrorLogFile          = "var/log/cassandra-server/cassandra-server.err.log"
	CassandraContainerName               = "cassandra"
	CassandraMedusaInitContainerName     = "medusa-init"
	CassandraMetricExporterContainerName = "exporter"
	CassandraInitContainerName           = "cassandra-init"
	CassandraMainConfigFile              = "cassandra.yaml"
	CassandraRackConfigFile              = "rack-config.yaml"
	CassandraStandalone                  = "standalone"
	CassandraServerConfigFile            = "server-config.yaml"

	EnvNameCassandraEndpointSnitch = "CASSANDRA_ENDPOINT_SNITCH"
	EnvValCassandraEndpointSnitch  = "GossipingPropertyFileSnitch"

	EnvNameCassandraRack             = "CASSANDRA_RACK"
	EnvNameCassandraPodNamespace     = "CASSANDRA_POD_NAMESPACE"
	EnvNameCassandraService          = "CASSANDRA_SERVICE"
	EnvNameCassandraMaxHeapSize      = "MAX_HEAP_SIZE"
	EnvValCassandraMaxHeapSize       = "512M"
	EnvNameCassandraHeapNewSize      = "HEAP_NEWSIZE"
	EnvValCassandraHeapNewSize       = "100M"
	EnvNameCassandraListenAddress    = "CASSANDRA_LISTEN_ADDRESS"
	EnvNameCassandraBroadcastAddress = "CASSANDRA_BROADCAST_ADDRESS"
	EnvNameCassandraRpcAddress       = "CASSANDRA_RPC_ADDRESS"
	EnvValCassandraRpcAddress        = "0.0.0.0"
	EnvNameCassandraNumTokens        = "CASSANDRA_NUM_TOKENS"
	EnvValCassandraNumTokens         = "256"
	EnvNameCassandraStartRpc         = "CASSANDRA_START_RPC"
	EnvNameCassandraSeeds            = "CASSANDRA_SEEDS"
	EnvNameCassandraPodName          = "CASSANDRA_POD_NAME"
	EnvNameCassandraUser             = "CASSANDRA_USER"
	EnvNameCassandraPassword         = "CASSANDRA_PASSWORD"
	EnvNameCassandraSslCertFile      = "SSL_CERTFILE"
	EnvValCassandraSslCertFile       = CassandraCertDir + "/ca.crt"

	EnvNameMgmtApiListenTcpPort = "MGMT_API_LISTEN_TCP_PORT"
	EnvValMgmtApiListenTcpPort  = "8081"
	EnvNameMedusaMode           = "MEDUSA_MODE"
	EnvValMedusaModeRestore     = "RESTORE"
	EnvNameMedusaDebugSleep     = "DEBUG_SLEEP"
	EnvValMedusaDebugSleep      = "0s"
	CassandraNodetoolDir        = "/opt/cassandra/temp/bin"
	CassandraBackupBinary       = "nodetool"

	CassandraKeystoreSecretKey     = "keystore-cred"
	CassandraCertDir               = "/opt/cassandra/ssl"
	CassandraKeystoreFile          = CassandraCertDir + "/keystore.jks"
	CassandraTruststoreFile        = CassandraCertDir + "/truststore.jks"
	CassandraKeystorePasswordKey   = "keystore_password"
	CassandraTrustStorePasswordKey = "truststore_password"

	CassandraServerEncryptionOptions = "server_encryption_options"
	CassandraClientEnctyptionOptions = "client_encryption_options"
	CassandraTLSStoreTypeJKS         = "JKS"

	CassandraAuthenticatorKey = "authenticator"

	CassandraTLSEncryptionEnabledKey       = "enabled"
	CassandraTLSInternodeEncryptionModeKey = "internode_encryption"
	CassandraTLSKeystorePathKey            = "keystore"
	CassandraTLSTruststorePathKey          = "truststore"
	CassandraTLSRequireClientAuthKey       = "require_client_auth"
	CassandraTLSProtocolKey                = "protocol"
	CassandraTLSAlgorithmKey               = "algorithm"
	CassandraTLSStoreTypeKey               = "store_type"
	CassandraClientEncryptionOptionalKey   = "optional"
	CassandraTLSEncryptionAllValue         = "all"
	CassandraTLSProtocolTLSValue           = "TLS"
	CassandraTLSDefaultAlgorithmValue      = "SunX509"
	CassandraTLSStoreTypeJKSValue          = "JKS"
)
View Source
const (
	StorageMigration          = "StorageMigration"
	StorageMigrationSucceeded = "StorageMigrationSucceeded"
)

=========================== Migration Constant =================================

View Source
const (
	VirtualSecretsVolume          = "virtual-secrets"
	VirtualSecretsVolumeMountPath = "/var/run/secrets/virtual-secrets"
	VirtualSecretsKeyUsername     = "vs:///var/run/secrets/virtual-secrets/" + core.BasicAuthUsernameKey
	VirtualSecretsKeyPassword     = "vs:///var/run/secrets/virtual-secrets/" + core.BasicAuthPasswordKey
	VirtualSecretsVENV            = "/var/run/secrets/virtual-secrets/bin/venv"
	SecretProviderClass           = "secretProviderClass"
	SecretStoreCSIDriver          = "secrets-store.csi.k8s.io"
)
View Source
const (
	ResourceKindStatefulSet = "StatefulSet"
	ResourceKindPetSet      = "PetSet"
	ResourceKindSecret      = "Secret"
)

Resource kind related constants

View Source
const (
	InitFromGit                 = "init-from-git"
	DefaultInitFromGitMountPath = "/git"
	GitSecretVolume             = "git-secret"
	GitSecretMountPath          = "/etc/git-secret"
	GitSyncContainerName        = "git-sync"
)
View Source
const (
	OracleDatabaseServiceName = "ORCL"
	OracleSqlNetPortName      = "sqlnet"
	OracleSqlNetTCPSPortName  = "tcps"
	OracleEditionEnterprise   = "enterprise"

	OraclePrimaryRole = "primary"
	OracleStandbyRole = "standby"

	OracleDatabasePort = 1521

	OracleSysDbaUser = "sys"

	OracleContainerName             = "oracle"
	OracleObserverContainer         = "observer"
	OracleCoordinatorContainerName  = "oracle-coordinator"
	OracleObserverContainerName     = "observer"
	OracleInitContainerName         = "oracle-init"
	OracleObserverInitContainerName = "observer-init"

	OracleVolumeScripts = "oracle-scripts"
	OracleDataVolume    = "data"

	OracleVolumeMountScripts = "/scripts"
	OracleDataDir            = "/opt/oracle/oradata"

	OracleStandbyServiceSuffix = "standby"

	OracleDatabaseRoleKey          = "oracle.db/role"
	OracleDatabaseRoleObserver     = "observer"
	OracleDatabaseRoleInstance     = "instance"
	OracleEnvUserName              = "SYS_USER"
	OracleEnvPassword              = "ORACLE_PWD"
	OracleEnvOracleSID             = "ORACLE_SID"
	OracleEnvDataDir               = "ORADATA"
	OracleSharedTlsVolumeName      = "certs"
	OracleSharedTlsVolumeMountPath = "/tls/certs"

	OracleCustomConfigFileName = "oracle.cnf"
)

========================= Oracle Constants ====================================

View Source
const (
	DB2DatabaseServiceName = "DB2"
	DB2SqlNetPortName      = "db2-port"
	DB2SqlNetPort          = 50001

	DB2EditionEnterprise = "enterprise"

	DB2PrimaryRole = "primary"
	DB2StandbyRole = "standby"

	DB2DatabasePort = 1521

	DB2SysDbaUser = "db2inst1"

	DB2ContainerName             = "db2"
	DB2CoordinatorContainerName  = "db2-coordinator"
	DB2ObserverContainerName     = "observer"
	DB2InitContainerName         = "db2-init"
	DB2ObserverInitContainerName = "observer-init"

	DB2VolumeScripts = "db2-data"
	DB2DataVolume    = "db2-data"

	DB2VolumeMountScripts = "db2-data"
	DB2DataDir            = "/database"

	DB2StandbyServiceSuffix = "standby"

	DB2DatabaseRoleKey      = "db2.db/role"
	DB2DatabaseRoleObserver = "observer"
	DB2DatabaseRoleInstance = "instance"
	DB2EnvUserName          = "SYS_USER"
	DB2EnvPassword          = "DB2_PWD"
	DB2EnvOracleSID         = "DB2_SID"
	DB2EnvDataDir           = "DB2DATA"
)
View Source
const (
	QdrantContainerName = "qdrant"

	QdrantHTTPPortName = "http"
	QdrantHTTPPort     = 6333
	QdrantGRPCPortName = "grpc"
	QdrantGRPCPort     = 6334
	QdrantP2PPortName  = "p2p"
	QdrantP2PPort      = 6335

	QdrantDataVolName   = "data"
	QdrantDataDir       = "/qdrant/storage"
	QdrantConfigVolName = "qdrant-config"
	QdrantConfigDir     = "/qdrant/config"
	QdrantTLSVolName    = "tls"
	QdrantTLSVolDir     = "/tls"

	QdrantConfigFileName = "config.yaml"

	QdrantAPIKey         = "api-key"
	QdrantReadOnlyAPIKey = "read-only-api-key"

	QdrantTLSCA   = "ca.crt"
	QdrantTLSCert = "tls.crt"
	QdrantTLSKey  = "tls.key"

	QdrantServerCAPath   = "ca.pem"
	QdrantServerCertPath = "cert.pem"
	QdrantServerKeyPath  = "key.pem"

	QdrantClientCAPath   = "ca.crt"
	QdrantClientCertPath = "client.crt"
	QdrantClientKeyPath  = "client.key"
)

=========================== Qdrant Constants ============================

View Source
const (
	HanaDBVolumeScripts = "hanadb-scripts"

	HanaDBVolumeMountScripts = "/scripts"

	// Container names
	HanaDBContainerName                     = "hanadb"
	HanaDBCoordinatorContainerName          = "hanadb-coordinator"
	HanaDBVolumePermissionInitContainerName = "hanadb-volume-permissions"

	// Mount paths
	HanaDBDataDir         = "/hana/mounts"
	HanaDBSecretMountPath = "/etc/hana-secrets"
	HanaDBTLSInputPath    = "/etc/hanadb-tls/server"
	HanaDBExporterTLSPath = "/etc/hanadb_exporter/certs"
	HanaDBConfigFileName  = "global.ini"
	HanaDBConfigDir       = "/hana/mounts/system/config"
	HanaDBConfigMountPath = "/etc/hanadb-config"

	// Volume names
	HanaDBDataVolume           = "data"
	HanaDBVolumePasswordSecret = "password-secret"
	HanaDBVolumeTLSInput       = "tls-input"
	HanaDBVolumeExporterTLS    = "exporter-tls-volume"
	HanaDBConfigVolumeName     = "hanadb-config"

	// User and Group IDs
	HanaDBUserID  = 12000 // hxeadm UID
	HanaDBGroupID = 79    // hxeadm GID

	// Health check schema and table
	HanaDBHealthCheckSchemaName = "KUBEDB_SYSTEM"
	HanaDBHealthCheckTableName  = "KUBEDB_WRITE_CHECK"

	// Auth secret
	HanaDBSystemUser        = "SYSTEM"
	HanaDBPasswordFileKey   = "password.json"
	HanaDBMasterPasswordKey = "master_password"

	// Main SYSTEMDB SQL connection port, Used by health checks and administrative operations
	HanaDBSystemDBSQLPortName = "systemdb-sql"
	HanaDBSystemDBSQLPort     = 39017

	// Metrics exporter port
	HanaDBExporterPort = 9668

	// Nameserver port for internal communication and system replication
	HanaDBNameServerPortName = "nameserver"
	HanaDBNameServerPort     = 39001

	// SYSTEMDB SQL mapping port - used internally for routing
	HanaDBSystemDBMappingPortName = "systemdb-map"
	HanaDBSystemDBMappingPort     = 39013

	HanaDBPrimaryServicePortName = "primary"

	HanaDBCoordinatorPort       = 2380
	HanaDBCoordinatorClientPort = 2379

	// TenantDatabaseName is the name of the KubeDB managed tenant database
	KubeDBTenantDatabaseName = "KUBEDB_HEALTH_CHECK"
)

=========================== HanaDB Constants ============================

View Source
const (
	DistributedDatabaseLabel                   = GroupName + "/distributed"
	DistributedCustomConfigSecretNameSuffix    = "custom-config"
	DistributedRBACNameSuffix                  = "rbac"
	DistributedServiceExportNameSuffix         = "serviceexports"
	DistributedTLSSecretNameSuffix             = "tls-secrets"
	DistributedGRPCSecretNameSuffix            = "grpc-secrets"
	DistributedAuthSecretNameSuffix            = "auth"
	DistributedPromethuesSecretNameSuffix      = "prometheus-data"
	DistributedPromethuesSecretVolumeName      = "prometheus-data"
	DistributedPromethuesSecretVolumeMountPath = "/var/prometheus-data"
	DistributedMonitoringAgentENV              = "MONITORING_AGENT"
	DistributedMonitoringAgentPrometheus       = "prometheus"
	DistributedDBReplicaENV                    = "DB_REPLICAS"
	DistributedMaxVolumeUsed                   = "max_used"
	DistributedVolumeCapacity                  = "capacity"
	DistributedPrimaryServiceExportSuffix      = "primary-serviceexport"
	DistributedPhysicalBackupContainerName     = "physical-backup-1"
	DistributedPhysicalRestoreContainerName    = "distributed-physical-backup-restore-0"
	KubesliceContainerExcludeLabel             = "kubeslice.io/exclude"
	KubeSliceDomainSuffix                      = "slice.local"
	KubeSliceNSMIPKey                          = "kubeslice.io/nsmIP"
	KubeSlicePodIPVolumeName                   = "podip"
	KubeSlicePodIPFileName                     = "podip"
	KubeSliceNSMContainerName                  = "cmd-nsc-grpc"

	// BranchedFromAnnotation gates the KubeDB provisioner's "branched" mode: a Database carrying it is
	// adopted onto cloned PVCs (created by the Courier Branch operator) instead of being provisioned
	// empty. Its value records the branch provenance, e.g. {"cluster": "prod-east", "source": "demo/prod-pg"}.
	BranchedFromAnnotation = "kubedb.com/branched-from"

	// Archiver
	OwnerDatabasesAnnotation                  = "kubedb.com/owner-databases"
	DistributedArchiverSnapshotInfoAnnotation = "distributedsnapshotinfo"
	DistributedArchiverCMKeySnapshots         = "snapshots"
	DistributedArchiverCMKeyRestoreSession    = "restoresession"
	DistributedArchiverBackupCMNameSuffix     = "backup"
	DistributedArchiverRestoreCMNameSuffix    = "restore"
	DistributedArchiverSnapshotCMNameSuffix   = "snapshots"

	// GRPC commands
	DistributedCommandDatabasePodGet     = "get_pod"
	DistributedCommandDatabseUpgrade     = "database-upgrade"
	DistributedCommandRecoveryFileCreate = "kubedb_create_recovery_done_file"
	DistributedCommandBackup             = "kubestash_backup"
	DistributedCommandRestore            = "kubestash_backup_restore"
	DistributedCommandVolumeSnapshot     = "kubestash_volume_snapshot"
	DistributedCommandPodMetric          = "kubedb_autoscaler_get_pod_metrics"
	DistributedCommandVolumeUsage        = "kubedb_autoscaler_volume_usage"
	DistributedCommandVolumeCapacity     = "kubedb_autoscaler_volume_capacity"
)

=========================== Distributed Constants ============================

View Source
const (
	// GroupName is the group name use in this package
	GroupName = "kubedb.com"
	// MutatorGroupName is the group name used to implement mutating webhooks for types in this package
	MutatorGroupName = "mutators." + GroupName
	// ValidatorGroupName is the group name used to implement validating webhooks for types in this package
	ValidatorGroupName = "validators." + GroupName
)

Variables

View Source
var (
	SidekickGVR       = fmt.Sprintf("%s.%s", skapi.ResourceSidekicks, skapi.SchemeGroupVersion.Group)
	SidekickOwnerName = SidekickGVR + "/owner-name"
	SidekickOwnerKind = SidekickGVR + "/owner-kind"
)
View Source
var (
	DefaultInitContainerResource = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".200"),
			core.ResourceMemory: resource.MustParse("256Mi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("512Mi"),
		},
	}
	DefaultResources = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".500"),
			core.ResourceMemory: resource.MustParse("1024Mi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("1024Mi"),
		},
	}
	// ref: https://clickhouse.com/docs/en/guides/sizing-and-hardware-recommendations#what-should-cpu-utilization-be
	ClickHouseDefaultResources = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse("1"),
			core.ResourceMemory: resource.MustParse("4Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("4Gi"),
		},
	}

	IgniteDefaultResources = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".500"),
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
	}

	// CoordinatorDefaultResources must be used for raft backed coordinators to avoid unintended leader switches
	CoordinatorDefaultResources = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".200"),
			core.ResourceMemory: resource.MustParse("256Mi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("256Mi"),
		},
	}

	DefaultArbiterMemoryIntensive = core.ResourceRequirements{
		Requests: core.ResourceList{

			core.ResourceCPU:    resource.MustParse(".200"),
			core.ResourceMemory: resource.MustParse("500Mi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("500Mi"),
		},
	}

	// DefaultResourcesCPUIntensiveMongoDBv6 is for MongoDB versions >= 6
	DefaultResourcesCPUIntensiveMongoDBv6 = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".800"),
			core.ResourceMemory: resource.MustParse("1024Mi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("1024Mi"),
		},
	}
	// DefaultResourcesCPUIntensiveMongoDBv8 is for MongoDB versions >= 8
	DefaultResourcesCPUIntensiveMongoDBv8 = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".800"),
			core.ResourceMemory: resource.MustParse("1.5Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("1.5Gi"),
		},
	}

	// DefaultResourcesMemoryIntensive must be used for elasticsearch or kafka
	// to avoid OOMKILLED while deploying ES V8
	DefaultResourcesMemoryIntensive = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".500"),
			core.ResourceMemory: resource.MustParse("1.5Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("1.5Gi"),
		},
	}

	// DefaultResourcesMemoryIntensiveMSSQLServer must be used for Microsoft SQL Server
	DefaultResourcesMSSQLServer = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse("1.5"),
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("4Gi"),
		},
	}

	// DefaultResourcesCoreAndMemoryIntensive must be used for Solr
	DefaultResourcesCoreAndMemoryIntensiveSolr = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".900"),
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
	}

	DefaultResourcesCoreAndMemoryIntensiveOracle = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse("2"),
			core.ResourceMemory: resource.MustParse("7Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceCPU:    resource.MustParse("4"),
			core.ResourceMemory: resource.MustParse("10Gi"),
		},
	}
	DefaultResourcesCoreAndMemoryIntensiveOracleObserver = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse("500m"),
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceCPU:    resource.MustParse("1"),
			core.ResourceMemory: resource.MustParse("3Gi"),
		},
	}
	DefaultResourceStorageOracleObserver = core.VolumeResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceStorage: resource.MustParse("1Gi"),
		},
	}

	// DefaultResourcesMemoryIntensiveSDB must be used for Singlestore when enabled monitoring or version >= 8.5.x
	DefaultResourcesMemoryIntensiveSDB = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".600"),
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
	}

	// DefaultResourcesMemoryIntensive must be used for Druid MiddleManagers
	DefaultResourcesMemoryIntensiveDruid = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".500"),
			core.ResourceMemory: resource.MustParse("2.5Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("2.5Gi"),
		},
	}

	DefaultResourcesHanaDB = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse("2"),
			core.ResourceMemory: resource.MustParse("8Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceCPU:    resource.MustParse("4"),
			core.ResourceMemory: resource.MustParse("10Gi"),
		},
	}

	DefaultResourcesNeo4j = core.ResourceRequirements{
		Requests: core.ResourceList{
			core.ResourceCPU:    resource.MustParse(".500"),
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
		Limits: core.ResourceList{
			core.ResourceMemory: resource.MustParse("2Gi"),
		},
	}
)

Functions

func CommonSidekickLabels added in v0.50.0

func CommonSidekickLabels() map[string]string

func DefaultArbiter added in v0.47.0

func DefaultArbiter(computeOnly bool) core.ResourceRequirements

Types

This section is empty.

Directories

Path Synopsis
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +k8s:defaulter-gen=TypeMeta +groupName=kubedb.com
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +k8s:defaulter-gen=TypeMeta +groupName=kubedb.com
nolint:goconst
nolint:goconst
+k8s:deepcopy-gen=package,register +k8s:conversion-gen=kubedb.dev/apimachinery/apis/kubedb/v1 +k8s:openapi-gen=true +k8s:defaulter-gen=TypeMeta +groupName=kubedb.com
+k8s:deepcopy-gen=package,register +k8s:conversion-gen=kubedb.dev/apimachinery/apis/kubedb/v1 +k8s:openapi-gen=true +k8s:defaulter-gen=TypeMeta +groupName=kubedb.com

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL