github.com/verrazzano/verrazzano-monitoring-operator@v0.0.30/pkg/resources/statefulsets/pvc.go (about) 1 // Copyright (C) 2022, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package statefulsets 5 6 import ( 7 "fmt" 8 appsv1 "k8s.io/api/apps/v1" 9 ) 10 11 // GetPVCNames generates the expected PVC names of a statefulset, given its replica count 12 // {volumeClaimTemplate name}-{sts name}-{replica ordinal} 13 func GetPVCNames(statefulSet *appsv1.StatefulSet) []string { 14 var pvcNames []string 15 var i int32 16 replicas := *statefulSet.Spec.Replicas 17 for _, volumeClaimTemplate := range statefulSet.Spec.VolumeClaimTemplates { 18 for i = 0; i < replicas; i++ { 19 pvcName := fmt.Sprintf("%s-%s-%d", volumeClaimTemplate.Name, statefulSet.Name, i) 20 pvcNames = append(pvcNames, pvcName) 21 } 22 } 23 return pvcNames 24 }