diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2715fb9..35aa401 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -81,3 +81,10 @@ updates: open-pull-requests-limit: 10 reviewers: - servicebinding/reference-implementation +- package-ecosystem: gomod + directory: "/hack/yq" + schedule: + interval: daily + open-pull-requests-limit: 10 + reviewers: + - servicebinding/reference-implementation diff --git a/Makefile b/Makefile index 401bcbf..d914ce1 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,7 @@ GOIMPORTS ?= go run -modfile hack/goimports/go.mod golang.org/x/tools/cmd/goimpo KAPP ?= go run -modfile hack/kapp/go.mod github.com/k14s/kapp/cmd/kapp KO ?= go run -modfile hack/ko/go.mod github.com/google/ko KUSTOMIZE ?= go run -modfile hack/kustomize/go.mod sigs.k8s.io/kustomize/kustomize/v4 +YQ ?= go run -modfile hack/yq/go.mod github.com/mikefarah/yq/v4 KAPP_APP ?= servicebinding-runtime KAPP_APP_NAMESPACE ?= default @@ -51,12 +52,16 @@ help: ## Display this help. ##@ Development .PHONY: manifests -manifests: ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects. - $(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases +manifests: internal-manifests ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects. @rm -rf config/crd/bases/_*.yaml + $(foreach file,$(wildcard config/crd/bases/*.yaml),$(shell $(YQ) -i 'del(.metadata.annotations["controller-gen.kubebuilder.io/version"]) | del(.metadata.annotations | select(length==0))' ${file})) cat hack/boilerplate.yaml.txt > config/servicebinding-runtime.yaml $(KUSTOMIZE) build config/default >> config/servicebinding-runtime.yaml +.PHONY: internal-manifests +internal-manifests: + $(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases + .PHONY: generate generate: ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations. $(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..." diff --git a/config/crd/bases/servicebinding.io_clusterworkloadresourcemappings.yaml b/config/crd/bases/servicebinding.io_clusterworkloadresourcemappings.yaml index 54a7e14..38c01ac 100644 --- a/config/crd/bases/servicebinding.io_clusterworkloadresourcemappings.yaml +++ b/config/crd/bases/servicebinding.io_clusterworkloadresourcemappings.yaml @@ -2,8 +2,6 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.20.0 name: clusterworkloadresourcemappings.servicebinding.io spec: group: servicebinding.io @@ -14,309 +12,293 @@ spec: singular: clusterworkloadresourcemapping scope: Cluster versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1 - schema: - openAPIV3Schema: - description: ClusterWorkloadResourceMapping is the Schema for the clusterworkloadresourcemappings - 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: ClusterWorkloadResourceMappingSpec defines the desired state - of ClusterWorkloadResourceMapping - properties: - versions: - description: Versions is the collection of versions for a given resource, - with mappings. - items: - description: |- - ClusterWorkloadResourceMappingTemplate defines the mapping for a specific version of an workload resource to a - logical PodTemplateSpec-like structure. - properties: - annotations: - description: |- - Annotations is a Restricted JSONPath that references the annotations map within the workload resource. These - annotations must end up in the resulting Pod, and are generally not the workload resource's annotations. - Defaults to `.spec.template.metadata.annotations`. - type: string - containers: - description: |- - Containers is the collection of mappings to container-like fragments of the workload resource. Defaults to - mappings appropriate for a PodSpecable resource. - items: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: ClusterWorkloadResourceMapping is the Schema for the clusterworkloadresourcemappings 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: ClusterWorkloadResourceMappingSpec defines the desired state of ClusterWorkloadResourceMapping + properties: + versions: + description: Versions is the collection of versions for a given resource, with mappings. + items: + description: |- + ClusterWorkloadResourceMappingTemplate defines the mapping for a specific version of an workload resource to a + logical PodTemplateSpec-like structure. + properties: + annotations: description: |- - ClusterWorkloadResourceMappingContainer defines the mapping for a specific fragment of an workload resource - to a Container-like structure. + Annotations is a Restricted JSONPath that references the annotations map within the workload resource. These + annotations must end up in the resulting Pod, and are generally not the workload resource's annotations. + Defaults to `.spec.template.metadata.annotations`. + type: string + containers: + description: |- + Containers is the collection of mappings to container-like fragments of the workload resource. Defaults to + mappings appropriate for a PodSpecable resource. + items: + description: |- + ClusterWorkloadResourceMappingContainer defines the mapping for a specific fragment of an workload resource + to a Container-like structure. - Each mapping defines exactly one path that may match multiple container-like fragments within the workload - resource. For each object matching the path the name, env and volumeMounts expressions are resolved to find those - structures. - properties: - env: - description: |- - Env is a Restricted JSONPath that references the slice of environment variables for the container with the - container-like workload resource fragment. The referenced location is created if it does not exist. Defaults - to `.envs`. - type: string - name: - description: |- - Name is a Restricted JSONPath that references the name of the container with the container-like workload resource - fragment. If not defined, container name filtering is ignored. - type: string - path: - description: Path is the JSONPath within the workload - resource that matches an existing fragment that is container-like. - type: string - volumeMounts: - description: |- - VolumeMounts is a Restricted JSONPath that references the slice of volume mounts for the container with the - container-like workload resource fragment. The referenced location is created if it does not exist. Defaults - to `.volumeMounts`. - type: string - required: - - path - type: object - type: array - version: - description: Version is the version of the workload resource - that this mapping is for. - type: string - volumes: - description: |- - Volumes is a Restricted JSONPath that references the slice of volumes within the workload resource. Defaults to - `.spec.template.spec.volumes`. - type: string - required: - - version - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: {} - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - deprecated: true - deprecationWarning: servicebinding.io/v1alpha3 is deprecated and will be removed - in a future release, use v1 instead - name: v1alpha3 - schema: - openAPIV3Schema: - description: ClusterWorkloadResourceMapping is the Schema for the clusterworkloadresourcemappings - 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: ClusterWorkloadResourceMappingSpec defines the desired state - of ClusterWorkloadResourceMapping - properties: - versions: - description: Versions is the collection of versions for a given resource, - with mappings. - items: - description: |- - ClusterWorkloadResourceMappingTemplate defines the mapping for a specific version of an workload resource to a - logical PodTemplateSpec-like structure. - properties: - annotations: - description: |- - Annotations is a Restricted JSONPath that references the annotations map within the workload resource. These - annotations must end up in the resulting Pod, and are generally not the workload resource's annotations. - Defaults to `.spec.template.metadata.annotations`. - type: string - containers: - description: |- - Containers is the collection of mappings to container-like fragments of the workload resource. Defaults to - mappings appropriate for a PodSpecable resource. - items: + Each mapping defines exactly one path that may match multiple container-like fragments within the workload + resource. For each object matching the path the name, env and volumeMounts expressions are resolved to find those + structures. + properties: + env: + description: |- + Env is a Restricted JSONPath that references the slice of environment variables for the container with the + container-like workload resource fragment. The referenced location is created if it does not exist. Defaults + to `.envs`. + type: string + name: + description: |- + Name is a Restricted JSONPath that references the name of the container with the container-like workload resource + fragment. If not defined, container name filtering is ignored. + type: string + path: + description: Path is the JSONPath within the workload resource that matches an existing fragment that is container-like. + type: string + volumeMounts: + description: |- + VolumeMounts is a Restricted JSONPath that references the slice of volume mounts for the container with the + container-like workload resource fragment. The referenced location is created if it does not exist. Defaults + to `.volumeMounts`. + type: string + required: + - path + type: object + type: array + version: + description: Version is the version of the workload resource that this mapping is for. + type: string + volumes: + description: |- + Volumes is a Restricted JSONPath that references the slice of volumes within the workload resource. Defaults to + `.spec.template.spec.volumes`. + type: string + required: + - version + type: object + type: array + type: object + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: servicebinding.io/v1alpha3 is deprecated and will be removed in a future release, use v1 instead + name: v1alpha3 + schema: + openAPIV3Schema: + description: ClusterWorkloadResourceMapping is the Schema for the clusterworkloadresourcemappings 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: ClusterWorkloadResourceMappingSpec defines the desired state of ClusterWorkloadResourceMapping + properties: + versions: + description: Versions is the collection of versions for a given resource, with mappings. + items: + description: |- + ClusterWorkloadResourceMappingTemplate defines the mapping for a specific version of an workload resource to a + logical PodTemplateSpec-like structure. + properties: + annotations: + description: |- + Annotations is a Restricted JSONPath that references the annotations map within the workload resource. These + annotations must end up in the resulting Pod, and are generally not the workload resource's annotations. + Defaults to `.spec.template.metadata.annotations`. + type: string + containers: description: |- - ClusterWorkloadResourceMappingContainer defines the mapping for a specific fragment of an workload resource - to a Container-like structure. + Containers is the collection of mappings to container-like fragments of the workload resource. Defaults to + mappings appropriate for a PodSpecable resource. + items: + description: |- + ClusterWorkloadResourceMappingContainer defines the mapping for a specific fragment of an workload resource + to a Container-like structure. - Each mapping defines exactly one path that may match multiple container-like fragments within the workload - resource. For each object matching the path the name, env and volumeMounts expressions are resolved to find those - structures. - properties: - env: - description: |- - Env is a Restricted JSONPath that references the slice of environment variables for the container with the - container-like workload resource fragment. The referenced location is created if it does not exist. Defaults - to `.envs`. - type: string - name: - description: |- - Name is a Restricted JSONPath that references the name of the container with the container-like workload resource - fragment. If not defined, container name filtering is ignored. - type: string - path: - description: Path is the JSONPath within the workload - resource that matches an existing fragment that is container-like. - type: string - volumeMounts: - description: |- - VolumeMounts is a Restricted JSONPath that references the slice of volume mounts for the container with the - container-like workload resource fragment. The referenced location is created if it does not exist. Defaults - to `.volumeMounts`. - type: string - required: - - path - type: object - type: array - version: - description: Version is the version of the workload resource - that this mapping is for. - type: string - volumes: - description: |- - Volumes is a Restricted JSONPath that references the slice of volumes within the workload resource. Defaults to - `.spec.template.spec.volumes`. - type: string - required: - - version - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: {} - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: ClusterWorkloadResourceMapping is the Schema for the clusterworkloadresourcemappings - 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: ClusterWorkloadResourceMappingSpec defines the desired state - of ClusterWorkloadResourceMapping - properties: - versions: - description: Versions is the collection of versions for a given resource, - with mappings. - items: - description: |- - ClusterWorkloadResourceMappingTemplate defines the mapping for a specific version of an workload resource to a - logical PodTemplateSpec-like structure. - properties: - annotations: - description: |- - Annotations is a Restricted JSONPath that references the annotations map within the workload resource. These - annotations must end up in the resulting Pod, and are generally not the workload resource's annotations. - Defaults to `.spec.template.metadata.annotations`. - type: string - containers: - description: |- - Containers is the collection of mappings to container-like fragments of the workload resource. Defaults to - mappings appropriate for a PodSpecable resource. - items: + Each mapping defines exactly one path that may match multiple container-like fragments within the workload + resource. For each object matching the path the name, env and volumeMounts expressions are resolved to find those + structures. + properties: + env: + description: |- + Env is a Restricted JSONPath that references the slice of environment variables for the container with the + container-like workload resource fragment. The referenced location is created if it does not exist. Defaults + to `.envs`. + type: string + name: + description: |- + Name is a Restricted JSONPath that references the name of the container with the container-like workload resource + fragment. If not defined, container name filtering is ignored. + type: string + path: + description: Path is the JSONPath within the workload resource that matches an existing fragment that is container-like. + type: string + volumeMounts: + description: |- + VolumeMounts is a Restricted JSONPath that references the slice of volume mounts for the container with the + container-like workload resource fragment. The referenced location is created if it does not exist. Defaults + to `.volumeMounts`. + type: string + required: + - path + type: object + type: array + version: + description: Version is the version of the workload resource that this mapping is for. + type: string + volumes: description: |- - ClusterWorkloadResourceMappingContainer defines the mapping for a specific fragment of an workload resource - to a Container-like structure. + Volumes is a Restricted JSONPath that references the slice of volumes within the workload resource. Defaults to + `.spec.template.spec.volumes`. + type: string + required: + - version + type: object + type: array + type: object + type: object + served: true + storage: false + subresources: {} + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: ClusterWorkloadResourceMapping is the Schema for the clusterworkloadresourcemappings 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: ClusterWorkloadResourceMappingSpec defines the desired state of ClusterWorkloadResourceMapping + properties: + versions: + description: Versions is the collection of versions for a given resource, with mappings. + items: + description: |- + ClusterWorkloadResourceMappingTemplate defines the mapping for a specific version of an workload resource to a + logical PodTemplateSpec-like structure. + properties: + annotations: + description: |- + Annotations is a Restricted JSONPath that references the annotations map within the workload resource. These + annotations must end up in the resulting Pod, and are generally not the workload resource's annotations. + Defaults to `.spec.template.metadata.annotations`. + type: string + containers: + description: |- + Containers is the collection of mappings to container-like fragments of the workload resource. Defaults to + mappings appropriate for a PodSpecable resource. + items: + description: |- + ClusterWorkloadResourceMappingContainer defines the mapping for a specific fragment of an workload resource + to a Container-like structure. - Each mapping defines exactly one path that may match multiple container-like fragments within the workload - resource. For each object matching the path the name, env and volumeMounts expressions are resolved to find those - structures. - properties: - env: - description: |- - Env is a Restricted JSONPath that references the slice of environment variables for the container with the - container-like workload resource fragment. The referenced location is created if it does not exist. Defaults - to `.envs`. - type: string - name: - description: |- - Name is a Restricted JSONPath that references the name of the container with the container-like workload resource - fragment. If not defined, container name filtering is ignored. - type: string - path: - description: Path is the JSONPath within the workload - resource that matches an existing fragment that is container-like. - type: string - volumeMounts: - description: |- - VolumeMounts is a Restricted JSONPath that references the slice of volume mounts for the container with the - container-like workload resource fragment. The referenced location is created if it does not exist. Defaults - to `.volumeMounts`. - type: string - required: - - path - type: object - type: array - version: - description: Version is the version of the workload resource - that this mapping is for. - type: string - volumes: - description: |- - Volumes is a Restricted JSONPath that references the slice of volumes within the workload resource. Defaults to - `.spec.template.spec.volumes`. - type: string - required: - - version - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: {} + Each mapping defines exactly one path that may match multiple container-like fragments within the workload + resource. For each object matching the path the name, env and volumeMounts expressions are resolved to find those + structures. + properties: + env: + description: |- + Env is a Restricted JSONPath that references the slice of environment variables for the container with the + container-like workload resource fragment. The referenced location is created if it does not exist. Defaults + to `.envs`. + type: string + name: + description: |- + Name is a Restricted JSONPath that references the name of the container with the container-like workload resource + fragment. If not defined, container name filtering is ignored. + type: string + path: + description: Path is the JSONPath within the workload resource that matches an existing fragment that is container-like. + type: string + volumeMounts: + description: |- + VolumeMounts is a Restricted JSONPath that references the slice of volume mounts for the container with the + container-like workload resource fragment. The referenced location is created if it does not exist. Defaults + to `.volumeMounts`. + type: string + required: + - path + type: object + type: array + version: + description: Version is the version of the workload resource that this mapping is for. + type: string + volumes: + description: |- + Volumes is a Restricted JSONPath that references the slice of volumes within the workload resource. Defaults to + `.spec.template.spec.volumes`. + type: string + required: + - version + type: object + type: array + type: object + type: object + served: true + storage: false + subresources: {} diff --git a/config/crd/bases/servicebinding.io_servicebindings.yaml b/config/crd/bases/servicebinding.io_servicebindings.yaml index ef2a3ea..46f718f 100644 --- a/config/crd/bases/servicebinding.io_servicebindings.yaml +++ b/config/crd/bases/servicebinding.io_servicebindings.yaml @@ -2,8 +2,6 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.20.0 name: servicebindings.servicebinding.io spec: group: servicebinding.io @@ -14,756 +12,722 @@ spec: singular: servicebinding scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .status.binding.name - name: Secret - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Reason - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - 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: - env: - description: Env is the collection of mappings from Secret entries - to environment variables - items: - description: EnvMapping defines a mapping from the value of a Secret - entry to an environment variable + - additionalPrinterColumns: + - jsonPath: .status.binding.name + name: Secret + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].reason + name: Reason + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + 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: + env: + description: Env is the collection of mappings from Secret entries to environment variables + items: + description: EnvMapping defines a mapping from the value of a Secret entry to an environment variable + properties: + key: + description: Key is the key in the Secret that will be exposed + type: string + name: + description: Name is the name of the environment variable + type: string + required: + - key + - name + type: object + type: array + name: + description: Name is the name of the service as projected into the workload container. Defaults to .metadata.name. + type: string + provider: + description: Provider is the provider of the service as projected into the workload container + type: string + service: + description: Service is a reference to an object that fulfills the ProvisionedService duck type properties: - key: - description: Key is the key in the Secret that will be exposed + apiVersion: + description: API version of the referent. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: Name is the name of the environment variable + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string required: - - key - - name + - apiVersion + - kind + - name type: object - type: array - name: - description: Name is the name of the service as projected into the - workload container. Defaults to .metadata.name. - type: string - provider: - description: Provider is the provider of the service as projected - into the workload container - type: string - service: - description: Service is a reference to an object that fulfills the - ProvisionedService duck type - properties: - apiVersion: - description: API version of the referent. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - required: - - apiVersion - - kind - - name - type: object - type: - description: Type is the type of the service as projected into the - workload container - type: string - workload: - description: Workload is a reference to an object - properties: - apiVersion: - description: API version of the referent. - type: string - containers: - description: Containers describes which containers in a Pod should - be bound to - items: - type: string - type: array - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - selector: - description: Selector is a query that selects the workload or - workloads to bind the service to - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - apiVersion - - kind - type: object - required: - - service - - workload - type: object - status: - description: ServiceBindingStatus defines the observed state of ServiceBinding - properties: - binding: - description: Binding exposes the projected secret for this ServiceBinding - properties: - name: - description: |- - Name of the referent secret. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - required: - - name - type: object - conditions: - description: Conditions are the conditions of this ServiceBinding - items: - description: Condition contains details for one aspect of the current - state of this API Resource. + type: + description: Type is the type of the service as projected into the workload container + type: string + workload: + description: Workload is a reference to an object 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 + apiVersion: + description: API version of the referent. type: string - message: + containers: + description: Containers describes which containers in a Pod should be bound to + items: + type: string + type: array + kind: description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 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: + name: 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])$ + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string + selector: + description: Selector is a query that selects the workload or workloads to bind the service to + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic required: - - lastTransitionTime - - message - - reason - - status - - type + - apiVersion + - kind type: object - type: array - observedGeneration: - description: |- - ObservedGeneration is the 'Generation' of the ServiceBinding that - was last processed by the controller. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .status.binding.name - name: Secret - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Reason - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - deprecated: true - deprecationWarning: servicebinding.io/v1alpha3 is deprecated and will be removed - in a future release, use v1 instead - name: v1alpha3 - 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: - env: - description: Env is the collection of mappings from Secret entries - to environment variables - items: - description: EnvMapping defines a mapping from the value of a Secret - entry to an environment variable + required: + - service + - workload + type: object + status: + description: ServiceBindingStatus defines the observed state of ServiceBinding + properties: + binding: + description: Binding exposes the projected secret for this ServiceBinding properties: - key: - description: Key is the key in the Secret that will be exposed - type: string name: - description: Name is the name of the environment variable + description: |- + Name of the referent secret. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string required: - - key - - name + - name type: object - type: array - name: - description: Name is the name of the service as projected into the - workload container. Defaults to .metadata.name. - type: string - provider: - description: Provider is the provider of the service as projected - into the workload container - type: string - service: - description: Service is a reference to an object that fulfills the - ProvisionedService duck type - properties: - apiVersion: - description: API version of the referent. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - required: - - apiVersion - - kind - - name - type: object - type: - description: Type is the type of the service as projected into the - workload container - type: string - workload: - description: Workload is a reference to an object - properties: - apiVersion: - description: API version of the referent. - type: string - containers: - description: Containers describes which containers in a Pod should - be bound to - items: - type: string - type: array - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - selector: - description: Selector is a query that selects the workload or - workloads to bind the service to + conditions: + description: Conditions are the conditions of this ServiceBinding + items: + description: Condition contains details for one aspect of the current state of this API Resource. properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string + 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: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object + 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 + observedGeneration: + description: |- + ObservedGeneration is the 'Generation' of the ServiceBinding that + was last processed by the controller. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.binding.name + name: Secret + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].reason + name: Reason + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: servicebinding.io/v1alpha3 is deprecated and will be removed in a future release, use v1 instead + name: v1alpha3 + 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: + env: + description: Env is the collection of mappings from Secret entries to environment variables + items: + description: EnvMapping defines a mapping from the value of a Secret entry to an environment variable + properties: + key: + description: Key is the key in the Secret that will be exposed + type: string + name: + description: Name is the name of the environment variable + type: string + required: + - key + - name type: object - x-kubernetes-map-type: atomic - required: - - apiVersion - - kind - type: object - required: - - service - - workload - type: object - status: - description: ServiceBindingStatus defines the observed state of ServiceBinding - properties: - binding: - description: Binding exposes the projected secret for this ServiceBinding - properties: - name: - description: |- - Name of the referent secret. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - required: - - name - type: object - conditions: - description: Conditions are the conditions of this ServiceBinding - items: - description: Condition contains details for one aspect of the current - state of this API Resource. + type: array + name: + description: Name is the name of the service as projected into the workload container. Defaults to .metadata.name. + type: string + provider: + description: Provider is the provider of the service as projected into the workload container + type: string + service: + description: Service is a reference to an object that fulfills the ProvisionedService duck type 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 + apiVersion: + description: API version of the referent. type: string - message: + kind: description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 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: + name: 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])$ + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string required: - - lastTransitionTime - - message - - reason - - status - - type + - apiVersion + - kind + - name type: object - type: array - observedGeneration: - description: |- - ObservedGeneration is the 'Generation' of the ServiceBinding that - was last processed by the controller. - format: int64 - type: integer - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .status.binding.name - name: Secret - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Reason - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: - env: - description: Env is the collection of mappings from Secret entries - to environment variables - items: - description: EnvMapping defines a mapping from the value of a Secret - entry to an environment variable + type: + description: Type is the type of the service as projected into the workload container + type: string + workload: + description: Workload is a reference to an object properties: - key: - description: Key is the key in the Secret that will be exposed + apiVersion: + description: API version of the referent. + type: string + containers: + description: Containers describes which containers in a Pod should be bound to + items: + type: string + type: array + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: Name is the name of the environment variable + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string + selector: + description: Selector is a query that selects the workload or workloads to bind the service to + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic required: - - key - - name + - apiVersion + - kind type: object - type: array - name: - description: Name is the name of the service as projected into the - workload container. Defaults to .metadata.name. - type: string - provider: - description: Provider is the provider of the service as projected - into the workload container - type: string - service: - description: Service is a reference to an object that fulfills the - ProvisionedService duck type - properties: - apiVersion: - description: API version of the referent. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - required: - - apiVersion - - kind - - name - type: object - type: - description: Type is the type of the service as projected into the - workload container - type: string - workload: - description: Workload is a reference to an object - properties: - apiVersion: - description: API version of the referent. - type: string - containers: - description: Containers describes which containers in a Pod should - be bound to - items: + required: + - service + - workload + type: object + status: + description: ServiceBindingStatus defines the observed state of ServiceBinding + properties: + binding: + description: Binding exposes the projected secret for this ServiceBinding + properties: + name: + description: |- + Name of the referent secret. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string - type: array - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - selector: - description: Selector is a query that selects the workload or - workloads to bind the service to + required: + - name + type: object + conditions: + description: Conditions are the conditions of this ServiceBinding + items: + description: Condition contains details for one aspect of the current state of this API Resource. properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string + 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: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object + 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 + observedGeneration: + description: |- + ObservedGeneration is the 'Generation' of the ServiceBinding that + was last processed by the controller. + format: int64 + type: integer + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.binding.name + name: Secret + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].reason + name: Reason + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + 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: + env: + description: Env is the collection of mappings from Secret entries to environment variables + items: + description: EnvMapping defines a mapping from the value of a Secret entry to an environment variable + properties: + key: + description: Key is the key in the Secret that will be exposed + type: string + name: + description: Name is the name of the environment variable + type: string + required: + - key + - name type: object - x-kubernetes-map-type: atomic - required: - - apiVersion - - kind - type: object - required: - - service - - workload - type: object - status: - description: ServiceBindingStatus defines the observed state of ServiceBinding - properties: - binding: - description: Binding exposes the projected secret for this ServiceBinding - properties: - name: - description: |- - Name of the referent secret. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - required: - - name - type: object - conditions: - description: Conditions are the conditions of this ServiceBinding - items: - description: Condition contains details for one aspect of the current - state of this API Resource. + type: array + name: + description: Name is the name of the service as projected into the workload container. Defaults to .metadata.name. + type: string + provider: + description: Provider is the provider of the service as projected into the workload container + type: string + service: + description: Service is a reference to an object that fulfills the ProvisionedService duck type 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 + apiVersion: + description: API version of the referent. type: string - message: + kind: description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string - observedGeneration: + name: 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: + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + required: + - apiVersion + - kind + - name + type: object + type: + description: Type is the type of the service as projected into the workload container + type: string + workload: + description: Workload is a reference to an object + properties: + apiVersion: + description: API version of the referent. + type: string + containers: + description: Containers describes which containers in a Pod should be bound to + items: + type: string + type: array + kind: 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_])?$ + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 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])$ + selector: + description: Selector is a query that selects the workload or workloads to bind the service to + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + required: + - apiVersion + - kind + type: object + required: + - service + - workload + type: object + status: + description: ServiceBindingStatus defines the observed state of ServiceBinding + properties: + binding: + description: Binding exposes the projected secret for this ServiceBinding + properties: + name: + description: |- + Name of the referent secret. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string required: - - lastTransitionTime - - message - - reason - - status - - type + - name type: object - type: array - observedGeneration: - description: |- - ObservedGeneration is the 'Generation' of the ServiceBinding that - was last processed by the controller. - format: int64 - type: integer - type: object - type: object - served: true - storage: false - subresources: - status: {} + conditions: + description: Conditions are the conditions of this ServiceBinding + 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 + type: array + observedGeneration: + description: |- + ObservedGeneration is the 'Generation' of the ServiceBinding that + was last processed by the controller. + format: int64 + type: integer + type: object + type: object + served: true + storage: false + subresources: + status: {} diff --git a/config/servicebinding-runtime.yaml b/config/servicebinding-runtime.yaml index edc722a..9514256 100644 --- a/config/servicebinding-runtime.yaml +++ b/config/servicebinding-runtime.yaml @@ -21,8 +21,6 @@ metadata: apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.20.0 name: clusterworkloadresourcemappings.servicebinding.io spec: group: servicebinding.io @@ -343,8 +341,6 @@ spec: apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.20.0 name: servicebindings.servicebinding.io spec: group: servicebinding.io diff --git a/hack/controller-gen/go.mod b/hack/controller-gen/go.mod index e029a27..7864e3c 100644 --- a/hack/controller-gen/go.mod +++ b/hack/controller-gen/go.mod @@ -2,7 +2,7 @@ module github.com/servicebinding/runtime/hack/controller-gen go 1.25.0 -require sigs.k8s.io/controller-tools v0.20.0 +require sigs.k8s.io/controller-tools v0.20.1 require ( github.com/fatih/color v1.18.0 // indirect diff --git a/hack/controller-gen/go.sum b/hack/controller-gen/go.sum index 69e2b8c..6b85c0d 100644 --- a/hack/controller-gen/go.sum +++ b/hack/controller-gen/go.sum @@ -213,8 +213,8 @@ k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzk k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/controller-tools v0.20.0 h1:VWZF71pwSQ2lZZCt7hFGJsOfDc5dVG28/IysjjMWXL8= -sigs.k8s.io/controller-tools v0.20.0/go.mod h1:b4qPmjGU3iZwqn34alUU5tILhNa9+VXK+J3QV0fT/uU= +sigs.k8s.io/controller-tools v0.20.1 h1:gkfMt9YodI0K85oT8rVi80NTXO/kDmabKR5Ajn5GYxs= +sigs.k8s.io/controller-tools v0.20.1/go.mod h1:b4qPmjGU3iZwqn34alUU5tILhNa9+VXK+J3QV0fT/uU= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= diff --git a/hack/yq/go.mod b/hack/yq/go.mod new file mode 100644 index 0000000..3dda5cd --- /dev/null +++ b/hack/yq/go.mod @@ -0,0 +1,39 @@ +module github.com/servicebinding/runtime/hack/yq + +go 1.24.0 + +require github.com/mikefarah/yq/v4 v4.52.4 + +require ( + github.com/a8m/envsubst v1.4.3 // indirect + github.com/agext/levenshtein v1.2.1 // indirect + github.com/alecthomas/participle/v2 v2.1.4 // indirect + github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect + github.com/dimchansky/utfbom v1.1.1 // indirect + github.com/elliotchance/orderedmap v1.8.0 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/go-ini/ini v1.67.0 // indirect + github.com/goccy/go-json v0.10.5 // indirect + github.com/goccy/go-yaml v1.19.2 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/hashicorp/hcl/v2 v2.24.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jinzhu/copier v0.4.0 // indirect + github.com/magiconair/properties v1.8.10 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect + github.com/spf13/cobra v1.10.2 // indirect + github.com/spf13/pflag v1.0.10 // indirect + github.com/yuin/gopher-lua v1.1.1 // indirect + github.com/zclconf/go-cty v1.17.0 // indirect + go.yaml.in/yaml/v4 v4.0.0-rc.3 // indirect + golang.org/x/mod v0.33.0 // indirect + golang.org/x/net v0.50.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.41.0 // indirect + golang.org/x/text v0.34.0 // indirect + golang.org/x/tools v0.41.0 // indirect + gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 // indirect +) diff --git a/hack/yq/go.sum b/hack/yq/go.sum new file mode 100644 index 0000000..d83c1be --- /dev/null +++ b/hack/yq/go.sum @@ -0,0 +1,92 @@ +github.com/a8m/envsubst v1.4.3 h1:kDF7paGK8QACWYaQo6KtyYBozY2jhQrTuNNuUxQkhJY= +github.com/a8m/envsubst v1.4.3/go.mod h1:4jjHWQlZoaXPoLQUb7H2qT4iLkZDdmEQiOUogdUmqVU= +github.com/agext/levenshtein v1.2.1 h1:QmvMAjj2aEICytGiWzmxoE0x2KZvE0fvmqMOfy2tjT8= +github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0= +github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= +github.com/alecthomas/participle/v2 v2.1.4 h1:W/H79S8Sat/krZ3el6sQMvMaahJ+XcM9WSI2naI7w2U= +github.com/alecthomas/participle/v2 v2.1.4/go.mod h1:8tqVbpTX20Ru4NfYQgZf4mP18eXPTBViyMWiArNEgGI= +github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs= +github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= +github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= +github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= +github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= +github.com/elliotchance/orderedmap v1.8.0 h1:TrOREecvh3JbS+NCgwposXG5ZTFHtEsQiCGOhPElnMw= +github.com/elliotchance/orderedmap v1.8.0/go.mod h1:wsDwEaX5jEoyhbs7x93zk2H/qv0zwuhg4inXhDkYqys= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= +github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= +github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM= +github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE= +github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM= +github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= +github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= +github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= +github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= +github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mikefarah/yq/v4 v4.52.4 h1:wZlxBMjyKCzzQjL0u6a3zToKuyE7OdJr4OtLBtwph4Q= +github.com/mikefarah/yq/v4 v4.52.4/go.mod h1:8QwgSgDsmt4LCbfwvGUAh5oWSukRRuVJ8Gj98zJ/45o= +github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= +github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= +github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M= +github.com/yuin/gopher-lua v1.1.1/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= +github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0= +github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +go.yaml.in/yaml/v4 v4.0.0-rc.3 h1:3h1fjsh1CTAPjW7q/EMe+C8shx5d8ctzZTrLcs/j8Go= +go.yaml.in/yaml/v4 v4.0.0-rc.3/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0= +golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= +golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= +golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= +golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= +golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= +golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= +golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 h1:6D+BvnJ/j6e222UW8s2qTSe3wGBtvo0MbVQG/c5k8RE= +gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473/go.mod h1:N1eN2tsCx0Ydtgjl4cqmbRCsY4/+z4cYDeqwZTk6zog= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/hack/yq/tools.go b/hack/yq/tools.go new file mode 100644 index 0000000..fb7723f --- /dev/null +++ b/hack/yq/tools.go @@ -0,0 +1,25 @@ +//go:build tools +// +build tools + +/* +Copyright 2026 the original author or authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This package imports things required by build scripts, to force `go mod` to see them as dependencies +package tools + +import ( + _ "github.com/mikefarah/yq/v4" +)