v1

package
v3.0.0-...-b0a9388 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2023 License: Apache-2.0 Imports: 6 Imported by: 28

Documentation

Overview

+groupName=apps.kubermatic.k8c.io +groupGoName=KubermaticApps +versionName=v1 +kubebuilder:object:generate=true

Index

Constants

View Source
const (
	// ApplicationInstallationResourceName represents "Resource" defined in Kubernetes.
	ApplicationDefinitionResourceName = "applicationdefinitions"

	// ApplicationDefinitionKindName represents "Kind" defined in Kubernetes.
	ApplicationDefinitionKindName = "ApplicationDefinitions"
)
View Source
const (
	// ApplicationInstallationResourceName represents "Resource" defined in Kubernetes.
	ApplicationInstallationResourceName = "applicationinstallations"

	// ApplicationInstallationKindName represents "Kind" defined in Kubernetes.
	ApplicationInstallationKindName = "ApplicationInstallations"

	// ApplicationInstallationsFQDNName represents "FQDN" defined in Kubernetes.
	ApplicationInstallationsFQDNName = ApplicationInstallationResourceName + "." + GroupName
)
View Source
const (
	// ApplicationDefinitionSeedCleanupFinalizer indicates that synced application definition on seed clusters need cleanup.
	ApplicationDefinitionSeedCleanupFinalizer = "kubermatic.k8c.io/cleanup-seed-application-definition"

	// ApplicationInstallationCleanupFinalizer indicates that application installed on user-cluster need cleanup
	// ie uninstall the application, remove  namespace where application were installed ...
	ApplicationInstallationCleanupFinalizer = "kubermatic.k8c.io/cleanup-application-installation"

	// ApplicationManagedByLabel indicates the ownership of the application definition / application installation.
	ApplicationManagedByLabel = "apps.kubermatic.k8c.io/managed-by"

	// ApplicationManagedByKKPValue can be used as a value for the ApplicationManagedByLabel to indicate that the
	// application definition / application installation is managed by KKP (i.e. it is KKP-internal).
	ApplicationManagedByKKPValue = "kkp"

	// ApplicationTypeLabel indicated the type of the application definition / application installation.
	ApplicationTypeLabel = "apps.kubermatic.k8c.io/type"

	// ApplicationTypeCNIValue can be used as a value for the ApplicationTypeLabel to indicate that the
	// application definition / application installation type if CNI (Container Network Interface).
	ApplicationTypeCNIValue = "cni"
)
View Source
const GroupName = "apps.kubermatic.k8c.io"

GroupName is the group name use in this package.

View Source
const GroupVersion = "v1"

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme

	// SchemeGroupVersion is group version used to register these objects.
	SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: GroupVersion}
)
View Source
var AllApplicationInstallationConditionTypes = []ApplicationInstallationConditionType{
	ManifestsRetrieved,
	Ready,
}

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource.

Types

type AppNamespaceSpec

type AppNamespaceSpec struct {
	// Name is the namespace to deploy the Application into.
	// Should be a valid lowercase RFC1123 domain name
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Type=string
	Name string `json:"name"`

	// Create defines whether the namespace should be created if it does not exist. Defaults to true
	Create bool `json:"create"`

	// Labels of the namespace
	// More info: http://kubernetes.io/docs/user-guide/labels
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations of the namespace
	// More info: http://kubernetes.io/docs/user-guide/annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

AppNamespaceSpec describe the desired state of the namespace where application will be created.

func (*AppNamespaceSpec) DeepCopy

func (in *AppNamespaceSpec) DeepCopy() *AppNamespaceSpec

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

func (*AppNamespaceSpec) DeepCopyInto

func (in *AppNamespaceSpec) DeepCopyInto(out *AppNamespaceSpec)

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

type ApplicationDefinition

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

	Spec ApplicationDefinitionSpec `json:"spec,omitempty"`
}

ApplicationDefinition is the Schema for the applicationdefinitions API.

func (*ApplicationDefinition) DeepCopy

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

func (*ApplicationDefinition) DeepCopyInto

func (in *ApplicationDefinition) DeepCopyInto(out *ApplicationDefinition)

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

func (*ApplicationDefinition) DeepCopyObject

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

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

type ApplicationDefinitionList

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

ApplicationDefinitionList contains a list of ApplicationDefinition.

func (*ApplicationDefinitionList) DeepCopy

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

func (*ApplicationDefinitionList) DeepCopyInto

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

