Skip to content

🔰 Quick Start

  1. 📥 Install helmwave
  2. Create helmwave.yml

    Suppose the helmwave.yml representing the desired state of your helm releases looks like:

    helmwave.yml
    project: QuickStart
    version: "0.39.1"
    
    # OCI: modern way to get chart from registry
    registries:
      - host: registry-1.docker.io
    
    .options: &options
      namespace: my-namespace
      create_namespace: true
      wait: true
      timeout: 1m
      max_history: 3 # best practice
      chart:
        # For example, we will use bitnami/nats chart, because it's small and fast
        name: oci://registry-1.docker.io/bitnamicharts/nats
        version: 7.8.3 # best practice
    
    # We will install 2 releases with the same options
    releases:
      - name: a
        <<: *options
    
      - name: b
        <<: *options
    
  3. Build plan

    helmwave build
    

    This step generates plan

  4. Deploy plan

    helmwave up
    

    Output will be like that:

    [🙃 aka INFO]:     release: a@my-namespace
    [🙃 aka INFO]:     release: b@my-namespace
    [🙃 aka INFO]: Success 2 / 2
    
  5. Check ✔️

    $ :simple-helm: helm list -n my-namespace
    NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
    a       my-namespace    1               2023-06-13 16:25:42.446056 +0400 +04    deployed        nats-7.8.3      2.9.17     
    b       my-namespace    1               2023-06-13 16:25:42.444662 +0400 +04    deployed        nats-7.8.3      2.9.17
    
    $ k get po -n my-namespace                                                                                                                         
    NAME       READY   STATUS    RESTARTS   AGE
    a-nats-0   1/1     Running   0          37s
    b-nats-0   1/1     Running   0          36s
    
  6. Congratulations! 🥳