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 e3695fd..4973b71 100644 --- a/Chart.lock +++ b/Chart.lock @@ -1,9 +1,9 @@ dependencies: - name: postgresql repository: https://charts.bitnami.com/bitnami - version: 11.6.18 + version: 15.5.16 - name: redis repository: https://charts.bitnami.com/bitnami - version: 17.0.4 -digest: sha256:8172ba27977681f7e56de0b6b2ccfb016077a1b9ef840f6b38e8749fb818dac6 -generated: "2022-07-22T09:44:08.682238228-04: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 f646d0f..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.2 +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: 1.0.0 +appVersion: 4.1.1 icon: https://glitchtip.gitlab.io/glitchtip-helm-chart/icon.svg dependencies: - name: postgresql - version: ~11.6.17 + version: ^15.2.5 repository: https://charts.bitnami.com/bitnami condition: postgresql.enabled - name: redis - version: ~17.0.2 + 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-11.6.18.tgz b/charts/postgresql-11.6.18.tgz deleted file mode 100644 index c980f10..0000000 Binary files a/charts/postgresql-11.6.18.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.0.4.tgz b/charts/redis-17.0.4.tgz deleted file mode 100644 index ddd7e7c..0000000 Binary files a/charts/redis-17.0.4.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 e55c494..4c7256e 160000 --- a/django-helm-chart +++ b/django-helm-chart @@ -1 +1 @@ -Subproject commit e55c49432c64be18c2f18a3129c38e17959066d5 +Subproject commit 4c7256e5c96d18e4f187074354690a11d65b57fe diff --git a/values.sample.yaml b/values.sample.yaml index 08f10d5..b1d8075 100644 --- a/values.sample.yaml +++ b/values.sample.yaml @@ -1,5 +1,5 @@ image: - tag: v1.12.0 # Make this the latest version, then change it to upgrade + tag: v2.0.4 # Make this the latest version, then change it to upgrade pullPolicy: IfNotPresent env: normal: diff --git a/values.yaml b/values.yaml index 26f40ae..415b0b5 100644 --- a/values.yaml +++ b/values.yaml @@ -1,8 +1,8 @@ # Default values for glitchtip. image: repository: glitchtip/glitchtip - tag: latest - pullPolicy: Always + tag: v4.1.1 + pullPolicy: IfNotPresent imagePullSecrets: [] nameOverride: "" @@ -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,26 +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: 200m + memory: 150Mi + requests: + cpu: 1m + 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 @@ -110,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 @@ -121,6 +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 - postgresqlPassword: # Must be set + # auth: + # postgresPassword: # Must be set