Universal Kubernetes for Ops is for development, testing and production respecting my point of view for GitOps implementation.
With this project, you can have the definition of all your necessary components on a single cluster.
This project is a boilerplate, you can use it as a starting point for your own configuration.
This project use the following tools:
I'm using Homebrew for package management on macOS.
- Install kind:
brew install kind- Install kubectl:
brew install kubectl- Install helm:
brew install helm- Install yq:
brew install yq- Install kustomize:
brew install kustomize- Install docker:
brew install docker- Install kubeseal:
brew install kubesealFirst of all, you need to have a Kubernetes cluster up and running. To help you with that, this project into the makefile the way to easily install your cluster.
make installThis command use the kind tool to create a Kubernetes cluster and initiate and apply all enabled components.
The cluster configuration is stored in the kind-config.yaml file.
The default configuration is for one control plane and one worker.
The control plane is also used as Egress and is exposed on port 80 of your localhost.
To be fully functional, you should expose your selected ingress manager on the control plane node port 30080.
In our boilerplate, we use Traefik with all preset values to be functionnal but you can easily customize it or use an other one like nginx.
make uninstall To install all, the local environment and enabled components.
make installTo install only the local environment.
make install-envTo initialize all components.
make components-initInitialisation of a component depends on component.yaml spécifications.
Currently this boilerplate only support Helm charts.
To initialize only one component.
make components/traefik/component.yamlTo apply all enabled components on a cluster.
The ENV parameter is to target a cluster. By default it is local.
make components-apply [ENV=local]To apply a specific component:
make component-apply COMPONENT=traefik [ENV=local]