Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/MChorfa/porter-helm3
porter-helm3
https://github.com/MChorfa/porter-helm3
Last synced: 4 months ago
JSON representation
porter-helm3
- Host: GitHub
- URL: https://github.com/MChorfa/porter-helm3
- Owner: MChorfa
- License: apache-2.0
- Created: 2020-02-27T22:26:38.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-03-28T14:39:25.000Z (over 1 year ago)
- Last Synced: 2024-06-19T01:59:15.316Z (5 months ago)
- Language: Go
- Size: 337 KB
- Stars: 8
- Watchers: 3
- Forks: 11
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-cnab - helm3-mixin - Helm 3 Mixin for Porter by @MChorfa (Implementations / Porter)
README
# Helm3 Mixin for Porter
This is a Helm3 mixin for [Porter](https://github.com/getporter/porter). It executes the
appropriate helm command based on which action it is included within: `install`,
`upgrade`, or `delete`.### Install or Upgrade
Currently we only support the installation via `--feed-url`. Please make sure to install the mixin as follow:
```shell
porter mixin install helm3 --version v1.0.1 --feed-url https://mchorfa.github.io/porter-helm3/atom.xml
```### Mixin Configuration
Helm client version configuration. You can define others minors and patch versions up and down
```yaml
- helm3:
clientVersion: v3.8.2
```Repositories
```yaml
- helm3:
repositories:
stable:
url: "https://charts.helm.sh/stable"
```### Mixin Syntax
Install
```yaml
install:
- helm3:
description: "Description of the command"
name: RELEASE_NAME
chart: STABLE_CHART_NAME
version: CHART_VERSION
namespace: NAMESPACE
devel: BOOL
wait: BOOL # default true
noHooks: BOOL # disable pre/post upgrade hooks (default false)
skipCrds: BOOL # if set, no CRDs will be installed (default false)
timeout: DURATION # time to wait for any individual Kubernetes operation
atomic: BOOL # if set to false, the install process will not roll back changes made in case the install fails (default true)
debug: BOOL # enable verbose output (default false)
set:
VAR1: VALUE1
VAR2: VALUE2
values: # Array of paths to: Set/Override multiple values and multi-lines values
- PATH_TO_THE_VALUES_FILE_1
- PATH_TO_THE_VALUES_FILE_2
- PATH_TO_THE_VALUES_FILE_3
```Upgrade
```yaml
upgrade:
- helm3:
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
noHooks: BOOL # disable pre/post upgrade hooks (default false)
skipCrds: BOOL # if set, no CRDs will be installed (default false)
timeout: DURATION # time to wait for any individual Kubernetes operation
atomic: BOOL # if set to false, the upgrade process will not roll back changes made in case the upgrade fails (default true)
debug: BOOL # enable verbose output (default false)
set:
VAR1: VALUE1
VAR2: VALUE2
values: # Array of paths to: Set/Override multiple values and multi-line values
- PATH_TO_THE_VALUES_FILE_1
- PATH_TO_THE_VALUES_FILE_2
- PATH_TO_THE_VALUES_FILE_3
```Uninstall
```yaml
uninstall:
- helm3:
description: "Description of command"
namespace: NAMESPACE
releases:
- RELEASE_NAME1
- RELEASE_NAME2
wait: BOOL # default false, if set It will wait for as long as --timeout
noHooks: BOOL # prevent hooks from running during uninstallation
timeout: DURATION # time to wait for any individual Kubernetes operation
debug: BOOL # enable verbose output (default false)
```#### Outputs
The mixin supports saving secrets from Kubernetes as outputs.
```yaml
outputs:
- name: NAME
secret: SECRET_NAME
key: SECRET_KEY
```The mixin also supports extracting resource metadata from Kubernetes as outputs.
```yaml
outputs:
- name: NAME
resourceType: RESOURCE_TYPE
resourceName: RESOURCE_TYPE_NAME
namespace: NAMESPACE
jsonPath: JSON_PATH_DEFINITION
```### Examples
Install
```yaml
install:
- helm3:
description: "Install MySQL"
name: mydb
chart: stable/mysql
version: 0.10.2
namespace: mydb
skipCrds: true
set:
mysqlDatabase: wordpress
mysqlUser: wordpress
values:
- "./manifests/values_1.yaml"
- "./manifests/values_2.yaml"
- "./manifests/values_3.yaml"
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
```yaml
upgrade:
- helm3:
description: "Upgrade MySQL"
name: porter-ci-mysql
chart: stable/mysql
version: 0.10.2
wait: true
resetValues: true
reuseValues: false
noHooks: true
set:
mysqlDatabase: mydb
mysqlUser: myuser
livenessProbe.initialDelaySeconds: 30
persistence.enabled: true
values:
- "./manifests/values_1.yaml"
- "./manifests/values_2.yaml"
- "./manifests/values_3.yaml"
```Uninstall
```yaml
uninstall:
- helm3:
description: "Uninstall MySQL"
namespace: mydb
releases:
- mydb
wait: true
noHooks: true
```Execute
```yaml
login:
- helm3:
description: "Login to OCI registry"
arguments:
- registry
- login
- localhost:5000
- "--insecure"
flags:
u: myuser
p: mypass
```