v1alpha1

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 22, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

+groupName=greenhouse.sap

Package v1alpha1 contains API Schema definitions for the greenhouse v1alpha1 API group. +kubebuilder:object:generate=true +groupName=greenhouse.sap

Index

Constants

View Source
const (
	// ClusterAccessModeDirect configures direct access to the cluster.
	ClusterAccessModeDirect ClusterAccessMode = "direct"

	// AllNodesReady reflects the readiness status of all nodes of a cluster.
	AllNodesReady greenhousemetav1alpha1.ConditionType = "AllNodesReady"

	// KubeConfigValid reflects the validity of the kubeconfig of a cluster.
	KubeConfigValid greenhousemetav1alpha1.ConditionType = "KubeConfigValid"

	// MaxTokenValidity contains maximum bearer token validity duration. It is also default value.
	MaxTokenValidity = 72

	// MinTokenValidity contains maximum bearer token validity duration.
	MinTokenValidity = 24
)
View Source
const (
	KubeconfigCreatedCondition         greenhousemetav1alpha1.ConditionType = "Created"
	KubeconfigReconcileFailedCondition greenhousemetav1alpha1.ConditionType = "ReconcileFailed"
	KubeconfigReadyCondition           greenhousemetav1alpha1.ConditionType = "Ready"
)
View Source
const (
	// SCIMAPIAvailableCondition reflects if there is a connection to SCIM API.
	SCIMAPIAvailableCondition greenhousemetav1alpha1.ConditionType = "SCIMAPIAvailable"
	// SecretNotFoundReason is set when the secret with credentials to SCIM is not found.
	SecretNotFoundReason greenhousemetav1alpha1.ConditionReason = "SecretNotFound"
	// SCIMRequestFailedReason is set when a request to SCIM failed.
	SCIMRequestFailedReason greenhousemetav1alpha1.ConditionReason = "SCIMRequestFailed"
	// SCIMConfigErrorReason is set when scim config is not present in spec as it is optional
	SCIMConfigErrorReason greenhousemetav1alpha1.ConditionReason = "SCIMConfigErrorReason"

	// NamespaceCreated is set when the namespace for organization is created.
	NamespaceCreated greenhousemetav1alpha1.ConditionType = "NamespaceCreated"
	// OrganizationRBACConfigured is set when the RBAC for organization is configured
	OrganizationRBACConfigured greenhousemetav1alpha1.ConditionType = "OrganizationRBACConfigured"
	// OrganizationDefaultTeamRolesConfigured is set when default team roles are configured
	OrganizationDefaultTeamRolesConfigured greenhousemetav1alpha1.ConditionType = "OrganizationDefaultTeamRolesConfigured"
	// ServiceProxyProvisioned is set when the service proxy is provisioned
	ServiceProxyProvisioned greenhousemetav1alpha1.ConditionType = "ServiceProxyProvisioned"
	// OrganizationOICDConfigured is set when the OICD is configured
	OrganizationOICDConfigured greenhousemetav1alpha1.ConditionType = "OrganizationOICDConfigured"
	// DexReconcileFailed is set when dex reconcile step has failed
	DexReconcileFailed greenhousemetav1alpha1.ConditionReason = "DexReconcileFailed"
	// OAuthOICDFailed is set when OAuth reconciler has failed
	OAuthOICDFailed greenhousemetav1alpha1.ConditionReason = "OAuthOICDFailed"
	// DefaultConnectorRedirectsFailed is set when the default connector redirects are not updated with new organization redirect URIs
	DefaultConnectorRedirectsFailed greenhousemetav1alpha1.ConditionReason = "DefaultConnectorRedirectsFailed"
	// OrganizationAdminTeamConfigured is set when the admin team is configured for organization
	OrganizationAdminTeamConfigured greenhousemetav1alpha1.ConditionType = "OrganizationAdminTeamConfigured"
	// OAuthProxySecretFailed is set when the secret for OAuth proxy is not successfully created
	OAuthProxySecretFailed greenhousemetav1alpha1.ConditionReason = "OAuthProxySecretFailed"
)
View Source
const (

	// ClusterAccessReadyCondition reflects if we can access the cluster a Plugin is to be deployed to.
	ClusterAccessReadyCondition greenhousemetav1alpha1.ConditionType = "ClusterAccessReady"

	// HelmReconcileFailedCondition reflects the failed reconciliation of the corresponding helm release.
	HelmReconcileFailedCondition greenhousemetav1alpha1.ConditionType = "HelmReconcileFailed"

	// HelmDriftDetectedCondition reflects the last time a drift between Release and Deployed Resources was detected.
	HelmDriftDetectedCondition greenhousemetav1alpha1.ConditionType = "HelmDriftDetected"

	// WorkloadReadyCondition reflects the readiness of the workload resources belonging to the Plugin.
	WorkloadReadyCondition greenhousemetav1alpha1.ConditionType = "WorkloadReady"

	// StatusUpToDateCondition reflects the failed reconciliation of the Plugin.
	StatusUpToDateCondition greenhousemetav1alpha1.ConditionType = "StatusUpToDate"

	// HelmChartTestSucceededCondition reflects the status of the HelmChart tests.
	HelmChartTestSucceededCondition greenhousemetav1alpha1.ConditionType = "HelmChartTestSucceeded"

	// PluginDefinitionNotFoundReason is set when the pluginDefinition is not found.
	PluginDefinitionNotFoundReason greenhousemetav1alpha1.ConditionReason = "PluginDefinitionNotFound"

	// HelmUninstallFailedReason is set when the helm release could not be uninstalled.
	HelmUninstallFailedReason greenhousemetav1alpha1.ConditionReason = "HelmUninstallFailed"
)
View Source
const (
	// PluginPresetKind is the kind of the PluginPreset resource
	PluginPresetKind = "PluginPreset"

	// PluginReconcileFailed is set when Plugin creation or update failed.
	PluginReconcileFailed greenhousemetav1alpha1.ConditionReason = "PluginReconcileFailed"

	// PreventDeletionAnnotation is the annotation used to prevent deletion of a PluginPreset.
	// If the annotation is set the PluginPreset cannot be deleted.
	PreventDeletionAnnotation = "greenhouse.sap/prevent-deletion"
)
View Source
const (
	// PluginSkippedCondition is set when the pluginPreset encounters a non-managed plugin.
	PluginSkippedCondition greenhousemetav1alpha1.ConditionType = "PluginSkipped"
	// PluginFailedCondition is set when the pluginPreset encounters a failure during the reconciliation of a plugin.
	PluginFailedCondition greenhousemetav1alpha1.ConditionType = "PluginFailed"
)
View Source
const (
	// SCIMAccessReadyCondition reflects if there is a connection to SCIM.
	SCIMAccessReadyCondition greenhousemetav1alpha1.ConditionType = "SCIMAccessReady"
	// SCIMAPIUnavailableReason is set when the organization has set SCIMAPIAvailableCondition to false.
	SCIMAPIUnavailableReason greenhousemetav1alpha1.ConditionReason = "SCIMAPIUnavailable"
	// SCIMAllMembersValidCondition reflects if all members are valid. It is set to false if there are invalid or inactive members.
	SCIMAllMembersValidCondition greenhousemetav1alpha1.ConditionType = "SCIMAllMembersValid"
)
View Source
const (
	// RBACReady is the condition type for the TeamRoleBinding when the rbacv1 resources are ready
	RBACReady greenhousemetav1alpha1.ConditionType = "RBACReady"

	// RBACReconciled is the condition reason for the TeamRoleBinding when the rbacv1 resources are successfully reconciled
	RBACReconciled greenhousemetav1alpha1.ConditionReason = "RBACReconciled"

	// RBACReconcileFailed is the condition reason for the TeamRoleBinding when not all of the rbacv1 resources have been successfully reconciled
	RBACReconcileFailed greenhousemetav1alpha1.ConditionReason = "RBACReconcileFailed"

	// EmptyClusterList is the condition reason for a resource when the clusterSelector and clusterName do not provide any existing cluster
	EmptyClusterList greenhousemetav1alpha1.ConditionReason = "EmptyClusterList"

	// TeamNotFound is the condition reason when the resources refers to a non-existing Team
	TeamNotFound greenhousemetav1alpha1.ConditionReason = "TeamNotFound"

	// ClusterConnectionFailed is the condition reason for the TeamRoleBinding when the connection to the cluster failed
	ClusterConnectionFailed greenhousemetav1alpha1.ConditionReason = "ClusterConnectionFailed"

	// ClusterRoleFailed is the condition reason for the TeamRoleBinding when the ClusterRole could not be created
	ClusterRoleFailed greenhousemetav1alpha1.ConditionReason = "ClusterRoleFailed"

	// RoleBindingFailed is the condition reason for the TeamRoleBinding when the RoleBinding could not be created
	RoleBindingFailed greenhousemetav1alpha1.ConditionReason = "RoleBindingFailed"

	// CreateNamespacesFailed is the condition reason for the TeamRoleBinding when the namespaces could not be created
	CreateNamespacesFailed greenhousemetav1alpha1.ConditionReason = "CreateNamespacesFailed"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: apis.GroupName, Version: "v1alpha1"}

	// 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 Authentication

