Skip to content

alauda/captain

Folders and files

NameName
Last commit message
Last commit date
Nov 11, 2022
May 9, 2022
Sep 21, 2020
May 9, 2022
May 9, 2022
May 9, 2022
Oct 12, 2022
Oct 27, 2020
May 9, 2022
Sep 30, 2021
Mar 24, 2020
May 9, 2022
May 9, 2022
May 9, 2022
May 9, 2022
Oct 22, 2020
Jul 26, 2019
Oct 27, 2020
Dec 22, 2019
May 9, 2022
Mar 13, 2023
Mar 13, 2023
Apr 17, 2020
May 9, 2022
Jun 23, 2020
Jul 26, 2019
Dec 22, 2019

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