diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..e3ab061 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,40 @@ +--- +kind: pipeline +type: docker +name: default + +steps: +- name: submodules + image: alpine/git + commands: + - git submodule update --init --recursive + +- name: build + image: alpine/helm + volumes: + - name: result + path: /output + commands: + - helm lint --set redis.enabled=false + - helm package -d chart . + - mv chart/glitchtip*.tgz /output/glitchtip.tgz + +- name: upload + image: curlimages/curl:latest + environment: + GIT_HOST: git.kurocon.nl + GIT_PACKAGE_OWNER: KuroNET + GIT_USER: + from_secret: git_username + GIT_TOKEN: + from_secret: git_password_or_token + volumes: + - name: result + path: /output + commands: + - curl --user $GIT_USER:$GIT_TOKEN -X POST --upload-file /output/glitchtip.tgz https://$GIT_HOST/api/packages/{$GIT_PACKAGE_OWNER}/helm/api/charts + + +volumes: +- name: result + temp: {} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8079228..26aa323 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,7 +11,7 @@ build: entrypoint: ["/bin/sh", "-c"] stage: build script: - - helm lint + - helm lint --set redis.enabled=false - helm package -d chart . - mv chart/glitchtip*.tgz chart/glitchtip.tgz artifacts: diff --git a/.gitmodules b/.gitmodules index 1ad4fb4..0290350 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "django-helm-chart"] path = django-helm-chart - url = https://gitlab.com/burke-software/django-helm-chart.git + url = https://git.kurocon.nl/KuroNET/django-helm-chart.git diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..8a85976 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,9 @@ +# Unreleased + +# 4.0.0 + +- (Breaking) Rename value preInstall to migrationJob +- The migration job now runs the migrate script which includes pgpartition. This should help ensure it runs more often as a failsafe should celery fail. +- Add some support for volume mounts, not well tested +- Started this changelog +- Updated chart dependencies to latest versions diff --git a/Chart.lock b/Chart.lock index 07b7538..4973b71 100644 --- a/Chart.lock +++ b/Chart.lock @@ -1,9 +1,9 @@ dependencies: - name: postgresql repository: https://charts.bitnami.com/bitnami - version: 12.1.2 + version: 15.5.16 - name: redis repository: https://charts.bitnami.com/bitnami - version: 17.3.11 -digest: sha256:673a43db19febf733c07fc432dc458d89fac3a790e63e888fe51c12d79050df2 -generated: "2022-11-18T09:35:40.886570292-05:00" + version: 19.6.1 +digest: sha256:39ccb3c76f7a8587ce6623d8b563cefcb3c63a7376768a901ae8092ca4fd9b82 +generated: "2024-07-15T16:16:16.67406353-04:00" diff --git a/Chart.yaml b/Chart.yaml index 187f14e..048d1ae 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -14,20 +14,20 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 0.2.8 +version: 4.0.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. -appVersion: 2.0.6 +appVersion: 4.1.1 icon: https://glitchtip.gitlab.io/glitchtip-helm-chart/icon.svg dependencies: - name: postgresql - version: ^12.1.2 + version: ^15.2.5 repository: https://charts.bitnami.com/bitnami condition: postgresql.enabled - name: redis - version: ^17.3.11 + version: ^19.1.0 repository: https://charts.bitnami.com/bitnami condition: redis.enabled diff --git a/README.md b/README.md index 6fcafb3..6187bcd 100644 --- a/README.md +++ b/README.md @@ -18,19 +18,21 @@ For postgresql, we recommend an externally managed database and providing only t ## Important Tips - Use [helm diff](https://github.com/databus23/helm-diff) to preview changes -- We don't update the chart version for app version updates at this time, set image.tag instead. - Set image.pullPolicy to `IfNotPresent` after specifying the image.tag - Set redis.auth.password to avoid redis being entirely remade on each release - If updating the chart, carefully review values for any new defaults ## Updating +See changes in this chart on [GitLab](https://gitlab.com/glitchtip/glitchtip-helm-chart/-/releases) + - `helm repo update` - Set the image.tag to the [latest version](https://gitlab.com/glitchtip/glitchtip-frontend/-/releases) - `helm diff upgrade glitchtip glitchtip/glitchtip` - Carefully review diff - `helm upgrade glitchtip glitchtip/glitchtip -f your-values.yaml` + # Contributing Please open issues only with potential solutions and be prepared to do some work or else fund it. Contributors are welcome. However, we kindly ask that feature requests and support requests not be opened in this repo. diff --git a/charts/postgresql-12.1.2.tgz b/charts/postgresql-12.1.2.tgz deleted file mode 100644 index 2292c45..0000000 Binary files a/charts/postgresql-12.1.2.tgz and /dev/null differ diff --git a/charts/postgresql-15.5.16.tgz b/charts/postgresql-15.5.16.tgz new file mode 100644 index 0000000..3c4bc38 Binary files /dev/null and b/charts/postgresql-15.5.16.tgz differ diff --git a/charts/redis-17.3.11.tgz b/charts/redis-17.3.11.tgz deleted file mode 100644 index 655526f..0000000 Binary files a/charts/redis-17.3.11.tgz and /dev/null differ diff --git a/charts/redis-19.6.1.tgz b/charts/redis-19.6.1.tgz new file mode 100644 index 0000000..f517dcf Binary files /dev/null and b/charts/redis-19.6.1.tgz differ diff --git a/django-helm-chart b/django-helm-chart index ccfcb1b..4c7256e 160000 --- a/django-helm-chart +++ b/django-helm-chart @@ -1 +1 @@ -Subproject commit ccfcb1bc23415b173a997f0844a1b20ca81fc7c8 +Subproject commit 4c7256e5c96d18e4f187074354690a11d65b57fe diff --git a/values.yaml b/values.yaml index 6e1c49c..415b0b5 100644 --- a/values.yaml +++ b/values.yaml @@ -1,7 +1,7 @@ # Default values for glitchtip. image: repository: glitchtip/glitchtip - tag: v2.0.6 + tag: v4.1.1 pullPolicy: IfNotPresent imagePullSecrets: [] @@ -12,20 +12,26 @@ env: normal: ENABLE_SOCIAL_AUTH: false GLITCHTIP_DOMAIN: https://example.com - CELERY_WORKER_CONCURRENCY: "2" # Remove to set to number of cpus + CELERY_WORKER_AUTOSCALE: "1,3" + CELERY_WORKER_MAX_TASKS_PER_CHILD: "10000" secret: SECRET_KEY: # Required # DATABASE_URL: Specify if using external postgres (not managed by this chart) # REDIS_URL: Specify if using external redis (not managed by this chart) +migrationJob: + enabled: true + command: ["bin/run-migrate.sh"] + activeDeadlineSeconds: 900 + web: replicaCount: 2 autoscaling: enabled: false minReplicas: 2 maxReplicas: 10 - targetCPUUtilizationPercentage: 80 - # targetMemoryUtilizationPercentage: 80 + targetCPU: 80 + # targetMemory: 80 budget: minAvailable: 1 resources: @@ -34,9 +40,10 @@ web: memory: 512Mi requests: cpu: 100m - memory: 128Mi + memory: 256Mi nodeSelector: {} tolerations: [] + podAnnotations: {} affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: @@ -52,7 +59,7 @@ web: livenessProbe: failureThreshold: 5 initialDelaySeconds: 5 - timeoutSeconds: 2 + timeoutSeconds: 3 readinessProbe: failureThreshold: 10 initialDelaySeconds: 5 @@ -83,33 +90,80 @@ worker: autoscaling: enabled: false minReplicas: 1 - maxReplicas: 100 - targetCPUUtilizationPercentage: 90 - # targetMemoryUtilizationPercentage: 80 + maxReplicas: 10 + targetCPU: 100 + # targetMemory: 100 + livenessProbe: + initialDelaySeconds: 10 + periodSeconds: 60 + timeoutSeconds: 30 + exec: + command: + - "bash" + - "-c" + - "celery -A glitchtip inspect ping -d celery@$HOSTNAME | grep -q OK" resources: limits: cpu: 900m memory: 768Mi requests: cpu: 100m - memory: 128Mi + memory: 350Mi nodeSelector: {} tolerations: [] + podAnnotations: {} affinity: {} beat: enabled: true resources: limits: - cpu: 100m - memory: 120Mi + cpu: 200m + memory: 150Mi requests: cpu: 1m - memory: 90Mi + memory: 130Mi nodeSelector: {} tolerations: [] + podAnnotations: {} affinity: {} +flower: + enabled: false + image: + repository: mher/flower + tag: latest + pullPolicy: IfNotPresent + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + nodeSelector: {} + tolerations: [] + podAnnotations: {} + affinity: {} + service: + type: ClusterIP + port: 80 + ingress: + enabled: false + annotations: + {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + serviceAccount: # Specifies whether a service account should be created create: false @@ -117,7 +171,7 @@ serviceAccount: # If not set and create is true, a name is generated using the fullname template name: - +# For configuration options, see https://artifacthub.io/packages/helm/bitnami/redis redis: enabled: true architecture: standalone @@ -128,7 +182,8 @@ redis: enabled: false # Default to disabled, use a managed database service. But can be enabled here. +# For configuration options, see https://artifacthub.io/packages/helm/bitnami/postgresql postgresql: enabled: false - #auth: - # password: # Must be set + # auth: + # postgresPassword: # Must be set