A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers
Go to file
Abhishek Dubey ae51e2ef90
Added blog link in the README
2021-09-21 11:38:07 +05:30
.azure-pipelines [Feature][Add] Added template for azure DevOps (#16) 2021-05-19 19:06:29 +05:30
docs [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
example [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
registry Added initial code for k8s vault webhook 2021-04-11 14:54:41 +05:30
scripts [Feature][Change] Updated azure devops ci pipeline (#15) 2021-05-16 22:18:31 +05:30
static [Feature][Add] Added support for azure key vault (#12) 2021-05-09 20:26:39 +05:30
version [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
.gitignore Update .gitignore 2021-05-16 19:09:59 +05:30
.travis.yml Update .travis.yml 2021-04-23 18:30:37 +05:30
CHANGELOG.md [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
DEVELOPMENT.md Added CHANGELOG and DEVELOPMENT 2021-04-11 23:31:19 +05:30
Dockerfile Added dockerfile 2021-04-11 17:00:00 +05:30
LICENSE Added LICENSE 2021-04-11 18:02:56 +00:00
Makefile [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
README.md Added blog link in the README 2021-09-21 11:38:07 +05:30
VERSION Updated Version in VERSION file 2021-05-16 19:01:18 +05:30
annotations.go [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
aws.go [Feature][Add] Added AWS secret manager support (#10) 2021-05-08 18:19:39 +05:30
azure.go [Feature][Add] Added support for azure key vault (#12) 2021-05-09 20:26:39 +05:30
gcp.go [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
go.mod Added initial code for k8s vault webhook 2021-04-11 14:54:41 +05:30
go.sum Added initial code for k8s vault webhook 2021-04-11 14:54:41 +05:30
main.go [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
settings.go [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
types.go [Feature][Add] Added GCP support in webhook (#14) 2021-05-16 18:56:26 +05:30
vault.go [Feature][Add] Added Badges for Project (#9) 2021-05-05 17:28:57 +05:30

README.md

Azure Pipelines GoReportCard GitHub go.mod Go version (subdirectory of monorepo) made-with-Go Docker License

k8s-vault-webhook is a Kubernetes admission webhook which listen for the events related to Kubernetes resources for injecting secret directly from secret manager to pod, secret, and configmap. The motive of creating this project is to provide a dynamic secret injection to containers/pods running inside Kubernetes from different secret managers for enhanced security.

Documentation is available here:- https://ot-container-kit.github.io/k8s-vault-webhook/

Blog Link:- https://blog.opstree.com/2021/09/14/introducing-kubernetes-vault-web-hook/

The secret managers which are currently supported:-

This project is based on secret-consumer-webhook. Please check out the source code at https://github.com/innovia/secrets-consumer-webhook.

Supported Features

  • Authentication to Hashicorp vault using Kubernetes service-account
  • RBAC implementation of vault using different policies of vault and association of policy with service-account
  • Inject secret directly to pods/containers running inside Kubernetes
  • Inject secret directly to pods/containers from AWS Secret Manager
  • Authentication with AWS Secret Manager with access key and iam role
  • Fetch secrets from Azure Key Vault and inject them in pods/containers
  • Pod AD identity and Service principal based authentication in Azure
  • Authentication with AWS Secret Manager with access key and iam role
  • Authenticate and authorize using GCP service-account and annotations
  • Secret injection in pods/containers from GCP Secret Manager
  • Support regex to inject all secrets from a certain path of Vault
  • Inject secrets directly to the process of container, i.e. after the injection you cannot read secrets from the environment variable

Architecture

Installation

k8s-vault-webhook can easily get installed by using Helm. We just simple need to add the repository of our helm charts.

$ helm repo add ot-helm https://github.com/OT-CONTAINER-KIT/helm-charts

$ helm upgrade k8s-vault-webhook ot-helm/k8s-vault-webhook --namespace <namespace> --install

If you want to pass your custom values file while installing the chart, you can find the values file here

Quickstart

For setting up a quickstart environment for demo, you can start quickstart from here

Development

If you like to contribute to this project, you are more than welcome. Please see our DEVELOPMENT.md for details.

Release History

Please see our CHANGELOG.md for details.

Contact

If you have any suggestion or query. Contact us at

opensource@opstree.com