Introduction
This document provides a comprehensive guide to install and configure the Raven Platform in your Kubernetes (K8s) clusters using Helm charts. This guide is intended for platform engineers and administrators who are responsible for deploying and managing the Raven platform within their infrastructure.
Prerequisites
Before proceeding with the Helm installation, ensure you have completed the following prerequisites:
-
AWS Setup: Follow the AWS setup steps mentioned here using Terraform to create the necessary resources, including:We provide a Terraform example repository to assist you with this setup, which can be found here.
-
RDS Database
-
Elasticache Redis
-
ClickHouse Database
-
Secrets
-
EKS Cluster
-
Required IAM Roles
-
Helm Installation: Ensure Helm is installed on your local machine. You can find the installation guide here.
-
Helm Registry Login: You need to log in to the Helm registry using your provided username and password.
Step-by-Step Guide
Step 1: Login to Helm Registry
First, authenticate with the Helm registry to access the Raven platform charts.
helm registry login releases.cloud.raven.io
You will be prompted to enter your username and password. Ensure you have these credentials handy.
Step 2: Fetch Helm Chart Values
To customize your Helm chart installation, you may want to review the possible configuration values. Use the following command to display all configurable parameters.
helm show values oci://releases.cloud.raven.io/self-hosted/raven-platform
Once authenticated and aware of the configurable values, you can proceed to install the Raven platform Helm chart. Replace <your-namespace>
with the namespace where you want to deploy the platform and customize the <config.yaml>
with your specific configurations.
helm install raven-platform oci://releases.cloud.raven.io/self-hosted/raven-platform --namespace <your-namespace> -f <config.yaml>
Example Configuration (config.yaml
)
Below is an example config.yaml
to illustrate how you might configure your Helm chart:
imageCredentials:
name: raven-platform-image
username: user # Your Docker registry username
password: "user!!!" # Your Docker registry password
existingSecret: ""
customers-service:
postgresCredentials:
existingSecretName: "customers-database-secret"
PSQL_DBNAME: "customers"
image:
tag: latest
imagePullSecrets:
- name: raven-platform-image
ingestion-service:
image:
tag: latest
imagePullSecrets:
- name: raven-platform-image
s3:
nodeDataBucketName: "raven-nodes-data"
nodeSymbolsBucketName: "raven-symbols-metadata"
endpoint: "s3.us-east-1.amazonaws.com"
region: "us-east-1"
aws_sdk_auth: false
redis:
samples_queue: "SAMPLES_DATA"
traces_queue: "TRACES_DATA"
metrics_queue: "metricsQueue"
batch_processing: true
host: "redis-host"
port: "6379"
clickhouse:
host: "clickhouse-host"
port: "9000"
tls: false
user: "default"
database: "default"
password: "" # Leave empty to not use it and attach a pre-created secret using extraSecrets
extraSecrets:
- clickhouse-secret
query-service:
image:
tag: latest
imagePullSecrets:
- name: raven-platform-image
application:
production: true
routes:
http_address: ":7070"
grpc_server_host: ""
grpc_server_port: "9092"
profile_share_address: "api.pprof.me:443"
customer_service_address: "customers-service:8080"
logs:
level: debug
clickhouse:
host: "clickhouse-host"
port: "9000"
tls: false
user: "default"
database: "default"
password: "" # Leave empty to not use it and attach a pre-created secret using extraSecrets
extraSecrets:
- clickhouse-secret
ingress:
enabled: "true"
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
hosts:
- host: query.raven.yourdomain.com
paths:
- path: /
pathType: ImplementationSpecific
tls:
- hosts:
- query.raven.yourdomain.com
secretName: query-raven-yourdomain-com
raven-ui:
image:
tag: latest
imagePullSecrets:
- name: raven-platform-image
ingress:
enabled: "true"
hosts:
- host: raven.yourdomain.com
paths:
- path: /
pathType: ImplementationSpecific
tls:
- hosts:
- raven.yourdomain.com
secretName: raven-yourdomain-com
upload-service:
image:
tag: latest
imagePullSecrets:
- name: raven-platform-image
customerService:
port: 8080
host: "customers-service"
redis:
host: "redis-host"
port: "6379"
clickhouse:
host: "clickhouse-host"
port: "9000"
tls: false
user: "default"
database: "default"
password: "" # Leave empty to not use it and attach a pre-created secret using extraSecrets
extraSecrets:
- clickhouse-secret
ingress:
enabled: "true"
hosts:
- host: upload.raven.yourdomain.com
paths:
- path: /
pathType: ImplementationSpecific
tls:
- hosts:
- upload.raven.yourdomain.com
secretName: upload-raven-yourdomain-com
Step 4: Verify Installation
After the installation command completes, verify that all resources are created and running as expected.
kubectl get pods -n <your-namespace>
kubectl get svc -n <your-namespace>
Once all pods are running and the services are up, you can access the Raven platform via the ingress host specified in your configuration (raven.yourdomain.com
).
Conclusion
Ensure you review and customize the Helm values to fit your specific infrastructure and security requirements. For further assistance, refer to the Raven Documentation or contact our support team.