v1beta1

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2025 License: Apache-2.0 Imports: 8 Imported by: 2

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

View Source
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

View Source
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 FieldName

type FieldName string

+kubebuilder:validation:Enum=spec;status;

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

func (in *ImageSpec) DeepCopy() *ImageSpec

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

func (*ImageSpec) DeepCopyInto

func (in *ImageSpec) DeepCopyInto(out *ImageSpec)

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

func (in *Kyma) DeepCopy() *Kyma

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

func (*Kyma) DeepCopyInto

func (in *Kyma) DeepCopyInto(out *Kyma)

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

func (*Kyma) DeepCopyObject

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

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

func (in *KymaList) DeepCopy() *KymaList

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

func (*KymaList) DeepCopyInto

func (in *KymaList) DeepCopyInto(out *KymaList)

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

func (*KymaList) DeepCopyObject

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

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

func (in *KymaSpec) DeepCopy() *KymaSpec

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

func (*KymaSpec) DeepCopyInto

func (in *KymaSpec) DeepCopyInto(out *KymaSpec)

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

func (in *Manifest) DeepCopy() *Manifest

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

func (*Manifest) DeepCopyInto

func (in *Manifest) DeepCopyInto(out *Manifest)

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

func (*Manifest) DeepCopyObject

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

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

func (in *Module) DeepCopy() *Module

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

func (*Module) DeepCopyInto

func (in *Module) DeepCopyInto(out *Module)

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

func (in *Resource) DeepCopy() *Resource

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

func (*Resource) DeepCopyInto

func (in *Resource) DeepCopyInto(out *Resource)

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

func (Resource) ID

func (r Resource) ID() string

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

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

func (state State) IsSupportedState() bool

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

func (in *Status) DeepCopy() *Status

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

func (*Status) DeepCopyInto

func (in *Status) DeepCopyInto(out *Status)

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

func (Status) WithErr

func (s Status) WithErr(err error) Status

func (Status) WithOperation

func (s Status) WithOperation(operation string) Status

func (Status) WithState

func (s Status) WithState(state State) Status

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

func (in *Sync) DeepCopy() *Sync

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

func (*Sync) DeepCopyInto

func (in *Sync) DeepCopyInto(out *Sync)

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

const (
	TargetRemote       Target = "remote"
	TargetControlPlane Target = "control-plane"
)

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

func (in *Watcher) DeepCopy() *Watcher

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

func (*Watcher) DeepCopyInto

func (in *Watcher) DeepCopyInto(out *Watcher)

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

func (*Watcher) DeepCopyObject

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

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.

Jump to

Keyboard shortcuts

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