UNPKG

@kubernetes-models/flux-cd

Version:
164 lines (163 loc) 7.86 kB
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 };