Skip to content
 
 

Repository files navigation

Node Config Operator

Operator that configures nodes that are part of a Kubernetes cluster. Used in our clusters as a minimal replacement for Ansible.

Description

This operator configures multiple parts of a Ubuntu server, such as:

  • Configuration of kernel parameters (via sysctl)
  • Loading of kernel modules
  • Creation of systemd units and systemd overrides
  • Writing blocks of text to files
  • Installation of apt packages

Quickstart

Prerequisites

  • A running Kubernetes cluster
  • A dedicated namespace
  • If any kind of pod security admission policy is enforced, ensure that nodeconfig operator has an unrestricted policy.

Deploy using helm

  1. Install the chart with: helm upgrade --install --create-namespace -n nco-system nco oci://ghcr.io/whitestack/charts/node-config-operator

  2. The operator will start, but no changes will be applied to hosts until a valid NodeConfig CR is applied.

A sample CR can be found here

Reference

Contributing

How it works

This project aims to follow the Kubernetes Operator pattern

It uses Controllers which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster.

Test It Out

  1. Install the CRDs into the cluster:
make install
  1. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):
make run

NOTE: You can also run this in one step by running: make install run

Modifying the API definitions

If you are editing the API definitions, generate the manifests such as CRs or CRDs using:

make manifests

Dev notes

You can run:

make dev

To generate the controller types, manifests, update the chart and autogenerated documentation. You must run this command before every push.

NOTE: Run make --help for more information on all potential make targets

More information can be found via the Kubebuilder Documentation

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages