MCPcopy Create free account
hub / github.com/SparebankenVest/azure-key-vault-to-kubernetes

github.com/SparebankenVest/azure-key-vault-to-kubernetes @controller-1.8.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release controller-1.8.4 ↗ · + Follow
847 symbols 2,253 edges 122 files 516 documented · 61% updated 11d agovaultenv-1.8.4 · 2026-06-25★ 45283 open issues

Browse by type

Functions 652 Types & classes 195
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Azure Key Vault to Kubernetes

Controller Build Status WebHook Build Status VaultEnv Build Status

Go Report Card

Release

Tag

Docker Pulls

Docker Pulls

Azure Key Vault to Kubernetes (akv2k8s) makes Azure Key Vault secrets, certificates and keys available to your applications in Kubernetes, in a simple and secure way.

Documentation available at https://akv2k8s.io. Join our Slack Workspace to ask questions to the akv2k8s community.

Overview

Azure Key Vault to Kubernetes (akv2k8s) will make Azure Key Vault objects available to Kubernetes in two ways:

  • As native Kubernetes Secrets
  • As environment variables directly injected into your Container application

The Azure Key Vault Controller (Controller for short) is responsible for synchronizing Secrets, Certificates and Keys from Azure Key Vault to native Secrets in Kubernetes.

The Azure Key Vault Env Injector (Env Injector for short) is responsible for transparently injecting Azure Key Vault secrets as environment variables into Container applications, without touching disk or exposing the actual secret to Kubernetes.

Goals

The goals for this project were:

  1. Avoid a direct program dependency on Azure Key Vault for getting secrets, and adhere to the 12 Factor App principle for configuration (https://12factor.net/config)
  2. Make it simple, secure and low risk to transfer Azure Key Vault secrets into Kubernetes as native Kubernetes secrets
  3. Securely and transparently be able to inject Azure Key Vault secrets as environment variables to applications, without having to use native Kubernetes secrets

All of these goals are met.

Installation

For installation instructions, see documentation at https://akv2k8s.io/installation/.

Credits

Credit goes to Banzai Cloud for coming up with the original idea of environment injection for their bank-vaults solution, which they use to inject Hashicorp Vault secrets into Pods.

Contributing

Development of Azure Key Vault for Kubernetes happens in the open on GitHub, and we encourage users to:

  • Send a pull request with
  • any security issues found and fixed
  • your new features and bug fixes
  • updates and improvements to the documentation
  • Report issues on security or other issues you have come across
  • Help new users with issues they may encounter
  • Support the development of this project and star this repo!

Code of Conduct

Sparebanken Vest has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.

License

Azure Key Vault to Kubernetes is licensed under Apache License 2.0.

Contribute to the Documentation

The documentation is located in a separate repository at https://github.com/SparebankenVest/akv2k8s-website. We're using Gatsby + MDX (Markdown + JSX) to generate static docs for https://akv2k8s.io.

Image Attestations

Container builds in this repository emit BuildKit provenance and SBOM attestations.

You can verify the GitHub artifact attestation for a released webhook image with:

gh attestation verify \
  "oci://docker.io/spvest/azure-keyvault-webhook:1.8.4-beta5" \
  --repo "SparebankenVest/azure-key-vault-to-kubernetes" \
  --signer-workflow "SparebankenVest/azure-key-vault-to-kubernetes/.github/workflows/webhook-release.yaml" \
  --source-ref "refs/tags/webhook-1.8.4-beta5"

Add --format json if you want to inspect the verified statement, subject digest, and workflow identity in detail.

Release workflows also publish GitHub Releases for component tags. Those release pages include generated release notes since the previous stable release for that component, and attach plain SPDX SBOM assets for each published platform image.

You can also download the GitHub attestation bundle for offline verification with:

gh attestation download \
  "oci://docker.io/spvest/azure-keyvault-webhook:1.8.4-beta5" \
  --repo "SparebankenVest/azure-key-vault-to-kubernetes"

Creating a release

  • Merge relevant PRs to master
  • Wait for the builds to finish
  • Run relevant tests

  • When tested OK, run make tag-all TAG=1.8.1

  • When push/tag is OK, update helm-chart

Extension points exported contracts — how you extend this code

browse all types & interfaces →

Core symbols most depended-on inside this repo

browse all functions →

Shape

Method 418
Function 234
Struct 127
Interface 55
TypeAlias 10
FuncType 3

Languages

Go100%

Modules by API surface

pkg/azure/credentialprovider/provider.go30 symbols
pkg/k8s/client/clientset/versioned/typed/azurekeyvault/v2beta1/azurekeyvaultsecret.go23 symbols
pkg/k8s/client/clientset/versioned/typed/azurekeyvault/v2alpha1/azurekeyvaultsecret.go23 symbols
pkg/k8s/client/clientset/versioned/typed/azurekeyvault/v1alpha1/azurekeyvaultsecret.go23 symbols
pkg/k8s/client/clientset/versioned/typed/azurekeyvault/v1/azurekeyvaultsecret.go23 symbols
pkg/k8s/apis/azurekeyvault/v2beta1/zz_generated.deepcopy.go22 symbols
pkg/k8s/apis/azurekeyvault/v2alpha1/zz_generated.deepcopy.go22 symbols
pkg/k8s/client/informers/externalversions/factory.go20 symbols
cmd/azure-keyvault-controller/controller/secret_handler_test.go19 symbols
cmd/azure-keyvault-controller/controller/secret_handler.go19 symbols
cmd/azure-keyvault-controller/controller/azureKeyVaultSecret.go19 symbols
pkg/k8s/apis/azurekeyvault/v1alpha1/zz_generated.deepcopy.go18 symbols

For agents

$ claude mcp add azure-key-vault-to-kubernetes \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page