@kubernetes-models/flux-cd
Version:
164 lines (163 loc) • 7.86 kB
TypeScript
import { IComGithubFluxcdHelmControllerApiV2beta2HelmChartTemplate } from "./HelmChartTemplate.js";
import { IComGithubFluxcdHelmControllerApiV2beta2CrossNamespaceSourceReference } from "./CrossNamespaceSourceReference.js";
import { IComGithubFluxcdPkgApisMetaNamespacedObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/NamespacedObjectReference.js";
import { IComGithubFluxcdHelmControllerApiV2beta2DriftDetection } from "./DriftDetection.js";
import { IComGithubFluxcdHelmControllerApiV2beta2Install } from "./Install.js";
import { IComGithubFluxcdPkgApisMetaKubeConfigReference } from "../../github.com/fluxcd/pkg/apis/meta/KubeConfigReference.js";
import { IComGithubFluxcdHelmControllerApiV2beta2PostRenderer } from "./PostRenderer.js";
import { IComGithubFluxcdHelmControllerApiV2beta2Rollback } from "./Rollback.js";
import { IComGithubFluxcdHelmControllerApiV2beta2Test } from "./Test.js";
import { IComGithubFluxcdHelmControllerApiV2beta2Uninstall } from "./Uninstall.js";
import { IComGithubFluxcdHelmControllerApiV2beta2Upgrade } from "./Upgrade.js";
import { IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON } from "kubernetes-models/apiextensions.k8s.io/v1/JSON";
import { IComGithubFluxcdHelmControllerApiV2beta2ValuesReference } from "./ValuesReference.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
* HelmReleaseSpec defines the desired state of a Helm release.
*/
export interface IHelmReleaseSpec {
/**
* Chart defines the template of the v1beta2.HelmChart that should be created
* for this HelmRelease.
*/
"chart"?: IComGithubFluxcdHelmControllerApiV2beta2HelmChartTemplate;
/**
* ChartRef holds a reference to a source controller resource containing the
* Helm chart artifact.
*
* Note: this field is provisional to the v2 API, and not actively used
* by v2beta2 HelmReleases.
*/
"chartRef"?: IComGithubFluxcdHelmControllerApiV2beta2CrossNamespaceSourceReference;
/**
* DependsOn may contain a meta.NamespacedObjectReference slice with
* references to HelmRelease resources that must be ready before this HelmRelease
* can be reconciled.
*/
"dependsOn"?: Array<IComGithubFluxcdPkgApisMetaNamespacedObjectReference>;
/**
* DriftDetection holds the configuration for detecting and handling
* differences between the manifest in the Helm storage and the resources
* currently existing in the cluster.
*/
"driftDetection"?: IComGithubFluxcdHelmControllerApiV2beta2DriftDetection;
/**
* Install holds the configuration for Helm install actions for this HelmRelease.
*/
"install"?: IComGithubFluxcdHelmControllerApiV2beta2Install;
"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.
*/
"kubeConfig"?: IComGithubFluxcdPkgApisMetaKubeConfigReference;
/**
* MaxHistory is the number of revisions saved by Helm for this HelmRelease.
* Use '0' for an unlimited number of revisions; defaults to '5'.
*/
"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.
*/
"persistentClient"?: boolean;
/**
* PostRenderers holds an array of Helm PostRenderers, which will be applied in order
* of their definition.
*/
"postRenderers"?: Array<IComGithubFluxcdHelmControllerApiV2beta2PostRenderer>;
/**
* ReleaseName used for the Helm release. Defaults to a composition of
* '[TargetNamespace-]Name'.
*/
"releaseName"?: string;
/**
* Rollback holds the configuration for Helm rollback actions for this HelmRelease.
*/
"rollback"?: IComGithubFluxcdHelmControllerApiV2beta2Rollback;
/**
* The name of the Kubernetes service account to impersonate
* when reconciling this HelmRelease.
*/
"serviceAccountName"?: string;
/**
* StorageNamespace used for the Helm storage.
* Defaults to the namespace of the HelmRelease.
*/
"storageNamespace"?: string;
/**
* Suspend tells the controller to suspend reconciliation for this HelmRelease,
* it does not apply to already started reconciliations. Defaults to false.
*/
"suspend"?: boolean;
/**
* TargetNamespace to target when performing operations for the HelmRelease.
* Defaults to the namespace of the HelmRelease.
*/
"targetNamespace"?: string;
/**
* Test holds the configuration for Helm test actions for this HelmRelease.
*/
"test"?: IComGithubFluxcdHelmControllerApiV2beta2Test;
"timeout"?: string;
/**
* Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.
*/
"uninstall"?: IComGithubFluxcdHelmControllerApiV2beta2Uninstall;
/**
* Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.
*/
"upgrade"?: IComGithubFluxcdHelmControllerApiV2beta2Upgrade;
/**
* Values holds the values for this Helm release.
*/
"values"?: IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON;
/**
* ValuesFrom holds references to resources containing Helm values for this HelmRelease,
* and information about how they should be merged.
*/
"valuesFrom"?: Array<IComGithubFluxcdHelmControllerApiV2beta2ValuesReference>;
}
/**
* HelmReleaseSpec defines the desired state of a Helm release.
*/
export declare class HelmReleaseSpec extends Model<IHelmReleaseSpec> implements IHelmReleaseSpec {
"chart"?: IComGithubFluxcdHelmControllerApiV2beta2HelmChartTemplate;
"chartRef"?: IComGithubFluxcdHelmControllerApiV2beta2CrossNamespaceSourceReference;
"dependsOn"?: Array<IComGithubFluxcdPkgApisMetaNamespacedObjectReference>;
"driftDetection"?: IComGithubFluxcdHelmControllerApiV2beta2DriftDetection;
"install"?: IComGithubFluxcdHelmControllerApiV2beta2Install;
"interval": string;
"kubeConfig"?: IComGithubFluxcdPkgApisMetaKubeConfigReference;
"maxHistory"?: number;
"persistentClient"?: boolean;
"postRenderers"?: Array<IComGithubFluxcdHelmControllerApiV2beta2PostRenderer>;
"releaseName"?: string;
"rollback"?: IComGithubFluxcdHelmControllerApiV2beta2Rollback;
"serviceAccountName"?: string;
"storageNamespace"?: string;
"suspend"?: boolean;
"targetNamespace"?: string;
"test"?: IComGithubFluxcdHelmControllerApiV2beta2Test;
"timeout"?: string;
"uninstall"?: IComGithubFluxcdHelmControllerApiV2beta2Uninstall;
"upgrade"?: IComGithubFluxcdHelmControllerApiV2beta2Upgrade;
"values"?: IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON;
"valuesFrom"?: Array<IComGithubFluxcdHelmControllerApiV2beta2ValuesReference>;
constructor(data?: ModelData<IHelmReleaseSpec>);
}
export type { IHelmReleaseSpec as IComGithubFluxcdHelmControllerApiV2beta2HelmReleaseSpec, HelmReleaseSpec as ComGithubFluxcdHelmControllerApiV2beta2HelmReleaseSpec };