Code Monkey home page Code Monkey logo

helm-operator's Introduction

Docker Artifact Hub

Helm Operator

Helm operator is a helm based operator using the Operator SDK.

The operator takes CRDs crds and charts from helm-charts and when a user creates a Custom Resource defined by the CRDs the operator deployes the corresponding helm chart.

Installation

Make your code changes and create a PR.

Testing

Using a test cluster

If adding new CRDs or charts in helm-charts make sure to build the new docker image and push it to your docker registry.

docker-compose build
docker push bgrigorov/helm-operator:test

Setup your KUBECONFIG env var and install the helm-operator helm chart

helm upgrade -i helm-operator charts/ -f charts/values.test.yaml

Local

  1. If you wish to run operator locally, install the crds manually
kubectl apply -f charts/templates/crds/
  1. Set your KUBECONFIG env variable

  2. Then you can run the operator with either docker-compose up -d or make run.

Testing the managed helm charts

Install the helm-chart managed by the operator

helm upgrade -i pgexp helm-charts/myexporter/ -f helm-charts/myexporter/values.test.yaml

Navigate to localhost:8080/metrics to see the exposed metrics. You can also connect to the mock DB that is running inside a sidecar container in the exporter pod and run some queries.

Creating Custom Resources

kubectl apply -f samples/myexporter.yaml
kubectl get pgx

Adding new CRDs

  1. Define and add your CRD in crds.
  2. Add resources to role.
  3. Add the corresponding helm chart in helm-charts. Make sure the names match.
  4. Add a sample in samples.
  5. Add watcher to watches.yaml.

Github Pages Website

helm lint chart/
helm package chart/
helm repo index --url https://bsgrigorov.github.io/helm-operator/ .

Add the package and index.yaml to branch gh-pages, commit and push.

TODO

Add github workflow files for pushing docker images and helm charts

helm-operator's People

Contributors

bsgrigorov avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.