From d44195d5ee3898b3e4aa6a88a19204523e4b290c Mon Sep 17 00:00:00 2001 From: I501080 Date: Wed, 5 Feb 2025 08:02:09 +0200 Subject: [PATCH 1/8] update go version --- Dockerfile | 2 +- go.mod | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index e0561ab2..cfa2ec6c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build the manager binary -FROM --platform=$BUILDPLATFORM golang:1.22.7-alpine as builder +FROM --platform=$BUILDPLATFORM golang:1.23.5-alpine as builder WORKDIR /workspace # Copy the Go Modules manifests diff --git a/go.mod b/go.mod index f4cda1a3..d3acbd58 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/SAP/sap-btp-service-operator -go 1.22.7 +go 1.23.5 require ( github.com/Masterminds/sprig/v3 v3.2.3 From c9cde212bcfb8c5c72c3f87bc512e54d48e0a1b3 Mon Sep 17 00:00:00 2001 From: i065450 Date: Wed, 5 Feb 2025 10:35:30 +0200 Subject: [PATCH 2/8] fix lint --- Makefile | 2 +- api/common/utils/secret_template.go | 4 +- api/v1/servicebinding_types.go | 4 +- api/v1/servicebinding_validating_webhook.go | 10 ++-- api/v1/serviceinstance_types.go | 4 +- api/v1/serviceinstance_validating_webhook.go | 10 ++-- ...ervices.cloud.sap.com_servicebindings.yaml | 42 +++------------- ...rvices.cloud.sap.com_serviceinstances.yaml | 50 ++++--------------- controllers/secret_controller.go | 2 +- 9 files changed, 36 insertions(+), 92 deletions(-) diff --git a/Makefile b/Makefile index 77bef172..59d40fe4 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,7 @@ envtest: lint: lint-deps - golangci-lint run + golangci-lint run --skip-dirs "pkg/mod/golang.org/toolchain" lint-deps: @if ! which golangci-lint >/dev/null || [[ "$$(golangci-lint --version)" != *${LINT_VERSION}* ]]; then \ diff --git a/api/common/utils/secret_template.go b/api/common/utils/secret_template.go index f9148959..9244a2ca 100644 --- a/api/common/utils/secret_template.go +++ b/api/common/utils/secret_template.go @@ -7,7 +7,7 @@ import ( "io" "text/template" - "github.com/Masterminds/sprig/v3" + sprigv3 "github.com/Masterminds/sprig/v3" "github.com/SAP/sap-btp-service-operator/api/common" "github.com/pkg/errors" corev1 "k8s.io/api/core/v1" @@ -336,7 +336,7 @@ func ParseTemplate(templateName, text string) (*template.Template, error) { } func filteredFuncMap() template.FuncMap { - funcs := sprig.TxtFuncMap() + funcs := sprigv3.TxtFuncMap() for sprigFunc := range funcs { if _, ok := allowedSprigFunctions[sprigFunc]; !ok { diff --git a/api/v1/servicebinding_types.go b/api/v1/servicebinding_types.go index 01296125..743dd586 100644 --- a/api/v1/servicebinding_types.go +++ b/api/v1/servicebinding_types.go @@ -189,11 +189,11 @@ func (sb *ServiceBinding) SetReady(ready metav1.ConditionStatus) { } func (sb *ServiceBinding) GetAnnotations() map[string]string { - return sb.Annotations + return sb.ObjectMeta.Annotations } func (sb *ServiceBinding) SetAnnotations(annotations map[string]string) { - sb.Annotations = annotations + sb.ObjectMeta.Annotations = annotations } // +kubebuilder:object:root=true diff --git a/api/v1/servicebinding_validating_webhook.go b/api/v1/servicebinding_validating_webhook.go index 439ae64c..749308ac 100644 --- a/api/v1/servicebinding_validating_webhook.go +++ b/api/v1/servicebinding_validating_webhook.go @@ -47,7 +47,7 @@ var _ webhook.Validator = &ServiceBinding{} // ValidateCreate implements webhook.Validator so a webhook will be registered for the type func (sb *ServiceBinding) ValidateCreate() (admission.Warnings, error) { - servicebindinglog.Info("validate create", "name", sb.Name) + servicebindinglog.Info("validate create", "name", sb.ObjectMeta.Name) if sb.Spec.CredRotationPolicy != nil { if err := sb.validateCredRotatingConfig(); err != nil { return nil, err @@ -58,7 +58,7 @@ func (sb *ServiceBinding) ValidateCreate() (admission.Warnings, error) { // ValidateUpdate implements webhook.Validator so a webhook will be registered for the type func (sb *ServiceBinding) ValidateUpdate(old runtime.Object) (admission.Warnings, error) { - servicebindinglog.Info("validate update", "name", sb.Name) + servicebindinglog.Info("validate update", "name", sb.ObjectMeta.Name) if sb.Spec.CredRotationPolicy != nil { if err := sb.validateCredRotatingConfig(); err != nil { return nil, err @@ -87,10 +87,10 @@ func (sb *ServiceBinding) ValidateUpdate(old runtime.Object) (admission.Warnings } func (sb *ServiceBinding) validateRotationLabels(old *ServiceBinding) bool { - if sb.Labels[common.StaleBindingIDLabel] != old.Labels[common.StaleBindingIDLabel] { + if sb.ObjectMeta.Labels[common.StaleBindingIDLabel] != old.ObjectMeta.Labels[common.StaleBindingIDLabel] { return false } - return sb.Labels[common.StaleBindingRotationOfLabel] == old.Labels[common.StaleBindingRotationOfLabel] + return sb.ObjectMeta.Labels[common.StaleBindingRotationOfLabel] == old.ObjectMeta.Labels[common.StaleBindingRotationOfLabel] } func (sb *ServiceBinding) specChanged(oldBinding *ServiceBinding) bool { @@ -110,7 +110,7 @@ func (sb *ServiceBinding) specChanged(oldBinding *ServiceBinding) bool { // ValidateDelete implements webhook.Validator so a webhook will be registered for the type func (sb *ServiceBinding) ValidateDelete() (admission.Warnings, error) { - servicebindinglog.Info("validate delete", "name", sb.Name) + servicebindinglog.Info("validate delete", "name", sb.ObjectMeta.Name) // TODO(user): fill in your validation logic upon object deletion. return nil, nil diff --git a/api/v1/serviceinstance_types.go b/api/v1/serviceinstance_types.go index 60e5b858..0cbee582 100644 --- a/api/v1/serviceinstance_types.go +++ b/api/v1/serviceinstance_types.go @@ -186,11 +186,11 @@ func (si *ServiceInstance) SetReady(ready metav1.ConditionStatus) { si.Status.Ready = ready } func (si *ServiceInstance) GetAnnotations() map[string]string { - return si.Annotations + return si.ObjectMeta.Annotations } func (si *ServiceInstance) SetAnnotations(annotations map[string]string) { - si.Annotations = annotations + si.ObjectMeta.Annotations = annotations } // +kubebuilder:object:root=true diff --git a/api/v1/serviceinstance_validating_webhook.go b/api/v1/serviceinstance_validating_webhook.go index c7c83982..d6a1e3a1 100644 --- a/api/v1/serviceinstance_validating_webhook.go +++ b/api/v1/serviceinstance_validating_webhook.go @@ -47,7 +47,7 @@ func (si *ServiceInstance) ValidateCreate() (warnings admission.Warnings, err er } func (si *ServiceInstance) ValidateUpdate(old runtime.Object) (warnings admission.Warnings, err error) { - serviceinstancelog.Info("validate update", "name", si.Name) + serviceinstancelog.Info("validate update", "name", si.ObjectMeta.Name) oldInstance := old.(*ServiceInstance) if oldInstance.Spec.BTPAccessCredentialsSecret != si.Spec.BTPAccessCredentialsSecret { @@ -57,11 +57,11 @@ func (si *ServiceInstance) ValidateUpdate(old runtime.Object) (warnings admissio } func (si *ServiceInstance) ValidateDelete() (warnings admission.Warnings, err error) { - serviceinstancelog.Info("validate delete", "name", si.Name) - if si.Annotations != nil { - preventDeletion, ok := si.Annotations[common.PreventDeletion] + serviceinstancelog.Info("validate delete", "name", si.ObjectMeta.Name) + if si.ObjectMeta.Annotations != nil { + preventDeletion, ok := si.ObjectMeta.Annotations[common.PreventDeletion] if ok && strings.ToLower(preventDeletion) == "true" { - return nil, fmt.Errorf("service instance '%s' is marked with \"prevent deletion\"", si.Name) + return nil, fmt.Errorf("service instance '%s' is marked with \"prevent deletion\"", si.ObjectMeta.Name) } } return nil, nil diff --git a/config/crd/bases/services.cloud.sap.com_servicebindings.yaml b/config/crd/bases/services.cloud.sap.com_servicebindings.yaml index 0cfb92f0..7a0fb9eb 100644 --- a/config/crd/bases/services.cloud.sap.com_servicebindings.yaml +++ b/config/crd/bases/services.cloud.sap.com_servicebindings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: servicebindings.services.cloud.sap.com spec: group: services.cloud.sap.com @@ -82,7 +82,6 @@ spec: description: |- Parameters for the binding. - The Parameters field is NOT secret or secured in any way and should NEVER be used to hold sensitive information. To set parameters that contain secret information, you should ALWAYS store that information @@ -199,16 +198,8 @@ spec: conditions: description: Service binding conditions items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -249,12 +240,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -362,7 +348,6 @@ spec: description: |- Parameters for the binding. - The Parameters field is NOT secret or secured in any way and should NEVER be used to hold sensitive information. To set parameters that contain secret information, you should ALWAYS store that information @@ -464,16 +449,8 @@ spec: conditions: description: Service binding conditions items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -514,12 +491,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml b/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml index 70fc85e3..e42dfb04 100644 --- a/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml +++ b/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: serviceinstances.services.cloud.sap.com spec: group: services.cloud.sap.com @@ -89,7 +89,6 @@ spec: description: |- Provisioning parameters for the instance. - The Parameters field is NOT secret or secured in any way and should NEVER be used to hold sensitive information. To set parameters that contain secret information, you should ALWAYS store that information @@ -140,10 +139,6 @@ spec: shared: description: Indicates the desired shared state type: boolean - watchParametersFromChanges: - description: indicate instance will update on secrets from parametersFrom - change - type: boolean userInfo: description: |- UserInfo contains information about the user that last modified this @@ -175,6 +170,10 @@ spec: all active users. type: string type: object + watchParametersFromChanges: + description: indicate instance will update on secrets from parametersFrom + change + type: boolean required: - serviceOfferingName - servicePlanName @@ -185,16 +184,8 @@ spec: conditions: description: Service instance conditions items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -235,12 +226,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -352,7 +338,6 @@ spec: description: |- Provisioning parameters for the instance. - The Parameters field is NOT secret or secured in any way and should NEVER be used to hold sensitive information. To set parameters that contain secret information, you should ALWAYS store that information @@ -444,16 +429,8 @@ spec: conditions: description: Service instance conditions items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -494,12 +471,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/controllers/secret_controller.go b/controllers/secret_controller.go index 60a7f955..c43a72bd 100644 --- a/controllers/secret_controller.go +++ b/controllers/secret_controller.go @@ -40,7 +40,7 @@ func (r *SecretReconciler) Reconcile(ctx context.Context, req reconcile.Request) log.Info(fmt.Sprintf("reconciling params secret %s", req.NamespacedName)) // Fetch the Secret secret := &corev1.Secret{} - if err := r.Get(ctx, req.NamespacedName, secret); err != nil { + if err := r.Client.Get(ctx, req.NamespacedName, secret); err != nil { if !apierrors.IsNotFound(err) { log.Error(err, "unable to fetch Secret") } From 4b4ae029d73105ef6fd3872d343e7091c687de11 Mon Sep 17 00:00:00 2001 From: i065450 Date: Wed, 5 Feb 2025 10:49:36 +0200 Subject: [PATCH 3/8] fix lint --- .golangci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.golangci.yml b/.golangci.yml index d546fae9..b7793eb1 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -2,7 +2,11 @@ run: # Extend default timeout for running in single-core CI timeout: 5m tests: false - +issues: + exclude-rules: + - path: pkg/mod + linters: + - '*' linters: enable: # Default linters plus these: From 3ea2d0aab4b40b27e30b930ee14916f2025a5985 Mon Sep 17 00:00:00 2001 From: i065450 Date: Wed, 5 Feb 2025 10:56:10 +0200 Subject: [PATCH 4/8] fix lint --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 59d40fe4..2f921761 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,7 @@ envtest: lint: lint-deps - golangci-lint run --skip-dirs "pkg/mod/golang.org/toolchain" + golangci-lint run --skip-dirs "pkg/mod/golang.org/toolchain" --config ".golangci.yml" lint-deps: @if ! which golangci-lint >/dev/null || [[ "$$(golangci-lint --version)" != *${LINT_VERSION}* ]]; then \ From 4719a9f3b4b6c7d1f94e6250dd00a172430f8b12 Mon Sep 17 00:00:00 2001 From: i065450 Date: Wed, 5 Feb 2025 11:06:09 +0200 Subject: [PATCH 5/8] fix lint --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 2f921761..ad952eae 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,7 @@ envtest: lint: lint-deps - golangci-lint run --skip-dirs "pkg/mod/golang.org/toolchain" --config ".golangci.yml" + golangci-lint run --skip-dirs "pkg/mod" lint-deps: @if ! which golangci-lint >/dev/null || [[ "$$(golangci-lint --version)" != *${LINT_VERSION}* ]]; then \ From 2e301ce4fb1e34dc62f2f0ae93cb1d0e10d3a626 Mon Sep 17 00:00:00 2001 From: i065450 Date: Wed, 5 Feb 2025 11:57:19 +0200 Subject: [PATCH 6/8] fix lint --- ...ervices.cloud.sap.com_servicebindings.yaml | 1020 +++++++++-------- ...rvices.cloud.sap.com_serviceinstances.yaml | 986 ++++++++-------- 2 files changed, 1031 insertions(+), 975 deletions(-) diff --git a/config/crd/bases/services.cloud.sap.com_servicebindings.yaml b/config/crd/bases/services.cloud.sap.com_servicebindings.yaml index 7a0fb9eb..aaf901cd 100644 --- a/config/crd/bases/services.cloud.sap.com_servicebindings.yaml +++ b/config/crd/bases/services.cloud.sap.com_servicebindings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.15.0 name: servicebindings.services.cloud.sap.com spec: group: services.cloud.sap.com @@ -14,521 +14,549 @@ spec: singular: servicebinding scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.serviceInstanceName - name: Instance - type: string - - jsonPath: .status.conditions[0].reason - name: Status - type: string - - jsonPath: .status.ready - name: Ready - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.bindingID - name: ID - priority: 1 - type: string - - jsonPath: .status.conditions[0].message - name: Message - priority: 1 - type: string - name: v1 - schema: - openAPIV3Schema: - description: ServiceBinding is the Schema for the servicebindings API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ServiceBindingSpec defines the desired state of ServiceBinding - properties: - credentialsRotationPolicy: - description: CredentialsRotationPolicy holds automatic credentials - rotation configuration. - properties: - enabled: - type: boolean - rotatedBindingTTL: - description: For how long to keep the rotated binding. - type: string - rotationFrequency: - description: What frequency to perform binding rotation. - type: string - required: - - enabled - type: object - externalName: - description: The name of the binding in Service Manager - type: string - parameters: - description: |- - Parameters for the binding. - - The Parameters field is NOT secret or secured in any way and should - NEVER be used to hold sensitive information. To set parameters that - contain secret information, you should ALWAYS store that information - in a Secret and use the ParametersFrom field. - type: object - x-kubernetes-preserve-unknown-fields: true - parametersFrom: - description: |- - List of sources to populate parameters. - If a top-level parameter name exists in multiples sources among - `Parameters` and `ParametersFrom` fields, it is - considered to be a user error in the specification - items: - description: ParametersFromSource represents the source of a set - of Parameters + - additionalPrinterColumns: + - jsonPath: .spec.serviceInstanceName + name: Instance + type: string + - jsonPath: .status.conditions[0].reason + name: Status + type: string + - jsonPath: .status.ready + name: Ready + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.bindingID + name: ID + priority: 1 + type: string + - jsonPath: .status.conditions[0].message + name: Message + priority: 1 + type: string + name: v1 + schema: + openAPIV3Schema: + description: ServiceBinding is the Schema for the servicebindings API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServiceBindingSpec defines the desired state of ServiceBinding + properties: + credentialsRotationPolicy: + description: CredentialsRotationPolicy holds automatic credentials + rotation configuration. properties: - secretKeyRef: - description: |- - The Secret key to select from. - The value must be a JSON object. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: The name of the secret in the pod's namespace - to select from. + enabled: + type: boolean + rotatedBindingTTL: + description: For how long to keep the rotated binding. + type: string + rotationFrequency: + description: What frequency to perform binding rotation. + type: string + required: + - enabled + type: object + externalName: + description: The name of the binding in Service Manager + type: string + parameters: + description: |- + Parameters for the binding. + + + The Parameters field is NOT secret or secured in any way and should + NEVER be used to hold sensitive information. To set parameters that + contain secret information, you should ALWAYS store that information + in a Secret and use the ParametersFrom field. + type: object + x-kubernetes-preserve-unknown-fields: true + parametersFrom: + description: |- + List of sources to populate parameters. + If a top-level parameter name exists in multiples sources among + `Parameters` and `ParametersFrom` fields, it is + considered to be a user error in the specification + items: + description: ParametersFromSource represents the source of a set + of Parameters + properties: + secretKeyRef: + description: |- + The Secret key to select from. + The value must be a JSON object. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: The name of the secret in the pod's namespace + to select from. + type: string + required: + - key + - name + type: object + type: object + type: array + secretKey: + description: |- + SecretKey is used as the key inside the secret to store the credentials + returned by the broker encoded as json to support complex data structures. + If not specified, the credentials returned by the broker will be used + directly as the secrets data. + type: string + secretName: + description: SecretName is the name of the secret where credentials + will be stored + type: string + secretRootKey: + description: |- + SecretRootKey is used as the key inside the secret to store all binding + data including credentials returned by the broker and additional info under single key. + Convenient way to store whole binding data in single file when using `volumeMounts`. + type: string + secretTemplate: + description: |- + SecretTemplate is a Go template that generates a custom Kubernetes + v1/Secret based on data from the service binding returned by Service Manager and the instance information. + The generated secret is used instead of the default secret. + This is useful if the consumer of service binding data expects them in + a specific format. + For Go templates see https://pkg.go.dev/text/template. + For supported funcs see: https://pkg.go.dev/text/template#hdr-Functions, https://masterminds.github.io/sprig/ + type: string + x-kubernetes-preserve-unknown-fields: true + serviceInstanceName: + description: The k8s name of the service instance to bind, should + be in the namespace of the binding + minLength: 1 + type: string + serviceInstanceNamespace: + description: The namespace of the referenced instance, if empty Binding's + namespace will be used + type: string + userInfo: + description: |- + UserInfo contains information about the user that last modified this + instance. This field is set by the API server and not settable by the + end-user. User-provided values for this field are not saved. + properties: + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf can generate + items: type: string - required: - - key - - name + type: array + description: Any additional information provided by the authenticator. type: object - type: object - type: array - secretKey: - description: |- - SecretKey is used as the key inside the secret to store the credentials - returned by the broker encoded as json to support complex data structures. - If not specified, the credentials returned by the broker will be used - directly as the secrets data. - type: string - secretName: - description: SecretName is the name of the secret where credentials - will be stored - type: string - secretRootKey: - description: |- - SecretRootKey is used as the key inside the secret to store all binding - data including credentials returned by the broker and additional info under single key. - Convenient way to store whole binding data in single file when using `volumeMounts`. - type: string - secretTemplate: - description: |- - SecretTemplate is a Go template that generates a custom Kubernetes - v1/Secret based on data from the service binding returned by Service Manager and the instance information. - The generated secret is used instead of the default secret. - This is useful if the consumer of service binding data expects them in - a specific format. - For Go templates see https://pkg.go.dev/text/template. - For supported funcs see: https://pkg.go.dev/text/template#hdr-Functions, https://masterminds.github.io/sprig/ - type: string - x-kubernetes-preserve-unknown-fields: true - serviceInstanceName: - description: The k8s name of the service instance to bind, should - be in the namespace of the binding - minLength: 1 - type: string - serviceInstanceNamespace: - description: The namespace of the referenced instance, if empty Binding's - namespace will be used - type: string - userInfo: - description: |- - UserInfo contains information about the user that last modified this - instance. This field is set by the API server and not settable by the - end-user. User-provided values for this field are not saved. - properties: - extra: - additionalProperties: - description: ExtraValue masks the value so protobuf can generate + groups: + description: The names of groups this user is a part of. items: type: string type: array - description: Any additional information provided by the authenticator. - type: object - groups: - description: The names of groups this user is a part of. - items: - type: string - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - A unique value that identifies this user across time. If this user is - deleted and another user by the same name is added, they will have - different UIDs. - type: string - username: - description: The name that uniquely identifies this user among - all active users. - type: string - type: object - required: - - serviceInstanceName - type: object - status: - description: ServiceBindingStatus defines the observed state of ServiceBinding - properties: - bindingID: - description: The generated ID of the binding, will be automatically - filled once the binding is created - type: string - conditions: - description: Service binding conditions - items: - description: Condition contains details for one aspect of the current - state of this API Resource. - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: + x-kubernetes-list-type: atomic + uid: description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: |- - reason contains a programmatic identifier indicating the reason for the condition's last transition. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + username: + description: The name that uniquely identifies this user among + all active users. type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown + type: object + required: + - serviceInstanceName + type: object + status: + description: ServiceBindingStatus defines the observed state of ServiceBinding + properties: + bindingID: + description: The generated ID of the binding, will be automatically + filled once the binding is created + type: string + conditions: + description: Service binding conditions + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + instanceID: + description: The ID of the instance in SM associated with binding + type: string + lastCredentialsRotationTime: + description: Indicates when binding secret was rotated + format: date-time + type: string + operationType: + description: The operation type (CREATE/UPDATE/DELETE) for ongoing + operation + type: string + operationURL: + description: URL of ongoing operation for the service binding + type: string + ready: + description: Indicates whether binding is ready for usage + type: string + subaccountID: + description: The subaccount id of the service binding + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.serviceInstanceName + name: Instance + type: string + - jsonPath: .status.conditions[0].reason + name: Status + type: string + - jsonPath: .status.ready + name: Ready + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.bindingID + name: ID + priority: 1 + type: string + - jsonPath: .status.conditions[0].message + name: Message + priority: 1 + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: ServiceBinding is the Schema for the servicebindings API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServiceBindingSpec defines the desired state of ServiceBinding + properties: + credentialsRotationPolicy: + description: CredentialsRotationPolicy holds automatic credentials + rotation configuration. + properties: + enabled: + type: boolean + rotatedBindingTTL: + description: For how long to keep the rotated binding. type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + rotationFrequency: + description: What frequency to perform binding rotation. type: string required: - - lastTransitionTime - - message - - reason - - status - - type + - enabled + type: object + externalName: + description: The name of the binding in Service Manager + type: string + parameters: + description: |- + Parameters for the binding. + + + The Parameters field is NOT secret or secured in any way and should + NEVER be used to hold sensitive information. To set parameters that + contain secret information, you should ALWAYS store that information + in a Secret and use the ParametersFrom field. type: object - type: array - instanceID: - description: The ID of the instance in SM associated with binding - type: string - lastCredentialsRotationTime: - description: Indicates when binding secret was rotated - format: date-time - type: string - operationType: - description: The operation type (CREATE/UPDATE/DELETE) for ongoing - operation - type: string - operationURL: - description: URL of ongoing operation for the service binding - type: string - ready: - description: Indicates whether binding is ready for usage - type: string - subaccountID: - description: The subaccount id of the service binding - type: string - required: - - conditions - type: object - type: object - served: true - storage: true - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.serviceInstanceName - name: Instance - type: string - - jsonPath: .status.conditions[0].reason - name: Status - type: string - - jsonPath: .status.ready - name: Ready - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.bindingID - name: ID - priority: 1 - type: string - - jsonPath: .status.conditions[0].message - name: Message - priority: 1 - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: ServiceBinding is the Schema for the servicebindings API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ServiceBindingSpec defines the desired state of ServiceBinding - properties: - credentialsRotationPolicy: - description: CredentialsRotationPolicy holds automatic credentials - rotation configuration. - properties: - enabled: - type: boolean - rotatedBindingTTL: - description: For how long to keep the rotated binding. - type: string - rotationFrequency: - description: What frequency to perform binding rotation. - type: string - required: - - enabled - type: object - externalName: - description: The name of the binding in Service Manager - type: string - parameters: - description: |- - Parameters for the binding. - - The Parameters field is NOT secret or secured in any way and should - NEVER be used to hold sensitive information. To set parameters that - contain secret information, you should ALWAYS store that information - in a Secret and use the ParametersFrom field. - type: object - x-kubernetes-preserve-unknown-fields: true - parametersFrom: - description: |- - List of sources to populate parameters. - If a top-level parameter name exists in multiples sources among - `Parameters` and `ParametersFrom` fields, it is - considered to be a user error in the specification - items: - description: ParametersFromSource represents the source of a set - of Parameters + x-kubernetes-preserve-unknown-fields: true + parametersFrom: + description: |- + List of sources to populate parameters. + If a top-level parameter name exists in multiples sources among + `Parameters` and `ParametersFrom` fields, it is + considered to be a user error in the specification + items: + description: ParametersFromSource represents the source of a set + of Parameters + properties: + secretKeyRef: + description: |- + The Secret key to select from. + The value must be a JSON object. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: The name of the secret in the pod's namespace + to select from. + type: string + required: + - key + - name + type: object + type: object + type: array + secretKey: + description: |- + SecretKey is used as the key inside the secret to store the credentials + returned by the broker encoded as json to support complex data structures. + If not specified, the credentials returned by the broker will be used + directly as the secrets data. + type: string + secretName: + description: SecretName is the name of the secret where credentials + will be stored + type: string + secretRootKey: + description: |- + SecretRootKey is used as the key inside the secret to store all binding + data including credentials returned by the broker and additional info under single key. + Convenient way to store whole binding data in single file when using `volumeMounts`. + type: string + serviceInstanceName: + description: The k8s name of the service instance to bind, should + be in the namespace of the binding + minLength: 1 + type: string + userInfo: + description: |- + UserInfo contains information about the user that last modified this + instance. This field is set by the API server and not settable by the + end-user. User-provided values for this field are not saved. properties: - secretKeyRef: - description: |- - The Secret key to select from. - The value must be a JSON object. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: The name of the secret in the pod's namespace - to select from. + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf can generate + items: type: string - required: - - key - - name + type: array + description: Any additional information provided by the authenticator. type: object - type: object - type: array - secretKey: - description: |- - SecretKey is used as the key inside the secret to store the credentials - returned by the broker encoded as json to support complex data structures. - If not specified, the credentials returned by the broker will be used - directly as the secrets data. - type: string - secretName: - description: SecretName is the name of the secret where credentials - will be stored - type: string - secretRootKey: - description: |- - SecretRootKey is used as the key inside the secret to store all binding - data including credentials returned by the broker and additional info under single key. - Convenient way to store whole binding data in single file when using `volumeMounts`. - type: string - serviceInstanceName: - description: The k8s name of the service instance to bind, should - be in the namespace of the binding - minLength: 1 - type: string - userInfo: - description: |- - UserInfo contains information about the user that last modified this - instance. This field is set by the API server and not settable by the - end-user. User-provided values for this field are not saved. - properties: - extra: - additionalProperties: - description: ExtraValue masks the value so protobuf can generate + groups: + description: The names of groups this user is a part of. items: type: string type: array - description: Any additional information provided by the authenticator. - type: object - groups: - description: The names of groups this user is a part of. - items: - type: string - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - A unique value that identifies this user across time. If this user is - deleted and another user by the same name is added, they will have - different UIDs. - type: string - username: - description: The name that uniquely identifies this user among - all active users. - type: string - type: object - required: - - serviceInstanceName - type: object - status: - description: ServiceBindingStatus defines the observed state of ServiceBinding - properties: - bindingID: - description: The generated ID of the binding, will be automatically - filled once the binding is created - type: string - conditions: - description: Service binding conditions - items: - description: Condition contains details for one aspect of the current - state of this API Resource. - properties: - lastTransitionTime: + x-kubernetes-list-type: atomic + uid: description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 + username: + description: The name that uniquely identifies this user among + all active users. type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: |- - reason contains a programmatic identifier indicating the reason for the condition's last transition. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type type: object - type: array - instanceID: - description: The ID of the instance in SM associated with binding - type: string - lastCredentialsRotationTime: - description: Indicates when binding secret was rotated - format: date-time - type: string - observedGeneration: - description: Last generation that was acted on - format: int64 - type: integer - operationType: - description: The operation type (CREATE/UPDATE/DELETE) for ongoing - operation - type: string - operationURL: - description: URL of ongoing operation for the service binding - type: string - ready: - description: Indicates whether binding is ready for usage - type: string - required: - - conditions - type: object - type: object - served: true - storage: false - subresources: - status: {} + required: + - serviceInstanceName + type: object + status: + description: ServiceBindingStatus defines the observed state of ServiceBinding + properties: + bindingID: + description: The generated ID of the binding, will be automatically + filled once the binding is created + type: string + conditions: + description: Service binding conditions + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + instanceID: + description: The ID of the instance in SM associated with binding + type: string + lastCredentialsRotationTime: + description: Indicates when binding secret was rotated + format: date-time + type: string + observedGeneration: + description: Last generation that was acted on + format: int64 + type: integer + operationType: + description: The operation type (CREATE/UPDATE/DELETE) for ongoing + operation + type: string + operationURL: + description: URL of ongoing operation for the service binding + type: string + ready: + description: Indicates whether binding is ready for usage + type: string + required: + - conditions + type: object + type: object + served: true + storage: false + subresources: + status: {} diff --git a/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml b/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml index e42dfb04..58c88ef2 100644 --- a/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml +++ b/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.15.0 name: serviceinstances.services.cloud.sap.com spec: group: services.cloud.sap.com @@ -14,505 +14,533 @@ spec: singular: serviceinstance scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.serviceOfferingName - name: Offering - type: string - - jsonPath: .spec.servicePlanName - name: Plan - type: string - - jsonPath: .spec.shared - name: shared - type: boolean - - jsonPath: .spec.dataCenter - name: dataCenter - type: string - - jsonPath: .status.conditions[0].reason - name: Status - type: string - - jsonPath: .status.ready - name: Ready - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.instanceID - name: ID - priority: 1 - type: string - - jsonPath: .status.conditions[0].message - name: Message - priority: 1 - type: string - name: v1 - schema: - openAPIV3Schema: - description: ServiceInstance is the Schema for the serviceinstances API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ServiceInstanceSpec defines the desired state of ServiceInstance - properties: - btpAccessCredentialsSecret: - description: The name of the btp access credentials secret - type: string - customTags: - description: List of custom tags describing the ServiceInstance, will - be copied to `ServiceBinding` secret in the key called `tags`. - items: + - additionalPrinterColumns: + - jsonPath: .spec.serviceOfferingName + name: Offering + type: string + - jsonPath: .spec.servicePlanName + name: Plan + type: string + - jsonPath: .spec.shared + name: shared + type: boolean + - jsonPath: .spec.dataCenter + name: dataCenter + type: string + - jsonPath: .status.conditions[0].reason + name: Status + type: string + - jsonPath: .status.ready + name: Ready + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.instanceID + name: ID + priority: 1 + type: string + - jsonPath: .status.conditions[0].message + name: Message + priority: 1 + type: string + name: v1 + schema: + openAPIV3Schema: + description: ServiceInstance is the Schema for the serviceinstances API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServiceInstanceSpec defines the desired state of ServiceInstance + properties: + btpAccessCredentialsSecret: + description: The name of the btp access credentials secret type: string - type: array - dataCenter: - description: The dataCenter in case service offering and plan name - exist in other data center and not on main - type: string - externalName: - description: The name of the instance in Service Manager - type: string - parameters: - description: |- - Provisioning parameters for the instance. - - The Parameters field is NOT secret or secured in any way and should - NEVER be used to hold sensitive information. To set parameters that - contain secret information, you should ALWAYS store that information - in a Secret and use the ParametersFrom field. - type: object - x-kubernetes-preserve-unknown-fields: true - parametersFrom: - description: |- - List of sources to populate parameters. - If a top-level parameter name exists in multiples sources among - `Parameters` and `ParametersFrom` fields, it is - considered to be a user error in the specification - items: - description: ParametersFromSource represents the source of a set - of Parameters + customTags: + description: List of custom tags describing the ServiceInstance, will + be copied to `ServiceBinding` secret in the key called `tags`. + items: + type: string + type: array + dataCenter: + description: The dataCenter in case service offering and plan name + exist in other data center and not on main + type: string + externalName: + description: The name of the instance in Service Manager + type: string + parameters: + description: |- + Provisioning parameters for the instance. + + + The Parameters field is NOT secret or secured in any way and should + NEVER be used to hold sensitive information. To set parameters that + contain secret information, you should ALWAYS store that information + in a Secret and use the ParametersFrom field. + type: object + x-kubernetes-preserve-unknown-fields: true + parametersFrom: + description: |- + List of sources to populate parameters. + If a top-level parameter name exists in multiples sources among + `Parameters` and `ParametersFrom` fields, it is + considered to be a user error in the specification + items: + description: ParametersFromSource represents the source of a set + of Parameters + properties: + secretKeyRef: + description: |- + The Secret key to select from. + The value must be a JSON object. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: The name of the secret in the pod's namespace + to select from. + type: string + required: + - key + - name + type: object + type: object + type: array + serviceOfferingName: + description: The name of the service offering + minLength: 1 + type: string + servicePlanID: + description: The plan ID in case service offering and plan name are + ambiguous + type: string + servicePlanName: + description: The name of the service plan + minLength: 1 + type: string + shared: + description: Indicates the desired shared state + type: boolean + watchParametersFromChanges: + description: indicate instance will update on secrets from parametersFrom + change + type: boolean + userInfo: + description: |- + UserInfo contains information about the user that last modified this + instance. This field is set by the API server and not settable by the + end-user. User-provided values for this field are not saved. properties: - secretKeyRef: - description: |- - The Secret key to select from. - The value must be a JSON object. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: The name of the secret in the pod's namespace - to select from. + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf can generate + items: type: string - required: - - key - - name + type: array + description: Any additional information provided by the authenticator. type: object - type: object - type: array - serviceOfferingName: - description: The name of the service offering - minLength: 1 - type: string - servicePlanID: - description: The plan ID in case service offering and plan name are - ambiguous - type: string - servicePlanName: - description: The name of the service plan - minLength: 1 - type: string - shared: - description: Indicates the desired shared state - type: boolean - userInfo: - description: |- - UserInfo contains information about the user that last modified this - instance. This field is set by the API server and not settable by the - end-user. User-provided values for this field are not saved. - properties: - extra: - additionalProperties: - description: ExtraValue masks the value so protobuf can generate + groups: + description: The names of groups this user is a part of. items: type: string type: array - description: Any additional information provided by the authenticator. - type: object - groups: - description: The names of groups this user is a part of. - items: - type: string - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - A unique value that identifies this user across time. If this user is - deleted and another user by the same name is added, they will have - different UIDs. - type: string - username: - description: The name that uniquely identifies this user among - all active users. - type: string - type: object - watchParametersFromChanges: - description: indicate instance will update on secrets from parametersFrom - change - type: boolean - required: - - serviceOfferingName - - servicePlanName - type: object - status: - description: ServiceInstanceStatus defines the observed state of ServiceInstance - properties: - conditions: - description: Service instance conditions - items: - description: Condition contains details for one aspect of the current - state of this API Resource. - properties: - lastTransitionTime: + x-kubernetes-list-type: atomic + uid: description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: |- - reason contains a programmatic identifier indicating the reason for the condition's last transition. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + username: + description: The name that uniquely identifies this user among + all active users. type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type type: object - type: array - forceReconcile: - description: if true need to update instance - type: boolean - hashedSpec: - description: HashedSpec is the hashed spec without the shared property - type: string - instanceID: - description: The generated ID of the instance, will be automatically - filled once the instance is created - type: string - operationType: - description: The operation type (CREATE/UPDATE/DELETE) for ongoing - operation - type: string - operationURL: - description: URL of ongoing operation for the service instance - type: string - ready: - description: Indicates whether instance is ready for usage - type: string - subaccountID: - description: The subaccount id of the service instance - type: string - tags: - description: Tags describing the ServiceInstance as provided in service - catalog, will be copied to `ServiceBinding` secret in the key called - `tags`. - items: + required: + - serviceOfferingName + - servicePlanName + type: object + status: + description: ServiceInstanceStatus defines the observed state of ServiceInstance + properties: + conditions: + description: Service instance conditions + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + forceReconcile: + description: if true need to update instance + type: boolean + hashedSpec: + description: HashedSpec is the hashed spec without the shared property + type: string + instanceID: + description: The generated ID of the instance, will be automatically + filled once the instance is created + type: string + operationType: + description: The operation type (CREATE/UPDATE/DELETE) for ongoing + operation + type: string + operationURL: + description: URL of ongoing operation for the service instance + type: string + ready: + description: Indicates whether instance is ready for usage + type: string + subaccountID: + description: The subaccount id of the service instance + type: string + tags: + description: Tags describing the ServiceInstance as provided in service + catalog, will be copied to `ServiceBinding` secret in the key called + `tags`. + items: + type: string + type: array + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.serviceOfferingName + name: Offering + type: string + - jsonPath: .spec.servicePlanName + name: Plan + type: string + - jsonPath: .status.conditions[0].reason + name: Status + type: string + - jsonPath: .status.ready + name: Ready + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.instanceID + name: ID + priority: 1 + type: string + - jsonPath: .status.conditions[0].message + name: Message + priority: 1 + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: ServiceInstance is the Schema for the serviceinstances API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServiceInstanceSpec defines the desired state of ServiceInstance + properties: + customTags: + description: List of custom tags describing the ServiceInstance, will + be copied to `ServiceBinding` secret in the key called `tags`. + items: + type: string + type: array + externalName: + description: The name of the instance in Service Manager + type: string + parameters: + description: |- + Provisioning parameters for the instance. + + + The Parameters field is NOT secret or secured in any way and should + NEVER be used to hold sensitive information. To set parameters that + contain secret information, you should ALWAYS store that information + in a Secret and use the ParametersFrom field. + type: object + x-kubernetes-preserve-unknown-fields: true + parametersFrom: + description: |- + List of sources to populate parameters. + If a top-level parameter name exists in multiples sources among + `Parameters` and `ParametersFrom` fields, it is + considered to be a user error in the specification + items: + description: ParametersFromSource represents the source of a set + of Parameters + properties: + secretKeyRef: + description: |- + The Secret key to select from. + The value must be a JSON object. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: The name of the secret in the pod's namespace + to select from. + type: string + required: + - key + - name + type: object + type: object + type: array + serviceOfferingName: + description: The name of the service offering + minLength: 1 + type: string + servicePlanID: + description: The plan ID in case service offering and plan name are + ambiguous type: string - type: array - required: - - conditions - type: object - type: object - served: true - storage: true - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.serviceOfferingName - name: Offering - type: string - - jsonPath: .spec.servicePlanName - name: Plan - type: string - - jsonPath: .status.conditions[0].reason - name: Status - type: string - - jsonPath: .status.ready - name: Ready - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.instanceID - name: ID - priority: 1 - type: string - - jsonPath: .status.conditions[0].message - name: Message - priority: 1 - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: ServiceInstance is the Schema for the serviceinstances API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ServiceInstanceSpec defines the desired state of ServiceInstance - properties: - customTags: - description: List of custom tags describing the ServiceInstance, will - be copied to `ServiceBinding` secret in the key called `tags`. - items: + servicePlanName: + description: The name of the service plan + minLength: 1 type: string - type: array - externalName: - description: The name of the instance in Service Manager - type: string - parameters: - description: |- - Provisioning parameters for the instance. - - The Parameters field is NOT secret or secured in any way and should - NEVER be used to hold sensitive information. To set parameters that - contain secret information, you should ALWAYS store that information - in a Secret and use the ParametersFrom field. - type: object - x-kubernetes-preserve-unknown-fields: true - parametersFrom: - description: |- - List of sources to populate parameters. - If a top-level parameter name exists in multiples sources among - `Parameters` and `ParametersFrom` fields, it is - considered to be a user error in the specification - items: - description: ParametersFromSource represents the source of a set - of Parameters + shared: + description: Indicates the desired shared state + type: boolean + userInfo: + description: |- + UserInfo contains information about the user that last modified this + instance. This field is set by the API server and not settable by the + end-user. User-provided values for this field are not saved. properties: - secretKeyRef: - description: |- - The Secret key to select from. - The value must be a JSON object. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: The name of the secret in the pod's namespace - to select from. + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf can generate + items: type: string - required: - - key - - name + type: array + description: Any additional information provided by the authenticator. type: object - type: object - type: array - serviceOfferingName: - description: The name of the service offering - minLength: 1 - type: string - servicePlanID: - description: The plan ID in case service offering and plan name are - ambiguous - type: string - servicePlanName: - description: The name of the service plan - minLength: 1 - type: string - shared: - description: Indicates the desired shared state - type: boolean - userInfo: - description: |- - UserInfo contains information about the user that last modified this - instance. This field is set by the API server and not settable by the - end-user. User-provided values for this field are not saved. - properties: - extra: - additionalProperties: - description: ExtraValue masks the value so protobuf can generate + groups: + description: The names of groups this user is a part of. items: type: string type: array - description: Any additional information provided by the authenticator. - type: object - groups: - description: The names of groups this user is a part of. - items: - type: string - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - A unique value that identifies this user across time. If this user is - deleted and another user by the same name is added, they will have - different UIDs. - type: string - username: - description: The name that uniquely identifies this user among - all active users. - type: string - type: object - required: - - serviceOfferingName - - servicePlanName - type: object - status: - description: ServiceInstanceStatus defines the observed state of ServiceInstance - properties: - conditions: - description: Service instance conditions - items: - description: Condition contains details for one aspect of the current - state of this API Resource. - properties: - lastTransitionTime: + x-kubernetes-list-type: atomic + uid: description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: |- - reason contains a programmatic identifier indicating the reason for the condition's last transition. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + username: + description: The name that uniquely identifies this user among + all active users. type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type type: object - type: array - instanceID: - description: The generated ID of the instance, will be automatically - filled once the instance is created - type: string - observedGeneration: - description: Last generation that was acted on - format: int64 - type: integer - operationType: - description: The operation type (CREATE/UPDATE/DELETE) for ongoing - operation - type: string - operationURL: - description: URL of ongoing operation for the service instance - type: string - ready: - description: Indicates whether instance is ready for usage - type: string - tags: - description: Tags describing the ServiceInstance as provided in service - catalog, will be copied to `ServiceBinding` secret in the key called - `tags`. - items: + required: + - serviceOfferingName + - servicePlanName + type: object + status: + description: ServiceInstanceStatus defines the observed state of ServiceInstance + properties: + conditions: + description: Service instance conditions + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + instanceID: + description: The generated ID of the instance, will be automatically + filled once the instance is created type: string - type: array - required: - - conditions - type: object - type: object - served: true - storage: false - subresources: - status: {} + observedGeneration: + description: Last generation that was acted on + format: int64 + type: integer + operationType: + description: The operation type (CREATE/UPDATE/DELETE) for ongoing + operation + type: string + operationURL: + description: URL of ongoing operation for the service instance + type: string + ready: + description: Indicates whether instance is ready for usage + type: string + tags: + description: Tags describing the ServiceInstance as provided in service + catalog, will be copied to `ServiceBinding` secret in the key called + `tags`. + items: + type: string + type: array + required: + - conditions + type: object + type: object + served: true + storage: false + subresources: + status: {} From 4e411ff603cfd1856bfdaa69d4637140b278dcc3 Mon Sep 17 00:00:00 2001 From: i065450 Date: Wed, 5 Feb 2025 12:02:38 +0200 Subject: [PATCH 7/8] fix lint --- config/crd/bases/services.cloud.sap.com_servicebindings.yaml | 2 +- config/crd/bases/services.cloud.sap.com_serviceinstances.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/crd/bases/services.cloud.sap.com_servicebindings.yaml b/config/crd/bases/services.cloud.sap.com_servicebindings.yaml index aaf901cd..30bf1003 100644 --- a/config/crd/bases/services.cloud.sap.com_servicebindings.yaml +++ b/config/crd/bases/services.cloud.sap.com_servicebindings.yaml @@ -559,4 +559,4 @@ spec: served: true storage: false subresources: - status: {} + status: {} \ No newline at end of file diff --git a/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml b/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml index 58c88ef2..6e85bab8 100644 --- a/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml +++ b/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml @@ -543,4 +543,4 @@ spec: served: true storage: false subresources: - status: {} + status: {} \ No newline at end of file From 7b2b86adcf26b8b4d0f044c1ac8baa2301afebc5 Mon Sep 17 00:00:00 2001 From: i065450 Date: Wed, 5 Feb 2025 12:06:02 +0200 Subject: [PATCH 8/8] fix lint --- ...ervices.cloud.sap.com_servicebindings.yaml | 1020 ++++++++--------- ...rvices.cloud.sap.com_serviceinstances.yaml | 986 ++++++++-------- 2 files changed, 975 insertions(+), 1031 deletions(-) diff --git a/config/crd/bases/services.cloud.sap.com_servicebindings.yaml b/config/crd/bases/services.cloud.sap.com_servicebindings.yaml index 30bf1003..7a0fb9eb 100644 --- a/config/crd/bases/services.cloud.sap.com_servicebindings.yaml +++ b/config/crd/bases/services.cloud.sap.com_servicebindings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: servicebindings.services.cloud.sap.com spec: group: services.cloud.sap.com @@ -14,549 +14,521 @@ spec: singular: servicebinding scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.serviceInstanceName - name: Instance - type: string - - jsonPath: .status.conditions[0].reason - name: Status - type: string - - jsonPath: .status.ready - name: Ready - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.bindingID - name: ID - priority: 1 - type: string - - jsonPath: .status.conditions[0].message - name: Message - priority: 1 - type: string - name: v1 - schema: - openAPIV3Schema: - description: ServiceBinding is the Schema for the servicebindings API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ServiceBindingSpec defines the desired state of ServiceBinding - properties: - credentialsRotationPolicy: - description: CredentialsRotationPolicy holds automatic credentials - rotation configuration. + - additionalPrinterColumns: + - jsonPath: .spec.serviceInstanceName + name: Instance + type: string + - jsonPath: .status.conditions[0].reason + name: Status + type: string + - jsonPath: .status.ready + name: Ready + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.bindingID + name: ID + priority: 1 + type: string + - jsonPath: .status.conditions[0].message + name: Message + priority: 1 + type: string + name: v1 + schema: + openAPIV3Schema: + description: ServiceBinding is the Schema for the servicebindings API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServiceBindingSpec defines the desired state of ServiceBinding + properties: + credentialsRotationPolicy: + description: CredentialsRotationPolicy holds automatic credentials + rotation configuration. + properties: + enabled: + type: boolean + rotatedBindingTTL: + description: For how long to keep the rotated binding. + type: string + rotationFrequency: + description: What frequency to perform binding rotation. + type: string + required: + - enabled + type: object + externalName: + description: The name of the binding in Service Manager + type: string + parameters: + description: |- + Parameters for the binding. + + The Parameters field is NOT secret or secured in any way and should + NEVER be used to hold sensitive information. To set parameters that + contain secret information, you should ALWAYS store that information + in a Secret and use the ParametersFrom field. + type: object + x-kubernetes-preserve-unknown-fields: true + parametersFrom: + description: |- + List of sources to populate parameters. + If a top-level parameter name exists in multiples sources among + `Parameters` and `ParametersFrom` fields, it is + considered to be a user error in the specification + items: + description: ParametersFromSource represents the source of a set + of Parameters properties: - enabled: - type: boolean - rotatedBindingTTL: - description: For how long to keep the rotated binding. - type: string - rotationFrequency: - description: What frequency to perform binding rotation. - type: string - required: - - enabled - type: object - externalName: - description: The name of the binding in Service Manager - type: string - parameters: - description: |- - Parameters for the binding. - - - The Parameters field is NOT secret or secured in any way and should - NEVER be used to hold sensitive information. To set parameters that - contain secret information, you should ALWAYS store that information - in a Secret and use the ParametersFrom field. - type: object - x-kubernetes-preserve-unknown-fields: true - parametersFrom: - description: |- - List of sources to populate parameters. - If a top-level parameter name exists in multiples sources among - `Parameters` and `ParametersFrom` fields, it is - considered to be a user error in the specification - items: - description: ParametersFromSource represents the source of a set - of Parameters - properties: - secretKeyRef: - description: |- - The Secret key to select from. - The value must be a JSON object. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: The name of the secret in the pod's namespace - to select from. - type: string - required: - - key - - name - type: object - type: object - type: array - secretKey: - description: |- - SecretKey is used as the key inside the secret to store the credentials - returned by the broker encoded as json to support complex data structures. - If not specified, the credentials returned by the broker will be used - directly as the secrets data. - type: string - secretName: - description: SecretName is the name of the secret where credentials - will be stored - type: string - secretRootKey: - description: |- - SecretRootKey is used as the key inside the secret to store all binding - data including credentials returned by the broker and additional info under single key. - Convenient way to store whole binding data in single file when using `volumeMounts`. - type: string - secretTemplate: - description: |- - SecretTemplate is a Go template that generates a custom Kubernetes - v1/Secret based on data from the service binding returned by Service Manager and the instance information. - The generated secret is used instead of the default secret. - This is useful if the consumer of service binding data expects them in - a specific format. - For Go templates see https://pkg.go.dev/text/template. - For supported funcs see: https://pkg.go.dev/text/template#hdr-Functions, https://masterminds.github.io/sprig/ - type: string - x-kubernetes-preserve-unknown-fields: true - serviceInstanceName: - description: The k8s name of the service instance to bind, should - be in the namespace of the binding - minLength: 1 - type: string - serviceInstanceNamespace: - description: The namespace of the referenced instance, if empty Binding's - namespace will be used - type: string - userInfo: - description: |- - UserInfo contains information about the user that last modified this - instance. This field is set by the API server and not settable by the - end-user. User-provided values for this field are not saved. - properties: - extra: - additionalProperties: - description: ExtraValue masks the value so protobuf can generate - items: + secretKeyRef: + description: |- + The Secret key to select from. + The value must be a JSON object. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: The name of the secret in the pod's namespace + to select from. type: string - type: array - description: Any additional information provided by the authenticator. + required: + - key + - name type: object - groups: - description: The names of groups this user is a part of. + type: object + type: array + secretKey: + description: |- + SecretKey is used as the key inside the secret to store the credentials + returned by the broker encoded as json to support complex data structures. + If not specified, the credentials returned by the broker will be used + directly as the secrets data. + type: string + secretName: + description: SecretName is the name of the secret where credentials + will be stored + type: string + secretRootKey: + description: |- + SecretRootKey is used as the key inside the secret to store all binding + data including credentials returned by the broker and additional info under single key. + Convenient way to store whole binding data in single file when using `volumeMounts`. + type: string + secretTemplate: + description: |- + SecretTemplate is a Go template that generates a custom Kubernetes + v1/Secret based on data from the service binding returned by Service Manager and the instance information. + The generated secret is used instead of the default secret. + This is useful if the consumer of service binding data expects them in + a specific format. + For Go templates see https://pkg.go.dev/text/template. + For supported funcs see: https://pkg.go.dev/text/template#hdr-Functions, https://masterminds.github.io/sprig/ + type: string + x-kubernetes-preserve-unknown-fields: true + serviceInstanceName: + description: The k8s name of the service instance to bind, should + be in the namespace of the binding + minLength: 1 + type: string + serviceInstanceNamespace: + description: The namespace of the referenced instance, if empty Binding's + namespace will be used + type: string + userInfo: + description: |- + UserInfo contains information about the user that last modified this + instance. This field is set by the API server and not settable by the + end-user. User-provided values for this field are not saved. + properties: + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf can generate items: type: string type: array - x-kubernetes-list-type: atomic - uid: + description: Any additional information provided by the authenticator. + type: object + groups: + description: The names of groups this user is a part of. + items: + type: string + type: array + x-kubernetes-list-type: atomic + uid: + description: |- + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. + type: string + username: + description: The name that uniquely identifies this user among + all active users. + type: string + type: object + required: + - serviceInstanceName + type: object + status: + description: ServiceBindingStatus defines the observed state of ServiceBinding + properties: + bindingID: + description: The generated ID of the binding, will be automatically + filled once the binding is created + type: string + conditions: + description: Service binding conditions + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + properties: + lastTransitionTime: description: |- - A unique value that identifies this user across time. If this user is - deleted and another user by the same name is added, they will have - different UIDs. + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time type: string - username: - description: The name that uniquely identifies this user among - all active users. + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 type: string - type: object - required: - - serviceInstanceName - type: object - status: - description: ServiceBindingStatus defines the observed state of ServiceBinding - properties: - bindingID: - description: The generated ID of the binding, will be automatically - filled once the binding is created - type: string - conditions: - description: Service binding conditions - items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: |- - reason contains a programmatic identifier indicating the reason for the condition's last transition. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - instanceID: - description: The ID of the instance in SM associated with binding - type: string - lastCredentialsRotationTime: - description: Indicates when binding secret was rotated - format: date-time - type: string - operationType: - description: The operation type (CREATE/UPDATE/DELETE) for ongoing - operation - type: string - operationURL: - description: URL of ongoing operation for the service binding - type: string - ready: - description: Indicates whether binding is ready for usage - type: string - subaccountID: - description: The subaccount id of the service binding - type: string - required: - - conditions - type: object - type: object - served: true - storage: true - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.serviceInstanceName - name: Instance - type: string - - jsonPath: .status.conditions[0].reason - name: Status - type: string - - jsonPath: .status.ready - name: Ready - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.bindingID - name: ID - priority: 1 - type: string - - jsonPath: .status.conditions[0].message - name: Message - priority: 1 - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: ServiceBinding is the Schema for the servicebindings API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ServiceBindingSpec defines the desired state of ServiceBinding - properties: - credentialsRotationPolicy: - description: CredentialsRotationPolicy holds automatic credentials - rotation configuration. - properties: - enabled: - type: boolean - rotatedBindingTTL: - description: For how long to keep the rotated binding. + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown type: string - rotationFrequency: - description: What frequency to perform binding rotation. + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - - enabled - type: object - externalName: - description: The name of the binding in Service Manager - type: string - parameters: - description: |- - Parameters for the binding. - - - The Parameters field is NOT secret or secured in any way and should - NEVER be used to hold sensitive information. To set parameters that - contain secret information, you should ALWAYS store that information - in a Secret and use the ParametersFrom field. + - lastTransitionTime + - message + - reason + - status + - type type: object - x-kubernetes-preserve-unknown-fields: true - parametersFrom: - description: |- - List of sources to populate parameters. - If a top-level parameter name exists in multiples sources among - `Parameters` and `ParametersFrom` fields, it is - considered to be a user error in the specification - items: - description: ParametersFromSource represents the source of a set - of Parameters - properties: - secretKeyRef: - description: |- - The Secret key to select from. - The value must be a JSON object. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: The name of the secret in the pod's namespace - to select from. - type: string - required: - - key - - name - type: object - type: object - type: array - secretKey: - description: |- - SecretKey is used as the key inside the secret to store the credentials - returned by the broker encoded as json to support complex data structures. - If not specified, the credentials returned by the broker will be used - directly as the secrets data. - type: string - secretName: - description: SecretName is the name of the secret where credentials - will be stored - type: string - secretRootKey: - description: |- - SecretRootKey is used as the key inside the secret to store all binding - data including credentials returned by the broker and additional info under single key. - Convenient way to store whole binding data in single file when using `volumeMounts`. - type: string - serviceInstanceName: - description: The k8s name of the service instance to bind, should - be in the namespace of the binding - minLength: 1 - type: string - userInfo: - description: |- - UserInfo contains information about the user that last modified this - instance. This field is set by the API server and not settable by the - end-user. User-provided values for this field are not saved. + type: array + instanceID: + description: The ID of the instance in SM associated with binding + type: string + lastCredentialsRotationTime: + description: Indicates when binding secret was rotated + format: date-time + type: string + operationType: + description: The operation type (CREATE/UPDATE/DELETE) for ongoing + operation + type: string + operationURL: + description: URL of ongoing operation for the service binding + type: string + ready: + description: Indicates whether binding is ready for usage + type: string + subaccountID: + description: The subaccount id of the service binding + type: string + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.serviceInstanceName + name: Instance + type: string + - jsonPath: .status.conditions[0].reason + name: Status + type: string + - jsonPath: .status.ready + name: Ready + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.bindingID + name: ID + priority: 1 + type: string + - jsonPath: .status.conditions[0].message + name: Message + priority: 1 + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: ServiceBinding is the Schema for the servicebindings API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServiceBindingSpec defines the desired state of ServiceBinding + properties: + credentialsRotationPolicy: + description: CredentialsRotationPolicy holds automatic credentials + rotation configuration. + properties: + enabled: + type: boolean + rotatedBindingTTL: + description: For how long to keep the rotated binding. + type: string + rotationFrequency: + description: What frequency to perform binding rotation. + type: string + required: + - enabled + type: object + externalName: + description: The name of the binding in Service Manager + type: string + parameters: + description: |- + Parameters for the binding. + + The Parameters field is NOT secret or secured in any way and should + NEVER be used to hold sensitive information. To set parameters that + contain secret information, you should ALWAYS store that information + in a Secret and use the ParametersFrom field. + type: object + x-kubernetes-preserve-unknown-fields: true + parametersFrom: + description: |- + List of sources to populate parameters. + If a top-level parameter name exists in multiples sources among + `Parameters` and `ParametersFrom` fields, it is + considered to be a user error in the specification + items: + description: ParametersFromSource represents the source of a set + of Parameters properties: - extra: - additionalProperties: - description: ExtraValue masks the value so protobuf can generate - items: + secretKeyRef: + description: |- + The Secret key to select from. + The value must be a JSON object. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: The name of the secret in the pod's namespace + to select from. type: string - type: array - description: Any additional information provided by the authenticator. + required: + - key + - name type: object - groups: - description: The names of groups this user is a part of. + type: object + type: array + secretKey: + description: |- + SecretKey is used as the key inside the secret to store the credentials + returned by the broker encoded as json to support complex data structures. + If not specified, the credentials returned by the broker will be used + directly as the secrets data. + type: string + secretName: + description: SecretName is the name of the secret where credentials + will be stored + type: string + secretRootKey: + description: |- + SecretRootKey is used as the key inside the secret to store all binding + data including credentials returned by the broker and additional info under single key. + Convenient way to store whole binding data in single file when using `volumeMounts`. + type: string + serviceInstanceName: + description: The k8s name of the service instance to bind, should + be in the namespace of the binding + minLength: 1 + type: string + userInfo: + description: |- + UserInfo contains information about the user that last modified this + instance. This field is set by the API server and not settable by the + end-user. User-provided values for this field are not saved. + properties: + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf can generate items: type: string type: array - x-kubernetes-list-type: atomic - uid: + description: Any additional information provided by the authenticator. + type: object + groups: + description: The names of groups this user is a part of. + items: + type: string + type: array + x-kubernetes-list-type: atomic + uid: + description: |- + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. + type: string + username: + description: The name that uniquely identifies this user among + all active users. + type: string + type: object + required: + - serviceInstanceName + type: object + status: + description: ServiceBindingStatus defines the observed state of ServiceBinding + properties: + bindingID: + description: The generated ID of the binding, will be automatically + filled once the binding is created + type: string + conditions: + description: Service binding conditions + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + properties: + lastTransitionTime: description: |- - A unique value that identifies this user across time. If this user is - deleted and another user by the same name is added, they will have - different UIDs. + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time type: string - username: - description: The name that uniquely identifies this user among - all active users. + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type type: object - required: - - serviceInstanceName - type: object - status: - description: ServiceBindingStatus defines the observed state of ServiceBinding - properties: - bindingID: - description: The generated ID of the binding, will be automatically - filled once the binding is created - type: string - conditions: - description: Service binding conditions - items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: |- - reason contains a programmatic identifier indicating the reason for the condition's last transition. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - instanceID: - description: The ID of the instance in SM associated with binding - type: string - lastCredentialsRotationTime: - description: Indicates when binding secret was rotated - format: date-time - type: string - observedGeneration: - description: Last generation that was acted on - format: int64 - type: integer - operationType: - description: The operation type (CREATE/UPDATE/DELETE) for ongoing - operation - type: string - operationURL: - description: URL of ongoing operation for the service binding - type: string - ready: - description: Indicates whether binding is ready for usage - type: string - required: - - conditions - type: object - type: object - served: true - storage: false - subresources: - status: {} \ No newline at end of file + type: array + instanceID: + description: The ID of the instance in SM associated with binding + type: string + lastCredentialsRotationTime: + description: Indicates when binding secret was rotated + format: date-time + type: string + observedGeneration: + description: Last generation that was acted on + format: int64 + type: integer + operationType: + description: The operation type (CREATE/UPDATE/DELETE) for ongoing + operation + type: string + operationURL: + description: URL of ongoing operation for the service binding + type: string + ready: + description: Indicates whether binding is ready for usage + type: string + required: + - conditions + type: object + type: object + served: true + storage: false + subresources: + status: {} diff --git a/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml b/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml index 6e85bab8..e42dfb04 100644 --- a/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml +++ b/config/crd/bases/services.cloud.sap.com_serviceinstances.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: serviceinstances.services.cloud.sap.com spec: group: services.cloud.sap.com @@ -14,533 +14,505 @@ spec: singular: serviceinstance scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.serviceOfferingName - name: Offering - type: string - - jsonPath: .spec.servicePlanName - name: Plan - type: string - - jsonPath: .spec.shared - name: shared - type: boolean - - jsonPath: .spec.dataCenter - name: dataCenter - type: string - - jsonPath: .status.conditions[0].reason - name: Status - type: string - - jsonPath: .status.ready - name: Ready - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.instanceID - name: ID - priority: 1 - type: string - - jsonPath: .status.conditions[0].message - name: Message - priority: 1 - type: string - name: v1 - schema: - openAPIV3Schema: - description: ServiceInstance is the Schema for the serviceinstances API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ServiceInstanceSpec defines the desired state of ServiceInstance - properties: - btpAccessCredentialsSecret: - description: The name of the btp access credentials secret + - additionalPrinterColumns: + - jsonPath: .spec.serviceOfferingName + name: Offering + type: string + - jsonPath: .spec.servicePlanName + name: Plan + type: string + - jsonPath: .spec.shared + name: shared + type: boolean + - jsonPath: .spec.dataCenter + name: dataCenter + type: string + - jsonPath: .status.conditions[0].reason + name: Status + type: string + - jsonPath: .status.ready + name: Ready + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.instanceID + name: ID + priority: 1 + type: string + - jsonPath: .status.conditions[0].message + name: Message + priority: 1 + type: string + name: v1 + schema: + openAPIV3Schema: + description: ServiceInstance is the Schema for the serviceinstances API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServiceInstanceSpec defines the desired state of ServiceInstance + properties: + btpAccessCredentialsSecret: + description: The name of the btp access credentials secret + type: string + customTags: + description: List of custom tags describing the ServiceInstance, will + be copied to `ServiceBinding` secret in the key called `tags`. + items: type: string - customTags: - description: List of custom tags describing the ServiceInstance, will - be copied to `ServiceBinding` secret in the key called `tags`. - items: - type: string - type: array - dataCenter: - description: The dataCenter in case service offering and plan name - exist in other data center and not on main - type: string - externalName: - description: The name of the instance in Service Manager - type: string - parameters: - description: |- - Provisioning parameters for the instance. - - - The Parameters field is NOT secret or secured in any way and should - NEVER be used to hold sensitive information. To set parameters that - contain secret information, you should ALWAYS store that information - in a Secret and use the ParametersFrom field. - type: object - x-kubernetes-preserve-unknown-fields: true - parametersFrom: - description: |- - List of sources to populate parameters. - If a top-level parameter name exists in multiples sources among - `Parameters` and `ParametersFrom` fields, it is - considered to be a user error in the specification - items: - description: ParametersFromSource represents the source of a set - of Parameters - properties: - secretKeyRef: - description: |- - The Secret key to select from. - The value must be a JSON object. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: The name of the secret in the pod's namespace - to select from. - type: string - required: - - key - - name - type: object - type: object - type: array - serviceOfferingName: - description: The name of the service offering - minLength: 1 - type: string - servicePlanID: - description: The plan ID in case service offering and plan name are - ambiguous - type: string - servicePlanName: - description: The name of the service plan - minLength: 1 - type: string - shared: - description: Indicates the desired shared state - type: boolean - watchParametersFromChanges: - description: indicate instance will update on secrets from parametersFrom - change - type: boolean - userInfo: - description: |- - UserInfo contains information about the user that last modified this - instance. This field is set by the API server and not settable by the - end-user. User-provided values for this field are not saved. + type: array + dataCenter: + description: The dataCenter in case service offering and plan name + exist in other data center and not on main + type: string + externalName: + description: The name of the instance in Service Manager + type: string + parameters: + description: |- + Provisioning parameters for the instance. + + The Parameters field is NOT secret or secured in any way and should + NEVER be used to hold sensitive information. To set parameters that + contain secret information, you should ALWAYS store that information + in a Secret and use the ParametersFrom field. + type: object + x-kubernetes-preserve-unknown-fields: true + parametersFrom: + description: |- + List of sources to populate parameters. + If a top-level parameter name exists in multiples sources among + `Parameters` and `ParametersFrom` fields, it is + considered to be a user error in the specification + items: + description: ParametersFromSource represents the source of a set + of Parameters properties: - extra: - additionalProperties: - description: ExtraValue masks the value so protobuf can generate - items: + secretKeyRef: + description: |- + The Secret key to select from. + The value must be a JSON object. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: The name of the secret in the pod's namespace + to select from. type: string - type: array - description: Any additional information provided by the authenticator. + required: + - key + - name type: object - groups: - description: The names of groups this user is a part of. + type: object + type: array + serviceOfferingName: + description: The name of the service offering + minLength: 1 + type: string + servicePlanID: + description: The plan ID in case service offering and plan name are + ambiguous + type: string + servicePlanName: + description: The name of the service plan + minLength: 1 + type: string + shared: + description: Indicates the desired shared state + type: boolean + userInfo: + description: |- + UserInfo contains information about the user that last modified this + instance. This field is set by the API server and not settable by the + end-user. User-provided values for this field are not saved. + properties: + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf can generate items: type: string type: array - x-kubernetes-list-type: atomic - uid: - description: |- - A unique value that identifies this user across time. If this user is - deleted and another user by the same name is added, they will have - different UIDs. - type: string - username: - description: The name that uniquely identifies this user among - all active users. - type: string - type: object - required: - - serviceOfferingName - - servicePlanName - type: object - status: - description: ServiceInstanceStatus defines the observed state of ServiceInstance - properties: - conditions: - description: Service instance conditions - items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: |- - reason contains a programmatic identifier indicating the reason for the condition's last transition. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type + description: Any additional information provided by the authenticator. type: object - type: array - forceReconcile: - description: if true need to update instance - type: boolean - hashedSpec: - description: HashedSpec is the hashed spec without the shared property - type: string - instanceID: - description: The generated ID of the instance, will be automatically - filled once the instance is created - type: string - operationType: - description: The operation type (CREATE/UPDATE/DELETE) for ongoing - operation - type: string - operationURL: - description: URL of ongoing operation for the service instance - type: string - ready: - description: Indicates whether instance is ready for usage - type: string - subaccountID: - description: The subaccount id of the service instance - type: string - tags: - description: Tags describing the ServiceInstance as provided in service - catalog, will be copied to `ServiceBinding` secret in the key called - `tags`. - items: + groups: + description: The names of groups this user is a part of. + items: + type: string + type: array + x-kubernetes-list-type: atomic + uid: + description: |- + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. type: string - type: array - required: - - conditions - type: object - type: object - served: true - storage: true - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.serviceOfferingName - name: Offering - type: string - - jsonPath: .spec.servicePlanName - name: Plan - type: string - - jsonPath: .status.conditions[0].reason - name: Status - type: string - - jsonPath: .status.ready - name: Ready - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.instanceID - name: ID - priority: 1 - type: string - - jsonPath: .status.conditions[0].message - name: Message - priority: 1 - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: ServiceInstance is the Schema for the serviceinstances API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ServiceInstanceSpec defines the desired state of ServiceInstance - properties: - customTags: - description: List of custom tags describing the ServiceInstance, will - be copied to `ServiceBinding` secret in the key called `tags`. - items: + username: + description: The name that uniquely identifies this user among + all active users. type: string - type: array - externalName: - description: The name of the instance in Service Manager - type: string - parameters: - description: |- - Provisioning parameters for the instance. - - - The Parameters field is NOT secret or secured in any way and should - NEVER be used to hold sensitive information. To set parameters that - contain secret information, you should ALWAYS store that information - in a Secret and use the ParametersFrom field. + type: object + watchParametersFromChanges: + description: indicate instance will update on secrets from parametersFrom + change + type: boolean + required: + - serviceOfferingName + - servicePlanName + type: object + status: + description: ServiceInstanceStatus defines the observed state of ServiceInstance + properties: + conditions: + description: Service instance conditions + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type type: object - x-kubernetes-preserve-unknown-fields: true - parametersFrom: - description: |- - List of sources to populate parameters. - If a top-level parameter name exists in multiples sources among - `Parameters` and `ParametersFrom` fields, it is - considered to be a user error in the specification - items: - description: ParametersFromSource represents the source of a set - of Parameters - properties: - secretKeyRef: - description: |- - The Secret key to select from. - The value must be a JSON object. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: The name of the secret in the pod's namespace - to select from. - type: string - required: - - key - - name - type: object - type: object - type: array - serviceOfferingName: - description: The name of the service offering - minLength: 1 - type: string - servicePlanID: - description: The plan ID in case service offering and plan name are - ambiguous + type: array + forceReconcile: + description: if true need to update instance + type: boolean + hashedSpec: + description: HashedSpec is the hashed spec without the shared property + type: string + instanceID: + description: The generated ID of the instance, will be automatically + filled once the instance is created + type: string + operationType: + description: The operation type (CREATE/UPDATE/DELETE) for ongoing + operation + type: string + operationURL: + description: URL of ongoing operation for the service instance + type: string + ready: + description: Indicates whether instance is ready for usage + type: string + subaccountID: + description: The subaccount id of the service instance + type: string + tags: + description: Tags describing the ServiceInstance as provided in service + catalog, will be copied to `ServiceBinding` secret in the key called + `tags`. + items: type: string - servicePlanName: - description: The name of the service plan - minLength: 1 + type: array + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.serviceOfferingName + name: Offering + type: string + - jsonPath: .spec.servicePlanName + name: Plan + type: string + - jsonPath: .status.conditions[0].reason + name: Status + type: string + - jsonPath: .status.ready + name: Ready + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.instanceID + name: ID + priority: 1 + type: string + - jsonPath: .status.conditions[0].message + name: Message + priority: 1 + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: ServiceInstance is the Schema for the serviceinstances API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ServiceInstanceSpec defines the desired state of ServiceInstance + properties: + customTags: + description: List of custom tags describing the ServiceInstance, will + be copied to `ServiceBinding` secret in the key called `tags`. + items: type: string - shared: - description: Indicates the desired shared state - type: boolean - userInfo: - description: |- - UserInfo contains information about the user that last modified this - instance. This field is set by the API server and not settable by the - end-user. User-provided values for this field are not saved. + type: array + externalName: + description: The name of the instance in Service Manager + type: string + parameters: + description: |- + Provisioning parameters for the instance. + + The Parameters field is NOT secret or secured in any way and should + NEVER be used to hold sensitive information. To set parameters that + contain secret information, you should ALWAYS store that information + in a Secret and use the ParametersFrom field. + type: object + x-kubernetes-preserve-unknown-fields: true + parametersFrom: + description: |- + List of sources to populate parameters. + If a top-level parameter name exists in multiples sources among + `Parameters` and `ParametersFrom` fields, it is + considered to be a user error in the specification + items: + description: ParametersFromSource represents the source of a set + of Parameters properties: - extra: - additionalProperties: - description: ExtraValue masks the value so protobuf can generate - items: + secretKeyRef: + description: |- + The Secret key to select from. + The value must be a JSON object. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: The name of the secret in the pod's namespace + to select from. type: string - type: array - description: Any additional information provided by the authenticator. + required: + - key + - name type: object - groups: - description: The names of groups this user is a part of. + type: object + type: array + serviceOfferingName: + description: The name of the service offering + minLength: 1 + type: string + servicePlanID: + description: The plan ID in case service offering and plan name are + ambiguous + type: string + servicePlanName: + description: The name of the service plan + minLength: 1 + type: string + shared: + description: Indicates the desired shared state + type: boolean + userInfo: + description: |- + UserInfo contains information about the user that last modified this + instance. This field is set by the API server and not settable by the + end-user. User-provided values for this field are not saved. + properties: + extra: + additionalProperties: + description: ExtraValue masks the value so protobuf can generate items: type: string type: array - x-kubernetes-list-type: atomic - uid: + description: Any additional information provided by the authenticator. + type: object + groups: + description: The names of groups this user is a part of. + items: + type: string + type: array + x-kubernetes-list-type: atomic + uid: + description: |- + A unique value that identifies this user across time. If this user is + deleted and another user by the same name is added, they will have + different UIDs. + type: string + username: + description: The name that uniquely identifies this user among + all active users. + type: string + type: object + required: + - serviceOfferingName + - servicePlanName + type: object + status: + description: ServiceInstanceStatus defines the observed state of ServiceInstance + properties: + conditions: + description: Service instance conditions + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + properties: + lastTransitionTime: description: |- - A unique value that identifies this user across time. If this user is - deleted and another user by the same name is added, they will have - different UIDs. + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time type: string - username: - description: The name that uniquely identifies this user among - all active users. + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type type: object - required: - - serviceOfferingName - - servicePlanName - type: object - status: - description: ServiceInstanceStatus defines the observed state of ServiceInstance - properties: - conditions: - description: Service instance conditions - items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: |- - reason contains a programmatic identifier indicating the reason for the condition's last transition. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - instanceID: - description: The generated ID of the instance, will be automatically - filled once the instance is created + type: array + instanceID: + description: The generated ID of the instance, will be automatically + filled once the instance is created + type: string + observedGeneration: + description: Last generation that was acted on + format: int64 + type: integer + operationType: + description: The operation type (CREATE/UPDATE/DELETE) for ongoing + operation + type: string + operationURL: + description: URL of ongoing operation for the service instance + type: string + ready: + description: Indicates whether instance is ready for usage + type: string + tags: + description: Tags describing the ServiceInstance as provided in service + catalog, will be copied to `ServiceBinding` secret in the key called + `tags`. + items: type: string - observedGeneration: - description: Last generation that was acted on - format: int64 - type: integer - operationType: - description: The operation type (CREATE/UPDATE/DELETE) for ongoing - operation - type: string - operationURL: - description: URL of ongoing operation for the service instance - type: string - ready: - description: Indicates whether instance is ready for usage - type: string - tags: - description: Tags describing the ServiceInstance as provided in service - catalog, will be copied to `ServiceBinding` secret in the key called - `tags`. - items: - type: string - type: array - required: - - conditions - type: object - type: object - served: true - storage: false - subresources: - status: {} \ No newline at end of file + type: array + required: + - conditions + type: object + type: object + served: true + storage: false + subresources: + status: {}