diff --git a/.github/configs/codefresh-k8s.yaml b/.github/configs/codefresh-k8s.yaml new file mode 100644 index 00000000..91735b00 --- /dev/null +++ b/.github/configs/codefresh-k8s.yaml @@ -0,0 +1,22 @@ +# Codefresh specific objects that are required for chart insllation to pass +apiVersion: v1 +data: + base-url: https://g.codefresh.io + runtime: | + apiVersion: codefresh.io/v1alpha1 + kind: Runtime + metadata: + name: test + spec: + test: test +kind: ConfigMap +metadata: + name: codefresh-cm +--- +apiVersion: v1 +kind: Secret +metadata: + name: codefresh-token +type: Opaque +stringData: + token: "612312312356677888855.612312312356677888855" \ No newline at end of file diff --git a/.github/configs/ct-install.yaml b/.github/configs/ct-install.yaml index df00bb1e..7e8b04c9 100644 --- a/.github/configs/ct-install.yaml +++ b/.github/configs/ct-install.yaml @@ -2,7 +2,7 @@ # Don't add the 'debug' attribute, otherwise the workflow won't work anymore # Only Used for the CT Install Stage remote: origin -target-branch: main +namespace: events chart-dirs: - charts chart-repos: diff --git a/.github/configs/ct-lint.yaml b/.github/configs/ct-lint.yaml index 1e66067a..1a99e4a9 100644 --- a/.github/configs/ct-lint.yaml +++ b/.github/configs/ct-lint.yaml @@ -2,7 +2,6 @@ # Don't add the 'debug' attribute, otherwise the workflow won't work anymore # Only Used for the CT Lint Stage remote: origin -target-branch: main chart-dirs: - charts chart-repos: diff --git a/.github/workflows/lint-and-test.yml b/.github/workflows/lint-and-test.yml index 88fcf2df..bcf29ef9 100644 --- a/.github/workflows/lint-and-test.yml +++ b/.github/workflows/lint-and-test.yml @@ -1,6 +1,10 @@ ## Reference: https://github.com/helm/chart-testing-action name: Linting and Testing on: pull_request + +permissions: + contents: read + jobs: chart-test: runs-on: ubuntu-latest @@ -11,12 +15,18 @@ jobs: fetch-depth: 0 - name: Set up Helm - uses: azure/setup-helm@v1 + uses: azure/setup-helm@v3 + with: + version: v3.10.1 # Also update in publish.yaml + + - name: Setup Kubectl + uses: azure/setup-kubectl@v3 + id: install - name: Set up python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: - python-version: 3.8 + python-version: 3.9 - name: Setup Chart Linting id: lint @@ -29,14 +39,14 @@ jobs: id: list-changed run: | ## If executed with debug this won't work anymore. - changed=$(ct --config ./.github/configs/ct-lint.yaml list-changed) + changed=$(ct --config ./.github/configs/ct-lint.yaml --target-branch ${{ github.base_ref }} list-changed) charts=$(echo "$changed" | tr '\n' ' ' | xargs) if [[ -n "$changed" ]]; then echo "::set-output name=changed::true" echo "::set-output name=changed_charts::$charts" fi - name: Run chart-testing (lint) - run: ct lint --debug --config ./.github/configs/ct-lint.yaml --lint-conf ./.github/configs/lintconf.yaml + run: ct lint --debug --config ./.github/configs/ct-lint.yaml --target-branch ${{ github.base_ref }} --lint-conf ./.github/configs/lintconf.yaml - name: Run docs-testing (helm-docs) id: helm-docs @@ -49,32 +59,29 @@ jobs: else echo -e '\033[0;32mDocumentation up to date\033[0m ✔' fi - - name: Create kind cluster - uses: helm/kind-action@v1.2.0 + uses: helm/kind-action@v1.4.0 if: steps.list-changed.outputs.changed == 'true' with: config: .github/configs/kind-config.yaml - - name: Deploy latest ArgoCD CRDs when testing ArgoCD extensions - if: | - contains(steps.list-changed.outputs.changed_charts, 'argocd-image-updater') - run: | - kubectl apply -f charts/argo-cd/templates/crds - - name: Skip HPA tests of ArgoCD if: contains(steps.list-changed.outputs.changed_charts, 'argo-cd') run: | ## Metrics API not available in kind cluster rm charts/argo-cd/ci/ha-autoscaling-values.yaml + - name: Deploy codefresh specific API Objects + run: | + kubectl create ns ${{ github.base_ref }} + kubectl -n ${{ github.base_ref }} apply -f .github/configs/codefresh-k8s.yaml + - name: Create an external redis for ArgoCD externalRedis feature if: contains(steps.list-changed.outputs.changed_charts, 'argo-cd') run: | kubectl create namespace redis helm repo add bitnami https://charts.bitnami.com/bitnami helm install redis bitnami/redis --wait --namespace redis --set auth.password=argocd --set architecture=standalone - - name: Run chart-testing (install) - run: ct install --config ./.github/configs/ct-install.yaml - if: steps.list-changed.outputs.changed == 'true' + run: ct install --config ./.github/configs/ct-install.yaml --target-branch ${{ github.base_ref }} --namespace ${{ github.base_ref }} + if: steps.list-changed.outputs.changed == 'true' \ No newline at end of file diff --git a/charts/argo-events/Chart.yaml b/charts/argo-events/Chart.yaml index 7e1c7082..a7dbf979 100644 --- a/charts/argo-events/Chart.yaml +++ b/charts/argo-events/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 -appVersion: v1.7.2 +appVersion: v1.7.2-cap-CR-14600 description: A Helm chart for Argo Events, the event-driven workflow automation framework name: argo-events -version: 2.0.5-0-ini +version: 2.0.5-1-cf-init home: https://github.com/argoproj/argo-helm icon: https://argoproj.github.io/argo-events/assets/logo.png keywords: @@ -15,4 +15,4 @@ maintainers: url: https://argoproj.github.io/ annotations: artifacthub.io/changes: | - - "[Changed]: Upgrade Argo events controller to v1.7.2" + - "[Changed]: Upgrade Argo events controller to v1.7.2-cap-CR-14600" diff --git a/charts/argo-events/README.md b/charts/argo-events/README.md index 9a66aa06..a6afd629 100644 --- a/charts/argo-events/README.md +++ b/charts/argo-events/README.md @@ -45,19 +45,41 @@ done | Key | Type | Default | Description | |-----|------|---------|-------------| -| configs.jetstream.settings.maxFileStore | int | `-1` | Maximum size of the file storage (e.g. 20G) | -| configs.jetstream.settings.maxMemoryStore | int | `-1` | Maximum size of the memory storage (e.g. 1G) | -| configs.jetstream.streamConfig.duplicates | string | `"300s"` | Not documented at the moment | -| configs.jetstream.streamConfig.maxAge | string | `"72h"` | Maximum age of existing messages, i.e. “72h”, “4h35m” | -| configs.jetstream.streamConfig.maxBytes | string | `"1GB"` | | -| configs.jetstream.streamConfig.maxMsgs | int | `1000000` | Maximum number of messages before expiring oldest message | -| configs.jetstream.streamConfig.replicas | int | `3` | Number of replicas, defaults to 3 and requires minimal 3 | -| configs.jetstream.versions[0].configReloaderImage | string | `"natsio/nats-server-config-reloader:latest"` | | -| configs.jetstream.versions[0].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:latest"` | | -| configs.jetstream.versions[0].natsImage | string | `"nats:latest"` | | +| configs.jetstream.settings.max_file_store | string | `"1TB"` | | +| configs.jetstream.settings.max_memory_store | int | `-1` | | +| configs.jetstream.streamConfig.duplicates | string | `"300s"` | | +| configs.jetstream.streamConfig.maxAge | string | `"168h"` | | +| configs.jetstream.streamConfig.maxBytes | int | `-1` | | +| configs.jetstream.streamConfig.maxMsgs | int | `50000` | | +| configs.jetstream.streamConfig.replicas | int | `3` | | +| configs.jetstream.versions[0].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | +| configs.jetstream.versions[0].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | +| configs.jetstream.versions[0].natsImage | string | `"nats:2.8.1"` | | | configs.jetstream.versions[0].startCommand | string | `"/nats-server"` | | | configs.jetstream.versions[0].version | string | `"latest"` | | -| configs.nats.versions | list | `[{"metricsExporterImage":"natsio/prometheus-nats-exporter:latest","natsStreamingImage":"nats-streaming:latest","version":"latest"}]` | Supported versions of NATS event bus | +| configs.jetstream.versions[1].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | +| configs.jetstream.versions[1].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | +| configs.jetstream.versions[1].natsImage | string | `"nats:2.8.1"` | | +| configs.jetstream.versions[1].startCommand | string | `"/nats-server"` | | +| configs.jetstream.versions[1].version | string | `"2.8.1"` | | +| configs.jetstream.versions[2].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | +| configs.jetstream.versions[2].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | +| configs.jetstream.versions[2].natsImage | string | `"nats:2.8.1-alpine"` | | +| configs.jetstream.versions[2].startCommand | string | `"nats-server"` | | +| configs.jetstream.versions[2].version | string | `"2.8.1-alpine"` | | +| configs.jetstream.versions[3].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | +| configs.jetstream.versions[3].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | +| configs.jetstream.versions[3].natsImage | string | `"nats:2.8.2"` | | +| configs.jetstream.versions[3].startCommand | string | `"/nats-server"` | | +| configs.jetstream.versions[3].version | string | `"2.8.2"` | | +| configs.jetstream.versions[4].configReloaderImage | string | `"natsio/nats-server-config-reloader:0.7.0"` | | +| configs.jetstream.versions[4].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.9.1"` | | +| configs.jetstream.versions[4].natsImage | string | `"nats:2.8.2-alpine"` | | +| configs.jetstream.versions[4].startCommand | string | `"nats-server"` | | +| configs.jetstream.versions[4].version | string | `"2.8.2-alpine"` | | +| configs.nats.versions[0].metricsExporterImage | string | `"natsio/prometheus-nats-exporter:0.8.0"` | | +| configs.nats.versions[0].natsStreamingImage | string | `"nats-streaming:0.22.1"` | | +| configs.nats.versions[0].version | string | `"0.22.1"` | | | crds.annotations | object | `{}` | Annotations to be added to all CRDs | | crds.install | bool | `true` | Install and upgrade CRDs | | crds.keep | bool | `true` | Keep CRDs on chart uninstall | @@ -66,7 +88,7 @@ done | global.additionalLabels | object | `{}` | Additional labels to add to all resources | | global.hostAliases | list | `[]` | Mapping between IP and hostnames that will be injected as entries in the pod's hosts files | | global.image.imagePullPolicy | string | `"IfNotPresent"` | If defined, a imagePullPolicy applied to all Argo Events deployments | -| global.image.repository | string | `"quay.io/argoproj/argo-events"` | If defined, a repository applied to all Argo Events deployments | +| global.image.repository | string | `"quay.io/codefresh/argo-events"` | If defined, a repository applied to all Argo Events deployments | | global.image.tag | string | `""` | Overrides the global Argo Events image tag whose default is the chart appVersion | | global.imagePullSecrets | list | `[]` | If defined, uses a Secret to pull an image from a private Docker registry or repository | | global.podAnnotations | object | `{}` | Annotations for the all deployed pods | @@ -137,7 +159,7 @@ done |-----|------|---------|-------------| | webhook.affinity | object | `{}` | Assign custom [affinity] rules to the deployment | | webhook.containerSecurityContext | object | `{}` | Event controller container-level security context | -| webhook.enabled | bool | `false` | Enable admission webhook. Applies only for cluster-wide installation | +| webhook.enabled | bool | `true` | Enable admission webhook. Applies only for cluster-wide installation | | webhook.env | list | `[]` (See [values.yaml]) | Environment variables to pass to event controller | | webhook.envFrom | list | `[]` (See [values.yaml]) | envFrom to pass to event controller | | webhook.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for the event controller | diff --git a/charts/argo-events/values.yaml b/charts/argo-events/values.yaml index 87c6ccf0..0ae12221 100644 --- a/charts/argo-events/values.yaml +++ b/charts/argo-events/values.yaml @@ -27,7 +27,7 @@ crds: global: image: # -- If defined, a repository applied to all Argo Events deployments - repository: quay.io/argoproj/argo-events + repository: quay.io/codefresh/argo-events # -- Overrides the global Argo Events image tag whose default is the chart appVersion tag: "" # -- If defined, a imagePullPolicy applied to all Argo Events deployments @@ -61,39 +61,46 @@ global: configs: ## NATS event bus nats: - # -- Supported versions of NATS event bus versions: - - version: latest - natsStreamingImage: nats-streaming:latest - metricsExporterImage: natsio/prometheus-nats-exporter:latest - - ## JetStream event bus + - version: 0.22.1 + natsStreamingImage: nats-streaming:0.22.1 + metricsExporterImage: natsio/prometheus-nats-exporter:0.8.0 jetstream: - # Default JetStream settings, could be overridden by EventBus JetStream spec - # Ref: https://docs.nats.io/running-a-nats-service/configuration#jetstream settings: - # -- Maximum size of the memory storage (e.g. 1G) - maxMemoryStore: -1 - # -- Maximum size of the file storage (e.g. 20G) - maxFileStore: -1 + max_memory_store: -1 + max_file_store: 1TB streamConfig: - # -- Maximum number of messages before expiring oldest message - maxMsgs: 1000000 - # -- Maximum age of existing messages, i.e. “72h”, “4h35m” - maxAge: 72h - # Total size of messages before expiring oldest message, 0 means unlimited. - maxBytes: 1GB - # -- Number of replicas, defaults to 3 and requires minimal 3 + maxMsgs: 50000 + maxAge: 168h + maxBytes: -1 replicas: 3 - # -- Not documented at the moment duplicates: 300s - # Supported versions of JetStream eventbus versions: - - version: "latest" - natsImage: nats:latest - metricsExporterImage: natsio/prometheus-nats-exporter:latest - configReloaderImage: natsio/nats-server-config-reloader:latest - startCommand: /nats-server + - version: latest + natsImage: nats:2.8.1 + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: /nats-server + - version: 2.8.1 + natsImage: nats:2.8.1 + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: /nats-server + - version: 2.8.1-alpine + natsImage: nats:2.8.1-alpine + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: nats-server + - version: 2.8.2 + natsImage: nats:2.8.2 + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: /nats-server + - version: 2.8.2-alpine + natsImage: nats:2.8.2-alpine + metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1 + configReloaderImage: natsio/nats-server-config-reloader:0.7.0 + startCommand: nats-server ## Argo Events controller controller: @@ -265,7 +272,7 @@ controller: ## Argo Events admission webhook webhook: # -- Enable admission webhook. Applies only for cluster-wide installation - enabled: false + enabled: true # -- Argo Events admission webhook name string name: events-webhook