From 14ba91e37d239dd2d0126dda88e7030b3568ba71 Mon Sep 17 00:00:00 2001 From: Eron Wright Date: Mon, 4 Nov 2024 10:50:23 -0800 Subject: [PATCH] doc note for release/v4 --- provider/cmd/pulumi-resource-kubernetes/schema.json | 2 +- provider/pkg/gen/examples/overlays/chartV4.md | 3 +++ sdk/dotnet/Helm/V4/Chart.cs | 3 +++ sdk/go/kubernetes/helm/v4/chart.go | 3 +++ .../src/main/java/com/pulumi/kubernetes/helm/v4/Chart.java | 3 +++ sdk/nodejs/helm/v4/chart.ts | 3 +++ sdk/python/pulumi_kubernetes/helm/v4/Chart.py | 6 ++++++ 7 files changed, 22 insertions(+), 1 deletion(-) diff --git a/provider/cmd/pulumi-resource-kubernetes/schema.json b/provider/cmd/pulumi-resource-kubernetes/schema.json index 2106d92d88..dc56d42118 100644 --- a/provider/cmd/pulumi-resource-kubernetes/schema.json +++ b/provider/cmd/pulumi-resource-kubernetes/schema.json @@ -90987,7 +90987,7 @@ ] }, "kubernetes:helm.sh/v4:Chart": { - "description": "_See also: [New: Helm Chart v4 resource with new features and languages](/blog/kubernetes-chart-v4/)_\n\nChart is a component representing a collection of resources described by a Helm Chart.\nHelm charts are a popular packaging format for Kubernetes applications, and published\nto registries such as [Artifact Hub](https://artifacthub.io/packages/search?kind=0&sort=relevance&page=1). \n\nChart does not use Tiller or create a Helm Release; the semantics are equivalent to\nrunning `helm template --dry-run=server` and then using Pulumi to deploy the resulting YAML manifests.\nThis allows you to apply [Pulumi Transformations](https://www.pulumi.com/docs/concepts/options/transformations/) and\n[Pulumi Policies](https://www.pulumi.com/docs/using-pulumi/crossguard/) to the Kubernetes resources.\n\nYou may also want to consider the `Release` resource as an alternative method for managing helm charts. For more\ninformation about the trade-offs between these options, see: [Choosing the right Helm resource for your use case](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/choosing-the-right-helm-resource-for-your-use-case).\n\n### Chart Resolution\n\nThe Helm Chart can be fetched from any source that is accessible to the `helm` command line.\nThe following variations are supported:\n\n1. By chart reference with repo prefix: `chart: \"example/mariadb\"`\n2. By path to a packaged chart: `chart: \"./nginx-1.2.3.tgz\"`\n3. By path to an unpacked chart directory: `chart: \"./nginx\"`\n4. By absolute URL: `chart: \"https://example.com/charts/nginx-1.2.3.tgz\"`\n5. By chart reference with repo URL: `chart: \"nginx\", repositoryOpts: { repo: \"https://example.com/charts/\" }`\n6. By OCI registry: `chart: \"oci://example.com/charts/nginx\", version: \"1.2.3\"`\n\nA chart reference is a convenient way of referencing a chart in a chart repository.\n\nWhen you use a chart reference with a repo prefix (`example/mariadb`), Pulumi will look in Helm's local configuration\nfor a chart repository named `example`, and will then look for a chart in that repository whose name is `mariadb`.\nIt will install the latest stable version of that chart, unless you specify `devel` to also include\ndevelopment versions (alpha, beta, and release candidate releases), or supply a version number with `version`.\n\nUse the `verify` and optional `keyring` inputs to enable Chart verification.\nBy default, Pulumi uses the keyring at `$HOME/.gnupg/pubring.gpg`. See: [Helm Provenance and Integrity](https://helm.sh/docs/topics/provenance/).\n\n### Chart Values\n\n[Values files](https://helm.sh/docs/chart_template_guide/values_files/#helm) (`values.yaml`) may be supplied \nwith the `valueYamlFiles` input, accepting [Pulumi Assets](https://www.pulumi.com/docs/concepts/assets-archives/#assets).\n\nA map of chart values may also be supplied with the `values` input, with highest precedence. You're able to use literals,\nnested maps, [Pulumi outputs](https://www.pulumi.com/docs/concepts/inputs-outputs/), and Pulumi assets as values.\nAssets are automatically opened and converted to a string.\n\nNote that the use of expressions (e.g. `--set service.type`) is not supported.\n\n### Chart Dependency Resolution\n\nFor unpacked chart directories, Pulumi automatically rebuilds the dependencies if dependencies are missing \nand a `Chart.lock` file is present (see: [Helm Dependency Build](https://helm.sh/docs/helm/helm_dependency_build/)).\nUse the `dependencyUpdate` input to have Pulumi update the dependencies (see: [Helm Dependency Update](https://helm.sh/docs/helm/helm_dependency_update/)).\n\n### Templating\n\nThe `Chart` resource renders the templates from your chart and then manages the resources directly with the\nPulumi Kubernetes provider. A default namespace is applied based on the `namespace` input, the provider's\nconfigured namespace, and the active Kubernetes context. Use the `skipCrds` option to skip installing the\nCustom Resource Definition (CRD) objects located in the chart's `crds/` special directory.\n\nUse the `postRenderer` input to pipe the rendered manifest through a [post-rendering command](https://helm.sh/docs/topics/advanced/#post-rendering).\n\n### Resource Ordering\n\nSometimes resources must be applied in a specific order. For example, a namespace resource must be\ncreated before any namespaced resources, or a Custom Resource Definition (CRD) must be pre-installed.\n\nPulumi uses heuristics to determine which order to apply and delete objects within the Chart. Pulumi also\nwaits for each object to be fully reconciled, unless `skipAwait` is enabled.\n\nPulumi supports the `config.kubernetes.io/depends-on` annotation to declare an explicit dependency on a given resource.\nThe annotation accepts a list of resource references, delimited by commas. \n\nNote that references to resources outside the Chart aren't supported.\n\n**Resource reference**\n\nA resource reference is a string that uniquely identifies a resource.\n\nIt consists of the group, kind, name, and optionally the namespace, delimited by forward slashes.\n\n| Resource Scope | Format |\n| :--------------- | :--------------------------------------------- |\n| namespace-scoped | `/namespaces///` |\n| cluster-scoped | `//` |\n\nFor resources in the “core” group, the empty string is used instead (for example: `/namespaces/test/Pod/pod-a`).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Local Chart Directory\n\n```typescript\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n chart: \"./nginx\",\n});\n```\n```python\nimport pulumi\nfrom pulumi_kubernetes.helm.v4 import Chart\n\nnginx = Chart(\"nginx\",\n chart=\"./nginx\"\n)\n```\n```go\npackage main\n\nimport (\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n\t\t\tChart: pulumi.String(\"./nginx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Chart = \"./nginx\"\n });\n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .chart(\"./nginx\")\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n chart: ./nginx\n```\n{{% /example %}}\n{{% example %}}\n### Repository Chart\n\n```typescript\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n chart: \"nginx\",\n repositoryOpts: {\n repo: \"https://charts.bitnami.com/bitnami\",\n },\n});\n```\n```python\nimport pulumi\nfrom pulumi_kubernetes.helm.v4 import Chart,RepositoryOptsArgs\n\nnginx = Chart(\"nginx\",\n chart=\"nginx\",\n repository_opts=RepositoryOptsArgs(\n repo=\"https://charts.bitnami.com/bitnami\",\n )\n)\n```\n```go\npackage main\n\nimport (\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n\t\t\tChart: pulumi.String(\"nginx\"),\n\t\t\tRepositoryOpts: &helmv4.RepositoryOptsArgs{\n\t\t\t\tRepo: pulumi.String(\"https://charts.bitnami.com/bitnami\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Chart = \"nginx\",\n RepositoryOpts = new RepositoryOptsArgs\n {\n Repo = \"https://charts.bitnami.com/bitnami\"\n },\n });\n \n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\nimport com.pulumi.kubernetes.helm.v4.inputs.RepositoryOptsArgs;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .chart(\"nginx\")\n .repositoryOpts(RepositoryOptsArgs.builder()\n .repo(\"https://charts.bitnami.com/bitnami\")\n .build())\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n chart: nginx\n repositoryOpts:\n repo: https://charts.bitnami.com/bitnami\n```\n{{% /example %}}\n{{% example %}}\n### OCI Chart\n\n```typescript\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n chart: \"oci://registry-1.docker.io/bitnamicharts/nginx\",\n version: \"16.0.7\",\n});\n```\n```python\nimport pulumi\nfrom pulumi_kubernetes.helm.v4 import Chart\n\nnginx = Chart(\"nginx\",\n chart=\"oci://registry-1.docker.io/bitnamicharts/nginx\",\n version=\"16.0.7\",\n)\n```\n```go\npackage main\n\nimport (\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n\t\t\tChart: pulumi.String(\"oci://registry-1.docker.io/bitnamicharts/nginx\"),\n\t\t\tVersion: pulumi.String(\"16.0.7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Chart = \"oci://registry-1.docker.io/bitnamicharts/nginx\",\n Version = \"16.0.7\",\n });\n \n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .chart(\"oci://registry-1.docker.io/bitnamicharts/nginx\")\n .version(\"16.0.7\")\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n chart: oci://registry-1.docker.io/bitnamicharts/nginx\n version: \"16.0.7\"\n```\n{{% /example %}}\n{{% example %}}\n### Chart Values\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n chart: \"nginx\",\n repositoryOpts: {\n repo: \"https://charts.bitnami.com/bitnami\",\n },\n valueYamlFiles: [\n new pulumi.asset.FileAsset(\"./values.yaml\")\n ],\n values: {\n service: {\n type: \"ClusterIP\",\n },\n notes: new pulumi.asset.FileAsset(\"./notes.txt\"),\n },\n});\n```\n```python\n\"\"\"A Kubernetes Python Pulumi program\"\"\"\n\nimport pulumi\nfrom pulumi_kubernetes.helm.v4 import Chart,RepositoryOptsArgs\n\nnginx = Chart(\"nginx\",\n chart=\"nginx\",\n repository_opts=RepositoryOptsArgs(\n repo=\"https://charts.bitnami.com/bitnami\"\n ),\n value_yaml_files=[\n pulumi.FileAsset(\"./values.yaml\")\n ],\n values={\n \"service\": {\n \"type\": \"ClusterIP\"\n },\n \"notes\": pulumi.FileAsset(\"./notes.txt\")\n }\n)\n```\n```go\npackage main\n\nimport (\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n\t\t\tChart: pulumi.String(\"nginx\"),\n\t\t\tRepositoryOpts: &helmv4.RepositoryOptsArgs{\n\t\t\t\tRepo: pulumi.String(\"https://charts.bitnami.com/bitnami\"),\n\t\t\t},\n\t\t\tValueYamlFiles: pulumi.AssetOrArchiveArray{\n\t\t\t\tpulumi.NewFileAsset(\"./values.yaml\"),\n\t\t\t},\n\t\t\tValues: pulumi.Map{\n\t\t\t\t\"service\": pulumi.Map{\n\t\t\t\t\t\"type\": pulumi.String(\"ClusterIP\"),\n\t\t\t\t},\n\t\t\t\t\"notes\": pulumi.NewFileAsset(\"./notes.txt\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Chart = \"nginx\",\n RepositoryOpts = new RepositoryOptsArgs\n {\n Repo = \"https://charts.bitnami.com/bitnami\"\n },\n ValueYamlFiles = \n {\n new FileAsset(\"./values.yaml\") \n },\n Values = new InputMap\n {\n [\"service\"] = new InputMap\n {\n [\"type\"] = \"ClusterIP\",\n },\n [\"notes\"] = new FileAsset(\"./notes.txt\")\n },\n });\n \n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport java.util.Map;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\nimport com.pulumi.kubernetes.helm.v4.inputs.RepositoryOptsArgs;\nimport com.pulumi.asset.FileAsset;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .chart(\"nginx\")\n .repositoryOpts(RepositoryOptsArgs.builder()\n .repo(\"https://charts.bitnami.com/bitnami\")\n .build())\n .valueYamlFiles(new FileAsset(\"./values.yaml\"))\n .values(Map.of(\n \"service\", Map.of(\n \"type\", \"ClusterIP\"),\n \"notes\", new FileAsset(\"./notes.txt\")))\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n chart: nginx\n repositoryOpts:\n repo: https://charts.bitnami.com/bitnami\n valueYamlFiles:\n - fn::fileAsset: values.yaml\n values:\n service:\n type: ClusterIP\n notes:\n fn::fileAsset: notes.txt\n```\n{{% /example %}}\n{{% example %}}\n### Chart Namespace\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst ns = new k8s.core.v1.Namespace(\"nginx\", {\n metadata: { name: \"nginx\" },\n});\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n namespace: ns.metadata.name,\n chart: \"nginx\",\n repositoryOpts: {\n repo: \"https://charts.bitnami.com/bitnami\",\n }\n});\n```\n```python\nimport pulumi\nfrom pulumi_kubernetes.meta.v1 import ObjectMetaArgs\nfrom pulumi_kubernetes.core.v1 import Namespace\nfrom pulumi_kubernetes.helm.v4 import Chart,RepositoryOptsArgs\n\nns = Namespace(\"nginx\",\n metadata=ObjectMetaArgs(\n name=\"nginx\",\n )\n)\nnginx = Chart(\"nginx\",\n namespace=ns.metadata.name,\n chart=\"nginx\",\n repository_opts=RepositoryOptsArgs(\n repo=\"https://charts.bitnami.com/bitnami\",\n )\n)\n```\n```go\npackage main\n\nimport (\n\tcorev1 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1\"\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\tmetav1 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tns, err := corev1.NewNamespace(ctx, \"nginx\", &corev1.NamespaceArgs{\n\t\t\tMetadata: &metav1.ObjectMetaArgs{Name: pulumi.String(\"nginx\")},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n Namespace: ns.Metadata.Name(),\n\t\t\tChart: pulumi.String(\"nginx\"),\n\t\t\tRepositoryOpts: &helmv4.RepositoryOptsArgs{\n\t\t\t\tRepo: pulumi.String(\"https://charts.bitnami.com/bitnami\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Core.V1;\nusing Pulumi.Kubernetes.Types.Inputs.Meta.V1;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n var ns = new Pulumi.Kubernetes.Core.V1.Namespace(\"nginx\", new NamespaceArgs\n {\n Metadata = new ObjectMetaArgs{Name = \"nginx\"}\n });\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Namespace = ns.Metadata.Apply(m => m.Name),\n Chart = \"nginx\",\n RepositoryOpts = new RepositoryOptsArgs\n {\n Repo = \"https://charts.bitnami.com/bitnami\"\n },\n });\n \n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.core.v1.Namespace;\nimport com.pulumi.kubernetes.core.v1.NamespaceArgs;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\nimport com.pulumi.kubernetes.helm.v4.inputs.RepositoryOptsArgs;\nimport com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs;\nimport com.pulumi.core.Output;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var ns = new Namespace(\"nginx\", NamespaceArgs.builder()\n .metadata(ObjectMetaArgs.builder()\n .name(\"nginx\")\n .build())\n .build());\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .namespace(ns.metadata().apply(m -> Output.of(m.name().get())))\n .chart(\"nginx\")\n .repositoryOpts(RepositoryOptsArgs.builder()\n .repo(\"https://charts.bitnami.com/bitnami\")\n .build())\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n ns:\n type: kubernetes:core/v1:Namespace\n properties:\n metadata:\n name: nginx\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n namespace: ${ns.metadata.name}\n chart: nginx\n repositoryOpts:\n repo: https://charts.bitnami.com/bitnami\n```\n{{% /example %}}\n{{% /examples %}}\n", + "description": "_Looking for the Release resource? Please use the [v3 package](/registry/packages/kubernetes/api-docs/helm/v3/release/)\nfor production use cases, and stay tuned for an updated Release resource, coming soon._\n\n_See also: [New: Helm Chart v4 resource with new features and languages](/blog/kubernetes-chart-v4/)_\n\nChart is a component representing a collection of resources described by a Helm Chart.\nHelm charts are a popular packaging format for Kubernetes applications, and published\nto registries such as [Artifact Hub](https://artifacthub.io/packages/search?kind=0&sort=relevance&page=1). \n\nChart does not use Tiller or create a Helm Release; the semantics are equivalent to\nrunning `helm template --dry-run=server` and then using Pulumi to deploy the resulting YAML manifests.\nThis allows you to apply [Pulumi Transformations](https://www.pulumi.com/docs/concepts/options/transformations/) and\n[Pulumi Policies](https://www.pulumi.com/docs/using-pulumi/crossguard/) to the Kubernetes resources.\n\nYou may also want to consider the `Release` resource as an alternative method for managing helm charts. For more\ninformation about the trade-offs between these options, see: [Choosing the right Helm resource for your use case](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/choosing-the-right-helm-resource-for-your-use-case).\n\n### Chart Resolution\n\nThe Helm Chart can be fetched from any source that is accessible to the `helm` command line.\nThe following variations are supported:\n\n1. By chart reference with repo prefix: `chart: \"example/mariadb\"`\n2. By path to a packaged chart: `chart: \"./nginx-1.2.3.tgz\"`\n3. By path to an unpacked chart directory: `chart: \"./nginx\"`\n4. By absolute URL: `chart: \"https://example.com/charts/nginx-1.2.3.tgz\"`\n5. By chart reference with repo URL: `chart: \"nginx\", repositoryOpts: { repo: \"https://example.com/charts/\" }`\n6. By OCI registry: `chart: \"oci://example.com/charts/nginx\", version: \"1.2.3\"`\n\nA chart reference is a convenient way of referencing a chart in a chart repository.\n\nWhen you use a chart reference with a repo prefix (`example/mariadb`), Pulumi will look in Helm's local configuration\nfor a chart repository named `example`, and will then look for a chart in that repository whose name is `mariadb`.\nIt will install the latest stable version of that chart, unless you specify `devel` to also include\ndevelopment versions (alpha, beta, and release candidate releases), or supply a version number with `version`.\n\nUse the `verify` and optional `keyring` inputs to enable Chart verification.\nBy default, Pulumi uses the keyring at `$HOME/.gnupg/pubring.gpg`. See: [Helm Provenance and Integrity](https://helm.sh/docs/topics/provenance/).\n\n### Chart Values\n\n[Values files](https://helm.sh/docs/chart_template_guide/values_files/#helm) (`values.yaml`) may be supplied \nwith the `valueYamlFiles` input, accepting [Pulumi Assets](https://www.pulumi.com/docs/concepts/assets-archives/#assets).\n\nA map of chart values may also be supplied with the `values` input, with highest precedence. You're able to use literals,\nnested maps, [Pulumi outputs](https://www.pulumi.com/docs/concepts/inputs-outputs/), and Pulumi assets as values.\nAssets are automatically opened and converted to a string.\n\nNote that the use of expressions (e.g. `--set service.type`) is not supported.\n\n### Chart Dependency Resolution\n\nFor unpacked chart directories, Pulumi automatically rebuilds the dependencies if dependencies are missing \nand a `Chart.lock` file is present (see: [Helm Dependency Build](https://helm.sh/docs/helm/helm_dependency_build/)).\nUse the `dependencyUpdate` input to have Pulumi update the dependencies (see: [Helm Dependency Update](https://helm.sh/docs/helm/helm_dependency_update/)).\n\n### Templating\n\nThe `Chart` resource renders the templates from your chart and then manages the resources directly with the\nPulumi Kubernetes provider. A default namespace is applied based on the `namespace` input, the provider's\nconfigured namespace, and the active Kubernetes context. Use the `skipCrds` option to skip installing the\nCustom Resource Definition (CRD) objects located in the chart's `crds/` special directory.\n\nUse the `postRenderer` input to pipe the rendered manifest through a [post-rendering command](https://helm.sh/docs/topics/advanced/#post-rendering).\n\n### Resource Ordering\n\nSometimes resources must be applied in a specific order. For example, a namespace resource must be\ncreated before any namespaced resources, or a Custom Resource Definition (CRD) must be pre-installed.\n\nPulumi uses heuristics to determine which order to apply and delete objects within the Chart. Pulumi also\nwaits for each object to be fully reconciled, unless `skipAwait` is enabled.\n\nPulumi supports the `config.kubernetes.io/depends-on` annotation to declare an explicit dependency on a given resource.\nThe annotation accepts a list of resource references, delimited by commas. \n\nNote that references to resources outside the Chart aren't supported.\n\n**Resource reference**\n\nA resource reference is a string that uniquely identifies a resource.\n\nIt consists of the group, kind, name, and optionally the namespace, delimited by forward slashes.\n\n| Resource Scope | Format |\n| :--------------- | :--------------------------------------------- |\n| namespace-scoped | `/namespaces///` |\n| cluster-scoped | `//` |\n\nFor resources in the “core” group, the empty string is used instead (for example: `/namespaces/test/Pod/pod-a`).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Local Chart Directory\n\n```typescript\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n chart: \"./nginx\",\n});\n```\n```python\nimport pulumi\nfrom pulumi_kubernetes.helm.v4 import Chart\n\nnginx = Chart(\"nginx\",\n chart=\"./nginx\"\n)\n```\n```go\npackage main\n\nimport (\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n\t\t\tChart: pulumi.String(\"./nginx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Chart = \"./nginx\"\n });\n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .chart(\"./nginx\")\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n chart: ./nginx\n```\n{{% /example %}}\n{{% example %}}\n### Repository Chart\n\n```typescript\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n chart: \"nginx\",\n repositoryOpts: {\n repo: \"https://charts.bitnami.com/bitnami\",\n },\n});\n```\n```python\nimport pulumi\nfrom pulumi_kubernetes.helm.v4 import Chart,RepositoryOptsArgs\n\nnginx = Chart(\"nginx\",\n chart=\"nginx\",\n repository_opts=RepositoryOptsArgs(\n repo=\"https://charts.bitnami.com/bitnami\",\n )\n)\n```\n```go\npackage main\n\nimport (\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n\t\t\tChart: pulumi.String(\"nginx\"),\n\t\t\tRepositoryOpts: &helmv4.RepositoryOptsArgs{\n\t\t\t\tRepo: pulumi.String(\"https://charts.bitnami.com/bitnami\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Chart = \"nginx\",\n RepositoryOpts = new RepositoryOptsArgs\n {\n Repo = \"https://charts.bitnami.com/bitnami\"\n },\n });\n \n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\nimport com.pulumi.kubernetes.helm.v4.inputs.RepositoryOptsArgs;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .chart(\"nginx\")\n .repositoryOpts(RepositoryOptsArgs.builder()\n .repo(\"https://charts.bitnami.com/bitnami\")\n .build())\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n chart: nginx\n repositoryOpts:\n repo: https://charts.bitnami.com/bitnami\n```\n{{% /example %}}\n{{% example %}}\n### OCI Chart\n\n```typescript\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n chart: \"oci://registry-1.docker.io/bitnamicharts/nginx\",\n version: \"16.0.7\",\n});\n```\n```python\nimport pulumi\nfrom pulumi_kubernetes.helm.v4 import Chart\n\nnginx = Chart(\"nginx\",\n chart=\"oci://registry-1.docker.io/bitnamicharts/nginx\",\n version=\"16.0.7\",\n)\n```\n```go\npackage main\n\nimport (\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n\t\t\tChart: pulumi.String(\"oci://registry-1.docker.io/bitnamicharts/nginx\"),\n\t\t\tVersion: pulumi.String(\"16.0.7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Chart = \"oci://registry-1.docker.io/bitnamicharts/nginx\",\n Version = \"16.0.7\",\n });\n \n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .chart(\"oci://registry-1.docker.io/bitnamicharts/nginx\")\n .version(\"16.0.7\")\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n chart: oci://registry-1.docker.io/bitnamicharts/nginx\n version: \"16.0.7\"\n```\n{{% /example %}}\n{{% example %}}\n### Chart Values\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n chart: \"nginx\",\n repositoryOpts: {\n repo: \"https://charts.bitnami.com/bitnami\",\n },\n valueYamlFiles: [\n new pulumi.asset.FileAsset(\"./values.yaml\")\n ],\n values: {\n service: {\n type: \"ClusterIP\",\n },\n notes: new pulumi.asset.FileAsset(\"./notes.txt\"),\n },\n});\n```\n```python\n\"\"\"A Kubernetes Python Pulumi program\"\"\"\n\nimport pulumi\nfrom pulumi_kubernetes.helm.v4 import Chart,RepositoryOptsArgs\n\nnginx = Chart(\"nginx\",\n chart=\"nginx\",\n repository_opts=RepositoryOptsArgs(\n repo=\"https://charts.bitnami.com/bitnami\"\n ),\n value_yaml_files=[\n pulumi.FileAsset(\"./values.yaml\")\n ],\n values={\n \"service\": {\n \"type\": \"ClusterIP\"\n },\n \"notes\": pulumi.FileAsset(\"./notes.txt\")\n }\n)\n```\n```go\npackage main\n\nimport (\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n\t\t\tChart: pulumi.String(\"nginx\"),\n\t\t\tRepositoryOpts: &helmv4.RepositoryOptsArgs{\n\t\t\t\tRepo: pulumi.String(\"https://charts.bitnami.com/bitnami\"),\n\t\t\t},\n\t\t\tValueYamlFiles: pulumi.AssetOrArchiveArray{\n\t\t\t\tpulumi.NewFileAsset(\"./values.yaml\"),\n\t\t\t},\n\t\t\tValues: pulumi.Map{\n\t\t\t\t\"service\": pulumi.Map{\n\t\t\t\t\t\"type\": pulumi.String(\"ClusterIP\"),\n\t\t\t\t},\n\t\t\t\t\"notes\": pulumi.NewFileAsset(\"./notes.txt\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Chart = \"nginx\",\n RepositoryOpts = new RepositoryOptsArgs\n {\n Repo = \"https://charts.bitnami.com/bitnami\"\n },\n ValueYamlFiles = \n {\n new FileAsset(\"./values.yaml\") \n },\n Values = new InputMap\n {\n [\"service\"] = new InputMap\n {\n [\"type\"] = \"ClusterIP\",\n },\n [\"notes\"] = new FileAsset(\"./notes.txt\")\n },\n });\n \n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport java.util.Map;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\nimport com.pulumi.kubernetes.helm.v4.inputs.RepositoryOptsArgs;\nimport com.pulumi.asset.FileAsset;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .chart(\"nginx\")\n .repositoryOpts(RepositoryOptsArgs.builder()\n .repo(\"https://charts.bitnami.com/bitnami\")\n .build())\n .valueYamlFiles(new FileAsset(\"./values.yaml\"))\n .values(Map.of(\n \"service\", Map.of(\n \"type\", \"ClusterIP\"),\n \"notes\", new FileAsset(\"./notes.txt\")))\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n chart: nginx\n repositoryOpts:\n repo: https://charts.bitnami.com/bitnami\n valueYamlFiles:\n - fn::fileAsset: values.yaml\n values:\n service:\n type: ClusterIP\n notes:\n fn::fileAsset: notes.txt\n```\n{{% /example %}}\n{{% example %}}\n### Chart Namespace\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst ns = new k8s.core.v1.Namespace(\"nginx\", {\n metadata: { name: \"nginx\" },\n});\nconst nginx = new k8s.helm.v4.Chart(\"nginx\", {\n namespace: ns.metadata.name,\n chart: \"nginx\",\n repositoryOpts: {\n repo: \"https://charts.bitnami.com/bitnami\",\n }\n});\n```\n```python\nimport pulumi\nfrom pulumi_kubernetes.meta.v1 import ObjectMetaArgs\nfrom pulumi_kubernetes.core.v1 import Namespace\nfrom pulumi_kubernetes.helm.v4 import Chart,RepositoryOptsArgs\n\nns = Namespace(\"nginx\",\n metadata=ObjectMetaArgs(\n name=\"nginx\",\n )\n)\nnginx = Chart(\"nginx\",\n namespace=ns.metadata.name,\n chart=\"nginx\",\n repository_opts=RepositoryOptsArgs(\n repo=\"https://charts.bitnami.com/bitnami\",\n )\n)\n```\n```go\npackage main\n\nimport (\n\tcorev1 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1\"\n\thelmv4 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v4\"\n\tmetav1 \"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tns, err := corev1.NewNamespace(ctx, \"nginx\", &corev1.NamespaceArgs{\n\t\t\tMetadata: &metav1.ObjectMetaArgs{Name: pulumi.String(\"nginx\")},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = helmv4.NewChart(ctx, \"nginx\", &helmv4.ChartArgs{\n Namespace: ns.Metadata.Name(),\n\t\t\tChart: pulumi.String(\"nginx\"),\n\t\t\tRepositoryOpts: &helmv4.RepositoryOptsArgs{\n\t\t\t\tRepo: pulumi.String(\"https://charts.bitnami.com/bitnami\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Kubernetes.Types.Inputs.Core.V1;\nusing Pulumi.Kubernetes.Types.Inputs.Meta.V1;\nusing Pulumi.Kubernetes.Types.Inputs.Helm.V4;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =>\n{\n var ns = new Pulumi.Kubernetes.Core.V1.Namespace(\"nginx\", new NamespaceArgs\n {\n Metadata = new ObjectMetaArgs{Name = \"nginx\"}\n });\n new Pulumi.Kubernetes.Helm.V4.Chart(\"nginx\", new ChartArgs\n {\n Namespace = ns.Metadata.Apply(m => m.Name),\n Chart = \"nginx\",\n RepositoryOpts = new RepositoryOptsArgs\n {\n Repo = \"https://charts.bitnami.com/bitnami\"\n },\n });\n \n return new Dictionary{};\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Pulumi;\nimport com.pulumi.kubernetes.core.v1.Namespace;\nimport com.pulumi.kubernetes.core.v1.NamespaceArgs;\nimport com.pulumi.kubernetes.helm.v4.Chart;\nimport com.pulumi.kubernetes.helm.v4.ChartArgs;\nimport com.pulumi.kubernetes.helm.v4.inputs.RepositoryOptsArgs;\nimport com.pulumi.kubernetes.meta.v1.inputs.ObjectMetaArgs;\nimport com.pulumi.core.Output;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(ctx -> {\n var ns = new Namespace(\"nginx\", NamespaceArgs.builder()\n .metadata(ObjectMetaArgs.builder()\n .name(\"nginx\")\n .build())\n .build());\n var nginx = new Chart(\"nginx\", ChartArgs.builder()\n .namespace(ns.metadata().apply(m -> Output.of(m.name().get())))\n .chart(\"nginx\")\n .repositoryOpts(RepositoryOptsArgs.builder()\n .repo(\"https://charts.bitnami.com/bitnami\")\n .build())\n .build());\n });\n }\n}\n```\n```yaml\nname: example\nruntime: yaml\nresources:\n ns:\n type: kubernetes:core/v1:Namespace\n properties:\n metadata:\n name: nginx\n nginx:\n type: kubernetes:helm.sh/v4:Chart\n properties:\n namespace: ${ns.metadata.name}\n chart: nginx\n repositoryOpts:\n repo: https://charts.bitnami.com/bitnami\n```\n{{% /example %}}\n{{% /examples %}}\n", "properties": { "resources": { "type": "array", diff --git a/provider/pkg/gen/examples/overlays/chartV4.md b/provider/pkg/gen/examples/overlays/chartV4.md index 7574d11f00..d3ac86b066 100644 --- a/provider/pkg/gen/examples/overlays/chartV4.md +++ b/provider/pkg/gen/examples/overlays/chartV4.md @@ -1,3 +1,6 @@ +_Looking for the Release resource? Please use the [v3 package](/registry/packages/kubernetes/api-docs/helm/v3/release/) +for production use cases, and stay tuned for an updated Release resource, coming soon._ + _See also: [New: Helm Chart v4 resource with new features and languages](/blog/kubernetes-chart-v4/)_ Chart is a component representing a collection of resources described by a Helm Chart. diff --git a/sdk/dotnet/Helm/V4/Chart.cs b/sdk/dotnet/Helm/V4/Chart.cs index 16012170c8..fd50ea52e4 100644 --- a/sdk/dotnet/Helm/V4/Chart.cs +++ b/sdk/dotnet/Helm/V4/Chart.cs @@ -10,6 +10,9 @@ namespace Pulumi.Kubernetes.Helm.V4 { /// + /// _Looking for the Release resource? Please use the [v3 package](/registry/packages/kubernetes/api-docs/helm/v3/release/) + /// for production use cases, and stay tuned for an updated Release resource, coming soon._ + /// /// _See also: [New: Helm Chart v4 resource with new features and languages](/blog/kubernetes-chart-v4/)_ /// /// Chart is a component representing a collection of resources described by a Helm Chart. diff --git a/sdk/go/kubernetes/helm/v4/chart.go b/sdk/go/kubernetes/helm/v4/chart.go index 00255c8e95..b18b2a450e 100644 --- a/sdk/go/kubernetes/helm/v4/chart.go +++ b/sdk/go/kubernetes/helm/v4/chart.go @@ -12,6 +12,9 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// _Looking for the Release resource? Please use the [v3 package](/registry/packages/kubernetes/api-docs/helm/v3/release/) +// for production use cases, and stay tuned for an updated Release resource, coming soon._ +// // _See also: [New: Helm Chart v4 resource with new features and languages](/blog/kubernetes-chart-v4/)_ // // Chart is a component representing a collection of resources described by a Helm Chart. diff --git a/sdk/java/src/main/java/com/pulumi/kubernetes/helm/v4/Chart.java b/sdk/java/src/main/java/com/pulumi/kubernetes/helm/v4/Chart.java index 4d37689769..bd93bc6fe2 100644 --- a/sdk/java/src/main/java/com/pulumi/kubernetes/helm/v4/Chart.java +++ b/sdk/java/src/main/java/com/pulumi/kubernetes/helm/v4/Chart.java @@ -15,6 +15,9 @@ import javax.annotation.Nullable; /** + * _Looking for the Release resource? Please use the [v3 package](/registry/packages/kubernetes/api-docs/helm/v3/release/) + * for production use cases, and stay tuned for an updated Release resource, coming soon._ + * * _See also: [New: Helm Chart v4 resource with new features and languages](/blog/kubernetes-chart-v4/)_ * * Chart is a component representing a collection of resources described by a Helm Chart. diff --git a/sdk/nodejs/helm/v4/chart.ts b/sdk/nodejs/helm/v4/chart.ts index ff7c45353f..c51bfb9c63 100644 --- a/sdk/nodejs/helm/v4/chart.ts +++ b/sdk/nodejs/helm/v4/chart.ts @@ -8,6 +8,9 @@ import * as enums from "../../types/enums"; import * as utilities from "../../utilities"; /** + * _Looking for the Release resource? Please use the [v3 package](/registry/packages/kubernetes/api-docs/helm/v3/release/) + * for production use cases, and stay tuned for an updated Release resource, coming soon._ + * * _See also: [New: Helm Chart v4 resource with new features and languages](/blog/kubernetes-chart-v4/)_ * * Chart is a component representing a collection of resources described by a Helm Chart. diff --git a/sdk/python/pulumi_kubernetes/helm/v4/Chart.py b/sdk/python/pulumi_kubernetes/helm/v4/Chart.py index 5e9cf4792a..e34adbf62f 100644 --- a/sdk/python/pulumi_kubernetes/helm/v4/Chart.py +++ b/sdk/python/pulumi_kubernetes/helm/v4/Chart.py @@ -286,6 +286,9 @@ def __init__(__self__, version: Optional[pulumi.Input[str]] = None, __props__=None): """ + _Looking for the Release resource? Please use the [v3 package](/registry/packages/kubernetes/api-docs/helm/v3/release/) + for production use cases, and stay tuned for an updated Release resource, coming soon._ + _See also: [New: Helm Chart v4 resource with new features and languages](/blog/kubernetes-chart-v4/)_ Chart is a component representing a collection of resources described by a Helm Chart. @@ -475,6 +478,9 @@ def __init__(__self__, args: ChartArgs, opts: Optional[pulumi.ResourceOptions] = None): """ + _Looking for the Release resource? Please use the [v3 package](/registry/packages/kubernetes/api-docs/helm/v3/release/) + for production use cases, and stay tuned for an updated Release resource, coming soon._ + _See also: [New: Helm Chart v4 resource with new features and languages](/blog/kubernetes-chart-v4/)_ Chart is a component representing a collection of resources described by a Helm Chart.