func (*ApplicationDefinitionList) DeepCopyObject

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

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

type ApplicationDefinitionSpec

type ApplicationDefinitionSpec struct {
	// Description of the application. what is its purpose
	Description string `json:"description"`

	// Method used to install the application
	Method TemplateMethod `json:"method"`

	// DefaultValues describe overrides for manifest-rendering in UI when creating an application.
	// +kubebuilder:pruning:PreserveUnknownFields
	DefaultValues *runtime.RawExtension `json:"defaultValues,omitempty"`

	// DefaultDeployOptions holds the settings specific to the templating method used to deploy the application.
	// These settings can be overridden in applicationInstallation.
	DefaultDeployOptions *DeployOptions `json:"defaultDeployOptions,omitempty"`

	// Available version for this application
	Versions []ApplicationVersion `json:"versions"`
}

ApplicationDefinitionSpec defines the desired state of ApplicationDefinition.

func (*ApplicationDefinitionSpec) DeepCopy

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

func (*ApplicationDefinitionSpec) DeepCopyInto

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

type ApplicationInstallation

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

	Spec   ApplicationInstallationSpec   `json:"spec,omitempty"`
	Status ApplicationInstallationStatus `json:"status,omitempty"`
}

ApplicationInstallation describes a single installation of an Application.

func (*ApplicationInstallation) DeepCopy

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

func (*ApplicationInstallation) DeepCopyInto

func (in *ApplicationInstallation) DeepCopyInto(out *ApplicationInstallation)

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

func (*ApplicationInstallation) DeepCopyObject

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

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

func (*ApplicationInstallation) SetCondition

func (appInstallation *ApplicationInstallation) SetCondition(conditionType ApplicationInstallationConditionType, status corev1.ConditionStatus, reason, message string)

SetCondition of the applicationInstallation. It take care of update LastHeartbeatTime and LastTransitionTime if needed.

func (*ApplicationInstallation) SetReadyCondition

func (appInstallation *ApplicationInstallation) SetReadyCondition(installErr error, hasLimitedRetries bool)

SetReadyCondition sets the ReadyCondition and appInstallation.Status.Failures counter according to the installError.

type ApplicationInstallationCondition

type ApplicationInstallationCondition struct {
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time we got an update on a given condition.
	// +optional
	LastHeartbeatTime metav1.Time `json:"lastHeartbeatTime,omitempty"`
	// Last time the condition transit from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// (brief) reason for the condition's last transition.
	Reason string `json:"reason,omitempty"`
	// Human readable message indicating details about last transition.
	Message string `json:"message,omitempty"`

	// observedGeneration represents the .metadata.generation that the condition was set based upon.
	// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
	// with respect to the current state of the instance.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

func (*ApplicationInstallationCondition) DeepCopy

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

func (*ApplicationInstallationCondition) DeepCopyInto

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

type ApplicationInstallationConditionType

type ApplicationInstallationConditionType string

swagger:enum ApplicationInstallationConditionType All condition types must be registered within the `AllApplicationInstallationConditionTypes` variable.

const (
	// ManifestsRetrieved indicates all necessary manifests have been fetched from the external source.
	ManifestsRetrieved ApplicationInstallationConditionType = "ManifestsRetrieved"

	// Ready describes all components have been successfully rolled out and are ready.
	Ready ApplicationInstallationConditionType = "Ready"
)

type ApplicationInstallationList

type ApplicationInstallationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ApplicationInstallation `json:"items"`
}

ApplicationInstallationList is a list of ApplicationInstallations.

func (*ApplicationInstallationList) DeepCopy

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

func (*ApplicationInstallationList) DeepCopyInto

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

func (*ApplicationInstallationList) DeepCopyObject

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

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

type ApplicationInstallationSpec

type ApplicationInstallationSpec struct {
	// Namespace describe the desired state of the namespace where application will be created.
	Namespace AppNamespaceSpec `json:"namespace"`

	// ApplicationRef is a reference to identify which Application should be deployed
	ApplicationRef ApplicationRef `json:"applicationRef"`

	// Values describe overrides for manifest-rendering. It's a free yaml field.
	// +kubebuilder:pruning:PreserveUnknownFields
	Values runtime.RawExtension `json:"values,omitempty"`

	// ReconciliationInterval is the interval at which to force the reconciliation of the application. By default, Applications are only reconciled
	// on changes on spec, annotations, or the parent application definition. Meaning that if the user manually deletes the workload
	// deployed by the application, nothing will happen until the application CR change.
	//
	// Setting a value greater than zero force reconciliation even if no changes occurred on application CR.
	// Setting a value equal to 0 disables the force reconciliation of the application (default behavior).
	// Setting this too low can cause a heavy load and may disrupt your application workload depending on the template method.
	ReconciliationInterval metav1.Duration `json:"reconciliationInterval,omitempty"`

	// DeployOptions holds the settings specific to the templating method used to deploy the application.
	DeployOptions *DeployOptions `json:"deployOptions,omitempty"`
}

