@kubernetes-models/flux-cd
Version:
170 lines (169 loc) • 7.94 kB
TypeScript
import { IComGithubFluxcdKustomizeControllerApiV1CommonMetadata } from "./CommonMetadata.js";
import { IComGithubFluxcdKustomizeControllerApiV1Decryption } from "./Decryption.js";
import { IComGithubFluxcdKustomizeControllerApiV1DependencyReference } from "./DependencyReference.js";
import { IComGithubFluxcdPkgApisKustomizeCustomHealthCheck } from "../../github.com/fluxcd/pkg/apis/kustomize/CustomHealthCheck.js";
import { IComGithubFluxcdPkgApisMetaNamespacedObjectKindReference } from "../../github.com/fluxcd/pkg/apis/meta/NamespacedObjectKindReference.js";
import { IComGithubFluxcdPkgApisKustomizeImage } from "../../github.com/fluxcd/pkg/apis/kustomize/Image.js";
import { IComGithubFluxcdPkgApisMetaKubeConfigReference } from "../../github.com/fluxcd/pkg/apis/meta/KubeConfigReference.js";
import { IComGithubFluxcdPkgApisKustomizePatch } from "../../github.com/fluxcd/pkg/apis/kustomize/Patch.js";
import { IComGithubFluxcdKustomizeControllerApiV1PostBuild } from "./PostBuild.js";
import { IComGithubFluxcdKustomizeControllerApiV1CrossNamespaceSourceReference } from "./CrossNamespaceSourceReference.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
* KustomizationSpec defines the configuration to calculate the desired state
* from a Source using Kustomize.
*/
export interface IKustomizationSpec {
/**
* 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"?: IComGithubFluxcdKustomizeControllerApiV1CommonMetadata;
/**
* Components specifies relative paths to kustomize Components.
*/
"components"?: Array<string>;
/**
* Decrypt Kubernetes secrets before applying them on the cluster.
*/
"decryption"?: IComGithubFluxcdKustomizeControllerApiV1Decryption;
/**
* DeletionPolicy can be used to control garbage collection when this
* Kustomization is deleted. Valid values are ('MirrorPrune', 'Delete',
* 'WaitForTermination', 'Orphan'). 'MirrorPrune' mirrors the Prune field
* (orphan if false, delete if true). Defaults to 'MirrorPrune'.
*/
"deletionPolicy"?: "MirrorPrune" | "Delete" | "WaitForTermination" | "Orphan";
/**
* DependsOn may contain a DependencyReference slice
* with references to Kustomization resources that must be ready before this
* Kustomization can be reconciled.
*/
"dependsOn"?: Array<IComGithubFluxcdKustomizeControllerApiV1DependencyReference>;
/**
* Force instructs the controller to recreate resources
* when patching fails due to an immutable field change.
*/
"force"?: boolean;
/**
* 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 Wait or HealthChecks are specified.
*/
"healthCheckExprs"?: Array<IComGithubFluxcdPkgApisKustomizeCustomHealthCheck>;
/**
* A list of resources to be included in the health assessment.
*/
"healthChecks"?: Array<IComGithubFluxcdPkgApisMetaNamespacedObjectKindReference>;
/**
* IgnoreMissingComponents instructs the controller to ignore Components paths
* not found in source by removing them from the generated kustomization.yaml
* before running kustomize build.
*/
"ignoreMissingComponents"?: boolean;
/**
* 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.
*/
"images"?: Array<IComGithubFluxcdPkgApisKustomizeImage>;
"interval": string;
/**
* The KubeConfig for reconciling the Kustomization on a remote cluster.
* When used in combination with KustomizationSpec.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 KustomizationSpec.ServiceAccountName
* is empty.
*/
"kubeConfig"?: IComGithubFluxcdPkgApisMetaKubeConfigReference;
/**
* NamePrefix will prefix the names of all managed resources.
*/
"namePrefix"?: string;
/**
* NameSuffix will suffix the names of all managed resources.
*/
"nameSuffix"?: string;
/**
* Strategic merge and JSON patches, defined as inline YAML objects,
* capable of targeting objects based on kind, label and annotation selectors.
*/
"patches"?: Array<IComGithubFluxcdPkgApisKustomizePatch>;
/**
* Path to the directory containing the kustomization.yaml file, or the
* set of plain YAMLs a kustomization.yaml should be generated for.
* Defaults to 'None', which translates to the root path of the SourceRef.
*/
"path"?: string;
/**
* PostBuild describes which actions to perform on the YAML manifest
* generated by building the kustomize overlay.
*/
"postBuild"?: IComGithubFluxcdKustomizeControllerApiV1PostBuild;
/**
* Prune enables garbage collection.
*/
"prune": boolean;
"retryInterval"?: string;
/**
* The name of the Kubernetes service account to impersonate
* when reconciling this Kustomization.
*/
"serviceAccountName"?: string;
/**
* Reference of the source where the kustomization file is.
*/
"sourceRef": IComGithubFluxcdKustomizeControllerApiV1CrossNamespaceSourceReference;
/**
* This flag tells the controller to suspend subsequent kustomize executions,
* it does not apply to already started executions. Defaults to false.
*/
"suspend"?: boolean;
/**
* TargetNamespace sets or overrides the namespace in the
* kustomization.yaml file.
*/
"targetNamespace"?: string;
"timeout"?: string;
/**
* Wait instructs the controller to check the health of all the reconciled
* resources. When enabled, the HealthChecks are ignored. Defaults to false.
*/
"wait"?: boolean;
}
/**
* KustomizationSpec defines the configuration to calculate the desired state
* from a Source using Kustomize.
*/
export declare class KustomizationSpec extends Model<IKustomizationSpec> implements IKustomizationSpec {
"commonMetadata"?: IComGithubFluxcdKustomizeControllerApiV1CommonMetadata;
"components"?: Array<string>;
"decryption"?: IComGithubFluxcdKustomizeControllerApiV1Decryption;
"deletionPolicy"?: "MirrorPrune" | "Delete" | "WaitForTermination" | "Orphan";
"dependsOn"?: Array<IComGithubFluxcdKustomizeControllerApiV1DependencyReference>;
"force"?: boolean;
"healthCheckExprs"?: Array<IComGithubFluxcdPkgApisKustomizeCustomHealthCheck>;
"healthChecks"?: Array<IComGithubFluxcdPkgApisMetaNamespacedObjectKindReference>;
"ignoreMissingComponents"?: boolean;
"images"?: Array<IComGithubFluxcdPkgApisKustomizeImage>;
"interval": string;
"kubeConfig"?: IComGithubFluxcdPkgApisMetaKubeConfigReference;
"namePrefix"?: string;
"nameSuffix"?: string;
"patches"?: Array<IComGithubFluxcdPkgApisKustomizePatch>;
"path"?: string;
"postBuild"?: IComGithubFluxcdKustomizeControllerApiV1PostBuild;
"prune": boolean;
"retryInterval"?: string;
"serviceAccountName"?: string;
"sourceRef": IComGithubFluxcdKustomizeControllerApiV1CrossNamespaceSourceReference;
"suspend"?: boolean;
"targetNamespace"?: string;
"timeout"?: string;
"wait"?: boolean;
constructor(data?: ModelData<IKustomizationSpec>);
}
export type { IKustomizationSpec as IComGithubFluxcdKustomizeControllerApiV1KustomizationSpec, KustomizationSpec as ComGithubFluxcdKustomizeControllerApiV1KustomizationSpec };