-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Helm chart refactoring #3797
Helm chart refactoring #3797
Conversation
…e apps to a cluster in aws. The bottleneck was setting up PVC dynamic provisioning.
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
@@ -6,7 +6,7 @@ sources: | |||
- "https://github.com/onyx-dot-app/onyx" | |||
type: application | |||
version: 0.2.1 | |||
appVersion: "latest" | |||
appVersion: latest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The appVersion maps to the onyx version for the apps. A user can set this value to deploy and pin the specific version of onyx.
8a11a5a
to
4bddc86
Compare
21f498d
to
d8c564b
Compare
@@ -473,7 +498,8 @@ configMap: | |||
LOG_DANSWER_MODEL_INTERACTIONS: "" | |||
LOG_VESPA_TIMING_INFORMATION: "" | |||
# Shared or Non-backend Related | |||
WEB_DOMAIN: "http://localhost:3000" # for web server and api server | |||
DOMAIN: "localhost" # for nginx | |||
WEB_DOMAIN: "http://localhost:3000" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: any reason we removed this comment?
# keys are lowercased version of env vars (e.g. SMTP_USER -> smtp_user) | ||
existingSecret: "" # onyx-secrets | ||
existingSecret: "" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what does this one do? It doesn't seem clear from this comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also, is the below the right way to do secrets in helm?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Helm does not have built-in secret management capabilities. However, there are several approaches to managing secrets in Helm deployments:
1️⃣ External Secrets Operator (ESO) – ESO allows Kubernetes to sync secrets from external providers (e.g., AWS Secrets Manager, HashiCorp Vault) by creating a SecretStore. Applications can then access these secrets based on namespace permissions and role-based access control (RBAC). More details: External Secrets Operator - AWS Secrets Manager
2️⃣ Helm Secrets Plugin – The helm-secrets plugin enables Helm to decrypt secrets on the fly when deploying charts. It supports encrypted values stored in Git (via SOPS) or dynamic retrieval from providers like AWS Secrets Manager using Vals.
3️⃣ GitOps-Based Secret Management (ArgoCD, Flux, etc.) – Tools like ArgoCD provide flexible secret management options, integrating with both helm-secrets and external-secrets, among others, to securely sync secrets in Kubernetes clusters.
Each approach has its own advantages, depending on security requirements and deployment workflows.
Description
[Provide a brief description of the changes in this PR]
How Has This Been Tested?
I used eksctl cli to provision a eks cluster in aws. The following is the config.yaml that I used to provision the cluster.
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: onyx-cluster
region: us-west-1
nodeGroups:
instanceType: m5.large
desiredCapacity: 1
maxSize: 2
minSize: 1
volumeSize: 80
ssh:
allow: true # will use ~/.ssh/id_rsa.pub as the default ssh key
instanceType: m5.xlarge
desiredCapacity: 1
maxSize: 2
minSize: 1
volumeSize: 100
ssh:
publicKeyPath: ~/.ssh/id_rsa.pub
iam:
withAddonPolicies:
imageBuilder: true
autoScaler: true
externalDNS: true
certManager: true
appMesh: true
appMeshPreview: true
ebs: true
fsx: true
efs: true
awsLoadBalancerController: true
xRay: true
cloudWatch: true
addonsConfig:
autoApplyPodIdentityAssociations: true
addons:
version: latest
useDefaultPodIdentityAssociations: true
version: latest
useDefaultPodIdentityAssociations: true
iam:
podIdentityAssociations:
serviceAccountName: default
permissionPolicyARNs:
permissionPolicy:
Version: "2012-10-17"
Statement:
Action:
Resource: '*'
The following are the commands used to provision a cluster, pull in latest sub-charts, and install onyx onto the new EKS cluster.
eksctl create cluster -f config.yaml # creates the 2 node eks cluster
helm upgrade dependency # upgrades the sub-charts
helm install onyx . # installs the onyx apps onto the cluster
[Describe the tests you ran to verify your changes]
Backporting (check the box to trigger backport action)
Note: You have to check that the action passes, otherwise resolve the conflicts manually and tag the patches.