Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=kom.kkb0318.github.io
Index ¶
Constants ¶
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 ¶
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 ¶
func (a AppliedResource) Equal(b AppliedResource) bool
type AppliedResourceList ¶
type AppliedResourceList []AppliedResource
func (AppliedResourceList) DeepCopy ¶
func (in AppliedResourceList) DeepCopy() AppliedResourceList
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 ¶
func (listA AppliedResourceList) Diff(listB AppliedResourceList) AppliedResourceList
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Chart.
func (*Chart) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Git.
func (*Git) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Helm.
func (*Helm) DeepCopyInto ¶
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 ¶
func (in *OperatorManagerStatus) DeepCopy() *OperatorManagerStatus
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 ¶
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.