diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 47902aab..d82687ff 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -29,6 +29,7 @@ even continue reviewing your changes. #### Which issue this PR fixes + *(optional, in `fixes #(, fixes #, ...)` format, will close that issue when PR gets merged)* - fixes # @@ -37,6 +38,7 @@ even continue reviewing your changes. #### Checklist + [Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.] - [ ] Chart Version bumped - [ ] Variables are documented in the README.md diff --git a/.github/ct.yaml b/.github/ct.yaml index 613e7838..7980d9f2 100644 --- a/.github/ct.yaml +++ b/.github/ct.yaml @@ -1,3 +1,4 @@ +--- chart-dirs: . chart-repos: - bitnami=https://charts.bitnami.com/bitnami diff --git a/.github/kind-config.yaml b/.github/kind-config.yaml index 752e993c..ae8cd304 100644 --- a/.github/kind-config.yaml +++ b/.github/kind-config.yaml @@ -1,6 +1,6 @@ kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: -- role: control-plane -- role: worker -- role: worker + - role: control-plane + - role: worker + - role: worker diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 19dcc3b4..5c8789f1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,37 +8,24 @@ on: - 'zammad/**' env: - helm-version: "v3.7.1" - kubeconform-version: "v0.4.12" + helm-version: "v3.8.2" + kubeconform-version: "v0.4.13" jobs: - codespell: - name: codespell - runs-on: ubuntu-20.04 - steps: - - name: Checkout Code - uses: actions/checkout@v2 - - name: Codespell - uses: codespell-project/actions-codespell@master - with: - skip: .git - exclude_file: .github/kubeconform.sh - ignore_words_list: iam,aks - check_filenames: true - check_hidden: true - super-linter: runs-on: ubuntu-20.04 steps: - name: Checkout Code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 + - name: Lint Code Base - uses: github/super-linter@v4.8.1 + uses: github/super-linter/slim@v4 env: DEFAULT_BRANCH: main GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + LINTER_RULES_PATH: .github/linters VALIDATE_ALL_CODEBASE: false VALIDATE_JSCPD: false VALIDATE_KUBERNETES_KUBEVAL: false @@ -48,7 +35,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up Helm @@ -70,17 +57,16 @@ jobs: strategy: matrix: k8s: - - v1.19.11 - - v1.20.7 - - v1.21.2 - - v1.22.2 + - v1.21.10 + - v1.22.7 + - v1.23.5 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up Helm - uses: azure/setup-helm@v1.1 + uses: azure/setup-helm@v2.0 with: version: "${{ env.helm-version }}" - name: Run kubeconform @@ -97,24 +83,23 @@ jobs: strategy: matrix: k8s: - - v1.19.11 - - v1.20.7 - - v1.21.2 - # - v1.22.2 + - v1.21.10 + - v1.22.7 + - v1.23.5 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up Helm - uses: azure/setup-helm@v1.1 + uses: azure/setup-helm@v2.0 with: version: "${{ env.helm-version }}" - uses: actions/setup-python@v2 with: python-version: 3.7 - name: Set up chart-testing - uses: helm/chart-testing-action@v2.1.0 + uses: helm/chart-testing-action@v2.2.1 - name: Run chart-testing (list-changed) id: list-changed run: | diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 4024c063..58be0aa9 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -23,7 +23,7 @@ jobs: git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - name: Install Helm - uses: azure/setup-helm@v1.1 + uses: azure/setup-helm@v2.0 with: version: "${{ env.helm-version }}" diff --git a/.github/workflows/sync-readme.yaml b/.github/workflows/sync-readme.yaml index f4117f13..e790b0a0 100644 --- a/.github/workflows/sync-readme.yaml +++ b/.github/workflows/sync-readme.yaml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: copy README.md run: | diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d3f90d7c..87940ab1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,7 +38,7 @@ See `git help commit`: * Must pass [DCO check](#sign-off-your-work) * Must follow [Charts best practices](https://helm.sh/docs/topics/chart_best_practices/) * Must pass CI jobs for linting and installing changed charts with the [chart-testing](https://github.com/helm/chart-testing) tool -* Any change to a chart requires a version bump following [semver](https://semver.org/) principles. See [Immutability](#immutability) and [Versioning](#versioning) below +* Any change to a chart requires a version bump following [SemVer](https://semver.org/) principles. See [Immutability](#immutability) and [Versioning](#versioning) below Once changes have been merged, the release job will automatically run to package and release changed charts. @@ -48,7 +48,7 @@ Chart releases must be immutable. Any change to a chart warrants a chart version ### Versioning -The chart `version` should follow [semver](https://semver.org/). +The chart `version` should follow [SemVer](https://semver.org/). Charts should start at `1.0.0`. Any breaking (backwards incompatible) changes to a chart should: diff --git a/README.md b/README.md index f905abd6..8bf19536 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,12 @@ A [Helm](https://helm.sh) chart to install [Zammad](https://zammad.org) on [Kubernetes](https://kubernetes.io) -## Repo Info +## Repository Info [![Releases downloads](https://img.shields.io/github/downloads/zammad/zammad-helm/total.svg)](https://github.com/zammad/zammad-helm/releases) [![Release Charts](https://github.com/zammad/zammad-helm/workflows/Release%20Charts/badge.svg)](https://github.com/zammad/zammad-helm/commits/master) -## Add the Helm repo via +## Add the Helm repository via ```console helm repo add zammad https://zammad.github.io/zammad-helm @@ -22,11 +22,11 @@ Due to this charts dependencies the following minimum version requirements apply ## Sources -The charts sources can be found here: +The Helm charts sources can be found here: * [https://github.com/zammad/zammad-helm](https://github.com/zammad/zammad-helm) -The repo source can be found here: +The repository source can be found here: * [https://github.com/zammad/zammad-helm/tree/gh-pages](https://github.com/zammad/zammad-helm/tree/gh-pages) @@ -34,6 +34,6 @@ Helm releases can be found here: * [https://github.com/zammad/zammad-helm/releases](https://github.com/zammad/zammad-helm/releases) -## Adding changes to this repo +## Adding changes to this repository See our [contributing guidelines](https://github.com/zammad/zammad-helm/blob/master/CONTRIBUTING.md). diff --git a/zammad/Chart.yaml b/zammad/Chart.yaml index a9932cf8..26c15da0 100644 --- a/zammad/Chart.yaml +++ b/zammad/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: zammad -version: 6.3.1 +version: 6.4.0 appVersion: 5.1.0 description: Zammad is a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and e-mails. home: https://zammad.org @@ -17,17 +17,17 @@ maintainers: dependencies: - name: elasticsearch repository: https://helm.elastic.co - version: 7.16.3 + version: 7.17.3 condition: zammadConfig.elasticsearch.enabled - name: memcached - version: 6.0.2 + version: 6.0.16 repository: https://charts.bitnami.com/bitnami condition: zammadConfig.memcached.enabled - name: postgresql - version: 10.12.8 + version: 10.16.2 repository: https://charts.bitnami.com/bitnami condition: zammadConfig.postgresql.enabled - name: redis - version: 15.7.6 + version: 16.8.7 repository: https://charts.bitnami.com/bitnami condition: zammadConfig.redis.enabled diff --git a/zammad/README.md b/zammad/README.md index d12a7325..0e2f5dcc 100644 --- a/zammad/README.md +++ b/zammad/README.md @@ -13,7 +13,7 @@ This directory contains a Kubernetes chart to deploy [Zammad](https://zammad.org This chart will do the following: - Install Zammad statefulset -- Install Elasticsearch, Memcached & PostgreSQL as requirements +- Install Elasticsearch, Memcached, PostgreSQL & Redis as requirements ## Installing the Chart @@ -28,89 +28,89 @@ helm upgrade --install zammad zammad/zammad --namespace zammad The following table lists the configurable parameters of the zammad chart and their default values. -| Parameter | Description | Default | -| ---------------------------------------------- | ------------------------------------------------ | ------------------------------- | -| `image.repository` | Container image to use | `zammad/zammad-docker-compose` | -| `image.tag` | Container image tag to deploy | `5.1.0-4` | -| `image.pullPolicy` | Container pull policy | `IfNotPresent` | -| `image.imagePullSecrets` | An array of imagePullSecrets | `[]` | -| `service.type` | Service type | `ClusterIP` | -| `service.port` | Service port | `8080` | -| `ingress.enabled` | Enable Ingress | `false` | -| `ingress.annotations` | Additional ingress annotations | `""` | -| `ingress.className` | Use IngressClassName | `""` | -| `ingress.hosts` | Ingress hosts | `""` | -| `ingress.tls` | Ingress TLS | `[]` | -| `zammadConfig.elasticsearch.enabled` | Use Elasticsearch chart dependency | `true` | -| `zammadConfig.elasticsearch.schema` | Elasticsearch schema | `http` | -| `zammadConfig.elasticsearch.host` | Elasticsearch host | `zammad-master` | -| `zammadConfig.elasticsearch.initialisation` | Run zammad specific Elasticsearch initialisation | `true` | -| `zammadConfig.elasticsearch.port` | Elasticsearch port | `9200` | -| `zammadConfig.elasticsearch.user` | Elasticsearch user | `""` | -| `zammadConfig.elasticsearch.pass` | Elasticsearch pass | `""` | -| `zammadConfig.elasticsearch.reindex` | Elasticsearch reindex is run on start | `true` | -| `zammadConfig.memcached.enabled` | Use Memcached dependency | `true` | -| `zammadConfig.memcached.host` | Memcached host | `zammad-memcached` | -| `zammadConfig.memcached.port` | Memcached port | `11211` | -| `zammadConfig.nginx.websocketExtraHeaders` | Additional nginx headers for ws location | `[]` | -| `zammadConfig.nginx.extraHeaders` | Additional nginx headers for / location | `[]` | -| `zammadConfig.nginx.knowledgeBaseUrl` | Value of custom url for knowledge base | `""` | -| `zammadConfig.nginx.resources` | Resource usage of Zammad's nginx container | `{}` | -| `zammadConfig.nginx.livenessProbe` | Liveness probe for the nginx container | see values.yaml | -| `zammadConfig.nginx.readinessProbe` | Readiness probe for the nginx container | see values.yaml | -| `zammadConfig.postgresql.enabled` | Use PostgreSQL dependency | `true` | -| `zammadConfig.postgresql.host` | PostgreSql host | `zammad-postgresql` | -| `zammadConfig.postgresql.port` | PostgreSql port | `5432` | -| `zammadConfig.postgresql.pass` | PostgreSql pass | `""` | -| `zammadConfig.postgresql.user` | PostgreSql user | `zammad` | -| `zammadConfig.postgresql.db` | PostgreSql database | `zammad_production` | -| `zammadConfig.railsserver.resources` | Resource usage of Zammad's railsserver container | `{}` | -| `zammadConfig.railsserver.livenessProbe` | Liveness probe for the railsserver container | see values.yaml | -| `zammadConfig.railsserver.readinessProbe` | Readiness probe for the railsserver container | see values.yaml | -| `zammadConfig.railsserver.trustedProxies` | Configure Rails trusted proxies | `"['127.0.0.1', '::1']"` | -| `zammadConfig.redis.enabled` | Use REdis chart dependency | `true` | -| `zammadConfig.redis.host` | Redis host | `zammad-redis` | -| `zammadConfig.redis.port` | Redis port | `6379` | -| `zammadConfig.scheduler.resources` | Resource usage of Zammad's scheduler container | `{}` | -| `zammadConfig.websocket.resources` | Resource usage of Zammad's websocket container | `{}` | -| `zammadConfig.websocket.livenessProbe` | Liveness probe for the websocket container | see values.yaml | -| `zammadConfig.websocket.readinessProbe` | Readiness probe for the websocket container | see values.yaml | -| `zammadConfig.initContainers` | Resources for the different init containers | see values.yaml | -| `autoWizard.enabled` | enable autowizard | `false` | -| `autoWizard.config` | autowizard json config | `""` | -| `podAnnotations` | Annotations for Pods | `{}` | -| `volumePermissions.enabled` | Enable data volume permissions correction | `false` | -| `volumePermissions.image.repository` | initContainer image to use | `alpine` | -| `volumePermissions.image.tag` | initContainer image tag to deploy | `3.14` | -| `volumePermissions.image.pullPolicy` | initContainer pull policy | `IfNotPresent` | -| `persistence.enabled` | Enable persistence | `true` | -| `persistence.accessModes` | Access modes | `["ReadWriteOnce"]` | -| `persistence.size` | Volume size | `15Gi` | -| `persistence.storageClass` | storage class | `""` | -| `persistence.annotations` | annotations | `{}` | -| `nodeSelector` | Node Selector | `{}` | -| `tolerations` | Tolerations | `[]` | -| `affinity` | Affinity | `{}` | -| `serviceAccount.create` | Create service accounnt | `false` | -| `serviceAccount.annotations` | Service account annotations | `{}` | -| `serviceAccount.name` | Service account name | `""` | -| `rbac.create` | Create RBAC | `false` | -| `podSecurityPolicy.enabled` | Enable podSecurityPolicy | `false` | -| `podSecurityPolicy.create` | Create podSecurityPolicy | `false` | -| `podSecurityPolicy.annotations` | PodSecurityPolicy annotations | `{}` | -| `podSecurityPolicy.name` | PodSecurityPolicy name | `""` | -| `elasticsearch.image` | Elasticsearch docker image | `zammad/zammad-docker-compose` | -| `elasticsearch.imageTag` | Elasticsearch docker image tag | `zammad-elasticsearch-5.1.0-4` | -| `elasticsearch.clusterName` | Elasticsearch cluster name | `zammad` | -| `elasticsearch.replicas` | Elasticsearch replicas | `1` | -| `elasticsearch.clusterHealthCheckParams` | Workaround to get ES test work in GitHubCI | `"timeout=1s"` | -| `memcached.replicaCount` | Memcached replicas | `1` | -| `postgresql.postgresqlUsername` | PostgreSQL user | `zammad` | -| `postgresql.postgresqlPassword` | PostgreSQL password | `zammad` | -| `postgresql.postgresqlDatabase` | PostgreSQL DB | `zammad_production` | -| `redis.architecture` | Redis architecture | `standalone` | -| `redis.auth.password` | Redis auth password | `zammad` | -| `redis.master.resources` | Set Redis resources | `{}` | +| Parameter | Description | Default | +| ------------------------------------------- | ------------------------------------------------ | ------------------------------- | +| `image.repository` | Container image to use | `zammad/zammad-docker-compose` | +| `image.tag` | Container image tag to deploy | `5.1.1-10` | +| `image.pullPolicy` | Container pull policy | `IfNotPresent` | +| `image.imagePullSecrets` | An array of imagePullSecrets | `[]` | +| `service.type` | Service type | `ClusterIP` | +| `service.port` | Service port | `8080` | +| `ingress.enabled` | Enable Ingress | `false` | +| `ingress.annotations` | Additional ingress annotations | `""` | +| `ingress.className` | Use IngressClassName | `""` | +| `ingress.hosts` | Ingress hosts | `""` | +| `ingress.tls` | Ingress TLS | `[]` | +| `zammadConfig.elasticsearch.enabled` | Use Elasticsearch chart dependency | `true` | +| `zammadConfig.elasticsearch.schema` | Elasticsearch schema | `http` | +| `zammadConfig.elasticsearch.host` | Elasticsearch host | `zammad-master` | +| `zammadConfig.elasticsearch.initialisation` | Run zammad specific Elasticsearch initialisation | `true` | +| `zammadConfig.elasticsearch.port` | Elasticsearch port | `9200` | +| `zammadConfig.elasticsearch.user` | Elasticsearch user | `""` | +| `zammadConfig.elasticsearch.pass` | Elasticsearch pass | `""` | +| `zammadConfig.elasticsearch.reindex` | Elasticsearch reindex is run on start | `true` | +| `zammadConfig.memcached.enabled` | Use Memcached dependency | `true` | +| `zammadConfig.memcached.host` | Memcached host | `zammad-memcached` | +| `zammadConfig.memcached.port` | Memcached port | `11211` | +| `zammadConfig.nginx.websocketExtraHeaders` | Additional nginx headers for ws location | `[]` | +| `zammadConfig.nginx.extraHeaders` | Additional nginx headers for / location | `[]` | +| `zammadConfig.nginx.knowledgeBaseUrl` | Value of custom URL for knowledge base | `""` | +| `zammadConfig.nginx.resources` | Resource usage of Zammad's nginx container | `{}` | +| `zammadConfig.nginx.livenessProbe` | Liveness probe for the nginx container | see values.yaml | +| `zammadConfig.nginx.readinessProbe` | Readiness probe for the nginx container | see values.yaml | +| `zammadConfig.postgresql.enabled` | Use PostgreSQL dependency | `true` | +| `zammadConfig.postgresql.host` | PostgreSql host | `zammad-postgresql` | +| `zammadConfig.postgresql.port` | PostgreSql port | `5432` | +| `zammadConfig.postgresql.pass` | PostgreSql pass | `""` | +| `zammadConfig.postgresql.user` | PostgreSql user | `zammad` | +| `zammadConfig.postgresql.db` | PostgreSql database | `zammad_production` | +| `zammadConfig.railsserver.resources` | Resource usage of Zammad's railsserver container | `{}` | +| `zammadConfig.railsserver.livenessProbe` | Liveness probe for the railsserver container | see values.yaml | +| `zammadConfig.railsserver.readinessProbe` | Readiness probe for the railsserver container | see values.yaml | +| `zammadConfig.railsserver.trustedProxies` | Configure Rails trusted proxies | `"['127.0.0.1', '::1']"` | +| `zammadConfig.redis.enabled` | Use REdis chart dependency | `true` | +| `zammadConfig.redis.host` | Redis host | `zammad-redis` | +| `zammadConfig.redis.port` | Redis port | `6379` | +| `zammadConfig.scheduler.resources` | Resource usage of Zammad's scheduler container | `{}` | +| `zammadConfig.websocket.resources` | Resource usage of Zammad's websocket container | `{}` | +| `zammadConfig.websocket.livenessProbe` | Liveness probe for the websocket container | see values.yaml | +| `zammadConfig.websocket.readinessProbe` | Readiness probe for the websocket container | see values.yaml | +| `zammadConfig.initContainers` | Resources for the different init containers | see values.yaml | +| `autoWizard.enabled` | enable autowizard | `false` | +| `autoWizard.config` | autowizard json config | `""` | +| `podAnnotations` | Annotations for Pods | `{}` | +| `volumePermissions.enabled` | Enable data volume permissions correction | `false` | +| `volumePermissions.image.repository` | initContainer image to use | `alpine` | +| `volumePermissions.image.tag` | initContainer image tag to deploy | `3.14` | +| `volumePermissions.image.pullPolicy` | initContainer pull policy | `IfNotPresent` | +| `persistence.enabled` | Enable persistence | `true` | +| `persistence.accessModes` | Access modes | `["ReadWriteOnce"]` | +| `persistence.size` | Volume size | `15Gi` | +| `persistence.storageClass` | storage class | `""` | +| `persistence.annotations` | annotations | `{}` | +| `nodeSelector` | NodeSelector | `{}` | +| `tolerations` | Tolerations | `[]` | +| `affinity` | Affinity | `{}` | +| `serviceAccount.create` | Create service accounnt | `false` | +| `serviceAccount.annotations` | Service account annotations | `{}` | +| `serviceAccount.name` | Service account name | `""` | +| `rbac.create` | Create RBAC | `false` | +| `podSecurityPolicy.enabled` | Enable podSecurityPolicy | `false` | +| `podSecurityPolicy.create` | Create podSecurityPolicy | `false` | +| `podSecurityPolicy.annotations` | PodSecurityPolicy annotations | `{}` | +| `podSecurityPolicy.name` | PodSecurityPolicy name | `""` | +| `elasticsearch.image` | Elasticsearch docker image | `zammad/zammad-docker-compose` | +| `elasticsearch.imageTag` | Elasticsearch docker image tag | `zammad-elasticsearch-5.1.1-10` | +| `elasticsearch.clusterName` | Elasticsearch cluster name | `zammad` | +| `elasticsearch.replicas` | Elasticsearch replicas | `1` | +| `elasticsearch.clusterHealthCheckParams` | Workaround to get ES test work in GitHubCI | `"timeout=1s"` | +| `memcached.replicaCount` | Memcached replicas | `1` | +| `postgresql.postgresqlUsername` | PostgreSQL user | `zammad` | +| `postgresql.postgresqlPassword` | PostgreSQL password | `zammad` | +| `postgresql.postgresqlDatabase` | PostgreSQL DB | `zammad_production` | +| `redis.architecture` | Redis architecture | `standalone` | +| `redis.auth.password` | Redis auth password | `zammad` | +| `redis.master.resources` | Set Redis resources | `{}` | Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. diff --git a/zammad/values.yaml b/zammad/values.yaml index 202ddcbf..ddc328f9 100644 --- a/zammad/values.yaml +++ b/zammad/values.yaml @@ -1,6 +1,6 @@ image: repository: zammad/zammad-docker-compose - tag: 5.1.0-4 + tag: 5.1.1-10 pullPolicy: IfNotPresent imagePullSecrets: [] # - name: "image-pull-secret" @@ -308,7 +308,7 @@ podSecurityPolicy: # Settings for the elasticsearch subchart elasticsearch: image: "zammad/zammad-docker-compose" - imageTag: "zammad-elasticsearch-5.1.0-4" + imageTag: "zammad-elasticsearch-5.1.1-10" clusterName: zammad replicas: 1 # Workaround to get helm test to work in GitHub action CI @@ -369,7 +369,7 @@ redis: password: zammad master: resources: {} - # limits:https://charts.bitnami.com/bitnami + # limits: # cpu: 250m # memory: 256Mi # requests: