Skip to content

Commit

Permalink
Merge pull request openstack-k8s-operators#438 from steveb/OSPRH-7688
Browse files Browse the repository at this point in the history
Manage PVCs in the conductor StatefulSet
  • Loading branch information
openshift-merge-bot[bot] authored Jun 18, 2024
2 parents d91e825 + 48df44b commit 1560412
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 80 deletions.
18 changes: 0 additions & 18 deletions controllers/ironicconductor_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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)
Expand Down
46 changes: 0 additions & 46 deletions pkg/ironicconductor/pvc.go

This file was deleted.

24 changes: 23 additions & 1 deletion pkg/ironicconductor/statefulset.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ limitations under the License.
package ironicconductor

import (
"fmt"
"net"

ironicv1 "github.com/openstack-k8s-operators/ironic-operator/api/v1beta1"
Expand All @@ -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"
Expand Down Expand Up @@ -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",
},
Expand Down Expand Up @@ -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,
},
},
},
},
}

Expand Down
13 changes: 0 additions & 13 deletions pkg/ironicconductor/volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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",
Expand All @@ -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...)
Expand Down
4 changes: 2 additions & 2 deletions tests/functional/ironicconductor_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 1560412

Please sign in to comment.