func (*ApplicationInstallationSpec) DeepCopy

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

func (*ApplicationInstallationSpec) DeepCopyInto

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

type ApplicationInstallationStatus

type ApplicationInstallationStatus struct {
	// Conditions contains conditions an installation is in, its primary use case is status signaling between controllers or between controllers and the API
	Conditions map[ApplicationInstallationConditionType]ApplicationInstallationCondition `json:"conditions,omitempty"`

	// ApplicationVersion contains information installing / removing application
	ApplicationVersion *ApplicationVersion `json:"applicationVersion,omitempty"`

	// Method used to install the application
	Method TemplateMethod `json:"method"`

	// HelmRelease holds the information about the helm release installed by this application. This field is only filled if template method is 'helm'.
	HelmRelease *HelmRelease `json:"helmRelease,omitempty"`

	// Failures counts the number of failed installation or updagrade. it is reset on successful reconciliation.
	Failures int `json:"failures,omitempty"`
}

ApplicationInstallationStatus denotes status information about an ApplicationInstallation.

func (*ApplicationInstallationStatus) DeepCopy

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

func (*ApplicationInstallationStatus) DeepCopyInto

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

type ApplicationRef

type ApplicationRef struct {
	// Name of the Application.
	// Should be a valid lowercase RFC1123 domain name
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Type=string
	Name string `json:"name"`

	// Version of the Application. Must be a valid SemVer version
	Version string `json:"version"`
}

ApplicationRef describes a KKP-wide, unique reference to an Application.

func (*ApplicationRef) DeepCopy

func (in *ApplicationRef) DeepCopy() *ApplicationRef

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

func (*ApplicationRef) DeepCopyInto

func (in *ApplicationRef) DeepCopyInto(out *ApplicationRef)

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

type ApplicationSource

type ApplicationSource struct {
	// Install Application from a Helm repository
	Helm *HelmSource `json:"helm,omitempty"`

	// Install application from a Git repository
	Git *GitSource `json:"git,omitempty"`
}

func (*ApplicationSource) DeepCopy

func (in *ApplicationSource) DeepCopy() *ApplicationSource

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

func (*ApplicationSource) DeepCopyInto

func (in *ApplicationSource) DeepCopyInto(out *ApplicationSource)

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

type ApplicationTemplate

type ApplicationTemplate struct {
	// Defined how the source of the application (e.g Helm chart) is retrieved.
	// Exactly one type of source must be defined.
	Source ApplicationSource `json:"source"`

	// DependencyCredentials holds the credentials that may be needed for templating the application.
	DependencyCredentials *DependencyCredentials `json:"templateCredentials,omitempty"`
}

func (*ApplicationTemplate) DeepCopy

func (in *ApplicationTemplate) DeepCopy() *ApplicationTemplate

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

func (*ApplicationTemplate) DeepCopyInto

func (in *ApplicationTemplate) DeepCopyInto(out *ApplicationTemplate)

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

type ApplicationVersion

type ApplicationVersion struct {

	// Version of the application (e.g. v1.2.3)
	Version string `json:"version"`

	// Template defines how application is installed (source provenance, Method...)
	Template ApplicationTemplate `json:"template"`
}

func (*ApplicationVersion) DeepCopy

func (in *ApplicationVersion) DeepCopy() *ApplicationVersion

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

func (*ApplicationVersion) DeepCopyInto

func (in *ApplicationVersion) DeepCopyInto(out *ApplicationVersion)

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

type DependencyCredentials

type DependencyCredentials struct {
	// HelmCredentials holds the ref to the secret with helm credentials needed to build helm dependencies.
	// It is not required when using helm as a source, as dependencies are already prepackaged in this case.
	// It's either username / password or a registryConfigFile can be defined.
	HelmCredentials *HelmCredentials `json:"helmCredentials,omitempty"`
}

func (*DependencyCredentials) DeepCopy

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

func (*DependencyCredentials) DeepCopyInto

