This is our repository for MicroK8s addons we like to use. Obviously we would like to transfer them to the official MicroK8s Community Repository when they are in a proper state, including tests and documentation. Please regard this repository as development only, all mature software is going to be moved to the community repository.
This repository contains 4 addons:
- istio, a copy of the existing plugin with an updated version
- redis, a simple redis addon based on bitnamis helm chart, needed for dapr
- dapr, a platform agnostic event driven application runtime for microservices
- kubevela, an application centric sofftware delivery platform based on the OAM standard
- keycloak, a service for user federation, strong authentication, user management, fine-grained authorizatio
- kubeview, a Kubernetes cluster visualiser and visual explorer
- postgresql, an open source object-relational database known for reliability and data integrity
To use the addons provided by this repository please add it to your current microk8s setup:
microk8s addons repo add mayflower https://github.com/mayflower/microk8s-addons/
This addon installs KeyCloak
Add authentication to applications and secure services with minimum effort. No need to deal with storing users or authenticating users. Keycloak provides user federation, strong authentication, user management, fine-grained authorization, and more.
This addon provides a simple way to provide KeyClak within your microk8s setup.
You can enable Redis support with:
microk8s enable mayflower/keycloak
Please note that this addon is based on the bitnami helm chart and supports a number of additional parameters that can be found here:
microk8s enable mayflower/keycloak --set --set auth.adminPassword=secretpassword
This addon installs Redis:
The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.
This addon is meant as a support for the dapr addon, that relies on redis as state and configuration storage as well as message broker. However, it can be used on its own whenevery you need redis within your microk8s setup. You can enable Redis support with:
microk8s enable mayflower/redis
Please note that this addon is based on the bitnami helm chart and supports a number of additional parameters that can be found here:
microk8s enable mayflower/redis --set auth.password=secretpassword
This addon installs PostgreSQL:
PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
This addon provides a simple way to provide a PostgreSQL database within your microk8s setup.
You can enable postgresql support with:
microk8s enable postgresql
Please note that this addon is based on the bitnami helm chart and supports a number of additional parameters that can be found here:
microk8s enable mayflower/postgresql --set auth.postgresPassword=secretpassword
This addon installs KubeView:
KubeView displays what is happening inside a Kubernetes cluster (or single namespace), it maps out the API objects and how they are interconnected. Data is fetched real-time from the Kubernetes API. The status of some objects (Pods, ReplicaSets, Deployments) is colour coded red/green to represent their status and health
This addon provides a nice overview what is going on in your microk8s.
You can enable postgresql support with:
microk8s enable kubeview
Please note that this addon is based on the official helm chart and supports a number of additional parameters that can be found here:
microk8s enable mayflower/kubeview --set ingress.enabled=true
This addon installs Istio:
Istio extends Kubernetes to establish a programmable, application-aware network using the powerful Envoy service proxy. Working with both Kubernetes and traditional workloads, Istio brings standard, universal traffic management, telemetry, and security to complex deployments.
You can enable Istio support with:
microk8s enable mayflower/istio
This addon uses the command line client istioctl to install Istio. It is provided as a plugin within microk8s and can be used for administration tasks:
microk8s istioctl verify-install
This addon installs https://dapr.io/:
The Distributed Application Runtime (Dapr) provides APIs that simplify microservice connectivity. Whether your communication pattern is service to service invocation or pub/sub messaging, Dapr helps you write resilient and secured microservices. By letting Dapr’s sidecar take care of the complex challenges such as service discovery, message broker integration, encryption, observability, and secret management, you can focus on business logic and keep your code simple.
It provides a simple dapr setup including state management, publish and subscribe messaging and configuration management based on the redis addon.
You can enable Dapr support with:
microk8s enable dapr
This addon installs the dapr command line client as a MicroK8s plugin.
microk8s dapr version
This addon installs KubeVela:
KubeVela is a modern software delivery platform that makes deploying and operating applications across today's hybrid, multi-cloud environments easier, faster and more reliable. KubeVela is infrastructure agnostic, programmable, yet most importantly, application-centric. It allows you to build powerful software, and deliver them anywhere!
It provides KubeVela with VelaUX (the web ui for KubeVela).
You can enable KubeVela support with:
microk8s enable kubevela
This addon install the vela command line client as a microk8s plugin.
microk8s vela version
3rd party addons repositories are supported on MicroK8s v1.24 and onwards. To add a repository on an already installed MicroK8s you have to use the microk8s addons repo
command and provide a user friendly repo name, the path to the repository and optionally a branch within the repository. For this repository:
microk8s addons repo add mayflower https://github.com/mayflower/microk8s-addons/ --reference main
The addons of all repositories are shown in microk8s status
along with the repo they came from. microk8s enable
and microk8s disable
are used to enable and disable the addons respectively. The repo name can be used to disambiguate between addons with the same name. For example:
microk8s enable mayflower/redis
Adding a repository to MicroK8s (via mcirok8s addons repo add
) creates a copy of the repository under $SNAP_COMMON/addons
(typically under /var/snap/microk8s/common/addons/
). Authorized users are able to edit the addons to match their need. In case the upstream repository changes and you need to pull in any updates with:
microk8s addons repo update mayflower
Removing repositories is done with:
microk8s addons repo remove mayflower
An addons repository has the following structure:
addons.yaml Authoritative list of addons included in this repository. See format below.
addons/
<addon1>/
enable Executable script that runs when enabling the addon
disable Executable script that runs when disabling the addon
<addon2>/
enable
disable
...
At the root of the addons repository the addons.yaml
file lists all the addons included. This file is of the following format:
microk8s-addons:
# A short description for the addons in this repository.
description: Core addons of the MicroK8s project
# Revision number. Increment when there are important changes.
revision: 1
# List of addons.
addons:
- name: addon1
description: My awesome addon
# Addon version.
version: "1.0.0"
# Test to check that addon has been enabled. This may be:
# - A path to a file. For example, "${SNAP_DATA}/var/lock/myaddon.enabled"
# - A Kubernetes resource, in the form `resourceType/resourceName`, just
# as it would appear in the output of the `kubectl get all -A` command.
# For example, "deployment.apps/registry".
#
# The addon is assumed to be enabled when the specified file or Kubernetes
# resource exists.
check_status: "deployment.apps/addon1"
# List of architectures supported by this addon.
# MicroK8s supports "amd64", "arm64" and "s390x".
supported_architectures:
- amd64
- arm64
- s390x
- name: addon2
description: My second awesome addon, supported for amd64 only
version: "1.0.0"
check_status: "pod/addon2"
supported_architectures:
- amd64
See HACKING.md
for instructions on how to develop custom MicroK8s addons.