README

Helm Mixin for Porter

Build Status

This is a Helm mixin for Porter. It executes the appropriate helm command based on which action it is included within: install, upgrade, or delete.

Install or Upgrade
porter mixin install helm
Mixin Configuration

Helm client

- helm:
    clientVersion: v2.15.2

Repositories

- helm:
    repositories:
      stable:
        url: "https://charts.helm.sh/stable
Mixin Syntax

Install

install:
- helm:
    description: "Description of the command"
    name: RELEASE_NAME
    chart: STABLE_CHART_NAME
    version: CHART_VERSION
    namespace: NAMESPACE
    replace: BOOL
    devel: BOOL
    wait: BOOL # default true
    set:
      VAR1: VALUE1
      VAR2: VALUE2

Upgrade

install:
- helm:
    description: "Description of the command"
    name: RELEASE_NAME
    chart: STABLE_CHART_NAME
    version: CHART_VERSION
    namespace: NAMESPACE
    resetValues: BOOL
    reuseValues: BOOL
    wait: BOOL # default true
    set:
      VAR1: VALUE1
      VAR2: VALUE2

Uninstall

uninstall:
- helm:
    description: "Description of command"
    purge: BOOL
    releases:
      - RELEASE_NAME1
      - RELASE_NAME2
Outputs

The mixin supports saving secrets from Kuberentes as outputs.

outputs:
    - name: NAME
      secret: SECRET_NAME
      key: SECRET_KEY

The mixin also supports extracting resource metadata from Kubernetes as outputs.

outputs:
    - name: NAME
      resourceType: RESOURCE_TYPE
      resourceName: RESOURCE_TYPE_NAME
      namespace: NAMESPACE
      jsonPath: JSON_PATH_DEFINITION
Examples

Install

install:
- helm:
    description: "Install MySQL"
    name: mydb
    chart: stable/mysql
    version: 0.10.2
    namespace: mydb
    replace: true
    set:
      mysqlDatabase: wordpress
      mysqlUser: wordpress
    outputs:
      - name: mysql-root-password
        secret: mydb-mysql
        key: mysql-root-password
      - name: mysql-password
        secret: mydb-mysql
        key: mysql-password
      - name: mysql-cluster-ip
        resourceType: service
        resourceName: porter-ci-mysql-service
        namespace: "default"
        jsonPath: "{.spec.clusterIP}"

Upgrade

upgrade:
- helm:
    description: "Upgrade MySQL"
    name: porter-ci-mysql
    chart: stable/mysql
    version: 0.10.2
    wait: true
    resetValues: true
    reuseValues: false
    set:
      mysqlDatabase: mydb
      mysqlUser: myuser
      livenessProbe.initialDelaySeconds: 30
      persistence.enabled: true

Uninstall

uninstall:
- helm:
    description: "Uninstall MySQL"
    purge: true
    releases:
      - mydb
Expand ▾ Collapse ▴

Directories

Path Synopsis
cmd
pkg