81 lines
2.3 KiB
TypeScript
81 lines
2.3 KiB
TypeScript
import { Construct } from 'constructs';
|
|
import type { ICluster } from './cluster';
|
|
import type { RemovalPolicy } from '../../core';
|
|
/**
|
|
* Properties for KubernetesPatch
|
|
*/
|
|
export interface KubernetesPatchProps {
|
|
/**
|
|
* The cluster to apply the patch to.
|
|
* [disable-awslint:ref-via-interface]
|
|
*/
|
|
readonly cluster: ICluster;
|
|
/**
|
|
* The JSON object to pass to `kubectl patch` when the resource is created/updated.
|
|
*/
|
|
readonly applyPatch: {
|
|
[key: string]: any;
|
|
};
|
|
/**
|
|
* The JSON object to pass to `kubectl patch` when the resource is removed.
|
|
*/
|
|
readonly restorePatch: {
|
|
[key: string]: any;
|
|
};
|
|
/**
|
|
* The full name of the resource to patch (e.g. `deployment/coredns`).
|
|
*/
|
|
readonly resourceName: string;
|
|
/**
|
|
* The kubernetes API namespace
|
|
*
|
|
* @default "default"
|
|
*/
|
|
readonly resourceNamespace?: string;
|
|
/**
|
|
* The patch type to pass to `kubectl patch`.
|
|
* The default type used by `kubectl patch` is "strategic".
|
|
*
|
|
* @default PatchType.STRATEGIC
|
|
*/
|
|
readonly patchType?: PatchType;
|
|
/**
|
|
* The removal policy applied to the custom resource that manages the Kubernetes patch.
|
|
*
|
|
* The removal policy controls what happens to the resource if it stops being managed by CloudFormation.
|
|
* This can happen in one of three situations:
|
|
*
|
|
* - The resource is removed from the template, so CloudFormation stops managing it
|
|
* - A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it
|
|
* - The stack is deleted, so CloudFormation stops managing all resources in it
|
|
*
|
|
* @default RemovalPolicy.DESTROY
|
|
*/
|
|
readonly removalPolicy?: RemovalPolicy;
|
|
}
|
|
/**
|
|
* Values for `kubectl patch` --type argument
|
|
*/
|
|
export declare enum PatchType {
|
|
/**
|
|
* JSON Patch, RFC 6902
|
|
*/
|
|
JSON = "json",
|
|
/**
|
|
* JSON Merge patch
|
|
*/
|
|
MERGE = "merge",
|
|
/**
|
|
* Strategic merge patch
|
|
*/
|
|
STRATEGIC = "strategic"
|
|
}
|
|
/**
|
|
* A CloudFormation resource which applies/restores a JSON patch into a
|
|
* Kubernetes resource.
|
|
* @see https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/
|
|
*/
|
|
export declare class KubernetesPatch extends Construct {
|
|
constructor(scope: Construct, id: string, props: KubernetesPatchProps);
|
|
}
|