Skip to content

Cluster API and system components required for provisioning of Kubernetes clusters for different providers by Edenlab LLC.

License

Notifications You must be signed in to change notification settings

edenlabllc/cluster-deps.bootstrap.infra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cluster-deps.bootstrap.infra

Release Software License Powered By: Edenlab

Description

This repository provides a general set of Cluster API and system components required for provisioning of Kubernetes clusters for different providers. It is inherited by other tenant repositories. Mainly, it is designed to be managed by administrators, DevOps engineers, SREs.

Getting Started

To get started with cluster-deps.bootstrap.infra, ensure you have all the necessary tools and dependencies installed. Detailed information about requirements and installation instructions can be found in the Requirements section.

Requirements

  • Git
  • Note: K3D v5.x.x requires at least Docker v20.10.5 (runc >= v1.0.0-rc93) to work properly
  • RMK CLI

GitLab flow strategy

This repository uses the Environment branches with GitLab flow approach, where each stable or ephemeral branches is a separate environment with its own Kubernetes cluster.

Release schema:

develop ------> staging ------> production
   \            /     \           /
  release/vN.N.N-rc  release/vN.N.N

Generating project structure

Note: The generated project structure using the RMK tools is mandatory and is required for the interaction of the RMK with the code base. All generated files have example content and can be supplemented according to project requirements.

This example shows how the following options are configured and interact with each other:

  • etc/deps/<environment>/secrets/.spec.yaml.gotmpl
  • etc/deps/<environment>/values/*.yaml.gotmpl
  • etc/deps/<environment>/globals.yaml.gotmpl
  • etc/deps/<environment>/releases.yaml
  • .gitignore
  • helmfile.yaml.gotmpl
  • project.yaml

Available scopes of variables

  • deps

Basic RMK commands for project management

Project generate

rmk project generate \
    --environment=develop.root-domain=localhost \
    --owners=user \
    --scopes=deps

Initialization configuration

rmk config init

Create CAPI cluster

rmk cluster capi create

Release sync

rmk release sync

Note: A complete list of RMK commands and capabilities can be found at the link