Secrets Management Overview
We support two primary methods for managing secrets in our platform:- Directly Setting Secrets in Helm Charts: Suitable for development environments where convenience is prioritized.
- Using External Secrets Managers: Recommended for production environments to meet security best practices.
Method 1: Directly Setting Secrets in Helm Charts
You can directly set secrets in the Helm values file. This method is straightforward and suitable for development environments.Method 2: Using External Secrets Managers
For production environments, we recommend using well-known secrets managers such as:- Hashicorp Vault Operator
- External Secrets Operator
- 1Password Connect
Example: Configuring ingestion-service
The ingestion-service
microservice requires the following parameters/values:
Development Environment
In a development environment, you can hardcode theclickhouse
password directly in the Helm values file and pass an empty extraSecrets
array:
Production Environment
In a production environment, leave thepassword
field empty and provide an extraSecrets
element that references a pre-created Kubernetes secret:
clickhouse-secret
is a Kubernetes secret loaded using your chosen secrets manager/operator.
Loading Secrets with a Secrets Manager
-
Using Hashicorp Vault Operator
Ensure you have the Vault Operator installed and configured in your Kubernetes cluster.
First, store your secret in Vault:
Create a
VaultSecret
resource in Kubernetes: -
Using External Secrets Operator
Install and configure the External Secrets Operator in your cluster. Define the external secret resource:
-
Using 1Password Connect
Configure 1Password Connect to sync your secrets with Kubernetes. Define the secret in 1Password and sync it with your cluster.
First, create a Kubernetes secret for the 1Password Connect credentials:
Create an
ExternalSecret
resource: