All Projects → flanksource → konfigadm

flanksource / konfigadm

Licence: Apache-2.0 license
konfigadm is a declarative configuration management tool and image builder focused on bootstrapping nodes for container-based environments.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to konfigadm

amazon-ecr-containerd-resolver-ARCHIVED
The Amazon ECR containerd resolver is an implementation of a containerd Resolver and Fetcher that can pull images from and push images to Amazon ECR using the Amazon ECR API instead of the Docker Registry API.
Stars: ✭ 10 (-61.54%)
Mutual labels:  containerd
kainstall-offline
kainstall tools offline file
Stars: ✭ 31 (+19.23%)
Mutual labels:  kubeadm
fluentbit-containerd-cri-o-json-log
Parsing CRI JSON logs with Fluent Bit - applies to fluentbit, kubernetes, containerd and cri-o
Stars: ✭ 58 (+123.08%)
Mutual labels:  containerd
kubeadm-tf
PoC; terraform + kubeadm
Stars: ✭ 25 (-3.85%)
Mutual labels:  kubeadm
kubeadm-bootstrap
Supporting code + documentation for bootstrapping a kubeadm installation on bare-metal-ish machinery
Stars: ✭ 23 (-11.54%)
Mutual labels:  kubeadm
k8s
kubeadm 虚拟机实践
Stars: ✭ 14 (-46.15%)
Mutual labels:  kubeadm
Centos7.6-install-k8s-v1.14.2-cluster
Centos7.6部署k8s(v1.14.2)集群
Stars: ✭ 20 (-23.08%)
Mutual labels:  kubeadm
CKS-Exercises-Certified-Kubernetes-Security-Specialist
A set of curated exercises to help you prepare for the CKS exam
Stars: ✭ 124 (+376.92%)
Mutual labels:  containerd
k8s-deployer
Deploy Kubernetes service and store retrieved information in the Consul K/V store
Stars: ✭ 23 (-11.54%)
Mutual labels:  kubeadm
kubeadm-vagrant
Setup Kubernetes Cluster with Kubeadm and Vagrant
Stars: ✭ 49 (+88.46%)
Mutual labels:  kubeadm
k8s-deploy
No description or website provided.
Stars: ✭ 77 (+196.15%)
Mutual labels:  kubeadm
ansible-role-containerd
Ansible Role - containerd.io
Stars: ✭ 45 (+73.08%)
Mutual labels:  containerd
terraform-aws-minikube
Terraform module for single node Kubernetes instance bootstrapped using kubeadm
Stars: ✭ 58 (+123.08%)
Mutual labels:  kubeadm
ansible-qemu-kvm
Ansible role to provision KVM/QEMU virtual machines
Stars: ✭ 38 (+46.15%)
Mutual labels:  cloud-init
aws-kubernetes
Kubernetes cluster setup in AWS using Terraform and kubeadm
Stars: ✭ 32 (+23.08%)
Mutual labels:  kubeadm
missing-container-metrics
Prometheus exporter for container metrics cAdvisor won't give you
Stars: ✭ 143 (+450%)
Mutual labels:  containerd
kubash
Kubash - the K8$ shell for your kube clusters
Stars: ✭ 20 (-23.08%)
Mutual labels:  kubeadm
terraform-aws-nvme-example
Example to manage your EBS NVME volumes on AWS
Stars: ✭ 46 (+76.92%)
Mutual labels:  cloud-init
amazon-ecs-shim-loggers-for-containerd
Logger shim repository for streaming container logs when using Containerd
Stars: ✭ 35 (+34.62%)
Mutual labels:  containerd
kubernetes-cluster
Vagrant As Automation Script
Stars: ✭ 34 (+30.77%)
Mutual labels:  kubeadm

InstallationKubernetesKey FeaturesCompatibilityDesignPrebuilt Images Full Documentation

konfigadm is a declarative configuration management tool and image builder focused on bootstrapping nodes for container based environments.

Usage

Usage:
  konfigadm [command]

Available Commands:
  apply       Apply the configuration to the local machine
  build-image Build a new image using the specified image and konfig
  cloud-init  Exports the configuration in cloud-init format
  help        Help about any command
  minify      Resolve all lookups and dependencies and export a single config file
  verify      Verify that the configuration has been applied and is in a healthy state
  version     Print the version of konfigadm

Flags:
  -c, --config strings   Config files in YAML or JSON format
  -d, --detect           Detect tags to use
  -h, --help             help for konfigadm
  -v, --loglevel count   Increase logging level
  -t, --tag strings      Runtime tags to use, valid tags: debian,ubuntu,redhat,rhel,fedora,redhat-like,debian-like,centos,aws,vmware
  -e, --var strings      Extra Variables to in key=value format

Installation

Binary

wget -O /usr/bin/konfigadm https://github.com/flanksource/konfigadm/releases/latest/download/konfigadm && chmod +x /usr/bin/konfigadm

Getting Started

Installing Kubernetes on the local machine

sudo konfigadm apply -c - <<-EOF
kubernetes:
  version: 1.21.2
container_runtime:
  type: docker
commands:
  - kubeadm init
EOF

asciicast

Building a kubernetes image

sudo konfigadm images build --image ubuntu1804 -c - <<-EOF
kubernetes:
  version: 1.21.2
container_runtime:
  type: docker
cleanup: true
EOF

Cloud Images are downloaded and then configured with --build-driver 2 drivers are supported:

  1. qemu (default) - Launches the image with KVM and attaches a cloud-init ISO to configure on boot
  2. libguestfs - Uses virt-customize to launch an appliance and chroot into the disk, does not require cloud-init in the image, but also cannot test/verify systemd based services due to the chroot.

asciicast

Features

  • Dependency Free and easily embeddable into an image builder.
  • Declarative, The order of operations cannot be changed, there are no implicit or explicit dependencies between items, no conditionals (besides for os/cloud tags) or control flows
  • Typed, can validate the configuration (e.g. docker image name is valid, systemd.unit file only includes valid keys, and the values are typed correctly)
  • Has built-in higher-order abstractions for kubernetes, containers, cri, cni, etc.
  • Supports multiple operating systems and package managers
  • Abstractions and many of the built-in elements are easily unit-testable due to the use of virtual filesystem and command execution list.
  • Automatic testing / verification based on intent, not just command success code
  • Generate cloud-init or shell scripts to be used by other systems

Compatibility

Compatibility is tested via the docker systemd images created by jrei, All example fixtures are first verified as false, applied, and then verified as true.

To run integration tests:

make ubuntu

TODO

  • Incremental mode
  • Merge duplicate command dependencies (e.g. installing curl)
  • Support templating everywhere (currently only supported in files)
  • Packer/QEMU/VirtualBox/Fusion drivers for building images
  • AMI/OVA Image upload
  • Multi-OS cleanup scripts for building images
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].