Git Product home page Git Product logo

helm-compose's Introduction

helm-compose-banner

Build Status Go Report Card Reliability Rating Vulnerabilities GitHub release (latest SemVer)

Helm Compose is a tool for managing multiple releases of one or many different Helm charts. It is heavily inspired by Docker Compose and is an extension of the package manager idea behind Helm itself. It allows for full configuration-as-code capabilities in an single yaml file.

Installation

It is requirement to use helm v3.10.0+.

Install a specific version of helm compose (recommended). Click here for the latest version.

helm plugin install https://github.com/seacrew/helm-compose --version 1.3.0

Install the latest version.

helm plugin install https://github.com/seacrew/helm-compose

Quick Start Guide

Helm Compose makes it easy to define a list of Releases and all necessary Repositories for the charts you use in a single compose file.

Install your releases:

$ helm compose up -f helm-compose.yaml

Uninstall your releases

$ helm compose down -f helm-compose.yaml

A Helm Compose file looks something like this:

apiVersion: 1.1

storage:
  name: mycompose
  type: local # default
  path: .hcstate # default

releases:
  wordpress:
    chart: bitnami/wordpress
    chartVersion: 14.3.2
  wordpress2:
    chart: bitnami/wordpress
    chartVersion: 15.2.22
    namespace: homepage
    createNamespace: true
  postgres:
    chart: bitnami/postgresql
    chartVersion: 12.1.9
    namespace: database
    createNamespace: true

repositories:
  bitnami: https://charts.bitnami.com/bitnami

Check out the examples directory.

Documentation

Checkout the complete documentation.

helm-compose's People

Contributors

dberuben avatar dependabot[bot] avatar github-actions[bot] avatar nileger avatar tuunit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

dberuben

helm-compose's Issues

Asset store

Workaround to store images without adding them to the actual git repository.

Logos SVG:
helm-compose
helm-compose-bw
helm-compose-wb

Banner SVG:
(Font: Ubuntu Mono)
helm-compose-banner
helm-compose-banner-bw
helm-compose-banner-wb

Banner PNG:
helm-compose-banner
helm-compose-banner-bw
helm-compose-banner-wb

feat: Revision Update

Hi,

The revision is updated even when there are no updates in the helm compose file.
It's possible to have revision updated only when there is some things new in the config?

(☸|lspay-trial-eu-west-1:default)➜  helm-compose helm compose up
helloworld5 |		Release "helloworld5" has been upgraded. Happy Helming!
helloworld5 |		NAME: helloworld5
helloworld5 |		LAST DEPLOYED: Thu Aug 31 15:51:04 2023
helloworld5 |		NAMESPACE: default
helloworld5 |		STATUS: deployed
helloworld5 |		REVISION: 7
helloworld5 |		TEST SUITE: None
helloworld4 |		Release "helloworld4" has been upgraded. Happy Helming!
helloworld4 |		NAME: helloworld4
helloworld4 |		LAST DEPLOYED: Thu Aug 31 15:51:04 2023
helloworld4 |		NAMESPACE: default
helloworld4 |		STATUS: deployed
helloworld4 |		REVISION: 7
helloworld4 |		TEST SUITE: None
helloworld7 |		Release "helloworld7" has been upgraded. Happy Helming!
helloworld7 |		NAME: helloworld7
helloworld7 |		LAST DEPLOYED: Thu Aug 31 15:51:04 2023
helloworld7 |		NAMESPACE: default
helloworld7 |		STATUS: deployed
helloworld7 |		REVISION: 7
helloworld7 |		TEST SUITE: None
helloworld6 |		Release "helloworld6" has been upgraded. Happy Helming!
helloworld6 |		NAME: helloworld6
helloworld6 |		LAST DEPLOYED: Thu Aug 31 15:51:04 2023
helloworld6 |		NAMESPACE: default
helloworld6 |		STATUS: deployed
helloworld6 |		REVISION: 7
helloworld6 |		TEST SUITE: None
helloworld3 |		Release "helloworld3" has been upgraded. Happy Helming!
helloworld3 |		NAME: helloworld3
helloworld3 |		LAST DEPLOYED: Thu Aug 31 15:51:04 2023
helloworld3 |		NAMESPACE: default
helloworld3 |		STATUS: deployed
helloworld3 |		REVISION: 7
helloworld3 |		TEST SUITE: None
helloworld1 |		Release "helloworld1" has been upgraded. Happy Helming!
helloworld1 |		NAME: helloworld1
helloworld1 |		LAST DEPLOYED: Thu Aug 31 15:51:04 2023
helloworld1 |		NAMESPACE: default
helloworld1 |		STATUS: deployed
helloworld1 |		REVISION: 7
helloworld1 |		TEST SUITE: None
helloworld2 |		Release "helloworld2" has been upgraded. Happy Helming!
helloworld2 |		NAME: helloworld2
helloworld2 |		LAST DEPLOYED: Thu Aug 31 15:51:04 2023
helloworld2 |		NAMESPACE: default
helloworld2 |		STATUS: deployed
helloworld2 |		REVISION: 7
helloworld2 |		TEST SUITE: None
(☸|lspay-trial-eu-west-1:default)➜  helm-compose helm ls
NAME       	NAMESPACE	REVISION	UPDATED                              	STATUS  	CHART            	APP VERSION
helloworld1	default  	7       	2023-08-31 15:51:04.050979 +0200 CEST	deployed	hello-world-0.6.0
helloworld2	default  	7       	2023-08-31 15:51:04.103239 +0200 CEST	deployed	hello-world-0.6.0
helloworld3	default  	7       	2023-08-31 15:51:04.141622 +0200 CEST	deployed	hello-world-0.6.0
helloworld4	default  	7       	2023-08-31 15:51:04.06492 +0200 CEST 	deployed	hello-world-0.6.0
helloworld5	default  	7       	2023-08-31 15:51:04.01752 +0200 CEST 	deployed	hello-world-0.6.0
helloworld6	default  	7       	2023-08-31 15:51:04.101631 +0200 CEST	deployed	hello-world-0.6.0
helloworld7	default  	7       	2023-08-31 15:51:04.143614 +0200 CEST	deployed	hello-world-0.6.0
(☸|lspay-trial-eu-west-1:default)➜  helm-compose helm compose list
| Date             | Revision |
| ---------------- | -------- |
| 2023-08-31 15:29 |        4 |
| 2023-08-31 15:30 |        5 |
| 2023-08-31 15:36 |        6 |
| 2023-08-31 15:45 |        7 |
| 2023-08-31 15:47 |        8 |
| 2023-08-31 15:48 |        9 |
| 2023-08-31 15:48 |       10 |
| 2023-08-31 15:49 |       11 |
| 2023-08-31 15:49 |       12 |
| 2023-08-31 15:51 |       13 |
apiVersion: 1.0

