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
|
MYSQL_DSN=auth:auth@tcp(127.0.0.1:3000)/authserver?charset=utf8mb4&parseTime=True&loc=Local
|
||||||
AUTO_MIGRATE=true
|
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_SECRET=change-this-secret
|
||||||
JWT_ISSUER=authserver
|
JWT_ISSUER=authserver
|
||||||
JWT_TTL_MINUTES=120
|
JWT_TTL_MINUTES=120
|
||||||
|
|||||||
@@ -57,9 +57,20 @@ type Config struct {
|
|||||||
CloudDMClientSecret string
|
CloudDMClientSecret string
|
||||||
CloudDMRedirectURI string
|
CloudDMRedirectURI string
|
||||||
CloudDMTargetURL string
|
CloudDMTargetURL string
|
||||||
|
CloudDMRegisterURL string
|
||||||
|
CloudDMAPIToken string
|
||||||
AnsibleServiceBaseURL string
|
AnsibleServiceBaseURL string
|
||||||
AnsibleInternalToken string
|
AnsibleInternalToken string
|
||||||
DeploymentCallbackBaseURL string
|
DeploymentCallbackBaseURL string
|
||||||
|
AWXBaseURL string
|
||||||
|
AWXToken string
|
||||||
|
DeliveryServiceToken string
|
||||||
|
DeliverySchedulerEnabled bool
|
||||||
|
DeliveryPollSeconds int
|
||||||
|
ReservationTTLMinutes int
|
||||||
|
DeliveryGlobalLimit int
|
||||||
|
DeliveryTargetLimit int
|
||||||
|
DeliveryBusinessLimit int
|
||||||
}
|
}
|
||||||
|
|
||||||
func Load() Config {
|
func Load() Config {
|
||||||
@@ -115,9 +126,20 @@ func Load() Config {
|
|||||||
CloudDMClientSecret: env("OIDC_CLOUDDM_CLIENT_SECRET", ""),
|
CloudDMClientSecret: env("OIDC_CLOUDDM_CLIENT_SECRET", ""),
|
||||||
CloudDMRedirectURI: env("OIDC_CLOUDDM_REDIRECT_URI", ""),
|
CloudDMRedirectURI: env("OIDC_CLOUDDM_REDIRECT_URI", ""),
|
||||||
CloudDMTargetURL: env("CLOUDDM_TARGET_URL", ""),
|
CloudDMTargetURL: env("CLOUDDM_TARGET_URL", ""),
|
||||||
|
CloudDMRegisterURL: trimURL(env("CLOUDDM_REGISTER_URL", "")),
|
||||||
|
CloudDMAPIToken: env("CLOUDDM_API_TOKEN", ""),
|
||||||
AnsibleServiceBaseURL: trimURL(env("ANSIBLE_SERVICE_BASE_URL", "")),
|
AnsibleServiceBaseURL: trimURL(env("ANSIBLE_SERVICE_BASE_URL", "")),
|
||||||
AnsibleInternalToken: env("ANSIBLE_INTERNAL_TOKEN", ""),
|
AnsibleInternalToken: env("ANSIBLE_INTERNAL_TOKEN", ""),
|
||||||
DeploymentCallbackBaseURL: trimURL(env("DEPLOYMENT_CALLBACK_BASE_URL", publicBaseURL)),
|
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