mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-06 13:36:03 +02:00
create CDC event stream CRD (#1570)
* provide event stream API * check manifest settings for logical decoding before creating streams * operator updates Postgres config and creates replication user * name FES like the Postgres cluster * add delete case and fix updating streams + update unit test * check if fes CRD exists before syncing * existing slot must use the same plugin * make id and payload columns configurable * sync streams only when they are defined in manifest * introduce applicationId for separate stream CRDs * add FES to RBAC in chart * disable streams in chart * switch to pgoutput plugin and let operator create publications * reflect code review and additional refactoring Co-authored-by: Paŭlo Ebermann <paul.ebermann@zalando.de>
This commit is contained in:
co-authored by
Paŭlo Ebermann
parent
8b404fd049
commit
d8a159ef1a
@@ -12,8 +12,9 @@ import (
|
||||
clientbatchv1beta1 "k8s.io/client-go/kubernetes/typed/batch/v1beta1"
|
||||
|
||||
apiacidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
|
||||
acidv1client "github.com/zalando/postgres-operator/pkg/generated/clientset/versioned"
|
||||
zalandoclient "github.com/zalando/postgres-operator/pkg/generated/clientset/versioned"
|
||||
acidv1 "github.com/zalando/postgres-operator/pkg/generated/clientset/versioned/typed/acid.zalan.do/v1"
|
||||
zalandov1 "github.com/zalando/postgres-operator/pkg/generated/clientset/versioned/typed/zalando.org/v1"
|
||||
"github.com/zalando/postgres-operator/pkg/spec"
|
||||
apiappsv1 "k8s.io/api/apps/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
@@ -58,9 +59,11 @@ type KubernetesClient struct {
|
||||
acidv1.OperatorConfigurationsGetter
|
||||
acidv1.PostgresTeamsGetter
|
||||
acidv1.PostgresqlsGetter
|
||||
zalandov1.FabricEventStreamsGetter
|
||||
|
||||
RESTClient rest.Interface
|
||||
AcidV1ClientSet *acidv1client.Clientset
|
||||
RESTClient rest.Interface
|
||||
AcidV1ClientSet *zalandoclient.Clientset
|
||||
Zalandov1ClientSet *zalandoclient.Clientset
|
||||
}
|
||||
|
||||
type mockSecret struct {
|
||||
@@ -158,14 +161,19 @@ func NewFromConfig(cfg *rest.Config) (KubernetesClient, error) {
|
||||
|
||||
kubeClient.CustomResourceDefinitionsGetter = apiextClient.ApiextensionsV1()
|
||||
|
||||
kubeClient.AcidV1ClientSet = acidv1client.NewForConfigOrDie(cfg)
|
||||
kubeClient.AcidV1ClientSet = zalandoclient.NewForConfigOrDie(cfg)
|
||||
if err != nil {
|
||||
return kubeClient, fmt.Errorf("could not create acid.zalan.do clientset: %v", err)
|
||||
}
|
||||
kubeClient.Zalandov1ClientSet = zalandoclient.NewForConfigOrDie(cfg)
|
||||
if err != nil {
|
||||
return kubeClient, fmt.Errorf("could not create zalando.org clientset: %v", err)
|
||||
}
|
||||
|
||||
kubeClient.OperatorConfigurationsGetter = kubeClient.AcidV1ClientSet.AcidV1()
|
||||
kubeClient.PostgresTeamsGetter = kubeClient.AcidV1ClientSet.AcidV1()
|
||||
kubeClient.PostgresqlsGetter = kubeClient.AcidV1ClientSet.AcidV1()
|
||||
kubeClient.FabricEventStreamsGetter = kubeClient.Zalandov1ClientSet.ZalandoV1()
|
||||
|
||||
return kubeClient, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user