All Projects β†’ ContainerSolutions β†’ Externalsecret Operator

ContainerSolutions / Externalsecret Operator

Licence: apache-2.0
An operator to fetch secrets from cloud services and inject them in Kubernetes

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Externalsecret Operator

Infracost
Cloud cost estimates for Terraform in pull requestsπŸ’°πŸ“‰ Love your cloud bill!
Stars: ✭ 4,505 (+2445.2%)
Mutual labels:  aws, cloud, gcp, azure
Learning Cloud
List of resources - courses, sample code, articles and screencasts for learning AWS, Azure, GCP and Alibaba Cloud
Stars: ✭ 100 (-43.5%)
Mutual labels:  aws, cloud, azure, gcp
Scoutsuite
Multi-Cloud Security Auditing Tool
Stars: ✭ 3,803 (+2048.59%)
Mutual labels:  aws, cloud, azure, gcp
Arvados
An open source platform for managing and analyzing biomedical big data
Stars: ✭ 274 (+54.8%)
Mutual labels:  aws, cloud, azure, gcp
Terracognita
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
Stars: ✭ 452 (+155.37%)
Mutual labels:  aws, cloud, azure, gcp
Engine
Deploy your apps on any Cloud provider in just a few seconds
Stars: ✭ 1,132 (+539.55%)
Mutual labels:  aws, cloud, azure, gcp
Cloudsploit
Cloud Security Posture Management (CSPM)
Stars: ✭ 1,338 (+655.93%)
Mutual labels:  aws, cloud, azure, gcp
Checkov
Prevent cloud misconfigurations during build-time for Terraform, Cloudformation, Kubernetes, Serverless framework and other infrastructure-as-code-languages with Checkov by Bridgecrew.
Stars: ✭ 3,572 (+1918.08%)
Mutual labels:  aws, azure, gcp, hacktoberfest
Terratag
Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources
Stars: ✭ 385 (+117.51%)
Mutual labels:  aws, cloud, azure, gcp
Cloud Custodian
Rules engine for cloud security, cost optimization, and governance, DSL in yaml for policies to query, filter, and take actions on resources
Stars: ✭ 3,926 (+2118.08%)
Mutual labels:  aws, cloud, azure, gcp
Docker Android
Android in docker solution with noVNC supported and video recording
Stars: ✭ 4,042 (+2183.62%)
Mutual labels:  aws, cloud, azure, gcp
Pulumi
Pulumi - Developer-First Infrastructure as Code. Your Cloud, Your Language, Your Way πŸš€
Stars: ✭ 10,887 (+6050.85%)
Mutual labels:  aws, cloud, azure, gcp
Go Cloud
The Go Cloud Development Kit (Go CDK): A library and tools for open cloud development in Go.
Stars: ✭ 8,124 (+4489.83%)
Mutual labels:  aws, cloud, azure, gcp
Seldon Server
Machine Learning Platform and Recommendation Engine built on Kubernetes
Stars: ✭ 1,435 (+710.73%)
Mutual labels:  aws, cloud, azure, gcp
Pulumi Kubernetesx
Kubernetes for Everyone
Stars: ✭ 74 (-58.19%)
Mutual labels:  aws, azure, gcp
Sceptre
Build better AWS infrastructure
Stars: ✭ 1,160 (+555.37%)
Mutual labels:  aws, cloud, hacktoberfest
Gardener
Kubernetes-native system managing the full lifecycle of conformant Kubernetes clusters as a service on Alicloud, AWS, Azure, GCP, OpenStack, EquinixMetal, vSphere, MetalStack, and Kubevirt with minimal TCO.
Stars: ✭ 2,093 (+1082.49%)
Mutual labels:  aws, azure, gcp
Policy sentry
IAM Least Privilege Policy Generator
Stars: ✭ 1,284 (+625.42%)
Mutual labels:  aws, cloud, hacktoberfest
Terraform Security Scan
Run a security scan on your terraform with the very nice https://github.com/liamg/tfsec
Stars: ✭ 64 (-63.84%)
Mutual labels:  aws, azure, hacktoberfest
Pragmaticai
[Book-2019] Pragmatic AI: An Introduction to Cloud-based Machine Learning
Stars: ✭ 79 (-55.37%)
Mutual labels:  aws, azure, gcp

