Christmas Hack Day Project: Build an Kubernetes Operator to deploy Camunda Cloud services

Overview

Camunda Cloud Operator

Christmas Hack Day Project (2021): Build an Kubernetes Operator to deploy Camunda Cloud services

Motiviation / Idea

We currently have open-source helm charts in order to deploy Camunda Cloud services, https://github.com/camunda-community-hub/camunda-cloud-helm. But to support further use cases, like deploying and maintaining lot of Zeebe clusters and doing this in a "simple" way (via CRD's) we need an Kubernetes Operator.

Of course part of the motiviation is to get the hands dirty and build up more knowledge about kubernetes and kubernetes operators.

So the idea is to build an open-source Camunda Cloud operator, which can be used and extended by the community to deploy and run Camunda Cloud services, like Zeebe, Operate, Tasklist, Optimize etc. For each service we want to build/add an extra controller and CRD which is bundled in the operator.

Goals

Goals for the Christmas Hackdays 2021

The goals for the Christmas Hackdays are simple: get something "useful" running. Ideally at the end of the day we are able to deploy a Zeebe Cluster with a new CRD.

Possible CRD (example):

zeebe:
  cluster:
    size: 3
    replicationFactor: 3
    partition: 3
    envs:
      - key: value
      
    resources:
      memory: 
        limit:
        request:
      cpu:
        limit:
        request:  
  gateway:
    embedded: false  
    envs:
      - key: value
    resources: #optional
       memory: 
        limit:
        request:
      cpu:
        limit:
        request:

Future

In the future we extend the operator with different controllers/crd's for each service.

Resources

Useful resources to check out:

You might also like...
provide api for cloud service like aliyun, aws, google cloud, tencent cloud, huawei cloud and so on

cloud-fitter 云适配 Communicate with public and private clouds conveniently by a set of apis. 用一套接口,便捷地访问各类公有云和私有云 对接计划 内部筹备中,后续开放,有需求欢迎联系。 开发者社区 开发者社区文档

Cloud-gaming-operator - The one that manages VMs for cloud gaming built on GCE

cloud-gaming-operator GCE上に建てたクラウドゲーミング用のVMを管理するやつ 事前準備 GCEのインスタンスかマシンイメージを作成してお

A simple Kubernetes Operator template that uses Golang, use it to build your own operators
A simple Kubernetes Operator template that uses Golang, use it to build your own operators

