Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ MINI_LAB_SONIC_IMAGE=r.metal-stack.io/vrnetlab/dell_sonic:$(MINI_LAB_DELL_SONIC_
else ifeq ($(MINI_LAB_FLAVOR),capms)
LAB_TOPOLOGY=mini-lab.capms.yaml
MINI_LAB_SONIC_IMAGE=r.metal-stack.io/vrnetlab/dell_sonic:$(MINI_LAB_DELL_SONIC_VERSION)
else ifeq ($(MINI_LAB_FLAVOR),kamaji)
LAB_TOPOLOGY=mini-lab.sonic.yaml
KAMAJI_ENABLED=true
else ifeq ($(MINI_LAB_FLAVOR),gardener)
GARDENER_ENABLED=true
# usually gardener restricts the maximum version for k8s:
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,11 +190,12 @@ make power-<on,reset,off>-<machine name>

## Flavors

There are four flavors of the mini-lab environment:
There are five flavors of the mini-lab environment:

- `sonic`: runs two Community SONiC switches
- `dell_sonic`: runs two Enterprise SONiC switches with a [locally built vrnetlab image](https://github.com/srl-labs/vrnetlab/tree/master/dell/dell_sonic)
- `capms`: runs the `dell_sonic` flavor but with four instead of two machines (this is used for [cluster-provider-metal-stack](https://github.com/metal-stack/cluster-api-provider-metal-stack) in order to have dedicated hosts for control plane / worker / firewall)
- `kamaji`: runs the `sonic` flavor. The working example is available at the [cluster-provider-metal-stack](https://github.com/metal-stack/cluster-api-provider-metal-stack)'s `capi-lab`.
- `gardener`: runs the `sonic` flavor and installs the [Gardener](https://gardener.cloud) in the mini-lab

In order to start specific flavor, you can define the flavor as follows:
Expand Down
1 change: 1 addition & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ services:
- DOCKER_HUB_USER=${DOCKER_HUB_USER}
- DOCKER_HUB_TOKEN=${DOCKER_HUB_TOKEN}
- GARDENER_ENABLED=${GARDENER_ENABLED:-}
- KAMAJI_ENABLED=${KAMAJI_ENABLED:-}
- MONITORING_ENABLED=${MONITORING_ENABLED:-}
network_mode: host
working_dir: /mini-lab
Expand Down
4 changes: 4 additions & 0 deletions deploy_control_plane.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,7 @@
- name: deploy gardener
import_playbook: deploy_gardener.yaml
when: gardener_enabled

- name: deploy kamaji
import_playbook: deploy_kamaji.yaml
when: kamaji_enabled
13 changes: 13 additions & 0 deletions deploy_kamaji.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
- name: deploy kamaji
hosts: control-plane
connection: local
gather_facts: false

roles:
- name: ansible-common
tags: always
- name: kamaji
tags: kamaji
# vars:
# metal_control_plane_host_provider: metal
751 changes: 751 additions & 0 deletions docs/overview-kamaji.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions inventories/group_vars/control-plane/kamaji.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
kamaji_enabled: "{{ lookup('env', 'KAMAJI_ENABLED') | default('', false) }}"
31 changes: 31 additions & 0 deletions roles/kamaji/tasks/main.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
- name: Add jetstack repo
kubernetes.core.helm_repository:
name: jetstack
repo_url: https://charts.jetstack.io

- name: Add clastix repo
kubernetes.core.helm_repository:
name: clastix
repo_url: https://clastix.github.io/charts

- name: Deploy cert manager
kubernetes.core.helm:
chart_ref: jetstack/cert-manager
name: kamaji-cert-manager
release_namespace: kamaji-cert-manager
create_namespace: true
wait: true
set_values:
- value: installCRDs=true

- name: Deploy kamaji
kubernetes.core.helm:
chart_ref: clastix/kamaji
chart_version: 0.0.0+latest
name: kamaji
release_namespace: kamaji-system
create_namespace: true
wait: true
set_values:
- value: image.tag=latest
Loading