From 8c33c866b48e9ce39e5dfe3062f8112a472d498b Mon Sep 17 00:00:00 2001 From: jenkins-x-bot Date: Tue, 9 Jan 2024 12:47:36 +0000 Subject: [PATCH] chore: release 1.14.6 --- changelog.md | 6 + charts/lighthouse/Chart.yaml | 4 +- charts/lighthouse/README.md | 308 ++++++++++++------------ charts/lighthouse/lighthouse-1.14.6.tgz | Bin 0 -> 15771 bytes charts/lighthouse/values.yaml | 151 +----------- 5 files changed, 166 insertions(+), 303 deletions(-) create mode 100644 changelog.md create mode 100644 charts/lighthouse/lighthouse-1.14.6.tgz diff --git a/changelog.md b/changelog.md new file mode 100644 index 000000000..b8c0742aa --- /dev/null +++ b/changelog.md @@ -0,0 +1,6 @@ + +## Changes in version 1.14.6 + +* Reverse equality.Semantic.DeepEqual (Luke Addison) +* Pass Job object to retryModifyJob (Luke Addison) +* Use semantic DeepEqual in foghorn controller (Luke Addison) diff --git a/charts/lighthouse/Chart.yaml b/charts/lighthouse/Chart.yaml index edc18364e..302e90728 100644 --- a/charts/lighthouse/Chart.yaml +++ b/charts/lighthouse/Chart.yaml @@ -3,6 +3,6 @@ description: | This chart bootstraps installation of [Lighthouse](https://github.com/jenkins-x/lighthouse). icon: https://raw.githubusercontent.com/jenkins-x/jenkins-x-website/master/images/logo/jenkinsx-icon-color.svg name: lighthouse -version: 0.1.0-SNAPSHOT +version: 1.14.6 home: https://github.com/jenkins-x/lighthouse - +appVersion: 1.14.6 diff --git a/charts/lighthouse/README.md b/charts/lighthouse/README.md index ed4700eef..48370b1c7 100644 --- a/charts/lighthouse/README.md +++ b/charts/lighthouse/README.md @@ -42,157 +42,161 @@ helm uninstall my-lighthouse --namespace lighthouse ## Values -| Key | Type | Description | Default | -| --------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `cluster.crds.create` | bool | Create custom resource definitions | `true` | -| `configMaps.config` | string | Raw `config.yaml` content | `nil` | -| `configMaps.configUpdater` | object | Settings used to configure the `config-updater` plugin | `{"orgAndRepo":"","path":""}` | -| `configMaps.create` | bool | Enables creation of `config.yaml` and `plugins.yaml` config maps | `false` | -| `configMaps.plugins` | string | Raw `plugins.yaml` content | `nil` | -| `engines.jenkins` | bool | Enables the Jenkins engine | `false` | -| `engines.jx` | bool | Enables the jx engine | `true` | -| `engines.tekton` | bool | Enables the tekton engine | `false` | -| `env` | object | Environment variables | `{"JX_DEFAULT_IMAGE":""}` | -| `externalPlugins[0].name` | string | | `"cd-indicators"` | -| `externalPlugins[0].requiredResources[0].kind` | string | | `"Service"` | -| `externalPlugins[0].requiredResources[0].name` | string | | `"cd-indicators"` | -| `externalPlugins[0].requiredResources[0].namespace` | string | | `"jx"` | -| `externalPlugins[1].name` | string | | `"lighthouse-webui-plugin"` | -| `externalPlugins[1].requiredResources[0].kind` | string | | `"Service"` | -| `externalPlugins[1].requiredResources[0].name` | string | | `"lighthouse-webui-plugin"` | -| `externalPlugins[1].requiredResources[0].namespace` | string | | `"jx"` | -| `foghorn.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the foghorn pods | `{}` | -| `foghorn.image.pullPolicy` | string | Template for computing the foghorn controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | -| `foghorn.image.repository` | string | Template for computing the foghorn controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-foghorn"` | -| `foghorn.image.tag` | string | Template for computing the foghorn controller docker image tag | `"{{ .Values.image.tag }}"` | -| `foghorn.logLevel` | string | The logging level: trace, debug, info, warn, panic, fatal | `"info"` | -| `foghorn.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the foghorn pods | `{}` | -| `foghorn.replicaCount` | int | Number of replicas | `1` | -| `foghorn.resources.limits` | object | Resource limits applied to the foghorn pods | `{"cpu":"100m","memory":"256Mi"}` | -| `foghorn.resources.requests` | object | Resource requests applied to the foghorn pods | `{"cpu":"80m","memory":"128Mi"}` | -| `foghorn.terminationGracePeriodSeconds` | int | Termination grace period for foghorn pods | `180` | -| `foghorn.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the foghorn pods | `[]` | -| `gcJobs.backoffLimit` | int | Set the backoff limit for failed cronJobs | `6` | -| `gcJobs.concurrencyPolicy` | string | Drives the job's concurrency policy | `"Forbid"` | -| `gcJobs.failedJobsHistoryLimit` | int | Drives the failed jobs history limit | `1` | -| `gcJobs.image.pullPolicy` | string | Template for computing the gc job docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | -| `gcJobs.image.repository` | string | Template for computing the gc job docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-gc-jobs"` | -| `gcJobs.image.tag` | string | Template for computing the gc job docker image tag | `"{{ .Values.image.tag }}"` | -| `gcJobs.logLevel` | string | The logging level: trace, debug, info, warn, panic, fatal | `"info"` | -| `gcJobs.maxAge` | string | Max age from which `LighthouseJob`s will be deleted | `"168h"` | -| `gcJobs.schedule` | string | Cron expression to periodically delete `LighthouseJob`s | `"0/30 * * * *"` | -| `gcJobs.successfulJobsHistoryLimit` | int | Drives the successful jobs history limit | `3` | -| `git.kind` | string | Git SCM provider (`github`, `gitlab`, `stash`) | `"github"` | -| `git.server` | string | Git server URL | `""` | -| `githubApp.enabled` | bool | Enables GitHub app authentication | `false` | -| `githubApp.username` | string | GitHub app user name | `"jenkins-x[bot]"` | -| `hmacSecretName` | string | Existing hmac secret to use for webhooks | `""` | -| `hmacToken` | string | Secret used for webhooks | `""` | -| `hmacTokenEnabled` | bool | Enables the use of a hmac token. This should always be enabled if possible - though some git providers don't support it such as bitbucket cloud | `true` | -| `image.parentRepository` | string | Docker registry to pull images from | `"ghcr.io/jenkins-x"` | -| `image.pullPolicy` | string | Image pull policy | `"IfNotPresent"` | -| `image.tag` | string | Docker images tag the following tag is latest on the main branch, it's a specific version on a git tag | `"latest"` | -| `jenkinscontroller.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the tekton controller pods | `{}` | -| `jenkinscontroller.image.pullPolicy` | string | Template for computing the tekton controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | -| `jenkinscontroller.image.repository` | string | Template for computing the Jenkins controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-jenkins-controller"` | -| `jenkinscontroller.image.tag` | string | Template for computing the tekton controller docker image tag | `"{{ .Values.image.tag }}"` | -| `jenkinscontroller.jenkinsToken` | string | The token for authenticating the Jenkins user | `nil` | -| `jenkinscontroller.jenkinsURL` | string | The URL of the Jenkins instance | `nil` | -| `jenkinscontroller.jenkinsUser` | string | The username for the Jenkins user | `nil` | -| `jenkinscontroller.logLevel` | string | The logging level: trace, debug, info, warn, panic, fatal | `"info"` | -| `jenkinscontroller.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the tekton controller pods | `{}` | -| `jenkinscontroller.podAnnotations` | object | Annotations applied to the tekton controller pods | `{}` | -| `jenkinscontroller.resources.limits` | object | Resource limits applied to the tekton controller pods | `{"cpu":"100m","memory":"256Mi"}` | -| `jenkinscontroller.resources.requests` | object | Resource requests applied to the tekton controller pods | `{"cpu":"80m","memory":"128Mi"}` | -| `jenkinscontroller.service` | object | Service settings for the tekton controller | `{"annotations":{}}` | -| `jenkinscontroller.terminationGracePeriodSeconds` | int | Termination grace period for tekton controller pods | `180` | -| `jenkinscontroller.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the tekton controller pods | `[]` | -| `keeper.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the keeper pods | `{}` | -| `keeper.datadog.enabled` | string | Enables datadog | `"true"` | -| `keeper.env` | object | Lets you define keeper specific environment variables | `{}` | -| `keeper.image.pullPolicy` | string | Template for computing the keeper controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | -| `keeper.image.repository` | string | Template for computing the keeper controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-keeper"` | -| `keeper.image.tag` | string | Template for computing the keeper controller docker image tag | `"{{ .Values.image.tag }}"` | -| `keeper.livenessProbe` | object | Liveness probe configuration | `{"initialDelaySeconds":120,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | -| `keeper.logLevel` | string | The logging level: trace, debug, info, warn, panic, fatal | `"info"` | -| `keeper.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the keeper pods | `{}` | -| `keeper.podAnnotations` | object | Annotations applied to the keeper pods | `{}` | -| `keeper.probe` | object | Liveness and readiness probes settings | `{"path":"/"}` | -| `keeper.readinessProbe` | object | Readiness probe configuration | `{"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | -| `keeper.replicaCount` | int | Number of replicas | `1` | -| `keeper.resources.limits` | object | Resource limits applied to the keeper pods | `{"cpu":"400m","memory":"512Mi"}` | -| `keeper.resources.requests` | object | Resource requests applied to the keeper pods | `{"cpu":"100m","memory":"128Mi"}` | -| `keeper.service` | object | Service settings for the keeper controller | `{"externalPort":80,"internalPort":8888,"type":"ClusterIP"}` | -| `keeper.statusContextLabel` | string | Label used to report status to git provider | `"Lighthouse Merge Status"` | -| `keeper.terminationGracePeriodSeconds` | int | Termination grace period for keeper pods | `30` | -| `keeper.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the keeper pods | `[]` | -| `lighthouseJobNamespace` | string | Namespace where `LighthouseJob`s and `Pod`s are created | Deployment namespace | -| `logFormat` | string | Log format either json or stackdriver | `"json"` | -| `logService` | string | The name of the service registered with logging | `""` | -| `logStackSkip` | string | Comma separated stack frames to skip from the log | `""` | -| `oauthSecretName` | string | Existing Git token secret | `""` | -| `oauthToken` | string | Git token (used when GitHub app authentication is not enabled) | `""` | -| `poller.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the poller pods | `{}` | -| `poller.contextMatchPattern` | string | Regex pattern to use to match commit status context | `""` | -| `poller.datadog.enabled` | string | Enables datadog | `"true"` | -| `poller.enabled` | bool | Whether to enable or disable the poller component | `false` | -| `poller.env` | object | Lets you define poller specific environment variables | `{"POLL_HOOK_ENDPOINT":"http://hook/hook/poll","POLL_PERIOD":"20s"}` | -| `poller.image.pullPolicy` | string | Template for computing the poller controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | -| `poller.image.repository` | string | Template for computing the poller controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-poller"` | -| `poller.image.tag` | string | Template for computing the poller controller docker image tag | `"{{ .Values.image.tag }}"` | -| `poller.internalPort` | int | | `8888` | -| `poller.livenessProbe` | object | Liveness probe configuration | `{"initialDelaySeconds":120,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | -| `poller.logLevel` | string | The logging level: trace, debug, info, warn, panic, fatal | `"info"` | -| `poller.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the poller pods | `{}` | -| `poller.podAnnotations` | object | Annotations applied to the poller pods | `{}` | -| `poller.probe` | object | Liveness and readiness probes settings | `{"path":"/"}` | -| `poller.readinessProbe` | object | Readiness probe configuration | `{"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | -| `poller.replicaCount` | int | Number of replicas | `1` | -| `poller.requireReleaseSuccess` | bool | Keep polling releases until the most recent commit status is successful | `false` | -| `poller.resources.limits` | object | Resource limits applied to the poller pods | `{"cpu":"400m","memory":"512Mi"}` | -| `poller.resources.requests` | object | Resource requests applied to the poller pods | `{"cpu":"100m","memory":"128Mi"}` | -| `poller.terminationGracePeriodSeconds` | int | Termination grace period for poller pods | `30` | -| `poller.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the poller pods | `[]` | -| `scope` | string | set scope to either `cluster` or `namespace` for permissions | `cluster` | -| `tektoncontroller.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the tekton controller pods | `{}` | -| `tektoncontroller.dashboardTemplate` | string | Go template expression for URLs in the dashboard if not using Tekton dashboard | `""` | -| `tektoncontroller.dashboardURL` | string | the dashboard URL (e.g. Tekton dashboard) | `""` | -| `tektoncontroller.image.pullPolicy` | string | Template for computing the tekton controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | -| `tektoncontroller.image.repository` | string | Template for computing the tekton controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-tekton-controller"` | -| `tektoncontroller.image.tag` | string | Template for computing the tekton controller docker image tag | `"{{ .Values.image.tag }}"` | -| `tektoncontroller.logLevel` | string | The logging level: trace, debug, info, warn, panic, fatal | `"info"` | -| `tektoncontroller.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the tekton controller pods | `{}` | -| `tektoncontroller.podAnnotations` | object | Annotations applied to the tekton controller pods | `{}` | -| `tektoncontroller.replicaCount` | int | Number of replicas | `1` | -| `tektoncontroller.resources.limits` | object | Resource limits applied to the tekton controller pods | `{"cpu":"100m","memory":"256Mi"}` | -| `tektoncontroller.resources.requests` | object | Resource requests applied to the tekton controller pods | `{"cpu":"80m","memory":"128Mi"}` | -| `tektoncontroller.service` | object | Service settings for the tekton controller | `{"annotations":{}}` | -| `tektoncontroller.terminationGracePeriodSeconds` | int | Termination grace period for tekton controller pods | `180` | -| `tektoncontroller.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the tekton controller pods | `[]` | -| `user` | string | Git user name (used when GitHub app authentication is not enabled) | `""` | -| `webhooks.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the webhooks pods | `{}` | -| `webhooks.customDeploymentTriggerCommand` | string | deployments can configure the ability to allow custom lighthouse triggers using their own unique chat prefix, for example extending the default `/test` trigger prefix let them specify `customDeploymentTriggerPrefix: foo` which means they can also use their own custom trigger /foo mycoolthing | `""` | -| `webhooks.image.pullPolicy` | string | Template for computing the webhooks controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | -| `webhooks.image.repository` | string | Template for computing the webhooks controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-webhooks"` | -| `webhooks.image.tag` | string | Template for computing the webhooks controller docker image tag | `"{{ .Values.image.tag }}"` | -| `webhooks.ingress.annotations` | object | Webhooks ingress annotations | `{}` | -| `webhooks.ingress.enabled` | bool | Enable webhooks ingress | `false` | -| `webhooks.ingress.hosts` | list | Webhooks ingress host names | `[]` | -| `webhooks.ingress.ingressClassName` | string | Webhooks ingress ingressClassName | `nil` | -| `webhooks.labels` | object | allow optional labels to be added to the webhook deployment | `{}` | -| `webhooks.livenessProbe` | object | Liveness probe configuration | `{"initialDelaySeconds":60,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | -| `webhooks.logLevel` | string | The logging level: trace, debug, info, warn, panic, fatal | `"info"` | -| `webhooks.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the webhooks pods | `{}` | -| `webhooks.podAnnotations` | object | Annotations applied to the webhooks pods | `{}` | -| `webhooks.podLabels` | object | | `{}` | -| `webhooks.probe` | object | Liveness and readiness probes settings | `{"path":"/"}` | -| `webhooks.readinessProbe` | object | Readiness probe configuration | `{"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | -| `webhooks.replicaCount` | int | Number of replicas | `1` | -| `webhooks.resources.limits` | object | Resource limits applied to the webhooks pods | `{"cpu":"100m","memory":"512Mi"}` | -| `webhooks.resources.requests` | object | Resource requests applied to the webhooks pods | `{"cpu":"80m","memory":"128Mi"}` | -| `webhooks.service` | object | Service settings for the webhooks controller | `{"annotations":{},"externalPort":80,"internalPort":8080,"type":"ClusterIP"}` | -| `webhooks.serviceName` | string | Allows overriding the service name, this is here for compatibility reasons, regular users should clear this out | `"hook"` | -| `webhooks.terminationGracePeriodSeconds` | int | Termination grace period for webhooks pods | `180` | -| `webhooks.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the webhooks pods | `[]` | +| Key | Type | Description | Default | +|-----|------|-------------|---------| +| `cluster.crds.create` | bool | Create custom resource definitions | `true` | +| `configMaps.config` | string | Raw `config.yaml` content | `nil` | +| `configMaps.configUpdater` | object | Settings used to configure the `config-updater` plugin | `{"orgAndRepo":"","path":""}` | +| `configMaps.create` | bool | Enables creation of `config.yaml` and `plugins.yaml` config maps | `false` | +| `configMaps.plugins` | string | Raw `plugins.yaml` content | `nil` | +| `engines.jenkins` | bool | Enables the Jenkins engine | `false` | +| `engines.jx` | bool | Enables the jx engine | `true` | +| `engines.tekton` | bool | Enables the tekton engine | `false` | +| `env` | object | Environment variables | `{"JX_DEFAULT_IMAGE":""}` | +| `externalPlugins[0].name` | string | | `"cd-indicators"` | +| `externalPlugins[0].requiredResources[0].kind` | string | | `"Service"` | +| `externalPlugins[0].requiredResources[0].name` | string | | `"cd-indicators"` | +| `externalPlugins[0].requiredResources[0].namespace` | string | | `"jx"` | +| `externalPlugins[1].name` | string | | `"lighthouse-webui-plugin"` | +| `externalPlugins[1].requiredResources[0].kind` | string | | `"Service"` | +| `externalPlugins[1].requiredResources[0].name` | string | | `"lighthouse-webui-plugin"` | +| `externalPlugins[1].requiredResources[0].namespace` | string | | `"jx"` | +| `foghorn.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the foghorn pods | `{}` | +| `foghorn.image.pullPolicy` | string | Template for computing the foghorn controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | +| `foghorn.image.repository` | string | Template for computing the foghorn controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-foghorn"` | +| `foghorn.image.tag` | string | Template for computing the foghorn controller docker image tag | `"{{ .Values.image.tag }}"` | +| `foghorn.logLevel` | string | | `"info"` | +| `foghorn.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the foghorn pods | `{}` | +| `foghorn.replicaCount` | int | Number of replicas | `1` | +| `foghorn.resources.limits` | object | Resource limits applied to the foghorn pods | `{"cpu":"100m","memory":"256Mi"}` | +| `foghorn.resources.requests` | object | Resource requests applied to the foghorn pods | `{"cpu":"80m","memory":"128Mi"}` | +| `foghorn.terminationGracePeriodSeconds` | int | Termination grace period for foghorn pods | `180` | +| `foghorn.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the foghorn pods | `[]` | +| `gcJobs.backoffLimit` | int | Drives the job's backoff limit | `6` | +| `gcJobs.concurrencyPolicy` | string | Drives the job's concurrency policy | `"Forbid"` | +| `gcJobs.failedJobsHistoryLimit` | int | Drives the failed jobs history limit | `1` | +| `gcJobs.image.pullPolicy` | string | Template for computing the gc job docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | +| `gcJobs.image.repository` | string | Template for computing the gc job docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-gc-jobs"` | +| `gcJobs.image.tag` | string | Template for computing the gc job docker image tag | `"{{ .Values.image.tag }}"` | +| `gcJobs.logLevel` | string | | `"info"` | +| `gcJobs.maxAge` | string | Max age from which `LighthouseJob`s will be deleted | `"168h"` | +| `gcJobs.schedule` | string | Cron expression to periodically delete `LighthouseJob`s | `"0/30 * * * *"` | +| `gcJobs.successfulJobsHistoryLimit` | int | Drives the successful jobs history limit | `3` | +| `git.kind` | string | Git SCM provider (`github`, `gitlab`, `stash`) | `"github"` | +| `git.server` | string | Git server URL | `""` | +| `githubApp.enabled` | bool | Enables GitHub app authentication | `false` | +| `githubApp.username` | string | GitHub app user name | `"jenkins-x[bot]"` | +| `hmacSecretName` | string | Existing hmac secret to use for webhooks | `""` | +| `hmacToken` | string | Secret used for webhooks | `""` | +| `hmacTokenEnabled` | bool | Enables the use of a hmac token. This should always be enabled if possible - though some git providers don't support it such as bitbucket cloud | `true` | +| `hmacTokenVolumeMount` | object | Mount hmac token as a volume instead of using an environment variable Secret reference | `{"enabled":false}` | +| `image.parentRepository` | string | Docker registry to pull images from | `"ghcr.io/jenkins-x"` | +| `image.pullPolicy` | string | Image pull policy | `"IfNotPresent"` | +| `image.tag` | string | Docker images tag the following tag is latest on the main branch, it's a specific version on a git tag | `"latest"` | +| `jenkinscontroller.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the tekton controller pods | `{}` | +| `jenkinscontroller.image.pullPolicy` | string | Template for computing the tekton controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | +| `jenkinscontroller.image.repository` | string | Template for computing the Jenkins controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-jenkins-controller"` | +| `jenkinscontroller.image.tag` | string | Template for computing the tekton controller docker image tag | `"{{ .Values.image.tag }}"` | +| `jenkinscontroller.jenkinsToken` | string | The token for authenticating the Jenkins user | `nil` | +| `jenkinscontroller.jenkinsURL` | string | The URL of the Jenkins instance | `nil` | +| `jenkinscontroller.jenkinsUser` | string | The username for the Jenkins user | `nil` | +| `jenkinscontroller.logLevel` | string | | `"info"` | +| `jenkinscontroller.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the tekton controller pods | `{}` | +| `jenkinscontroller.podAnnotations` | object | Annotations applied to the tekton controller pods | `{}` | +| `jenkinscontroller.resources.limits` | object | Resource limits applied to the tekton controller pods | `{"cpu":"100m","memory":"256Mi"}` | +| `jenkinscontroller.resources.requests` | object | Resource requests applied to the tekton controller pods | `{"cpu":"80m","memory":"128Mi"}` | +| `jenkinscontroller.service` | object | Service settings for the tekton controller | `{"annotations":{}}` | +| `jenkinscontroller.terminationGracePeriodSeconds` | int | Termination grace period for tekton controller pods | `180` | +| `jenkinscontroller.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the tekton controller pods | `[]` | +| `keeper.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the keeper pods | `{}` | +| `keeper.datadog.enabled` | string | Enables datadog | `"true"` | +| `keeper.env` | object | Lets you define keeper specific environment variables | `{}` | +| `keeper.image.pullPolicy` | string | Template for computing the keeper controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | +| `keeper.image.repository` | string | Template for computing the keeper controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-keeper"` | +| `keeper.image.tag` | string | Template for computing the keeper controller docker image tag | `"{{ .Values.image.tag }}"` | +| `keeper.livenessProbe` | object | Liveness probe configuration | `{"initialDelaySeconds":120,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | +| `keeper.logLevel` | string | | `"info"` | +| `keeper.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the keeper pods | `{}` | +| `keeper.podAnnotations` | object | Annotations applied to the keeper pods | `{}` | +| `keeper.probe` | object | Liveness and readiness probes settings | `{"path":"/"}` | +| `keeper.readinessProbe` | object | Readiness probe configuration | `{"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | +| `keeper.replicaCount` | int | Number of replicas | `1` | +| `keeper.resources.limits` | object | Resource limits applied to the keeper pods | `{"cpu":"400m","memory":"512Mi"}` | +| `keeper.resources.requests` | object | Resource requests applied to the keeper pods | `{"cpu":"100m","memory":"128Mi"}` | +| `keeper.service` | object | Service settings for the keeper controller | `{"externalPort":80,"internalPort":8888,"type":"ClusterIP"}` | +| `keeper.statusContextLabel` | string | Label used to report status to git provider | `"Lighthouse Merge Status"` | +| `keeper.terminationGracePeriodSeconds` | int | Termination grace period for keeper pods | `30` | +| `keeper.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the keeper pods | `[]` | +| `lighthouseJobNamespace` | string | Namespace where `LighthouseJob`s and `Pod`s are created | Deployment namespace | +| `logFormat` | string | Log format either json or stackdriver | `"json"` | +| `logService` | string | The name of the service registered with logging | `""` | +| `logStackSkip` | string | Comma separated stack frames to skip from the log | `""` | +| `oauthSecretName` | string | Existing Git token secret | `""` | +| `oauthToken` | string | Git token (used when GitHub app authentication is not enabled) | `""` | +| `oauthTokenVolumeMount` | object | Mount Git token as a volume instead of using an environment variable Secret reference (used when GitHub app authentication is not enabled) | `{"enabled":false}` | +| `poller.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the poller pods | `{}` | +| `poller.contextMatchPattern` | string | Regex pattern to use to match commit status context | `""` | +| `poller.datadog.enabled` | string | Enables datadog | `"true"` | +| `poller.enabled` | bool | Whether to enable or disable the poller component | `false` | +| `poller.env` | object | Lets you define poller specific environment variables | `{"POLL_HOOK_ENDPOINT":"http://hook/hook/poll","POLL_PERIOD":"20s"}` | +| `poller.image.pullPolicy` | string | Template for computing the poller controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | +| `poller.image.repository` | string | Template for computing the poller controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-poller"` | +| `poller.image.tag` | string | Template for computing the poller controller docker image tag | `"{{ .Values.image.tag }}"` | +| `poller.internalPort` | int | | `8888` | +| `poller.livenessProbe` | object | Liveness probe configuration | `{"initialDelaySeconds":120,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | +| `poller.logLevel` | string | | `"info"` | +| `poller.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the poller pods | `{}` | +| `poller.podAnnotations` | object | Annotations applied to the poller pods | `{}` | +| `poller.probe` | object | Liveness and readiness probes settings | `{"path":"/"}` | +| `poller.readinessProbe` | object | Readiness probe configuration | `{"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | +| `poller.replicaCount` | int | Number of replicas | `1` | +| `poller.requireReleaseSuccess` | bool | Keep polling releases until the most recent commit status is successful | `false` | +| `poller.resources.limits` | object | Resource limits applied to the poller pods | `{"cpu":"400m","memory":"512Mi"}` | +| `poller.resources.requests` | object | Resource requests applied to the poller pods | `{"cpu":"100m","memory":"128Mi"}` | +| `poller.terminationGracePeriodSeconds` | int | Termination grace period for poller pods | `30` | +| `poller.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the poller pods | `[]` | +| `scope` | string | limit permissions to namespace privileges | `"cluster"` | +| `tektoncontroller.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the tekton controller pods | `{}` | +| `tektoncontroller.dashboardTemplate` | string | Go template expression for URLs in the dashboard if not using Tekton dashboard | `""` | +| `tektoncontroller.dashboardURL` | string | the dashboard URL (e.g. Tekton dashboard) | `""` | +| `tektoncontroller.image.pullPolicy` | string | Template for computing the tekton controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | +| `tektoncontroller.image.repository` | string | Template for computing the tekton controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-tekton-controller"` | +| `tektoncontroller.image.tag` | string | Template for computing the tekton controller docker image tag | `"{{ .Values.image.tag }}"` | +| `tektoncontroller.logLevel` | string | | `"info"` | +| `tektoncontroller.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the tekton controller pods | `{}` | +| `tektoncontroller.podAnnotations` | object | Annotations applied to the tekton controller pods | `{}` | +| `tektoncontroller.replicaCount` | int | Number of replicas | `1` | +| `tektoncontroller.resources.limits` | object | Resource limits applied to the tekton controller pods | `{"cpu":"100m","memory":"256Mi"}` | +| `tektoncontroller.resources.requests` | object | Resource requests applied to the tekton controller pods | `{"cpu":"80m","memory":"128Mi"}` | +| `tektoncontroller.service` | object | Service settings for the tekton controller | `{"annotations":{}}` | +| `tektoncontroller.terminationGracePeriodSeconds` | int | Termination grace period for tekton controller pods | `180` | +| `tektoncontroller.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the tekton controller pods | `[]` | +| `user` | string | Git user name (used when GitHub app authentication is not enabled) | `""` | +| `webhooks.affinity` | object | [Affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) applied to the webhooks pods | `{}` | +| `webhooks.customDeploymentTriggerCommand` | string | deployments can configure the ability to allow custom lighthouse triggers using their own unique chat prefix, for example extending the default `/test` trigger prefix let them specify `customDeploymentTriggerPrefix: foo` which means they can also use their own custom trigger /foo mycoolthing | `""` | +| `webhooks.image.pullPolicy` | string | Template for computing the webhooks controller docker image pull policy | `"{{ .Values.image.pullPolicy }}"` | +| `webhooks.image.repository` | string | Template for computing the webhooks controller docker image repository | `"{{ .Values.image.parentRepository }}/lighthouse-webhooks"` | +| `webhooks.image.tag` | string | Template for computing the webhooks controller docker image tag | `"{{ .Values.image.tag }}"` | +| `webhooks.ingress.annotations` | object | Webhooks ingress annotations | `{}` | +| `webhooks.ingress.enabled` | bool | Enable webhooks ingress | `false` | +| `webhooks.ingress.hosts` | list | Webhooks ingress host names | `[]` | +| `webhooks.ingress.ingressClassName` | string | Webhooks ingress ingressClassName | `nil` | +| `webhooks.ingress.tls.enabled` | bool | Enable webhooks ingress tls | `false` | +| `webhooks.ingress.tls.secretName` | string | Specify webhooks ingress tls secretName | `""` | +| `webhooks.labels` | object | allow optional labels to be added to the webhook deployment | `{}` | +| `webhooks.livenessProbe` | object | Liveness probe configuration | `{"initialDelaySeconds":60,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | +| `webhooks.logLevel` | string | | `"info"` | +| `webhooks.nodeSelector` | object | [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) applied to the webhooks pods | `{}` | +| `webhooks.podAnnotations` | object | Annotations applied to the webhooks pods | `{}` | +| `webhooks.podLabels` | object | | `{}` | +| `webhooks.probe` | object | Liveness and readiness probes settings | `{"path":"/"}` | +| `webhooks.readinessProbe` | object | Readiness probe configuration | `{"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | +| `webhooks.replicaCount` | int | Number of replicas | `1` | +| `webhooks.resources.limits` | object | Resource limits applied to the webhooks pods | `{"cpu":"100m","memory":"512Mi"}` | +| `webhooks.resources.requests` | object | Resource requests applied to the webhooks pods | `{"cpu":"80m","memory":"128Mi"}` | +| `webhooks.service` | object | Service settings for the webhooks controller | `{"annotations":{},"externalPort":80,"internalPort":8080,"type":"ClusterIP"}` | +| `webhooks.serviceName` | string | Allows overriding the service name, this is here for compatibility reasons, regular users should clear this out | `"hook"` | +| `webhooks.terminationGracePeriodSeconds` | int | Termination grace period for webhooks pods | `180` | +| `webhooks.tolerations` | list | [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) applied to the webhooks pods | `[]` | You can look directly at the [values.yaml](./values.yaml) file to look at the options and their default values. diff --git a/charts/lighthouse/lighthouse-1.14.6.tgz b/charts/lighthouse/lighthouse-1.14.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8fad670c210233ee77d9909f2064c2f4112bf585 GIT binary patch literal 15771 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