@@ -36,6 +36,7 @@ import (
3636
3737 api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1alpha"
3838 "github.com/arangodb/kube-arangodb/pkg/deployment/reconcile"
39+ "github.com/arangodb/kube-arangodb/pkg/deployment/resources"
3940 "github.com/arangodb/kube-arangodb/pkg/generated/clientset/versioned"
4041 "github.com/arangodb/kube-arangodb/pkg/util/k8sutil"
4142 "github.com/arangodb/kube-arangodb/pkg/util/retry"
@@ -94,6 +95,7 @@ type Deployment struct {
9495 recentInspectionErrors int
9596 clusterScalingIntegration * clusterScalingIntegration
9697 reconciler * reconcile.Reconciler
98+ resources * resources.Resources
9799}
98100
99101// New creates a new Deployment from the given API object.
@@ -112,6 +114,7 @@ func New(config Config, deps Dependencies, apiObject *api.ArangoDeployment) (*De
112114 clientCache : newClientCache (deps .KubeCli , apiObject ),
113115 }
114116 d .reconciler = reconcile .NewReconciler (deps .Log , d )
117+ d .resources = resources .NewResources (deps .Log , d )
115118 if d .status .AcceptedSpec == nil {
116119 // We've validated the spec, so let's use it from now.
117120 d .status .AcceptedSpec = apiObject .Spec .DeepCopy ()
@@ -167,13 +170,13 @@ func (d *Deployment) run() {
167170
168171 if d .status .State == api .DeploymentStateNone {
169172 // Create secrets
170- if err := d .createSecrets ( d . apiObject ); err != nil {
173+ if err := d .resources . EnsureSecrets ( ); err != nil {
171174 d .failOnError (err , "Failed to create secrets" )
172175 return
173176 }
174177
175178 // Create services
176- if err := d .createServices ( d . apiObject ); err != nil {
179+ if err := d .resources . EnsureServices ( ); err != nil {
177180 d .failOnError (err , "Failed to create services" )
178181 return
179182 }
@@ -185,13 +188,13 @@ func (d *Deployment) run() {
185188 }
186189
187190 // Create PVCs
188- if err := d .ensurePVCs ( d . apiObject ); err != nil {
191+ if err := d .resources . EnsurePVCs ( ); err != nil {
189192 d .failOnError (err , "Failed to create persistent volume claims" )
190193 return
191194 }
192195
193196 // Create pods
194- if err := d .ensurePods ( d . apiObject ); err != nil {
197+ if err := d .resources . EnsurePods ( ); err != nil {
195198 d .failOnError (err , "Failed to create pods" )
196199 return
197200 }
@@ -266,18 +269,18 @@ func (d *Deployment) handleArangoDeploymentUpdatedEvent(event *deploymentEvent)
266269 log .Debug ().Strs ("fields" , resetFields ).Msg ("Found modified immutable fields" )
267270 }
268271 if err := newAPIObject .Spec .Validate (); err != nil {
269- d .createEvent (k8sutil .NewErrorEvent ("Validation failed" , err , d .apiObject ))
272+ d .CreateEvent (k8sutil .NewErrorEvent ("Validation failed" , err , d .apiObject ))
270273 // Try to reset object
271274 if err := d .updateCRSpec (d .apiObject .Spec ); err != nil {
272275 log .Error ().Err (err ).Msg ("Restore original spec failed" )
273- d .createEvent (k8sutil .NewErrorEvent ("Restore original failed" , err , d .apiObject ))
276+ d .CreateEvent (k8sutil .NewErrorEvent ("Restore original failed" , err , d .apiObject ))
274277 }
275278 return nil
276279 }
277280 if len (resetFields ) > 0 {
278281 for _ , fieldName := range resetFields {
279282 log .Debug ().Str ("field" , fieldName ).Msg ("Reset immutable field" )
280- d .createEvent (k8sutil .NewImmutableFieldEvent (fieldName , d .apiObject ))
283+ d .CreateEvent (k8sutil .NewImmutableFieldEvent (fieldName , d .apiObject ))
281284 }
282285 }
283286
@@ -302,9 +305,9 @@ func (d *Deployment) handleArangoDeploymentUpdatedEvent(event *deploymentEvent)
302305 return nil
303306}
304307
305- // createEvent creates a given event.
308+ // CreateEvent creates a given event.
306309// On error, the error is logged.
307- func (d * Deployment ) createEvent (evt * v1.Event ) {
310+ func (d * Deployment ) CreateEvent (evt * v1.Event ) {
308311 _ , err := d .eventsCli .Create (evt )
309312 if err != nil {
310313 d .deps .Log .Error ().Err (err ).Interface ("event" , * evt ).Msg ("Failed to record event" )
0 commit comments