diff --git a/.github/workflows/helm-test.yaml b/.github/workflows/helm-test.yaml index 66b298f0..aa080c02 100644 --- a/.github/workflows/helm-test.yaml +++ b/.github/workflows/helm-test.yaml @@ -26,6 +26,51 @@ jobs: - run: helm lint deploy/charts/version-checker + docs: + name: Generate Helm Docs + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.ref }} + - name: Check for values.yaml changes + uses: dorny/paths-filter@v2 + id: filter + with: + filters: | + values: + - 'deploy/charts/version-checker/values.yaml' + - name: Install Helm Docs + if: steps.filter.outputs.values == 'true' + uses: envoy/install-helm-docs@v1.0.0 + with: + version: 1.11.0 + - name: Update Helm Docs + run: | + set -ex + cd deploy/charts/version-checker + helm-docs + - name: Check for README.md changes + uses: dorny/paths-filter@v2 + id: filter-readme + with: + base: HEAD + filters: | + readme: + - 'deploy/charts/version-checker/README.md' + - name: Commit Helm Docs + if: steps.filter-readme.outputs.readme == 'true' + run: | + set -ex + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + git add deploy/charts/version-checker + git commit -m "[HELM] Update helm docs" + git push + + test: name: Run unit tests for Helm Chart runs-on: ubuntu-latest diff --git a/deploy/charts/version-checker/README.md b/deploy/charts/version-checker/README.md new file mode 100644 index 00000000..7e2c907c --- /dev/null +++ b/deploy/charts/version-checker/README.md @@ -0,0 +1,60 @@ +# version-checker + +![Version: v0.3.2](https://img.shields.io/badge/Version-v0.3.2-informational?style=flat-square) ![AppVersion: v0.3.2](https://img.shields.io/badge/AppVersion-v0.3.2-informational?style=flat-square) + +A Helm chart for version-checker + +**Homepage:** + +## Maintainers + +| Name | Email | Url | +| ---- | ------ | --- | +| davidcollom | | | + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| acr | object | `{"password":null,"refreshToken":null,"username":null}` | Azure Container Registry Credentials Configuration | +| acr.password | string | `nil` | | +| acr.refreshToken | string | `nil` | | +| acr.username | string | `nil` | | +| additionalAnnotations | object | `{}` | | +| additionalLabels | object | `{}` | | +| docker.password | string | `nil` | | +| docker.token | string | `nil` | | +| docker.username | string | `nil` | | +| ecr.accessKeyID | string | `nil` | | +| ecr.iamRoleArn | string | `nil` | Provide AWS EKS Iam Role ARN following: [Specify A ServiceAccount Role](https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html) | +| ecr.secretAccessKey | string | `nil` | | +| ecr.sessionToken | string | `nil` | | +| env | object | `{}` | Can be used to provide custom environment variables e.g. proxy settings | +| gcr.token | string | `nil` | | +| ghcr.token | string | `nil` | | +| image.pullPolicy | string | `"IfNotPresent"` | Set the Image Pull Policy | +| image.repository | string | `"quay.io/jetstack/version-checker"` | | +| image.tag | string | `nil` | Override the chart version | +| livenessProbe | object | `{"enabled":true,"httpGet":{"path":"/readyz","port":8080},"initialDelaySeconds":3,"periodSeconds":3}` | Configure the healthcheck probe for version-checker | +| livenessProbe.enabled | bool | `true` | Enable/Disable the setting of a livenessProbe | +| prometheus | object | `{"enabled":false,"replicas":1,"serviceAccountName":"prometheus"}` | Prometheus Operator | +| prometheus.enabled | bool | `false` | Deploy a Prometheus-Operator Prometheus Object to collect version-checker metrics | +| prometheus.serviceAccountName | string | `"prometheus"` | ServiceAccount for new Prometheus Object | +| quay.token | string | `nil` | | +| readinessProbe | object | `{"enabled":true,"httpGet":{"path":"/readyz","port":8080},"initialDelaySeconds":3,"periodSeconds":3}` | Configure the readiness probe for version-checker | +| readinessProbe.enabled | bool | `true` | Enable/Disable the setting of a readinessProbe | +| replicaCount | int | `1` | Replica Count for version-checker | +| resources | object | `{}` | Setup version-checkers resource requests/limits | +| selfhosted | []{name: "", host: "", username:"", password:"", token:""}] | `[]` | Setup a number of SelfHosted Repositories and their credentials | +| service | object | `{"annotations":{},"labels":{},"port":8080}` | Configure version-checkers Service | +| service.port | int | `8080` | Port to expose within the service | +| serviceMonitor | object | `{"additionalLabels":{},"enabled":false}` | Configure a Prometheus-Operator ServiceMonitor object | +| serviceMonitor.enabled | bool | `false` | Disable/Enable ServiceMonitor Object | +| versionChecker | object | `{"imageCacheTimeout":"30m","logLevel":"info","metricsServingAddress":"0.0.0.0:8080","testAllContainers":true}` | Configure version-checkers behaviour | +| versionChecker.imageCacheTimeout | string | `"30m"` | How long to hold on to image tags and their versions | +| versionChecker.logLevel | string | `"info"` | Configure version-checkers logging, valid options are: debug, info, warn, error, fatal, panic | +| versionChecker.metricsServingAddress | string | `"0.0.0.0:8080"` | Port/interface to which version-checker should bind too | +| versionChecker.testAllContainers | bool | `true` | Enable/Disable the requirement for an enable.version-checker.io annotation on pods. | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) diff --git a/deploy/charts/version-checker/values.yaml b/deploy/charts/version-checker/values.yaml index 0c4acc1e..24132933 100644 --- a/deploy/charts/version-checker/values.yaml +++ b/deploy/charts/version-checker/values.yaml @@ -2,62 +2,90 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. +# -- Replica Count for version-checker replicaCount: 1 +# -- Additional Labels to apply to Service and Deployment/Pod Objects additionalLabels: {} +# -- Additional Annotations to apply to Service and Deployment/Pod Objects additionalAnnotations: {} image: repository: quay.io/jetstack/version-checker - # Override the chart version + # -- Override the chart version tag: + # -- Set the Image Pull Policy pullPolicy: IfNotPresent +# -- Configure version-checkers Service service: labels: {} annotations: {} + # -- Port to expose within the service port: 8080 +# -- Configure version-checkers behaviour versionChecker: + # versionChecker.imageCacheTimeout -- How long to hold on to image tags and their versions imageCacheTimeout: 30m - logLevel: info # debug, info, warn, error, fatal, panic + # versionChecker.logLevel -- Configure version-checkers logging, valid options are: debug, info, warn, error, fatal, panic + logLevel: info + # versionChecker.metricsServingAddress -- Port/interface to which version-checker should bind too metricsServingAddress: 0.0.0.0:8080 - testAllContainers: true # don't require the enable.version-checker.io annotation + # versionChecker.testAllContainers -- Enable/Disable the requirement for an enable.version-checker.io annotation on pods. + testAllContainers: true +# -- Azure Container Registry Credentials Configuration acr: + # acr.username -- (string) username: + # acr.password -- (string) password: + # acr.refreshToken -- (string) refreshToken: +# Docker Hub Credentials Configuration docker: + # docker.username -- (string) username: + # docker.password -- (string) password: + # docker.token -- (string) token: +# Amazon Elastic Container Registry Credentials Configuration ecr: - # in AWS EKS use the following - # https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html + # -- (string) Provide AWS EKS Iam Role ARN following: [Specify A ServiceAccount Role](https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html) iamRoleArn: - # else use the AWS credentials + # -- (string) accessKeyID: + # -- (string) secretAccessKey: + # -- (string) sessionToken: +# Google Container Registry Credentials Configuration gcr: + # gcr.token -- (string) token: +# Google Artifact Registry Credentials Configuration ghcr: + # ghcr.token -- (string) token: +# Quay.io Registry Credentials Configuration quay: + # quay.token -- (string) token: -# Can be used to provide custom environment variables e.g. proxy settings +# -- Can be used to provide custom environment variables e.g. proxy settings env: {} +# -- ([]{name: "", host: "", username:"", password:"", token:""}]) Setup a number of SelfHosted Repositories and their credentials selfhosted: - {} + [] #- name: REGISTRY # host: http://registry:5000 # username: @@ -69,6 +97,7 @@ selfhosted: # password: bar # token: +# -- Setup version-checkers resource requests/limits resources: {} # limits: @@ -79,7 +108,9 @@ resources: # memory: 128Mi # +# -- Configure the readiness probe for version-checker readinessProbe: + # readinessProbe.enabled -- Enable/Disable the setting of a readinessProbe enabled: true httpGet: path: /readyz @@ -87,7 +118,9 @@ readinessProbe: initialDelaySeconds: 3 periodSeconds: 3 +# -- Configure the healthcheck probe for version-checker livenessProbe: + # livenessProbe.enabled -- Enable/Disable the setting of a livenessProbe enabled: true httpGet: path: /readyz @@ -95,12 +128,16 @@ livenessProbe: initialDelaySeconds: 3 periodSeconds: 3 -# Prometheus Operator +# -- Prometheus Operator prometheus: + # -- Deploy a Prometheus-Operator Prometheus Object to collect version-checker metrics enabled: false replicas: 1 + # -- ServiceAccount for new Prometheus Object serviceAccountName: prometheus +# -- Configure a Prometheus-Operator ServiceMonitor object serviceMonitor: + # serviceMonitor.enabled -- Disable/Enable ServiceMonitor Object enabled: false additionalLabels: {}