v1

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2024 License: MIT Imports: 13 Imported by: 1

Documentation

Overview

Package v1 contains API Schema definitions for the k8s v1 API group +kubebuilder:object:generate=true +groupName=k8s.cloudogu.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "k8s.cloudogu.com", Version: "v1"}

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

func ConvertToConfigDomain

func ConvertToConfigDomain(config Config) domain.Config

func ConvertToEffectiveBlueprintDomain

func ConvertToEffectiveBlueprintDomain(blueprint EffectiveBlueprint) (domain.EffectiveBlueprint, error)

func ConvertToStateDiffDomain

func ConvertToStateDiffDomain(dto StateDiff) (domain.StateDiff, error)

Types

type Blueprint

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

	// Spec defines the desired state of the Blueprint.
	Spec BlueprintSpec `json:"spec,omitempty"`
	// Status defines the observed state of the Blueprint.
	Status BlueprintStatus `json:"status,omitempty"`
}

Blueprint is the Schema for the blueprints API

func (*Blueprint) DeepCopy

func (in *Blueprint) DeepCopy() *Blueprint

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

func (*Blueprint) DeepCopyInto

func (in *Blueprint) DeepCopyInto(out *Blueprint)

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

func (*Blueprint) DeepCopyObject

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

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

type BlueprintList

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

BlueprintList contains a list of Blueprint

func (*BlueprintList) DeepCopy

func (in *BlueprintList) DeepCopy() *BlueprintList

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

func (*BlueprintList) DeepCopyInto

func (in *BlueprintList) DeepCopyInto(out *BlueprintList)

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

func (*BlueprintList) DeepCopyObject

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

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

type BlueprintSpec

type BlueprintSpec struct {
	// Blueprint json with the desired state of the ecosystem.
	Blueprint string `json:"blueprint"`
	// BlueprintMask json can further restrict the desired state from the blueprint.
	BlueprintMask string `json:"blueprintMask,omitempty"`
	// IgnoreDoguHealth lets the user execute the blueprint even if dogus are unhealthy at the moment.
	IgnoreDoguHealth bool `json:"ignoreDoguHealth,omitempty"`
	// IgnoreComponentHealth lets the user execute the blueprint even if components are unhealthy at the moment.
	IgnoreComponentHealth bool `json:"ignoreComponentHealth,omitempty"`
	// AllowDoguNamespaceSwitch lets the user switch the namespace of dogus in the blueprint mask
	// in comparison to the blueprint.
	AllowDoguNamespaceSwitch bool `json:"allowDoguNamespaceSwitch,omitempty"`
	// DryRun lets the user test a blueprint run to check if all attributes of the blueprint are correct and avoid a result with a failure state.
	DryRun bool `json:"dryRun,omitempty"`
}

BlueprintSpec defines the desired state of Blueprint

func (*BlueprintSpec) DeepCopy

func (in *BlueprintSpec) DeepCopy() *BlueprintSpec

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

func (*BlueprintSpec) DeepCopyInto

func (in *BlueprintSpec) DeepCopyInto(out *BlueprintSpec)

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

type BlueprintStatus

type BlueprintStatus struct {
	// Phase represents the processing state of the blueprint
	Phase domain.StatusPhase `json:"phase,omitempty"`
	// EffectiveBlueprint is the blueprint after applying the blueprint mask.
	EffectiveBlueprint EffectiveBlueprint `json:"effectiveBlueprint,omitempty"`
	// StateDiff is the result of comparing the EffectiveBlueprint to the current cluster state.
	// It describes what operations need to be done to achieve the desired state of the blueprint.
	StateDiff StateDiff `json:"stateDiff,omitempty"`
}

BlueprintStatus defines the observed state of Blueprint

func (*BlueprintStatus) DeepCopy

func (in *BlueprintStatus) DeepCopy() *BlueprintStatus

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

func (*BlueprintStatus) DeepCopyInto

func (in *BlueprintStatus) DeepCopyInto(out *BlueprintStatus)

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

type CombinedDoguConfig

type CombinedDoguConfig struct {
	Config          DoguConfig          `json:"config,omitempty"`
	SensitiveConfig SensitiveDoguConfig `json:"sensitiveConfig,omitempty"`
}