type Authentication struct {
	// OIDConfig configures the OIDC provider.
	OIDCConfig *OIDCConfig `json:"oidc,omitempty"`
	// SCIMConfig configures the SCIM client.
	SCIMConfig *SCIMConfig `json:"scim,omitempty"`
}

func (*Authentication) DeepCopy

func (in *Authentication) DeepCopy() *Authentication

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Authentication.

func (*Authentication) DeepCopyInto

func (in *Authentication) DeepCopyInto(out *Authentication)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Cluster

type Cluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ClusterSpec   `json:"spec,omitempty"`
	Status ClusterStatus `json:"status,omitempty"`
}

Cluster is the Schema for the clusters API

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.

func (*Cluster) DeepCopyInto

func (in *Cluster) DeepCopyInto(out *Cluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Cluster) DeepCopyObject

func (in *Cluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Cluster) GetConditions

func (c *Cluster) GetConditions() greenhousemetav1alpha1.StatusConditions

func (*Cluster) GetSecretName

func (c *Cluster) GetSecretName() string

GetSecretName returns the Kubernetes secret containing sensitive data for this cluster. The secret is for internal usage only and its content must not be exposed to the user.

func (*Cluster) SetCondition

func (c *Cluster) SetCondition(condition greenhousemetav1alpha1.Condition)

func (*Cluster) SetDefaultTokenValidityIfNeeded

func (c *Cluster) SetDefaultTokenValidityIfNeeded()

type ClusterAccessMode

type ClusterAccessMode string

ClusterAccessMode configures the access mode to the customer cluster. +kubebuilder:validation:Enum=direct

type ClusterConditionType

type ClusterConditionType string

ClusterConditionType is a valid condition of a cluster.

type ClusterKubeConfig

type ClusterKubeConfig struct {
	// MaxTokenValidity specifies the maximum duration for which a token remains valid in hours.
	// +kubebuilder:default:=72
	// +kubebuilder:validation:Minimum=24
	// +kubebuilder:validation:Maximum=72
	MaxTokenValidity int32 `json:"maxTokenValidity,omitempty"`
}

ClusterKubeConfig configures kube config values.

func (*ClusterKubeConfig) DeepCopy

func (in *ClusterKubeConfig) DeepCopy() *ClusterKubeConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeConfig.

func (*ClusterKubeConfig) DeepCopyInto

func (in *ClusterKubeConfig) DeepCopyInto(out *ClusterKubeConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfig

type ClusterKubeconfig struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ClusterKubeconfigSpec   `json:"spec,omitempty"`
	Status ClusterKubeconfigStatus `json:"status,omitempty"`
}

ClusterKubeconfig is the Schema for the clusterkubeconfigs API ObjectMeta.OwnerReferences is used to link the ClusterKubeconfig to the Cluster ObjectMeta.Generation is used to detect changes in the ClusterKubeconfig and sync local kubeconfig files ObjectMeta.Name is designed to be the same with the Cluster name

func (*ClusterKubeconfig) DeepCopy

func (in *ClusterKubeconfig) DeepCopy() *ClusterKubeconfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfig.

func (*ClusterKubeconfig) DeepCopyInto

func (in *ClusterKubeconfig) DeepCopyInto(out *ClusterKubeconfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterKubeconfig) DeepCopyObject

