Documentation
¶
Overview ¶
Package rorconfig provides a centralized configuration management system for ROR applications. It supports loading configuration values from environment variables, default values, and custom secret providers.
Index ¶
- Variables
- func AutomaticEnv()
- func GetBool(key ConfigConst) bool
- func GetConfigs() configsMap
- func GetFloat32(key ConfigConst) float32
- func GetFloat64(key ConfigConst) float64
- func GetInt(key ConfigConst) int
- func GetInt64(key ConfigConst) int64
- func GetString(key ConfigConst) string
- func GetUint(key ConfigConst) uint
- func GetUint32(key ConfigConst) uint32
- func GetUint64(key ConfigConst) uint64
- func InitConfig()
- func IsSet(key ConfigConst) bool
- func Set(key ConfigConst, value any)
- func SetDefault(key ConfigConst, defaultValue any)
- func SetWithProvider(key ConfigConst, provider SecretProvider)
- type ConfigConst
- type ConfigConstData
- type ConfigData
- func (cd ConfigData) Bool() bool
- func (cd ConfigData) Float32() float32
- func (cd ConfigData) Float64() float64
- func (cd ConfigData) Int() int
- func (cd ConfigData) Int64() int64
- func (cd ConfigData) String() string
- func (cd ConfigData) Uint() uint
- func (cd ConfigData) Uint32() uint32
- func (cd ConfigData) Uint64() uint64
- type ConfigconstsMap
- func (cc *ConfigconstsMap) Add(key ConfigConst, data ConfigConstData)
- func (cc *ConfigconstsMap) GetDescription(key ConfigConst) string
- func (cc *ConfigconstsMap) GetEnvVariable(key ConfigConst) string
- func (cc *ConfigconstsMap) IsDeprecated(key ConfigConst) bool
- func (cc *ConfigconstsMap) IsSet(key ConfigConst) bool
- type SecretProvider
Constants ¶
This section is empty.
Variables ¶
var ConfigConsts = ConfigconstsMap{ ConfigConst("ROLE"): {/* contains filtered or unexported fields */}, ConfigConst("HTTP_HOST"): {/* contains filtered or unexported fields */}, ConfigConst("HTTP_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("HTTP_HEALTH_HOST"): {/* contains filtered or unexported fields */}, ConfigConst("HTTP_HEALTH_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("HTTP_TIMEOUT"): {/* contains filtered or unexported fields */}, ConfigConst("HEALTH_ENDPOINT"): {/* contains filtered or unexported fields */}, ConfigConst("API_KEY_SALT"): {/* contains filtered or unexported fields */}, ConfigConst("API_KEY"): {/* contains filtered or unexported fields */}, ConfigConst("API_KEY_SECRET"): {/* contains filtered or unexported fields */}, ConfigConst("API_ENDPOINT"): {/* contains filtered or unexported fields */}, ConfigConst("DEVELOPMENT"): {/* contains filtered or unexported fields */}, ConfigConst("PORT"): {/* contains filtered or unexported fields */}, ConfigConst("POD_NAMESPACE"): {/* contains filtered or unexported fields */}, ConfigConst("CLUSTER_ID"): {/* contains filtered or unexported fields */}, ConfigConst("ERROR_COUNT"): {/* contains filtered or unexported fields */}, ConfigConst("HELSEGITLAB_BASE_URL"): {/* contains filtered or unexported fields */}, ConfigConst("ENVIRONMENT"): {/* contains filtered or unexported fields */}, ConfigConst("LDAP_CONFIGS"): {/* contains filtered or unexported fields */}, ConfigConst("GIT_REPO_URL"): {/* contains filtered or unexported fields */}, ConfigConst("GIT_BRANCH"): {/* contains filtered or unexported fields */}, ConfigConst("GIT_TOKEN"): {/* contains filtered or unexported fields */}, ConfigConst("GIT_PATH"): {/* contains filtered or unexported fields */}, ConfigConst("ROR_OPERATOR_NAMESPACE"): {/* contains filtered or unexported fields */}, ConfigConst("LDAP_CERTIFICATE_FOLDER"): {/* contains filtered or unexported fields */}, ConfigConst("OIDC_PROVIDER"): {/* contains filtered or unexported fields */}, ConfigConst("OIDC_CLIENT_ID"): {/* contains filtered or unexported fields */}, ConfigConst("OIDC_DEVICE_CLIENT_ID"): {/* contains filtered or unexported fields */}, ConfigConst("OIDC_SKIP_ISSUER_VERIFY"): {/* contains filtered or unexported fields */}, ConfigConst("VAULT_URL"): {/* contains filtered or unexported fields */}, ConfigConst("MONGODB_HOST"): {/* contains filtered or unexported fields */}, ConfigConst("MONGODB_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("MONGODB_DATABASE"): {/* contains filtered or unexported fields */}, ConfigConst("MONGODB_URL"): {/* contains filtered or unexported fields */}, ConfigConst("MONGO_DATABASE"): {/* contains filtered or unexported fields */}, ConfigConst("RABBITMQ_HOST"): {/* contains filtered or unexported fields */}, ConfigConst("RABBITMQ_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("RABBITMQ_BROADCAST_NAME"): {/* contains filtered or unexported fields */}, ConfigConst("RABBITMQ_CONNECTIONSTRING"): {/* contains filtered or unexported fields */}, ConfigConst("REDIS_HOST"): {/* contains filtered or unexported fields */}, ConfigConst("REDIS_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("TRACER_ID"): {/* contains filtered or unexported fields */}, ConfigConst("ENABLE_TRACING"): {/* contains filtered or unexported fields */}, ConfigConst("OPENTELEMETRY_COLLECTOR_ENDPOINT"): {/* contains filtered or unexported fields */}, ConfigConst("PROFILER_ENABLED"): {/* contains filtered or unexported fields */}, ConfigConst("STARTUP_SLEEP_TIME"): {/* contains filtered or unexported fields */}, ConfigConst("GIN_USE_CORS"): {/* contains filtered or unexported fields */}, ConfigConst("GIN_ALLOW_ORIGINS"): {/* contains filtered or unexported fields */}, ConfigConst("VERSION"): {/* contains filtered or unexported fields */}, ConfigConst("COMMIT"): {/* contains filtered or unexported fields */}, ConfigConst("DEX_HOST"): {/* contains filtered or unexported fields */}, ConfigConst("DEX_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("DEX_GRPC_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("DEX_CERT_FILEPATH"): {/* contains filtered or unexported fields */}, ConfigConst("DEX_VAULT_PATH"): {/* contains filtered or unexported fields */}, ConfigConst("DEX_TLS"): {/* contains filtered or unexported fields */}, ConfigConst("SLACK_BOT_TOKEN"): {/* contains filtered or unexported fields */}, ConfigConst("SLACK_APP_TOKEN"): {/* contains filtered or unexported fields */}, ConfigConst("CONTAINER_REG_PREFIX"): {/* contains filtered or unexported fields */}, ConfigConst("CONTAINER_REG_IMAGE_PATH"): {/* contains filtered or unexported fields */}, ConfigConst("CONTAINER_REG_HELM_PATH"): {/* contains filtered or unexported fields */}, ConfigConst("OPERATOR_BACKOFF_LIMIT"): {/* contains filtered or unexported fields */}, ConfigConst("OPERATOR_DEADLINE_SECONDS"): {/* contains filtered or unexported fields */}, ConfigConst("OPERATOR_JOB_SERVICE_ACCOUNT"): {/* contains filtered or unexported fields */}, ConfigConst("OPERATOR_APPLOG_SECRET_NAME"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_KUBECONFIG"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_DELETE_KUBECONFIG"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_KUBE_VSPHERE_PATH"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_KUBECTL_PATH"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_DATACENTER_URL"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_USERNAME"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_PASSWORD"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_TOKEN_EXPIRY"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_LOGIN_EVERY_MINUTE"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_HEALTH_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_TANZU_ACCESS"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_DATACENTER"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_PROVIDER"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AGENT_REGION"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AUTH_HEALTH_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AUTH_KUBE_VSPHERE_PATH"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AUTH_KUBECTL_PATH"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AUTH_BASE_URL"): {/* contains filtered or unexported fields */}, ConfigConst("TANZU_AUTH_CONFIG_FOLDER_PATH"): {/* contains filtered or unexported fields */}, ConfigConst("MS_HTTP_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("MS_HTTP_BIND_PORT"): {/* contains filtered or unexported fields */}, ConfigConst("LOCAL_KUBERNETES_ROR_BASE_URL"): {/* contains filtered or unexported fields */}, ConfigConst("ENABLE_PPROF"): {/* contains filtered or unexported fields */}, }
...existing code...
Functions ¶
func AutomaticEnv ¶
func AutomaticEnv()
AutomaticEnv loads configuration values from environment variables for all registered keys. This is called internally by InitConfig and typically doesn't need to be called directly.
func GetBool ¶
func GetBool(key ConfigConst) bool
GetBool retrieves a configuration value as a boolean. Returns true if the value is "true" (case-insensitive), false otherwise.
func GetConfigs ¶
func GetConfigs() configsMap
GetConfigs returns a copy of all currently loaded configuration values. This is primarily used for debugging and testing purposes.
func GetFloat32 ¶
func GetFloat32(key ConfigConst) float32
GetFloat32 retrieves a configuration value as a 32-bit floating point number. Returns the float32 value, or 0.0 if the value cannot be parsed as a float32.
func GetFloat64 ¶
func GetFloat64(key ConfigConst) float64
GetFloat64 retrieves a configuration value as a 64-bit floating point number. Returns the float64 value, or 0.0 if the value cannot be parsed as a float64.
func GetInt ¶
func GetInt(key ConfigConst) int
GetInt retrieves a configuration value as an integer. Returns the integer value, or 0 if the value cannot be parsed as an integer.
func GetInt64 ¶
func GetInt64(key ConfigConst) int64
GetInt64 retrieves a configuration value as a 64-bit integer. Returns the int64 value, or 0 if the value cannot be parsed as an int64.
func GetString ¶
func GetString(key ConfigConst) string
GetString retrieves a configuration value as a string. Returns the string value of the configuration key, or empty string if not set.
func GetUint ¶
func GetUint(key ConfigConst) uint
GetUint retrieves a configuration value as an unsigned integer. Returns the uint value, or 0 if the value cannot be parsed as a uint.
func GetUint32 ¶
func GetUint32(key ConfigConst) uint32
GetUint32 retrieves a configuration value as a 32-bit unsigned integer. Returns the uint32 value, or 0 if the value cannot be parsed as a uint32.
func GetUint64 ¶
func GetUint64(key ConfigConst) uint64
GetUint64 retrieves a configuration value as a 64-bit unsigned integer. Returns the uint64 value, or 0 if the value cannot be parsed as a uint64.
func InitConfig ¶
func InitConfig()
InitConfig initializes the configuration system by automatically loading all recognized environment variables. This should be called once at application startup.
func IsSet ¶
func IsSet(key ConfigConst) bool
IsSet checks if a configuration key has been set (either from environment variable, default value, or explicitly set value). Returns true if the key exists and has a value, false otherwise.
func Set ¶
func Set(key ConfigConst, value any)
Set explicitly sets a configuration value for the given key. This will override any environment variable or default value.
func SetDefault ¶
func SetDefault(key ConfigConst, defaultValue any)
SetDefault sets a default value for a configuration key. The default value will only be used if no environment variable or explicit value is set.
func SetWithProvider ¶
func SetWithProvider(key ConfigConst, provider SecretProvider)
SetWithProvider sets a configuration value using a custom SecretProvider. The provider's GetSecret() method will be called to retrieve the actual value. This is useful for integrating with external secret management systems.
Types ¶
type ConfigConst ¶
type ConfigConst string
const ( ROLE ConfigConst = "ROLE" HTTP_HOST ConfigConst = "HTTP_HOST" HTTP_PORT ConfigConst = "HTTP_PORT" HTTP_HEALTH_HOST ConfigConst = "HTTP_HEALTH_HOST" HTTP_HEALTH_PORT ConfigConst = "HTTP_HEALTH_PORT" HTTP_TIMEOUT ConfigConst = "HTTP_TIMEOUT" // Deprecated: use HTTP_HEALTH_HOST / HTTP_HEALTH_PORT instead HEALTH_ENDPOINT ConfigConst = "HEALTH_ENDPOINT" API_KEY_SALT ConfigConst = "API_KEY_SALT" API_KEY ConfigConst = "API_KEY" API_KEY_SECRET ConfigConst = "API_KEY_SECRET" API_ENDPOINT ConfigConst = "ROR_URL" DEVELOPMENT ConfigConst = "DEVELOPMENT" PORT ConfigConst = "PORT" POD_NAMESPACE ConfigConst = "POD_NAMESPACE" CLUSTER_ID ConfigConst = "CLUSTER_ID" ERROR_COUNT ConfigConst = "ERROR_COUNT" HELSEGITLAB_BASE_URL ConfigConst = "HELSEGITLAB_BASE_URL" ENVIRONMENT ConfigConst = "ENVIRONMENT" LDAP_CONFIGS ConfigConst = "LDAP_CONFIGS" GIT_REPO_URL ConfigConst = "GIT_REPO_URL" GIT_BRANCH ConfigConst = "GIT_BRANCH" GIT_TOKEN ConfigConst = "GIT_TOKEN" GIT_PATH ConfigConst = "GIT_PATH" ROR_OPERATOR_NAMESPACE ConfigConst = "ROR_OPERATOR_NAMESPACE" LDAP_CERTIFICATE_FOLDER ConfigConst = "LDAP_CERTIFICATE_FOLDER" OIDC_PROVIDER ConfigConst = "OIDC_PROVIDER" OIDC_CLIENT_ID ConfigConst = "OIDC_CLIENT_ID" OIDC_DEVICE_CLIENT_ID ConfigConst = "OIDC_DEVICE_CLIENT_ID" OIDC_SKIP_ISSUER_VERIFY ConfigConst = "SKIP_OIDC_ISSUER_VERIFY" VAULT_URL ConfigConst = "VAULT_URL" MONGODB_HOST ConfigConst = "MONGODB_HOST" MONGODB_PORT ConfigConst = "MONGODB_PORT" MONGODB_DATABASE ConfigConst = "MONGODB_DATABASE" MONGODB_URL ConfigConst = "MONGODB_URL" MONGO_DATABASE ConfigConst = "MONGO_DATABASE" RABBITMQ_HOST ConfigConst = "RABBITMQ_HOST" RABBITMQ_PORT ConfigConst = "RABBITMQ_PORT" RABBITMQ_BROADCAST_NAME ConfigConst = "RABBITMQ_BROADCAST_NAME" RABBITMQ_CONNECTIONSTRING ConfigConst = "RABBITMQ_CONNECTIONSTRING" REDIS_HOST ConfigConst = "REDIS_HOST" REDIS_PORT ConfigConst = "REDIS_PORT" TRACER_ID ConfigConst = "TRACER_ID" ENABLE_TRACING ConfigConst = "ENABLE_TRACING" OPENTELEMETRY_COLLECTOR_ENDPOINT ConfigConst = "OPENTELEMETRY_COLLECTOR_ENDPOINT" PROFILER_ENABLED ConfigConst = "PROFILER_ENABLED" STARTUP_SLEEP_TIME ConfigConst = "STARTUP_SLEEP_TIME" GIN_USE_CORS ConfigConst = "USE_CORS" GIN_ALLOW_ORIGINS ConfigConst = "ALLOW_ORIGINS" VERSION ConfigConst = "VERSION" COMMIT ConfigConst = "COMMIT" DEX_HOST ConfigConst = "DEX_HOST" DEX_PORT ConfigConst = "DEX_PORT" DEX_GRPC_PORT ConfigConst = "DEX_GRPC_PORT" DEX_CERT_FILEPATH ConfigConst = "DEX_CERT_FILEPATH" DEX_VAULT_PATH ConfigConst = "DEX_VAULT_PATH" DEX_TLS ConfigConst = "DEX_TLS" SLACK_BOT_TOKEN ConfigConst = "SLACK_BOT_TOKEN" // #nosec G101 Jest the name of the variable holding the value SLACK_APP_TOKEN ConfigConst = "SLACK_APP_TOKEN" // #nosec G101 Jest the name of the variable holding the value CONTAINER_REG_PREFIX ConfigConst = "CONTAINER_REG_PREFIX" CONTAINER_REG_IMAGE_PATH ConfigConst = "CONTAINER_REG_IMAGE_PATH" CONTAINER_REG_HELM_PATH ConfigConst = "CONTAINER_REG_HELM_PATH" // Operator OPERATOR_BACKOFF_LIMIT ConfigConst = "BACKOFF_LIMIT" OPERATOR_DEADLINE_SECONDS ConfigConst = "DEADLINE_SECONDS" OPERATOR_JOB_SERVICE_ACCOUNT ConfigConst = "JOB_SERVICE_ACCOUNT" OPERATOR_APPLOG_SECRET_NAME ConfigConst = "APPLOG_SECRET_NAME" // #nosec G101 Jest the name of the variable holding the value // Tanzu agent TANZU_AGENT_KUBECONFIG ConfigConst = "KUBECONFIG" TANZU_AGENT_DELETE_KUBECONFIG ConfigConst = "DELETE_KUBECONFIG" TANZU_AGENT_KUBE_VSPHERE_PATH ConfigConst = "KUBE_VSPHERE_PATH" TANZU_AGENT_KUBECTL_PATH ConfigConst = "KUBECTL_PATH" TANZU_AGENT_DATACENTER_URL ConfigConst = "DATACENTER_URL" TANZU_AGENT_USERNAME ConfigConst = "TANZU_USERNAME" TANZU_AGENT_PASSWORD ConfigConst = "TANZU_PWD" // #nosec G101 Jest the name of the variable holding the value TANZU_AGENT_TOKEN_EXPIRY ConfigConst = "TOKEN_EXPIRY" // #nosec G101 Jest the name of the variable holding the value TANZU_AGENT_LOGIN_EVERY_MINUTE ConfigConst = "LOGIN_EVERY_MINUTE" TANZU_AGENT_HEALTH_PORT ConfigConst = "HTTP_PORT" TANZU_AGENT_TANZU_ACCESS ConfigConst = "TANZU_ACCESS" TANZU_AGENT_DATACENTER ConfigConst = "DATACENTER" TANZU_AGENT_PROVIDER ConfigConst = "PROVIDER" TANZU_AGENT_REGION ConfigConst = "REGION" // Tanzu Auth TANZU_AUTH_HEALTH_PORT ConfigConst = "HTTP_PORT" TANZU_AUTH_KUBE_VSPHERE_PATH ConfigConst = "KUBE_VSPHERE_PATH" TANZU_AUTH_KUBECTL_PATH ConfigConst = "KUBECTL_PATH" TANZU_AUTH_BASE_URL ConfigConst = "TANZU_AUTH_BASE_URL" TANZU_AUTH_CONFIG_FOLDER_PATH ConfigConst = "TANZU_AUTH_CONFIG_FOLDER_PATH" // ms MS_HTTP_PORT ConfigConst = "HTTP_PORT" MS_HTTP_BIND_PORT ConfigConst = "HTTP_BIND_PORT" LOCAL_KUBERNETES_ROR_BASE_URL ConfigConst = "LOCAL_KUBERNETES_ROR_BASE_URL" ENABLE_PPROF ConfigConst = "ENABLE_PPROF" )
type ConfigConstData ¶
type ConfigConstData struct {
// contains filtered or unexported fields
}
type ConfigData ¶
type ConfigData string
func (ConfigData) Bool ¶
func (cd ConfigData) Bool() bool
func (ConfigData) Float32 ¶
func (cd ConfigData) Float32() float32
func (ConfigData) Float64 ¶
func (cd ConfigData) Float64() float64
func (ConfigData) Int ¶
func (cd ConfigData) Int() int
func (ConfigData) Int64 ¶
func (cd ConfigData) Int64() int64
func (ConfigData) String ¶
func (cd ConfigData) String() string
func (ConfigData) Uint ¶
func (cd ConfigData) Uint() uint
func (ConfigData) Uint32 ¶
func (cd ConfigData) Uint32() uint32
func (ConfigData) Uint64 ¶
func (cd ConfigData) Uint64() uint64
type ConfigconstsMap ¶ added in v1.5.2
type ConfigconstsMap map[ConfigConst]ConfigConstData
func (*ConfigconstsMap) Add ¶ added in v1.5.2
func (cc *ConfigconstsMap) Add(key ConfigConst, data ConfigConstData)
func (*ConfigconstsMap) GetDescription ¶ added in v1.5.2
func (cc *ConfigconstsMap) GetDescription(key ConfigConst) string
func (*ConfigconstsMap) GetEnvVariable ¶ added in v1.5.2
func (cc *ConfigconstsMap) GetEnvVariable(key ConfigConst) string
func (*ConfigconstsMap) IsDeprecated ¶ added in v1.5.2
func (cc *ConfigconstsMap) IsDeprecated(key ConfigConst) bool
func (*ConfigconstsMap) IsSet ¶ added in v1.5.2
func (cc *ConfigconstsMap) IsSet(key ConfigConst) bool
type SecretProvider ¶
type SecretProvider interface {
// GetSecret retrieves a secret value from the provider
GetSecret() string
}
SecretProvider is an interface for custom secret retrieval mechanisms. Implementations can provide secrets from various sources like Vault, Kubernetes secrets, etc.