Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the appstudio v1beta1 API group +kubebuilder:object:generate=true +groupName=appstudio.redhat.com
Index ¶
- Constants
- Variables
- type Correspondence
- type DeployedSecretStatus
- type LinkableSecretSpec
- type ManagedServiceAccountSpec
- type RemoteSecret
- func (in *RemoteSecret) DeepCopy() *RemoteSecret
- func (in *RemoteSecret) DeepCopyInto(out *RemoteSecret)
- func (in *RemoteSecret) DeepCopyObject() runtime.Object
- func (rs *RemoteSecret) ValidateSecretData(secretData map[string][]byte) error
- func (rs *RemoteSecret) ValidateUploadSecret(uploadSecret *corev1.Secret) error
- type RemoteSecretConditionType
- type RemoteSecretDataFrom
- type RemoteSecretErrorReason
- type RemoteSecretList
- type RemoteSecretReason
- type RemoteSecretSpec
- type RemoteSecretStatus
- type RemoteSecretTarget
- type SecretKey
- type SecretLink
- type SecretOverride
- type SecretStatus
- type ServiceAccountLink
- type ServiceAccountLinkType
- type TargetKey
- type TargetSecretKey
- type TargetStatus
Constants ¶
const ( UploadSecretLabel = "appstudio.redhat.com/upload-secret" //#nosec G101 -- false positive, this is just a label LinkedByRemoteSecretLabel = "appstudio.redhat.com/linked-by-remote-secret" //#nosec G101 -- false positive, this is just a label RemoteSecretAuthServiceAccountLabel = "appstudio.redhat.com/remotesecret-auth-sa" RemoteSecretNameAnnotation = "appstudio.redhat.com/remotesecret-name" //#nosec G101 -- false positive TargetNamespaceAnnotation = "appstudio.redhat.com/remotesecret-target-namespace" ManagingRemoteSecretNameAnnotation = "appstudio.redhat.com/managing-remote-secret" //#nosec G101 -- false positive LinkedRemoteSecretsAnnotation = "appstudio.redhat.com/linked-remote-secrets" //#nosec G101 -- false positive // ObjectClusterUrlAnnotation is put on the events that are created when we fail to clean up the deployed secrets during the RemoteSecret // finalization. It specifies the API URL of the cluster where the secrets were deployed to (because there is no other good place to put // this information on the Event object). ObjectClusterUrlAnnotation = "appstudio.redhat.com/object-cluster-url" // RemoteSecretPartialUpdateAnnotation if present on the upload secret, this marks the upload secret as performing a partial update of the already existing secret data // of the remote secret that the upload secret refers to using the RemoteSecretNameAnnotation annotation. The value of this annotation is not important but should be documented // as "true". The data of the upload secret is used to update the secret data (i.e. the keys from the upload secret overwrite the keys in the secret data (adding new keys if not // present in the secret data)). RemoteSecretPartialUpdateAnnotation = "appstudio.redhat.com/remotesecret-partial-update" // RemoteSecretDeletedKeysAnnotation should be placed on an upload secret if the user want to remove some keys from the secret data of an already existing remote secret. It // contains the comma-separated list of keys that should be removed. RemoteSecretDeletedKeysAnnotation = "appstudio.redhat.com/remotesecret-deleted-keys" )
Caution: Modifying these constants may have unintended consequences in other projects that rely on remote-secret.
const ( RemoteSecretConditionTypeDeployed RemoteSecretConditionType = "Deployed" RemoteSecretConditionTypeDataObtained RemoteSecretConditionType = "DataObtained" RemoteSecretReasonAwaitingTokenData RemoteSecretReason = "AwaitingData" RemoteSecretReasonDataFound RemoteSecretReason = "DataFound" RemoteSecretReasonInjected RemoteSecretReason = "Injected" RemoteSecretReasonPartiallyInjected RemoteSecretReason = "PartiallyInjected" RemoteSecretReasonError RemoteSecretReason = "Error" RemoteSecretReasonNoTargets RemoteSecretReason = "NoTargets" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "appstudio.redhat.com", Version: "v1beta1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type Correspondence ¶
type Correspondence int
Correspondence is a result of the TargetKey#CorrespondsTo method describing how two targets correspond to each other. Valid values are NameCorrespondence, GenerateNameCorrespondence and NoCorrespondence.
const ( NoCorrespondence Correspondence = iota GenerateNameCorrespondence NameCorrespondence )
type DeployedSecretStatus ¶
type DeployedSecretStatus struct { Labels map[string]string `json:"labels,omitempty"` Annotations map[string]string `json:"annotations,omitempty"` Name string `json:"name"` }
func (*DeployedSecretStatus) DeepCopy ¶
func (in *DeployedSecretStatus) DeepCopy() *DeployedSecretStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeployedSecretStatus.
func (*DeployedSecretStatus) DeepCopyInto ¶
func (in *DeployedSecretStatus) DeepCopyInto(out *DeployedSecretStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinkableSecretSpec ¶
type LinkableSecretSpec struct { // Name is the name of the secret to be created. If it is not defined a random name based on the name of the binding // is used. // +optional Name string `json:"name,omitempty"` GenerateName string `json:"generateName,omitempty"` // Labels contains the labels that the created secret should be labeled with. Labels map[string]string `json:"labels,omitempty"` // Annotations is the keys and values that the created secret should be annotated with. Annotations map[string]string `json:"annotations,omitempty"` // Type is the type of the secret to be created in targets. If left empty, the default type used in the cluster is assumed (typically Opaque). // The Type has to match type of the UploadSecret. This constraint ensures that the requirements on keys, // put forth by Kubernetes (https://kubernetes.io/docs/concepts/configuration/secret/#secret-types), are met and // secret can be properly created in targets. Type corev1.SecretType `json:"type,omitempty"` // RequiredKeys are the keys which need to be present in the UploadSecret to successfully upload the SecretData. // Furthermore, the UploadSecret needs to contain the keys which are inferred from the Type // (and UploadSecret's type, since these have to match) and may contain any additional keys. RequiredKeys []SecretKey `json:"keys,omitempty"` // LinkedTo specifies the objects that the secret is linked to. Currently, only service accounts are supported. LinkedTo []SecretLink `json:"linkedTo,omitempty"` }
func (*LinkableSecretSpec) DeepCopy ¶
func (in *LinkableSecretSpec) DeepCopy() *LinkableSecretSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinkableSecretSpec.
func (*LinkableSecretSpec) DeepCopyInto ¶
func (in *LinkableSecretSpec) DeepCopyInto(out *LinkableSecretSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManagedServiceAccountSpec ¶
type ManagedServiceAccountSpec struct { // Name is the name of the service account to create/link. Either this or GenerateName // must be specified. // +optional Name string `json:"name"` // GenerateName is the generate name to be used when creating the service account. It only // really makes sense for the Managed service accounts that are cleaned up with the binding. // +optional GenerateName string `json:"generateName"` // Labels contains the labels that the created service account should be labeled with. Labels map[string]string `json:"labels,omitempty"` // Annotations is the keys and values that the created service account should be annotated with. Annotations map[string]string `json:"annotations,omitempty"` }
func (*ManagedServiceAccountSpec) DeepCopy ¶
func (in *ManagedServiceAccountSpec) DeepCopy() *ManagedServiceAccountSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedServiceAccountSpec.
func (*ManagedServiceAccountSpec) DeepCopyInto ¶
func (in *ManagedServiceAccountSpec) DeepCopyInto(out *ManagedServiceAccountSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteSecret ¶
type RemoteSecret struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec RemoteSecretSpec `json:"spec,omitempty"` Status RemoteSecretStatus `json:"status,omitempty"` // Transient optional field for data to upload during create/update RemoteSecret // It is processed by Mutating Webhook and must not be persisted, // to make sure (in a case if something happened with Webhook) it is constrained //+kubebuilder:validation:MaxProperties=0 UploadData map[string][]byte `json:"data,omitempty"` // Similar to how one can specify the data in an ordinary Kubernetes secret using either // the "data" or "stringData" fields, so one can do that when supplying the data to // the remote secret. See the data field for more details about the behavior of these fields // in remote secrets. // Both in create and update, the contents of the stringData is merged into the data field first. // This is the same behavior as with ordinary Kubernetes secret's stringData. //+kubebuilder:validation:MaxProperties=0 StringUploadData map[string]string `json:"stringData,omitempty"` // DataFrom is an optional field that can be used to copy data from another remote secret during the creation // of the remote secret. This field can be specified only during creation of a remote secret (only one of data // or dataFrom can be specified at the same time) or during an update of a remote secret that does not yet have // data associated with it (its DataObtained condition is in the AwaitingData state). DataFrom RemoteSecretDataFrom `json:"dataFrom,omitempty"` }
RemoteSecret is the Schema for the RemoteSecret API
func (*RemoteSecret) DeepCopy ¶
func (in *RemoteSecret) DeepCopy() *RemoteSecret
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteSecret.
func (*RemoteSecret) DeepCopyInto ¶
func (in *RemoteSecret) DeepCopyInto(out *RemoteSecret)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RemoteSecret) DeepCopyObject ¶
func (in *RemoteSecret) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RemoteSecret) ValidateSecretData ¶
func (rs *RemoteSecret) ValidateSecretData(secretData map[string][]byte) error
ValidateSecretData checks whether the secret data contains all the keys required by the secret type and specified in the RemoteSecret spec. If we assumed this function is called only for upload secrets, we could avoid checking the keys required by the secret type because Kubernetes API server would reject the upload secret if it did not contain the required keys. However, this function is also meant for validating the secret data that is already stored.
func (*RemoteSecret) ValidateUploadSecret ¶
func (rs *RemoteSecret) ValidateUploadSecret(uploadSecret *corev1.Secret) error
ValidateUploadSecret checks whether the uploadSecret type matches the RemoteSecret type and whether upload secret contains required keys. The function is in the api package because it extends the contract of the CRD.
type RemoteSecretConditionType ¶
type RemoteSecretConditionType string
RemoteSecretConditionType lists the types of conditions we track in the remote secret status
type RemoteSecretDataFrom ¶
type RemoteSecretDataFrom struct { Name string `json:"name,omitempty"` Namespace string `json:"namespace,omitempty"` }
func (*RemoteSecretDataFrom) DeepCopy ¶
func (in *RemoteSecretDataFrom) DeepCopy() *RemoteSecretDataFrom
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteSecretDataFrom.
func (*RemoteSecretDataFrom) DeepCopyInto ¶
func (in *RemoteSecretDataFrom) DeepCopyInto(out *RemoteSecretDataFrom)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteSecretErrorReason ¶
type RemoteSecretErrorReason string
const ( RemoteSecretErrorReasonTokenRetrieval RemoteSecretErrorReason = "TokenRetrieval" RemoteSecretErrorReasonNoError RemoteSecretErrorReason = "" )
type RemoteSecretList ¶
type RemoteSecretList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []RemoteSecret `json:"items"` }
RemoteSecretList contains a list of RemoteSecret
func (*RemoteSecretList) DeepCopy ¶
func (in *RemoteSecretList) DeepCopy() *RemoteSecretList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteSecretList.
func (*RemoteSecretList) DeepCopyInto ¶
func (in *RemoteSecretList) DeepCopyInto(out *RemoteSecretList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RemoteSecretList) DeepCopyObject ¶
func (in *RemoteSecretList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RemoteSecretReason ¶
type RemoteSecretReason string
RemoteSecretReason is the reconciliation status of the RemoteSecret object
type RemoteSecretSpec ¶
type RemoteSecretSpec struct { // Secret defines the properties of the secret and the linked service accounts that should be // created in the target namespaces. Secret LinkableSecretSpec `json:"secret"` // Targets is the list of the target namespaces that the secret and service accounts should be deployed to. // +optional Targets []RemoteSecretTarget `json:"targets,omitempty"` }
RemoteSecretSpec defines the desired state of RemoteSecret
func (*RemoteSecretSpec) DeepCopy ¶
func (in *RemoteSecretSpec) DeepCopy() *RemoteSecretSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteSecretSpec.
func (*RemoteSecretSpec) DeepCopyInto ¶
func (in *RemoteSecretSpec) DeepCopyInto(out *RemoteSecretSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteSecretStatus ¶
type RemoteSecretStatus struct { // Conditions is the list of conditions describing the state of the deployment // to the targets. // +optional Conditions []metav1.Condition `json:"conditions,omitempty"` // Targets is the list of the deployment statuses for individual targets in the spec. // +optional Targets []TargetStatus `json:"targets,omitempty"` // SecretStatus describes the shape of the secret which is currently stored in SecretStorage. // +optional SecretStatus SecretStatus `json:"secret,omitempty"` }
RemoteSecretStatus defines the observed state of RemoteSecret
func (*RemoteSecretStatus) DeepCopy ¶
func (in *RemoteSecretStatus) DeepCopy() *RemoteSecretStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteSecretStatus.
func (*RemoteSecretStatus) DeepCopyInto ¶
func (in *RemoteSecretStatus) DeepCopyInto(out *RemoteSecretStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteSecretTarget ¶
type RemoteSecretTarget struct { // Secret contains the overriden definitions of the secret specific to this target. // +kubebuilder:validation:Optional Secret *SecretOverride `json:"secret,omitempty"` // Namespace is the name of the target namespace to which to deploy. Namespace string `json:"namespace"` // ApiUrl specifies the URL of the API server of a remote Kubernetes cluster that this target points to. If left empty, // the local cluster is assumed. // +kubebuilder:validation:Optional ApiUrl string `json:"apiUrl,omitempty"` // ClusterCredentialsSecret is the name of the secret in the same namespace as the RemoteSecret that contains the token // to use to authenticate with the remote Kubernetes cluster. This is ignored if `apiUrl` is empty. // +kubebuilder:validation:Optional ClusterCredentialsSecret string `json:"clusterCredentialsSecret,omitempty"` }
func (*RemoteSecretTarget) DeepCopy ¶
func (in *RemoteSecretTarget) DeepCopy() *RemoteSecretTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteSecretTarget.
func (*RemoteSecretTarget) DeepCopyInto ¶
func (in *RemoteSecretTarget) DeepCopyInto(out *RemoteSecretTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (RemoteSecretTarget) ToTargetKey ¶
func (rst RemoteSecretTarget) ToTargetKey(containingRemoteSecret *RemoteSecret) TargetKey
ToTargetKey converts the remote secret target into a target key given the default spec specified in the provided remote secret.
type SecretKey ¶
type SecretKey struct {
Name string `json:"name,omitempty"`
}
func (*SecretKey) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKey.
func (*SecretKey) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretLink ¶
type SecretLink struct { // ServiceAccounts lists the service accounts that the secret is linked to. ServiceAccount ServiceAccountLink `json:"serviceAccount,omitempty"` }
func (*SecretLink) DeepCopy ¶
func (in *SecretLink) DeepCopy() *SecretLink
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretLink.
func (*SecretLink) DeepCopyInto ¶
func (in *SecretLink) DeepCopyInto(out *SecretLink)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretOverride ¶
type SecretOverride struct { // Labels is the new set of labels to be put on the secret instead of the labels defined in the spec. I.e. this completely replaces // the labels from the secret spec. Note that this is a pointer to a map so that we can distinguish between an undefined, nil, value // and an empty map (clearing any labels defined in the spec). // +kubebuilder:validation:Optional Labels *map[string]string `json:"labels,omitempty"` // Annotations is the new set of annotations to be put on the secret instead of the annotations defined in the spec. I.e. this // completely replaces the annotations from the secret spec. Note that this is a pointer to a map so that we can distinguish between // an undefined, nil, value and an empty map (clearing any annotations defined in the spec). // +kubebuilder:validation:Optional Annotations *map[string]string `json:"annotations,omitempty"` // Name is the name of the secret when deployed to the target. This overrides the name from the secret spec. // +kubebuilder:validation:Optional Name string `json:"name,omitempty"` // GenerateName is the GenerateName of the secret when deployed to the target. This overrides the generateName from the secret spec. // +kubebuilder:validation:Optional GenerateName string `json:"generateName,omitempty"` }
func (*SecretOverride) DeepCopy ¶
func (in *SecretOverride) DeepCopy() *SecretOverride
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretOverride.
func (*SecretOverride) DeepCopyInto ¶
func (in *SecretOverride) DeepCopyInto(out *SecretOverride)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretStatus ¶
type SecretStatus struct {
Keys []string `json:"keys,omitempty"`
}
func (*SecretStatus) DeepCopy ¶
func (in *SecretStatus) DeepCopy() *SecretStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretStatus.
func (*SecretStatus) DeepCopyInto ¶
func (in *SecretStatus) DeepCopyInto(out *SecretStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceAccountLink ¶
type ServiceAccountLink struct { // As specifies how the secret generated by the binding is linked to the service account. // This can be either `secret` meaning that the secret is listed as one of the mountable secrets // in the `secrets` of the service account, `imagePullSecret` which makes the secret listed as // one of the image pull secrets associated with the service account. If not specified, it defaults // to `secret`. // +optional // +kubebuilder:default:=secret As ServiceAccountLinkType `json:"as,omitempty"` // Reference specifies a pre-existing service account that the secret should be linked to. It is an error // if the service account doesn't exist when the operator tries to add a link to a secret with the injected // token. Reference corev1.LocalObjectReference `json:"reference,omitempty"` // Managed specifies the service account that is bound to the lifetime of the binding. This service account // must not exist and is created and deleted along with the injected secret. Managed ManagedServiceAccountSpec `json:"managed,omitempty"` }
func (*ServiceAccountLink) DeepCopy ¶
func (in *ServiceAccountLink) DeepCopy() *ServiceAccountLink
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountLink.
func (*ServiceAccountLink) DeepCopyInto ¶
func (in *ServiceAccountLink) DeepCopyInto(out *ServiceAccountLink)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServiceAccountLink) EffectiveSecretLinkType ¶
func (s *ServiceAccountLink) EffectiveSecretLinkType() ServiceAccountLinkType
EffectiveSecretLinkType returns the secret link type applying the default value if LinkedSecretAs is unspecified by the user.
type ServiceAccountLinkType ¶
type ServiceAccountLinkType string
const ( ServiceAccountLinkTypeSecret ServiceAccountLinkType = "secret" ServiceAccountLinkTypeImagePullSecret ServiceAccountLinkType = "imagePullSecret" )
type TargetKey ¶
type TargetKey struct { ApiUrl string Namespace string SecretName string SecretGenerateName string }
TargetKey is not used in the RemoteSecret spec as such but it represents an identifier of a target. As such it can be used as key in the maps instead of RemoteSecretTarget (which itself is not comparable).
Note that it is not directly possible to compare a TargetKey generated from a RemoteSecretTarget and TargetStatus, because the spec may contain an empty secret name and non-empty generate name. To determine whether a target key may correspond to another, use the CorrespondsTo function on the target key.
func (TargetKey) CorrespondsTo ¶
func (tk TargetKey) CorrespondsTo(other TargetKey) Correspondence
CorrespondsTo tells whether the target key corresponds to the other target key. Note that this operation is not symmetric, i.e. a.CorrespondsTo(b) does not imply b.CorrespondsTo(a).
func (*TargetKey) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetKey.
func (*TargetKey) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetSecretKey ¶
type TargetSecretKey struct { // Name is the exact name of the Secret to be deployed to target. // +optional Name string `json:"name,omitempty"` // GenerateName is the name prefix for Secret to be deployed to the target. // +optional GenerateName string `json:"generateName,omitempty"` }
func (*TargetSecretKey) DeepCopy ¶
func (in *TargetSecretKey) DeepCopy() *TargetSecretKey
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetSecretKey.
func (*TargetSecretKey) DeepCopyInto ¶
func (in *TargetSecretKey) DeepCopyInto(out *TargetSecretKey)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetStatus ¶
type TargetStatus struct { // Namespace is the namespace of the target where the secret and the service accounts have been deployed to. Namespace string `json:"namespace"` // ApiUrl is the URL of the remote Kubernetes cluster to which the target points to. ApiUrl string `json:"apiUrl,omitempty"` // SecretName is the name of the secret that is actually deployed to the target namespace // // Deprecated: please use the DeployedSecret.Name field instead SecretName string `json:"secretName,omitempty"` // ExpectedSecret defines how the name of the Secret to be deployed should look like. The value comes either from // LinkableSecretSpec definition in RemoteSecret spec, or from SecretOverride in the target. The value // as such is not important for users, but it is required for a correct matching of targets from spec to status. // +optional ExpectedSecret *TargetSecretKey `json:"expectedSecret,omitempty"` // ServiceAccountNames is the names of the service accounts that have been deployed to the target namespace // +optional ServiceAccountNames []string `json:"serviceAccountNames,omitempty"` // ClusterCredentialsSecret is the name of the secret in the same namespace as the RemoteSecret that contains the token // to use to authenticate with the remote Kubernetes cluster. This is ignored if `apiUrl` is empty. ClusterCredentialsSecret string `json:"clusterCredentialsSecret,omitempty"` // Error the optional error message if the deployment of either the secret or the service accounts failed. // +optional Error string `json:"error,omitempty"` // DeployedSecret contains the status information about the linked secret deployed in the target // +optional DeployedSecret *DeployedSecretStatus `json:"deployedSecret,omitempty"` }
func (*TargetStatus) DeepCopy ¶
func (in *TargetStatus) DeepCopy() *TargetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetStatus.
func (*TargetStatus) DeepCopyInto ¶
func (in *TargetStatus) DeepCopyInto(out *TargetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (TargetStatus) ToTargetKey ¶
func (ts TargetStatus) ToTargetKey() TargetKey