storage:
  name: mycompose
  type: local # default
  path: .hcstate # default

releases:
  helloworld1:
    chart: sikalabs/hello-world 
    values:
      replicas: 2
  helloworld2:
    chart: sikalabs/hello-world 
    values:
      replicas: 2
  helloworld3:
    chart: sikalabs/hello-world 
    values:
      TEXT:
        COUCOUL3: DANIELTEST
      replicas: 1
  helloworld4:
    chart: sikalabs/hello-world 
    values:
      replicas: 2
  helloworld5:
    chart: sikalabs/hello-world 
    values:
      TEXT:
        COUCOUL5: DANIELTEST
      replicas: 2
  helloworld6:
    chart: sikalabs/hello-world 
    values:
      replicas: 2
  helloworld7:
    chart: sikalabs/hello-world 
    values:
      replicas: 2
repositories:
  sikalabs: https://helm.sikalabs.io

Install Helm chart stored locally

I am not sure if I have missed it in the documentation, but is it possible to install Helm charts from a local folder instead of a repo?

Simple test doesn't work

Hi,

I'm doing this simple override but nothing happen, Am I wrong somewhere?

apiVersion: 1.0

storage:
  name: mycompose
  type: local # default
  path: .hcstate # default

releases:
  wordpress:
    chart: bitnami/wordpress
    chartVersion: 14.3.2
    values:
      resources:
        limits:
          memory: 1G
          cpu: 1G
        requests:
          memory: 512Mi
          cpu: 300m
      replicaCount: 2
  wordpress2:
    chart: bitnami/wordpress
    chartVersion: 15.2.22
    namespace: default
    values:
      replicaCount: 3
  postgres:
    chart: bitnami/postgresql
    chartVersion: 12.1.9
    namespace: default

repositories:
  bitnami: https://charts.bitnami.com/bitnami

the output is

(☸|lspay-trial-eu-west-1:default)➜  helm-compose helm compose up
wordpress |		unknown flag: --set-json
wordpress2 |		unknown flag: --set-json
postgres |		Release "postgres" has been upgraded. Happy Helming!
postgres |		NAME: postgres
postgres |		LAST DEPLOYED: Thu Aug 31 10:53:05 2023
postgres |		NAMESPACE: default
postgres |		STATUS: deployed
postgres |		REVISION: 5
postgres |		TEST SUITE: None
postgres |		NOTES:
postgres |		CHART NAME: postgresql
postgres |		CHART VERSION: 12.1.9
postgres |		APP VERSION: 15.1.0
...

feat: only upgrade helm on change

Did I miss something?

(☸|lspay-trial-eu-west-1:default)➜  helm-compose-test helm ls
NAME       	NAMESPACE	REVISION	UPDATED                              	STATUS  	CHART            	APP VERSION
helloworld1	default  	4       	2023-09-01 15:56:18.159761 +0200 CEST	deployed	hello-world-0.6.0
helloworld2	default  	4       	2023-09-01 15:56:18.115698 +0200 CEST	deployed	hello-world-0.6.0
(☸|lspay-trial-eu-west-1:default)➜  helm-compose-test helm plugin list
NAME   	VERSION	DESCRIPTION
compose	1.2.0
apiVersion: 1.1

storage:
  name: mycompose
  type: local # default
  path: .hcstate # default

releases:
  helloworld1:
    chart: sikalabs/hello-world 
    values:
      replicas: 2
  helloworld2:
    chart: sikalabs/hello-world 
    values:
      replicas: 2
repositories:
  sikalabs: https://helm.sikalabs.io

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.