fix(kubebuilder): wrong crd validation markers

This commit is contained in:
Dario Tranchitella
2022-12-04 19:51:38 +01:00
parent 2336d402c3
commit 44919598ec
2 changed files with 13 additions and 4 deletions

View File

@@ -30,7 +30,7 @@ func (in *ContentRef) GetContent(ctx context.Context, client client.Client) ([]b
return nil, err return nil, err
} }
v, ok := secret.Data[secretRef.KeyPath] v, ok := secret.Data[string(secretRef.KeyPath)]
if !ok { if !ok {
return nil, fmt.Errorf("secret %s does not have key %s", namespacedName.String(), secretRef.KeyPath) return nil, fmt.Errorf("secret %s does not have key %s", namespacedName.String(), secretRef.KeyPath)
} }

View File

@@ -8,7 +8,9 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
) )
type Driver string //+kubebuilder:validation:Enum=etcd;MySQL;PostgreSQL // +kubebuilder:validation:Enum=etcd;MySQL;PostgreSQL
type Driver string
var ( var (
EtcdDriver Driver = "etcd" EtcdDriver Driver = "etcd"
@@ -16,13 +18,17 @@ var (
KinePostgreSQLDriver Driver = "PostgreSQL" KinePostgreSQLDriver Driver = "PostgreSQL"
) )
// +kubebuilder:validation:MinItems=1
type Endpoints []string
// DataStoreSpec defines the desired state of DataStore. // DataStoreSpec defines the desired state of DataStore.
type DataStoreSpec struct { type DataStoreSpec struct {
// The driver to use to connect to the shared datastore. // The driver to use to connect to the shared datastore.
Driver Driver `json:"driver"` Driver Driver `json:"driver"`
// List of the endpoints to connect to the shared datastore. // List of the endpoints to connect to the shared datastore.
// No need for protocol, just bare IP/FQDN and port. // No need for protocol, just bare IP/FQDN and port.
Endpoints []string `json:"endpoints"` //+kubebuilder:validation:MinLength=1 Endpoints Endpoints `json:"endpoints"`
// In case of authentication enabled for the given data store, specifies the username and password pair. // In case of authentication enabled for the given data store, specifies the username and password pair.
// This value is optional. // This value is optional.
BasicAuth *BasicAuth `json:"basicAuth,omitempty"` BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
@@ -62,11 +68,14 @@ type ContentRef struct {
SecretRef *SecretReference `json:"secretReference,omitempty"` SecretRef *SecretReference `json:"secretReference,omitempty"`
} }
// +kubebuilder:validation:MinLength=1
type secretReferKeyPath string
type SecretReference struct { type SecretReference struct {
corev1.SecretReference `json:",inline"` corev1.SecretReference `json:",inline"`
// Name of the key for the given Secret reference where the content is stored. // Name of the key for the given Secret reference where the content is stored.
// This value is mandatory. // This value is mandatory.
KeyPath string `json:"keyPath"` KeyPath secretReferKeyPath `json:"keyPath"`
} }
// DataStoreStatus defines the observed state of DataStore. // DataStoreStatus defines the observed state of DataStore.