External Secret Operator

github actions Go Report Card codecov

This operator reads information from a third party service like AWS Secrets Manager or AWS SSM and automatically injects the values as Kubernetes Secrets.

Disclaimer

This project is still maintained, but we are trying to concentrate afforts on this new colaboration:

external-secrets/external-secrets

Table of Contents

Features

  • Secrets are refreshed from time to time allowing you to rotate secrets in your providers and still keep everything up to date inside your k8s cluster.
  • Change the refresh interval of the secrets to match your needs. You can even make it 10s if you need to debug something (beware of API rate limits).
  • For the AWS Backend we support both simple secrets and binfiles.
  • You can get speciffic versions of the secrets or just get latest versions of them.
  • If you change something in your ExternalSecret CR, the operator will reconcile it (Even if your refresh interval is big).
  • AWS Secret Manager, Credstash (AWS KMS), Azure Key Vault, Google Secret Manager and Gitlab backends supported currently!

Quick start

Using Kustomize

Install the operator CRDs

  • Install CRDs
make install

What does it do?

Given a secret defined in AWS Secrets Manager:

% aws secretsmanager create-secret \
  --name=example-externalsecret-key \
  --secret-string='this string is a secret'

and updated aws credentials to be used in config/credentials/kustomization.yaml with valid AWS credentials:

%cat config/credentials/kustomization.yaml
resources:
# - credentials-gsm.yaml
- credentials-asm.yaml
# - credentials-dummy.yaml
# - credentials-gitlab.yaml
# - credentials-akv.yaml
%cat config/credentials/credentials-asm.yaml
...
credentials.json: |-
    {
      "accessKeyID": "AKIA...",
      "secretAccessKey": "cmFuZG9tS2VZb25Eb2Nz...",
      "sessionToken": "" 
    }

and an SecretStore resource definition like this one:

% cat config/samples/store_v1alpha1_secretstore.yaml
apiVersion: store.externalsecret-operator.container-solutions.com/v1alpha1
kind: SecretStore
metadata:
  name: secretstore-sample
spec:
  controller: staging
  store:
    type: asm
    auth: 
      secretRef: 
        name: externalsecret-operator-credentials-asm
    parameters:
      region: eu-west-2

and an ExternalSecret resource definition like this one:

% cat config/samples/secrets_v1alpha1_externalsecret.yaml
apiVersion: secrets.externalsecret-operator.container-solutions.com/v1alpha1
kind: ExternalSecret
metadata:
  name: externalsecret-sample
spec:
  storeRef: 
    name: externalsecret-operator-secretstore-sample
  data:
    - key: example-externalsecret-key
      version: latest

The operator fetches the secret from AWS Secrets Manager and injects it as a secret:

% make deploy
% kubectl get secret externalsecret-operator-externalsecret-sample -n externalsecret-operator-system \
  -o jsonpath='{.data.example-externalsecret-key}' | base64 -d
this string is a secret

Architecture

In this article you can find more information about the architecture and design choices.

Here's a high-level diagram of how things are put together.

architecture

Running tests

Requirements:

  • Golang 1.15 or later
  • Kubebuilder installed at /usr/local/kubebuilder

Then just:

make test

CRDs Spec

Other Supported Backends

We would like to support as many backends as possible and it should be rather easy to write new ones. Currently supported backends are: | Provider | Backend Doc | |--------------------------------------------------------------------|--------------------------------------------------------------------| |AWS Secrets Manager Info | AWS Secrets Manager Backend Docs | |Credstash Info | Credstash (AWS KMS) Docs | |GCP Secret Manager Info | GCP Secret Manager Backend Docs | |Gitlab CI/CD Variables Info | Gitlab CI/CD Variables Backend Docs | |Azure Key Vault Info | Azure Key Vault Backend Docs |

Contributing

Yay! We welcome and encourage contributions to this project!

See our contributing document and Issues for planned improvements and additions.

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].