func (*CombinedDoguConfig) DeepCopy

func (in *CombinedDoguConfig) DeepCopy() *CombinedDoguConfig

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

func (*CombinedDoguConfig) DeepCopyInto

func (in *CombinedDoguConfig) DeepCopyInto(out *CombinedDoguConfig)

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

type CombinedDoguConfigDiff

type CombinedDoguConfigDiff struct {
	DoguConfigDiff          DoguConfigDiff          `json:"doguConfigDiff,omitempty"`
	SensitiveDoguConfigDiff SensitiveDoguConfigDiff `json:"sensitiveDoguConfigDiff,omitempty"`
}

func (*CombinedDoguConfigDiff) DeepCopy

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

func (*CombinedDoguConfigDiff) DeepCopyInto

func (in *CombinedDoguConfigDiff) DeepCopyInto(out *CombinedDoguConfigDiff)

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

type ComponentAction

type ComponentAction string

ComponentAction is the action that needs to be done for a component to achieve the desired state in the cluster.

type ComponentDiff

type ComponentDiff struct {
	// Actual contains the component's state in the current system.
	Actual ComponentDiffState `json:"actual"`
	// Expected contains the desired component's target state.
	Expected ComponentDiffState `json:"expected"`
	// NeededActions contains the refined actions as decided by the application's state determination automaton.
	NeededActions []ComponentAction `json:"neededActions"`
}

ComponentDiff is the comparison of a Component's desired state vs. its cluster state. It contains the operation that needs to be done to achieve this desired state.

func (*ComponentDiff) DeepCopy

func (in *ComponentDiff) DeepCopy() *ComponentDiff

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

func (*ComponentDiff) DeepCopyInto

func (in *ComponentDiff) DeepCopyInto(out *ComponentDiff)

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

type ComponentDiffState

type ComponentDiffState struct {
	// Namespace is part of the address under which the component will be obtained. This namespace must NOT
	// to be confused with the K8s cluster namespace.
	Namespace string `json:"distributionNamespace,omitempty"`
	// Version contains the component's version.
	Version string `json:"version,omitempty"`
	// InstallationState contains the component's installation state. Such a state correlate with the domain Actions:
	//
	//  - domain.ActionInstall
	//  - domain.ActionUninstall
	//  - and so on
	InstallationState string `json:"installationState"`
	// DeployConfig contains generic properties for the component.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	DeployConfig map[string]interface{} `json:"deployConfig,omitempty"`
}

ComponentDiffState is either the actual or desired state of a component in the cluster. The fields will be used to determine the kind of changed if there is a drift between actual or desired state.

func (*ComponentDiffState) DeepCopy

func (in *ComponentDiffState) DeepCopy() *ComponentDiffState

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

func (*ComponentDiffState) DeepCopyInto

func (in *ComponentDiffState) DeepCopyInto(out *ComponentDiffState)

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

type Config

type Config struct {
	Dogus  map[string]CombinedDoguConfig `json:"dogus,omitempty"`
	Global GlobalConfig                  `json:"global,omitempty"`
}

func ConvertToConfigDTO

func ConvertToConfigDTO(config domain.Config) Config

func (*Config) DeepCopy

func (in *Config) DeepCopy() *Config

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

func (*Config) DeepCopyInto

func (in *Config) DeepCopyInto(out *Config)

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

type ConfigAction

type ConfigAction string

type ConfigValueState

type ConfigValueState struct {
	Value  string `json:"value,omitempty"`
	Exists bool   `json:"exists"`
}

func (*ConfigValueState) DeepCopy

func (in *ConfigValueState) DeepCopy() *ConfigValueState

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

func (*ConfigValueState) DeepCopyInto

func (in *ConfigValueState) DeepCopyInto(out *ConfigValueState)

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

type DoguAction

type DoguAction string

DoguAction is the action that needs to be done for a dogu to achieve the desired state in the cluster.

type DoguConfig

type DoguConfig presentAbsentConfig

func (*DoguConfig) DeepCopy

func (in *DoguConfig) DeepCopy() *DoguConfig

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

func (*DoguConfig) DeepCopyInto

func (in *DoguConfig) DeepCopyInto(out *DoguConfig)

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

type DoguConfigDiff

