Skip to main content
At Raven, we design all Helm charts for our platform to balance developer convenience in development environments with security best practices in production environments. This documentation explains how to manage and inject secrets into your Kubernetes clusters using Helm charts and various secrets management tools.

Secrets Management Overview

We support two primary methods for managing secrets in our platform:
  1. Directly Setting Secrets in Helm Charts: Suitable for development environments where convenience is prioritized.
  2. 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
These tools allow you to securely load secrets into Kubernetes and reference them in your Helm charts.

Example: Configuring ingestion-service

The ingestion-service microservice requires the following parameters/values:

Development Environment

In a development environment, you can hardcode the clickhouse password directly in the Helm values file and pass an empty extraSecrets array:

Production Environment

In a production environment, leave the password field empty and provide an extraSecrets element that references a pre-created Kubernetes secret:
Here, clickhouse-secret is a Kubernetes secret loaded using your chosen secrets manager/operator.

Loading Secrets with a Secrets Manager

  1. 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:
  2. Using External Secrets Operator Install and configure the External Secrets Operator in your cluster. Define the external secret resource:
  3. 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:

Injecting Secrets into Microservices

Most secrets in Raven Helm charts can be injected into microservices containers as environment variables. Ensure you define the required secrets in your Helm values file and use the appropriate method to manage them.

Conclusion

Managing secrets securely is crucial for the reliability and security of your applications. By following the methods outlined in this guide, you can ensure that your secrets are managed efficiently and securely in both development and production environments. For further assistance, refer to the Raven Documentation or contact support.