Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 6 additions & 8 deletions pkg/ovndbcluster/statefulset.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"github.com/openstack-k8s-operators/lib-common/modules/common/affinity"
"github.com/openstack-k8s-operators/lib-common/modules/common/env"
"github.com/openstack-k8s-operators/lib-common/modules/common/tls"
"github.com/openstack-k8s-operators/lib-common/modules/common/util"
ovnv1 "github.com/openstack-k8s-operators/ovn-operator/api/v1beta1"
ovn_common "github.com/openstack-k8s-operators/ovn-operator/pkg/common"

Expand Down Expand Up @@ -245,21 +246,18 @@ func StatefulSet(

// https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
statefulset.Spec.PersistentVolumeClaimRetentionPolicy = &appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy{
WhenDeleted: appsv1.DeletePersistentVolumeClaimRetentionPolicyType,
WhenDeleted: appsv1.RetainPersistentVolumeClaimRetentionPolicyType,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WhenScaled: appsv1.RetainPersistentVolumeClaimRetentionPolicyType,
}

blockOwnerDeletion := false
ownerRef := metav1.NewControllerRef(instance, instance.GroupVersionKind())
ownerRef.BlockOwnerDeletion = &blockOwnerDeletion
volumeClaimLabels := util.MergeMaps(labels, map[string]string{"owner": instance.Name})

statefulset.Spec.VolumeClaimTemplates = []corev1.PersistentVolumeClaim{
{
ObjectMeta: metav1.ObjectMeta{
Name: instance.Name + PVCSuffixEtcOVN,
Namespace: instance.Namespace,
Labels: labels,
OwnerReferences: []metav1.OwnerReference{*ownerRef},
Name: instance.Name + PVCSuffixEtcOVN,
Namespace: instance.Namespace,
Labels: volumeClaimLabels,
},
Spec: corev1.PersistentVolumeClaimSpec{
AccessModes: []corev1.PersistentVolumeAccessMode{
Expand Down
22 changes: 22 additions & 0 deletions tests/kuttl/common/assert_sample_deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
# - ovsdbserver-sb-0 Service
# - OVNController Daemonset created as many pods as nodes*2
# - OVNControllerOVS Daemonset created as many pods as nodes*2
# - 1 PVC for OVNDBCluster NB
# - 1 PVC for OVNDBCluster SB

apiVersion: ovn.openstack.org/v1beta1
kind: OVNNorthd
Expand Down Expand Up @@ -388,3 +390,23 @@ commands:
sb_pod=$(oc get pod -n $NAMESPACE -l service=ovsdbserver-sb -o name|head -1)
oc rsh -n $NAMESPACE ${sb_pod} ovn-sbctl list chassis | grep -q ${host} || exit 1
exit 0
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-0
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-0
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound
60 changes: 60 additions & 0 deletions tests/kuttl/tests/ovn_db_delete/02-assert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#
# - 1 OVNDBCluster CR
# - 3 Pods for OVNDBCluster nb CR
# - 3 PVCs for OVNDBCluster nb CR
#

apiVersion: ovn.openstack.org/v1beta1
Expand Down Expand Up @@ -45,3 +46,62 @@ spec:
status:
availableReplicas: 3
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-0
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-1
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-2
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-0
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-1
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-2
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound
61 changes: 61 additions & 0 deletions tests/kuttl/tests/ovn_db_delete/08-assert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
# - 1 OVNDBCluster CR
# - 1 Pod for OVNDBCluster nb CR
# - 1 Pod for OVNDBCluster sb CR
# - 3 PVCs for OVNDBCluster nb CR
# - 3 PVCs for OVNDBCluster sb CR
#

apiVersion: ovn.openstack.org/v1beta1
Expand Down Expand Up @@ -46,3 +48,62 @@ spec:
status:
availableReplicas: 1
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-0
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-1
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-2
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-0
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-1
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-2
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound
65 changes: 65 additions & 0 deletions tests/kuttl/tests/ovn_db_delete/10-assert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#
# Check for:
#
# PVCs for OVNDBCluster nb CR is not deleted
# PVCs for OVNDBCluster sb CR is not deleted
#
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-0
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-1
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-nb-sample-etc-ovn-ovsdbserver-nb-2
labels:
owner: ovndbcluster-nb-sample
service: ovsdbserver-nb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-0
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-1
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovndbcluster-sb-sample-etc-ovn-ovsdbserver-sb-2
labels:
owner: ovndbcluster-sb-sample
service: ovsdbserver-sb
status:
phase: Bound