Skip to content

Commit a22c061

Browse files
committed
refactor to account for labels on some installers
Some installers don't label the CRD with app.kubernetes.io/name=pgo. This refactor filters all the CRDs for a name containing "postgres-operator.crunchydata.com"
1 parent c1e0103 commit a22c061

1 file changed

Lines changed: 17 additions & 6 deletions

File tree

internal/cmd/export.go

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
networkingv1 "k8s.io/api/networking/v1"
2828
policyv1 "k8s.io/api/policy/v1"
2929
policyv1beta1 "k8s.io/api/policy/v1beta1"
30+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
3031
apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
3132
apierrors "k8s.io/apimachinery/pkg/api/errors"
3233
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -1121,10 +1122,8 @@ func gatherCrds(ctx context.Context,
11211122
cmd *cobra.Command,
11221123
) error {
11231124
writeInfo(cmd, "Collecting CRDs...")
1124-
// list, err := clientset.CoreV1().Events(namespace).List(ctx, metav1.ListOptions{})
11251125

1126-
labelSelector := "app.kubernetes.io/name=pgo"
1127-
crds, err := clientset.ApiextensionsV1().CustomResourceDefinitions().List(ctx, metav1.ListOptions{LabelSelector: labelSelector})
1126+
crdList, err := clientset.ApiextensionsV1().CustomResourceDefinitions().List(ctx, metav1.ListOptions{})
11281127

11291128
if err != nil {
11301129
if apierrors.IsForbidden(err) {
@@ -1134,7 +1133,19 @@ func gatherCrds(ctx context.Context,
11341133
return err
11351134
}
11361135

1137-
if len(crds.Items) == 0 {
1136+
// Get only the CRDs matching our filter
1137+
nameFilter := "postgres-operator.crunchydata.com"
1138+
1139+
filteredCRDs := &apiextensionsv1.CustomResourceDefinitionList{
1140+
Items: []apiextensionsv1.CustomResourceDefinition{},
1141+
}
1142+
for _, crd := range crdList.Items {
1143+
if strings.Contains(crd.Name, nameFilter) {
1144+
filteredCRDs.Items = append(filteredCRDs.Items, crd)
1145+
}
1146+
}
1147+
1148+
if len(filteredCRDs.Items) == 0 {
11381149
// If we didn't find any resources, skip
11391150
writeInfo(cmd, "Resource CRDs not found, skipping")
11401151
return nil
@@ -1143,7 +1154,7 @@ func gatherCrds(ctx context.Context,
11431154
// Create a buffer to generate string with the table formatted list
11441155
var buf bytes.Buffer
11451156
if err := printers.NewTablePrinter(printers.PrintOptions{}).
1146-
PrintObj(crds, &buf); err != nil {
1157+
PrintObj(filteredCRDs, &buf); err != nil {
11471158
return err
11481159
}
11491160

@@ -1154,7 +1165,7 @@ func gatherCrds(ctx context.Context,
11541165
return err
11551166
}
11561167

1157-
for _, obj := range crds.Items {
1168+
for _, obj := range filteredCRDs.Items {
11581169
b, err := yaml.Marshal(obj)
11591170
if err != nil {
11601171
return err

0 commit comments

Comments
 (0)