v1alpha1

package
v0.0.0-...-df3e306 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2024 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=kom.kkb0318.github.io

Index

Constants

View Source
const (
	// OperatorManagerKind represents the kind attribute of an OperatorManager resource.
	OperatorManagerKind = "OperatorManager"
	// DefaultNamespace is the default namespace where the OperatorManager operates.
	DefaultNamespace = "kom-system"
	// ArgoCDDefaultNamespace is the default namespace for ArgoCD resources.
	ArgoCDDefaultNamespace = "argocd"
)

Constants for OperatorManager configurations.

Variables

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

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type AppliedResource

type AppliedResource struct {
	// Kind of the Kubernetes resource, e.g., Deployment, Service, etc.
	Kind string `json:"kind"`
	// APIVersion of the resource, e.g., "apps/v1"
	APIVersion string `json:"apiVersion"`
	// Name of the resource
	Name string `json:"name"`
	// Namespace of the resource, if applicable
	Namespace string `json:"namespace,omitempty"`
}

Unique identifier for the resource, "namespace-name-kind-group-apiversion"

func (*AppliedResource) DeepCopy

func (in *AppliedResource) DeepCopy() *AppliedResource

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

func (*AppliedResource) DeepCopyInto

func (in *AppliedResource) DeepCopyInto(out *AppliedResource)

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

func (AppliedResource) Equal

type AppliedResourceList

type AppliedResourceList []AppliedResource

func (AppliedResourceList) DeepCopy

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

func (AppliedResourceList) DeepCopyInto

func (in AppliedResourceList) DeepCopyInto(out *AppliedResourceList)

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

func (AppliedResourceList) Diff

Diff returns the resourceList that exist in listA, but not in listB (A - B).

type Chart

type Chart struct {
	// Name is the name of the Helm chart.
	Name string `json:"name,omitempty"`

	// Version specifies the version of the Helm chart to be deployed.
	Version string `json:"version,omitempty"`

	// Values specifies Helm values to be passed to helm template, defined as a map.
	// +optional
	Values *apiextensionsv1.JSON `json:"values,omitempty"`
}

Chart defines the details of a Helm chart to be managed. Depending on the GitOps tool (Flux or ArgoCD), it corresponds to a HelmRelease CR or an Application CR, respectively.

func (*Chart) DeepCopy

func (in *Chart) DeepCopy() *Chart

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

func (*Chart) DeepCopyInto

func (in *Chart) DeepCopyInto(out *Chart)

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

type Git

type Git struct {
	// Name is a user-defined identifier for the resource.
	Name string `json:"name,omitempty"`

	// Namespace is the Kubernetes namespace where the Helm repository resource is located.
	// The default value depends on the GitOps tool used: "kom-system" for Flux and "argocd" for ArgoCD.
	Namespace string `json:"namespace,omitempty"`

	// Url is the URL of the Git repository.
	Url string `json:"url,omitempty"`

	// Path specifies the directory path within the Git repository that contains the desired resources.
	// This allows for selective management of resources located in specific parts of the repository.
	Path string `json:"path,omitempty"`

	// Reference contains the reference information (such as branch, tag, or semver) for the Git repository.
	// This allows for targeting specific versions or configurations of the resources within the repository.
	Reference GitReference `json:"reference,omitempty"`
}

Git defines the configuration for accessing a Git repository.

func (*Git) DeepCopy

func (in *Git) DeepCopy() *Git

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

func (*Git) DeepCopyInto

func (in *Git) DeepCopyInto(out *Git)

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

type GitReference

type GitReference struct {
	// Type indicates the method of versioning used in the repository, applicable only for Flux.
	// Valid options are "branch", "semver", or "tag", allowing for different strategies of version management.
	Type GitReferenceType `json:"type,omitempty"`

	// Value specifies the exact reference to track, such as the name of a branch, a semantic versioning pattern, or a tag.
	// This allows for precise control over which version of the resources is deployed.
	Value string `json:"value,omitempty"`
}

GitReference specifies the versioning information for tracking changes in the Git repository.

func (*GitReference) DeepCopy

func (in *GitReference) DeepCopy() *GitReference

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

func (*GitReference) DeepCopyInto

func (in *GitReference) DeepCopyInto(out *GitReference)

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

type GitReferenceType

type GitReferenceType string