type DoguConfigDiff []DoguConfigEntryDiff

func (DoguConfigDiff) DeepCopy

func (in DoguConfigDiff) DeepCopy() DoguConfigDiff

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

func (DoguConfigDiff) DeepCopyInto

func (in DoguConfigDiff) DeepCopyInto(out *DoguConfigDiff)

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

type DoguConfigEntryDiff

type DoguConfigEntryDiff struct {
	Key          string               `json:"key"`
	Actual       DoguConfigValueState `json:"actual"`
	Expected     DoguConfigValueState `json:"expected"`
	NeededAction ConfigAction         `json:"neededAction"`
}

func (*DoguConfigEntryDiff) DeepCopy

func (in *DoguConfigEntryDiff) DeepCopy() *DoguConfigEntryDiff

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

func (*DoguConfigEntryDiff) DeepCopyInto

func (in *DoguConfigEntryDiff) DeepCopyInto(out *DoguConfigEntryDiff)

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

type DoguConfigValueState

type DoguConfigValueState ConfigValueState

func (*DoguConfigValueState) DeepCopy

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

func (*DoguConfigValueState) DeepCopyInto

func (in *DoguConfigValueState) DeepCopyInto(out *DoguConfigValueState)

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

type DoguDiff

type DoguDiff struct {
	Actual        DoguDiffState `json:"actual"`
	Expected      DoguDiffState `json:"expected"`
	NeededActions []DoguAction  `json:"neededActions"`
}

DoguDiff is the comparison of a Dogu's desired state vs. its cluster state. It contains the operation that needs to be done to achieve this desired state.

func (*DoguDiff) DeepCopy

func (in *DoguDiff) DeepCopy() *DoguDiff

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

func (*DoguDiff) DeepCopyInto

func (in *DoguDiff) DeepCopyInto(out *DoguDiff)

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

type DoguDiffState

type DoguDiffState struct {
	Namespace          string             `json:"namespace,omitempty"`
	Version            string             `json:"version,omitempty"`
	InstallationState  string             `json:"installationState"`
	ResourceConfig     ResourceConfig     `json:"resourceConfig,omitempty"`
	ReverseProxyConfig ReverseProxyConfig `json:"reverseProxyConfig,omitempty"`
}

DoguDiffState is either the actual or desired state of a dogu in the cluster.

func (*DoguDiffState) DeepCopy

func (in *DoguDiffState) DeepCopy() *DoguDiffState

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

func (*DoguDiffState) DeepCopyInto

func (in *DoguDiffState) DeepCopyInto(out *DoguDiffState)

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

type EffectiveBlueprint

type EffectiveBlueprint struct {
	// Dogus contains a set of exact dogu versions which should be present or absent in the CES instance after which this
	// blueprint was applied. Optional.
	Dogus []serializer.TargetDogu `json:"dogus,omitempty"`
	// Components contains a set of exact component versions which should be present or absent in the CES instance after which
	// this blueprint was applied. Optional.
	Components []serializer.TargetComponent `json:"components,omitempty"`
	// Config is used for ecosystem configuration to be applied.
	// Optional.
	Config Config `json:"config,omitempty"`
}

EffectiveBlueprint describes an abstraction of CES components that should be absent or present within one or more CES instances after combining the blueprint with the blueprint mask.

In general additions without changing the version are fine, as long as they don't change semantics. Removal or renaming are breaking changes and require a new blueprint API version.

func ConvertToEffectiveBlueprintDTO

func ConvertToEffectiveBlueprintDTO(blueprint domain.EffectiveBlueprint) (EffectiveBlueprint, error)

func (*EffectiveBlueprint) DeepCopy

func (in *EffectiveBlueprint) DeepCopy() *EffectiveBlueprint

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

func (*EffectiveBlueprint) DeepCopyInto

func (in *EffectiveBlueprint) DeepCopyInto(out *EffectiveBlueprint)

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

type GlobalConfig

type GlobalConfig presentAbsentConfig

func (*GlobalConfig) DeepCopy

func (in *GlobalConfig) DeepCopy() *GlobalConfig

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

func (*GlobalConfig) DeepCopyInto

func (in *GlobalConfig) DeepCopyInto(out *GlobalConfig)

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

type GlobalConfigDiff