func (in *DependencyCredentials) DeepCopyInto(out *DependencyCredentials)

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

type DeployOptions

type DeployOptions struct {
	Helm *HelmDeployOptions `json:"helm,omitempty"`
}

DeployOptions holds the settings specific to the templating method used to deploy the application.

func (*DeployOptions) DeepCopy

func (in *DeployOptions) DeepCopy() *DeployOptions

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

func (*DeployOptions) DeepCopyInto

func (in *DeployOptions) DeepCopyInto(out *DeployOptions)

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

type GitAuthMethod

type GitAuthMethod string

+kubebuilder:validation:Enum=password;token;ssh-key

const (
	GitAuthMethodPassword GitAuthMethod = "password"
	GitAuthMethodToken    GitAuthMethod = "token"
	GitAuthMethodSSHKey   GitAuthMethod = "ssh-key"
)

type GitCredentials

type GitCredentials struct {
	// Authentication method. Either password or token or ssh-key.
	// if method is password then username and password must be defined.
	// if method is token then token must be defined.
	// if method is ssh-key then ssh-key must be defined.
	Method GitAuthMethod `json:"method"`

	// Username holds the ref and key in the secret for the username credential.
	// The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
	// The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
	Username *corev1.SecretKeySelector `json:"username,omitempty"`

	// Password holds the ref and key in the secret for the Password credential.
	// The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
	// The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
	Password *corev1.SecretKeySelector `json:"password,omitempty"`

	// Token holds the ref and key in the secret for the token credential.
	// The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
	// The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
	Token *corev1.SecretKeySelector `json:"token,omitempty"`

	// SSHKey holds the ref and key in the secret for the SshKey credential.
	// The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
	// The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
	SSHKey *corev1.SecretKeySelector `json:"sshKey,omitempty"`
}

func (*GitCredentials) DeepCopy

func (in *GitCredentials) DeepCopy() *GitCredentials

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

func (*GitCredentials) DeepCopyInto

func (in *GitCredentials) DeepCopyInto(out *GitCredentials)

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

type GitReference

type GitReference struct {
	// Branch to checkout. Only the last commit of the branch will be checkout in order to reduce the amount of data to download.
	// +optional
	Branch string `json:"branch,omitempty"`

	// Commit SHA in a Branch to checkout.
	//
	// It must be used in conjunction with branch field.
	// +kubebuilder:validation:Pattern:=`^[a-f0-9]{40}$`
	// +kubebuilder:validation:Type=string
	// +optional
	Commit string `json:"commit,omitempty"`

	// Tag to check out.
	// It can not be used in conjunction with commit or branch.
	// +kubebuilder:validation:Type=string
	// +optional
	Tag string `json:"tag,omitempty"`
}

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 GitSource

type GitSource struct {
	// URL to the repository. Can be HTTP(s) (e.g. https://example.com/myrepo) or SSH (e.g. git://example.com[:port]/path/to/repo.git/)
	// +kubebuilder:validation:MinLength=1
	Remote string `json:"remote"`

	// Git reference to checkout.
	// For large repositories, we recommend to either use Tag, Branch or Branch+Commit. This allows a shallow clone, which dramatically speeds up performance
	Ref GitReference `json:"ref"`

	// Path of the "source" in the repository. default is repository root
	Path string `json:"path,omitempty"`

	// Credentials are optional and holds the git credentials
	Credentials *GitCredentials `json:"credentials,omitempty"`
}

func (*GitSource) DeepCopy

func (in *GitSource) DeepCopy() *GitSource

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

func (*GitSource) DeepCopyInto

func (in *GitSource) DeepCopyInto(out *GitSource)

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

type HelmCredentials

type HelmCredentials struct {
	// Username holds the ref and key in the secret for the username credential.
	// The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
	// The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
	Username *corev1.SecretKeySelector `json:"username,omitempty"`

	// Password holds the ref and key in the secret for the Password credential.
	// The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
	// The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
	Password *corev1.SecretKeySelector `json:"password,omitempty"`

	// RegistryConfigFile holds the ref and key in the secret for the registry credential file. The value is dockercfg
	// file that follows the same format rules as ~/.docker/config.json
	// The The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
	// The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to helm or git
	RegistryConfigFile *corev1.SecretKeySelector `json:"registryConfigFile,omitempty"`
}

func (*HelmCredentials) DeepCopy

func (in *HelmCredentials) DeepCopy() *HelmCredentials

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

func (*HelmCredentials) DeepCopyInto

