k3os-config-operator

command module
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2021 License: MIT Imports: 12 Imported by: 0

README ΒΆ

k3OS Config Operator

Coverage Status Go Report Card

This operator will keep all fields of k3OS's config.yaml files in sync. Specifically, it's written to:

  • sync node labels
  • sync node taints
  • keep the /var/lib/rancher/k3os/config.yaml on each node in sync

It runs as a DaemonSet on each node in the cluster.

It was written to address this part of the k3OS README:

The /var/lib/rancher/k3os/config.yaml or config.d/* files are intended to be used at runtime. These files can be manipulated manually, through scripting, or managed with the Kubernetes operator.

That Kubernetes operator doesn't exist. At least, it didn't until now. 🀠

Prerequisites

  1. A k3OS cluster that's running nominally.
  2. A local clone of https://github.com/annismckenzie/picl-k3os-image-generator (my fork).
  3. The config directory with YAML files as describes in https://github.com/sgielen/picl-k3os-image-generator#getting-started:
β”œβ”€β”€ config
β”‚  └── dc:a6:32:xx:xx:xx.yaml
β”‚  └── dc:a6:32:xx:xx:xx.yaml
β”‚  └── dc:a6:32:xx:xx:xx.yaml
  1. Your local kubectl configured to push YAMLs to your k3OS cluster.
  2. Execute make update-k3osconfig-secret in your local checkout of picl-k3os-image-generator to validate the YAML files in the config directory and to generate the secret for the operator.
  3. Execute make deploy-k3os-config in your local checkout of picl-k3os-image-generator. This will generate the configuration and push it into the cluster.
  4. Continue on with the installation steps outlined below.

Installation

  kubectl apply -f https://raw.githubusercontent.com/annismckenzie/k3os-config-operator/v0.3.2/deploy/operator.yaml

Releasing

  1. Create release-vx.y.z branch. Update config/release/kustomization.yaml with the new version, commit.
  2. Tag locally with vx.y.z. Make sure the working directory is clean.
  3. Run make render-static-manifests. This will build and push the new multi-arch image.
  4. Update the installation path above with the new tag.
  5. Commit the updated deploy/operator.yaml and the update to the README.
  6. Recreate the local tag, push the tag, then update the changelog with make update-changelog. Commit and push.
  7. Merge the release PR.

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
apis
config/v1alpha1
Package v1alpha1 contains API Schema definitions for the config v1alpha1 API group +kubebuilder:object:generate=true +groupName=config.operators.annismckenzie.github.com
Package v1alpha1 contains API Schema definitions for the config v1alpha1 API group +kubebuilder:object:generate=true +groupName=config.operators.annismckenzie.github.com
controllers
pkg
util/taints
Package taints implements utilities for working with taints.
Package taints implements utilities for working with taints.

Jump to

Keyboard shortcuts

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