Documentation
¶
Overview ¶
+kubebuilder:object:generate=true +groupName=core.open-control-plane.io
Index ¶
Constants ¶
const ( // DefaultOIDCProviderName is the identifier for the default OIDC provider. DefaultOIDCProviderName = "openmcp" // DefaultMCPClusterPurpose is the default purpose for ManagedControlPlane clusters. DefaultMCPClusterPurpose = "mcp" )
const ( MCPNameLabel = OldGroupName + "/mcp-name" MCPNamespaceLabel = OldGroupName + "/mcp-namespace" OIDCProviderLabel = OldGroupName + "/oidc-provider" TokenProviderLabel = OldGroupName + "/token-provider" MCPPurposeOverrideLabel = OldGroupName + "/purpose" // ManagedPurposeMCPPurposeOverride is used as value for the managed purpose label. It must not be modified. ManagedPurposeMCPPurposeOverride = "mcp-purpose-override" // ManagedPurposeOIDCProviderNameUniqueness is used as value for the managed purpose label. It must not be modified. ManagedPurposeOIDCProviderNameUniqueness = "oidc-provider-name-uniqueness" MCPFinalizer = OldGroupName + "/mcp" // ClusterRequestFinalizerPrefix is the prefix for the finalizers that are added to MCP resources for cluster requests. ClusterRequestFinalizerPrefix = "request.clusters.openmcp.cloud/" )
const ( ConditionMeta = "Meta" ConditionClusterRequestReady = "ClusterRequestReady" ConditionClusterConditionsSynced = "ClusterConditionsSynced" ConditionPrefixClusterCondition = "Cluster." ConditionPrefixAccessReady = "AccessReady." ConditionAllAccessReady = "AllAccessReady" ConditionAllServicesDeleted = "AllServicesDeleted" ConditionAllClusterRequestsDeleted = "AllClusterRequestsDeleted" )
const ( OIDCNamePrefix = "oidc_" TokenNamePrefix = "token_" )
const GroupName = "core.open-control-plane.io"
const OldGroupName = "core.openmcp.cloud"
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v2alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = runtime.NewSchemeBuilder(func(scheme *runtime.Scheme) error { metav1.AddToGroupVersion(scheme, GroupVersion) return nil }) // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func RegisterToSchemeBuilder ¶ added in v0.20.0
Types ¶
type ControlPlane ¶ added in v1.0.0
type ControlPlane struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ControlPlaneSpec `json:"spec,omitempty"`
Status ControlPlaneStatus `json:"status,omitempty"`
}
func (*ControlPlane) DeepCopy ¶ added in v1.0.0
func (in *ControlPlane) DeepCopy() *ControlPlane
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlane.
func (*ControlPlane) DeepCopyInto ¶ added in v1.0.0
func (in *ControlPlane) DeepCopyInto(out *ControlPlane)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControlPlane) DeepCopyObject ¶ added in v1.0.0
func (in *ControlPlane) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ControlPlaneList ¶ added in v1.0.0
type ControlPlaneList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ControlPlane `json:"items"`
}
func (*ControlPlaneList) DeepCopy ¶ added in v1.0.0
func (in *ControlPlaneList) DeepCopy() *ControlPlaneList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneList.
func (*ControlPlaneList) DeepCopyInto ¶ added in v1.0.0
func (in *ControlPlaneList) DeepCopyInto(out *ControlPlaneList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControlPlaneList) DeepCopyObject ¶ added in v1.0.0
func (in *ControlPlaneList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ControlPlaneSpec ¶ added in v1.0.0
type ControlPlaneSpec struct {
// IAM contains the access management configuration for the ControlPlane.
IAM IAMConfig `json:"iam"`
}
func (*ControlPlaneSpec) DeepCopy ¶ added in v1.0.0
func (in *ControlPlaneSpec) DeepCopy() *ControlPlaneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneSpec.
func (*ControlPlaneSpec) DeepCopyInto ¶ added in v1.0.0
func (in *ControlPlaneSpec) DeepCopyInto(out *ControlPlaneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControlPlaneStatus ¶ added in v1.0.0
type ControlPlaneStatus struct {
commonapi.Status `json:",inline"`
// Access is a mapping from OIDC provider names to secret references.
// Each referenced secret is expected to contain a 'kubeconfig' key with the kubeconfig that was generated for the respective OIDC provider for the ControlPlane.
// The default OIDC provider, if configured, uses the name "default" in this mapping.
// The "default" key is also used if the ClusterProvider does not support OIDC-based access and created a serviceaccount with a token instead.
// +optional
Access map[string]commonapi.LocalObjectReference `json:"access,omitempty"`
// Endpoints is a list of exposed Cluster endpoints.
// +optional
Endpoints clustersv1alpha1.Endpoints `json:"endpoints,omitempty"`
}
func (*ControlPlaneStatus) DeepCopy ¶ added in v1.0.0
func (in *ControlPlaneStatus) DeepCopy() *ControlPlaneStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneStatus.
func (*ControlPlaneStatus) DeepCopyInto ¶ added in v1.0.0
func (in *ControlPlaneStatus) DeepCopyInto(out *ControlPlaneStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DefaultProviderConfig ¶ added in v0.15.0
type DefaultProviderConfig struct {
// RoleBindings is a list of subjects with (cluster) role bindings that should be created for them.
// These bindings refer to the standard OIDC provider. If empty, the standard OIDC provider is disabled.
// Note that the username prefix is added automatically to the subjects' names, it must not be explicitly specified here.
// +optional
RoleBindings []commonapi.RoleBindings `json:"roleBindings,omitempty"`
}
func (*DefaultProviderConfig) DeepCopy ¶ added in v0.15.0
func (in *DefaultProviderConfig) DeepCopy() *DefaultProviderConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultProviderConfig.
func (*DefaultProviderConfig) DeepCopyInto ¶ added in v0.15.0
func (in *DefaultProviderConfig) DeepCopyInto(out *DefaultProviderConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IAMConfig ¶
type IAMConfig struct {
// Tokens is a list of token-based access configurations.
// +optional
Tokens []TokenConfig `json:"tokens,omitempty"`
// OIDC is the OIDC-based access configuration.
OIDC *OIDCConfig `json:"oidc,omitempty"`
}
func (*IAMConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IAMConfig.
func (*IAMConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OIDCConfig ¶ added in v0.15.0
type OIDCConfig struct {
// DefaultProvider is the standard OIDC provider that is enabled for all ControlPlane resources.
DefaultProvider DefaultProviderConfig `json:"defaultProvider,omitempty"`
// ExtraProviders is a list of OIDC providers that should be configured for the ControlPlane.
// They are independent of the standard OIDC provider and in addition to it, unless it has been disabled by not specifying any role bindings.
// +optional
ExtraProviders []commonapi.OIDCProviderConfig `json:"extraProviders,omitempty"`
}
func (*OIDCConfig) DeepCopy ¶ added in v0.15.0
func (in *OIDCConfig) DeepCopy() *OIDCConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCConfig.
func (*OIDCConfig) DeepCopyInto ¶ added in v0.15.0
func (in *OIDCConfig) DeepCopyInto(out *OIDCConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TokenConfig ¶ added in v0.15.0
type TokenConfig struct {
// Name is the name of this token configuration.
// It is used to generate a secret name and must be unique among all token configurations in the same ControlPlane.
// +kubebuilder:validation:minLength=1
Name string `json:"name"`
clustersv1alpha1.TokenConfig `json:",inline"`
}
func (*TokenConfig) DeepCopy ¶ added in v0.15.0
func (in *TokenConfig) DeepCopy() *TokenConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenConfig.
func (*TokenConfig) DeepCopyInto ¶ added in v0.15.0
func (in *TokenConfig) DeepCopyInto(out *TokenConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.