diff --git a/controllers/ironicconductor_controller.go b/controllers/ironicconductor_controller.go index 7bd8923d..e313d09c 100644 --- a/controllers/ironicconductor_controller.go +++ b/controllers/ironicconductor_controller.go @@ -52,7 +52,6 @@ import ( "github.com/openstack-k8s-operators/lib-common/modules/common/helper" "github.com/openstack-k8s-operators/lib-common/modules/common/labels" nad "github.com/openstack-k8s-operators/lib-common/modules/common/networkattachment" - "github.com/openstack-k8s-operators/lib-common/modules/common/pvc" common_rbac "github.com/openstack-k8s-operators/lib-common/modules/common/rbac" "github.com/openstack-k8s-operators/lib-common/modules/common/secret" "github.com/openstack-k8s-operators/lib-common/modules/common/statefulset" @@ -183,23 +182,6 @@ func (r *IronicConductorReconciler) Reconcile(ctx context.Context, req ctrl.Requ instance.Status.NetworkAttachments = map[string][]string{} } - // Define a new PVC object - // TODO: Once conditions added to PVC lib-common logic, handle - // the returned condition here - pvc := pvc.NewPvc( - ironicconductor.Pvc(instance), - 5, - ) - - ctrlResult, err := pvc.CreateOrPatch(ctx, helper) - - if err != nil { - return ctrlResult, err - } else if (ctrlResult != ctrl.Result{}) { - return ctrlResult, nil - } - // End PVC creation/patch - // Handle service delete if !instance.DeletionTimestamp.IsZero() { return r.reconcileDelete(ctx, instance, helper) diff --git a/pkg/ironicconductor/pvc.go b/pkg/ironicconductor/pvc.go deleted file mode 100644 index ee75f5a5..00000000 --- a/pkg/ironicconductor/pvc.go +++ /dev/null @@ -1,46 +0,0 @@ -package ironicconductor - -import ( - "fmt" - "strings" - - ironicv1 "github.com/openstack-k8s-operators/ironic-operator/api/v1beta1" - ironic "github.com/openstack-k8s-operators/ironic-operator/pkg/ironic" - "github.com/openstack-k8s-operators/lib-common/modules/common" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// Pvc - Returns the deployment object for the Database -func Pvc(instance *ironicv1.IronicConductor) *corev1.PersistentVolumeClaim { - labels := map[string]string{ - common.AppSelector: ironic.ServiceName, - common.ComponentSelector: ironic.ConductorComponent, - ironic.ConductorGroupSelector: ironicv1.ConductorGroupNull, - } - pvcName := fmt.Sprintf("%s-%s", ironic.ServiceName, ironic.ConductorComponent) - if instance.Spec.ConductorGroup != "" { - pvcName = strings.ToLower(fmt.Sprintf("%s-%s", pvcName, instance.Spec.ConductorGroup)) - labels[ironic.ConductorGroupSelector] = strings.ToLower(instance.Spec.ConductorGroup) - } - pv := &corev1.PersistentVolumeClaim{ - ObjectMeta: v1.ObjectMeta{ - Name: pvcName, - Namespace: instance.Namespace, - Labels: labels, - }, - Spec: corev1.PersistentVolumeClaimSpec{ - AccessModes: []corev1.PersistentVolumeAccessMode{ - corev1.ReadWriteMany, - }, - Resources: corev1.ResourceRequirements{ - Requests: corev1.ResourceList{ - corev1.ResourceStorage: resource.MustParse(instance.Spec.StorageRequest), - }, - }, - StorageClassName: &instance.Spec.StorageClass, - }, - } - return pv -} diff --git a/pkg/ironicconductor/statefulset.go b/pkg/ironicconductor/statefulset.go index 057108d2..0012d2b5 100644 --- a/pkg/ironicconductor/statefulset.go +++ b/pkg/ironicconductor/statefulset.go @@ -16,6 +16,7 @@ limitations under the License. package ironicconductor import ( + "fmt" "net" ironicv1 "github.com/openstack-k8s-operators/ironic-operator/api/v1beta1" @@ -26,6 +27,7 @@ import ( appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" + resource "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" intstr "k8s.io/apimachinery/pkg/util/intstr" k8snet "k8s.io/utils/net" @@ -164,8 +166,9 @@ func StatefulSet( initVolumeMounts = append(initVolumeMounts, instance.Spec.TLS.CreateVolumeMounts(nil)...) } + resourceName := fmt.Sprintf("%s-%s", ironic.ServiceName, ironic.ConductorComponent) conductorContainer := corev1.Container{ - Name: ironic.ServiceName + "-" + ironic.ConductorComponent, + Name: resourceName, Command: []string{ "/bin/bash", }, @@ -261,6 +264,25 @@ func StatefulSet( Volumes: volumes, }, }, + VolumeClaimTemplates: []corev1.PersistentVolumeClaim{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "var-lib-ironic", + Labels: labels, + }, + Spec: corev1.PersistentVolumeClaimSpec{ + AccessModes: []corev1.PersistentVolumeAccessMode{ + "ReadWriteOnce", + }, + Resources: corev1.ResourceRequirements{ + Requests: corev1.ResourceList{ + corev1.ResourceStorage: resource.MustParse(instance.Spec.StorageRequest), + }, + }, + StorageClassName: &instance.Spec.StorageClass, + }, + }, + }, }, } diff --git a/pkg/ironicconductor/volumes.go b/pkg/ironicconductor/volumes.go index a7fedd82..5ee6200f 100644 --- a/pkg/ironicconductor/volumes.go +++ b/pkg/ironicconductor/volumes.go @@ -2,7 +2,6 @@ package ironicconductor import ( "fmt" - "strings" ironicv1 "github.com/openstack-k8s-operators/ironic-operator/api/v1beta1" "github.com/openstack-k8s-operators/ironic-operator/pkg/ironic" @@ -12,10 +11,6 @@ import ( // GetVolumes - func GetVolumes(instance *ironicv1.IronicConductor) []corev1.Volume { var config0640AccessMode int32 = 0640 - pvcName := fmt.Sprintf("%s-%s", ironic.ServiceName, ironic.ConductorComponent) - if instance.Spec.ConductorGroup != "" { - pvcName = strings.ToLower(fmt.Sprintf("%s-%s", pvcName, instance.Spec.ConductorGroup)) - } conductorVolumes := []corev1.Volume{ { Name: "config-data-custom", @@ -26,14 +21,6 @@ func GetVolumes(instance *ironicv1.IronicConductor) []corev1.Volume { }, }, }, - { - Name: "var-lib-ironic", - VolumeSource: corev1.VolumeSource{ - PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{ - ClaimName: pvcName, - }, - }, - }, } return append(ironic.GetVolumes(instance.Name), conductorVolumes...) diff --git a/tests/functional/ironicconductor_controller_test.go b/tests/functional/ironicconductor_controller_test.go index 0853593b..f39e7c44 100644 --- a/tests/functional/ironicconductor_controller_test.go +++ b/tests/functional/ironicconductor_controller_test.go @@ -275,7 +275,7 @@ var _ = Describe("IronicConductor controller", func() { depl := th.GetStatefulSet(ironicNames.ConductorName) // Check the resulting deployment fields Expect(int(*depl.Spec.Replicas)).To(Equal(1)) - Expect(depl.Spec.Template.Spec.Volumes).To(HaveLen(7)) + Expect(depl.Spec.Template.Spec.Volumes).To(HaveLen(6)) Expect(depl.Spec.Template.Spec.Containers).To(HaveLen(2)) // cert deployment volumes @@ -308,7 +308,7 @@ var _ = Describe("IronicConductor controller", func() { depl := th.GetStatefulSet(ironicNames.ConductorName) // Check the resulting deployment fields Expect(int(*depl.Spec.Replicas)).To(Equal(1)) - Expect(depl.Spec.Template.Spec.Volumes).To(HaveLen(7)) + Expect(depl.Spec.Template.Spec.Volumes).To(HaveLen(6)) Expect(depl.Spec.Template.Spec.Containers).To(HaveLen(2)) // Grab the current config hash