{"id":13439581,"url":"https://github.com/kubernetes-sigs/kustomize","last_synced_at":"2025-05-13T15:01:57.452Z","repository":{"id":37403336,"uuid":"133067498","full_name":"kubernetes-sigs/kustomize","owner":"kubernetes-sigs","description":"Customization of kubernetes YAML configurations","archived":false,"fork":false,"pushed_at":"2025-04-29T06:37:55.000Z","size":96802,"stargazers_count":11421,"open_issues_count":195,"forks_count":2300,"subscribers_count":114,"default_branch":"master","last_synced_at":"2025-05-05T22:23:46.098Z","etag":null,"topics":["hacktoberfest","k8s-sig-cli"],"latest_commit_sha":null,"homepage":"","language":"Go","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/kubernetes-sigs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY_CONTACTS","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-11T17:09:33.000Z","updated_at":"2025-05-05T07:40:56.000Z","dependencies_parsed_at":"2024-01-31T19:30:55.303Z","dependency_job_id":"d599b5c9-a032-46fb-a128-136330462830","html_url":"https://github.com/kubernetes-sigs/kustomize","commit_stats":{"total_commits":3859,"total_committers":395,"mean_commits":9.769620253164558,"dds":0.7691111686965535,"last_synced_commit":"ee3f506d10d076412a5eeefd3dc8a471a2483413"},"previous_names":[],"tags_count":343,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes-sigs%2Fkustomize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes-sigs%2Fkustomize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes-sigs%2Fkustomize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes-sigs%2Fkustomize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubernetes-sigs","download_url":"https://codeload.github.com/kubernetes-sigs/kustomize/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252604121,"owners_count":21775050,"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":["hacktoberfest","k8s-sig-cli"],"created_at":"2024-07-31T03:01:15.314Z","updated_at":"2025-05-13T15:01:57.422Z","avatar_url":"https://github.com/kubernetes-sigs.png","language":"Go","readme":"# kustomize\n\n`kustomize` lets you customize raw, template-free YAML\nfiles for multiple purposes, leaving the original YAML\nuntouched and usable as is.\n\n`kustomize` targets kubernetes; it understands and can\npatch [kubernetes style] API objects.  It's like\n[`make`], in that what it does is declared in a file,\nand it's like [`sed`], in that it emits edited text.\n\nThis tool is sponsored by [sig-cli] ([KEP]).\n\n - [Installation instructions](https://kubectl.docs.kubernetes.io/installation/kustomize/)\n - [General documentation](https://kubectl.docs.kubernetes.io/references/kustomize/)\n - [Examples](examples)\n\n[![Build Status](https://prow.k8s.io/badge.svg?jobs=kustomize-presubmit-master)](https://prow.k8s.io/job-history/kubernetes-jenkins/pr-logs/directory/kustomize-presubmit-master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/kubernetes-sigs/kustomize)](https://goreportcard.com/report/github.com/kubernetes-sigs/kustomize)\n\n## kubectl integration\n\nTo find the kustomize version embedded in recent versions of kubectl, run `kubectl version`:\n\n```sh\n\u003e kubectl version --client\nClient Version: v1.31.0\nKustomize Version: v5.4.2\n```\n\nThe kustomize build flow at [v2.0.3] was added\nto [kubectl v1.14][kubectl announcement].  The kustomize\nflow in kubectl remained frozen at v2.0.3 until kubectl v1.21,\nwhich [updated it to v4.0.5][kust-in-kubectl update]. It will\nbe updated on a regular basis going forward, and such updates\nwill be reflected in the Kubernetes release notes.\n\n| Kubectl version | Kustomize version |\n| --------------- | ----------------- |\n| \u003c v1.14         | n/a               |\n| v1.14-v1.20     | v2.0.3            |\n| v1.21           | v4.0.5            |\n| v1.22           | v4.2.0            |\n| v1.23           | v4.4.1            |\n| v1.24           | v4.5.4            |\n| v1.25           | v4.5.7            |\n| v1.26           | v4.5.7            |\n| v1.27           | v5.0.1            |\n\n[v2.0.3]: https://github.com/kubernetes-sigs/kustomize/releases/tag/v2.0.3\n[#2506]: https://github.com/kubernetes-sigs/kustomize/issues/2506\n[#1500]: https://github.com/kubernetes-sigs/kustomize/issues/1500\n[kust-in-kubectl update]: https://github.com/kubernetes/kubernetes/blob/4d75a6238a6e330337526e0513e67d02b1940b63/CHANGELOG/CHANGELOG-1.21.md#kustomize-updates-in-kubectl\n\nFor examples and guides for using the kubectl integration please\nsee the [kubernetes documentation].\n\n## Usage\n\n\n### 1) Make a [kustomization] file\n\nIn some directory containing your YAML [resource]\nfiles (deployments, services, configmaps, etc.), create a\n[kustomization] file.\n\nThis file should declare those resources, and any\ncustomization to apply to them, e.g. _add a common\nlabel_.\n\n```\n\nbase: kustomization + resources\n\nkustomization.yaml                                      deployment.yaml                                                 service.yaml\n+---------------------------------------------+         +-------------------------------------------------------+       +-----------------------------------+\n| apiVersion: kustomize.config.k8s.io/v1beta1 |         | apiVersion: apps/v1                                   |       | apiVersion: v1                    |\n| kind: Kustomization                         |         | kind: Deployment                                      |       | kind: Service                     |\n| labels:                                     |         | metadata:                                             |       | metadata:                         |\n| - includeSelectors: true                    |         |   name: myapp                                         |       |   name: myapp                     |\n|   pairs:                                    |         | spec:                                                 |       | spec:                             |\n|     app: myapp                              |         |   selector:                                           |       |   selector:                       |\n| resources:                                  |         |     matchLabels:                                      |       |     app: myapp                    |\n|   - deployment.yaml                         |         |       app: myapp                                      |       |   ports:                          |\n|   - service.yaml                            |         |   template:                                           |       |     - port: 6060                  |\n| configMapGenerator:                         |         |     metadata:                                         |       |       targetPort: 6060            |\n|   - name: myapp-map                         |         |       labels:                                         |       +-----------------------------------+\n|     literals:                               |         |         app: myapp                                    |\n|       - KEY=value                           |         |     spec:                                             |\n+---------------------------------------------+         |       containers:                                     |\n                                                        |         - name: myapp                                 |\n                                                        |           image: myapp                                |\n                                                        |           resources:                                  |\n                                                        |             limits:                                   |\n                                                        |               memory: \"128Mi\"                         |\n                                                        |               cpu: \"500m\"                             |\n                                                        |           ports:                                      |\n                                                        |             - containerPort: 6060                     |\n                                                        +-------------------------------------------------------+\n\n```\n\nFile structure:\n\n\u003e ```\n\u003e ~/someApp\n\u003e ├── deployment.yaml\n\u003e ├── kustomization.yaml\n\u003e └── service.yaml\n\u003e ```\n\nThe resources in this directory could be a fork of\nsomeone else's configuration.  If so, you can easily\nrebase from the source material to capture\nimprovements, because you don't modify the resources\ndirectly.\n\nGenerate customized YAML with:\n\n```\nkustomize build ~/someApp\n```\n\nThe YAML can be directly [applied] to a cluster:\n\n\u003e ```\n\u003e kustomize build ~/someApp | kubectl apply -f -\n\u003e ```\n\n\n### 2) Create [variants] using [overlays]\n\nManage traditional [variants] of a configuration - like\n_development_, _staging_ and _production_ - using\n[overlays] that modify a common [base].\n\n```\n\noverlay: kustomization + patches\n\nkustomization.yaml                                      replica_count.yaml                      cpu_count.yaml\n+-----------------------------------------------+       +-------------------------------+       +------------------------------------------+\n| apiVersion: kustomize.config.k8s.io/v1beta1   |       | apiVersion: apps/v1           |       | apiVersion: apps/v1                      |\n| kind: Kustomization                           |       | kind: Deployment              |       | kind: Deployment                         |\n| labels:                                       |       | metadata:                     |       | metadata:                                |\n|  - includeSelectors: true                     |       |   name: myapp                 |       |   name: myapp                            |\n|    pairs:                                     |       | spec:                         |       | spec:                                    |\n|      variant: prod                            |       |   replicas: 80                |       |  template:                               |\n| resources:                                    |       +-------------------------------+       |     spec:                                |\n|   - ../../base                                |                                               |       containers:                        |\n| patches:                                      |                                               |         - name: myapp                    |\n|   - path: replica_count.yaml                  |                                               |           resources:                     |\n|   - path: cpu_count.yaml                      |                                               |             limits:                      |\n+-----------------------------------------------+                                               |               memory: \"128Mi\"            |\n                                                                                                |               cpu: \"7000m\"               |\n                                                                                                +------------------------------------------+\n```\n\n\nFile structure:\n\u003e ```\n\u003e ~/someApp\n\u003e ├── base\n\u003e │   ├── deployment.yaml\n\u003e │   ├── kustomization.yaml\n\u003e │   └── service.yaml\n\u003e └── overlays\n\u003e     ├── development\n\u003e     │   ├── cpu_count.yaml\n\u003e     │   ├── kustomization.yaml\n\u003e     │   └── replica_count.yaml\n\u003e     └── production\n\u003e         ├── cpu_count.yaml\n\u003e         ├── kustomization.yaml\n\u003e         └── replica_count.yaml\n\u003e ```\n\nTake the work from step (1) above, move it into a\n`someApp` subdirectory called `base`, then\nplace overlays in a sibling directory.\n\nAn overlay is just another kustomization, referring to\nthe base, and referring to patches to apply to that\nbase.\n\nThis arrangement makes it easy to manage your\nconfiguration with `git`.  The base could have files\nfrom an upstream repository managed by someone else.\nThe overlays could be in a repository you own.\nArranging the repo clones as siblings on disk avoids\nthe need for git submodules (though that works fine, if\nyou are a submodule fan).\n\nGenerate YAML with\n\n```sh\nkustomize build ~/someApp/overlays/production\n```\n\nThe YAML can be directly [applied] to a cluster:\n\n\u003e ```sh\n\u003e kustomize build ~/someApp/overlays/production | kubectl apply -f -\n\u003e ```\n\n## Community\n\n- [file a bug](https://kubectl.docs.kubernetes.io/contributing/kustomize/bugs/)\n- [contribute a feature](https://kubectl.docs.kubernetes.io/contributing/kustomize/features/)\n- [propose a larger enhancement](https://github.com/kubernetes-sigs/kustomize/tree/master/proposals)\n\n### Code of conduct\n\nParticipation in the Kubernetes community\nis governed by the [Kubernetes Code of Conduct].\n\n[`make`]: https://www.gnu.org/software/make\n[`sed`]: https://www.gnu.org/software/sed\n[DAM]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#declarative-application-management\n[KEP]: https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2377-Kustomize/README.md\n[Kubernetes Code of Conduct]: code-of-conduct.md\n[applied]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#apply\n[base]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#base\n[declarative configuration]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#declarative-application-management\n[kubectl announcement]: https://kubernetes.io/blog/2019/03/25/kubernetes-1-14-release-announcement\n[kubernetes documentation]: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/\n[kubernetes style]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#kubernetes-style-object\n[kustomization]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#kustomization\n[overlay]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#overlay\n[overlays]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#overlay\n[release page]: https://github.com/kubernetes-sigs/kustomize/releases\n[resource]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#resource\n[resources]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#resource\n[sig-cli]: https://github.com/kubernetes/community/blob/master/sig-cli/README.md\n[variants]: https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#variant\n","funding_links":[],"categories":["HarmonyOS","Go","Configuration","Kubernetes","hacktoberfest","PureBasic","Uncategorized","Go (531)","其他__大数据","Continuous Delivery \u0026 GitOps","☁️ Cloud Platforms \u0026 Infrastructure","Configuration Management"],"sub_categories":["Windows Manager","[Jenkins](#jenkins)","Configuration","Kubernetes templating","Uncategorized","网络服务_其他","Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubernetes-sigs%2Fkustomize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubernetes-sigs%2Fkustomize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubernetes-sigs%2Fkustomize/lists"}