Coder Social home page Coder Social logo

vagarenko / kluctl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kluctl/kluctl

0.0 0.0 0.0 4.23 MB

The missing glue to put together large Kubernetes deployments, composed of multiple smaller parts (Helm/Kustomize/...) in a manageable and unified way.

Home Page: https://kluctl.io

License: Apache License 2.0

Shell 0.43% Python 0.12% Go 82.79% Makefile 0.63% Smarty 0.50% Dockerfile 0.04% JavaScript 0.01% HTML 0.13% TypeScript 15.24% CSS 0.09%

kluctl's Introduction

kluctl

tests license release

kluctl

Kluctl is the missing glue that puts together your (and any third-party) deployments into one large declarative Kubernetes deployment, while making it fully manageable (deploy, diff, prune, delete, ...) via one unified command line interface.

Kluctl tries to be as flexible as possible, while remaining as simple as possible. It reuses established tools (e.g. Kustomize and Helm), making it possible to re-use a large set of available third-party deployments.

Kluctl is centered around "targets", which can be a cluster or a specific environment (e.g. test, dev, prod, ...) on one or multiple clusters. Targets can be deployed, diffed, pruned, deleted, and so on. The idea is to have the same set of operations for every target, no matter how simple or complex the deployment and/or target is.

Kluctl does not strictly depend on a controller and allows to use the same deployment wherever you want, as long as access to the kluctl project and clusters is available. This means, that you can use it from your local machine, from your CI/CD pipelines or any automation platform/system that allows to call custom tools.

If you want to follow a pull based GitOps flow, then you can use the Kluctl Controller, which then allows you to use KluctlDeployment custom resources to define your Kluctl deployments.

Please note: GitOps support was previously implemented via the now deprecated flux-kluctl-controller. Historically, the flux-kluctl-controller depended on the Flux ecosystem (the source-controller to be specific), which has changed in the meantime, meaning that it runs completely independent and thus is not part of the Flux ecosystem anymore.

What can I do with Kluctl?

Kluctl allows you to define a Kluctl project, which in turn defines Kluctl deployments and sub-deployments. Each Kluctl deployment defines Kustomize deployments.

A Kluctl project also defines targets, which represent your target environments and/or clusters.

The Kluctl CLI then allows to deploy, diff, prune, delete, ... your deployments.

Where do I start?

Installation instructions can be found here. For a getting started guide, continue here.

Community

Check the community page for details about the Kluctl community.

In short: We use Github Issues and Github Discussions to track and discuss Kluctl related development. You can also join the #kluctl channel inside the CNCF Slack to get in contact with other community members and contributors/developers.

Documentation

Documentation, news and blog posts can be found on https://kluctl.io.

The underlying documentation is synced from this repo (look into ./docs) to the website whenever something is merged into main.

Development and contributions

Please read DEVELOPMENT and CONTRIBUTIONS for details on how the Kluctl project handles these matters.

Kluctl in Short

๐Ÿ’ช Kluctl handles all your deployments You can manage all your deployments with Kluctl, including infrastructure related and your applications.
๐Ÿชถ 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.
๐Ÿค– 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.
๐Ÿช Multiple environments Deploy the same deployment to multiple environments (dev, test, prod, ...), with flexible differences in configuration.
๐ŸŒŒ Multiple clusters Manage multiple target clusters (in multiple clouds or bare-metal if you want).
๐Ÿ”ฉ Configuration and Templating Kluctl allows to use templating in nearly all places, making it easy to have dynamic configuration.
โŽˆ Helm and Kustomize The Helm and Kustomize integrations allow you to reuse plenty of third-party charts and kustomizations.
๐Ÿ” See what's different Always know what the state of your deployments is by being able to run diffs on the whole deployment.
๐Ÿ”Ž See what happened Always know what you actually changed after performing a deployment.
๐Ÿ’ฅ Know what went wrong Kluctl will show you what part of your deployment failed and why.
๐Ÿ‘ 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.
๐Ÿงน Keep it clean Keep your clusters clean by issuing regular prune calls.
๐Ÿ” Encrypted Secrets Manage encrypted secrets for multiple target environments and clusters.

Demo

kluctl's People

Contributors

codablock avatar dependabot[bot] avatar aljoshare avatar vagarenko avatar matzegebbe avatar jjgadgets avatar jsaalfeld avatar epcim avatar cneufeldcoder avatar juneezee avatar devmarci avatar gitbluf avatar jcpunk avatar pr0pm avatar netthier avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.