func (in *ClusterKubeconfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterKubeconfigAuthInfo

type ClusterKubeconfigAuthInfo struct {
	AuthProvider          clientcmdapi.AuthProviderConfig `json:"auth-provider,omitempty"`
	ClientCertificateData []byte                          `json:"client-certificate-data,omitempty"`
	ClientKeyData         []byte                          `json:"client-key-data,omitempty"`
}

func (*ClusterKubeconfigAuthInfo) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigAuthInfo.

func (*ClusterKubeconfigAuthInfo) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfigAuthInfoItem

type ClusterKubeconfigAuthInfoItem struct {
	Name     string                    `json:"name"`
	AuthInfo ClusterKubeconfigAuthInfo `json:"user,omitempty"`
}

func (*ClusterKubeconfigAuthInfoItem) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigAuthInfoItem.

func (*ClusterKubeconfigAuthInfoItem) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfigCluster

type ClusterKubeconfigCluster struct {
	Server                   string `json:"server,omitempty"`
	CertificateAuthorityData []byte `json:"certificate-authority-data,omitempty"`
}

func (*ClusterKubeconfigCluster) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigCluster.

func (*ClusterKubeconfigCluster) DeepCopyInto

func (in *ClusterKubeconfigCluster) DeepCopyInto(out *ClusterKubeconfigCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfigClusterItem

type ClusterKubeconfigClusterItem struct {
	Name    string                   `json:"name"`
	Cluster ClusterKubeconfigCluster `json:"cluster"`
}

func (*ClusterKubeconfigClusterItem) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigClusterItem.

func (*ClusterKubeconfigClusterItem) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfigContext

type ClusterKubeconfigContext struct {
	Cluster   string `json:"cluster"`
	AuthInfo  string `json:"user"`
	Namespace string `json:"namespace,omitempty"`
}

func (*ClusterKubeconfigContext) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigContext.

func (*ClusterKubeconfigContext) DeepCopyInto

func (in *ClusterKubeconfigContext) DeepCopyInto(out *ClusterKubeconfigContext)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfigContextItem

type ClusterKubeconfigContextItem struct {
	Name    string                   `json:"name"`
	Context ClusterKubeconfigContext `json:"context,omitempty"`
}

func (*ClusterKubeconfigContextItem) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigContextItem.

func (*ClusterKubeconfigContextItem) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfigData

type ClusterKubeconfigData struct {
	Kind           string                          `json:"kind,omitempty"`
	APIVersion     string                          `json:"apiVersion,omitempty"`
	Clusters       []ClusterKubeconfigClusterItem  `json:"clusters,omitempty"`
	AuthInfo       []ClusterKubeconfigAuthInfoItem `json:"users,omitempty"`
	Contexts       []ClusterKubeconfigContextItem  `json:"contexts,omitempty"`
	CurrentContext string                          `json:"current-context,omitempty"`
	Preferences    ClusterKubeconfigPreferences    `json:"preferences,omitempty"`
}

ClusterKubeconfigData stores the kubeconfig data ready to use kubectl or other local tooling It is a simplified version of clientcmdapi.Config: https://pkg.go.dev/k8s.io/client-go/tools/clientcmd/api#Config

func (*ClusterKubeconfigData) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigData.

func (*ClusterKubeconfigData) DeepCopyInto

func (in *ClusterKubeconfigData) DeepCopyInto(out *ClusterKubeconfigData)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfigList

type ClusterKubeconfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ClusterKubeconfig `json:"items"`
}

ClusterKubeconfigList contains a list of ClusterKubeconfig

func (*ClusterKubeconfigList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigList.

func (*ClusterKubeconfigList) DeepCopyInto

func (in *ClusterKubeconfigList) DeepCopyInto(out *ClusterKubeconfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterKubeconfigList) DeepCopyObject

func (in *ClusterKubeconfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterKubeconfigPreferences

type ClusterKubeconfigPreferences struct {
}

func (*ClusterKubeconfigPreferences) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigPreferences.

func (*ClusterKubeconfigPreferences) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfigSpec

type ClusterKubeconfigSpec struct {
	Kubeconfig ClusterKubeconfigData `json:"kubeconfig,omitempty"`
}

ClusterKubeconfigSpec stores the kubeconfig data for the cluster The idea is to use kubeconfig data locally with minimum effort (with local tools or plain kubectl): kubectl get cluster-kubeconfig $NAME -o yaml | yq -y .spec.kubeconfig

func (*ClusterKubeconfigSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigSpec.

func (*ClusterKubeconfigSpec) DeepCopyInto

func (in *ClusterKubeconfigSpec) DeepCopyInto(out *ClusterKubeconfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterKubeconfigStatus

type ClusterKubeconfigStatus struct {
	Conditions greenhousemetav1alpha1.StatusConditions `json:"statusConditions,omitempty"`
}

+kubebuilder:object:generate=true

func (*ClusterKubeconfigStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubeconfigStatus.

func (*ClusterKubeconfigStatus) DeepCopyInto

func (in *ClusterKubeconfigStatus) DeepCopyInto(out *ClusterKubeconfigStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterList

type ClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Cluster `json:"items"`
}

ClusterList contains a list of Cluster

func (*ClusterList) DeepCopy

func (in *ClusterList) DeepCopy() *ClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList.

func (*ClusterList) DeepCopyInto

func (in *ClusterList) DeepCopyInto(out *ClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterList) DeepCopyObject

func (in *ClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterOptionOverride

type ClusterOptionOverride struct {
	ClusterName string              `json:"clusterName"`
	Overrides   []PluginOptionValue `json:"overrides"`
}

ClusterOptionOverride defines which plugin option should be override in which cluster +kubebuilder:validation:Optional

func (*ClusterOptionOverride) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterOptionOverride.

func (*ClusterOptionOverride) DeepCopyInto

func (in *ClusterOptionOverride) DeepCopyInto(out *ClusterOptionOverride)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterSelector

type ClusterSelector struct {
	// Name of a single Cluster to select.
	Name string `json:"clusterName,omitempty"`
	// LabelSelector is a label query over a set of Clusters.
	LabelSelector metav1.LabelSelector `json:"labelSelector,omitempty"`
	// ExcludeList is a list of Cluster names to exclude from LabelSelector query.
	ExcludeList []string `json:"excludeList,omitempty"`
}

ClusterSelector specifies a selector for clusters by name or by label with the option to exclude specific clusters.

func (*ClusterSelector) DeepCopy

func (in *ClusterSelector) DeepCopy() *ClusterSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSelector.

func (*ClusterSelector) DeepCopyInto

func (in *ClusterSelector) DeepCopyInto(out *ClusterSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterSelector) ListClusters

func (cs *ClusterSelector) ListClusters(ctx context.Context, c client.Client, namespace string) (*ClusterList, error)

ListClusters returns the list of Clusters that match the ClusterSelector's Name or LabelSelector with applied ExcludeList. If the Name or LabelSelector does not return any cluster, an empty ClusterList is returned without error.

type ClusterSpec

type ClusterSpec struct {
	// AccessMode configures how the cluster is accessed from the Greenhouse operator.
	AccessMode ClusterAccessMode `json:"accessMode"`

	// KubeConfig contains specific values for `KubeConfig` for the cluster.
	KubeConfig ClusterKubeConfig `json:"kubeConfig,omitempty"`
}

ClusterSpec defines the desired state of the Cluster.

func (*ClusterSpec) DeepCopy

func (in *ClusterSpec) DeepCopy() *ClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.

func (*ClusterSpec) DeepCopyInto

func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterStatus

type ClusterStatus struct {
	// KubernetesVersion reflects the detected Kubernetes version of the cluster.
	KubernetesVersion string `json:"kubernetesVersion,omitempty"`
	// BearerTokenExpirationTimestamp reflects the expiration timestamp of the bearer token used to access the cluster.
	BearerTokenExpirationTimestamp metav1.Time `json:"bearerTokenExpirationTimestamp,omitempty"`
	// StatusConditions contain the different conditions that constitute the status of the Cluster.
	greenhousemetav1alpha1.StatusConditions `json:"statusConditions,omitempty"`
	// Nodes provides a map of cluster node names to node statuses
	Nodes map[string]NodeStatus `json:"nodes,omitempty"`
}

ClusterStatus defines the observed state of Cluster

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HelmChartReference

type HelmChartReference struct {
	// Name of the HelmChart chart.
	Name string `json:"name"`
	// Repository of the HelmChart chart.
	Repository string `json:"repository"`
	// Version of the HelmChart chart.
	Version string `json:"version"`
}

HelmChartReference references a Helm Chart in a chart repository.

func (*HelmChartReference) DeepCopy

func (in *HelmChartReference) DeepCopy() *HelmChartReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChartReference.

func (*HelmChartReference) DeepCopyInto

func (in *HelmChartReference) DeepCopyInto(out *HelmChartReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HelmChartReference) String

func (h *HelmChartReference) String() string

String returns the printable HelmChartReference.

type HelmReleaseStatus

type HelmReleaseStatus struct {
	// Status is the status of a HelmChart release.
	Status string `json:"status"`
	// FirstDeployed is the timestamp of the first deployment of the release.
	FirstDeployed metav1.Time `json:"firstDeployed,omitempty"`
	// LastDeployed is the timestamp of the last deployment of the release.
	LastDeployed metav1.Time `json:"lastDeployed,omitempty"`
	// PluginOptionChecksum is the checksum of plugin option values.
	PluginOptionChecksum string `json:"pluginOptionChecksum,omitempty"`
	// Diff contains the difference between the deployed helm chart and the helm chart in the last reconciliation
	Diff string `json:"diff,omitempty"`
}

HelmReleaseStatus reflects the status of a Helm release.

func (*HelmReleaseStatus) DeepCopy

func (in *HelmReleaseStatus) DeepCopy() *HelmReleaseStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmReleaseStatus.

func (*HelmReleaseStatus) DeepCopyInto

func (in *HelmReleaseStatus) DeepCopyInto(out *HelmReleaseStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedPluginStatus

type ManagedPluginStatus struct {
	PluginName     string                           `json:"pluginName,omitempty"`
	ReadyCondition greenhousemetav1alpha1.Condition `json:"readyCondition,omitempty"`
}

ManagedPluginStatus defines the Ready condition of a managed Plugin identified by its name.

func (*ManagedPluginStatus) DeepCopy

func (in *ManagedPluginStatus) DeepCopy() *ManagedPluginStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedPluginStatus.

func (*ManagedPluginStatus) DeepCopyInto

func (in *ManagedPluginStatus) DeepCopyInto(out *ManagedPluginStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeStatus

type NodeStatus struct {
	// We mirror the node conditions here for faster reference
	greenhousemetav1alpha1.StatusConditions `json:"statusConditions,omitempty"`
	// Fast track to the node ready condition.
	Ready bool `json:"ready,omitempty"`
}

func (*NodeStatus) DeepCopy

func (in *NodeStatus) DeepCopy() *NodeStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeStatus.

func (*NodeStatus) DeepCopyInto

func (in *NodeStatus) DeepCopyInto(out *NodeStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OIDCConfig

type OIDCConfig struct {
	// Issuer is the URL of the identity service.
	Issuer string `json:"issuer"`
	// RedirectURI is the redirect URI to be used for the OIDC flow against the upstream IdP.
	// If none is specified, the Greenhouse ID proxy will be used.
	RedirectURI string `json:"redirectURI,omitempty"`
	// ClientIDReference references the Kubernetes secret containing the client id.
	ClientIDReference SecretKeyReference `json:"clientIDReference"`
	// ClientSecretReference references the Kubernetes secret containing the client secret.
	ClientSecretReference SecretKeyReference `json:"clientSecretReference"`
	// OAuth2ClientRedirectURIs are a registered set of redirect URIs. When redirecting from the idproxy to
	// the client application, the URI requested to redirect to must be contained in this list.
	OAuth2ClientRedirectURIs []string `json:"oauth2ClientRedirectURIs,omitempty"`
}

func (*OIDCConfig) DeepCopy

func (in *OIDCConfig) DeepCopy() *OIDCConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCConfig.

func (*OIDCConfig) DeepCopyInto

func (in *OIDCConfig) DeepCopyInto(out *OIDCConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Organization

type Organization struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   OrganizationSpec   `json:"spec,omitempty"`
	Status OrganizationStatus `json:"status,omitempty"`
}

Organization is the Schema for the organizations API

func (*Organization) DeepCopy

func (in *Organization) DeepCopy() *Organization

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Organization.

func (*Organization) DeepCopyInto

func (in *Organization) DeepCopyInto(out *Organization)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Organization) DeepCopyObject

func (in *Organization) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Organization) GetConditions

func (*Organization) SetCondition

func (o *Organization) SetCondition(condition greenhousemetav1alpha1.Condition)

type OrganizationList

type OrganizationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Organization `json:"items"`
}

OrganizationList contains a list of Organization

func (*OrganizationList) DeepCopy

func (in *OrganizationList) DeepCopy() *OrganizationList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrganizationList.

func (*OrganizationList) DeepCopyInto

func (in *OrganizationList) DeepCopyInto(out *OrganizationList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OrganizationList) DeepCopyObject

func (in *OrganizationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type OrganizationSpec

type OrganizationSpec struct {
	// DisplayName is an optional name for the organization to be displayed in the Greenhouse UI.
	// Defaults to a normalized version of metadata.name.
	DisplayName string `json:"displayName,omitempty"`

	// Authentication configures the organizations authentication mechanism.
	Authentication *Authentication `json:"authentication,omitempty"`

	// Description provides additional details of the organization.
	Description string `json:"description,omitempty"`

	// MappedOrgAdminIDPGroup is the IDP group ID identifying org admins
	MappedOrgAdminIDPGroup string `json:"mappedOrgAdminIdPGroup,omitempty"`
}

OrganizationSpec defines the desired state of Organization

func (*OrganizationSpec) DeepCopy

func (in *OrganizationSpec) DeepCopy() *OrganizationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrganizationSpec.

func (*OrganizationSpec) DeepCopyInto

func (in *OrganizationSpec) DeepCopyInto(out *OrganizationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OrganizationSpec) GetSCIMConfig

func (o *OrganizationSpec) GetSCIMConfig() *SCIMConfig

type OrganizationStatus

type OrganizationStatus struct {
	// StatusConditions contain the different conditions that constitute the status of the Organization.
	greenhousemetav1alpha1.StatusConditions `json:"statusConditions,omitempty"`
}

OrganizationStatus defines the observed state of an Organization

func (*OrganizationStatus) DeepCopy

func (in *OrganizationStatus) DeepCopy() *OrganizationStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrganizationStatus.

func (*OrganizationStatus) DeepCopyInto

func (in *OrganizationStatus) DeepCopyInto(out *OrganizationStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Plugin

type Plugin struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PluginSpec   `json:"spec,omitempty"`
	Status PluginStatus `json:"status,omitempty"`
}

Plugin is the Schema for the plugins API

func (*Plugin) DeepCopy

func (in *Plugin) DeepCopy() *Plugin

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plugin.

func (*Plugin) DeepCopyInto

func (in *Plugin) DeepCopyInto(out *Plugin)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Plugin) DeepCopyObject

func (in *Plugin) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Plugin) GetConditions

func (o *Plugin) GetConditions() greenhousemetav1alpha1.StatusConditions

func (*Plugin) SetCondition

func (o *Plugin) SetCondition(condition greenhousemetav1alpha1.Condition)

type PluginDefinition

type PluginDefinition struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PluginDefinitionSpec   `json:"spec,omitempty"`
	Status PluginDefinitionStatus `json:"status,omitempty"`
}

PluginDefinition is the Schema for the PluginDefinitions API

func (*PluginDefinition) DeepCopy

func (in *PluginDefinition) DeepCopy() *PluginDefinition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginDefinition.

func (*PluginDefinition) DeepCopyInto

func (in *PluginDefinition) DeepCopyInto(out *PluginDefinition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PluginDefinition) DeepCopyObject

func (in *PluginDefinition) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PluginDefinitionList

type PluginDefinitionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PluginDefinition `json:"items"`
}

PluginDefinitionList contains a list of PluginDefinition

func (*PluginDefinitionList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginDefinitionList.

func (*PluginDefinitionList) DeepCopyInto

func (in *PluginDefinitionList) DeepCopyInto(out *PluginDefinitionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PluginDefinitionList) DeepCopyObject

func (in *PluginDefinitionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PluginDefinitionSpec

type PluginDefinitionSpec struct {
	// DisplayName provides a human-readable label for the pluginDefinition.
	DisplayName string `json:"displayName,omitempty"`

	// Description provides additional details of the pluginDefinition.
	Description string `json:"description,omitempty"`

	// HelmChart specifies where the Helm Chart for this pluginDefinition can be found.
	HelmChart *HelmChartReference `json:"helmChart,omitempty"`

	// UIApplication specifies a reference to a UI application
	UIApplication *UIApplicationReference `json:"uiApplication,omitempty"`

	// RequiredValues is a list of values required to create an instance of this PluginDefinition.
	Options []PluginOption `json:"options,omitempty"`

	// Version of this pluginDefinition
	Version string `json:"version"`

	// Weight configures the order in which Plugins are shown in the Greenhouse UI.
	// Defaults to alphabetical sorting if not provided or on conflict.
	Weight *int32 `json:"weight,omitempty"`

	// Icon specifies the icon to be used for this plugin in the Greenhouse UI.
	// Icons can be either:
	// - A string representing a juno icon in camel case from this list: https://github.com/sapcc/juno/blob/main/libs/juno-ui-components/src/components/Icon/Icon.component.js#L6-L52
	// - A publicly accessible image reference to a .png file. Will be displayed 100x100px
	Icon string `json:"icon,omitempty"`

	// DocMarkDownUrl specifies the URL to the markdown documentation file for this plugin.
	// Source needs to allow all CORS origins.
	DocMarkDownUrl string `json:"docMarkDownUrl,omitempty"` //nolint:stylecheck
}

PluginDefinitionSpec defines the desired state of PluginDefinitionSpec

func (*PluginDefinitionSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginDefinitionSpec.

func (*PluginDefinitionSpec) DeepCopyInto

func (in *PluginDefinitionSpec) DeepCopyInto(out *PluginDefinitionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PluginDefinitionStatus

type PluginDefinitionStatus struct{}

PluginDefinitionStatus defines the observed state of PluginDefinition

func (*PluginDefinitionStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginDefinitionStatus.

func (*PluginDefinitionStatus) DeepCopyInto

func (in *PluginDefinitionStatus) DeepCopyInto(out *PluginDefinitionStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PluginList

type PluginList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Plugin `json:"items"`
}

PluginList contains a list of Plugin

func (*PluginList) DeepCopy

func (in *PluginList) DeepCopy() *PluginList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginList.

func (*PluginList) DeepCopyInto

func (in *PluginList) DeepCopyInto(out *PluginList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PluginList) DeepCopyObject

func (in *PluginList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PluginOption

type PluginOption struct {
	// Name/Key of the config option.
	Name string `json:"name"`

	// Default provides a default value for the option
	// +optional
	Default *apiextensionsv1.JSON `json:"default,omitempty"`

	// Description provides a human-readable text for the value as shown in the UI.
	Description string `json:"description,omitempty"`

	// DisplayName provides a human-readable label for the configuration option
	DisplayName string `json:"displayName,omitempty"`

	// Required indicates that this config option is required
	Required bool `json:"required"`

	// Type of this configuration option.
	Type PluginOptionType `json:"type"`

	// Regex specifies a match rule for validating configuration options.
	Regex string `json:"regex,omitempty"`
}

func (*PluginOption) DeepCopy

func (in *PluginOption) DeepCopy() *PluginOption

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginOption.

func (*PluginOption) DeepCopyInto

func (in *PluginOption) DeepCopyInto(out *PluginOption)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PluginOption) DefaultValue

func (p *PluginOption) DefaultValue() (any, error)

GetDefault returns the default value for this option.

func (*PluginOption) IsValid

func (p *PluginOption) IsValid() error

IsValid returns nil if the PluginOption default is valid. An error is returned for unknown types or if type of the option and value of the default do not match.

func (*PluginOption) IsValidValue

func (p *PluginOption) IsValidValue(val *apiextensionsv1.JSON) error

IsValidValue returns nil if the given value is valid for this PluginOption. An error is returned if val does not match the type of the PluginOption.

type PluginOptionType

type PluginOptionType string

PluginOptionType specifies the type of PluginOption. +kubebuilder:validation:Enum=string;secret;bool;int;list;map

const (
	// PluginOptionTypeString is a valid value for PluginOptionType.
	PluginOptionTypeString PluginOptionType = "string"
	// PluginOptionTypeSecret is a valid value for PluginOptionType.
	PluginOptionTypeSecret PluginOptionType = "secret"
	// PluginOptionTypeBool is a valid value for PluginOptionType.
	PluginOptionTypeBool PluginOptionType = "bool"
	// PluginOptionTypeInt is a valid value for PluginOptionType.
	PluginOptionTypeInt PluginOptionType = "int"
	// PluginOptionTypeList is a valid value for PluginOptionType.
	PluginOptionTypeList PluginOptionType = "list"
	// PluginOptionTypeMap is a valid value for PluginOptionType.
	PluginOptionTypeMap PluginOptionType = "map"
)

type PluginOptionValue

type PluginOptionValue struct {
	// Name of the values.
	Name string `json:"name"`
	// Value is the actual value in plain text.
	Value *apiextensionsv1.JSON `json:"value,omitempty"`
	// ValueFrom references a potentially confidential value in another source.
	ValueFrom *ValueFromSource `json:"valueFrom,omitempty"`
}

PluginOptionValue is the value for a PluginOption.

func (*PluginOptionValue) DeepCopy

func (in *PluginOptionValue) DeepCopy() *PluginOptionValue

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginOptionValue.

func (*PluginOptionValue) DeepCopyInto

func (in *PluginOptionValue) DeepCopyInto(out *PluginOptionValue)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PluginOptionValue) ValueJSON

func (v *PluginOptionValue) ValueJSON() string

ValueJSON returns the value as JSON.

type PluginPreset

type PluginPreset struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PluginPresetSpec   `json:"spec,omitempty"`
	Status PluginPresetStatus `json:"status,omitempty"`
}

PluginPreset is the Schema for the PluginPresets API

func (*PluginPreset) DeepCopy

func (in *PluginPreset) DeepCopy() *PluginPreset

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginPreset.

func (*PluginPreset) DeepCopyInto

func (in *PluginPreset) DeepCopyInto(out *PluginPreset)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PluginPreset) DeepCopyObject

func (in *PluginPreset) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*PluginPreset) GetConditions

func (*PluginPreset) SetCondition

func (c *PluginPreset) SetCondition(condition greenhousemetav1alpha1.Condition)

type PluginPresetList

type PluginPresetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PluginPreset `json:"items"`
}

PluginPresetList contains a list of PluginPresets

func (*PluginPresetList) DeepCopy

func (in *PluginPresetList) DeepCopy() *PluginPresetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginPresetList.

func (*PluginPresetList) DeepCopyInto

func (in *PluginPresetList) DeepCopyInto(out *PluginPresetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PluginPresetList) DeepCopyObject

func (in *PluginPresetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PluginPresetSpec

type PluginPresetSpec struct {

	// PluginSpec is the spec of the plugin to be deployed by the PluginPreset.
	Plugin PluginSpec `json:"plugin"`

	// ClusterSelector is a label selector to select the clusters the plugin bundle should be deployed to.
	ClusterSelector metav1.LabelSelector `json:"clusterSelector"`

	// ClusterOptionOverrides define plugin option values to override by the PluginPreset
	// +kubebuilder:validation:Optional
	ClusterOptionOverrides []ClusterOptionOverride `json:"clusterOptionOverrides,omitempty"`
}

PluginPresetSpec defines the desired state of PluginPreset

func (*PluginPresetSpec) DeepCopy

func (in *PluginPresetSpec) DeepCopy() *PluginPresetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginPresetSpec.

func (*PluginPresetSpec) DeepCopyInto

func (in *PluginPresetSpec) DeepCopyInto(out *PluginPresetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PluginPresetStatus

type PluginPresetStatus struct {
	// StatusConditions contain the different conditions that constitute the status of the PluginPreset.
	greenhousemetav1alpha1.StatusConditions `json:"statusConditions,omitempty"`

	// PluginStatuses contains statuses of Plugins managed by the PluginPreset.
	PluginStatuses []ManagedPluginStatus `json:"pluginStatuses,omitempty"`
	// AvailablePlugins is the number of available Plugins managed by the PluginPreset.
	AvailablePlugins int `json:"availablePlugins,omitempty"`
	// ReadyPlugins is the number of ready Plugins managed by the PluginPreset.
	ReadyPlugins int `json:"readyPlugins,omitempty"`
	// FailedPlugins is the number of failed Plugins managed by the PluginPreset.
	FailedPlugins int `json:"failedPlugins,omitempty"`
}

PluginPresetStatus defines the observed state of PluginPreset

func (*PluginPresetStatus) DeepCopy

func (in *PluginPresetStatus) DeepCopy() *PluginPresetStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginPresetStatus.

func (*PluginPresetStatus) DeepCopyInto

func (in *PluginPresetStatus) DeepCopyInto(out *PluginPresetStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PluginSpec

type PluginSpec struct {
	// PluginDefinition is the name of the PluginDefinition this instance is for.
	PluginDefinition string `json:"pluginDefinition"`

	// DisplayName is an optional name for the Plugin to be displayed in the Greenhouse UI.
	// This is especially helpful to distinguish multiple instances of a PluginDefinition in the same context.
	// Defaults to a normalized version of metadata.name.
	DisplayName string `json:"displayName,omitempty"`

	// Values are the values for a PluginDefinition instance.
	OptionValues []PluginOptionValue `json:"optionValues,omitempty"`

	// ClusterName is the name of the cluster the plugin is deployed to. If not set, the plugin is deployed to the greenhouse cluster.
	ClusterName string `json:"clusterName,omitempty"`

	// ReleaseNamespace is the namespace in the remote cluster to which the backend is deployed.
	// Defaults to the Greenhouse managed namespace if not set.
	ReleaseNamespace string `json:"releaseNamespace,omitempty"`
}

PluginSpec defines the desired state of Plugin

func (*PluginSpec) DeepCopy

func (in *PluginSpec) DeepCopy() *PluginSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginSpec.

func (*PluginSpec) DeepCopyInto

func (in *PluginSpec) DeepCopyInto(out *PluginSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PluginStatus

type PluginStatus struct {
	// HelmReleaseStatus reflects the status of the latest HelmChart release.
	// This is only configured if the pluginDefinition is backed by HelmChart.
	HelmReleaseStatus *HelmReleaseStatus `json:"helmReleaseStatus,omitempty"`

	// Version contains the latest pluginDefinition version the config was last applied with successfully.
	Version string `json:"version,omitempty"`

	// HelmChart contains a reference the helm chart used for the deployed pluginDefinition version.
	HelmChart *HelmChartReference `json:"helmChart,omitempty"`

	// UIApplication contains a reference to the frontend that is used for the deployed pluginDefinition version.
	UIApplication *UIApplicationReference `json:"uiApplication,omitempty"`

	// Weight configures the order in which Plugins are shown in the Greenhouse UI.
	Weight *int32 `json:"weight,omitempty"`

	// Description provides additional details of the plugin.
	Description string `json:"description,omitempty"`

	// ExposedServices provides an overview of the Plugins services that are centrally exposed.
	// It maps the exposed URL to the service found in the manifest.
	ExposedServices map[string]Service `json:"exposedServices,omitempty"`

	// StatusConditions contain the different conditions that constitute the status of the Plugin.
	greenhousemetav1alpha1.StatusConditions `json:"statusConditions,omitempty"`
}

PluginStatus defines the observed state of Plugin

func (*PluginStatus) DeepCopy

func (in *PluginStatus) DeepCopy() *PluginStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginStatus.

func (*PluginStatus) DeepCopyInto

func (in *PluginStatus) DeepCopyInto(out *PluginStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PropagationStatus

type PropagationStatus struct {
	// ClusterName is the name of the cluster the rbacv1 resources are created on.
	ClusterName string `json:"clusterName"`
	// Condition is the overall Status of the rbacv1 resources created on the cluster
	greenhousemetav1alpha1.Condition `json:"condition,omitempty"`
}

PropagationStatus defines the observed state of the TeamRoleBinding's associated rbacv1 resources on a Cluster

func (*PropagationStatus) DeepCopy

func (in *PropagationStatus) DeepCopy() *PropagationStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PropagationStatus.

func (*PropagationStatus) DeepCopyInto

func (in *PropagationStatus) DeepCopyInto(out *PropagationStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SCIMConfig

type SCIMConfig struct {
	// URL to the SCIM server.
	BaseURL string `json:"baseURL"`
	// AuthType defined possible authentication type
	// +kubebuilder:validation:Enum=basic;token
	// +kubebuilder:default="basic"
	AuthType scim.AuthType `json:"authType,omitempty"`
	// User to be used for basic authentication.
	BasicAuthUser *ValueFromSource `json:"basicAuthUser,omitempty"`
	// Password to be used for basic authentication.
	BasicAuthPw *ValueFromSource `json:"basicAuthPw,omitempty"`
	// BearerToken to be used for bearer token authorization
	BearerToken *ValueFromSource `json:"bearerToken,omitempty"`
	// BearerPrefix to be used to defined bearer token prefix
	BearerPrefix string `json:"bearerPrefix,omitempty"`
	// BearerHeader to be used to defined bearer token header
	BearerHeader string `json:"bearerHeader,omitempty"`
}

func (*SCIMConfig) DeepCopy

func (in *SCIMConfig) DeepCopy() *SCIMConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SCIMConfig.

func (*SCIMConfig) DeepCopyInto

func (in *SCIMConfig) DeepCopyInto(out *SCIMConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretKeyReference

type SecretKeyReference struct {
	// Name of the secret in the same namespace.
	Name string `json:"name"`
	// Key in the secret to select the value from.
	Key string `json:"key"`
}

SecretKeyReference specifies the secret and key containing the value.

func (*SecretKeyReference) DeepCopy

func (in *SecretKeyReference) DeepCopy() *SecretKeyReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeyReference.

func (*SecretKeyReference) DeepCopyInto

func (in *SecretKeyReference) DeepCopyInto(out *SecretKeyReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Service

type Service struct {
	// Namespace is the namespace of the service in the target cluster.
	Namespace string `json:"namespace"`
	// Name is the name of the service in the target cluster.
	Name string `json:"name"`
	// Port is the port of the service.
	Port int32 `json:"port"`
	// Protocol is the protocol of the service.
	Protocol *string `json:"protocol,omitempty"`
}

Service references a Kubernetes service of a Plugin.

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Team

type Team struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TeamSpec   `json:"spec,omitempty"`
	Status TeamStatus `json:"status,omitempty"`
}

Team is the Schema for the teams API

func (*Team) DeepCopy

func (in *Team) DeepCopy() *Team

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Team.

func (*Team) DeepCopyInto

func (in *Team) DeepCopyInto(out *Team)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Team) DeepCopyObject

func (in *Team) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Team) GetConditions

func (o *Team) GetConditions() greenhousemetav1alpha1.StatusConditions

func (*Team) SetCondition

func (o *Team) SetCondition(condition greenhousemetav1alpha1.Condition)

type TeamList

type TeamList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Team `json:"items"`
}

TeamList contains a list of Team

func (*TeamList) DeepCopy

func (in *TeamList) DeepCopy() *TeamList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamList.

func (*TeamList) DeepCopyInto

func (in *TeamList) DeepCopyInto(out *TeamList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TeamList) DeepCopyObject

func (in *TeamList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TeamMembership

type TeamMembership struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TeamMembershipSpec   `json:"spec,omitempty"`
	Status TeamMembershipStatus `json:"status,omitempty"`
}

TeamMembership is the Schema for the teammemberships API

func (*TeamMembership) DeepCopy

func (in *TeamMembership) DeepCopy() *TeamMembership

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamMembership.

func (*TeamMembership) DeepCopyInto

func (in *TeamMembership) DeepCopyInto(out *TeamMembership)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TeamMembership) DeepCopyObject

func (in *TeamMembership) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TeamMembershipList

type TeamMembershipList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TeamMembership `json:"items"`
}

TeamMembershipList contains a list of TeamMembership

func (*TeamMembershipList) DeepCopy

func (in *TeamMembershipList) DeepCopy() *TeamMembershipList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamMembershipList.

func (*TeamMembershipList) DeepCopyInto

func (in *TeamMembershipList) DeepCopyInto(out *TeamMembershipList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TeamMembershipList) DeepCopyObject

func (in *TeamMembershipList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TeamMembershipSpec

type TeamMembershipSpec struct {
	// Members list users that are part of a team.
	// +optional
	Members []User `json:"members,omitempty"`
}

TeamMembershipSpec defines the desired state of TeamMembership

func (*TeamMembershipSpec) DeepCopy

func (in *TeamMembershipSpec) DeepCopy() *TeamMembershipSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamMembershipSpec.

func (*TeamMembershipSpec) DeepCopyInto

func (in *TeamMembershipSpec) DeepCopyInto(out *TeamMembershipSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TeamMembershipStatus

type TeamMembershipStatus struct {
	// LastSyncedTime is the information when was the last time the membership was synced
	// +optional
	LastSyncedTime *metav1.Time `json:"lastSyncedTime,omitempty"`
	// LastChangedTime is the information when was the last time the membership was actually changed
	// +optional
	LastChangedTime *metav1.Time `json:"lastUpdateTime,omitempty"`
	// StatusConditions contain the different conditions that constitute the status of the TeamMembership.
	greenhousemetav1alpha1.StatusConditions `json:"statusConditions,omitempty"`
}

TeamMembershipStatus defines the observed state of TeamMembership

func (*TeamMembershipStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamMembershipStatus.

func (*TeamMembershipStatus) DeepCopyInto

func (in *TeamMembershipStatus) DeepCopyInto(out *TeamMembershipStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TeamRole

type TeamRole struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TeamRoleSpec   `json:"spec,omitempty"`
	Status TeamRoleStatus `json:"status,omitempty"`
}

TeamRole is the Schema for the TeamRoles API

func (*TeamRole) DeepCopy

func (in *TeamRole) DeepCopy() *TeamRole

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamRole.

func (*TeamRole) DeepCopyInto

func (in *TeamRole) DeepCopyInto(out *TeamRole)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TeamRole) DeepCopyObject

func (in *TeamRole) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*TeamRole) GetRBACName

func (tr *TeamRole) GetRBACName() string

GetRBACName returns the name of the rbacv1.ClusterRole that will be created on the remote cluster

type TeamRoleBinding

type TeamRoleBinding struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TeamRoleBindingSpec   `json:"spec,omitempty"`
	Status TeamRoleBindingStatus `json:"status,omitempty"`
}

TeamRoleBinding is the Schema for the rolebindings API

func (*TeamRoleBinding) DeepCopy

func (in *TeamRoleBinding) DeepCopy() *TeamRoleBinding

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamRoleBinding.

func (*TeamRoleBinding) DeepCopyInto

func (in *TeamRoleBinding) DeepCopyInto(out *TeamRoleBinding)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TeamRoleBinding) DeepCopyObject

func (in *TeamRoleBinding) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*TeamRoleBinding) GetConditions

func (*TeamRoleBinding) GetRBACName

func (trb *TeamRoleBinding) GetRBACName() string

GetRBACName returns the name of the rbacv1.RoleBinding or rbacv1.ClusterRoleBinding that will be created on the remote cluster

func (*TeamRoleBinding) RemovePropagationStatus

func (trb *TeamRoleBinding) RemovePropagationStatus(cluster string)

RemovePropagationStatus removes a condition for the Cluster from TeamRoleBinding's PropagationStatus

func (*TeamRoleBinding) SetCondition

func (trb *TeamRoleBinding) SetCondition(condition greenhousemetav1alpha1.Condition)

func (*TeamRoleBinding) SetPropagationStatus

func (trb *TeamRoleBinding) SetPropagationStatus(cluster string, rbacReady metav1.ConditionStatus, reason greenhousemetav1alpha1.ConditionReason, message string)

SetPropagationStatus updates the TeamRoleBinding's PropagationStatus for the Cluster

type TeamRoleBindingList

type TeamRoleBindingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TeamRoleBinding `json:"items"`
}

TeamRoleBindingList contains a list of RoleBinding

func (*TeamRoleBindingList) DeepCopy

func (in *TeamRoleBindingList) DeepCopy() *TeamRoleBindingList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamRoleBindingList.

func (*TeamRoleBindingList) DeepCopyInto

func (in *TeamRoleBindingList) DeepCopyInto(out *TeamRoleBindingList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TeamRoleBindingList) DeepCopyObject

func (in *TeamRoleBindingList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TeamRoleBindingSpec

type TeamRoleBindingSpec struct {
	// TeamRoleRef references a Greenhouse TeamRole by name
	TeamRoleRef string `json:"teamRoleRef,omitempty"`
	// TeamRef references a Greenhouse Team by name
	TeamRef string `json:"teamRef,omitempty"`
	// Usernames defines list of users to add to the (Cluster-)RoleBindings
	Usernames []string `json:"usernames,omitempty"`
	// ClusterName is the name of the cluster the rbacv1 resources are created on.
	ClusterName string `json:"clusterName,omitempty"`
	// ClusterSelector is a label selector to select the Clusters the TeamRoleBinding should be deployed to.
	ClusterSelector metav1.LabelSelector `json:"clusterSelector,omitempty"`
	// Namespaces is a list of namespaces in the Greenhouse Clusters to apply the RoleBinding to.
	// If empty, a ClusterRoleBinding will be created on the remote cluster, otherwise a RoleBinding per namespace.
	Namespaces []string `json:"namespaces,omitempty"`
	// CreateNamespaces when enabled the controller will create namespaces for RoleBindings if they do not exist.
	// +kubebuilder:default:=false
	CreateNamespaces bool `json:"createNamespaces,omitempty"`
}

TeamRoleBindingSpec defines the desired state of a TeamRoleBinding

func (*TeamRoleBindingSpec) DeepCopy

func (in *TeamRoleBindingSpec) DeepCopy() *TeamRoleBindingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamRoleBindingSpec.

func (*TeamRoleBindingSpec) DeepCopyInto

func (in *TeamRoleBindingSpec) DeepCopyInto(out *TeamRoleBindingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TeamRoleBindingStatus

type TeamRoleBindingStatus struct {
	// StatusConditions contain the different conditions that constitute the status of the TeamRoleBinding.
	greenhousemetav1alpha1.StatusConditions `json:"statusConditions,omitempty"`
	// PropagationStatus is the list of clusters the TeamRoleBinding is applied to
	// +listType="map"
	// +listMapKey=clusterName
	PropagationStatus []PropagationStatus `json:"clusters,omitempty"`
}

TeamRoleBindingStatus defines the observed state of the TeamRoleBinding

func (*TeamRoleBindingStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamRoleBindingStatus.

func (*TeamRoleBindingStatus) DeepCopyInto

func (in *TeamRoleBindingStatus) DeepCopyInto(out *TeamRoleBindingStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TeamRoleList

type TeamRoleList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TeamRole `json:"items"`
}

TeamRoleList contains a list of Role

func (*TeamRoleList) DeepCopy

func (in *TeamRoleList) DeepCopy() *TeamRoleList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamRoleList.

func (*TeamRoleList) DeepCopyInto

func (in *TeamRoleList) DeepCopyInto(out *TeamRoleList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TeamRoleList) DeepCopyObject

func (in *TeamRoleList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TeamRoleSpec

type TeamRoleSpec struct {
	// Rules is a list of rbacv1.PolicyRules used on a managed RBAC (Cluster)Role
	Rules []rbacv1.PolicyRule `json:"rules,omitempty"`

	// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole on the remote cluster
	AggregationRule *rbacv1.AggregationRule `json:"aggregationRule,omitempty"`

	// Labels are applied to the ClusterRole created on the remote cluster.
	// This allows using TeamRoles as part of AggregationRules by other TeamRoles
	Labels map[string]string `json:"labels,omitempty"`
}

TeamRoleSpec defines the desired state of a TeamRole

func (*TeamRoleSpec) DeepCopy

func (in *TeamRoleSpec) DeepCopy() *TeamRoleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamRoleSpec.

func (*TeamRoleSpec) DeepCopyInto

func (in *TeamRoleSpec) DeepCopyInto(out *TeamRoleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TeamRoleStatus

type TeamRoleStatus struct{}

TeamRoleStatus defines the observed state of a TeamRole

func (*TeamRoleStatus) DeepCopy

func (in *TeamRoleStatus) DeepCopy() *TeamRoleStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamRoleStatus.

func (*TeamRoleStatus) DeepCopyInto

func (in *TeamRoleStatus) DeepCopyInto(out *TeamRoleStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TeamSpec

type TeamSpec struct {
	// Description provides additional details of the team.
	Description string `json:"description,omitempty"`
	// IdP group id matching team.
	MappedIDPGroup string `json:"mappedIdPGroup,omitempty"`
	// URL to join the IdP group.
	JoinURL string `json:"joinUrl,omitempty"`
}

TeamSpec defines the desired state of Team

func (*TeamSpec) DeepCopy

func (in *TeamSpec) DeepCopy() *TeamSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamSpec.

func (*TeamSpec) DeepCopyInto

func (in *TeamSpec) DeepCopyInto(out *TeamSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TeamStatus

type TeamStatus struct {
	StatusConditions greenhousemetav1alpha1.StatusConditions `json:"statusConditions"`
	Members          []User                                  `json:"members,omitempty"`
}

TeamStatus defines the observed state of Team

func (*TeamStatus) DeepCopy

func (in *TeamStatus) DeepCopy() *TeamStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamStatus.

func (*TeamStatus) DeepCopyInto

func (in *TeamStatus) DeepCopyInto(out *TeamStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UIApplicationReference

type UIApplicationReference struct {
	// URL specifies the url to a built javascript asset.
	// By default, assets are loaded from the Juno asset server using the provided name and version.
	URL string `json:"url,omitempty"`

	// Name of the UI application.
	Name string `json:"name"`

	// Version of the frontend application.
	Version string `json:"version"`
}

UIApplicationReference references the UI pluginDefinition to use.

func (*UIApplicationReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UIApplicationReference.

func (*UIApplicationReference) DeepCopyInto

func (in *UIApplicationReference) DeepCopyInto(out *UIApplicationReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type User

type User struct {
	// ID is the unique identifier of the user.
	ID string `json:"id"`
	// FirstName of the user.
	FirstName string `json:"firstName"`
	// LastName of the user.
	LastName string `json:"lastName"`
	// Email of the user.
	Email string `json:"email"`
}

User specifies a human person.

func (*User) DeepCopy

func (in *User) DeepCopy() *User

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User.

func (*User) DeepCopyInto

func (in *User) DeepCopyInto(out *User)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ValueFromSource

type ValueFromSource struct {
	// Secret references the secret containing the value.
	Secret *SecretKeyReference `json:"secret,omitempty"`
}

ValueFromSource is a valid source for a value.

func (*ValueFromSource) DeepCopy

func (in *ValueFromSource) DeepCopy() *ValueFromSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueFromSource.

func (*ValueFromSource) DeepCopyInto

func (in *ValueFromSource) DeepCopyInto(out *ValueFromSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL