feat(delivery): add delivery configuration and environment variables
Add 10 config fields: AWX connection (AWX_BASE_URL, AWX_TOKEN), scheduler controls (DELIVERY_SCHEDULER_ENABLED, DELIVERY_POLL_SECONDS, DELIVERY_RESERVATION_TTL_MINUTES), concurrency limits (GLOBAL/TARGET/ BUSINESS), service token, and CloudDM registration (CLOUDDM_REGISTER_URL, CLOUDDM_API_TOKEN). Update .env.example with new variables. Relates-to: #97
This commit is contained in:
@@ -18,6 +18,19 @@ DEPLOYMENT_CALLBACK_BASE_URL=http://authserver-backend:8080
|
||||
MYSQL_DSN=auth:auth@tcp(127.0.0.1:3000)/authserver?charset=utf8mb4&parseTime=True&loc=Local
|
||||
AUTO_MIGRATE=true
|
||||
|
||||
# MySQL service delivery (AWX is required when the scheduler is enabled)
|
||||
DELIVERY_SCHEDULER_ENABLED=false
|
||||
DELIVERY_POLL_SECONDS=5
|
||||
DELIVERY_RESERVATION_TTL_MINUTES=120
|
||||
DELIVERY_GLOBAL_LIMIT=2
|
||||
DELIVERY_TARGET_LIMIT=2
|
||||
DELIVERY_BUSINESS_LIMIT=1
|
||||
AWX_BASE_URL=
|
||||
AWX_TOKEN=
|
||||
DELIVERY_SERVICE_TOKEN=
|
||||
CLOUDDM_REGISTER_URL=
|
||||
CLOUDDM_API_TOKEN=
|
||||
|
||||
JWT_SECRET=change-this-secret
|
||||
JWT_ISSUER=authserver
|
||||
JWT_TTL_MINUTES=120
|
||||
|
||||
@@ -57,9 +57,20 @@ type Config struct {
|
||||
CloudDMClientSecret string
|
||||
CloudDMRedirectURI string
|
||||
CloudDMTargetURL string
|
||||
CloudDMRegisterURL string
|
||||
CloudDMAPIToken string
|
||||
AnsibleServiceBaseURL string
|
||||
AnsibleInternalToken string
|
||||
DeploymentCallbackBaseURL string
|
||||
AWXBaseURL string
|
||||
AWXToken string
|
||||
DeliveryServiceToken string
|
||||
DeliverySchedulerEnabled bool
|
||||
DeliveryPollSeconds int
|
||||
ReservationTTLMinutes int
|
||||
DeliveryGlobalLimit int
|
||||
DeliveryTargetLimit int
|
||||
DeliveryBusinessLimit int
|
||||
}
|
||||
|
||||
func Load() Config {
|
||||
@@ -115,9 +126,20 @@ func Load() Config {
|
||||
CloudDMClientSecret: env("OIDC_CLOUDDM_CLIENT_SECRET", ""),
|
||||
CloudDMRedirectURI: env("OIDC_CLOUDDM_REDIRECT_URI", ""),
|
||||
CloudDMTargetURL: env("CLOUDDM_TARGET_URL", ""),
|
||||
CloudDMRegisterURL: trimURL(env("CLOUDDM_REGISTER_URL", "")),
|
||||
CloudDMAPIToken: env("CLOUDDM_API_TOKEN", ""),
|
||||
AnsibleServiceBaseURL: trimURL(env("ANSIBLE_SERVICE_BASE_URL", "")),
|
||||
AnsibleInternalToken: env("ANSIBLE_INTERNAL_TOKEN", ""),
|
||||
DeploymentCallbackBaseURL: trimURL(env("DEPLOYMENT_CALLBACK_BASE_URL", publicBaseURL)),
|
||||
AWXBaseURL: trimURL(env("AWX_BASE_URL", "")),
|
||||
AWXToken: env("AWX_TOKEN", ""),
|
||||
DeliveryServiceToken: env("DELIVERY_SERVICE_TOKEN", ""),
|
||||
DeliverySchedulerEnabled: envBool("DELIVERY_SCHEDULER_ENABLED", false),
|
||||
DeliveryPollSeconds: envInt("DELIVERY_POLL_SECONDS", 5),
|
||||
ReservationTTLMinutes: envInt("DELIVERY_RESERVATION_TTL_MINUTES", 120),
|
||||
DeliveryGlobalLimit: envInt("DELIVERY_GLOBAL_LIMIT", 2),
|
||||
DeliveryTargetLimit: envInt("DELIVERY_TARGET_LIMIT", 2),
|
||||
DeliveryBusinessLimit: envInt("DELIVERY_BUSINESS_LIMIT", 1),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user