@pulumi/kubernetes
Version:
[](https://github.com/pulumi/pulumi-kubernetes/actions) [](https://slack.pulumi.com) [. Objects can be transformed arbitrarily by
* supplying callbacks to `ChartOpts.transformations`.
*
* `Chart` does not use Tiller. The Chart specified is copied and expanded locally; the semantics
* are equivalent to running `helm template` and then using Pulumi to manage the resulting YAML
* manifests. Any values that would be retrieved in-cluster are assigned fake values, and
* none of Tiller's server-side validity testing is executed.
*
* ## Example Usage
* ### Local Chart Directory
*
* ```typescript
* import * as k8s from "@pulumi/kubernetes";
*
* const nginxIngress = new k8s.helm.v3.Chart("nginx-ingress", {
* path: "./nginx-ingress",
* });
* ```
* ### Remote Chart
*
* ```typescript
* import * as k8s from "@pulumi/kubernetes";
*
* const nginxIngress = new k8s.helm.v3.Chart("nginx-ingress", {
* chart: "nginx-ingress",
* version: "1.24.4",
* fetchOpts:{
* repo: "https://charts.helm.sh/stable",
* },
* });
* ```
* ### Set Chart values
*
* ```typescript
* import * as k8s from "@pulumi/kubernetes";
*
* const nginxIngress = new k8s.helm.v3.Chart("nginx-ingress", {
* chart: "nginx-ingress",
* version: "1.24.4",
* fetchOpts:{
* repo: "https://charts.helm.sh/stable",
* },
* values: {
* controller: {
* metrics: {
* enabled: true,
* }
* }
* },
* });
* ```
* ### Deploy Chart into Namespace
*
* ```typescript
* import * as k8s from "@pulumi/kubernetes";
*
* const nginxIngress = new k8s.helm.v3.Chart("nginx-ingress", {
* chart: "nginx-ingress",
* version: "1.24.4",
* namespace: "test-namespace",
* fetchOpts:{
* repo: "https://charts.helm.sh/stable",
* },
* });
* ```
* ### Chart with Transformations
*
* ```typescript
* import * as k8s from "@pulumi/kubernetes";
*
* const nginxIngress = new k8s.helm.v3.Chart("nginx-ingress", {
* chart: "nginx-ingress",
* version: "1.24.4",
* fetchOpts:{
* repo: "https://charts.helm.sh/stable",
* },
* transformations: [
* // Make every service private to the cluster, i.e., turn all services into ClusterIP instead of LoadBalancer.
* (obj: any, opts: pulumi.CustomResourceOptions) => {
* if (obj.kind === "Service" && obj.apiVersion === "v1") {
* if (obj.spec && obj.spec.type && obj.spec.type === "LoadBalancer") {
* obj.spec.type = "ClusterIP";
* }
* }
* },
*
* // Set a resource alias for a previous name.
* (obj: any, opts: pulumi.CustomResourceOptions) => {
* if (obj.kind === "Deployment") {
* opts.aliases = [{ name: "oldName" }]
* },
*
* // Omit a resource from the Chart by transforming the specified resource definition to an empty List.
* (obj: any, opts: pulumi.CustomResourceOptions) => {
* if (obj.kind === "Pod" && obj.metadata.name === "test") {
* obj.apiVersion = "v1"
* obj.kind = "List"
* },
* ],
* });
* ```
*/
export declare class Chart extends yaml.CollectionComponentResource {
/**
* Returns true if the given object is an instance of Chart. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is Chart;
/**
* Create an instance of the specified Helm chart.
* @param releaseName Name of the Chart (e.g., nginx-ingress).
* @param config Configuration options for the Chart.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(releaseName: string, config: ChartOpts | LocalChartOpts, opts?: pulumi.ComponentResourceOptions);
parseChart(config: ChartOpts | LocalChartOpts, releaseName: string, opts?: pulumi.ComponentResourceOptions): pulumi.Output<{
[key: string]: pulumi.CustomResource;
}>;
}
interface BaseChartOpts {
/**
* The optional kubernetes api versions used for Capabilities.APIVersions.
*/
apiVersions?: pulumi.Input<pulumi.Input<string>[]>;
/**
* By default, Helm resources with the `test`, `test-success`, and `test-failure` hooks are not installed. Set
* this flag to true to include these resources.
*/
includeTestHookResources?: boolean;
/**
* By default, CRDs are rendered along with Helm chart templates. Setting this to true will skip CRD rendering.
*/
skipCRDRendering?: boolean;
/**
* The optional namespace to install chart resources into.
*/
namespace?: pulumi.Input<string>;
/**
* By default, the kubernetes version is derived from your k8s context, this allows it to be overridden.
* Warning: This option should not be used unless you have a good reason to not use the auto-discovered
* version as it is much more bug-prone.
*/
kubeVersion?: pulumi.Input<string>;
/**
* Overrides for chart values.
*/
values?: pulumi.Inputs;
/**
* A set of transformations to apply to Kubernetes resource definitions before registering
* with engine.
*/
transformations?: ((o: any, opts: pulumi.CustomResourceOptions) => void)[];
/**
* An optional prefix for the auto-generated resource names.
* Example: A resource created with resourcePrefix="foo" would produce a resource named "foo-resourceName".
*/
resourcePrefix?: string;
/**
* Skip await logic for all resources in this Chart. Resources will be marked ready as soon as they are created.
* Warning: This option should not be used if you have resources depending on Outputs from the Chart.
*/
skipAwait?: pulumi.Input<boolean>;
}
/**
* The set of arguments for constructing a Chart resource from a remote source.
*/
export interface ChartOpts extends BaseChartOpts {
/**
* The repository name of the chart to deploy.
* Example: "stable"
*/
repo?: pulumi.Input<string>;
/**
* The name of the chart to deploy. If [repo] is provided, this chart name will be prefixed by the repo name.
* Example: repo: "stable", chart: "nginx-ingress" -> "stable/nginx-ingress"
* Example: chart: "stable/nginx-ingress" -> "stable/nginx-ingress"
*/
chart: pulumi.Input<string>;
/**
* The version of the chart to deploy. If not provided, the latest version will be deployed.
*/
version?: pulumi.Input<string>;
/**
* Additional options to customize the fetching of the Helm chart.
*/
fetchOpts?: pulumi.Input<FetchOpts>;
}
/**
* The set of arguments for constructing a Chart resource from a local source.
*/
export interface LocalChartOpts extends BaseChartOpts {
/**
* The path to the chart directory which contains the `Chart.yaml` file.
*/
path: string;
}
/**
* Additional options to customize the fetching of the Helm chart.
*/
export interface FetchOpts {
/** Specific version of a chart. Without this, the latest version is fetched. */
version?: pulumi.Input<string>;
/** Verify certificates of HTTPS-enabled servers using this CA bundle. */
caFile?: pulumi.Input<string>;
/** Identify HTTPS client using this SSL certificate file. */
certFile?: pulumi.Input<string>;
/** Identify HTTPS client using this SSL key file. */
keyFile?: pulumi.Input<string>;
/**
* Location to write the chart. If this and tardir are specified, tardir is appended to this
* (default ".").
*/
destination?: pulumi.Input<string>;
/** Keyring containing public keys (default "/Users/alex/.gnupg/pubring.gpg"). */
keyring?: pulumi.Input<string>;
/** Chart repository password. */
password?: pulumi.Input<string>;
/** Chart repository url where to locate the requested chart. */
repo?: pulumi.Input<string>;
/**
* If untar is specified, this flag specifies the name of the directory into which the chart is
* expanded (default ".").
*/
untardir?: pulumi.Input<string>;
/** Chart repository username. */
username?: pulumi.Input<string>;
/** Location of your Helm config. Overrides $HELM_HOME (default "/Users/alex/.helm"). */
home?: pulumi.Input<string>;
/**
* Use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is
* ignored.
*/
devel?: pulumi.Input<boolean>;
/** Fetch the provenance file, but don't perform verification. */
prov?: pulumi.Input<boolean>;
/** If set to false, will leave the chart as a tarball after downloading. */
untar?: pulumi.Input<boolean>;
/** Verify the package against its signature. */
verify?: pulumi.Input<boolean>;
}
export {};
//# sourceMappingURL=helm.d.ts.map