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  }