A CLI for managing declarative infrastructure.
Go to file
Ruslan Aliev 3e44c42989 Introduce KRM based k8s applier
The KRM based k8s applier solves multiple design problems
which were introduced in previous airshipctl generation,
making apply code and process more clear, reliable and
readable. In particular:
 * k8s applier now is a KRM function and it allows the
   end user to choose or implement desired backend for
   k8s apply operations;
 * the related amount of code was reduced by three times,
   multiple unused and unnecessary structs/interfaces/design
   patterns were removed or rewrited in more clean and efficient
   way;
 * removed cli-utils dependency from airshipctl;
 * fixed several bugs and code issues, such as incorrect printing
   of tables, duplicated unit tests, improper generation and applying
   inventory config map, etc;
 * cli-utils version used in KRM function was bumped to 0.26.0;
 * phases with duplicated k8s resources were removed or fixed;
 * unit test coverage increased to 83.1%;
 * KRM function logs were integrated with klog library which allows
   to observe logs directly from cli-utils and other dependent libs.

Change-Id: Ief509f1d6abefd53caf7fcffc4e36b0319815373
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Closes: #646
2021-10-27 08:14:22 +00:00
.github Remove unused variable from github workflow 2021-09-21 13:33:00 -05:00
certs Adding the ability to inject certificate authorities into docker image 2020-04-24 15:06:11 -05:00
cmd Introduce KRM based k8s applier 2021-10-27 08:14:22 +00:00
docs Fixed broken links in Airshipctl docs 2021-09-30 14:25:46 +00:00
krm-functions Introduce KRM based k8s applier 2021-10-27 08:14:22 +00:00
manifests Introduce KRM based k8s applier 2021-10-27 08:14:22 +00:00
pkg Introduce KRM based k8s applier 2021-10-27 08:14:22 +00:00
playbooks Nextgen secrets implementation with separation per cluster 2021-09-03 20:46:15 +00:00
roles Use newer docker packages 2021-10-21 23:18:32 +00:00
testdata/k8s Remove NameInKubeconf field from Context struct 2021-03-26 19:22:52 -05:00
tests/ansible Reusing apache-server instead of httpd 2020-05-01 03:17:02 +00:00
testutil Introduce KRM based k8s applier 2021-10-27 08:14:22 +00:00
tools Introduce KRM based k8s applier 2021-10-27 08:14:22 +00:00
zuul.d Remove .git from repository URL 2021-10-19 14:21:54 +00:00
.gitignore Add a script to run AIAP in AKS 2021-09-02 18:11:10 -05:00
.gitreview Gerrit: Add .gitreview file 2019-06-25 08:11:57 -05:00
.golangci.yaml Replace Non-ASCII symbols 2020-08-05 13:22:59 +00:00
.goreleaser.yaml Add git commit hash and build date to version 2021-09-21 08:57:37 -05:00
.grenrc.js Github action to create release notes 2020-11-13 15:11:06 -06:00
CONTRIBUTING.md Fixed broken links in Airshipctl docs 2021-09-30 14:25:46 +00:00
Dockerfile Use quay.io/airshipit/golang images 2021-09-14 15:19:50 -05:00
LICENSE Add LICENSE 2019-10-19 14:16:05 -05:00
Makefile Introduce KRM based k8s applier 2021-10-27 08:14:22 +00:00
README.rst Airship blog series link fix 2020-10-14 21:08:35 +00:00
Vagrantfile [#32]: scripts for local run playbooks 2020-02-28 17:24:32 -08:00
go.mod Introduce KRM based k8s applier 2021-10-27 08:14:22 +00:00
go.sum Introduce KRM based k8s applier 2021-10-27 08:14:22 +00:00
main.go Refactor airshipctl root command 2020-08-25 17:37:19 -05:00
tox.ini Replace venv with tox for documentation builds 2020-05-08 15:47:41 +00:00

README.rst

Airshipctl

Airshipctl is a command-line interface that enables users to manage declarative infrastructure and software.

Airshipctl aims to provide a seamless experience for operators wishing to leverage the best open source options such as the Cluster API, Metal Kubed, Kustomize, and kubeadm by providing a straight forward and easily approachable interface.

This project is the heart of our effort to produce Airship 2.0, which has three main evolutions from Airship 1.0:

  • Expand our use of entrenched upstream projects.
  • Embrace Kubernetes Custom Resource Definitions (CRD) everything becomes an object in Kubernetes.
  • Make the Airship control plane ephemeral.

To learn more about the Airship 2.0 evolution, reference the Airship blog series.

Contributing

Airshipctl is under active development and welcomes new developers! Please read our developer guide to begin contributing.

We also encourage new contributors and operators alike to join us in our Slack workspace and subscribe to our mailing lists.

You can learn more about Airship on the Airship wiki.