{"id":13452600,"url":"https://github.com/pulumi/pulumi-kubernetes","last_synced_at":"2025-05-14T03:07:55.767Z","repository":{"id":37241660,"uuid":"116869354","full_name":"pulumi/pulumi-kubernetes","owner":"pulumi","description":"A Pulumi resource provider for Kubernetes to manage API resources and workloads in running clusters","archived":false,"fork":false,"pushed_at":"2025-04-03T23:00:46.000Z","size":58323,"stargazers_count":422,"open_issues_count":285,"forks_count":116,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-04-04T06:34:59.040Z","etag":null,"topics":["kubernetes","nodejs","pulumi","python","typescript"],"latest_commit_sha":null,"homepage":"https://www.pulumi.com/docs/reference/clouds/kubernetes/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pulumi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-09T20:50:33.000Z","updated_at":"2025-04-03T23:00:49.000Z","dependencies_parsed_at":"2024-01-14T09:18:03.164Z","dependency_job_id":"da8efb17-e71e-4081-9a20-55521538a15d","html_url":"https://github.com/pulumi/pulumi-kubernetes","commit_stats":{"total_commits":1678,"total_committers":86,"mean_commits":"19.511627906976745","dds":0.5893921334922527,"last_synced_commit":"b0ab343c54b0ee07e8ef2cb6b7a5fcc9a4c1ea4e"},"previous_names":[],"tags_count":461,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulumi%2Fpulumi-kubernetes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulumi%2Fpulumi-kubernetes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulumi%2Fpulumi-kubernetes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulumi%2Fpulumi-kubernetes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pulumi","download_url":"https://codeload.github.com/pulumi/pulumi-kubernetes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248261933,"owners_count":21074226,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kubernetes","nodejs","pulumi","python","typescript"],"created_at":"2024-07-31T07:01:28.752Z","updated_at":"2025-04-10T17:19:29.743Z","avatar_url":"https://github.com/pulumi.png","language":"Java","funding_links":[],"categories":["Kubernetes","TypeScript"],"sub_categories":["Configuration"],"readme":"[![Build Status](https://travis-ci.com/pulumi/pulumi-kubernetes.svg?token=eHg7Zp5zdDDJfTjY8ejq\u0026branch=master)](https://travis-ci.com/pulumi/pulumi-kubernetes)\n[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com)\n[![NPM version](https://badge.fury.io/js/%40pulumi%2Fkubernetes.svg)](https://www.npmjs.com/package/@pulumi/kubernetes)\n[![Python version](https://badge.fury.io/py/pulumi-kubernetes.svg)](https://pypi.org/project/pulumi-kubernetes/)\n[![GoDoc](https://godoc.org/github.com/pulumi/pulumi-kubernetes/sdk/v4?status.svg)](https://pkg.go.dev/github.com/pulumi/pulumi-kubernetes/sdk/v4)\n[![License](https://img.shields.io/github/license/pulumi/pulumi-kubernetes)](https://github.com/pulumi/pulumi-kubernetes/blob/master/LICENSE)\n\n# Pulumi Kubernetes Resource Provider\n\nThe Kubernetes resource provider for Pulumi lets you create, deploy, and manage Kubernetes API resources and workloads in a running cluster. For a streamlined Pulumi walkthrough, including language runtime installation and Kubernetes configuration, select \"Get Started\" below.\n\u003cdiv\u003e\n    \u003cp\u003e\n        \u003ca href=\"https://www.pulumi.com/docs/get-started/kubernetes\" title=\"Get Started\"\u003e\n            \u003cimg src=\"https://www.pulumi.com/images/get-started.svg?\" width=\"120\"\u003e\n        \u003c/a\u003e\n    \u003c/p\u003e  \n\u003c/div\u003e\n\n* [Introduction](#introduction)\n  * [Kubernetes API Version Support](#kubernetes-api-version-support)\n  * [How does API support for Kubernetes work?](#how-does-api-support-for-kubernetes-work)\n* [References](#references)\n* [Prerequisites](#prerequisites)\n* [Installing](#installing)\n* [Quick Examples](#quick-examples)\n  * [Deploying a YAML Manifest](#deploying-a-yaml-manifest)\n  * [Deploying a Helm Chart](#deploying-a-helm-chart)\n  * [Deploying a Workload using the Resource API](#deploying-a-workload-using-the-resource-api)\n* [Contributing](#contributing)\n* [Code of Conduct](#code-of-conduct)\n\n## Introduction\n\n`pulumi-kubernetes` provides an SDK to create any of the API resources\navailable in Kubernetes.\n\nThis includes the resources you know and love, such as:\n- Deployments\n- ReplicaSets\n- ConfigMaps\n- Secrets\n- Jobs etc.\n\n#### Kubernetes API Version Support\n\nThe `pulumi-kubernetes` SDK closely tracks the latest upstream release, and provides access\nto the full API surface, including deprecated endpoints.\nThe SDK API is 100% compatible with the Kubernetes API, and is\nschematically identical to what Kubernetes users expect.\n\nWe support Kubernetes clusters with version \u003e=1.9.0.\n\n#### How does API support for Kubernetes work?\n\nPulumi’s Kubernetes SDK is manufactured by automatically wrapping our\nlibrary functionality around the Kubernetes resource [OpenAPI\nspec](https://github.com/kubernetes/kubernetes/tree/master/api/openapi-spec) as soon as a\nnew version is released! Ultimately, this means that Pulumi users do not have\nto learn a new Kubernetes API model, nor wait long to work with the latest\navailable versions.\n\n\u003e Note: Pulumi also supports alpha and beta APIs.\n\nVisit the [FAQ](https://www.pulumi.com/docs/reference/clouds/kubernetes/faq/)\nfor more details.\n\n## References\n\n* [Reference Documentation](https://www.pulumi.com/registry/packages/kubernetes/)\n* API Documentation\n    * [Node.js API](https://pulumi.io/reference/pkg/nodejs/@pulumi/kubernetes)\n    * [Python API](https://www.pulumi.com/docs/reference/pkg/python/pulumi_kubernetes/)\n* [All Examples](./examples)\n* [How-to Guides](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/)\n\n## Prerequisites\n\n1. [Install Pulumi](https://www.pulumi.com/docs/get-started/kubernetes/install-pulumi/).\n1. Install a language runtime such as [Node.js](https://nodejs.org/en/download), [Python](https://www.python.org/downloads/) or [.NET](https://dotnet.microsoft.com/download/dotnet-core/3.1).\n1. Install a package manager\n    * For Node.js, use [NPM](https://www.npmjs.com/get-npm) or [Yarn](https://yarnpkg.com/lang/en/docs/install).\n    * For Python, use [pip](https://pip.pypa.io/en/stable/installing/).\n    * For .NET, use Nuget which is integrated with the `dotnet` CLI.\n1. Have access to a running Kubernetes cluster\n    * If `kubectl` already works for your running cluster, Pulumi respects and uses this configuration.\n    * If you do not have a cluster already running and available, we encourage you to\n      explore Pulumi's SDKs for AWS EKS, Azure AKS, and GCP GKE. Visit the \n      [API reference docs in the Pulumi Registry](https://www.pulumi.com/registry/packages/kubernetes/api-docs/) for more details.\n1. [Install `kubectl`](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl).\n\n## Installing\n\nThis package is available in many languages in the standard packaging formats.\n\nFor Node.js use either `npm` or `yarn`:\n\n`npm`:\n\n```bash\nnpm install @pulumi/kubernetes\n```\n\n`yarn`:\n\n```bash\nyarn add @pulumi/kubernetes\n```\n\nFor Python use `pip`:\n\n```bash\npip install pulumi-kubernetes\n```\n\nFor .NET, dependencies will be automatically installed as part of your Pulumi deployments using `dotnet build`.\n\nTo use from Go, use `go install` to grab the latest version of the library\n\n    $ go install github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes@latest\n\n## Quick Examples\n\nThe following examples demonstrate how to work with `pulumi-kubernetes` in\na couple of ways.\n\nExamples may include the creation of an AWS EKS cluster, although an EKS cluster\nis **not** required to use `pulumi/kubernetes`. It is simply used to ensure\nwe have access to a running Kubernetes cluster to deploy resources and workloads into.\n\n### Deploying a YAML Manifest\n\nThis example deploys resources from a YAML manifest file path, using the\ntransient, default `kubeconfig` credentials on the local machine, just as `kubectl` does.\n\n```typescript\nimport * as k8s from \"@pulumi/kubernetes\";\n\nconst myApp = new k8s.yaml.ConfigFile(\"app\", {\n    file: \"app.yaml\"\n});\n```\n\n### Deploying a Helm Chart\n\nThis example creates an EKS cluster with [`pulumi/eks`](https://github.com/pulumi/pulumi-eks),\nand then deploys a Helm chart from the stable repo using the \n`kubeconfig` credentials from the cluster's [Pulumi provider](https://www.pulumi.com/docs/intro/concepts/resources/providers/).\n\n```typescript\nimport * as eks from \"@pulumi/eks\";\nimport * as k8s from \"@pulumi/kubernetes\";\n\n// Create an EKS cluster.\nconst cluster = new eks.Cluster(\"my-cluster\");\n\n// Deploy Wordpress into our cluster.\nconst wordpress = new k8s.helm.v3.Chart(\"wordpress\", {\n    repo: \"stable\",\n    chart: \"wordpress\",\n    values: {\n        wordpressBlogName: \"My Cool Kubernetes Blog!\",\n    },\n}, { providers: { \"kubernetes\": cluster.provider } });\n\n// Export the cluster's kubeconfig.\nexport const kubeconfig = cluster.kubeconfig;\n```\n\n### Deploying a Workload using the Resource API\n\nThis example creates a EKS cluster with [`pulumi/eks`](https://github.com/pulumi/pulumi-eks),\nand then deploys an NGINX Deployment and Service using the SDK resource API, and the \n`kubeconfig` credentials from the cluster's [Pulumi provider](https://www.pulumi.com/docs/intro/concepts/resources/providers/).\n\n```typescript\nimport * as eks from \"@pulumi/eks\";\nimport * as k8s from \"@pulumi/kubernetes\";\n\n// Create an EKS cluster with the default configuration.\nconst cluster = new eks.Cluster(\"my-cluster\");\n\n// Create a NGINX Deployment and Service.\nconst appName = \"my-app\";\nconst appLabels = { appClass: appName };\nconst deployment = new k8s.apps.v1.Deployment(`${appName}-dep`, {\n    metadata: { labels: appLabels },\n    spec: {\n        replicas: 2,\n        selector: { matchLabels: appLabels },\n        template: {\n            metadata: { labels: appLabels },\n            spec: {\n                containers: [{\n                    name: appName,\n                    image: \"nginx\",\n                    ports: [{ name: \"http\", containerPort: 80 }]\n                }],\n            }\n        }\n    },\n}, { provider: cluster.provider });\n\nconst service = new k8s.core.v1.Service(`${appName}-svc`, {\n    metadata: { labels: appLabels },\n    spec: {\n        type: \"LoadBalancer\",\n        ports: [{ port: 80, targetPort: \"http\" }],\n        selector: appLabels,\n    },\n}, { provider: cluster.provider });\n\n// Export the URL for the load balanced service.\nexport const url = service.status.loadBalancer.ingress[0].hostname;\n\n// Export the cluster's kubeconfig.\nexport const kubeconfig = cluster.kubeconfig;\n```\n\n## Contributing\n\nIf you are interested in contributing, please see the [contributing docs][contributing].\n\n## Code of Conduct\n\nYou can read the code of conduct [here][code-of-conduct].\n\n[pulumi-kubernetes]: https://github.com/pulumi/pulumi-kubernetes\n[contributing]: CONTRIBUTING.md\n[code-of-conduct]: CODE-OF-CONDUCT.md\n[workload-example]: #deploying-a-workload-on-aws-eks\n[how-pulumi-works]: https://www.pulumi.com/docs/intro/concepts/how-pulumi-works\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulumi%2Fpulumi-kubernetes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpulumi%2Fpulumi-kubernetes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulumi%2Fpulumi-kubernetes/lists"}