Skip to content
Merged
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
3 changes: 3 additions & 0 deletions internal/instance/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1"
"github.com/spf13/viper"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
Expand Down Expand Up @@ -118,5 +119,7 @@ func generateScheme(ctx context.Context) *runtime.Scheme {
schemeLog := log.FromContext(ctx)
schemeLog.Info("CNPG types registration", "schemeGroupVersion", schemeGroupVersion)

metav1.AddToGroupVersion(result, schemeGroupVersion)

return result
}
60 changes: 60 additions & 0 deletions internal/instance/manager_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
// SPDX-FileCopyrightText: 2026 Dalibo <contact@dalibo.com>
//
// SPDX-License-Identifier: Apache-2.0
package instance

import (
"context"
"testing"

"github.com/spf13/viper"
"k8s.io/apimachinery/pkg/runtime/schema"
)

func TestGenerateScheme_RegistersMetaTypes(t *testing.T) {
viper.Reset()
group := "postgresql.cnpg.io"
version := "v1"
viper.Set("custom-cnpg-group", group)
viper.Set("custom-cnpg-version", version)

ctx := context.Background()
scheme := generateScheme(ctx)

if scheme == nil {
t.Fatal("expected scheme to not be nil")
}

testsCases := []struct {
name string
gvk schema.GroupVersionKind
}{
{
name: "CNPG Cluster Custom Resource Type",
gvk: schema.GroupVersionKind{Group: group, Version: version, Kind: "Cluster"},
},
{
name: "metav1 GetOptions under CNPG GroupVersion",
gvk: schema.GroupVersionKind{Group: group, Version: version, Kind: "GetOptions"},
},
{
name: "metav1 ListOptions under CNPG GroupVersion",
gvk: schema.GroupVersionKind{Group: group, Version: version, Kind: "ListOptions"},
},
}

for _, tt := range testsCases {
t.Run(tt.name, func(t *testing.T) {
if !scheme.Recognizes(tt.gvk) {
t.Errorf(
"Scheme is missing registration for GVK: %v. Your fix failed to add it.",
tt.gvk,
)
}
_, err := scheme.New(tt.gvk)
if err != nil {
t.Errorf("Failed to instantiate type for GVK %v: %v", tt.gvk, err)
}
})
}
}
2 changes: 1 addition & 1 deletion kubernetes/prod/deployment-image-patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ spec:
spec:
containers:
- name: pgbackrest-controller
image: registry.hub.docker.com/dalibo/cnpg-pgbackrest-controller:0.0.2
image: registry.hub.docker.com/dalibo/cnpg-pgbackrest-controller:0.0.3
env:
- name: SIDECAR_IMAGE
valueFrom:
Expand Down
2 changes: 1 addition & 1 deletion manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1155,7 +1155,7 @@ spec:
secretKeyRef:
key: SIDECAR_EXPORTER_IMAGE
name: plugin-pgbackrest-df48cbmd95
image: registry.hub.docker.com/dalibo/cnpg-pgbackrest-controller:0.0.2
image: registry.hub.docker.com/dalibo/cnpg-pgbackrest-controller:0.0.3
name: pgbackrest-controller
ports:
- containerPort: 9090
Expand Down
Loading