func (in *HelmCredentials) DeepCopyInto(out *HelmCredentials)

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

type HelmDeployOptions

type HelmDeployOptions struct {
	// Wait corresponds to the --wait flag on Helm cli.
	// if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful. It will wait for as long as timeout
	Wait bool `json:"wait,omitempty"`

	// Timeout corresponds to the --timeout flag on Helm cli.
	// time to wait for any individual Kubernetes operation.
	Timeout metav1.Duration `json:"timeout,omitempty"`

	// Atomic corresponds to the --atomic flag on Helm cli.
	// if set, the installation process deletes the installation on failure; the upgrade process rolls back changes made in case of failed upgrade.
	Atomic bool `json:"atomic,omitempty"`

	// EnableDNS  corresponds to the --enable-dns flag on Helm cli.
	// enable DNS lookups when rendering templates.
	// if you enable this flag, you have to verify that helm template function 'getHostByName' is not being used in a chart to disclose any information you do not want to be passed to DNS servers.(c.f. CVE-2023-25165)
	EnableDNS bool `json:"enableDNS,omitempty"`
}

HelmDeployOptions holds the deployment settings when templating method is Helm.

func (*HelmDeployOptions) DeepCopy

func (in *HelmDeployOptions) DeepCopy() *HelmDeployOptions

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

func (*HelmDeployOptions) DeepCopyInto

func (in *HelmDeployOptions) DeepCopyInto(out *HelmDeployOptions)

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

type HelmRelease

type HelmRelease struct {
	// Name is the name of the release.
	Name string `json:"name,omitempty"`

	// Version is an int which represents the revision of the release.
	Version int `json:"version,omitempty"`

	// Info provides information about a release.
	Info *HelmReleaseInfo `json:"info,omitempty"`
}

func (*HelmRelease) DeepCopy

func (in *HelmRelease) DeepCopy() *HelmRelease

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

func (*HelmRelease) DeepCopyInto

func (in *HelmRelease) DeepCopyInto(out *HelmRelease)

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

type HelmReleaseInfo

type HelmReleaseInfo struct {
	// FirstDeployed is when the release was first deployed.
	FirstDeployed metav1.Time `json:"firstDeployed,omitempty"`

	// LastDeployed is when the release was last deployed.
	LastDeployed metav1.Time `json:"lastDeployed,omitempty"`

	// Deleted tracks when this object was deleted.
	Deleted metav1.Time `json:"deleted,omitempty"`

	// Description is human-friendly "log entry" about this release.
	Description string `json:"description,omitempty"`

	// Status is the current state of the release. This field can take one of the
	// values of helm.hhs/helm/v3/pkg/releases/Status.
	Status string `json:"status,omitempty"`

	// Notes is  the rendered templates/NOTES.txt if available.
	Notes string `json:"notes,omitempty"`
}

HelmReleaseInfo describes release information. tech note: we can not use release.Info from Helm because the underlying type used for time has no json tag.

func (*HelmReleaseInfo) DeepCopy

func (in *HelmReleaseInfo) DeepCopy() *HelmReleaseInfo

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

func (*HelmReleaseInfo) DeepCopyInto

func (in *HelmReleaseInfo) DeepCopyInto(out *HelmReleaseInfo)

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

type HelmSource

type HelmSource struct {
	// URl of the helm repository.
	// It can be an HTTP(s) repository (e.g. https://localhost/myrepo) or on OCI repository (e.g. oci://localhost:5000/myrepo).
	// +kubebuilder:validation:Pattern="^(http|https|oci)://.+"
	URL string `json:"url"`

	// Name of the Chart.
	// +kubebuilder:validation:MinLength=1
	ChartName string `json:"chartName"`

	// Version of the Chart.
	// +kubebuilder:validation:MinLength=1
	ChartVersion string `json:"chartVersion"`

	// Credentials are optional and hold the ref to the secret with helm credentials.
	// Either username / Password or registryConfigFile can be defined.
	Credentials *HelmCredentials `json:"credentials,omitempty"`
}

func (*HelmSource) DeepCopy

func (in *HelmSource) DeepCopy() *HelmSource

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

func (*HelmSource) DeepCopyInto

func (in *HelmSource) DeepCopyInto(out *HelmSource)

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

type TemplateMethod

type TemplateMethod string

+kubebuilder:validation:Enum=helm

const (
	HelmTemplateMethod TemplateMethod = "helm"
)

Jump to

Keyboard shortcuts

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