-
Notifications
You must be signed in to change notification settings - Fork 4.5k
chore: deprecate ce helm charts and publish ee helm charts #37794
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
Changes from all commits
2fd7e52
6534291
a01009b
6f5c2a8
0e76b6a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -1,15 +1,27 @@ | ||||||||
| {{- $updateStrategy := .Values.updateStrategy | default dict }} | ||||||||
| {{- $postgresuser := .Values.postgresql.auth.username }} | ||||||||
| {{- $postgrespass := .Values.postgresql.auth.password }} | ||||||||
| {{- $postgrespass := .Values.postgresql.auth.password }} | ||||||||
|
Comment on lines
+3
to
+4
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove duplicate variable declaration The {{- $postgrespass := .Values.postgresql.auth.password }}
-{{- $postgrespass := .Values.postgresql.auth.password }}📝 Committable suggestion
Suggested change
|
||||||||
| {{- $releaseName := include "appsmith.fullname" . -}} | ||||||||
| apiVersion: apps/v1 | ||||||||
| kind: StatefulSet | ||||||||
| kind: {{ if not .Values.autoscaling.enabled }}StatefulSet{{- else }}Deployment{{- end }} | ||||||||
| metadata: | ||||||||
| name: {{ include "appsmith.fullname" . }} | ||||||||
| namespace: {{ include "appsmith.namespace" . }} | ||||||||
| labels: | ||||||||
| {{- include "appsmith.labels" . | nindent 4 }} | ||||||||
| spec: | ||||||||
| {{- if not .Values.autoscaling.enabled }} | ||||||||
| replicas: 1 | ||||||||
| serviceName: {{ include "appsmith.fullname" . }} | ||||||||
| updateStrategy: | ||||||||
| type: {{ .Values.strategyType }} | ||||||||
| {{- else }} | ||||||||
| strategy: | ||||||||
| type: {{ .Values.strategyType | default "RollingUpdate" }} | ||||||||
| rollingUpdate: | ||||||||
| maxSurge: {{ dig "maxSurge" 1 $updateStrategy }} | ||||||||
| maxUnavailable: {{ dig "maxUnavailable" "0" $updateStrategy }} | ||||||||
| {{- end }} | ||||||||
| selector: | ||||||||
| matchLabels: | ||||||||
| {{- include "appsmith.selectorLabels" . | nindent 6 }} | ||||||||
|
|
@@ -25,6 +37,10 @@ spec: | |||||||
| {{- toYaml .Values.podLabels | nindent 8 }} | ||||||||
| {{- end }} | ||||||||
| spec: | ||||||||
| {{- with .Values.topologySpreadConstraints }} | ||||||||
| topologySpreadConstraints: | ||||||||
| {{- toYaml . | nindent 8 }} | ||||||||
| {{- end }} | ||||||||
| {{- if .Values.schedulerName }} | ||||||||
| schedulerName: {{ .Values.schedulerName | quote }} | ||||||||
| {{- end }} | ||||||||
|
|
@@ -58,40 +74,53 @@ spec: | |||||||
| {{- if ((.Values.initContainer.mongodb).image) }} | ||||||||
| image: {{ .Values.initContainer.mongodb.image }} | ||||||||
| {{- else }} | ||||||||
| image: "docker.io/bitnami/mongodb:5.0.21-debian-11-r5" | ||||||||
| image: "docker.io/bitnami/mongodb:6.0.13" | ||||||||
| {{- end }} | ||||||||
| command: ['sh', '-c', "until mongosh --host appsmith-mongodb.{{.Release.Namespace}}.svc.cluster.local --eval 'db.runCommand({ping:1})' ; do echo waiting for mongo; sleep 2; done"] | ||||||||
| {{- end }} | ||||||||
| command: ['sh', '-c', "until mongo --host appsmith-mongodb.{{.Release.Namespace}}.svc.cluster.local --eval 'db.runCommand({ping:1})' ; do echo waiting for mongo; sleep 2; done"] | ||||||||
| {{- if .Values.postgresql.enabled }} | ||||||||
| - name: psql-init-container | ||||||||
| {{- if ((.Values.initContainer.postgresql).image) }} | ||||||||
| image: {{ .Values.initContainer.postgresql.image }} | ||||||||
| {{- else}} | ||||||||
| image: docker.io/bitnami/postgresql:14.5.0-debian-11-r21 | ||||||||
| {{- end}} | ||||||||
| command: ['sh', '-c', "until pg_isready -U $postgresuser -d $postgresdb -h {{.Release.Name}}-postgresql.{{.Release.Namespace}}.svc.cluster.local; do echo waiting for postgresql; sleep 2; done"] | ||||||||
| {{- end }} | ||||||||
| containers: | ||||||||
| - name: {{ .Values.containerName }} | ||||||||
| securityContext: | ||||||||
| {{- toYaml .Values.securityContext | nindent 12 }} | ||||||||
| image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" | ||||||||
| imagePullPolicy: {{ .Values.image.pullPolicy }} | ||||||||
| {{- $customImage := .Values._image | default dict }} | ||||||||
| image: {{ dig "registry" "index.docker.io" $customImage }}/{{ dig "repository" "appsmith/appsmith-ee" $customImage }}:{{ dig "tag" (.Values.image.tag | default "latest") $customImage }} | ||||||||
| imagePullPolicy: {{ dig "pullPolicy" "IfNotPresent" $customImage }} | ||||||||
|
Comment on lines
+94
to
+96
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Image pull secrets configuration required for EE repository The deployment template expects image pull secrets to be configured via
image:
pullSecrets: "your-ee-registry-secret"🔗 Analysis chainVerify EE image repository access The image configuration points to the enterprise edition repository. Ensure that proper credentials are configured for accessing the EE images. The previous results show that imagePullSecrets exist, but I need to verify their actual configuration to ensure they're properly set up for the EE repository. I need to verify the default configuration for image pull secrets to ensure they're properly documented and configured for the EE repository. 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Verify if image pull secrets are properly configured when EE repository is used
rg -l "appsmith/appsmith-ee" | xargs rg "imagePullSecrets"
Length of output: 244 Script: #!/bin/bash
# Check the values.yaml for image pull secrets configuration
cat deploy/helm/values.yaml | grep -A 10 "imagePullSecrets"
# Check if there are any other image pull secrets configurations in the deployment template
cat deploy/helm/templates/deployment.yaml | grep -A 5 "imagePullSecrets"
Length of output: 766 Script: #!/bin/bash
# Check the default values for image pull secrets in values.yaml
cat deploy/helm/values.yaml | grep -A 15 "^image:"
# Check if there's any documentation about image pull secrets
cat deploy/helm/README.md 2>/dev/null || cat deploy/helm/values.yaml | grep -A 2 -B 2 "pullSecrets"
Length of output: 16873 |
||||||||
| ports: | ||||||||
| - name: http | ||||||||
| containerPort: {{ .Values.HTTPContainerPort | default 80 }} | ||||||||
| protocol: TCP | ||||||||
| - name: https | ||||||||
| containerPort: 443 | ||||||||
| protocol: TCP | ||||||||
| - name: metrics | ||||||||
| containerPort: {{ .Values.metrics.port }} | ||||||||
| protocol: TCP | ||||||||
| {{- $probes := .Values.probes | default dict }} | ||||||||
| startupProbe: | ||||||||
| # The `livenessProbe` and `readinessProbe` will be disabled until the `startupProbe` is successful. | ||||||||
| httpGet: | ||||||||
| port: http | ||||||||
| port: {{ dig "startupProbe" "port" "80" $probes }} | ||||||||
| path: {{ dig "startupProbe" "api" "/api/v1/health" $probes }} | ||||||||
| failureThreshold: {{ dig "startupProbe" "failureThreshold" 3 $probes }} | ||||||||
| periodSeconds: {{ dig "startupProbe" "periodSeconds" 60 $probes }} | ||||||||
| livenessProbe: | ||||||||
| httpGet: | ||||||||
| port: http | ||||||||
| port: {{ dig "livenessProbe" "port" "80" $probes }} | ||||||||
| path: {{ dig "livenessProbe" "api" "/api/v1/health" $probes }} | ||||||||
| failureThreshold: {{ dig "livenessProbe" "failureThreshold" 3 $probes }} | ||||||||
| periodSeconds: {{ dig "livenessProbe" "periodSeconds" 60 $probes }} | ||||||||
| readinessProbe: | ||||||||
| httpGet: | ||||||||
| port: http | ||||||||
| port: {{ dig "readinessProbe" "port" "80" $probes }} | ||||||||
| path: {{ dig "readinessProbe" "api" "/api/v1/health" $probes }} | ||||||||
| failureThreshold: {{ dig "readinessProbe" "failureThreshold" 3 $probes }} | ||||||||
| periodSeconds: {{ dig "readinessProbe" "periodSeconds" 60 $probes }} | ||||||||
|
|
@@ -100,42 +129,79 @@ spec: | |||||||
| volumeMounts: | ||||||||
| - name: data | ||||||||
| mountPath: /appsmith-stacks | ||||||||
| {{- if .Values.customCAcert }} | ||||||||
| - name: ca-cert | ||||||||
| mountPath: "/appsmith-stacks/ca-certs" | ||||||||
| {{- end }} | ||||||||
| env: | ||||||||
| {{- if .Values.HTTPContainerPort }} | ||||||||
| - name: PORT | ||||||||
| value: "{{ .Values.HTTPContainerPort }}" | ||||||||
| {{- end }} | ||||||||
| - name: APPSMITH_ENABLE_EMBEDDED_DB | ||||||||
| value: "0" | ||||||||
| - name: JGROUPS_DISCOVERY_PROTOCOL | ||||||||
| value: kubernetes.KUBE_PING | ||||||||
| - name: APPSMITH_HEADLESS_SVC | ||||||||
| value: {{ include "appsmith.fullname" . }}-headless | ||||||||
| envFrom: | ||||||||
| - configMapRef: | ||||||||
| name: {{ include "appsmith.fullname" . }} | ||||||||
| {{- if .Values.secretName }} | ||||||||
| - secretRef: | ||||||||
| name: {{ .Values.secretName }} | ||||||||
| {{- end }} | ||||||||
| {{- if .Values.secrets }} | ||||||||
| - secretRef: | ||||||||
| name: {{ include "appsmith.fullname" . }} | ||||||||
| {{- end }} | ||||||||
| {{- if .Values.externalSecrets.enabled }} | ||||||||
| - secretRef: | ||||||||
| name: "{{ include "appsmith.fullname" . }}-external-secret" | ||||||||
| {{- end }} | ||||||||
| {{- if .Values.image.pullSecrets}} | ||||||||
| imagePullSecrets: | ||||||||
| - name: {{ .Values.image.pullSecrets }} | ||||||||
| {{- end }} | ||||||||
| volumes: | ||||||||
| {{- if .Values.customCAcert }} | ||||||||
| - name: ca-cert | ||||||||
| configMap: | ||||||||
| name: {{ $releaseName }}-trustedca | ||||||||
| items: | ||||||||
| {{- range $key, $value := .Values.customCAcert }} | ||||||||
| - key: {{ $key }} | ||||||||
| path: {{ $key }}.crt | ||||||||
| {{- end }} | ||||||||
| {{- end }} | ||||||||
| {{- if not .Values.persistence.enabled }} | ||||||||
| - name: data | ||||||||
| emptyDir: {} | ||||||||
| {{- else }} | ||||||||
| {{- else if and (not .Values.autoscaling.enabled) (.Values.persistence.enabled) }} | ||||||||
| volumeClaimTemplates: | ||||||||
| - metadata: | ||||||||
| name: data | ||||||||
| {{- if .Values.persistence.annotations }} | ||||||||
| annotations: {{- include "tplvalues.render" (dict "value" .Values.persistence.annotations "context" $) | nindent 10 }} | ||||||||
| {{- if .Values.persistence.annotations}} | ||||||||
| annotations: | ||||||||
| {{- include "tplvalues.render" (dict "value" .Values.persistence.annotations "context" $) | nindent 10 }} | ||||||||
| {{- end }} | ||||||||
| spec: | ||||||||
| accessModes: | ||||||||
| {{- range .Values.persistence.accessModes }} | ||||||||
| - {{ . | quote }} | ||||||||
| {{- end }} | ||||||||
| - ReadWriteOnce | ||||||||
| resources: | ||||||||
| requests: | ||||||||
| storage: {{ .Values.persistence.size | quote }} | ||||||||
| {{ include "storage.class" (dict "persistence" .Values.persistence "global" .Values.global) }} | ||||||||
| {{- if .Values.persistence.volumeClaimTemplates.selector }} | ||||||||
| selector: | ||||||||
| {{- include "tplvalues.render" (dict "value" .Values.persistence.volumeClaimTemplates.selector "context" $) | nindent 10 }} | ||||||||
| {{- end }} | ||||||||
| {{ include "storage.class" (dict "persistence" .Values.persistence "global" .Values.global) | nindent 8 }} | ||||||||
| {{- else }} | ||||||||
| - name: data | ||||||||
| persistentVolumeClaim: | ||||||||
| {{- if .Values.persistence.existingClaim.enabled }} | ||||||||
| claimName: {{ .Values.persistence.existingClaim.claimName }} | ||||||||
| {{- else }} | ||||||||
| claimName: {{ include "appsmith.fullname" . }} | ||||||||
| {{- end }} | ||||||||
| {{- end }} | ||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,18 @@ | ||||||||||||||||||||||||||||||||||
| {{- if .Values.externalSecrets.enabled }} | ||||||||||||||||||||||||||||||||||
| apiVersion: external-secrets.io/v1beta1 | ||||||||||||||||||||||||||||||||||
| kind: ExternalSecret | ||||||||||||||||||||||||||||||||||
| metadata: | ||||||||||||||||||||||||||||||||||
| name: "{{ include "appsmith.fullname" . }}-external-secret" | ||||||||||||||||||||||||||||||||||
| namespace: {{ include "appsmith.namespace" . }} | ||||||||||||||||||||||||||||||||||
| spec: | ||||||||||||||||||||||||||||||||||
| refreshInterval: {{ .Values.externalSecrets.refreshInterval }} | ||||||||||||||||||||||||||||||||||
| secretStoreRef: | ||||||||||||||||||||||||||||||||||
| name: secretstore | ||||||||||||||||||||||||||||||||||
| kind: SecretStore | ||||||||||||||||||||||||||||||||||
| target: | ||||||||||||||||||||||||||||||||||
| name: "{{ include "appsmith.fullname" . }}-external-secret" | ||||||||||||||||||||||||||||||||||
| creationPolicy: Owner | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+7
to
+14
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix indentation for YAML compliance The YAML indentation is inconsistent which could cause parsing issues. Apply this diff to fix the indentation: spec:
refreshInterval: {{ .Values.externalSecrets.refreshInterval }}
secretStoreRef:
- name: secretstore
- kind: SecretStore
+ name: secretstore
+ kind: SecretStore
target:
- name: "{{ include "appsmith.fullname" . }}-external-secret"
- creationPolicy: Owner
+ name: "{{ include "appsmith.fullname" . }}-external-secret"
+ creationPolicy: Owner📝 Committable suggestion
Suggested change
🧰 Tools🪛 yamllint (1.35.1)[warning] 10-10: wrong indentation: expected 5 but found 4 (indentation) [warning] 13-13: wrong indentation: expected 5 but found 4 (indentation) |
||||||||||||||||||||||||||||||||||
| dataFrom: | ||||||||||||||||||||||||||||||||||
| - extract: | ||||||||||||||||||||||||||||||||||
| key: {{ .Values.externalSecrets.remoteSecretName }} | ||||||||||||||||||||||||||||||||||
| {{- end }} | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+15
to
+18
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Remote secret path configuration needs validation Based on the values.yaml content, I found that
🔗 Analysis chainVerify secret path configuration The remote secret path is critical for security. Ensure it's properly validated and documented in values.yaml. 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Check if remoteSecretName is documented in values.yaml
rg -A 5 "remoteSecretName:" deploy/helm/values.yaml
# Check for any hardcoded secret paths in the codebase
rg -g '*.yaml' -g '*.yml' "key: .*secret.*"
Length of output: 97 Script: #!/bin/bash
# Let's check the values.yaml file content directly
cat deploy/helm/values.yaml
# Check for any external secrets configuration patterns
rg -g '*.yaml' -g '*.yml' "externalSecrets:"
# Look for any documentation about external secrets
fd README.md --exec cat {}
Length of output: 108393 🧰 Tools🪛 yamllint (1.35.1)[warning] 17-17: wrong indentation: expected 7 but found 6 (indentation) |
||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| apiVersion: v1 | ||
| kind: Service | ||
| metadata: | ||
| name: {{ include "appsmith.fullname" . }}-headless | ||
| namespace: {{ include "appsmith.namespace" . }} | ||
| labels: | ||
| {{- include "appsmith.labels" . | nindent 4 }} | ||
| {{- if or .Values.service.annotations .Values.commonAnnotations }} | ||
| annotations: | ||
| {{- if .Values.service.annotations }} | ||
| {{- include "tplvalues.render" ( dict "value" .Values.service.annotations "context" $) | nindent 4 }} | ||
| {{- end }} | ||
| {{- if .Values.commonAnnotations }} | ||
| {{- include "tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} | ||
| {{- end }} | ||
| {{- end }} | ||
| spec: | ||
| type: ClusterIP | ||
| clusterIP: None | ||
| clusterIPs: | ||
| - None | ||
| internalTrafficPolicy: Cluster | ||
| ipFamilies: | ||
| - IPv4 | ||
| ipFamilyPolicy: SingleStack | ||
| ports: | ||
| - name: http | ||
| port: 8080 | ||
| targetPort: 8080 | ||
| selector: | ||
| {{- include "appsmith.selectorLabels" . | nindent 4 }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| {{- if and (.Values.autoscaling.enabled) (not .Values.keda.enabled) }} | ||
| apiVersion: {{ ternary "autoscaling/v2" "autoscaling/v2beta2" (.Capabilities.APIVersions.Has "autoscaling/v2") }} | ||
| kind: HorizontalPodAutoscaler | ||
| metadata: | ||
| name: {{ include "appsmith.fullname" . }} | ||
| namespace: {{ include "appsmith.namespace" . }} | ||
| labels: | ||
| {{- include "appsmith.labels" . | nindent 4 }} | ||
| spec: | ||
| scaleTargetRef: | ||
| apiVersion: apps/v1 | ||
| kind: Deployment | ||
| name: {{ include "appsmith.fullname" . }} | ||
| minReplicas: {{ .Values.autoscaling.minReplicas }} | ||
| maxReplicas: {{ .Values.autoscaling.maxReplicas }} | ||
| metrics: | ||
| {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} | ||
| - type: Resource | ||
| resource: | ||
| name: cpu | ||
| {{- if .Capabilities.APIVersions.Has "autoscaling/v2"}} | ||
| target: | ||
| type: Utilization | ||
| averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} | ||
| {{- else }} | ||
| targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} | ||
| {{- end }} | ||
| {{- end }} | ||
| {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} | ||
| - type: Resource | ||
| resource: | ||
| name: memory | ||
| {{- if .Capabilities.APIVersions.Has "autoscaling/v2"}} | ||
| target: | ||
| type: Utilization | ||
| averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} | ||
| {{- else }} | ||
| targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} | ||
| {{- end }} | ||
| {{- end }} | ||
|
Comment on lines
+16
to
+40
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Add validation constraints for autoscaling metrics The current CPU utilization is set to 5%, which is unusually low and could lead to aggressive scaling. Add validation in values.yaml:
🔗 Analysis chainAdd validation for utilization percentages The CPU and memory utilization percentages should be validated to ensure they're within reasonable bounds. Let me check if there are any validation helpers or constraints defined in other Helm-related files. 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Check if there are any validation helpers or value constraints in the templates
rg -A 3 "targetCPUUtilizationPercentage|targetMemoryUtilizationPercentage" deploy/helm/values.yaml
Length of output: 155 Script: #!/bin/bash
# Check for any validation or constraint-related code in Helm templates
rg -g "deploy/helm/**" "_helpers|validation|constraint" -A 3
# Check the complete autoscaling section in values.yaml
rg -g "deploy/helm/values.yaml" "autoscaling:" -A 10
Length of output: 538 |
||
| {{- end }} | ||
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.
💡 Codebase verification
PostgreSQL and Prometheus versions need updates in Chart.yaml
The current versions in Chart.yaml are outdated compared to the latest stable releases:
🔗 Analysis chain
Dependencies configuration looks good with a suggestion
The dependencies are well-structured with specific versions and proper conditions. However, it's recommended to verify the compatibility of these versions, especially for the new PostgreSQL and Prometheus integrations.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
Length of output: 23365