All Projects → jkroepke → Helm Secrets

jkroepke / Helm Secrets

Licence: apache-2.0
Successor of zendesk/helm-secrets - A helm plugin that help manage secrets with Git workflow and store them anywhere

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Helm Secrets

Helm Secrets
DEPRECATED A helm plugin that help manage secrets with Git workflow and store them anywhere
Stars: ✭ 1,129 (+584.24%)
Mutual labels:  helm-charts, helm, encryption, secrets, decryption, pgp, secret-management, k8s, kubernetes-secrets
k8s-vault-webhook
A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers
Stars: ✭ 107 (-35.15%)
Mutual labels:  vault, helm, secret-management, secrets
vault-sidecar-injector
Kubernetes admission webhook for secure, seamless and dynamic handling of secrets in your applications
Stars: ✭ 55 (-66.67%)
Mutual labels:  vault, secrets, kubernetes-secrets, k8s
secrets-proxy
🔑 A secure proxy service for managing OneOps secrets.
Stars: ✭ 12 (-92.73%)
Mutual labels:  vault, secret-management, secrets
stackstorm-ha
K8s Helm Chart (βeta!) that codifies StackStorm (aka "IFTTT for Ops" https://stackstorm.com/) Highly Availability fleet as a simple to use reproducible infrastructure-as-code app
Stars: ✭ 74 (-55.15%)
Mutual labels:  helm, k8s, helm-charts
khelm
A Helm chart templating CLI, kpt function and kustomize plugin
Stars: ✭ 46 (-72.12%)
Mutual labels:  helm, k8s, helm-charts
charts
☸️ Helm Charts for YOURLS
Stars: ✭ 12 (-92.73%)
Mutual labels:  helm, k8s, helm-charts
Vault Secrets Operator
Create Kubernetes secrets from Vault for a secure GitOps based workflow.
Stars: ✭ 298 (+80.61%)
Mutual labels:  vault, secrets, kubernetes-secrets
envkey-ruby
EnvKey's official Ruby client library
Stars: ✭ 24 (-85.45%)
Mutual labels:  encryption, secret-management, secrets
Ingressmonitorcontroller
A Kubernetes controller to watch ingresses and create liveness alerts for your apps/microservices in UptimeRobot, StatusCake, Pingdom, etc. – [✩Star] if you're using it!
Stars: ✭ 306 (+85.45%)
Mutual labels:  helm-charts, helm, k8s
Helmsman
Helm Charts as Code
Stars: ✭ 854 (+417.58%)
Mutual labels:  helm-charts, helm, k8s
Awesome Helm
Collaborative list of awesome helm charts and resources. PRs are welcome!
Stars: ✭ 543 (+229.09%)
Mutual labels:  helm-charts, helm, k8s
Aws Ssm
Populates Kubernetes Secrets from AWS Parameter Store
Stars: ✭ 150 (-9.09%)
Mutual labels:  helm-charts, helm, kubernetes-secrets
charts
Public helm charts
Stars: ✭ 15 (-90.91%)
Mutual labels:  helm, k8s, helm-charts
K8s
Kubernetes Helm Charts for the ORY ecosystem.
Stars: ✭ 127 (-23.03%)
Mutual labels:  helm-charts, helm, k8s
helm-charts
Official Helm Chart Repository for InfluxData Applications
Stars: ✭ 133 (-19.39%)
Mutual labels:  helm, k8s, helm-charts
envkeygo
EnvKey's official Go client library
Stars: ✭ 36 (-78.18%)
Mutual labels:  encryption, secret-management, secrets
thycotic.secretserver
PowerShell module for automating with Thycotic Secret Server REST API
Stars: ✭ 41 (-75.15%)
Mutual labels:  vault, secret-management, secrets
secrets cli
CLI for storing and reading your secrets via vault
Stars: ✭ 24 (-85.45%)
Mutual labels:  vault, secret-management, secrets
Cryptr
Cryptr: a GUI for Hashicorp's Vault
Stars: ✭ 324 (+96.36%)
Mutual labels:  vault, secrets, secret-management

CI License Current Release GitHub all releases GitHub issues GitHub pull requests codecov

helm-secrets

This is a fork of futuresimple/helm-secrets or zendesk/helm-secrets?

Yes. This repository is a fork of zendesk/helm-secrets (base commit edffea3c94c9ed70891f838b3d881d3578f2599f).

This original helm-secrets project gets abandoned and officially deprecated. I used this projects on my customer projects, and I also want to learn how unit tests for a shell language works.

In meanwhile, this project is officially listed on the community projects side at the helm documentation.

Usage

Decrypt secrets via plugin command

Wraps the whole helm command. Slow on multiple value files.

helm secrets upgrade name . -f secrets.yaml

Decrypt secrets via protocol handler

Run decrypted command on specific value files.

helm upgrade name . -f secrets://secrets.yaml

See: USAGE.md for more information

Installation and Dependencies

SOPS

Just install the plugin using helm plugin install https://github.com/jkroepke/helm-secrets and sops will be installed if possible as part of it.

You can always install manually in MacOS as below:

brew install sops

For Linux RPM or DEB, sops is available here: Dist Packages

For Windows, you cloud install sops separate to mange secrets. This plugin doesn't support Windows yet. See: #7

Override version of sops

By override SOPS_VERSION, you could install a custom sops version of sops.

SOPS_VERSION=v3.6.0 SOPS_LINUX_SHA=610fca9687d1326ef2e1a66699a740f5dbd5ac8130190275959da737ec52f096 helm plugin install https://github.com/jkroepke/helm-secrets

Skip sops installation

It's possible to skip the automatic sops installation by defining SKIP_SOPS_INSTALL=true on the helm plugin install command, e.g:

SKIP_SOPS_INSTALL=true helm plugin install https://github.com/jkroepke/helm-secrets

Hashicorp Vault

If you use Vault with helm-secret, the vault CLI is needed.

You can always install it manually in MacOS as below:

brew install vault

Download: https://www.vaultproject.io/downloads

SOPS git diff

Git config part is installed with the plugin, but to be fully functional the following needs to be added to the .gitattributes file in the root directory of a charts repo:

secrets.yaml diff=sopsdiffer
secrets.*.yaml diff=sopsdiffer

More info on sops page

By default, helm plugin install does this for you.

Using Helm plugin manager

# Install a specific version (recommend)
helm plugin install https://github.com/jkroepke/helm-secrets --version v3.5.0

# Install latest unstable version from main branch
helm plugin install https://github.com/jkroepke/helm-secrets

Find the latest version here: https://github.com/jkroepke/helm-secrets/releases

Manual installation

Latest version

# Windows (inside cmd, needs to be verified)
curl -LsSf https://github.com/jkroepke/helm-secrets/releases/latest/download/helm-secrets.tar.gz | tar -C "%APPDATA%\helm\plugins" -xzf-

# MacOS / Linux
curl -LsSf https://github.com/jkroepke/helm-secrets/releases/latest/download/helm-secrets.tar.gz | tar -C "$(helm env HELM_PLUGINS)" -xzf-

Specific version

# Windows (inside cmd, needs to be verified)
curl -LsSf https://github.com/jkroepke/helm-secrets/releases/download/v3.5.0/helm-secrets.tar.gz | tar -C "%APPDATA%\helm\plugins" -xzf-

# MacOS / Linux
curl -LsSf https://github.com/jkroepke/helm-secrets/releases/download/v3.5.0/helm-secrets.tar.gz | tar -C "$(helm env HELM_PLUGINS)" -xzf-

Installation on Helm 2

Helm 2 doesn't support downloader plugins. Since unknown keys in plugin.yaml are fatal, then plugin installation need special handling.

Error on Helm 2 installation:

# helm plugin install https://github.com/jkroepke/helm-secrets
Error: yaml: unmarshal errors:
  line 12: field platformCommand not found in type plugin.Metadata

Workaround:

  1. Install helm-secrets via manual installation, but extract inside helm2 plugin directory e.g.: $(helm home)/plugins/
  2. Strip platformCommand from plugin.yaml like:
    sed -i '/platformCommand:/,+2 d' "${HELM_HOME:-"${HOME}/.helm"}/plugins/helm-secrets*/plugin.yaml"
    
  3. Done

Client here for an example!

Change secret driver

It's possible to use another secret driver then sops, e.g. Hasicorp Vault.

Start by a copy of sops driver and adjust to your own needs.

The custom driver can be load via HELM_SECRETS_DRIVER parameter or -d option (higher preference):

# Example for in-tree drivers via option
helm secrets -d sops view ./tests/assets/helm_vars/secrets.yaml

# Example for in-tree drivers via environment variable
HELM_SECRETS_DRIVER=vault helm secrets view ./tests/assets/helm_vars/secrets.yaml

# Example for out-of-tree drivers
helm secrets -d ./path/to/driver.sh view ./tests/assets/helm_vars/secrets.yaml

Pull Requests are much appreciated.

The driver option is a global one. A file level switch isn't supported yet.

Pass additional arguments to secret driver

helm secrets -a "--verbose" view ./tests/assets/helm_vars/secrets.yaml

results into:

[PGP]    INFO[0000] Decryption succeeded                          fingerprint=D6174A02027050E59C711075B430C4E58E2BBBA3
[SOPS]   INFO[0000] Data key recovered successfully
[SOPS]   DEBU[0000] Decrypting tree
[helm-secrets] Decrypt: tests/assets/values/sops/secrets.yaml
==> Linting examples/sops
[INFO] Chart.yaml: icon is recommended

1 chart(s) linted, 0 chart(s) failed

[helm-secrets] Removed: tests/assets/values/sops/secrets.yaml.dec

Main features

The current version of this plugin using mozilla/sops by default as backend.

Hashicorp Vault is supported as secret source since v3.2.0, too. In addition, sops support vault since v3.6.0 natively.

What kind of problems this plugin solves:

  • Simple replaceable layer integrated with helm command for encrypting, decrypting, view secrets files stored in any place.
  • On the fly decryption and cleanup for helm install/upgrade with a helm command wrapper

If you are using sops (used by default) you have some additional features:

An additional documentation, resources and examples can be found here.

ArgoCD support

helm-secrets could detect an ArgoCD environment by the ARGOCD_APP_NAME environment variable. If detected, HELM_SECRETS_QUIET is set to true.

Moving parts of project

  • scripts/install.sh - Script used as the hook to download and install sops and install git diff configuration for helm-secrets files.
  • scripts/run.sh - Main helm-secrets plugin code for all helm-secrets plugin actions available in helm secrets help after plugin install
  • scripts/drivers - Location of the in-tree secrets drivers
  • scripts/commands - Sub Commands of helm secrets are defined here.
  • scripts/lib - Common functions used by helm secrets.
  • scripts/wrapper - Wrapper scripts for Windows systems.
  • tests - Test scripts to check if all parts of the plugin work. Using test assets with PGP keys to make real tests on real data with real encryption/decryption. See tests/README.md for more informations.
  • examples - Some example secrets.yaml

Copyright and license

© 2020-2021 Jan-Otto Kröpke (jkroepke)

© 2017-2020 Zendesk

Licensed under the Apache License, Version 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].