kluctl

command module
v2.12.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2022 License: Apache-2.0 Imports: 2 Imported by: 0

README ยถ

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 depend on external operators/controllers 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.

Flux support is in alpha stadium and available via the flux-kluctl-controller.

Installation

See installation.

Documentation

Documentation can be found here: https://kluctl.io/docs

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

Documentation ยถ

Overview ยถ

Copyright ยฉ 2022 Alexander Block <ablock84@gmail.com>

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Directories ยถ

Path Synopsis
cmd
e2e
internal
pkg
git
git/http-server
This is copied from https://github.com/sosedoff/gitkit and simplified
This is copied from https://github.com/sosedoff/gitkit and simplified
k8s
utils/python_scanner
Package scanner provides a scanner and tokenizer for UTF-8-encoded text.
Package scanner provides a scanner and tokenizer for UTF-8-encoded text.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL