UNPKG

@kubernetes-models/flux-cd

Version:
186 lines (185 loc) 9 kB
import { IComGithubFluxcdHelmControllerApiV2HelmChartTemplate } from "./HelmChartTemplate.js"; import { IComGithubFluxcdHelmControllerApiV2CrossNamespaceSourceReference } from "./CrossNamespaceSourceReference.js"; import { IComGithubFluxcdHelmControllerApiV2CommonMetadata } from "./CommonMetadata.js"; import { IComGithubFluxcdHelmControllerApiV2DependencyReference } from "./DependencyReference.js"; import { IComGithubFluxcdHelmControllerApiV2DriftDetection } from "./DriftDetection.js"; import { IComGithubFluxcdPkgApisKustomizeCustomHealthCheck } from "../../github.com/fluxcd/pkg/apis/kustomize/CustomHealthCheck.js"; import { IComGithubFluxcdHelmControllerApiV2Install } from "./Install.js"; import { IComGithubFluxcdPkgApisMetaKubeConfigReference } from "../../github.com/fluxcd/pkg/apis/meta/KubeConfigReference.js"; import { IComGithubFluxcdHelmControllerApiV2PostRenderer } from "./PostRenderer.js"; import { IComGithubFluxcdHelmControllerApiV2Rollback } from "./Rollback.js"; import { IComGithubFluxcdHelmControllerApiV2Test } from "./Test.js"; import { IComGithubFluxcdHelmControllerApiV2Uninstall } from "./Uninstall.js"; import { IComGithubFluxcdHelmControllerApiV2Upgrade } from "./Upgrade.js"; import { IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON } from "kubernetes-models/apiextensions.k8s.io/v1/JSON"; import { IComGithubFluxcdPkgApisMetaValuesReference } from "../../github.com/fluxcd/pkg/apis/meta/ValuesReference.js"; import { IComGithubFluxcdHelmControllerApiV2WaitStrategy } from "./WaitStrategy.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 v1.HelmChart that should be created * for this HelmRelease. */ "chart"?: IComGithubFluxcdHelmControllerApiV2HelmChartTemplate; /** * ChartRef holds a reference to a source controller resource containing the * Helm chart artifact. */ "chartRef"?: IComGithubFluxcdHelmControllerApiV2CrossNamespaceSourceReference; /** * CommonMetadata specifies the common labels and annotations that are * applied to all resources. Any existing label or annotation will be * overridden if its key matches a common one. */ "commonMetadata"?: IComGithubFluxcdHelmControllerApiV2CommonMetadata; /** * DependsOn may contain a DependencyReference slice with * references to HelmRelease resources that must be ready before this HelmRelease * can be reconciled. */ "dependsOn"?: Array<IComGithubFluxcdHelmControllerApiV2DependencyReference>; /** * 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"?: IComGithubFluxcdHelmControllerApiV2DriftDetection; /** * HealthCheckExprs is a list of healthcheck expressions for evaluating the * health of custom resources using Common Expression Language (CEL). * The expressions are evaluated only when the specific Helm action * taking place has wait enabled, i.e. DisableWait is false, and the * 'poller' WaitStrategy is used. */ "healthCheckExprs"?: Array<IComGithubFluxcdPkgApisKustomizeCustomHealthCheck>; /** * Install holds the configuration for Helm install actions for this HelmRelease. */ "install"?: IComGithubFluxcdHelmControllerApiV2Install; "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<IComGithubFluxcdHelmControllerApiV2PostRenderer>; /** * 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"?: IComGithubFluxcdHelmControllerApiV2Rollback; /** * 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"?: IComGithubFluxcdHelmControllerApiV2Test; "timeout"?: string; /** * Uninstall holds the configuration for Helm uninstall actions for this HelmRelease. */ "uninstall"?: IComGithubFluxcdHelmControllerApiV2Uninstall; /** * Upgrade holds the configuration for Helm upgrade actions for this HelmRelease. */ "upgrade"?: IComGithubFluxcdHelmControllerApiV2Upgrade; /** * 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<IComGithubFluxcdPkgApisMetaValuesReference>; /** * WaitStrategy defines Helm's wait strategy for waiting for applied * resources to become ready. */ "waitStrategy"?: IComGithubFluxcdHelmControllerApiV2WaitStrategy; } /** * HelmReleaseSpec defines the desired state of a Helm release. */ export declare class HelmReleaseSpec extends Model<IHelmReleaseSpec> implements IHelmReleaseSpec { "chart"?: IComGithubFluxcdHelmControllerApiV2HelmChartTemplate; "chartRef"?: IComGithubFluxcdHelmControllerApiV2CrossNamespaceSourceReference; "commonMetadata"?: IComGithubFluxcdHelmControllerApiV2CommonMetadata; "dependsOn"?: Array<IComGithubFluxcdHelmControllerApiV2DependencyReference>; "driftDetection"?: IComGithubFluxcdHelmControllerApiV2DriftDetection; "healthCheckExprs"?: Array<IComGithubFluxcdPkgApisKustomizeCustomHealthCheck>; "install"?: IComGithubFluxcdHelmControllerApiV2Install; "interval": string; "kubeConfig"?: IComGithubFluxcdPkgApisMetaKubeConfigReference; "maxHistory"?: number; "persistentClient"?: boolean; "postRenderers"?: Array<IComGithubFluxcdHelmControllerApiV2PostRenderer>; "releaseName"?: string; "rollback"?: IComGithubFluxcdHelmControllerApiV2Rollback; "serviceAccountName"?: string; "storageNamespace"?: string; "suspend"?: boolean; "targetNamespace"?: string; "test"?: IComGithubFluxcdHelmControllerApiV2Test; "timeout"?: string; "uninstall"?: IComGithubFluxcdHelmControllerApiV2Uninstall; "upgrade"?: IComGithubFluxcdHelmControllerApiV2Upgrade; "values"?: IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON; "valuesFrom"?: Array<IComGithubFluxcdPkgApisMetaValuesReference>; "waitStrategy"?: IComGithubFluxcdHelmControllerApiV2WaitStrategy; constructor(data?: ModelData<IHelmReleaseSpec>); } export type { IHelmReleaseSpec as IComGithubFluxcdHelmControllerApiV2HelmReleaseSpec, HelmReleaseSpec as ComGithubFluxcdHelmControllerApiV2HelmReleaseSpec };