A simple programmatic Kubernetes Operator template. Use this to create your own Kubernetes operators with golang. Build with KIND (Kubernetes in Docke

preflight helps you verify scripts and executables to mitigate chain of supply attacks such as the recent Codecov hack.
preflight helps you verify scripts and executables to mitigate chain of supply attacks such as the recent Codecov hack.

💣 Mitigate chain of supply attacks 👌 Verify your curl scripts and executables 🤔 What is it? preflight helps you verify scripts and executables to m

Kubernetes Operator for a Cloud-Native OpenVPN Deployment.

Meerkat is a Kubernetes Operator that facilitates the deployment of OpenVPN in a Kubernetes cluster. By leveraging Hashicorp Vault, Meerkat securely manages the underlying PKI.

Kubernetes operator to autoscale Google's Cloud Bigtable clusters
Kubernetes operator to autoscale Google's Cloud Bigtable clusters

Bigtable Autoscaler Operator Bigtable Autoscaler Operator is a Kubernetes Operator to autoscale the number of nodes of a Google Cloud Bigtable instanc

A Kubernetes Operator, that helps DevOps team accelerate their journey into the cloud and K8s.
A Kubernetes Operator, that helps DevOps team accelerate their journey into the cloud and K8s.

A Kubernetes Operator, that helps DevOps team accelerate their journey into the cloud and K8s. OAM operator scaffolds all of the code required to create resources across various cloud provides, which includes both K8s and Non-K8s resources

Deploy https certificates non-interactively to CDN services

certdeploy Deploy https certificates non-interactively to CDN services. Environment Variables CERT_PATH - Certificate file path, should contain certif

Test Operator using operator-sdk 1.15

test-operator Test Operator using operator-sdk 1.15 operator-sdk init --domain rbt.com --repo github.com/ravitri/test-operator Writing kustomize manif

Comments
  • Rename extension, update assets & documentation

    Rename extension, update assets & documentation

    Hi Zell,

    I hope today finds you well! This issue is being opened to ask if you would be open to renaming your extension on GitHub to reference Camunda Platform 8 rather than Camunda Cloud after its release on April 12th, 2022. (For example: camunda-platform-8-docker-compose) This change will also likely impact any screenshots you have in the README that reference Camunda Cloud or previous versions of Camunda Platform, and this will likely need to also be updated throughout the repo's documentation as a whole. You can also make use of Shields.io badges to indicate which version of Camunda your extension is compatible with.

    While it is not a requirement that you rename your extension to align with Camunda Platform 8, we would greatly appreciate it if you could make these changes, and merge them anytime after April 12th, 2022.

    if you have any questions or require any assistance, please do not hesitate to reach out to https://github.com/orgs/camunda-community-hub/teams/devrel! :)

    documentation 
    opened by celanthe 2
  • Update README with Camunda Community Hub badges

    Update README with Camunda Community Hub badges

    Hello!

    Could you please add the appropriate label for lifecycle stage to your README? You can find these badges and more information here in our documentation.

    Please let me know if I can help with this change, thank you!

    opened by xomiamoore 0
Owner
Camunda Community Hub
The Camunda Community Hub is a GitHub Organization for Camunda community contributed extensions.
Camunda Community Hub
The OCI Service Operator for Kubernetes (OSOK) makes it easy to connect and manage OCI services from a cloud native application running in a Kubernetes environment.

OCI Service Operator for Kubernetes Introduction The OCI Service Operator for Kubernetes (OSOK) makes it easy to create, manage, and connect to Oracle

Oracle 24 Sep 27, 2022
An operator which complements grafana-operator for custom features which are not feasible to be merged into core operator

Grafana Complementary Operator A grafana which complements grafana-operator for custom features which are not feasible to be merged into core operator

Snapp Cab Incubators 6 Aug 16, 2022
kube-champ 43 Oct 19, 2022
Natural-deploy - A natural and simple way to deploy workloads or anything on other machines.

Natural Deploy Its Go way of doing Ansibles: Motivation: Have you ever felt when using ansible or any declarative type of program that is used for dep

Akilan Selvacoumar 0 Jan 3, 2022
The Elastalert Operator is an implementation of a Kubernetes Operator, to easily integrate elastalert with gitops.

Elastalert Operator for Kubernetes The Elastalert Operator is an implementation of a Kubernetes Operator. Getting started Firstly, learn How to use el

null 20 Jun 28, 2022
Minecraft-operator - A Kubernetes operator for Minecraft Java Edition servers

Minecraft Operator A Kubernetes operator for dedicated servers of the video game

James Laverack 8 Dec 15, 2022
K8s-network-config-operator - Kubernetes network config operator to push network config to switches

Kubernetes Network operator Will add more to the readme later :D Operations The

Daniel Hertzberg 6 May 16, 2022
Pulumi-k8s-operator-example - OpenGitOps Compliant Pulumi Kubernetes Operator Example

Pulumi GitOps Example OpenGitOps Compliant Pulumi Kubernetes Operator Example Pr

Christian Hernandez 3 May 6, 2022
Kubernetes Operator Samples using Go, the Operator SDK and OLM

Kubernetes Operator Patterns and Best Practises This project contains Kubernetes operator samples that demonstrate best practices how to develop opera

International Business Machines 27 Nov 24, 2022
Build and deploy Go applications on Kubernetes

ko: Easy Go Containers ko is a simple, fast container image builder for Go applications. It's ideal for use cases where your image contains a single G

Google 5.5k Jan 5, 2023