UNPKG

@kubernetes-models/flux-cd

Version:
167 lines (166 loc) 7.98 kB
import { IComGithubFluxcdHelmControllerApiV2beta1HelmChartTemplate } from "./HelmChartTemplate.js"; import { IComGithubFluxcdHelmControllerApiV2CrossNamespaceSourceReference } from "../v2/CrossNamespaceSourceReference.js"; import { IComGithubFluxcdPkgApisMetaNamespacedObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/NamespacedObjectReference.js"; import { IComGithubFluxcdHelmControllerApiV2beta2DriftDetection } from "../v2beta2/DriftDetection.js"; import { IComGithubFluxcdHelmControllerApiV2beta1Install } from "./Install.js"; import { IComGithubFluxcdPkgApisMetaKubeConfigReference } from "../../github.com/fluxcd/pkg/apis/meta/KubeConfigReference.js"; import { IComGithubFluxcdHelmControllerApiV2beta1PostRenderer } from "./PostRenderer.js"; import { IComGithubFluxcdHelmControllerApiV2beta1Rollback } from "./Rollback.js"; import { IComGithubFluxcdHelmControllerApiV2beta1Test } from "./Test.js"; import { IComGithubFluxcdHelmControllerApiV2beta1Uninstall } from "./Uninstall.js"; import { IComGithubFluxcdHelmControllerApiV2beta1Upgrade } from "./Upgrade.js"; import { IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON } from "kubernetes-models/apiextensions.k8s.io/v1/JSON"; import { IComGithubFluxcdHelmControllerApiV2beta1ValuesReference } 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": IComGithubFluxcdHelmControllerApiV2beta1HelmChartTemplate; /** * 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 v2beta1 HelmReleases. */ "chartRef"?: IComGithubFluxcdHelmControllerApiV2CrossNamespaceSourceReference; /** * 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. * * Note: this field is provisional to the v2beta2 API, and not actively used * by v2beta1 HelmReleases. */ "driftDetection"?: IComGithubFluxcdHelmControllerApiV2beta2DriftDetection; /** * Install holds the configuration for Helm install actions for this HelmRelease. */ "install"?: IComGithubFluxcdHelmControllerApiV2beta1Install; "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 '10'. */ "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<IComGithubFluxcdHelmControllerApiV2beta1PostRenderer>; /** * 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"?: IComGithubFluxcdHelmControllerApiV2beta1Rollback; /** * 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"?: IComGithubFluxcdHelmControllerApiV2beta1Test; "timeout"?: string; /** * Uninstall holds the configuration for Helm uninstall actions for this HelmRelease. */ "uninstall"?: IComGithubFluxcdHelmControllerApiV2beta1Uninstall; /** * Upgrade holds the configuration for Helm upgrade actions for this HelmRelease. */ "upgrade"?: IComGithubFluxcdHelmControllerApiV2beta1Upgrade; /** * 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<IComGithubFluxcdHelmControllerApiV2beta1ValuesReference>; } /** * HelmReleaseSpec defines the desired state of a Helm release. */ export declare class HelmReleaseSpec extends Model<IHelmReleaseSpec> implements IHelmReleaseSpec { "chart": IComGithubFluxcdHelmControllerApiV2beta1HelmChartTemplate; "chartRef"?: IComGithubFluxcdHelmControllerApiV2CrossNamespaceSourceReference; "dependsOn"?: Array<IComGithubFluxcdPkgApisMetaNamespacedObjectReference>; "driftDetection"?: IComGithubFluxcdHelmControllerApiV2beta2DriftDetection; "install"?: IComGithubFluxcdHelmControllerApiV2beta1Install; "interval": string; "kubeConfig"?: IComGithubFluxcdPkgApisMetaKubeConfigReference; "maxHistory"?: number; "persistentClient"?: boolean; "postRenderers"?: Array<IComGithubFluxcdHelmControllerApiV2beta1PostRenderer>; "releaseName"?: string; "rollback"?: IComGithubFluxcdHelmControllerApiV2beta1Rollback; "serviceAccountName"?: string; "storageNamespace"?: string; "suspend"?: boolean; "targetNamespace"?: string; "test"?: IComGithubFluxcdHelmControllerApiV2beta1Test; "timeout"?: string; "uninstall"?: IComGithubFluxcdHelmControllerApiV2beta1Uninstall; "upgrade"?: IComGithubFluxcdHelmControllerApiV2beta1Upgrade; "values"?: IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON; "valuesFrom"?: Array<IComGithubFluxcdHelmControllerApiV2beta1ValuesReference>; constructor(data?: ModelData<IHelmReleaseSpec>); } export type { IHelmReleaseSpec as IComGithubFluxcdHelmControllerApiV2beta1HelmReleaseSpec, HelmReleaseSpec as ComGithubFluxcdHelmControllerApiV2beta1HelmReleaseSpec };