GitReferenceType is applicable only for Flux. Valid options are "branch", "semver", or "tag"

const (
	GitBranch GitReferenceType = "branch"
	GitSemver GitReferenceType = "semver"
	GitTag    GitReferenceType = "tag"
)

type Helm

type Helm struct {
	// Name is a user-defined identifier for the resource.
	Name string `json:"name,omitempty"`

	// Namespace is the Kubernetes namespace where the Helm repository resource is located.
	// The default value depends on the GitOps tool used: "kom-system" for Flux and "argocd" for ArgoCD.
	Namespace string `json:"namespace,omitempty"`

	// Url is the URL of the Helm repository.
	Url string `json:"url,omitempty"`

	// Charts specifies the Helm charts within the repository to be managed.
	Charts []Chart `json:"charts,omitempty"`
}

Helm defines the configuration for accessing a Helm repository. Depending on the GitOps tool in use (Flux or ArgoCD), it corresponds to a HelmRepository CR or a Secret, respectively.

func (*Helm) DeepCopy

func (in *Helm) DeepCopy() *Helm

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

func (*Helm) DeepCopyInto

func (in *Helm) DeepCopyInto(out *Helm)

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

type OperatorManager

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

	Spec   OperatorManagerSpec   `json:"spec,omitempty"`
	Status OperatorManagerStatus `json:"status,omitempty"`
}

OperatorManager is the Schema for the operatormanagers API

func (*OperatorManager) DeepCopy

func (in *OperatorManager) DeepCopy() *OperatorManager

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

func (*OperatorManager) DeepCopyInto

func (in *OperatorManager) DeepCopyInto(out *OperatorManager)

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

func (*OperatorManager) DeepCopyObject

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

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

type OperatorManagerList

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

OperatorManagerList contains a list of OperatorManager

func (*OperatorManagerList) DeepCopy

func (in *OperatorManagerList) DeepCopy() *OperatorManagerList

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

func (*OperatorManagerList) DeepCopyInto

func (in *OperatorManagerList) DeepCopyInto(out *OperatorManagerList)

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

func (*OperatorManagerList) DeepCopyObject

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

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

type OperatorManagerSpec

type OperatorManagerSpec struct {
	// Cleanup, when enabled, allows the OperatorManager to perform garbage collection
	// of resources that are no longer needed or managed.
	// +required
	Cleanup bool `json:"cleanup"`

	// Tool specifies the GitOps tool to be used. Users must set this field to either "flux" or "argo".
	// This field is required and determines various default behaviors and configurations.
	// +required
	Tool ToolType `json:"tool"`

	// Resource specifies the source repository (Helm or Git) for the operators to be managed.
	// +required
	Resource Resource `json:"resource"`
}

OperatorManagerSpec defines the desired state and configuration of an OperatorManager.

func (*OperatorManagerSpec) DeepCopy

func (in *OperatorManagerSpec) DeepCopy() *OperatorManagerSpec

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

func (*OperatorManagerSpec) DeepCopyInto

func (in *OperatorManagerSpec) DeepCopyInto(out *OperatorManagerSpec)

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

type OperatorManagerStatus

type OperatorManagerStatus struct {
	// Inventory of applied resources
	AppliedResources AppliedResourceList `json:"appliedResources,omitempty"`
}

OperatorManagerStatus defines the observed state of OperatorManager

func (*OperatorManagerStatus) DeepCopy

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

func (*OperatorManagerStatus) DeepCopyInto

func (in *OperatorManagerStatus) DeepCopyInto(out *OperatorManagerStatus)

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

type Resource

type Resource struct {
	// Helm specifies one or more Helm repositories containing the operators.
	// This field is optional and only needed if operators are to be sourced from Helm repositories.
	Helm []Helm `json:"helm,omitempty"`

	// Git specifies one or more Git repositories containing the operators.
	// This field is optional and only needed if operators are to be sourced from Git repositories.
	Git []Git `json:"git,omitempty"`
}

Resource represents the source repositories for operators, supporting both Helm and Git repositories.

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.

type ToolType

type ToolType string

ToolType defines the GitOps tool used for managing resources Valid options are "flux", or "argo".

const (
	FluxCDTool ToolType = "flux"
	ArgoCDTool ToolType = "argo"
)

Jump to

Keyboard shortcuts

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