type GlobalConfigDiff []GlobalConfigEntryDiff

func (GlobalConfigDiff) DeepCopy

func (in GlobalConfigDiff) DeepCopy() GlobalConfigDiff

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

func (GlobalConfigDiff) DeepCopyInto

func (in GlobalConfigDiff) DeepCopyInto(out *GlobalConfigDiff)

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

type GlobalConfigEntryDiff

type GlobalConfigEntryDiff struct {
	Key          string                 `json:"key"`
	Actual       GlobalConfigValueState `json:"actual"`
	Expected     GlobalConfigValueState `json:"expected"`
	NeededAction ConfigAction           `json:"neededAction"`
}

func (*GlobalConfigEntryDiff) DeepCopy

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

func (*GlobalConfigEntryDiff) DeepCopyInto

func (in *GlobalConfigEntryDiff) DeepCopyInto(out *GlobalConfigEntryDiff)

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

type GlobalConfigValueState

type GlobalConfigValueState ConfigValueState

func (*GlobalConfigValueState) DeepCopy

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

func (*GlobalConfigValueState) DeepCopyInto

func (in *GlobalConfigValueState) DeepCopyInto(out *GlobalConfigValueState)

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

type ResourceConfig

type ResourceConfig struct {
	MinVolumeSize string `json:"minVolumeSize,omitempty"`
}

type ReverseProxyConfig

type ReverseProxyConfig struct {
	MaxBodySize      string `json:"maxBodySize,omitempty"`
	RewriteTarget    string `json:"rewriteTarget,omitempty"`
	AdditionalConfig string `json:"additionalConfig,omitempty"`
}

type SensitiveDoguConfig

type SensitiveDoguConfig presentAbsentConfig

func (*SensitiveDoguConfig) DeepCopy

func (in *SensitiveDoguConfig) DeepCopy() *SensitiveDoguConfig

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

func (*SensitiveDoguConfig) DeepCopyInto

func (in *SensitiveDoguConfig) DeepCopyInto(out *SensitiveDoguConfig)

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

type SensitiveDoguConfigDiff

type SensitiveDoguConfigDiff []SensitiveDoguConfigEntryDiff

func (SensitiveDoguConfigDiff) DeepCopy

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

func (SensitiveDoguConfigDiff) DeepCopyInto

func (in SensitiveDoguConfigDiff) DeepCopyInto(out *SensitiveDoguConfigDiff)

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

type SensitiveDoguConfigEntryDiff

type SensitiveDoguConfigEntryDiff struct {
	Key              string               `json:"key"`
	Actual           DoguConfigValueState `json:"actual"`
	Expected         DoguConfigValueState `json:"expected"`
	DoguNotInstalled bool                 `json:"doguNotInstalled,omitempty"`
	NeededAction     ConfigAction         `json:"neededAction"`
}

func (*SensitiveDoguConfigEntryDiff) DeepCopy

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

func (*SensitiveDoguConfigEntryDiff) DeepCopyInto

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

type StateDiff

type StateDiff struct {
	// DoguDiffs maps simple dogu names to the determined diff.
	DoguDiffs map[string]DoguDiff `json:"doguDiffs,omitempty"`
	// ComponentDiffs maps simple component names to the determined diff.
	ComponentDiffs map[string]ComponentDiff `json:"componentDiffs,omitempty"`
	// DoguConfigDiffs maps simple dogu names to the determined config diff.
	DoguConfigDiffs map[string]CombinedDoguConfigDiff `json:"doguConfigDiffs,omitempty"`
	// GlobalConfigDiff is the difference between the GlobalConfig in the EffectiveBlueprint and the cluster state.
	GlobalConfigDiff GlobalConfigDiff `json:"globalConfigDiff,omitempty"`
}

StateDiff is the result of comparing the EffectiveBlueprint to the current cluster state. It describes what operations need to be done to achieve the desired state of the blueprint.

func ConvertToStateDiffDTO

func ConvertToStateDiffDTO(domainModel domain.StateDiff) StateDiff

func (*StateDiff) DeepCopy

func (in *StateDiff) DeepCopy() *StateDiff

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

func (*StateDiff) DeepCopyInto

func (in *StateDiff) DeepCopyInto(out *StateDiff)

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