{"id":13837302,"url":"https://github.com/kubecfg/kubecfg","last_synced_at":"2025-07-10T18:32:51.537Z","repository":{"id":37899766,"uuid":"429002685","full_name":"kubecfg/kubecfg","owner":"kubecfg","description":"A tool for managing complex enterprise Kubernetes environments as code.","archived":false,"fork":false,"pushed_at":"2025-07-08T17:14:47.000Z","size":20959,"stargazers_count":241,"open_issues_count":31,"forks_count":24,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-08T18:39:26.589Z","etag":null,"topics":["infrastructure-as-code","jsonnet","kubernetes","kubernetes-resources"],"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/kubecfg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"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,"zenodo":null}},"created_at":"2021-11-17T10:33:28.000Z","updated_at":"2025-06-30T02:34:22.000Z","dependencies_parsed_at":"2023-11-07T01:08:57.180Z","dependency_job_id":"567baaa6-d240-4c46-ab29-6a27006188a6","html_url":"https://github.com/kubecfg/kubecfg","commit_stats":{"total_commits":493,"total_committers":34,"mean_commits":14.5,"dds":0.7403651115618661,"last_synced_commit":"cd3dedc08bb2e1fd9f73f5e589bb9848fc2628d8"},"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"purl":"pkg:github/kubecfg/kubecfg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubecfg%2Fkubecfg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubecfg%2Fkubecfg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubecfg%2Fkubecfg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubecfg%2Fkubecfg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubecfg","download_url":"https://codeload.github.com/kubecfg/kubecfg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubecfg%2Fkubecfg/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264631213,"owners_count":23640941,"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":["infrastructure-as-code","jsonnet","kubernetes","kubernetes-resources"],"created_at":"2024-08-04T15:01:05.796Z","updated_at":"2025-07-10T18:32:50.991Z","avatar_url":"https://github.com/kubecfg.png","language":"Go","funding_links":[],"categories":["Go","kubernetes","Configuration Management"],"sub_categories":[],"readme":"# kubecfg\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/kubecfg/kubecfg)](https://goreportcard.com/report/github.com/kubecfg/kubecfg)\n\nA tool for managing Kubernetes resources as code.\n\n`kubecfg` allows you to express the patterns across your\ninfrastructure and reuse these powerful \"templates\" across many\nservices, and then manage those templates as files in version control.\nThe more complex your infrastructure is, the more you will gain from\nusing kubecfg.\n\nYes, Google employees will recognise this as being very similar to a\nsimilarly-named internal tool ;)\n\n## Documentation\n\nhttps://kubecfg.github.io/kubecfg/\n\n## Install\n\nPre-compiled executables exist for some platforms on\nthe [Github releases](https://github.com/kubecfg/kubecfg/releases)\npage.\n\nOn macOS, it can also be installed via [Homebrew](https://brew.sh/):\n`brew install kubecfg`\n\nTo build from source:\n\n```console\n% PATH=$PATH:$GOPATH/bin\n% go get github.com/kubecfg/kubecfg\n```\n\n## Quickstart\n\n```console\n# Show generated YAML\n% kubecfg show -o yaml examples/guestbook.jsonnet\n\n# Create resources\n% kubecfg update examples/guestbook.jsonnet\n\n# Modify configuration (downgrade gb-frontend image)\n% sed -i.bak '\\,gcr.io/google-samples/gb-frontend,s/:v4/:v3/' examples/guestbook.jsonnet\n# See differences vs server\n% kubecfg diff examples/guestbook.jsonnet\n\n# Update to new config\n% kubecfg update examples/guestbook.jsonnet\n\n# Clean up after demo\n% kubecfg delete examples/guestbook.jsonnet\n```\n\n## Features\n\n- Supports JSON, YAML or jsonnet files (by file suffix).\n- Best-effort sorts objects before updating, so that dependencies are\n  pushed to the server before objects that refer to them.\n- Additional jsonnet builtin functions. See `lib/kubecfg.libsonnet`.\n- Optional \"garbage collection\" of objects removed from config (see\n  `--gc-tag`).\n\n## Infrastructure-as-code Philosophy\n\nThe idea is to describe *as much as possible* about your configuration\nas files in version control (eg: git).\n\nChanges to the configuration follow a regular review, approve, merge,\netc code change workflow (github pull-requests, phabricator diffs,\netc).  At any point, the config in version control captures the entire\ndesired-state, so the system can be easily recreated in a QA cluster\nor to recover from disaster.\n\n### Jsonnet\n\nKubecfg relies heavily on [jsonnet](http://jsonnet.org/) to describe\nKubernetes resources, and is really just a thin Kubernetes-specific\nwrapper around jsonnet evaluation.  You should read the jsonnet\n[tutorial](http://jsonnet.org/docs/tutorial.html), and skim the functions available in the jsonnet [`std`](http://jsonnet.org/docs/stdlib.html)\nlibrary.\n\n## Community\n\n- [#jsonnet on Kubernetes Slack](https://kubernetes.slack.com/messages/jsonnet)\n\nClick [here](http://slack.k8s.io) to sign up to the Kubernetes Slack org.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubecfg%2Fkubecfg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubecfg%2Fkubecfg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubecfg%2Fkubecfg/lists"}