| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*
- Copyright © 2025 ESO Maintainer Team
- 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
- https://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.
- */
- package v1
- // SecretKeySelector is a reference to a specific 'key' within a Secret resource.
- // In some instances, `key` is a required field.
- type SecretKeySelector struct {
- // The name of the Secret resource being referred to.
- // +kubebuilder:validation:MinLength:=1
- // +kubebuilder:validation:MaxLength:=253
- // +kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
- Name string `json:"name,omitempty"`
- // The namespace of the Secret resource being referred to.
- // Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
- // +optional
- // +kubebuilder:validation:MinLength:=1
- // +kubebuilder:validation:MaxLength:=63
- // +kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
- Namespace *string `json:"namespace,omitempty"`
- // A key in the referenced Secret.
- // Some instances of this field may be defaulted, in others it may be required.
- // +optional
- // +kubebuilder:validation:MinLength:=1
- // +kubebuilder:validation:MaxLength:=253
- // +kubebuilder:validation:Pattern:=^[-._a-zA-Z0-9]+$
- Key string `json:"key,omitempty"`
- }
- // ServiceAccountSelector is a reference to a ServiceAccount resource.
- type ServiceAccountSelector struct {
- // The name of the ServiceAccount resource being referred to.
- // +kubebuilder:validation:MinLength:=1
- // +kubebuilder:validation:MaxLength:=253
- // +kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
- Name string `json:"name"`
- // Namespace of the resource being referred to.
- // Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
- // +optional
- // +kubebuilder:validation:MinLength:=1
- // +kubebuilder:validation:MaxLength:=63
- // +kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
- Namespace *string `json:"namespace,omitempty"`
- // Audience specifies the `aud` claim for the service account token
- // If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
- // then this audiences will be appended to the list
- // +optional
- Audiences []string `json:"audiences,omitempty"`
- }
|