{"id":13509158,"url":"https://github.com/kluctl/kluctl","last_synced_at":"2025-03-30T13:31:44.209Z","repository":{"id":39634773,"uuid":"395634637","full_name":"kluctl/kluctl","owner":"kluctl","description":"The missing glue to put together large Kubernetes deployments, composed of multiple smaller parts (Helm/Kustomize/...)  in a manageable and unified way.","archived":false,"fork":false,"pushed_at":"2025-03-26T22:20:18.000Z","size":11541,"stargazers_count":717,"open_issues_count":76,"forks_count":45,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-28T16:45:32.003Z","etag":null,"topics":["devops","gitops","helm","kubernetes","kustomize"],"latest_commit_sha":null,"homepage":"https://kluctl.io","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/kluctl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":"kluctl"}},"created_at":"2021-08-13T11:48:24.000Z","updated_at":"2025-03-23T13:04:41.000Z","dependencies_parsed_at":"2023-10-14T19:30:39.331Z","dependency_job_id":"328e481c-57a1-4cad-ad09-e8c65af199a3","html_url":"https://github.com/kluctl/kluctl","commit_stats":null,"previous_names":[],"tags_count":138,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kluctl%2Fkluctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kluctl%2Fkluctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kluctl%2Fkluctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kluctl%2Fkluctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kluctl","download_url":"https://codeload.github.com/kluctl/kluctl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246323931,"owners_count":20759051,"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":["devops","gitops","helm","kubernetes","kustomize"],"created_at":"2024-08-01T02:01:03.784Z","updated_at":"2025-03-30T13:31:42.003Z","avatar_url":"https://github.com/kluctl.png","language":"Go","readme":"# kluctl\n\n[![tests](https://github.com/kluctl/kluctl/workflows/tests/badge.svg)](https://github.com/kluctl/kluctl/actions)\n[![license](https://img.shields.io/github/license/kluctl/kluctl.svg)](https://github.com/kluctl/kluctl/blob/main/LICENSE)\n[![release](https://img.shields.io/github/release/kluctl/kluctl.svg)](https://github.com/kluctl/kluctl/releases)\n\n\u003cimg alt=\"kluctl\" src=\"logo/kluctl.svg\" width=\"200\"/\u003e\n\nKluctl is the missing glue that puts together your (and any third-party) deployments into one large declarative\nKubernetes deployment, while making it fully manageable (deploy, diff, prune, delete, ...) via one unified command\nline interface.\n\nKluctl tries to be as flexible as possible, while remaining as simple as possible. It reuses established\ntools (e.g. Kustomize and Helm), making it possible to re-use a large set of available third-party deployments.\n\nKluctl is centered around \"targets\", which can be a cluster or a specific environment (e.g. test, dev, prod, ...) on one\nor multiple clusters. Targets can be deployed, diffed, pruned, deleted, and so on. The idea is to have the same set of\noperations for every target, no matter how simple or complex the deployment and/or target is.\n\nKluctl does not strictly depend on a controller and allows to use the same deployment wherever you want,\nas long as access to the kluctl project and clusters is available. This means, that you can use it from your\nlocal machine, from your CI/CD pipelines or any automation platform/system that allows to call custom tools.\n\n## What can I do with Kluctl?\n\nKluctl allows you to define a Kluctl project, which in turn defines Kluctl\ndeployments and sub-deployments. Each Kluctl deployment defines Kustomize deployments.\n\nA Kluctl project also defines targets, which represent your target environments\nand/or clusters.\n\nThe Kluctl CLI then allows to deploy, diff, prune, delete, ... your deployments.\n\n## GitOps\n\nIf you want to follow a pull based [GitOps](https://kluctl.io/docs/gitops/) flow, then you can use the Kluctl\nController, which then allows you to use `KluctlDeployment` custom resources to define your Kluctl deployments.\n\n## Kluctl Webui\n\nKluctl also offers a [Webui](https://kluctl.io/docs/webui/) that allows you to visualise and control your Kluctl\ndeployments. It works for deployments performed by the CLI and for deployments performed via GitOps.\n\n[Here](https://kluctl.io/blog/2023/09/12/introducing-the-kluctl-webui/) is an introduction to the Webui together\nwith a tutorial.\n\n## Where do I start?\n\nInstallation instructions can be found [here](docs/kluctl/installation.md). For a getting started guide, continue\n[here](docs/kluctl/get-started.md).\n\n## Community\n\nCheck the [community page](https://kluctl.io/community/) for details about the Kluctl community.\n\nIn short: We use [Github Issues](https://github.com/kluctl/kluctl/issues) and\n[Github Discussions](https://github.com/kluctl/kluctl/discussions) to track and discuss Kluctl related development.\nYou can also join the #kluctl channel inside the [CNCF Slack](https://slack.cncf.io) to get in contact with other\ncommunity members and contributors/developers.\n\n## Documentation\n\nDocumentation, news and blog posts can be found on https://kluctl.io.\n\nThe underlying documentation is synced from this repo (look into ./docs) to the website whenever something is merged\ninto main.\n\n## Development and contributions\n\nPlease read [DEVELOPMENT](./DEVELOPMENT.md) and [CONTRIBUTIONS](./CONTRIBUTING.md) for details on how the Kluctl project\nhandles these matters.\n\n## Kluctl in Short\n\n|     |     |\n| --- | --- |\n| 💪 Kluctl handles all your deployments | You can manage all your deployments with Kluctl, including infrastructure related and your applications. |\n| 🪶 Complex or simple, all the same | You can manage complex and simple deployments with Kluctl. Simple deployments are lightweight while complex deployment are easily manageable. |\n| 🤖 Native git support | Kluctl has native Git support integrated, meaning that it can easily deploy remote Kluctl projects or externalize parts (e.g. configuration) of your Kluctl project. |\n| 🪐 Multiple environments | Deploy the same deployment to multiple environments (dev, test, prod, ...), with flexible differences in configuration. |\n| 🌌 Multiple clusters | Manage multiple target clusters (in multiple clouds or bare-metal if you want). |\n| 🔩 Configuration and Templating | Kluctl allows to use templating in nearly all places, making it easy to have dynamic configuration. |\n| ⎈ Helm and Kustomize | The Helm and Kustomize integrations allow you to reuse plenty of third-party charts and kustomizations. |\n| 🔍 See what's different | Always know what the state of your deployments is by being able to run diffs on the whole deployment. |\n| 🔎 See what happened | Always know what you actually changed after performing a deployment. |\n| 💥 Know what went wrong | Kluctl will show you what part of your deployment failed and why. |\n| 👐 Live and let live | Kluctl tries to not interfere with any other tools or operators. This is possible due to it's use of server-side-apply. |\n| 🧹 Keep it clean | Keep your clusters clean by issuing regular prune calls. |\n| 🔐 Encrypted Secrets | Manage encrypted secrets for multiple target environments and clusters. |\n\n## Demo\n\nhttps://kluctl.io/vhs/demo-cut.mp4\n\nClick on the link to play the video.","funding_links":["https://github.com/sponsors/kluctl"],"categories":["Go","kubernetes","Configuration Management"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkluctl%2Fkluctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkluctl%2Fkluctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkluctl%2Fkluctl/lists"}