Documentation
¶
Overview ¶
Package v1beta1 contains API Schema definitions for the operator v1beta1 API group +kubebuilder:object:generate=true +groupName=operator.kyma-project.io
Index ¶
- Constants
- Variables
- type CustomResourcePolicy
- type CustomStateCheck
- type FieldName
- type GatewayConfig
- type ImageSpec
- type InstallInfo
- type Kyma
- type KymaList
- type KymaSpec
- type KymaStatus
- type LastOperation
- type Manifest
- type ManifestList
- type ManifestSpec
- type Module
- type ModuleStatus
- type ModuleTemplate
- type ModuleTemplateList
- type ModuleTemplateSpec
- type PartialMeta
- type RefTypeMetadata
- type Resource
- type Service
- type State
- type Status
- type Sync
- type SyncStrategy
- type Target
- type TrackingObject
- type WatchableGVR
- type Watcher
- type WatcherList
- type WatcherSpec
- type WatcherStatus
Constants ¶
const ( // CustomResourcePolicyCreateAndDelete causes the Manifest to contain the default data provided in ModuleTemplate. // While Updates from the Data are never propagated, the resource is deleted on module removal. CustomResourcePolicyCreateAndDelete = "CreateAndDelete" // CustomResourcePolicyIgnore does not pass the Data from ModuleTemplate. // This ensures the user of the module is able to initialize the Module without any default configuration. // This is useful if another controller should manage module configuration as data and not be auto-initialized. // It can also be used to initialize controllers without interacting with them. CustomResourcePolicyIgnore = "Ignore" )
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{ Group: shared.OperatorGroup, 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 CustomResourcePolicy ¶
type CustomResourcePolicy string
CustomResourcePolicy determines how a ModuleTemplate should be parsed. When CustomResourcePolicy is set to CustomResourcePolicyCreateAndDelete, the Manifest will receive instructions to create it on installation with the default values provided in ModuleTemplate, and to remove it when the module or Kyma is deleted. +kubebuilder:validation:Enum=CreateAndDelete;Ignore
type CustomStateCheck ¶
type CustomStateCheck struct {
// JSONPath specifies the JSON path to the state variable in the Module CR
JSONPath string `json:"jsonPath" yaml:"jsonPath"`
// Value is the value at the JSONPath for which the Module CR state should map with MappedState
Value string `json:"value" yaml:"value"`
// MappedState is the Kyma CR State
MappedState State `json:"mappedState" yaml:"mappedState"`
}
func (*CustomStateCheck) DeepCopy ¶
func (in *CustomStateCheck) DeepCopy() *CustomStateCheck
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomStateCheck.
func (*CustomStateCheck) DeepCopyInto ¶
func (in *CustomStateCheck) DeepCopyInto(out *CustomStateCheck)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GatewayConfig ¶
type GatewayConfig struct {
// LabelSelector allows to select the Gateway using label selectors as defined in the K8s LIST API.
LabelSelector apimetav1.LabelSelector `json:"selector"`
}
GatewayConfig is used to select an Istio Gateway object in the cluster.
func (*GatewayConfig) DeepCopy ¶
func (in *GatewayConfig) DeepCopy() *GatewayConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfig.
func (*GatewayConfig) DeepCopyInto ¶
func (in *GatewayConfig) DeepCopyInto(out *GatewayConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageSpec ¶
type ImageSpec struct {
// Repo defines the Image repo
Repo string `json:"repo,omitempty"`
// Name defines the Image name
Name string `json:"name,omitempty"`
// Ref is either a sha value, tag or version
Ref string `json:"ref,omitempty"`
// Type specifies the type of installation specification
// that could be provided as part of a custom resource.
// This time is used in codec to successfully decode from raw extensions.
// +kubebuilder:validation:Enum=helm-chart;oci-ref;"kustomize";""
Type RefTypeMetadata `json:"type,omitempty"`
// Deprecated: Field will be removed soon and is not supported anymore.
CredSecretSelector *apimetav1.LabelSelector `json:"credSecretSelector,omitempty"`
}
ImageSpec defines OCI Image specifications. +k8s:deepcopy-gen=true
func (*ImageSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.
func (*ImageSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstallInfo ¶
type InstallInfo struct {
// Source in the ImageSpec format
// +kubebuilder:pruning:PreserveUnknownFields
Source machineryruntime.RawExtension `json:"source"`
// Name specifies a unique install name for Manifest
Name string `json:"name"`
}
InstallInfo defines installation information.
func (*InstallInfo) DeepCopy ¶
func (in *InstallInfo) DeepCopy() *InstallInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallInfo.
func (*InstallInfo) DeepCopyInto ¶
func (in *InstallInfo) DeepCopyInto(out *InstallInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Kyma ¶
type Kyma struct {
apimetav1.TypeMeta `json:",inline"`
apimetav1.ObjectMeta `json:"metadata,omitempty"`
Spec KymaSpec `json:"spec,omitempty"`
Status KymaStatus `json:"status,omitempty"`
}
Kyma is the Schema for the kymas API.
func (*Kyma) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Kyma.
func (*Kyma) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Kyma) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KymaList ¶
type KymaList struct {
apimetav1.TypeMeta `json:",inline"`
apimetav1.ListMeta `json:"metadata,omitempty"`
Items []Kyma `json:"items"`
}
KymaList contains a list of Kyma.
func (*KymaList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KymaList.
func (*KymaList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KymaList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KymaSpec ¶
type KymaSpec struct {
// Channel specifies the desired Channel of the Installation, usually targeting different module versions.
// +kubebuilder:validation:Pattern:=^[a-z]+$
// +kubebuilder:validation:MaxLength:=32
// +kubebuilder:validation:MinLength:=3
Channel string `json:"channel"`
// SkipMaintenanceWindows indicates whether module upgrades that require downtime
// should bypass the defined Maintenance Windows and be applied immediately.
SkipMaintenanceWindows bool `json:"skipMaintenanceWindows,omitempty"`
// Modules specifies the list of modules to be installed
Modules []Module `json:"modules,omitempty"`
// Active Synchronization Settings
// +optional
Sync Sync `json:"sync,omitempty"`
}
KymaSpec defines the desired state of Kyma.
func (*KymaSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KymaSpec.
func (*KymaSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KymaStatus ¶
type KymaStatus struct {
LastOperation `json:"lastOperation,omitempty"`
// State signifies current state of Kyma.
// Value can be one of ("Ready", "Processing", "Warning", "Error", "Deleting").
// Note: The requeue interval in Error State is subject to rate limiting.
State State `json:"state,omitempty"`
// List of status conditions to indicate the status of a ServiceInstance.
// +optional
// +listType=map
// +listMapKey=type
Conditions []apimetav1.Condition `json:"conditions,omitempty"`
// Contains essential information about the current deployed module
Modules []ModuleStatus `json:"modules,omitempty"`
// Active Channel
// +optional
ActiveChannel string `json:"activeChannel,omitempty"`
}
KymaStatus defines the observed state of Kyma.
func (*KymaStatus) DeepCopy ¶
func (in *KymaStatus) DeepCopy() *KymaStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KymaStatus.
func (*KymaStatus) DeepCopyInto ¶
func (in *KymaStatus) DeepCopyInto(out *KymaStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LastOperation ¶
type LastOperation struct {
Operation string `json:"operation"`
LastUpdateTime apimetav1.Time `json:"lastUpdateTime,omitempty"`
}
LastOperation defines the last operation from the control-loop. +k8s:deepcopy-gen=true
func (*LastOperation) DeepCopy ¶
func (in *LastOperation) DeepCopy() *LastOperation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LastOperation.
func (*LastOperation) DeepCopyInto ¶
func (in *LastOperation) DeepCopyInto(out *LastOperation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Manifest ¶
type Manifest struct {
apimetav1.TypeMeta `json:",inline"`
apimetav1.ObjectMeta `json:"metadata,omitempty"`
Spec ManifestSpec `json:"spec,omitempty"`
Status Status `json:"status,omitempty"`
}
Manifest is the Schema for the manifests API.
func (*Manifest) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Manifest.
func (*Manifest) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Manifest) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ManifestList ¶
type ManifestList struct {
apimetav1.TypeMeta `json:",inline"`
apimetav1.ListMeta `json:"metadata,omitempty"`
Items []Manifest `json:"items"`
}
ManifestList contains a list of Manifest.
func (*ManifestList) DeepCopy ¶
func (in *ManifestList) DeepCopy() *ManifestList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestList.
func (*ManifestList) DeepCopyInto ¶
func (in *ManifestList) DeepCopyInto(out *ManifestList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ManifestList) DeepCopyObject ¶
func (in *ManifestList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ManifestSpec ¶
type ManifestSpec struct {
// +kubebuilder:default:=CreateAndDelete
CustomResourcePolicy `json:"customResourcePolicy,omitempty"`
// Remote indicates if Manifest should be installed on a remote cluster
Remote bool `json:"remote"`
// Version specifies current Resource version
// +optional
Version string `json:"version,omitempty"`
// Config specifies OCI image configuration for Manifest
Config *ImageSpec `json:"config,omitempty"`
// Install specifies a list of installations for Manifest
Install InstallInfo `json:"install"`
// +kubebuilder:pruning:PreserveUnknownFields
// +kubebuilder:validation:XEmbeddedResource
// +nullable
// Resource specifies a resource to be watched for state updates
Resource *unstructured.Unstructured `json:"resource,omitempty"`
}
ManifestSpec defines the desired state of Manifest.
func (*ManifestSpec) DeepCopy ¶
func (in *ManifestSpec) DeepCopy() *ManifestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestSpec.
func (*ManifestSpec) DeepCopyInto ¶
func (in *ManifestSpec) DeepCopyInto(out *ManifestSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Module ¶
type Module struct {
// +kubebuilder:default:=CreateAndDelete
CustomResourcePolicy `json:"customResourcePolicy,omitempty"`
// Name is a unique identifier of the module.
// It is used to resolve a ModuleTemplate for creating a set of resources on the cluster.
//
// Name can only be the ModuleName label value of the module-template, e.g. operator.kyma-project.io/module-name=my-module
Name string `json:"name"`
// ControllerName is able to set the controller used for reconciliation of the module. It can be used
// together with Cache Configuration on the Operator responsible for the templated Modules to split
// workload.
ControllerName string `json:"controller,omitempty"`
// Channel is the desired channel of the Module. If this changes or is set, it will be used to resolve a new
// ModuleTemplate based on the new resolved resources.
// +kubebuilder:validation:Pattern:=^[a-z]+$
// +kubebuilder:validation:MaxLength:=32
// +kubebuilder:validation:MinLength:=3
Channel string `json:"channel,omitempty"`
// Version is the desired version of the Module. If this changes or is set, it will be used to resolve a new
// ModuleTemplate based on this specific version.
// The Version and Channel are mutually exclusive options.
// The regular expression come from here: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
// json:"-" to disable installation of specific versions until decided to roll this out
// see https://github.com/kyma-project/lifecycle-manager/issues/1847
Version string `json:"-"`
// RemoteModuleTemplateRef is deprecated and will no longer have any functionality.
// It will be removed in the upcoming API version.
RemoteModuleTemplateRef string `json:"remoteModuleTemplateRef,omitempty"`
// Managed is determining whether the module is managed or not. If the module is unmanaged, the user is responsible
// for the lifecycle of the module.
// +kubebuilder:default:=true
Managed bool `json:"managed"`
}
Module defines the components to be installed.
func (*Module) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Module.
func (*Module) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ModuleStatus ¶
type ModuleStatus struct {
// Name defines the name of the Module in the Spec that the status is used for.
// It can be any kind of Reference format supported by Module.Name.
Name string `json:"name"`
// FQDN is the fully qualified domain name of the module.
// In the ModuleTemplate it is located in .spec.descriptor.component.name of the ModuleTemplate
// FQDN is used to calculate Namespace and Name of the Manifest for tracking.
FQDN string `json:"fqdn,omitempty"`
// Channel tracks the active Channel of the Module. In Case it changes, the new Channel will have caused
// a new lookup to be necessary that maybe picks a different ModuleTemplate, which is why we need to reconcile.
Channel string `json:"channel,omitempty"`
// Channel tracks the active Version of the Module.
Version string `json:"version,omitempty"`
// Message is a human-readable message indicating details about the State.
Message string `json:"message,omitempty"`
// State of the Module in the currently tracked Generation
State State `json:"state"`
// Manifest contains the Information of a related Manifest
Manifest *TrackingObject `json:"manifest,omitempty"`
// Resource contains information about the created module CR.
Resource *TrackingObject `json:"resource,omitempty"`
// It contains information about the last parsed ModuleTemplate in Context of the Installation.
// This will update when Channel or the ModuleTemplate is changed.
// +optional
Template *TrackingObject `json:"template,omitempty"`
}
func (*ModuleStatus) DeepCopy ¶
func (in *ModuleStatus) DeepCopy() *ModuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleStatus.
func (*ModuleStatus) DeepCopyInto ¶
func (in *ModuleStatus) DeepCopyInto(out *ModuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ModuleTemplate ¶
type ModuleTemplate struct {
apimetav1.TypeMeta `json:",inline"`
apimetav1.ObjectMeta `json:"metadata,omitempty"`
Spec ModuleTemplateSpec `json:"spec,omitempty"`
}
func (*ModuleTemplate) DeepCopy ¶
func (in *ModuleTemplate) DeepCopy() *ModuleTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleTemplate.
func (*ModuleTemplate) DeepCopyInto ¶
func (in *ModuleTemplate) DeepCopyInto(out *ModuleTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ModuleTemplate) DeepCopyObject ¶
func (in *ModuleTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ModuleTemplateList ¶
type ModuleTemplateList struct {
apimetav1.TypeMeta `json:",inline"`
apimetav1.ListMeta `json:"metadata,omitempty"`
Items []ModuleTemplate `json:"items"`
}
ModuleTemplateList contains a list of ModuleTemplate.
func (*ModuleTemplateList) DeepCopy ¶
func (in *ModuleTemplateList) DeepCopy() *ModuleTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleTemplateList.
func (*ModuleTemplateList) DeepCopyInto ¶
func (in *ModuleTemplateList) DeepCopyInto(out *ModuleTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ModuleTemplateList) DeepCopyObject ¶
func (in *ModuleTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ModuleTemplateSpec ¶
type ModuleTemplateSpec struct {
// Channel is the targeted channel of the ModuleTemplate. It will be used to directly assign a Template
// to a target channel. It has to be provided at any given time.
// Deprecated: This field is deprecated and will be removed in a future release.
// +optional
// +kubebuilder:deprecatedversion
// +kubebuilder:validation:Pattern:=`^$|^[a-z]{3,}$`
// +kubebuilder:validation:MaxLength:=32
Channel string `json:"channel"`
// Mandatory indicates whether the module is mandatory. It is used to enforce the installation of the module with
// its configuration in all runtime clusters.
// +optional
Mandatory bool `json:"mandatory"`
// Data is the default set of attributes that are used to generate the Module. It contains a default set of values
// for a given channel, and is thus different from default values allocated during struct parsing of the Module.
// While Data can change after the initial creation of ModuleTemplate, it is not expected to be propagated to
// downstream modules as it is considered a set of default values. This means that an update of the data block
// will only propagate to new Modules created form ModuleTemplate, not any existing Module.
//
// +kubebuilder:pruning:PreserveUnknownFields
// +kubebuilder:validation:XEmbeddedResource
Data *unstructured.Unstructured `json:"data,omitempty"`
// The Descriptor is the Open Component Model Descriptor of a Module, containing all relevant information
// to correctly initialize a module (e.g. Charts, Manifests, References to Binaries and/or configuration)
// Name more information on Component Descriptors, see
// https://github.com/open-component-model/ocm
//
// It is translated inside the Lifecycle of the Cluster and will be used by downstream controllers
// to bootstrap and manage the module. This part is also propagated for every change of the template.
// This means for upgrades of the Descriptor, downstream controllers will also update the dependant modules
// (e.g. by updating the controller binary linked in a chart referenced in the descriptor)
//
// +kubebuilder:pruning:PreserveUnknownFields
Descriptor machineryruntime.RawExtension `json:"descriptor"`
// Target describes where the Module should later on be installed if parsed correctly. It is used as installation
// hint by downstream controllers to determine which client implementation to use for working with the Module
Target Target `json:"target"`
CustomStateCheck []*CustomStateCheck `json:"customStateCheck,omitempty"`
// RequiresDowntime indicates whether the module requires downtime in support of maintenance windows during module upgrades.
// +optional
RequiresDowntime bool `json:"requiresDowntime,omitempty"`
}
ModuleTemplateSpec defines the desired state of ModuleTemplate.
func (*ModuleTemplateSpec) DeepCopy ¶
func (in *ModuleTemplateSpec) DeepCopy() *ModuleTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleTemplateSpec.
func (*ModuleTemplateSpec) DeepCopyInto ¶
func (in *ModuleTemplateSpec) DeepCopyInto(out *ModuleTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PartialMeta ¶
type PartialMeta struct {
// Name must be unique within a namespace. Is required when creating resources, although
// some resources may allow a client to request the generation of an appropriate name
// automatically. Name is primarily intended for creation idempotence and configuration
// definition.
// Cannot be updated.
// More info: http://kubernetes.io/docs/user-guide/identifiers#names
// +optional
Name string `json:"name"`
// Namespace defines the space within which each name must be unique. An empty namespace is
// equivalent to the "default" namespace, but "default" is the canonical representation.
// Not all objects are required to be scoped to a namespace - the value of this field for
// those objects will be empty.
//
// Must be a DNS_LABEL.
// Cannot be updated.
// More info: http://kubernetes.io/docs/user-guide/namespaces
// +optional
Namespace string `json:"namespace"`
// A sequence number representing a specific generation of the desired state.
// Populated by the system. Read-only.
// +optional
Generation int64 `json:"generation,omitempty"`
}
PartialMeta is a subset of ObjectMeta that contains relevant information to track an Object. see https://github.com/kubernetes/apimachinery/blob/v0.26.1/pkg/apis/meta/v1/types.go#L111
func (*PartialMeta) DeepCopy ¶
func (in *PartialMeta) DeepCopy() *PartialMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartialMeta.
func (*PartialMeta) DeepCopyInto ¶
func (in *PartialMeta) DeepCopyInto(out *PartialMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RefTypeMetadata ¶
type RefTypeMetadata string
const ( OciRefType RefTypeMetadata = "oci-ref" OciDirType RefTypeMetadata = "oci-dir" )
type Resource ¶
type Resource struct {
apimetav1.GroupVersionKind `json:",inline"`
Name string `json:"name"`
Namespace string `json:"namespace"`
}
+k8s:deepcopy-gen=true
func (*Resource) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resource.
func (*Resource) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Resource) ToUnstructured ¶
func (r Resource) ToUnstructured() *unstructured.Unstructured
type Service ¶
type Service struct {
// Port describes the service port.
Port int64 `json:"port"`
// Name describes the service name.
Name string `json:"name"`
// Namespace describes the service namespace.
Namespace string `json:"namespace"`
}
Service describes the service specification for the corresponding operator container.
func (*Service) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.
func (*Service) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type State ¶
type State string
+kubebuilder:validation:Enum=Processing;Deleting;Ready;Error;"";Warning;Unmanaged
const ( // StateReady signifies CustomObject is ready and has been installed successfully. StateReady State = "Ready" // StateProcessing signifies CustomObject is reconciling and is in the process of installation. // Processing can also signal that the Installation previously encountered an error and is now recovering. StateProcessing State = "Processing" // StateError signifies an error for CustomObject. This signifies that the Installation // process encountered an error. // Contrary to Processing, it can be expected that this state should change on the next retry. StateError State = "Error" // StateDeleting signifies CustomObject is being deleted. This is the state that is used // when a deletionTimestamp was detected and Finalizers are picked up. StateDeleting State = "Deleting" // StateWarning signifies specified resource has been deployed, but cannot be used due to misconfiguration, // usually it means that user interaction is required. StateWarning State = "Warning" StateUnmanaged State = "Unmanaged" )
Valid States.
func (State) IsSupportedState ¶
IsSupportedState These states will be used by module CR.
type Status ¶
type Status struct {
LastOperation `json:"lastOperation,omitempty"`
// State signifies current state of CustomObject.
// Value can be one of ("Ready", "Processing", "Error", "Deleting", "Warning").
// +kubebuilder:validation:Required
State State `json:"state,omitempty"`
// Conditions contain a set of conditionals to determine the State of Status.
// If all Conditions are met, the State is expected to be in StateReady.
// +listType=map
// +listMapKey=type
Conditions []apimetav1.Condition `json:"conditions,omitempty" patchMergeKey:"type" patchStrategy:"merge"`
// Synced determine a list of Resources that are currently actively synced.
// All resources that are synced are considered for orphan removal on configuration changes,
// and it is used to determine effective differences from one state to the next.
// +listType=atomic
Synced []Resource `json:"synced,omitempty"`
}
Status defines the observed state of CustomObject. +k8s:deepcopy-gen=true
func (*Status) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status.
func (*Status) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Status) WithOperation ¶
type Sync ¶
type Sync struct {
// +kubebuilder:default:=false
// Enabled set to true will look up a kubeconfig for the remote cluster based on the strategy
// and synchronize its state there.
Enabled bool `json:"enabled,omitempty"`
// +kubebuilder:default:=secret
// Strategy determines the way to look up the remotely synced kubeconfig, by default it is fetched from a secret
Strategy SyncStrategy `json:"strategy,omitempty"`
// The target namespace, if empty the namespace is reflected from the control plane
// Note that cleanup is currently not supported if you are switching the namespace, so you will
// manually need to clean up old synchronized Kymas
Namespace string `json:"namespace,omitempty"`
// +kubebuilder:default:=true
// NoModuleCopy set to true will cause the remote Kyma to be initialized without copying over the
// module spec of the control plane into the SKR
NoModuleCopy bool `json:"noModuleCopy,omitempty"`
// +kubebuilder:default:=true
// ModuleCatalog set to true will cause a copy of all ModuleTemplate in the cluster
// to be synchronized for discovery purposes
ModuleCatalog bool `json:"moduleCatalog,omitempty"`
}
Sync defines settings used to apply the kyma synchronization to other clusters. This is defaulted to false and NOT INTENDED FOR PRODUCTIVE USE.
func (*Sync) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sync.
func (*Sync) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SyncStrategy ¶
type SyncStrategy string
SyncStrategy determines how the Remote Cluster is synchronized with the Control Plane. This can influence secret lookup, or other behavioral patterns when interacting with the remote cluster.
type Target ¶
type Target string
Target serves as a potential Installation Hint for the Controller to determine which Client to use for installation. +kubebuilder:validation:Enum=control-plane;remote
type TrackingObject ¶
type TrackingObject struct {
apimetav1.TypeMeta `json:",inline"`
PartialMeta `json:"metadata,omitempty"`
}
TrackingObject contains TypeMeta and PartialMeta to allow a generation based object tracking. It purposefully does not use ObjectMeta as the generation of controller-runtime for crds would not validate the generation fields even when embedding ObjectMeta.
func (*TrackingObject) DeepCopy ¶
func (in *TrackingObject) DeepCopy() *TrackingObject
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrackingObject.
func (*TrackingObject) DeepCopyInto ¶
func (in *TrackingObject) DeepCopyInto(out *TrackingObject)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WatchableGVR ¶
type WatchableGVR struct {
Group string `json:"group"`
Version string `json:"version"`
Resource string `json:"resource"`
}
func (*WatchableGVR) DeepCopy ¶
func (in *WatchableGVR) DeepCopy() *WatchableGVR
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WatchableGVR.
func (*WatchableGVR) DeepCopyInto ¶
func (in *WatchableGVR) DeepCopyInto(out *WatchableGVR)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Watcher ¶
type Watcher struct {
apimetav1.TypeMeta `json:",inline"`
// +kubebuilder:validation:Optional
apimetav1.ObjectMeta `json:"metadata"`
// +kubebuilder:validation:Optional
Spec WatcherSpec `json:"spec"`
Status WatcherStatus `json:"status,omitempty"`
}
Watcher is the Schema for the watchers API.
func (*Watcher) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Watcher.
func (*Watcher) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Watcher) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type WatcherList ¶
type WatcherList struct {
apimetav1.TypeMeta `json:",inline"`
// +kubebuilder:validation:Optional
apimetav1.ListMeta `json:"metadata"`
Items []Watcher `json:"items"`
}
WatcherList contains a list of Watcher.
func (*WatcherList) DeepCopy ¶
func (in *WatcherList) DeepCopy() *WatcherList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WatcherList.
func (*WatcherList) DeepCopyInto ¶
func (in *WatcherList) DeepCopyInto(out *WatcherList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WatcherList) DeepCopyObject ¶
func (in *WatcherList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type WatcherSpec ¶
type WatcherSpec struct {
// ServiceInfo describes the service information of the listener
ServiceInfo Service `json:"serviceInfo"`
// LabelsToWatch describes the labels that should be watched
// +optional
LabelsToWatch map[string]string `json:"labelsToWatch,omitempty"`
// ResourceToWatch is the GroupVersionResource of the resource that should be watched.
ResourceToWatch WatchableGVR `json:"resourceToWatch"`
// Field describes the subresource that should be watched
// Value can be one of ("spec", "status")
Field FieldName `json:"field"`
// Gateway configures the Istio Gateway for the VirtualService that is created/updated during processing
// of the Watcher CR.
Gateway GatewayConfig `json:"gateway"`
}
WatcherSpec defines the desired state of Watcher.
func (*WatcherSpec) DeepCopy ¶
func (in *WatcherSpec) DeepCopy() *WatcherSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WatcherSpec.
func (*WatcherSpec) DeepCopyInto ¶
func (in *WatcherSpec) DeepCopyInto(out *WatcherSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WatcherStatus ¶
type WatcherStatus struct {
// State signifies current state of a Watcher.
// Value can be one of ("Ready", "Processing", "Error", "Deleting", "Warning")
State State `json:"state"`
// List of status conditions to indicate the status of a Watcher.
// +kubebuilder:validation:Optional
// +listType=map
// +listMapKey=type
Conditions []apimetav1.Condition `json:"conditions"`
// ObservedGeneration
// +kubebuilder:validation:Optional
ObservedGeneration int64 `json:"observedGeneration"`
}
WatcherStatus defines the observed state of Watcher.
func (*WatcherStatus) DeepCopy ¶
func (in *WatcherStatus) DeepCopy() *WatcherStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WatcherStatus.
func (*WatcherStatus) DeepCopyInto ¶
func (in *WatcherStatus) DeepCopyInto(out *WatcherStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.