Skip to content

Glasskube Kubernetes Operator - Fully automated deployments for open source tools

License

Notifications You must be signed in to change notification settings

thekubernaut/operator

 
 

Repository files navigation

GitHub Repo stars Docker Pulls


Glasskube Logo

Kubernetes Operator

Open Source Tools on autopilot

Explore our website »

GitHub . Docker Hub . LinkedIn


Screencast

Glasskube-Matomo-screencast.mp4

Getting started

To deploy the operator and related RBAC resources, you can use the resources in deploy/. The easiest method of installation is the deploy.sh script. It will automatically install dependencies, CRDs and the Glasskube operator into your current kubectl context. You can choose to let the operator manage custom resources in the entire cluster or just a single namespace.

Dependencies

The deploy.sh script will automatically install following dependencies:

Note Installing CRDs still requires cluster-wide permissions. Currently it is not possible to exclude certain dependencies.

All configuration parameters can be printed with the -h command.

$ ./deploy/deploy.sh  -h

Usage: deploy.sh [options]

Options:
  -v  VERSION
       Check https://hub.docker.com/r/glasskube/operator/tags for available versions.
       If no version is provided, only dependencies are installed.
  -n  NAMESPACE
       Specifies the namespace where all operators will be installed. If NAMESPACE is
       missing or empty, a cluster-wide installation will be performed.
  -g  HOST_NAME
       Specifies the host name that should be used for the Grafana ingress. If no host
       name is provided, the Grafana ingress will not be enabled.
  -p  AMOUNT
       Specifies the size of the prometheus storage claim(e.g. "10Gi"). If no value is
       set, prometheus persistence will not be enabled.
  -i  INGRESS_CLASS
       Specifies the ingress class name to be used
  -c  CLUSTER_ISSUER
       Specifies the cluster issuer to be used
  -d  CLUSTER_DNS_NAME
       Specifies the cluster name to resolve dns queries
  -h
       Show this help.

Run the script for example like this:

deploy/deploy.sh -v $VERSION -g grafana.minikube -p 10Gi -i nginx

You can find the latest $VERSION on GitHub or Docker Hub.

Custom Resources

The operator currently supports following custom resources:

HttpEcho Kubernetes Operator

HttpEcho.yaml

apiVersion: "glasskube.eu/v1alpha1"
kind: HttpEcho
metadata:
  name: echo
  namespace: default
spec:
  text: MTL Demo 🧊

http-echo is a simple go web server that returns preconfigured text. The Glasskube operator will create a deployment, service and ingress based on the applied custom resource. The Webserver is reachable via http://echo.minikube.

Matomo Kubernetes Operator

Matomo logo

Matomo.yaml

apiVersion: "glasskube.eu/v1alpha1"
kind: Matomo
metadata:
  name: matomo
  namespace: matomo
spec:
  host: matomo.minikube

Matomo is an Open-Source Web Analytics Tool written in PHP and stores data in MySQL database. The Glasskube Operator will automatically perform Upgrades and manages the database. Make sure you also have the mariadb-operator installed. After applying the custom resource Matomo will be reachable via an ingress at the configured host.

Odoo Kubernetes Operator

Odoo logo

Odoo.yaml

apiVersion: "glasskube.eu/v1alpha1"
kind: Odoo
metadata:
  name: odoo
  namespace: odoo
spec:
  host: odoo.minikube

Odoo is an Open-Source suite of web based business apps written in Python and stores data in a PostgreSQL database. The Glasskube Operator will automatically perform Upgrades and manages the database. Make sure you also have the cnpg-operator installed. After applying the custom resource Odoo will be reachable via an ingress at the configured host. Daily database backups are stored in an integrated S3 compatible MinIO bucket inside the glasskube-system namespace.

Related projects

How to Contribute

See the contributing guide for detailed instructions.

Also join our architecture discussion on GitHub.

Supported by

About

Glasskube Kubernetes Operator - Fully automated deployments for open source tools

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 97.2%
  • Shell 1.8%
  • Other 1.0%