Skip to content

Commit d76295a

Browse files
committed
Moved PVC+Services to resources package
1 parent 2dc7cee commit d76295a

File tree

4 files changed

+40
-25
lines changed

4 files changed

+40
-25
lines changed

pkg/deployment/deployment.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ func (d *Deployment) run() {
176176
}
177177

178178
// Create services
179-
if err := d.createServices(d.apiObject); err != nil {
179+
if err := d.resources.EnsureServices(); err != nil {
180180
d.failOnError(err, "Failed to create services")
181181
return
182182
}
@@ -188,7 +188,7 @@ func (d *Deployment) run() {
188188
}
189189

190190
// Create PVCs
191-
if err := d.ensurePVCs(d.apiObject); err != nil {
191+
if err := d.resources.EnsurePVCs(); err != nil {
192192
d.failOnError(err, "Failed to create persistent volume claims")
193193
return
194194
}

pkg/deployment/deployment_inspector.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,11 @@ func (d *Deployment) inspectDeployment(lastInterval time.Duration) time.Duration
7474
}
7575

7676
// Ensure all resources are created
77-
if err := d.ensurePVCs(d.apiObject); err != nil {
77+
if err := d.resources.EnsureServices(); err != nil {
78+
hasError = true
79+
d.CreateEvent(k8sutil.NewErrorEvent("Service creation failed", err, d.apiObject))
80+
}
81+
if err := d.resources.EnsurePVCs(); err != nil {
7882
hasError = true
7983
d.CreateEvent(k8sutil.NewErrorEvent("PVC creation failed", err, d.apiObject))
8084
}

pkg/deployment/pvcs.go renamed to pkg/deployment/resources/pvcs.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,25 @@
2020
// Author Ewout Prangsma
2121
//
2222

23-
package deployment
23+
package resources
2424

2525
import (
2626
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1alpha"
2727

2828
"github.com/arangodb/kube-arangodb/pkg/util/k8sutil"
2929
)
3030

31-
// ensurePVCs creates all PVC's listed in member status
32-
func (d *Deployment) ensurePVCs(apiObject *api.ArangoDeployment) error {
33-
kubecli := d.deps.KubeCli
31+
// EnsurePVCs creates all PVC's listed in member status
32+
func (r *Resources) EnsurePVCs() error {
33+
kubecli := r.context.GetKubeCli()
34+
apiObject := r.context.GetAPIObject()
3435
deploymentName := apiObject.GetName()
3536
ns := apiObject.GetNamespace()
3637
owner := apiObject.AsOwner()
38+
iterator := r.context.GetServerGroupIterator()
39+
status := r.context.GetStatus()
3740

38-
if err := apiObject.ForeachServerGroup(func(group api.ServerGroup, spec api.ServerGroupSpec, status *api.MemberStatusList) error {
41+
if err := iterator.ForeachServerGroup(func(group api.ServerGroup, spec api.ServerGroupSpec, status *api.MemberStatusList) error {
3942
for _, m := range *status {
4043
if m.PersistentVolumeClaimName != "" {
4144
storageClassName := spec.GetStorageClassName()
@@ -47,7 +50,7 @@ func (d *Deployment) ensurePVCs(apiObject *api.ArangoDeployment) error {
4750
}
4851
}
4952
return nil
50-
}, &d.status); err != nil {
53+
}, &status); err != nil {
5154
return maskAny(err)
5255
}
5356
return nil

pkg/deployment/services.go renamed to pkg/deployment/resources/services.go

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,42 +20,50 @@
2020
// Author Ewout Prangsma
2121
//
2222

23-
package deployment
23+
package resources
2424

2525
import (
26-
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1alpha"
2726
"github.com/arangodb/kube-arangodb/pkg/util/k8sutil"
2827
)
2928

30-
// createServices creates all services needed to service the given deployment
31-
func (d *Deployment) createServices(apiObject *api.ArangoDeployment) error {
32-
log := d.deps.Log
33-
kubecli := d.deps.KubeCli
29+
// EnsureServices creates all services needed to service the deployment
30+
func (r *Resources) EnsureServices() error {
31+
log := r.log
32+
kubecli := r.context.GetKubeCli()
33+
apiObject := r.context.GetAPIObject()
3434
owner := apiObject.AsOwner()
35+
spec := r.context.GetSpec()
3536

3637
log.Debug().Msg("creating services...")
3738

3839
if _, err := k8sutil.CreateHeadlessService(kubecli, apiObject, owner); err != nil {
3940
log.Debug().Err(err).Msg("Failed to create headless service")
4041
return maskAny(err)
4142
}
42-
single := apiObject.Spec.GetMode().HasSingleServers()
43-
if svcName, err := k8sutil.CreateDatabaseClientService(kubecli, apiObject, single, owner); err != nil {
43+
single := spec.GetMode().HasSingleServers()
44+
svcName, err := k8sutil.CreateDatabaseClientService(kubecli, apiObject, single, owner)
45+
if err != nil {
4446
log.Debug().Err(err).Msg("Failed to create database client service")
4547
return maskAny(err)
46-
} else {
47-
d.status.ServiceName = svcName
48-
if err := d.updateCRStatus(); err != nil {
48+
}
49+
status := r.context.GetStatus()
50+
if status.ServiceName != svcName {
51+
status.ServiceName = svcName
52+
if err := r.context.UpdateStatus(status); err != nil {
4953
return maskAny(err)
5054
}
5155
}
52-
if apiObject.Spec.Sync.IsEnabled() {
53-
if svcName, err := k8sutil.CreateSyncMasterClientService(kubecli, apiObject, owner); err != nil {
56+
57+
if spec.Sync.IsEnabled() {
58+
svcName, err := k8sutil.CreateSyncMasterClientService(kubecli, apiObject, owner)
59+
if err != nil {
5460
log.Debug().Err(err).Msg("Failed to create syncmaster client service")
5561
return maskAny(err)
56-
} else {
57-
d.status.ServiceName = svcName
58-
if err := d.updateCRStatus(); err != nil {
62+
}
63+
status := r.context.GetStatus()
64+
if status.SyncServiceName != svcName {
65+
status.SyncServiceName = svcName
66+
if err := r.context.UpdateStatus(status); err != nil {
5967
return maskAny(err)
6068
}
6169
}

0 commit comments

Comments
 (0)