Files
postgres-operator/pkg/apis/acid.zalan.do/v1/crds.go
T
Felix Kunde a664816c09 auto-generate configuration CRD (#3102)
* auto-generate configuration CRD
* make all subconfig optional
* remove field enable crd validation
* update field descriptions which use proxy types
2026-06-22 10:44:46 +02:00

47 lines
1.2 KiB
Go

package v1
import (
_ "embed"
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"sigs.k8s.io/yaml"
)
// CRDResource* define names necesssary for the k8s CRD API
const (
PostgresCRDResourceKind = "postgresql"
OperatorConfigCRDResourceKind = "OperatorConfiguration"
)
//go:embed postgresql.crd.yaml
var postgresqlCRDYAML []byte
// PostgresCRD returns CustomResourceDefinition built from PostgresCRDResource
func PostgresCRD(crdCategories []string) (*apiextv1.CustomResourceDefinition, error) {
var crd apiextv1.CustomResourceDefinition
err := yaml.Unmarshal(postgresqlCRDYAML, &crd)
if err != nil {
return nil, err
}
crd.Spec.Names.Categories = crdCategories
return &crd, nil
}
//go:embed operatorconfiguration.crd.yaml
var operatorConfigurationCRDYAML []byte
// OperatorConfigurationCRD returns CustomResourceDefinition built from OperatorConfigurationCRDResource
func OperatorConfigurationCRD(crdCategories []string) (*apiextv1.CustomResourceDefinition, error) {
var crd apiextv1.CustomResourceDefinition
err := yaml.Unmarshal(operatorConfigurationCRDYAML, &crd)
if err != nil {
return nil, err
}
crd.Spec.Names.Categories = crdCategories
return &crd, nil
}