k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
1,384 lines • 185 kB
TypeScript
import { ApiObject, ApiObjectMetadata, GroupVersionKind } from 'cdk8s';
import { Construct } from 'constructs';
/**
* HelmRelease is the Schema for the helmreleases API
*
* @schema HelmRelease
*/
export declare class HelmRelease extends ApiObject {
/**
* Returns the apiVersion and kind for "HelmRelease"
*/
static readonly GVK: GroupVersionKind;
/**
* Renders a Kubernetes manifest for "HelmRelease".
*
* This can be used to inline resource manifests inside other objects (e.g. as templates).
*
* @param props initialization props
*/
static manifest(props?: HelmReleaseProps): any;
/**
* Defines a "HelmRelease" API object
* @param scope the scope in which to define this object
* @param id a scope-local name for the object
* @param props initialization props
*/
constructor(scope: Construct, id: string, props?: HelmReleaseProps);
/**
* Renders the object to Kubernetes JSON.
*/
toJson(): any;
}
/**
* HelmRelease is the Schema for the helmreleases API
*
* @schema HelmRelease
*/
export interface HelmReleaseProps {
/**
* @schema HelmRelease#metadata
*/
readonly metadata?: ApiObjectMetadata;
/**
* HelmReleaseSpec defines the desired state of a Helm release.
*
* @schema HelmRelease#spec
*/
readonly spec?: HelmReleaseSpec;
}
/**
* Converts an object of type 'HelmReleaseProps' to JSON representation.
*/
export declare function toJson_HelmReleaseProps(obj: HelmReleaseProps | undefined): Record<string, any> | undefined;
/**
* HelmReleaseSpec defines the desired state of a Helm release.
*
* @schema HelmReleaseSpec
*/
export interface HelmReleaseSpec {
/**
* Chart defines the template of the v1.HelmChart that should be created
* for this HelmRelease.
*
* @schema HelmReleaseSpec#chart
*/
readonly chart?: HelmReleaseSpecChart;
/**
* ChartRef holds a reference to a source controller resource containing the
* Helm chart artifact.
*
* @schema HelmReleaseSpec#chartRef
*/
readonly chartRef?: HelmReleaseSpecChartRef;
/**
* DependsOn may contain a meta.NamespacedObjectReference slice with
* references to HelmRelease resources that must be ready before this HelmRelease
* can be reconciled.
*
* @schema HelmReleaseSpec#dependsOn
*/
readonly dependsOn?: HelmReleaseSpecDependsOn[];
/**
* DriftDetection holds the configuration for detecting and handling
* differences between the manifest in the Helm storage and the resources
* currently existing in the cluster.
*
* @schema HelmReleaseSpec#driftDetection
*/
readonly driftDetection?: HelmReleaseSpecDriftDetection;
/**
* Install holds the configuration for Helm install actions for this HelmRelease.
*
* @schema HelmReleaseSpec#install
*/
readonly install?: HelmReleaseSpecInstall;
/**
* Interval at which to reconcile the Helm release.
*
* @schema HelmReleaseSpec#interval
*/
readonly interval: string;
/**
* KubeConfig for reconciling the HelmRelease on a remote cluster.
* When used in combination with HelmReleaseSpec.ServiceAccountName,
* forces the controller to act on behalf of that Service Account at the
* target cluster.
* If the --default-service-account flag is set, its value will be used as
* a controller level fallback for when HelmReleaseSpec.ServiceAccountName
* is empty.
*
* @schema HelmReleaseSpec#kubeConfig
*/
readonly kubeConfig?: HelmReleaseSpecKubeConfig;
/**
* MaxHistory is the number of revisions saved by Helm for this HelmRelease.
* Use '0' for an unlimited number of revisions; defaults to '5'.
*
* @schema HelmReleaseSpec#maxHistory
*/
readonly maxHistory?: number;
/**
* PersistentClient tells the controller to use a persistent Kubernetes
* client for this release. When enabled, the client will be reused for the
* duration of the reconciliation, instead of being created and destroyed
* for each (step of a) Helm action.
*
* This can improve performance, but may cause issues with some Helm charts
* that for example do create Custom Resource Definitions during installation
* outside Helm's CRD lifecycle hooks, which are then not observed to be
* available by e.g. post-install hooks.
*
* If not set, it defaults to true.
*
* @schema HelmReleaseSpec#persistentClient
*/
readonly persistentClient?: boolean;
/**
* PostRenderers holds an array of Helm PostRenderers, which will be applied in order
* of their definition.
*
* @schema HelmReleaseSpec#postRenderers
*/
readonly postRenderers?: HelmReleaseSpecPostRenderers[];
/**
* ReleaseName used for the Helm release. Defaults to a composition of
* '[TargetNamespace-]Name'.
*
* @default a composition of
* @schema HelmReleaseSpec#releaseName
*/
readonly releaseName?: string;
/**
* Rollback holds the configuration for Helm rollback actions for this HelmRelease.
*
* @schema HelmReleaseSpec#rollback
*/
readonly rollback?: HelmReleaseSpecRollback;
/**
* The name of the Kubernetes service account to impersonate
* when reconciling this HelmRelease.
*
* @schema HelmReleaseSpec#serviceAccountName
*/
readonly serviceAccountName?: string;
/**
* StorageNamespace used for the Helm storage.
* Defaults to the namespace of the HelmRelease.
*
* @default the namespace of the HelmRelease.
* @schema HelmReleaseSpec#storageNamespace
*/
readonly storageNamespace?: string;
/**
* Suspend tells the controller to suspend reconciliation for this HelmRelease,
* it does not apply to already started reconciliations. Defaults to false.
*
* @default false.
* @schema HelmReleaseSpec#suspend
*/
readonly suspend?: boolean;
/**
* TargetNamespace to target when performing operations for the HelmRelease.
* Defaults to the namespace of the HelmRelease.
*
* @default the namespace of the HelmRelease.
* @schema HelmReleaseSpec#targetNamespace
*/
readonly targetNamespace?: string;
/**
* Test holds the configuration for Helm test actions for this HelmRelease.
*
* @schema HelmReleaseSpec#test
*/
readonly test?: HelmReleaseSpecTest;
/**
* Timeout is the time to wait for any individual Kubernetes operation (like Jobs
* for hooks) during the performance of a Helm action. Defaults to '5m0s'.
*
* @default 5m0s'.
* @schema HelmReleaseSpec#timeout
*/
readonly timeout?: string;
/**
* Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.
*
* @schema HelmReleaseSpec#uninstall
*/
readonly uninstall?: HelmReleaseSpecUninstall;
/**
* Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.
*
* @schema HelmReleaseSpec#upgrade
*/
readonly upgrade?: HelmReleaseSpecUpgrade;
/**
* Values holds the values for this Helm release.
*
* @schema HelmReleaseSpec#values
*/
readonly values?: any;
/**
* ValuesFrom holds references to resources containing Helm values for this HelmRelease,
* and information about how they should be merged.
*
* @schema HelmReleaseSpec#valuesFrom
*/
readonly valuesFrom?: HelmReleaseSpecValuesFrom[];
}
/**
* Converts an object of type 'HelmReleaseSpec' to JSON representation.
*/
export declare function toJson_HelmReleaseSpec(obj: HelmReleaseSpec | undefined): Record<string, any> | undefined;
/**
* Chart defines the template of the v1.HelmChart that should be created
* for this HelmRelease.
*
* @schema HelmReleaseSpecChart
*/
export interface HelmReleaseSpecChart {
/**
* ObjectMeta holds the template for metadata like labels and annotations.
*
* @schema HelmReleaseSpecChart#metadata
*/
readonly metadata?: HelmReleaseSpecChartMetadata;
/**
* Spec holds the template for the v1.HelmChartSpec for this HelmRelease.
*
* @schema HelmReleaseSpecChart#spec
*/
readonly spec: HelmReleaseSpecChartSpec;
}
/**
* Converts an object of type 'HelmReleaseSpecChart' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecChart(obj: HelmReleaseSpecChart | undefined): Record<string, any> | undefined;
/**
* ChartRef holds a reference to a source controller resource containing the
* Helm chart artifact.
*
* @schema HelmReleaseSpecChartRef
*/
export interface HelmReleaseSpecChartRef {
/**
* APIVersion of the referent.
*
* @schema HelmReleaseSpecChartRef#apiVersion
*/
readonly apiVersion?: string;
/**
* Kind of the referent.
*
* @schema HelmReleaseSpecChartRef#kind
*/
readonly kind: HelmReleaseSpecChartRefKind;
/**
* Name of the referent.
*
* @schema HelmReleaseSpecChartRef#name
*/
readonly name: string;
/**
* Namespace of the referent, defaults to the namespace of the Kubernetes
* resource object that contains the reference.
*
* @schema HelmReleaseSpecChartRef#namespace
*/
readonly namespace?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecChartRef' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecChartRef(obj: HelmReleaseSpecChartRef | undefined): Record<string, any> | undefined;
/**
* NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any
* namespace.
*
* @schema HelmReleaseSpecDependsOn
*/
export interface HelmReleaseSpecDependsOn {
/**
* Name of the referent.
*
* @schema HelmReleaseSpecDependsOn#name
*/
readonly name: string;
/**
* Namespace of the referent, when not specified it acts as LocalObjectReference.
*
* @schema HelmReleaseSpecDependsOn#namespace
*/
readonly namespace?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecDependsOn' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecDependsOn(obj: HelmReleaseSpecDependsOn | undefined): Record<string, any> | undefined;
/**
* DriftDetection holds the configuration for detecting and handling
* differences between the manifest in the Helm storage and the resources
* currently existing in the cluster.
*
* @schema HelmReleaseSpecDriftDetection
*/
export interface HelmReleaseSpecDriftDetection {
/**
* Ignore contains a list of rules for specifying which changes to ignore
* during diffing.
*
* @schema HelmReleaseSpecDriftDetection#ignore
*/
readonly ignore?: HelmReleaseSpecDriftDetectionIgnore[];
/**
* Mode defines how differences should be handled between the Helm manifest
* and the manifest currently applied to the cluster.
* If not explicitly set, it defaults to DiffModeDisabled.
*
* @schema HelmReleaseSpecDriftDetection#mode
*/
readonly mode?: HelmReleaseSpecDriftDetectionMode;
}
/**
* Converts an object of type 'HelmReleaseSpecDriftDetection' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecDriftDetection(obj: HelmReleaseSpecDriftDetection | undefined): Record<string, any> | undefined;
/**
* Install holds the configuration for Helm install actions for this HelmRelease.
*
* @schema HelmReleaseSpecInstall
*/
export interface HelmReleaseSpecInstall {
/**
* CRDs upgrade CRDs from the Helm Chart's crds directory according
* to the CRD upgrade policy provided here. Valid values are `Skip`,
* `Create` or `CreateReplace`. Default is `Create` and if omitted
* CRDs are installed but not updated.
*
* Skip: do neither install nor replace (update) any CRDs.
*
* Create: new CRDs are created, existing CRDs are neither updated nor deleted.
*
* CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
* but not deleted.
*
* By default, CRDs are applied (installed) during Helm install action.
* With this option users can opt in to CRD replace existing CRDs on Helm
* install actions, which is not (yet) natively supported by Helm.
* https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
*
* @default Create` and if omitted
* @schema HelmReleaseSpecInstall#crds
*/
readonly crds?: HelmReleaseSpecInstallCrds;
/**
* CreateNamespace tells the Helm install action to create the
* HelmReleaseSpec.TargetNamespace if it does not exist yet.
* On uninstall, the namespace will not be garbage collected.
*
* @schema HelmReleaseSpecInstall#createNamespace
*/
readonly createNamespace?: boolean;
/**
* DisableHooks prevents hooks from running during the Helm install action.
*
* @schema HelmReleaseSpecInstall#disableHooks
*/
readonly disableHooks?: boolean;
/**
* DisableOpenAPIValidation prevents the Helm install action from validating
* rendered templates against the Kubernetes OpenAPI Schema.
*
* @schema HelmReleaseSpecInstall#disableOpenAPIValidation
*/
readonly disableOpenApiValidation?: boolean;
/**
* DisableSchemaValidation prevents the Helm install action from validating
* the values against the JSON Schema.
*
* @schema HelmReleaseSpecInstall#disableSchemaValidation
*/
readonly disableSchemaValidation?: boolean;
/**
* DisableTakeOwnership disables taking ownership of existing resources
* during the Helm install action. Defaults to false.
*
* @default false.
* @schema HelmReleaseSpecInstall#disableTakeOwnership
*/
readonly disableTakeOwnership?: boolean;
/**
* DisableWait disables the waiting for resources to be ready after a Helm
* install has been performed.
*
* @schema HelmReleaseSpecInstall#disableWait
*/
readonly disableWait?: boolean;
/**
* DisableWaitForJobs disables waiting for jobs to complete after a Helm
* install has been performed.
*
* @schema HelmReleaseSpecInstall#disableWaitForJobs
*/
readonly disableWaitForJobs?: boolean;
/**
* Remediation holds the remediation configuration for when the Helm install
* action for the HelmRelease fails. The default is to not perform any action.
*
* @schema HelmReleaseSpecInstall#remediation
*/
readonly remediation?: HelmReleaseSpecInstallRemediation;
/**
* Replace tells the Helm install action to re-use the 'ReleaseName', but only
* if that name is a deleted release which remains in the history.
*
* @schema HelmReleaseSpecInstall#replace
*/
readonly replace?: boolean;
/**
* SkipCRDs tells the Helm install action to not install any CRDs. By default,
* CRDs are installed if not already present.
*
* Deprecated use CRD policy (`crds`) attribute with value `Skip` instead.
*
* @schema HelmReleaseSpecInstall#skipCRDs
*/
readonly skipCrDs?: boolean;
/**
* Timeout is the time to wait for any individual Kubernetes operation (like
* Jobs for hooks) during the performance of a Helm install action. Defaults to
* 'HelmReleaseSpec.Timeout'.
*
* @default HelmReleaseSpec.Timeout'.
* @schema HelmReleaseSpecInstall#timeout
*/
readonly timeout?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecInstall' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecInstall(obj: HelmReleaseSpecInstall | undefined): Record<string, any> | undefined;
/**
* KubeConfig for reconciling the HelmRelease on a remote cluster.
* When used in combination with HelmReleaseSpec.ServiceAccountName,
* forces the controller to act on behalf of that Service Account at the
* target cluster.
* If the --default-service-account flag is set, its value will be used as
* a controller level fallback for when HelmReleaseSpec.ServiceAccountName
* is empty.
*
* @schema HelmReleaseSpecKubeConfig
*/
export interface HelmReleaseSpecKubeConfig {
/**
* SecretRef holds the name of a secret that contains a key with
* the kubeconfig file as the value. If no key is set, the key will default
* to 'value'.
* It is recommended that the kubeconfig is self-contained, and the secret
* is regularly updated if credentials such as a cloud-access-token expire.
* Cloud specific `cmd-path` auth helpers will not function without adding
* binaries and credentials to the Pod that is responsible for reconciling
* Kubernetes resources.
*
* @schema HelmReleaseSpecKubeConfig#secretRef
*/
readonly secretRef: HelmReleaseSpecKubeConfigSecretRef;
}
/**
* Converts an object of type 'HelmReleaseSpecKubeConfig' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecKubeConfig(obj: HelmReleaseSpecKubeConfig | undefined): Record<string, any> | undefined;
/**
* PostRenderer contains a Helm PostRenderer specification.
*
* @schema HelmReleaseSpecPostRenderers
*/
export interface HelmReleaseSpecPostRenderers {
/**
* Kustomization to apply as PostRenderer.
*
* @schema HelmReleaseSpecPostRenderers#kustomize
*/
readonly kustomize?: HelmReleaseSpecPostRenderersKustomize;
}
/**
* Converts an object of type 'HelmReleaseSpecPostRenderers' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecPostRenderers(obj: HelmReleaseSpecPostRenderers | undefined): Record<string, any> | undefined;
/**
* Rollback holds the configuration for Helm rollback actions for this HelmRelease.
*
* @schema HelmReleaseSpecRollback
*/
export interface HelmReleaseSpecRollback {
/**
* CleanupOnFail allows deletion of new resources created during the Helm
* rollback action when it fails.
*
* @schema HelmReleaseSpecRollback#cleanupOnFail
*/
readonly cleanupOnFail?: boolean;
/**
* DisableHooks prevents hooks from running during the Helm rollback action.
*
* @schema HelmReleaseSpecRollback#disableHooks
*/
readonly disableHooks?: boolean;
/**
* DisableWait disables the waiting for resources to be ready after a Helm
* rollback has been performed.
*
* @schema HelmReleaseSpecRollback#disableWait
*/
readonly disableWait?: boolean;
/**
* DisableWaitForJobs disables waiting for jobs to complete after a Helm
* rollback has been performed.
*
* @schema HelmReleaseSpecRollback#disableWaitForJobs
*/
readonly disableWaitForJobs?: boolean;
/**
* Force forces resource updates through a replacement strategy.
*
* @schema HelmReleaseSpecRollback#force
*/
readonly force?: boolean;
/**
* Recreate performs pod restarts for the resource if applicable.
*
* @schema HelmReleaseSpecRollback#recreate
*/
readonly recreate?: boolean;
/**
* Timeout is the time to wait for any individual Kubernetes operation (like
* Jobs for hooks) during the performance of a Helm rollback action. Defaults to
* 'HelmReleaseSpec.Timeout'.
*
* @default HelmReleaseSpec.Timeout'.
* @schema HelmReleaseSpecRollback#timeout
*/
readonly timeout?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecRollback' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecRollback(obj: HelmReleaseSpecRollback | undefined): Record<string, any> | undefined;
/**
* Test holds the configuration for Helm test actions for this HelmRelease.
*
* @schema HelmReleaseSpecTest
*/
export interface HelmReleaseSpecTest {
/**
* Enable enables Helm test actions for this HelmRelease after an Helm install
* or upgrade action has been performed.
*
* @schema HelmReleaseSpecTest#enable
*/
readonly enable?: boolean;
/**
* Filters is a list of tests to run or exclude from running.
*
* @schema HelmReleaseSpecTest#filters
*/
readonly filters?: HelmReleaseSpecTestFilters[];
/**
* IgnoreFailures tells the controller to skip remediation when the Helm tests
* are run but fail. Can be overwritten for tests run after install or upgrade
* actions in 'Install.IgnoreTestFailures' and 'Upgrade.IgnoreTestFailures'.
*
* @schema HelmReleaseSpecTest#ignoreFailures
*/
readonly ignoreFailures?: boolean;
/**
* Timeout is the time to wait for any individual Kubernetes operation during
* the performance of a Helm test action. Defaults to 'HelmReleaseSpec.Timeout'.
*
* @default HelmReleaseSpec.Timeout'.
* @schema HelmReleaseSpecTest#timeout
*/
readonly timeout?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecTest' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecTest(obj: HelmReleaseSpecTest | undefined): Record<string, any> | undefined;
/**
* Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.
*
* @schema HelmReleaseSpecUninstall
*/
export interface HelmReleaseSpecUninstall {
/**
* DeletionPropagation specifies the deletion propagation policy when
* a Helm uninstall is performed.
*
* @schema HelmReleaseSpecUninstall#deletionPropagation
*/
readonly deletionPropagation?: HelmReleaseSpecUninstallDeletionPropagation;
/**
* DisableHooks prevents hooks from running during the Helm rollback action.
*
* @schema HelmReleaseSpecUninstall#disableHooks
*/
readonly disableHooks?: boolean;
/**
* DisableWait disables waiting for all the resources to be deleted after
* a Helm uninstall is performed.
*
* @schema HelmReleaseSpecUninstall#disableWait
*/
readonly disableWait?: boolean;
/**
* KeepHistory tells Helm to remove all associated resources and mark the
* release as deleted, but retain the release history.
*
* @schema HelmReleaseSpecUninstall#keepHistory
*/
readonly keepHistory?: boolean;
/**
* Timeout is the time to wait for any individual Kubernetes operation (like
* Jobs for hooks) during the performance of a Helm uninstall action. Defaults
* to 'HelmReleaseSpec.Timeout'.
*
* @default HelmReleaseSpec.Timeout'.
* @schema HelmReleaseSpecUninstall#timeout
*/
readonly timeout?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecUninstall' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecUninstall(obj: HelmReleaseSpecUninstall | undefined): Record<string, any> | undefined;
/**
* Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.
*
* @schema HelmReleaseSpecUpgrade
*/
export interface HelmReleaseSpecUpgrade {
/**
* CleanupOnFail allows deletion of new resources created during the Helm
* upgrade action when it fails.
*
* @schema HelmReleaseSpecUpgrade#cleanupOnFail
*/
readonly cleanupOnFail?: boolean;
/**
* CRDs upgrade CRDs from the Helm Chart's crds directory according
* to the CRD upgrade policy provided here. Valid values are `Skip`,
* `Create` or `CreateReplace`. Default is `Skip` and if omitted
* CRDs are neither installed nor upgraded.
*
* Skip: do neither install nor replace (update) any CRDs.
*
* Create: new CRDs are created, existing CRDs are neither updated nor deleted.
*
* CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
* but not deleted.
*
* By default, CRDs are not applied during Helm upgrade action. With this
* option users can opt-in to CRD upgrade, which is not (yet) natively supported by Helm.
* https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
*
* @default Skip` and if omitted
* @schema HelmReleaseSpecUpgrade#crds
*/
readonly crds?: HelmReleaseSpecUpgradeCrds;
/**
* DisableHooks prevents hooks from running during the Helm upgrade action.
*
* @schema HelmReleaseSpecUpgrade#disableHooks
*/
readonly disableHooks?: boolean;
/**
* DisableOpenAPIValidation prevents the Helm upgrade action from validating
* rendered templates against the Kubernetes OpenAPI Schema.
*
* @schema HelmReleaseSpecUpgrade#disableOpenAPIValidation
*/
readonly disableOpenApiValidation?: boolean;
/**
* DisableSchemaValidation prevents the Helm upgrade action from validating
* the values against the JSON Schema.
*
* @schema HelmReleaseSpecUpgrade#disableSchemaValidation
*/
readonly disableSchemaValidation?: boolean;
/**
* DisableTakeOwnership disables taking ownership of existing resources
* during the Helm upgrade action. Defaults to false.
*
* @default false.
* @schema HelmReleaseSpecUpgrade#disableTakeOwnership
*/
readonly disableTakeOwnership?: boolean;
/**
* DisableWait disables the waiting for resources to be ready after a Helm
* upgrade has been performed.
*
* @schema HelmReleaseSpecUpgrade#disableWait
*/
readonly disableWait?: boolean;
/**
* DisableWaitForJobs disables waiting for jobs to complete after a Helm
* upgrade has been performed.
*
* @schema HelmReleaseSpecUpgrade#disableWaitForJobs
*/
readonly disableWaitForJobs?: boolean;
/**
* Force forces resource updates through a replacement strategy.
*
* @schema HelmReleaseSpecUpgrade#force
*/
readonly force?: boolean;
/**
* PreserveValues will make Helm reuse the last release's values and merge in
* overrides from 'Values'. Setting this flag makes the HelmRelease
* non-declarative.
*
* @schema HelmReleaseSpecUpgrade#preserveValues
*/
readonly preserveValues?: boolean;
/**
* Remediation holds the remediation configuration for when the Helm upgrade
* action for the HelmRelease fails. The default is to not perform any action.
*
* @schema HelmReleaseSpecUpgrade#remediation
*/
readonly remediation?: HelmReleaseSpecUpgradeRemediation;
/**
* Timeout is the time to wait for any individual Kubernetes operation (like
* Jobs for hooks) during the performance of a Helm upgrade action. Defaults to
* 'HelmReleaseSpec.Timeout'.
*
* @default HelmReleaseSpec.Timeout'.
* @schema HelmReleaseSpecUpgrade#timeout
*/
readonly timeout?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecUpgrade' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecUpgrade(obj: HelmReleaseSpecUpgrade | undefined): Record<string, any> | undefined;
/**
* ValuesReference contains a reference to a resource containing Helm values,
* and optionally the key they can be found at.
*
* @schema HelmReleaseSpecValuesFrom
*/
export interface HelmReleaseSpecValuesFrom {
/**
* Kind of the values referent, valid values are ('Secret', 'ConfigMap').
*
* @schema HelmReleaseSpecValuesFrom#kind
*/
readonly kind: HelmReleaseSpecValuesFromKind;
/**
* Name of the values referent. Should reside in the same namespace as the
* referring resource.
*
* @schema HelmReleaseSpecValuesFrom#name
*/
readonly name: string;
/**
* Optional marks this ValuesReference as optional. When set, a not found error
* for the values reference is ignored, but any ValuesKey, TargetPath or
* transient error will still result in a reconciliation failure.
*
* @schema HelmReleaseSpecValuesFrom#optional
*/
readonly optional?: boolean;
/**
* TargetPath is the YAML dot notation path the value should be merged at. When
* set, the ValuesKey is expected to be a single flat value. Defaults to 'None',
* which results in the values getting merged at the root.
*
* @default None',
* @schema HelmReleaseSpecValuesFrom#targetPath
*/
readonly targetPath?: string;
/**
* ValuesKey is the data key where the values.yaml or a specific value can be
* found at. Defaults to 'values.yaml'.
*
* @default values.yaml'.
* @schema HelmReleaseSpecValuesFrom#valuesKey
*/
readonly valuesKey?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecValuesFrom' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecValuesFrom(obj: HelmReleaseSpecValuesFrom | undefined): Record<string, any> | undefined;
/**
* ObjectMeta holds the template for metadata like labels and annotations.
*
* @schema HelmReleaseSpecChartMetadata
*/
export interface HelmReleaseSpecChartMetadata {
/**
* Annotations is an unstructured key value map stored with a resource that may be
* set by external tools to store and retrieve arbitrary metadata. They are not
* queryable and should be preserved when modifying objects.
* More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
*
* @schema HelmReleaseSpecChartMetadata#annotations
*/
readonly annotations?: {
[key: string]: string;
};
/**
* Map of string keys and values that can be used to organize and categorize
* (scope and select) objects.
* More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
*
* @schema HelmReleaseSpecChartMetadata#labels
*/
readonly labels?: {
[key: string]: string;
};
}
/**
* Converts an object of type 'HelmReleaseSpecChartMetadata' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecChartMetadata(obj: HelmReleaseSpecChartMetadata | undefined): Record<string, any> | undefined;
/**
* Spec holds the template for the v1.HelmChartSpec for this HelmRelease.
*
* @schema HelmReleaseSpecChartSpec
*/
export interface HelmReleaseSpecChartSpec {
/**
* The name or path the Helm chart is available at in the SourceRef.
*
* @schema HelmReleaseSpecChartSpec#chart
*/
readonly chart: string;
/**
* IgnoreMissingValuesFiles controls whether to silently ignore missing values files rather than failing.
*
* @schema HelmReleaseSpecChartSpec#ignoreMissingValuesFiles
*/
readonly ignoreMissingValuesFiles?: boolean;
/**
* Interval at which to check the v1.Source for updates. Defaults to
* 'HelmReleaseSpec.Interval'.
*
* @default HelmReleaseSpec.Interval'.
* @schema HelmReleaseSpecChartSpec#interval
*/
readonly interval?: string;
/**
* Determines what enables the creation of a new artifact. Valid values are
* ('ChartVersion', 'Revision').
* See the documentation of the values for an explanation on their behavior.
* Defaults to ChartVersion when omitted.
*
* @default ChartVersion when omitted.
* @schema HelmReleaseSpecChartSpec#reconcileStrategy
*/
readonly reconcileStrategy?: HelmReleaseSpecChartSpecReconcileStrategy;
/**
* The name and namespace of the v1.Source the chart is available at.
*
* @schema HelmReleaseSpecChartSpec#sourceRef
*/
readonly sourceRef: HelmReleaseSpecChartSpecSourceRef;
/**
* Alternative list of values files to use as the chart values (values.yaml
* is not included by default), expected to be a relative path in the SourceRef.
* Values files are merged in the order of this list with the last file overriding
* the first. Ignored when omitted.
*
* @schema HelmReleaseSpecChartSpec#valuesFiles
*/
readonly valuesFiles?: string[];
/**
* Verify contains the secret name containing the trusted public keys
* used to verify the signature and specifies which provider to use to check
* whether OCI image is authentic.
* This field is only supported for OCI sources.
* Chart dependencies, which are not bundled in the umbrella chart artifact,
* are not verified.
*
* @schema HelmReleaseSpecChartSpec#verify
*/
readonly verify?: HelmReleaseSpecChartSpecVerify;
/**
* Version semver expression, ignored for charts from v1.GitRepository and
* v1beta2.Bucket sources. Defaults to latest when omitted.
*
* @default latest when omitted.
* @schema HelmReleaseSpecChartSpec#version
*/
readonly version?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecChartSpec' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecChartSpec(obj: HelmReleaseSpecChartSpec | undefined): Record<string, any> | undefined;
/**
* Kind of the referent.
*
* @schema HelmReleaseSpecChartRefKind
*/
export declare enum HelmReleaseSpecChartRefKind {
/** OCIRepository */
OCI_REPOSITORY = "OCIRepository",
/** HelmChart */
HELM_CHART = "HelmChart"
}
/**
* IgnoreRule defines a rule to selectively disregard specific changes during
* the drift detection process.
*
* @schema HelmReleaseSpecDriftDetectionIgnore
*/
export interface HelmReleaseSpecDriftDetectionIgnore {
/**
* Paths is a list of JSON Pointer (RFC 6901) paths to be excluded from
* consideration in a Kubernetes object.
*
* @schema HelmReleaseSpecDriftDetectionIgnore#paths
*/
readonly paths: string[];
/**
* Target is a selector for specifying Kubernetes objects to which this
* rule applies.
* If Target is not set, the Paths will be ignored for all Kubernetes
* objects within the manifest of the Helm release.
*
* @schema HelmReleaseSpecDriftDetectionIgnore#target
*/
readonly target?: HelmReleaseSpecDriftDetectionIgnoreTarget;
}
/**
* Converts an object of type 'HelmReleaseSpecDriftDetectionIgnore' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecDriftDetectionIgnore(obj: HelmReleaseSpecDriftDetectionIgnore | undefined): Record<string, any> | undefined;
/**
* Mode defines how differences should be handled between the Helm manifest
* and the manifest currently applied to the cluster.
* If not explicitly set, it defaults to DiffModeDisabled.
*
* @schema HelmReleaseSpecDriftDetectionMode
*/
export declare enum HelmReleaseSpecDriftDetectionMode {
/** enabled */
ENABLED = "enabled",
/** warn */
WARN = "warn",
/** disabled */
DISABLED = "disabled"
}
/**
* CRDs upgrade CRDs from the Helm Chart's crds directory according
* to the CRD upgrade policy provided here. Valid values are `Skip`,
* `Create` or `CreateReplace`. Default is `Create` and if omitted
* CRDs are installed but not updated.
*
* Skip: do neither install nor replace (update) any CRDs.
*
* Create: new CRDs are created, existing CRDs are neither updated nor deleted.
*
* CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
* but not deleted.
*
* By default, CRDs are applied (installed) during Helm install action.
* With this option users can opt in to CRD replace existing CRDs on Helm
* install actions, which is not (yet) natively supported by Helm.
* https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
*
* @default Create` and if omitted
* @schema HelmReleaseSpecInstallCrds
*/
export declare enum HelmReleaseSpecInstallCrds {
/** Skip */
SKIP = "Skip",
/** Create */
CREATE = "Create",
/** CreateReplace */
CREATE_REPLACE = "CreateReplace"
}
/**
* Remediation holds the remediation configuration for when the Helm install
* action for the HelmRelease fails. The default is to not perform any action.
*
* @schema HelmReleaseSpecInstallRemediation
*/
export interface HelmReleaseSpecInstallRemediation {
/**
* IgnoreTestFailures tells the controller to skip remediation when the Helm
* tests are run after an install action but fail. Defaults to
* 'Test.IgnoreFailures'.
*
* @default Test.IgnoreFailures'.
* @schema HelmReleaseSpecInstallRemediation#ignoreTestFailures
*/
readonly ignoreTestFailures?: boolean;
/**
* RemediateLastFailure tells the controller to remediate the last failure, when
* no retries remain. Defaults to 'false'.
*
* @default false'.
* @schema HelmReleaseSpecInstallRemediation#remediateLastFailure
*/
readonly remediateLastFailure?: boolean;
/**
* Retries is the number of retries that should be attempted on failures before
* bailing. Remediation, using an uninstall, is performed between each attempt.
* Defaults to '0', a negative integer equals to unlimited retries.
*
* @default 0', a negative integer equals to unlimited retries.
* @schema HelmReleaseSpecInstallRemediation#retries
*/
readonly retries?: number;
}
/**
* Converts an object of type 'HelmReleaseSpecInstallRemediation' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecInstallRemediation(obj: HelmReleaseSpecInstallRemediation | undefined): Record<string, any> | undefined;
/**
* SecretRef holds the name of a secret that contains a key with
* the kubeconfig file as the value. If no key is set, the key will default
* to 'value'.
* It is recommended that the kubeconfig is self-contained, and the secret
* is regularly updated if credentials such as a cloud-access-token expire.
* Cloud specific `cmd-path` auth helpers will not function without adding
* binaries and credentials to the Pod that is responsible for reconciling
* Kubernetes resources.
*
* @schema HelmReleaseSpecKubeConfigSecretRef
*/
export interface HelmReleaseSpecKubeConfigSecretRef {
/**
* Key in the Secret, when not specified an implementation-specific default key is used.
*
* @schema HelmReleaseSpecKubeConfigSecretRef#key
*/
readonly key?: string;
/**
* Name of the Secret.
*
* @schema HelmReleaseSpecKubeConfigSecretRef#name
*/
readonly name: string;
}
/**
* Converts an object of type 'HelmReleaseSpecKubeConfigSecretRef' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecKubeConfigSecretRef(obj: HelmReleaseSpecKubeConfigSecretRef | undefined): Record<string, any> | undefined;
/**
* Kustomization to apply as PostRenderer.
*
* @schema HelmReleaseSpecPostRenderersKustomize
*/
export interface HelmReleaseSpecPostRenderersKustomize {
/**
* Images is a list of (image name, new name, new tag or digest)
* for changing image names, tags or digests. This can also be achieved with a
* patch, but this operator is simpler to specify.
*
* @schema HelmReleaseSpecPostRenderersKustomize#images
*/
readonly images?: HelmReleaseSpecPostRenderersKustomizeImages[];
/**
* Strategic merge and JSON patches, defined as inline YAML objects,
* capable of targeting objects based on kind, label and annotation selectors.
*
* @schema HelmReleaseSpecPostRenderersKustomize#patches
*/
readonly patches?: HelmReleaseSpecPostRenderersKustomizePatches[];
}
/**
* Converts an object of type 'HelmReleaseSpecPostRenderersKustomize' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecPostRenderersKustomize(obj: HelmReleaseSpecPostRenderersKustomize | undefined): Record<string, any> | undefined;
/**
* Filter holds the configuration for individual Helm test filters.
*
* @schema HelmReleaseSpecTestFilters
*/
export interface HelmReleaseSpecTestFilters {
/**
* Exclude specifies whether the named test should be excluded.
*
* @schema HelmReleaseSpecTestFilters#exclude
*/
readonly exclude?: boolean;
/**
* Name is the name of the test.
*
* @schema HelmReleaseSpecTestFilters#name
*/
readonly name: string;
}
/**
* Converts an object of type 'HelmReleaseSpecTestFilters' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecTestFilters(obj: HelmReleaseSpecTestFilters | undefined): Record<string, any> | undefined;
/**
* DeletionPropagation specifies the deletion propagation policy when
* a Helm uninstall is performed.
*
* @schema HelmReleaseSpecUninstallDeletionPropagation
*/
export declare enum HelmReleaseSpecUninstallDeletionPropagation {
/** background */
BACKGROUND = "background",
/** foreground */
FOREGROUND = "foreground",
/** orphan */
ORPHAN = "orphan"
}
/**
* CRDs upgrade CRDs from the Helm Chart's crds directory according
* to the CRD upgrade policy provided here. Valid values are `Skip`,
* `Create` or `CreateReplace`. Default is `Skip` and if omitted
* CRDs are neither installed nor upgraded.
*
* Skip: do neither install nor replace (update) any CRDs.
*
* Create: new CRDs are created, existing CRDs are neither updated nor deleted.
*
* CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
* but not deleted.
*
* By default, CRDs are not applied during Helm upgrade action. With this
* option users can opt-in to CRD upgrade, which is not (yet) natively supported by Helm.
* https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
*
* @default Skip` and if omitted
* @schema HelmReleaseSpecUpgradeCrds
*/
export declare enum HelmReleaseSpecUpgradeCrds {
/** Skip */
SKIP = "Skip",
/** Create */
CREATE = "Create",
/** CreateReplace */
CREATE_REPLACE = "CreateReplace"
}
/**
* Remediation holds the remediation configuration for when the Helm upgrade
* action for the HelmRelease fails. The default is to not perform any action.
*
* @schema HelmReleaseSpecUpgradeRemediation
*/
export interface HelmReleaseSpecUpgradeRemediation {
/**
* IgnoreTestFailures tells the controller to skip remediation when the Helm
* tests are run after an upgrade action but fail.
* Defaults to 'Test.IgnoreFailures'.
*
* @default Test.IgnoreFailures'.
* @schema HelmReleaseSpecUpgradeRemediation#ignoreTestFailures
*/
readonly ignoreTestFailures?: boolean;
/**
* RemediateLastFailure tells the controller to remediate the last failure, when
* no retries remain. Defaults to 'false' unless 'Retries' is greater than 0.
*
* @default false' unless 'Retries' is greater than 0.
* @schema HelmReleaseSpecUpgradeRemediation#remediateLastFailure
*/
readonly remediateLastFailure?: boolean;
/**
* Retries is the number of retries that should be attempted on failures before
* bailing. Remediation, using 'Strategy', is performed between each attempt.
* Defaults to '0', a negative integer equals to unlimited retries.
*
* @default 0', a negative integer equals to unlimited retries.
* @schema HelmReleaseSpecUpgradeRemediation#retries
*/
readonly retries?: number;
/**
* Strategy to use for failure remediation. Defaults to 'rollback'.
*
* @default rollback'.
* @schema HelmReleaseSpecUpgradeRemediation#strategy
*/
readonly strategy?: HelmReleaseSpecUpgradeRemediationStrategy;
}
/**
* Converts an object of type 'HelmReleaseSpecUpgradeRemediation' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecUpgradeRemediation(obj: HelmReleaseSpecUpgradeRemediation | undefined): Record<string, any> | undefined;
/**
* Kind of the values referent, valid values are ('Secret', 'ConfigMap').
*
* @schema HelmReleaseSpecValuesFromKind
*/
export declare enum HelmReleaseSpecValuesFromKind {
/** Secret */
SECRET = "Secret",
/** ConfigMap */
CONFIG_MAP = "ConfigMap"
}
/**
* Determines what enables the creation of a new artifact. Valid values are
* ('ChartVersion', 'Revision').
* See the documentation of the values for an explanation on their behavior.
* Defaults to ChartVersion when omitted.
*
* @default ChartVersion when omitted.
* @schema HelmReleaseSpecChartSpecReconcileStrategy
*/
export declare enum HelmReleaseSpecChartSpecReconcileStrategy {
/** ChartVersion */
CHART_VERSION = "ChartVersion",
/** Revision */
REVISION = "Revision"
}
/**
* The name and namespace of the v1.Source the chart is available at.
*
* @schema HelmReleaseSpecChartSpecSourceRef
*/
export interface HelmReleaseSpecChartSpecSourceRef {
/**
* APIVersion of the referent.
*
* @schema HelmReleaseSpecChartSpecSourceRef#apiVersion
*/
readonly apiVersion?: string;
/**
* Kind of the referent.
*
* @schema HelmReleaseSpecChartSpecSourceRef#kind
*/
readonly kind: HelmReleaseSpecChartSpecSourceRefKind;
/**
* Name of the referent.
*
* @schema HelmReleaseSpecChartSpecSourceRef#name
*/
readonly name: string;
/**
* Namespace of the referent.
*
* @schema HelmReleaseSpecChartSpecSourceRef#namespace
*/
readonly namespace?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecChartSpecSourceRef' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecChartSpecSourceRef(obj: HelmReleaseSpecChartSpecSourceRef | undefined): Record<string, any> | undefined;
/**
* Verify contains the secret name containing the trusted public keys
* used to verify the signature and specifies which provider to use to check
* whether OCI image is authentic.
* This field is only supported for OCI sources.
* Chart dependencies, which are not bundled in the umbrella chart artifact,
* are not verified.
*
* @schema HelmReleaseSpecChartSpecVerify
*/
export interface HelmReleaseSpecChartSpecVerify {
/**
* Provider specifies the technology used to sign the OCI Helm chart.
*
* @schema HelmReleaseSpecChartSpecVerify#provider
*/
readonly provider: HelmReleaseSpecChartSpecVerifyProvider;
/**
* SecretRef specifies the Kubernetes Secret containing the
* trusted public keys.
*
* @schema HelmReleaseSpecChartSpecVerify#secretRef
*/
readonly secretRef?: HelmReleaseSpecChartSpecVerifySecretRef;
}
/**
* Converts an object of type 'HelmReleaseSpecChartSpecVerify' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecChartSpecVerify(obj: HelmReleaseSpecChartSpecVerify | undefined): Record<string, any> | undefined;
/**
* Target is a selector for specifying Kubernetes objects to which this
* rule applies.
* If Target is not set, the Paths will be ignored for all Kubernetes
* objects within the manifest of the Helm release.
*
* @schema HelmReleaseSpecDriftDetectionIgnoreTarget
*/
export interface HelmReleaseSpecDriftDetectionIgnoreTarget {
/**
* AnnotationSelector is a string that follows the label selection expression
* https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
* It matches with the resource annotations.
*
* @schema HelmReleaseSpecDriftDetectionIgnoreTarget#annotationSelector
*/
readonly annotationSelector?: string;
/**
* Group is the API group to select resources from.
* Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
* https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
*
* @schema HelmReleaseSpecDriftDetectionIgnoreTarget#group
*/
readonly group?: string;
/**
* Kind of the API Group to select resources from.
* Together with Group and Version it is capable of unambiguously
* identifying and/or selecting resources.
* https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
*
* @schema HelmReleaseSpecDriftDetectionIgnoreTarget#kind
*/
readonly kind?: string;
/**
* LabelSelector is a string that follows the label selection expression
* https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
* It matches with the resource labels.
*
* @schema HelmReleaseSpecDriftDetectionIgnoreTarget#labelSelector
*/
readonly labelSelector?: string;
/**
* Name to match resources with.
*
* @schema HelmReleaseSpecDriftDetectionIgnoreTarget#name
*/
readonly name?: string;
/**
* Namespace to select resources from.
*
* @schema HelmReleaseSpecDriftDetectionIgnoreTarget#namespace
*/
readonly namespace?: string;
/**
* Version of the API Group to select resources from.
* Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
* https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
*
* @schema HelmReleaseSpecDriftDetectionIgnoreTarget#version
*/
readonly version?: string;
}
/**
* Converts an object of type 'HelmReleaseSpecDriftDetectionIgnoreTarget' to JSON representation.
*/
export declare function toJson_HelmReleaseSpecDriftDetectionIgnoreTarget(obj: HelmReleaseSpecDriftDetectionIgnoreTarget | undefined): Record<string, any> | undefined;
/**
* Image contains an image name, a new name, a new tag or digest, which will replace the original name and tag.
*
* @schema HelmReleaseSpecPostRenderersKustomizeImages
*/
export interface HelmReleaseSpecPostRenderersKustomizeImages {
/**
* Digest is the value used to replace the original image tag.
* If digest is present NewTag value is ignored.
*
* @schema HelmReleaseSpecPostRenderersKustomizeImages#digest
*/
readonly digest?: string;
/**
* Name is a tag-less image name.
*
* @schema HelmReleaseSpecPostRenderersKustomizeImages#name
*/
readonly n