@@ -18,6 +18,7 @@ package v1beta1
1818
1919import (
2020 condition "github.com/openstack-k8s-operators/lib-common/modules/common/condition"
21+ "github.com/openstack-k8s-operators/lib-common/modules/common/util"
2122 "github.com/openstack-k8s-operators/lib-common/modules/storage"
2223 corev1 "k8s.io/api/core/v1"
2324 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -29,6 +30,9 @@ const (
2930
3031 // DeploymentHash hash used to detect changes
3132 DeploymentHash = "deployment"
33+
34+ // Designate API timeout
35+ APITimeout = 120
3236)
3337
3438// DesignateAPISpecCore - this version has no containerImage for use with the OpenStackControlplane
@@ -186,6 +190,11 @@ type DesignateSpecBase struct {
186190 // +kubebuilder:default="designate-redis"
187191 // RedisServiceName is the name of the Redis instance to be used (must be in the same namespace as designate)
188192 RedisServiceName string `json:"redisServiceName"`
193+
194+ // +kubebuilder:validation:Optional
195+ // +kubebuilder:default=120
196+ // Designate API timeout
197+ APITimeout int `json:"apiTimeout"`
189198}
190199
191200// DesignateStatus defines the observed state of Designate
@@ -277,6 +286,24 @@ func (instance Designate) IsReady() bool {
277286 unboundReady
278287}
279288
289+ // SetupDefaults - initializes any CRD field defaults based on environment variables (the defaulting mechanism itself is implemented via webhooks)
290+ func SetupDefaults () {
291+ // Acquire environmental defaults and initialize Designate defaults with them
292+ designateDefaults := DesignateDefaults {
293+ APIContainerImageURL : util .GetEnvVar ("RELATED_IMAGE_DESIGNATE_API_IMAGE_URL_DEFAULT" , DesignateAPIContainerImage ),
294+ CentralContainerImageURL : util .GetEnvVar ("RELATED_IMAGE_DESIGNATE_CENTRAL_IMAGE_URL_DEFAULT" , DesignateCentralContainerImage ),
295+ MdnsContainerImageURL : util .GetEnvVar ("RELATED_IMAGE_DESIGNATE_MDNS_IMAGE_URL_DEFAULT" , DesignateMdnsContainerImage ),
296+ ProducerContainerImageURL : util .GetEnvVar ("RELATED_IMAGE_DESIGNATE_PRODUCER_IMAGE_URL_DEFAULT" , DesignateProducerContainerImage ),
297+ WorkerContainerImageURL : util .GetEnvVar ("RELATED_IMAGE_DESIGNATE_WORKER_IMAGE_URL_DEFAULT" , DesignateWorkerContainerImage ),
298+ UnboundContainerImageURL : util .GetEnvVar ("RELATED_IMAGE_DESIGNATE_UNBOUND_IMAGE_URL_DEFAULT" , DesignateUnboundContainerImage ),
299+ Backendbind9ContainerImageURL : util .GetEnvVar ("RELATED_IMAGE_DESIGNATE_BACKENDBIND9_IMAGE_URL_DEFAULT" , DesignateBackendbind9ContainerImage ),
300+ DesignateAPIRouteTimeout : APITimeout ,
301+ }
302+
303+ SetupDesignateDefaults (designateDefaults )
304+ }
305+
306+
280307// DesignateExtraVolMounts exposes additional parameters processed by the designate-operator
281308// and defines the common VolMounts structure provided by the main storage module
282309type DesignateExtraVolMounts struct {
0 commit comments