Skip to content

alauda/captain

Repository files navigation

Captain

License Go Report Card Tag Docker Image CI Go

Captain is a Helm 3 Controller

About Helm3

This project is based on the core helm v3 code, acting as a library. Some modifications were made to help implement this controller on a fork: alauda/helm .

Features

  • HelmRequest/ChartRepo/Release CRD, namespace based
  • Git/Svn as ChartRepo
  • Local ChartRepo based on ChartMuseum
  • Multi cluster support based on cluster-registry
  • Dependency check for HelmRequest (between HelmRequests)
  • valuesFrom support: support to ConfigMap or Secret value store
  • kubectl apply like resource manipulation: no more resource conflict and CRD management issues
  • OCI chart support
  • HTTP downloadable chart support

Quick Start

Check the Installation Guide to learn how to install captain

Then, create a HelmRequest resource

kind: HelmRequest
apiVersion: app.alauda.io/v1
metadata:
  name: nginx-ingress
spec:
  chart: stable/nginx-ingress

After a few seconds, you have an nginx-ingress chart running

root@VM-16-12-ubuntu:~/demo# kubectl get pods
NAME                                             READY   STATUS    RESTARTS   AGE
nginx-ingress-controller-57987f445c-9rhv5        1/1     Running   0          16s
nginx-ingress-default-backend-7679dbd5c9-wkkss   1/1     Running   0          16s
root@VM-16-12-ubuntu:~/demo# kubectl get hr
NAME            CHART                  VERSION   NAMESPACE   ALLCLUSTER   PHASE    AGE
nginx-ingress   stable/nginx-ingress             default                  Synced   23s

For the detailed explain and advanced usage, please check the documentation below

Documention

SDK

  • Golang: also contains the CRD definition

Future Plans

  • Java SDK
  • Auto update of HelmRequest
  • Always update to the latest version of chart

Captain Releated Projects

Related Projects

  • flux: flux have a similar controller based on Helm2