Compare commits
80 Commits
argo-cd-7.
...
main
Author | SHA1 | Date |
---|---|---|
|
fca7ddceaa | |
|
8516e5c7dc | |
|
346774a351 | |
|
f192685c61 | |
|
7dc8c720d9 | |
|
af214ae152 | |
|
b6fa446940 | |
|
f5d885e9e5 | |
|
464d1179fd | |
|
66d0cd3259 | |
|
24b35ff6b9 | |
|
697a5bd7dc | |
|
49ec752d09 | |
|
9365ba1dd2 | |
|
eb0f0af836 | |
|
e7a05a7bc8 | |
|
86af655944 | |
|
bf044b2256 | |
|
216d8bd879 | |
|
9f11412227 | |
|
d198053abe | |
|
edbac28217 | |
|
380b224656 | |
|
54b6a57d3f | |
|
0ee7597512 | |
|
c50e74273d | |
|
c9f549f35d | |
|
79461b3206 | |
|
712f12198c | |
|
3223ae42e5 | |
|
74d8ce8ba2 | |
|
78ee9fd66c | |
|
24bbbc2d3b | |
|
4a31220168 | |
|
b386f8a7c6 | |
|
54beb65686 | |
|
26f5050255 | |
|
b512d624ac | |
|
cbc39cd651 | |
|
2151f800f2 | |
|
0161a0a834 | |
|
6234e2abd6 | |
|
0fcefc9993 | |
|
97f4275fc6 | |
|
a68c41fc53 | |
|
a774ae2e6e | |
|
cf172edb3f | |
|
dc656fcc3e | |
|
66d510ac1f | |
|
02dcd41ec1 | |
|
68604eb508 | |
|
1d4e38595e | |
|
c65e2468c3 | |
|
0770ef8d7a | |
|
cef816a740 | |
|
4f356644ca | |
|
b81556ca88 | |
|
f265958485 | |
|
5ba825688c | |
|
7b9f7fbed9 | |
|
52870ab907 | |
|
341406ccb2 | |
|
689fed54cb | |
|
3a329eae63 | |
|
ff07848068 | |
|
56b2429f3b | |
|
d40470b95d | |
|
f7b5090efb | |
|
b732ef4689 | |
|
c77cb712e0 | |
|
f30bcd682d | |
|
6b1ea92acb | |
|
ffacdd45f9 | |
|
55d2330df6 | |
|
2602b7a364 | |
|
4cfcbc2e26 | |
|
c9e59be22f | |
|
2a21283641 | |
|
56c5a31c9e | |
|
2685b861d2 |
|
@ -27,12 +27,12 @@ jobs:
|
|||
fetch-depth: 0
|
||||
|
||||
- name: Set up Helm
|
||||
uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
|
||||
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0
|
||||
with:
|
||||
version: v3.10.1 # Also update in publish.yaml
|
||||
|
||||
- name: Set up python
|
||||
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
|
||||
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
|
||||
with:
|
||||
python-version: 3.9
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ jobs:
|
|||
fetch-depth: 0
|
||||
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
|
||||
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0
|
||||
with:
|
||||
version: v3.10.1 # Also update in lint-and-test.yaml
|
||||
|
||||
|
@ -66,7 +66,7 @@ jobs:
|
|||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
|
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get token
|
||||
uses: actions/create-github-app-token@c1a285145b9d317df6ced56c09f525b5c2b6f755 # v1.11.1
|
||||
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||
id: get_token
|
||||
with:
|
||||
app-id: ${{ vars.RENOVATE_APP_ID }}
|
||||
|
@ -26,11 +26,11 @@ jobs:
|
|||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Self-hosted Renovate
|
||||
uses: renovatebot/github-action@d385c88822a237acaead89c462fa0aef7502748f # v41.0.11
|
||||
uses: renovatebot/github-action@fdbe2b88946ea8b6fb5785a5267b46677d13a4d2 # v41.0.21
|
||||
with:
|
||||
configurationFile: .github/configs/renovate-config.js
|
||||
# renovate: datasource=docker depName=ghcr.io/renovatebot/renovate
|
||||
renovate-version: 39.86.4
|
||||
renovate-version: 39.229.0
|
||||
token: '${{ steps.get_token.outputs.token }}'
|
||||
mount-docker-socket: true
|
||||
env:
|
||||
|
|
|
@ -38,7 +38,7 @@ jobs:
|
|||
persist-credentials: false
|
||||
|
||||
- name: "Run analysis"
|
||||
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
|
||||
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
|
||||
with:
|
||||
results_file: results.sarif
|
||||
results_format: sarif
|
||||
|
@ -46,7 +46,7 @@ jobs:
|
|||
# - you want to enable the Branch-Protection check on a *public* repository, or
|
||||
# - you are installing Scorecard on a *private* repository
|
||||
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
|
||||
repo_token: ${{ secrets.SCORECARD_TOKEN }}
|
||||
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
|
||||
|
||||
# Public repositories:
|
||||
# - Publish results to OpenSSF REST API for easy access by consumers
|
||||
|
@ -60,7 +60,7 @@ jobs:
|
|||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||
# format to the repository Actions tab.
|
||||
- name: "Upload artifact"
|
||||
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: SARIF file
|
||||
path: results.sarif
|
||||
|
@ -68,6 +68,6 @@ jobs:
|
|||
|
||||
# Upload the results to GitHub's code scanning dashboard.
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@f6091c0113d1dcf9b98e269ee48e8a7e51b7bdd4 # v3.28.5
|
||||
uses: github/codeql-action/upload-sarif@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
dependencies:
|
||||
- name: redis-ha
|
||||
repository: https://dandydeveloper.github.io/charts/
|
||||
version: 4.29.4
|
||||
digest: sha256:1257baf1c5e0db036af659d44095223e28ac0c9ec1ed8300a02d5def2281c9c7
|
||||
generated: "2024-11-13T09:07:36.494128+09:00"
|
||||
version: 4.33.2
|
||||
digest: sha256:1ce334c23fe53427c771277cc7cecd4143226aba04c8a6c52513042a96e7ff5d
|
||||
generated: "2025-03-27T09:46:27.113833-07:00"
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
apiVersion: v2
|
||||
appVersion: v2.13.3
|
||||
appVersion: v2.14.10
|
||||
kubeVersion: ">=1.25.0-0"
|
||||
description: A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes.
|
||||
name: argo-cd
|
||||
version: 7.7.20
|
||||
version: 7.8.27
|
||||
home: https://github.com/argoproj/argo-helm
|
||||
icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png
|
||||
sources:
|
||||
|
@ -18,7 +18,7 @@ maintainers:
|
|||
url: https://argoproj.github.io/
|
||||
dependencies:
|
||||
- name: redis-ha
|
||||
version: 4.29.4
|
||||
version: 4.33.2
|
||||
repository: https://dandydeveloper.github.io/charts/
|
||||
condition: redis-ha.enabled
|
||||
annotations:
|
||||
|
@ -27,4 +27,4 @@ annotations:
|
|||
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
|
||||
artifacthub.io/changes: |
|
||||
- kind: changed
|
||||
description: Bump redis-exporter to 1.67.0
|
||||
description: Update kubelogin documentation for extra containers
|
||||
|
|
|
@ -312,7 +312,7 @@ This version introduces authentication for Redis to mitigate GHSA-9766-5277-j5hr
|
|||
Upstream steps in the [FAQ] are not enough, since we chose a different approach.
|
||||
(We use a Kubernetes Job with [Chart Hooks] to create the auth secret `argocd-redis`.)
|
||||
|
||||
Steps to roteate the secret when using the helm chart (bold step is additional to upstream):
|
||||
Steps to rotate the secret when using the helm chart (bold step is additional to upstream):
|
||||
* Delete `argocd-redis` secret in the namespace where Argo CD is installed.
|
||||
```bash
|
||||
kubectl delete secret argocd-redis -n <argocd namespace>
|
||||
|
@ -685,6 +685,8 @@ NAME: my-release
|
|||
|
||||
## Global Configs
|
||||
|
||||
NOTE: Any values you put under `.Values.configs.cm` are passed to argocd-cm ConfigMap.
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| global.addPrometheusAnnotations | bool | `false` | Add Prometheus scrape annotations to all metrics services. This can be used as an alternative to the ServiceMonitors. |
|
||||
|
@ -708,7 +710,7 @@ NAME: my-release
|
|||
| global.logging.level | string | `"info"` | Set the global logging level. One of: `debug`, `info`, `warn` or `error` |
|
||||
| global.networkPolicy.create | bool | `false` | Create NetworkPolicy objects for all components |
|
||||
| global.networkPolicy.defaultDenyIngress | bool | `false` | Default deny all ingress traffic |
|
||||
| global.nodeSelector | object | `{}` | Default node selector for all components |
|
||||
| global.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Default node selector for all components |
|
||||
| global.podAnnotations | object | `{}` | Annotations for the all deployed pods |
|
||||
| global.podLabels | object | `{}` | Labels for the all deployed pods |
|
||||
| global.priorityClassName | string | `""` | Default priority class for all components |
|
||||
|
@ -750,6 +752,7 @@ NAME: my-release
|
|||
| configs.params."controller.repo.server.timeout.seconds" | int | `60` | Repo server RPC call timeout seconds. |
|
||||
| configs.params."controller.self.heal.timeout.seconds" | int | `5` | Specifies timeout between application self heal attempts |
|
||||
| configs.params."controller.status.processors" | int | `20` | Number of application status processors |
|
||||
| configs.params."controller.sync.timeout.seconds" | int | `0` | Specifies the timeout after which a sync would be terminated. 0 means no timeout |
|
||||
| configs.params."otlp.address" | string | `""` | Open-Telemetry collector address: (e.g. "otel-collector:4317") |
|
||||
| configs.params."reposerver.parallelism.limit" | int | `0` | Limit on number of concurrent manifests generate requests. Any value less the 1 means no limit. |
|
||||
| configs.params."server.basehref" | string | `"/"` | Value for base href in index.html. Used if Argo CD is running behind reverse proxy under subpath different from / |
|
||||
|
@ -1170,7 +1173,7 @@ NAME: my-release
|
|||
| dex.extraContainers | list | `[]` | Additional containers to be added to the dex pod |
|
||||
| dex.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Dex imagePullPolicy |
|
||||
| dex.image.repository | string | `"ghcr.io/dexidp/dex"` | Dex image repository |
|
||||
| dex.image.tag | string | `"v2.41.1"` | Dex image tag |
|
||||
| dex.image.tag | string | `"v2.42.1"` | Dex image tag |
|
||||
| dex.imagePullSecrets | list | `[]` (defaults to global.imagePullSecrets) | Secrets with credentials to pull images from a private registry |
|
||||
| dex.initContainers | list | `[]` | Init containers to add to the dex pod |
|
||||
| dex.initImage.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Argo CD init image imagePullPolicy |
|
||||
|
@ -1186,8 +1189,6 @@ NAME: my-release
|
|||
| dex.livenessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] |
|
||||
| dex.livenessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed |
|
||||
| dex.livenessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out |
|
||||
| dex.logFormat | string | `""` (defaults to global.logging.format) | Dex log format. Either `text` or `json` |
|
||||
| dex.logLevel | string | `""` (defaults to global.logging.level) | Dex log level. One of: `debug`, `info`, `warn`, `error` |
|
||||
| dex.metrics.enabled | bool | `false` | Deploy metrics service |
|
||||
| dex.metrics.service.annotations | object | `{}` | Metrics service annotations |
|
||||
| dex.metrics.service.labels | object | `{}` | Metrics service labels |
|
||||
|
@ -1260,8 +1261,8 @@ NAME: my-release
|
|||
| redis.exporter.enabled | bool | `false` | Enable Prometheus redis-exporter sidecar |
|
||||
| redis.exporter.env | list | `[]` | Environment variables to pass to the Redis exporter |
|
||||
| redis.exporter.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for the redis-exporter |
|
||||
| redis.exporter.image.repository | string | `"public.ecr.aws/bitnami/redis-exporter"` | Repository to use for the redis-exporter |
|
||||
| redis.exporter.image.tag | string | `"1.67.0"` | Tag to use for the redis-exporter |
|
||||
| redis.exporter.image.repository | string | `"ghcr.io/oliver006/redis_exporter"` | Repository to use for the redis-exporter |
|
||||
| redis.exporter.image.tag | string | `"v1.70.0"` | Tag to use for the redis-exporter |
|
||||
| redis.exporter.livenessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for Redis exporter |
|
||||
| redis.exporter.livenessProbe.failureThreshold | int | `5` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded |
|
||||
| redis.exporter.livenessProbe.initialDelaySeconds | int | `30` | Number of seconds after the container has started before [probe] is initiated |
|
||||
|
@ -1353,8 +1354,8 @@ The main options are listed here:
|
|||
| redis-ha.enabled | bool | `false` | Enables the Redis HA subchart and disables the custom Redis single node deployment |
|
||||
| redis-ha.existingSecret | string | `"argocd-redis"` | Existing Secret to use for redis-ha authentication. By default the redis-secret-init Job is generating this Secret. |
|
||||
| redis-ha.exporter.enabled | bool | `false` | Enable Prometheus redis-exporter sidecar |
|
||||
| redis-ha.exporter.image | string | `"public.ecr.aws/bitnami/redis-exporter"` | Repository to use for the redis-exporter |
|
||||
| redis-ha.exporter.tag | string | `"1.58.0"` | Tag to use for the redis-exporter |
|
||||
| redis-ha.exporter.image | string | `"ghcr.io/oliver006/redis_exporter"` | Repository to use for the redis-exporter |
|
||||
| redis-ha.exporter.tag | string | `"v1.69.0"` | Tag to use for the redis-exporter |
|
||||
| redis-ha.haproxy.additionalAffinities | object | `{}` | Additional affinities to add to the haproxy pods. |
|
||||
| redis-ha.haproxy.affinity | string | `""` | Assign custom [affinity] rules to the haproxy pods. |
|
||||
| redis-ha.haproxy.containerSecurityContext | object | See [values.yaml] | HAProxy container-level security context |
|
||||
|
@ -1567,8 +1568,6 @@ If you use an External Redis (See Option 3 above), this Job is not deployed.
|
|||
| notifications.livenessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] |
|
||||
| notifications.livenessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed |
|
||||
| notifications.livenessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out |
|
||||
| notifications.logFormat | string | `""` (defaults to global.logging.format) | Notifications controller log format. Either `text` or `json` |
|
||||
| notifications.logLevel | string | `""` (defaults to global.logging.level) | Notifications controller log level. One of: `debug`, `info`, `warn`, `error` |
|
||||
| notifications.metrics.enabled | bool | `false` | Enables prometheus metrics server |
|
||||
| notifications.metrics.port | int | `9001` | Metrics port |
|
||||
| notifications.metrics.service.annotations | object | `{}` | Metrics service annotations |
|
||||
|
@ -1621,6 +1620,65 @@ If you use an External Redis (See Option 3 above), this Job is not deployed.
|
|||
| notifications.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to the application controller |
|
||||
| notifications.triggers | object | `{}` | The trigger defines the condition when the notification should be sent |
|
||||
|
||||
## Commit server (Manifest Hydrator)
|
||||
|
||||
The Argo CD Commit Server provides push access to git repositories for hydrated manifests.
|
||||
|
||||
To read more about this component, please read [Argo CD Manifest Hydrator] and [Manifest Hydrator].
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| commitServer.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules |
|
||||
| commitServer.automountServiceAccountToken | bool | `false` | Automount API credentials for the Service Account into the pod. |
|
||||
| commitServer.containerSecurityContext | object | See [values.yaml] | commit server container-level security context |
|
||||
| commitServer.deploymentAnnotations | object | `{}` | Annotations to be added to commit server Deployment |
|
||||
| commitServer.deploymentStrategy | object | `{}` | Deployment strategy to be added to the commit server Deployment |
|
||||
| commitServer.dnsConfig | object | `{}` | [DNS configuration] |
|
||||
| commitServer.dnsPolicy | string | `"ClusterFirst"` | Alternative DNS policy for commit server pods |
|
||||
| commitServer.enabled | bool | `false` | Enable commit server |
|
||||
| commitServer.extraArgs | list | `[]` | commit server command line flags |
|
||||
| commitServer.extraEnv | list | `[]` | Environment variables to pass to the commit server |
|
||||
| commitServer.extraEnvFrom | list | `[]` (See [values.yaml]) | envFrom to pass to the commit server |
|
||||
| commitServer.extraVolumeMounts | list | `[]` | List of extra mounts to add (normally used with extraVolumes) |
|
||||
| commitServer.extraVolumes | list | `[]` | List of extra volumes to add |
|
||||
| commitServer.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for the commit server |
|
||||
| commitServer.image.repository | string | `""` (defaults to global.image.repository) | Repository to use for the commit server |
|
||||
| commitServer.image.tag | string | `""` (defaults to global.image.tag) | Tag to use for the commit server |
|
||||
| commitServer.livenessProbe.enabled | bool | `true` | Enable Kubernetes liveness probe for commit server |
|
||||
| commitServer.livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded |
|
||||
| commitServer.livenessProbe.initialDelaySeconds | int | `30` | Number of seconds after the container has started before [probe] is initiated |
|
||||
| commitServer.livenessProbe.periodSeconds | int | `30` | How often (in seconds) to perform the [probe] |
|
||||
| commitServer.livenessProbe.timeoutSeconds | int | `5` | Number of seconds after which the [probe] times out |
|
||||
| commitServer.metrics.enabled | bool | `false` | Enables prometheus metrics server |
|
||||
| commitServer.metrics.service.annotations | object | `{}` | Metrics service annotations |
|
||||
| commitServer.metrics.service.clusterIP | string | `""` | Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) |
|
||||
| commitServer.metrics.service.labels | object | `{}` | Metrics service labels |
|
||||
| commitServer.metrics.service.portName | string | `"metrics"` | Metrics service port name |
|
||||
| commitServer.metrics.service.servicePort | int | `8087` | Metrics service port |
|
||||
| commitServer.metrics.service.type | string | `"ClusterIP"` | Metrics service type |
|
||||
| commitServer.name | string | `"commit-server"` | Commit server name |
|
||||
| commitServer.nodeSelector | object | `{}` (defaults to global.nodeSelector) | [Node selector] |
|
||||
| commitServer.podAnnotations | object | `{}` | Annotations for the commit server pods |
|
||||
| commitServer.podLabels | object | `{}` | Labels for the commit server pods |
|
||||
| commitServer.priorityClassName | string | `""` (defaults to global.priorityClassName) | Priority class for the commit server pods |
|
||||
| commitServer.readinessProbe.enabled | bool | `true` | Enable Kubernetes liveness probe for commit server |
|
||||
| commitServer.readinessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded |
|
||||
| commitServer.readinessProbe.initialDelaySeconds | int | `5` | Number of seconds after the container has started before [probe] is initiated |
|
||||
| commitServer.readinessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] |
|
||||
| commitServer.readinessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out |
|
||||
| commitServer.resources | object | `{}` | Resource limits and requests for the commit server pods. |
|
||||
| commitServer.runtimeClassName | string | `""` (defaults to global.runtimeClassName) | Runtime class name for the commit server |
|
||||
| commitServer.service.annotations | object | `{}` | commit server service annotations |
|
||||
| commitServer.service.labels | object | `{}` | commit server service labels |
|
||||
| commitServer.serviceAccount.annotations | object | `{}` | Annotations applied to created service account |
|
||||
| commitServer.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account |
|
||||
| commitServer.serviceAccount.create | bool | `true` | Create commit server service account |
|
||||
| commitServer.serviceAccount.labels | object | `{}` | Labels applied to created service account |
|
||||
| commitServer.serviceAccount.name | string | `"argocd-commit-server"` | commit server service account name |
|
||||
| commitServer.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook |
|
||||
| commitServer.tolerations | list | `[]` (defaults to global.tolerations) | [Tolerations] for use with node taints |
|
||||
| commitServer.topologySpreadConstraints | list | `[]` (defaults to global.topologySpreadConstraints) | Assign custom [TopologySpreadConstraints] rules to the commit server |
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs)
|
||||
|
||||
|
@ -1653,3 +1711,5 @@ Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/
|
|||
[Applications in any namespace]: https://argo-cd.readthedocs.io/en/stable/operator-manual/app-any-namespace/#applications-in-any-namespace
|
||||
[Argo CD Extensions]: https://github.com/argoproj-labs/argocd-extensions?tab=readme-ov-file#deprecation-notice
|
||||
[Argo CD Extension Installer]: https://github.com/argoproj-labs/argocd-extension-installer
|
||||
[Argo CD Manifest Hydrator]: https://argo-cd.readthedocs.io/en/stable/proposals/manifest-hydrator/
|
||||
[Manifest Hydrator]: https://github.com/argoproj/argo-cd/blob/master/docs/proposals/manifest-hydrator.md
|
||||
|
|
|
@ -312,7 +312,7 @@ This version introduces authentication for Redis to mitigate GHSA-9766-5277-j5hr
|
|||
Upstream steps in the [FAQ] are not enough, since we chose a different approach.
|
||||
(We use a Kubernetes Job with [Chart Hooks] to create the auth secret `argocd-redis`.)
|
||||
|
||||
Steps to roteate the secret when using the helm chart (bold step is additional to upstream):
|
||||
Steps to rotate the secret when using the helm chart (bold step is additional to upstream):
|
||||
* Delete `argocd-redis` secret in the namespace where Argo CD is installed.
|
||||
```bash
|
||||
kubectl delete secret argocd-redis -n <argocd namespace>
|
||||
|
@ -672,13 +672,15 @@ NAME: my-release
|
|||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
{{- range .Values }}
|
||||
{{- if not (or (hasPrefix "global" .Key) (hasPrefix "configs" .Key) (hasPrefix "controller" .Key) (hasPrefix "repoServer" .Key) (hasPrefix "server" .Key) (hasPrefix "applicationSet" .Key) (hasPrefix "notifications" .Key) (hasPrefix "dex" .Key) (hasPrefix "redis" .Key) (hasPrefix "externalRedis" .Key) ) }}
|
||||
{{- if not (or (hasPrefix "global" .Key) (hasPrefix "configs" .Key) (hasPrefix "controller" .Key) (hasPrefix "repoServer" .Key) (hasPrefix "server" .Key) (hasPrefix "applicationSet" .Key) (hasPrefix "notifications" .Key) (hasPrefix "dex" .Key) (hasPrefix "redis" .Key) (hasPrefix "externalRedis" .Key) (hasPrefix "commitServer" .Key) ) }}
|
||||
| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} |
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
## Global Configs
|
||||
|
||||
NOTE: Any values you put under `.Values.configs.cm` are passed to argocd-cm ConfigMap.
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
{{- range .Values }}
|
||||
|
@ -813,6 +815,20 @@ If you use an External Redis (See Option 3 above), this Job is not deployed.
|
|||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
## Commit server (Manifest Hydrator)
|
||||
|
||||
The Argo CD Commit Server provides push access to git repositories for hydrated manifests.
|
||||
|
||||
To read more about this component, please read [Argo CD Manifest Hydrator] and [Manifest Hydrator].
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
{{- range .Values }}
|
||||
{{- if hasPrefix "commitServer" .Key }}
|
||||
| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} |
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs)
|
||||
|
||||
|
@ -845,3 +861,5 @@ Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/
|
|||
[Applications in any namespace]: https://argo-cd.readthedocs.io/en/stable/operator-manual/app-any-namespace/#applications-in-any-namespace
|
||||
[Argo CD Extensions]: https://github.com/argoproj-labs/argocd-extensions?tab=readme-ov-file#deprecation-notice
|
||||
[Argo CD Extension Installer]: https://github.com/argoproj-labs/argocd-extension-installer
|
||||
[Argo CD Manifest Hydrator]: https://argo-cd.readthedocs.io/en/stable/proposals/manifest-hydrator/
|
||||
[Manifest Hydrator]: https://github.com/argoproj/argo-cd/blob/master/docs/proposals/manifest-hydrator.md
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
# Test with default values
|
||||
crds:
|
||||
keep: false
|
||||
|
||||
redis:
|
||||
exporter:
|
||||
enabled: true
|
||||
|
|
|
@ -4,6 +4,8 @@ crds:
|
|||
|
||||
redis-ha:
|
||||
enabled: true
|
||||
exporter:
|
||||
enabled: true
|
||||
|
||||
server:
|
||||
autoscaling:
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# Test Argo CD with optional component "commit-server"
|
||||
commitServer:
|
||||
enabled: true
|
|
@ -1,3 +1,15 @@
|
|||
{{- if .Values.notifications.logLevel }}
|
||||
DEPRECATED option notifications.logLevel - Use `configs.params."notificationscontroller.log.level"`
|
||||
{{- end }}
|
||||
{{- if .Values.notifications.logFormat }}
|
||||
DEPRECATED option notifications.logFormat - Use `configs.params."notificationscontroller.log.format"`
|
||||
{{- end }}
|
||||
{{- if .Values.dex.logLevel }}
|
||||
DEPRECATED option dex.logLevel - Use `configs.params."dexserver.log.level"`
|
||||
{{- end }}
|
||||
{{- if .Values.dex.logFormat }}
|
||||
DEPRECATED option dex.logFormat - Use `configs.params."dexserver.log.format"`
|
||||
{{- end }}
|
||||
In order to access the server UI you have the following options:
|
||||
|
||||
1. kubectl port-forward service/{{ include "argo-cd.fullname" . }}-server -n {{ include "argo-cd.namespace" . }} 8080:443
|
||||
|
|
|
@ -177,6 +177,24 @@ Create the name of the notifications service account to use
|
|||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create argocd commit-server name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "argo-cd.commitServer.fullname" -}}
|
||||
{{- printf "%s-%s" (include "argo-cd.fullname" .) .Values.commitServer.name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the name of the commit-server service account to use
|
||||
*/}}
|
||||
{{- define "argo-cd.commitServer.serviceAccountName" -}}
|
||||
{{- if .Values.commitServer.serviceAccount.create -}}
|
||||
{{ default (include "argo-cd.commitServer.fullname" .) .Values.commitServer.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.commitServer.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Argo Configuration Preset Values (Influenced by Values configuration)
|
||||
*/}}
|
||||
|
@ -220,7 +238,7 @@ NOTE: Configuration keys must be stored as dict because YAML treats dot as separ
|
|||
{{- $_ := set $presets "server.dex.server" (include "argo-cd.dex.server" .) -}}
|
||||
{{- $_ := set $presets "server.dex.server.strict.tls" .Values.dex.certificateSecret.enabled -}}
|
||||
{{- end -}}
|
||||
{{- range $component := tuple "applicationsetcontroller" "controller" "server" "reposerver" -}}
|
||||
{{- range $component := tuple "applicationsetcontroller" "controller" "server" "reposerver" "notificationscontroller" "dexserver" -}}
|
||||
{{- $_ := set $presets (printf "%s.log.format" $component) $.Values.global.logging.format -}}
|
||||
{{- $_ := set $presets (printf "%s.log.level" $component) $.Values.global.logging.level -}}
|
||||
{{- end -}}
|
||||
|
@ -257,3 +275,43 @@ ipFamilyPolicy: {{ . }}
|
|||
ipFamilies: {{ toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
secretKeyRef of env variable REDIS_USERNAME
|
||||
*/}}
|
||||
{{- define "argo-cd.redisUsernameSecretRef" -}}
|
||||
{{- if and .Values.externalRedis.host -}}
|
||||
name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
|
||||
key: redis-username
|
||||
optional: true
|
||||
{{- else -}}
|
||||
name: {{ include "argo-cd.redis.fullname" . }}
|
||||
key: redis-username
|
||||
optional: true
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
secretKeyRef of env variable REDIS_PASSWORD
|
||||
*/}}
|
||||
{{- define "argo-cd.redisPasswordSecretRef" -}}
|
||||
{{- if .Values.externalRedis.host -}}
|
||||
{{- /* External Redis use case */ -}}
|
||||
{{- /* Secret is required when specifying existingSecret or a password, otherwise it is optional */ -}}
|
||||
name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
|
||||
key: redis-password
|
||||
optional: {{ if or .Values.externalRedis.existingSecret .Values.externalRedis.password }}false{{ else }}true{{ end }}
|
||||
|
||||
{{- else if and .Values.redisSecretInit.enabled -}}
|
||||
{{- /* Default case where Secret is generated by the Job with Helm pre-install hooks */ -}}
|
||||
name: "argocd-redis" # hard-coded in Job command and embedded Redis deployments (standalone and redis-ha)
|
||||
key: auth
|
||||
optional: false # Secret is not optional in this case !
|
||||
|
||||
{{- else -}}
|
||||
{{- /* All other use cases (e.g. disabled pre-install Job) */ -}}
|
||||
name: "argocd-redis"
|
||||
key: auth
|
||||
optional: true
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
|
|
@ -175,6 +175,12 @@ spec:
|
|||
name: argocd-cmd-params-cm
|
||||
key: controller.self.heal.backoff.cap.seconds
|
||||
optional: true
|
||||
- name: ARGOCD_APPLICATION_CONTROLLER_SYNC_TIMEOUT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: controller.sync.timeout.seconds
|
||||
optional: true
|
||||
- name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
|
@ -220,19 +226,11 @@ spec:
|
|||
- name: REDIS_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
|
||||
key: redis-username
|
||||
optional: true
|
||||
{{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
|
||||
{{- if .Values.externalRedis.host }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
key: auth
|
||||
{{- end }}
|
||||
optional: true
|
||||
{{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
|
||||
- name: REDIS_SENTINEL_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
@ -311,6 +309,24 @@ spec:
|
|||
name: argocd-cmd-params-cm
|
||||
key: controller.ignore.normalizer.jq.timeout
|
||||
optional: true
|
||||
- name: ARGOCD_HYDRATOR_ENABLED
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: hydrator.enabled
|
||||
optional: true
|
||||
- name: ARGOCD_CLUSTER_CACHE_BATCH_EVENTS_PROCESSING
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: controller.cluster.cache.batch.events.processing
|
||||
optional: true
|
||||
- name: ARGOCD_CLUSTER_CACHE_EVENTS_PROCESSING_INTERVAL
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: controller.cluster.cache.events.processing.interval
|
||||
optional: true
|
||||
{{- with .Values.controller.envFrom }}
|
||||
envFrom:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
|
|
|
@ -174,6 +174,12 @@ spec:
|
|||
name: argocd-cmd-params-cm
|
||||
key: controller.self.heal.backoff.cap.seconds
|
||||
optional: true
|
||||
- name: ARGOCD_APPLICATION_CONTROLLER_SYNC_TIMEOUT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: controller.sync.timeout.seconds
|
||||
optional: true
|
||||
- name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
|
@ -219,19 +225,11 @@ spec:
|
|||
- name: REDIS_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
|
||||
key: redis-username
|
||||
optional: true
|
||||
{{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
|
||||
{{- if .Values.externalRedis.host }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
key: auth
|
||||
{{- end }}
|
||||
optional: true
|
||||
{{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
|
||||
- name: REDIS_SENTINEL_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
@ -310,6 +308,26 @@ spec:
|
|||
name: argocd-cmd-params-cm
|
||||
key: controller.ignore.normalizer.jq.timeout
|
||||
optional: true
|
||||
- name: ARGOCD_HYDRATOR_ENABLED
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: hydrator.enabled
|
||||
optional: true
|
||||
- name: ARGOCD_CLUSTER_CACHE_BATCH_EVENTS_PROCESSING
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: controller.cluster.cache.batch.events.processing
|
||||
optional: true
|
||||
- name: ARGOCD_CLUSTER_CACHE_EVENTS_PROCESSING_INTERVAL
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: controller.cluster.cache.events.processing.interval
|
||||
optional: true
|
||||
- name: KUBECACHEDIR
|
||||
value: /tmp/kubecache
|
||||
{{- with .Values.controller.envFrom }}
|
||||
envFrom:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
|
@ -344,6 +362,8 @@ spec:
|
|||
name: argocd-home
|
||||
- name: argocd-cmd-params-cm
|
||||
mountPath: /home/argocd/params
|
||||
- name: argocd-application-controller-tmp
|
||||
mountPath: /tmp
|
||||
{{- with .Values.controller.extraContainers }}
|
||||
{{- tpl (toYaml .) $ | nindent 6 }}
|
||||
{{- end }}
|
||||
|
@ -385,6 +405,8 @@ spec:
|
|||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
- emptyDir: {}
|
||||
name: argocd-application-controller-tmp
|
||||
- name: argocd-repo-server-tls
|
||||
secret:
|
||||
secretName: argocd-repo-server-tls
|
||||
|
|
|
@ -151,6 +151,12 @@ spec:
|
|||
key: applicationsetcontroller.enable.progressive.syncs
|
||||
name: argocd-cmd-params-cm
|
||||
optional: true
|
||||
- name: ARGOCD_APPLICATIONSET_CONTROLLER_TOKENREF_STRICT_MODE
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: applicationsetcontroller.enable.tokenref.strict.mode
|
||||
name: argocd-cmd-params-cm
|
||||
optional: true
|
||||
- name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
|
@ -211,6 +217,12 @@ spec:
|
|||
name: argocd-cmd-params-cm
|
||||
key: applicationsetcontroller.webhook.parallelism.limit
|
||||
optional: true
|
||||
- name: ARGOCD_APPLICATIONSET_CONTROLLER_REQUEUE_AFTER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: applicationsetcontroller.requeue.after
|
||||
name: argocd-cmd-params-cm
|
||||
optional: true
|
||||
{{- with .Values.applicationSet.extraEnvFrom }}
|
||||
envFrom:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
|
|
|
@ -0,0 +1,238 @@
|
|||
{{- if .Values.commitServer.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
{{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.commitServer.deploymentAnnotations) }}
|
||||
annotations:
|
||||
{{- range $key, $value := . }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
name: {{ template "argo-cd.commitServer.fullname" . }}
|
||||
namespace: {{ include "argo-cd.namespace" . }}
|
||||
labels:
|
||||
{{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 4 }}
|
||||
spec:
|
||||
{{- with include "argo-cd.strategy" (mergeOverwrite (deepCopy .Values.global.deploymentStrategy) .Values.commitServer.deploymentStrategy) }}
|
||||
strategy:
|
||||
{{- trim . | nindent 4 }}
|
||||
{{- end }}
|
||||
revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
{{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.commitServer.podAnnotations) }}
|
||||
{{- range $key, $value := . }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 8 }}
|
||||
{{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.commitServer.podLabels) }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.commitServer.runtimeClassName | default .Values.global.runtimeClassName }}
|
||||
runtimeClassName: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.commitServer.imagePullSecrets | default .Values.global.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.global.hostAliases }}
|
||||
hostAliases:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.global.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.commitServer.priorityClassName | default .Values.global.priorityClassName }}
|
||||
priorityClassName: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.commitServer.terminationGracePeriodSeconds }}
|
||||
terminationGracePeriodSeconds: {{ . }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ include "argo-cd.commitServer.serviceAccountName" . }}
|
||||
automountServiceAccountToken: {{ .Values.commitServer.automountServiceAccountToken }}
|
||||
containers:
|
||||
- name: {{ .Values.commitServer.name }}
|
||||
image: {{ default .Values.global.image.repository .Values.commitServer.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.commitServer.image.tag }}
|
||||
imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.commitServer.image.imagePullPolicy }}
|
||||
args:
|
||||
- /usr/local/bin/argocd-commit-server
|
||||
{{- with .Values.commitServer.extraArgs }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
env:
|
||||
{{- with (concat .Values.global.env .Values.commitServer.extraEnv) }}
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
- name: ARGOCD_COMMIT_SERVER_LISTEN_ADDRESS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: commitserver.listen.address
|
||||
optional: true
|
||||
- name: ARGOCD_COMMIT_SERVER_METRICS_LISTEN_ADDRESS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: commitserver.metrics.listen.address
|
||||
optional: true
|
||||
- name: ARGOCD_COMMIT_SERVER_LOGFORMAT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: commitserver.log.format
|
||||
optional: true
|
||||
- name: ARGOCD_COMMIT_SERVER_LOGLEVEL
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: commitserver.log.level
|
||||
optional: true
|
||||
- name: ARGOCD_LOG_FORMAT_TIMESTAMP
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: log.format.timestamp
|
||||
optional: true
|
||||
{{- with .Values.commitServer.envFrom }}
|
||||
envFrom:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- containerPort: 8086
|
||||
name: server
|
||||
protocol: TCP
|
||||
- containerPort: 8087
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
{{- if .Values.commitServer.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz?full=true
|
||||
port: 8087
|
||||
initialDelaySeconds: {{ .Values.commitServer.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.commitServer.livenessProbe.periodSeconds }}
|
||||
failureThreshold: {{ .Values.commitServer.livenessProbe.failureThreshold }}
|
||||
timeoutSeconds: {{ .Values.commitServer.livenessProbe.timeoutSeconds }}
|
||||
{{- end }}
|
||||
{{- if .Values.commitServer.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8087
|
||||
initialDelaySeconds: {{ .Values.commitServer.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.commitServer.readinessProbe.periodSeconds }}
|
||||
failureThreshold: {{ .Values.commitServer.readinessProbe.failureThreshold }}
|
||||
timeoutSeconds: {{ .Values.commitServer.readinessProbe.timeoutSeconds }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.commitServer.resources | nindent 10 }}
|
||||
{{- with .Values.commitServer.containerSecurityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- with .Values.commitServer.lifecycle }}
|
||||
lifecycle:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- with .Values.commitServer.extraVolumeMounts }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
- name: ssh-known-hosts
|
||||
mountPath: /app/config/ssh
|
||||
- name: tls-certs
|
||||
mountPath: /app/config/tls
|
||||
- name: gpg-keys
|
||||
mountPath: /app/config/gpg/source
|
||||
- name: gpg-keyring
|
||||
mountPath: /app/config/gpg/keys
|
||||
# We need a writeable temp directory for the askpass socket file.
|
||||
- name: tmp
|
||||
mountPath: /tmp
|
||||
initContainers:
|
||||
- command:
|
||||
- /bin/cp
|
||||
- -n
|
||||
- /usr/local/bin/argocd
|
||||
- /var/run/argocd/argocd-cmp-server
|
||||
image: {{ default .Values.global.image.repository .Values.commitServer.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.commitServer.image.tag }}
|
||||
name: copyutil
|
||||
resources:
|
||||
{{- toYaml .Values.commitServer.resources | nindent 10 }}
|
||||
{{- with .Values.commitServer.containerSecurityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- mountPath: /var/run/argocd
|
||||
name: var-files
|
||||
volumes:
|
||||
{{- with .Values.commitServer.extraVolumes }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
- name: ssh-known-hosts
|
||||
configMap:
|
||||
name: argocd-ssh-known-hosts-cm
|
||||
- name: tls-certs
|
||||
configMap:
|
||||
name: argocd-tls-certs-cm
|
||||
- name: gpg-keys
|
||||
configMap:
|
||||
name: argocd-gpg-keys-cm
|
||||
- name: gpg-keyring
|
||||
emptyDir: {}
|
||||
- name: tmp
|
||||
emptyDir: {}
|
||||
- name: argocd-commit-server-tls
|
||||
secret:
|
||||
secretName: argocd-commit-server-tls
|
||||
optional: true
|
||||
items:
|
||||
- key: tls.crt
|
||||
path: tls.crt
|
||||
- key: tls.key
|
||||
path: tls.key
|
||||
- key: ca.crt
|
||||
path: ca.crt
|
||||
- emptyDir: {}
|
||||
name: var-files
|
||||
{{- with include "argo-cd.affinity" (dict "context" . "component" .Values.commitServer) }}
|
||||
affinity:
|
||||
{{- trim . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.commitServer.nodeSelector | default .Values.global.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.commitServer.tolerations | default .Values.global.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.commitServer.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
|
||||
topologySpreadConstraints:
|
||||
{{- range $constraint := . }}
|
||||
- {{ toYaml $constraint | nindent 8 | trim }}
|
||||
{{- if not $constraint.labelSelector }}
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
{{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.commitServer.name) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.commitServer.hostNetwork }}
|
||||
hostNetwork: {{ .Values.commitServer.hostNetwork }}
|
||||
{{- end }}
|
||||
{{- with .Values.commitServer.dnsConfig }}
|
||||
dnsConfig:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
dnsPolicy: {{ .Values.commitServer.dnsPolicy }}
|
||||
{{- end }}
|
|
@ -0,0 +1,35 @@
|
|||
{{- if and .Values.commitServer.enabled .Values.commitServer.metrics.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "argo-cd.commitServer.fullname" . }}-metrics
|
||||
namespace: {{ include "argo-cd.namespace" . }}
|
||||
labels:
|
||||
{{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" "metrics") | nindent 4 }}
|
||||
{{- with .Values.commitServer.metrics.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.commitServer.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
|
||||
annotations:
|
||||
{{- if .Values.global.addPrometheusAnnotations }}
|
||||
prometheus.io/port: {{ .Values.commitServer.metrics.service.servicePort | quote }}
|
||||
prometheus.io/scrape: "true"
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.commitServer.metrics.service.annotations }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.commitServer.metrics.service.type }}
|
||||
{{- if and .Values.commitServer.metrics.service.clusterIP (eq .Values.commitServer.metrics.service.type "ClusterIP") }}
|
||||
clusterIP: {{ .Values.commitServer.metrics.service.clusterIP }}
|
||||
{{- end }}
|
||||
{{- include "argo-cd.dualStack" . | indent 2 }}
|
||||
ports:
|
||||
- name: {{ .Values.commitServer.metrics.service.portName }}
|
||||
protocol: TCP
|
||||
port: {{ .Values.commitServer.metrics.service.servicePort }}
|
||||
targetPort: 8087
|
||||
selector:
|
||||
{{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 4 }}
|
||||
{{- end }}
|
|
@ -0,0 +1,25 @@
|
|||
{{- if and .Values.commitServer.enabled .Values.global.networkPolicy.create }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: {{ template "argo-cd.commitServer.fullname" . }}
|
||||
namespace: {{ include "argo-cd.namespace" . }}
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
{{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 6 }}
|
||||
policyTypes:
|
||||
- Ingress
|
||||
ingress:
|
||||
- from:
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
{{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 14 }}
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 8086
|
||||
- from:
|
||||
- namespaceSelector: { }
|
||||
ports:
|
||||
- port: 8087
|
||||
{{- end }}
|
|
@ -0,0 +1,26 @@
|
|||
{{- if .Values.commitServer.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "argo-cd.commitServer.fullname" . }}
|
||||
namespace: {{ include "argo-cd.namespace" . }}
|
||||
labels:
|
||||
{{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 4 }}
|
||||
{{- with .Values.commitServer.service.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.commitServer.service.annotations }}
|
||||
annotations:
|
||||
{{- range $key, $value := . }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
ports:
|
||||
- name: server
|
||||
protocol: TCP
|
||||
port: 8086
|
||||
targetPort: 8086
|
||||
selector:
|
||||
{{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.commitServer.name) | nindent 4 }}
|
||||
{{- end }}
|
|
@ -0,0 +1,19 @@
|
|||
{{- if and .Values.commitServer.enabled .Values.commitServer.serviceAccount.create }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
automountServiceAccountToken: {{ .Values.commitServer.serviceAccount.automountServiceAccountToken }}
|
||||
metadata:
|
||||
name: {{ include "argo-cd.commitServer.serviceAccountName" . }}
|
||||
namespace: {{ include "argo-cd.namespace" . }}
|
||||
{{- with .Values.commitServer.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- range $key, $value := . }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "argo-cd.labels" (dict "context" . "component" .Values.commitServer.name "name" .Values.commitServer.name) | nindent 4 }}
|
||||
{{- with .Values.commitServer.serviceAccount.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
|
@ -22,7 +22,7 @@ stringData:
|
|||
{{- if $cluster_value.shard }}
|
||||
shard: {{ $cluster_value.shard | quote }}
|
||||
{{- end }}
|
||||
name: {{ required "A valid .Values.configs.clusterCredentials.CLUSTERNAME.name entry is required!" $cluster_key }}
|
||||
name: {{ $cluster_key }}
|
||||
server: {{ required "A valid .Values.configs.clusterCredentials.CLUSTERNAME.server entry is required!" $cluster_value.server }}
|
||||
{{- if $cluster_value.namespaces }}
|
||||
namespaces: {{ $cluster_value.namespaces }}
|
||||
|
|
|
@ -66,11 +66,15 @@ spec:
|
|||
args:
|
||||
- /usr/local/bin/argocd-notifications
|
||||
- --metrics-port={{ .Values.notifications.containerPorts.metrics }}
|
||||
- --loglevel={{ default .Values.global.logging.level .Values.notifications.logLevel }}
|
||||
- --logformat={{ default .Values.global.logging.format .Values.notifications.logFormat }}
|
||||
- --namespace={{ include "argo-cd.namespace" . }}
|
||||
- --argocd-repo-server={{ template "argo-cd.repoServer.fullname" . }}:{{ .Values.repoServer.service.port }}
|
||||
- --secret-name={{ .Values.notifications.secret.name }}
|
||||
{{- with .Values.notifications.logLevel }}
|
||||
- --loglevel={{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.notifications.logFormat }}
|
||||
- --logformat={{ . }}
|
||||
{{- end }}
|
||||
{{- range .Values.notifications.extraArgs }}
|
||||
- {{ . | squote }}
|
||||
{{- end }}
|
||||
|
|
|
@ -178,19 +178,11 @@ spec:
|
|||
- name: REDIS_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
|
||||
key: redis-username
|
||||
optional: true
|
||||
{{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
|
||||
{{- if .Values.externalRedis.host }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
key: auth
|
||||
{{- end }}
|
||||
optional: true
|
||||
{{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
|
||||
- name: REDIS_SENTINEL_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
@ -239,6 +231,12 @@ spec:
|
|||
name: argocd-cmd-params-cm
|
||||
key: reposerver.plugin.tar.exclusions
|
||||
optional: true
|
||||
- name: ARGOCD_REPO_SERVER_PLUGIN_USE_MANIFEST_GENERATE_PATHS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: reposerver.plugin.use.manifest.generate.paths
|
||||
name: argocd-cmd-params-cm
|
||||
optional: true
|
||||
- name: ARGOCD_REPO_SERVER_ALLOW_OUT_OF_BOUNDS_SYMLINKS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
|
|
|
@ -246,19 +246,11 @@ spec:
|
|||
- name: REDIS_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
|
||||
key: redis-username
|
||||
optional: true
|
||||
{{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ default "argocd-redis" .Values.externalRedis.existingSecret }}
|
||||
{{- if .Values.externalRedis.host }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
key: auth
|
||||
{{- end }}
|
||||
optional: true
|
||||
{{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
|
||||
- name: REDIS_SENTINEL_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
|
@ -373,6 +365,12 @@ spec:
|
|||
name: argocd-cmd-params-cm
|
||||
key: applicationsetcontroller.enable.scm.providers
|
||||
optional: true
|
||||
- name: ARGOCD_HYDRATOR_ENABLED
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: argocd-cmd-params-cm
|
||||
key: hydrator.enabled
|
||||
optional: true
|
||||
{{- with .Values.server.envFrom }}
|
||||
envFrom:
|
||||
{{- toYaml . | nindent 10 }}
|
||||
|
|
|
@ -319,6 +319,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition
|
||||
installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema validation
|
||||
(Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value files
|
||||
to use when generating a template
|
||||
|
@ -466,6 +474,10 @@ spec:
|
|||
to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is displayed
|
||||
in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git repository,
|
||||
and is only valid for applications sourced from Git.
|
||||
|
@ -685,6 +697,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition
|
||||
installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema
|
||||
validation (Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value files
|
||||
to use when generating a template
|
||||
|
@ -834,6 +854,10 @@ spec:
|
|||
to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is displayed
|
||||
in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git repository,
|
||||
and is only valid for applications sourced from Git.
|
||||
|
@ -1166,6 +1190,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition installation
|
||||
step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema validation
|
||||
(Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation step
|
||||
(Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value files to
|
||||
use when generating a template
|
||||
|
@ -1312,6 +1344,10 @@ spec:
|
|||
use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is displayed
|
||||
in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git repository,
|
||||
and is only valid for applications sourced from Git.
|
||||
|
@ -1378,6 +1414,64 @@ spec:
|
|||
required:
|
||||
- repoURL
|
||||
type: object
|
||||
sourceHydrator:
|
||||
description: SourceHydrator provides a way to push hydrated manifests
|
||||
back to git before syncing them to the cluster.
|
||||
properties:
|
||||
drySource:
|
||||
description: DrySource specifies where the dry "don't repeat yourself"
|
||||
manifest source lives.
|
||||
properties:
|
||||
path:
|
||||
description: Path is a directory path within the Git repository
|
||||
where the manifests are located
|
||||
type: string
|
||||
repoURL:
|
||||
description: RepoURL is the URL to the git repository that
|
||||
contains the application manifests
|
||||
type: string
|
||||
targetRevision:
|
||||
description: TargetRevision defines the revision of the source
|
||||
to hydrate
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
- repoURL
|
||||
- targetRevision
|
||||
type: object
|
||||
hydrateTo:
|
||||
description: |-
|
||||
HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
|
||||
have to move manifests to the SyncSource, e.g. by pull request.
|
||||
properties:
|
||||
targetBranch:
|
||||
description: TargetBranch is the branch to which hydrated
|
||||
manifests should be committed
|
||||
type: string
|
||||
required:
|
||||
- targetBranch
|
||||
type: object
|
||||
syncSource:
|
||||
description: SyncSource specifies where to sync hydrated manifests
|
||||
from.
|
||||
properties:
|
||||
path:
|
||||
description: |-
|
||||
Path is a directory path within the git repository where hydrated manifests should be committed to and synced
|
||||
from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
|
||||
type: string
|
||||
targetBranch:
|
||||
description: TargetBranch is the branch to which hydrated
|
||||
manifests should be committed
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
- targetBranch
|
||||
type: object
|
||||
required:
|
||||
- drySource
|
||||
- syncSource
|
||||
type: object
|
||||
sources:
|
||||
description: Sources is a reference to the location of the application's
|
||||
manifests or chart
|
||||
|
@ -1523,6 +1617,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition installation
|
||||
step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema validation
|
||||
(Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value files to
|
||||
use when generating a template
|
||||
|
@ -1670,6 +1772,10 @@ spec:
|
|||
to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is displayed
|
||||
in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git repository,
|
||||
and is only valid for applications sourced from Git.
|
||||
|
@ -1848,6 +1954,11 @@ spec:
|
|||
description: Health contains information about the application's current
|
||||
health status
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: LastTransitionTime is the time the HealthStatus was
|
||||
set or updated
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Message is a human-readable informational message
|
||||
describing the health status
|
||||
|
@ -2045,6 +2156,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition
|
||||
installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema
|
||||
validation (Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value files
|
||||
to use when generating a template
|
||||
|
@ -2194,6 +2313,10 @@ spec:
|
|||
to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is displayed
|
||||
in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git repository,
|
||||
and is only valid for applications sourced from Git.
|
||||
|
@ -2414,6 +2537,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition
|
||||
installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema
|
||||
validation (Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value files
|
||||
to use when generating a template
|
||||
|
@ -2565,6 +2696,10 @@ spec:
|
|||
to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is
|
||||
displayed in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git repository,
|
||||
and is only valid for applications sourced from Git.
|
||||
|
@ -2933,6 +3068,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition
|
||||
installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema
|
||||
validation (Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value
|
||||
files to use when generating a template
|
||||
|
@ -3085,6 +3228,11 @@ spec:
|
|||
Kustomize to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and
|
||||
is displayed in the UI. It is used in multi-source
|
||||
Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git
|
||||
repository, and is only valid for applications sourced
|
||||
|
@ -3320,6 +3468,14 @@ spec:
|
|||
description: SkipCrds skips custom resource
|
||||
definition installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON
|
||||
schema validation (Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value
|
||||
files to use when generating a template
|
||||
|
@ -3475,6 +3631,11 @@ spec:
|
|||
of Kustomize to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and
|
||||
is displayed in the UI. It is used in multi-source
|
||||
Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the
|
||||
Git repository, and is only valid for applications
|
||||
|
@ -3824,6 +3985,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition
|
||||
installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema
|
||||
validation (Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value files
|
||||
to use when generating a template
|
||||
|
@ -3975,6 +4144,10 @@ spec:
|
|||
to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is
|
||||
displayed in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git repository,
|
||||
and is only valid for applications sourced from Git.
|
||||
|
@ -4205,6 +4378,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition
|
||||
installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema
|
||||
validation (Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value
|
||||
files to use when generating a template
|
||||
|
@ -4357,6 +4538,10 @@ spec:
|
|||
to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is
|
||||
displayed in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git
|
||||
repository, and is only valid for applications sourced
|
||||
|
@ -4463,6 +4648,11 @@ spec:
|
|||
description: HealthStatus contains information about the currently
|
||||
observed health state of an application or resource
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: LastTransitionTime is the time the HealthStatus
|
||||
was set or updated
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Message is a human-readable informational message
|
||||
describing the health status
|
||||
|
@ -4480,6 +4670,8 @@ spec:
|
|||
type: string
|
||||
namespace:
|
||||
type: string
|
||||
requiresDeletionConfirmation:
|
||||
type: boolean
|
||||
requiresPruning:
|
||||
type: boolean
|
||||
status:
|
||||
|
@ -4493,6 +4685,177 @@ spec:
|
|||
type: string
|
||||
type: object
|
||||
type: array
|
||||
sourceHydrator:
|
||||
description: SourceHydrator stores information about the current state
|
||||
of source hydration
|
||||
properties:
|
||||
currentOperation:
|
||||
description: CurrentOperation holds the status of the hydrate
|
||||
operation
|
||||
properties:
|
||||
drySHA:
|
||||
description: DrySHA holds the resolved revision (sha) of the
|
||||
dry source as of the most recent reconciliation
|
||||
type: string
|
||||
finishedAt:
|
||||
description: FinishedAt indicates when the hydrate operation
|
||||
finished
|
||||
format: date-time
|
||||
type: string
|
||||
hydratedSHA:
|
||||
description: HydratedSHA holds the resolved revision (sha)
|
||||
of the hydrated source as of the most recent reconciliation
|
||||
type: string
|
||||
message:
|
||||
description: Message contains a message describing the current
|
||||
status of the hydrate operation
|
||||
type: string
|
||||
phase:
|
||||
description: Phase indicates the status of the hydrate operation
|
||||
enum:
|
||||
- Hydrating
|
||||
- Failed
|
||||
- Hydrated
|
||||
type: string
|
||||
sourceHydrator:
|
||||
description: SourceHydrator holds the hydrator config used
|
||||
for the hydrate operation
|
||||
properties:
|
||||
drySource:
|
||||
description: DrySource specifies where the dry "don't
|
||||
repeat yourself" manifest source lives.
|
||||
properties:
|
||||
path:
|
||||
description: Path is a directory path within the Git
|
||||
repository where the manifests are located
|
||||
type: string
|
||||
repoURL:
|
||||
description: RepoURL is the URL to the git repository
|
||||
that contains the application manifests
|
||||
type: string
|
||||
targetRevision:
|
||||
description: TargetRevision defines the revision of
|
||||
the source to hydrate
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
- repoURL
|
||||
- targetRevision
|
||||
type: object
|
||||
hydrateTo:
|
||||
description: |-
|
||||
HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
|
||||
have to move manifests to the SyncSource, e.g. by pull request.
|
||||
properties:
|
||||
targetBranch:
|
||||
description: TargetBranch is the branch to which hydrated
|
||||
manifests should be committed
|
||||
type: string
|
||||
required:
|
||||
- targetBranch
|
||||
type: object
|
||||
syncSource:
|
||||
description: SyncSource specifies where to sync hydrated
|
||||
manifests from.
|
||||
properties:
|
||||
path:
|
||||
description: |-
|
||||
Path is a directory path within the git repository where hydrated manifests should be committed to and synced
|
||||
from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
|
||||
type: string
|
||||
targetBranch:
|
||||
description: TargetBranch is the branch to which hydrated
|
||||
manifests should be committed
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
- targetBranch
|
||||
type: object
|
||||
required:
|
||||
- drySource
|
||||
- syncSource
|
||||
type: object
|
||||
startedAt:
|
||||
description: StartedAt indicates when the hydrate operation
|
||||
started
|
||||
format: date-time
|
||||
type: string
|
||||
required:
|
||||
- message
|
||||
- phase
|
||||
type: object
|
||||
lastSuccessfulOperation:
|
||||
description: LastSuccessfulOperation holds info about the most
|
||||
recent successful hydration
|
||||
properties:
|
||||
drySHA:
|
||||
description: DrySHA holds the resolved revision (sha) of the
|
||||
dry source as of the most recent reconciliation
|
||||
type: string
|
||||
hydratedSHA:
|
||||
description: HydratedSHA holds the resolved revision (sha)
|
||||
of the hydrated source as of the most recent reconciliation
|
||||
type: string
|
||||
sourceHydrator:
|
||||
description: SourceHydrator holds the hydrator config used
|
||||
for the hydrate operation
|
||||
properties:
|
||||
drySource:
|
||||
description: DrySource specifies where the dry "don't
|
||||
repeat yourself" manifest source lives.
|
||||
properties:
|
||||
path:
|
||||
description: Path is a directory path within the Git
|
||||
repository where the manifests are located
|
||||
type: string
|
||||
repoURL:
|
||||
description: RepoURL is the URL to the git repository
|
||||
that contains the application manifests
|
||||
type: string
|
||||
targetRevision:
|
||||
description: TargetRevision defines the revision of
|
||||
the source to hydrate
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
- repoURL
|
||||
- targetRevision
|
||||
type: object
|
||||
hydrateTo:
|
||||
description: |-
|
||||
HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
|
||||
have to move manifests to the SyncSource, e.g. by pull request.
|
||||
properties:
|
||||
targetBranch:
|
||||
description: TargetBranch is the branch to which hydrated
|
||||
manifests should be committed
|
||||
type: string
|
||||
required:
|
||||
- targetBranch
|
||||
type: object
|
||||
syncSource:
|
||||
description: SyncSource specifies where to sync hydrated
|
||||
manifests from.
|
||||
properties:
|
||||
path:
|
||||
description: |-
|
||||
Path is a directory path within the git repository where hydrated manifests should be committed to and synced
|
||||
from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
|
||||
type: string
|
||||
targetBranch:
|
||||
description: TargetBranch is the branch to which hydrated
|
||||
manifests should be committed
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
- targetBranch
|
||||
type: object
|
||||
required:
|
||||
- drySource
|
||||
- syncSource
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
sourceType:
|
||||
description: SourceType specifies the type of this application
|
||||
type: string
|
||||
|
@ -4730,6 +5093,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition
|
||||
installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema
|
||||
validation (Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value files
|
||||
to use when generating a template
|
||||
|
@ -4881,6 +5252,10 @@ spec:
|
|||
to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is
|
||||
displayed in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git repository,
|
||||
and is only valid for applications sourced from Git.
|
||||
|
@ -5111,6 +5486,14 @@ spec:
|
|||
description: SkipCrds skips custom resource definition
|
||||
installation step (Helm's --skip-crds)
|
||||
type: boolean
|
||||
skipSchemaValidation:
|
||||
description: SkipSchemaValidation skips JSON schema
|
||||
validation (Helm's --skip-schema-validation)
|
||||
type: boolean
|
||||
skipTests:
|
||||
description: SkipTests skips test manifest installation
|
||||
step (Helm's --skip-tests).
|
||||
type: boolean
|
||||
valueFiles:
|
||||
description: ValuesFiles is a list of Helm value
|
||||
files to use when generating a template
|
||||
|
@ -5263,6 +5646,10 @@ spec:
|
|||
to use for rendering manifests
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: Name is used to refer to a source and is
|
||||
displayed in the UI. It is used in multi-source Applications.
|
||||
type: string
|
||||
path:
|
||||
description: Path is a directory path within the Git
|
||||
repository, and is only valid for applications sourced
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -72,8 +72,12 @@ spec:
|
|||
imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.dex.image.imagePullPolicy }}
|
||||
command:
|
||||
- /shared/argocd-dex
|
||||
- --logformat={{ default .Values.global.logging.format .Values.dex.logFormat }}
|
||||
- --loglevel={{ default .Values.global.logging.level .Values.dex.logLevel }}
|
||||
{{- with .Values.dex.logLevel }}
|
||||
- --loglevel={{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.dex.logFormat }}
|
||||
- --logformat={{ . }}
|
||||
{{- end }}
|
||||
args:
|
||||
- rundex
|
||||
{{- with .Values.dex.extraArgs }}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.dex.metrics.enabled .Values.dex.metrics.serviceMonitor.enabled }}
|
||||
{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.dex.enabled .Values.dex.metrics.enabled .Values.dex.metrics.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
|
|
|
@ -119,7 +119,8 @@ global:
|
|||
priorityClassName: ""
|
||||
|
||||
# -- Default node selector for all components
|
||||
nodeSelector: {}
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
|
||||
# -- Default tolerations for all components
|
||||
tolerations: []
|
||||
|
@ -163,7 +164,7 @@ global:
|
|||
|
||||
## Argo Configs
|
||||
configs:
|
||||
# General Argo CD configuration
|
||||
# General Argo CD configuration. Any values you put under `.configs.cm` are passed to argocd-cm ConfigMap.
|
||||
## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/argocd-cm.yaml
|
||||
cm:
|
||||
# -- Create the argocd-cm configmap for [declarative setup]
|
||||
|
@ -274,6 +275,8 @@ configs:
|
|||
controller.self.heal.timeout.seconds: 5
|
||||
# -- Repo server RPC call timeout seconds.
|
||||
controller.repo.server.timeout.seconds: 60
|
||||
# -- Specifies the timeout after which a sync would be terminated. 0 means no timeout
|
||||
controller.sync.timeout.seconds: 0
|
||||
|
||||
## Server properties
|
||||
# -- Run server without TLS
|
||||
|
@ -728,8 +731,9 @@ controller:
|
|||
# image: alpine:3
|
||||
# command: [sh, -c]
|
||||
# args:
|
||||
# - wget -qO kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.0.25/kubelogin-linux-amd64.zip &&
|
||||
# unzip kubelogin.zip && mv bin/linux_amd64/kubelogin /custom-tools/
|
||||
# - wget -qO /custom-tools/kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.2.7/kubelogin-linux-amd64.zip &&
|
||||
# mkdir /custom-tools/tmp && unzip -d /custom-tools/tmp /custom-tools/kubelogin.zip &&
|
||||
# mv /custom-tools/tmp/bin/linux_amd64/kubelogin /custom-tools/ && rm -rf custom-tools/tmp && rm /custom-tools/kubelogin.zip
|
||||
# volumeMounts:
|
||||
# - mountPath: /custom-tools
|
||||
# name: custom-tools
|
||||
|
@ -1024,7 +1028,7 @@ dex:
|
|||
# -- Dex image repository
|
||||
repository: ghcr.io/dexidp/dex
|
||||
# -- Dex image tag
|
||||
tag: v2.41.1
|
||||
tag: v2.42.1
|
||||
# -- Dex imagePullPolicy
|
||||
# @default -- `""` (defaults to global.image.imagePullPolicy)
|
||||
imagePullPolicy: ""
|
||||
|
@ -1249,12 +1253,13 @@ dex:
|
|||
# maxSurge: 25%
|
||||
# maxUnavailable: 25%
|
||||
|
||||
# DEPRECATED - Use configs.params to override
|
||||
# -- Dex log format. Either `text` or `json`
|
||||
# @default -- `""` (defaults to global.logging.format)
|
||||
logFormat: ""
|
||||
# logFormat: ""
|
||||
# -- Dex log level. One of: `debug`, `info`, `warn`, `error`
|
||||
# @default -- `""` (defaults to global.logging.level)
|
||||
logLevel: ""
|
||||
# logLevel: ""
|
||||
|
||||
## Redis
|
||||
redis:
|
||||
|
@ -1302,9 +1307,9 @@ redis:
|
|||
## Prometheus redis-exporter image
|
||||
image:
|
||||
# -- Repository to use for the redis-exporter
|
||||
repository: public.ecr.aws/bitnami/redis-exporter
|
||||
repository: ghcr.io/oliver006/redis_exporter
|
||||
# -- Tag to use for the redis-exporter
|
||||
tag: 1.67.0
|
||||
tag: v1.70.0
|
||||
# -- Image pull policy for the redis-exporter
|
||||
# @default -- `""` (defaults to global.image.imagePullPolicy)
|
||||
imagePullPolicy: ""
|
||||
|
@ -1580,9 +1585,9 @@ redis-ha:
|
|||
# -- Enable Prometheus redis-exporter sidecar
|
||||
enabled: false
|
||||
# -- Repository to use for the redis-exporter
|
||||
image: public.ecr.aws/bitnami/redis-exporter
|
||||
image: ghcr.io/oliver006/redis_exporter
|
||||
# -- Tag to use for the redis-exporter
|
||||
tag: 1.58.0
|
||||
tag: v1.69.0
|
||||
persistentVolume:
|
||||
# -- Configures persistence on Redis nodes
|
||||
enabled: false
|
||||
|
@ -1928,8 +1933,9 @@ server:
|
|||
# image: alpine:3
|
||||
# command: [sh, -c]
|
||||
# args:
|
||||
# - wget -qO kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.0.25/kubelogin-linux-amd64.zip &&
|
||||
# unzip kubelogin.zip && mv bin/linux_amd64/kubelogin /custom-tools/
|
||||
# - wget -qO /custom-tools/kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.2.7/kubelogin-linux-amd64.zip &&
|
||||
# mkdir /custom-tools/tmp && unzip -d /custom-tools/tmp /custom-tools/kubelogin.zip &&
|
||||
# mv /custom-tools/tmp/bin/linux_amd64/kubelogin /custom-tools/ && rm -rf custom-tools/tmp && rm /custom-tools/kubelogin.zip
|
||||
# volumeMounts:
|
||||
# - mountPath: /custom-tools
|
||||
# name: custom-tools
|
||||
|
@ -3233,12 +3239,13 @@ notifications:
|
|||
# @default -- `[]` (defaults to global.imagePullSecrets)
|
||||
imagePullSecrets: []
|
||||
|
||||
# DEPRECATED - Use configs.params to override
|
||||
# -- Notifications controller log format. Either `text` or `json`
|
||||
# @default -- `""` (defaults to global.logging.format)
|
||||
logFormat: ""
|
||||
# logFormat: ""
|
||||
# -- Notifications controller log level. One of: `debug`, `info`, `warn`, `error`
|
||||
# @default -- `""` (defaults to global.logging.level)
|
||||
logLevel: ""
|
||||
# logLevel: ""
|
||||
|
||||
# -- Extra arguments to provide to the notifications controller
|
||||
extraArgs: []
|
||||
|
@ -3749,3 +3756,183 @@ notifications:
|
|||
# For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/triggers/#default-triggers
|
||||
# defaultTriggers: |
|
||||
# - on-sync-status-unknown
|
||||
|
||||
commitServer:
|
||||
# -- Enable commit server
|
||||
enabled: false
|
||||
|
||||
# -- Commit server name
|
||||
name: commit-server
|
||||
|
||||
# -- Runtime class name for the commit server
|
||||
# @default -- `""` (defaults to global.runtimeClassName)
|
||||
runtimeClassName: ""
|
||||
|
||||
## commit server controller image
|
||||
image:
|
||||
# -- Repository to use for the commit server
|
||||
# @default -- `""` (defaults to global.image.repository)
|
||||
repository: ""
|
||||
# -- Tag to use for the commit server
|
||||
# @default -- `""` (defaults to global.image.tag)
|
||||
tag: ""
|
||||
# -- Image pull policy for the commit server
|
||||
# @default -- `""` (defaults to global.image.imagePullPolicy)
|
||||
imagePullPolicy: ""
|
||||
|
||||
# -- commit server command line flags
|
||||
extraArgs: []
|
||||
|
||||
# -- Environment variables to pass to the commit server
|
||||
extraEnv: []
|
||||
# - name: "MY_VAR"
|
||||
# value: "value"
|
||||
|
||||
# -- envFrom to pass to the commit server
|
||||
# @default -- `[]` (See [values.yaml])
|
||||
extraEnvFrom: []
|
||||
# - configMapRef:
|
||||
# name: config-map-name
|
||||
# - secretRef:
|
||||
# name: secret-name
|
||||
|
||||
# -- List of extra mounts to add (normally used with extraVolumes)
|
||||
extraVolumeMounts: []
|
||||
|
||||
# -- List of extra volumes to add
|
||||
extraVolumes: []
|
||||
|
||||
metrics:
|
||||
# -- Enables prometheus metrics server
|
||||
enabled: false
|
||||
service:
|
||||
# -- Metrics service type
|
||||
type: ClusterIP
|
||||
# -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP)
|
||||
clusterIP: ""
|
||||
# -- Metrics service annotations
|
||||
annotations: {}
|
||||
# -- Metrics service labels
|
||||
labels: {}
|
||||
# -- Metrics service port
|
||||
servicePort: 8087
|
||||
# -- Metrics service port name
|
||||
portName: metrics
|
||||
|
||||
## commit server service configuration
|
||||
service:
|
||||
# -- commit server service annotations
|
||||
annotations: {}
|
||||
# -- commit server service labels
|
||||
labels: {}
|
||||
|
||||
# -- Automount API credentials for the Service Account into the pod.
|
||||
automountServiceAccountToken: false
|
||||
|
||||
serviceAccount:
|
||||
# -- Create commit server service account
|
||||
create: true
|
||||
# -- commit server service account name
|
||||
name: argocd-commit-server
|
||||
# -- Annotations applied to created service account
|
||||
annotations: {}
|
||||
# -- Labels applied to created service account
|
||||
labels: {}
|
||||
# -- Automount API credentials for the Service Account
|
||||
automountServiceAccountToken: true
|
||||
|
||||
# -- Annotations to be added to commit server Deployment
|
||||
deploymentAnnotations: {}
|
||||
|
||||
# -- Annotations for the commit server pods
|
||||
podAnnotations: {}
|
||||
|
||||
# -- Labels for the commit server pods
|
||||
podLabels: {}
|
||||
|
||||
# -- Resource limits and requests for the commit server pods.
|
||||
resources: {}
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
# -- [DNS configuration]
|
||||
dnsConfig: {}
|
||||
# -- Alternative DNS policy for commit server pods
|
||||
dnsPolicy: "ClusterFirst"
|
||||
|
||||
# -- commit server container-level security context
|
||||
# @default -- See [values.yaml]
|
||||
containerSecurityContext:
|
||||
runAsNonRoot: true
|
||||
readOnlyRootFilesystem: true
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
|
||||
## Probes for commit server (optional)
|
||||
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
|
||||
readinessProbe:
|
||||
# -- Enable Kubernetes liveness probe for commit server
|
||||
enabled: true
|
||||
# -- Number of seconds after the container has started before [probe] is initiated
|
||||
initialDelaySeconds: 5
|
||||
# -- How often (in seconds) to perform the [probe]
|
||||
periodSeconds: 10
|
||||
# -- Number of seconds after which the [probe] times out
|
||||
timeoutSeconds: 1
|
||||
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
|
||||
failureThreshold: 3
|
||||
|
||||
livenessProbe:
|
||||
# -- Enable Kubernetes liveness probe for commit server
|
||||
enabled: true
|
||||
# -- Number of seconds after the container has started before [probe] is initiated
|
||||
initialDelaySeconds: 30
|
||||
# -- How often (in seconds) to perform the [probe]
|
||||
periodSeconds: 30
|
||||
# -- Number of seconds after which the [probe] times out
|
||||
timeoutSeconds: 5
|
||||
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
|
||||
failureThreshold: 3
|
||||
|
||||
# -- terminationGracePeriodSeconds for container lifecycle hook
|
||||
terminationGracePeriodSeconds: 30
|
||||
|
||||
# -- [Node selector]
|
||||
# @default -- `{}` (defaults to global.nodeSelector)
|
||||
nodeSelector: {}
|
||||
|
||||
# -- [Tolerations] for use with node taints
|
||||
# @default -- `[]` (defaults to global.tolerations)
|
||||
tolerations: []
|
||||
|
||||
# -- Assign custom [affinity] rules
|
||||
# @default -- `{}` (defaults to global.affinity preset)
|
||||
affinity: {}
|
||||
|
||||
# -- Assign custom [TopologySpreadConstraints] rules to the commit server
|
||||
# @default -- `[]` (defaults to global.topologySpreadConstraints)
|
||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
|
||||
topologySpreadConstraints: []
|
||||
# - maxSkew: 1
|
||||
# topologyKey: topology.kubernetes.io/zone
|
||||
# whenUnsatisfiable: DoNotSchedule
|
||||
|
||||
# -- Deployment strategy to be added to the commit server Deployment
|
||||
deploymentStrategy: {}
|
||||
# type: RollingUpdate
|
||||
# rollingUpdate:
|
||||
# maxSurge: 25%
|
||||
# maxUnavailable: 25%
|
||||
|
||||
# -- Priority class for the commit server pods
|
||||
# @default -- `""` (defaults to global.priorityClassName)
|
||||
priorityClassName: ""
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
apiVersion: v2
|
||||
appVersion: v1.9.5
|
||||
appVersion: v1.9.6
|
||||
description: A Helm chart for Argo Events, the event-driven workflow automation framework
|
||||
name: argo-events
|
||||
version: 2.4.13
|
||||
version: 2.4.15
|
||||
home: https://github.com/argoproj/argo-helm
|
||||
icon: https://avatars.githubusercontent.com/u/30269780?s=200&v=4
|
||||
keywords:
|
||||
|
@ -19,4 +19,4 @@ annotations:
|
|||
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
|
||||
artifacthub.io/changes: |
|
||||
- kind: changed
|
||||
description: Bump argo-events to v1.9.5
|
||||
description: Bump argo-events to v1.9.6
|
||||
|
|
|
@ -180,6 +180,7 @@ done
|
|||
| controller.readinessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out |
|
||||
| controller.replicas | int | `1` | The number of events controller pods to run. |
|
||||
| controller.resources | object | `{}` | Resource limits and requests for the events controller pods |
|
||||
| controller.revisionHistoryLimit | int | `5` | The number of replicasets history to keep |
|
||||
| controller.serviceAccount.annotations | object | `{}` | Annotations applied to created service account |
|
||||
| controller.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account |
|
||||
| controller.serviceAccount.create | bool | `true` | Create a service account for the events controller |
|
||||
|
@ -222,6 +223,7 @@ done
|
|||
| webhook.readinessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out |
|
||||
| webhook.replicas | int | `1` | The number of webhook pods to run. |
|
||||
| webhook.resources | object | `{}` | Resource limits and requests for the event controller pods |
|
||||
| webhook.revisionHistoryLimit | int | `5` | The number of replicasets history to keep |
|
||||
| webhook.serviceAccount.annotations | object | `{}` | Annotations applied to created service account |
|
||||
| webhook.serviceAccount.automountServiceAccountToken | bool | `true` | Automount API credentials for the Service Account |
|
||||
| webhook.serviceAccount.create | bool | `true` | Create a service account for the admission webhook |
|
||||
|
|
|
@ -10,7 +10,7 @@ spec:
|
|||
selector:
|
||||
matchLabels:
|
||||
{{- include "argo-events.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
|
||||
revisionHistoryLimit: 5
|
||||
revisionHistoryLimit: {{ .Values.controller.revisionHistoryLimit }}
|
||||
replicas: {{ .Values.controller.replicas }}
|
||||
template:
|
||||
metadata:
|
||||
|
|
|
@ -11,7 +11,7 @@ spec:
|
|||
selector:
|
||||
matchLabels:
|
||||
{{- include "argo-events.selectorLabels" (dict "context" . "name" .Values.webhook.name) | nindent 6 }}
|
||||
revisionHistoryLimit: 5
|
||||
revisionHistoryLimit: {{ .Values.webhook.revisionHistoryLimit }}
|
||||
replicas: {{ .Values.webhook.replicas }}
|
||||
template:
|
||||
metadata:
|
||||
|
|
|
@ -201,6 +201,9 @@ controller:
|
|||
# @default -- `""` (defaults to global.image.imagePullPolicy)
|
||||
imagePullPolicy: ""
|
||||
|
||||
# -- The number of replicasets history to keep
|
||||
revisionHistoryLimit: 5
|
||||
|
||||
# -- The number of events controller pods to run.
|
||||
replicas: 1
|
||||
|
||||
|
@ -363,6 +366,9 @@ webhook:
|
|||
# @default -- `""` (defaults to global.image.imagePullPolicy)
|
||||
imagePullPolicy: ""
|
||||
|
||||
# -- The number of replicasets history to keep
|
||||
revisionHistoryLimit: 5
|
||||
|
||||
# -- The number of webhook pods to run.
|
||||
replicas: 1
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
apiVersion: v2
|
||||
appVersion: v1.7.2
|
||||
appVersion: v1.8.2
|
||||
description: A Helm chart for Argo Rollouts
|
||||
name: argo-rollouts
|
||||
version: 2.38.2
|
||||
version: 2.39.5
|
||||
home: https://github.com/argoproj/argo-helm
|
||||
icon: https://argoproj.github.io/argo-rollouts/assets/logo.png
|
||||
keywords:
|
||||
|
@ -18,7 +18,5 @@ annotations:
|
|||
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
|
||||
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
|
||||
artifacthub.io/changes: |
|
||||
- kind: added
|
||||
description: Add lifecycle settings for controller
|
||||
- kind: added
|
||||
description: Add terminationGracePeriodSeconds for controller
|
||||
- kind: fixed
|
||||
description: argo-rollouts will re-deploy if changes are made to the argo-rollouts configmap.
|
||||
|
|
|
@ -126,6 +126,7 @@ For full list of changes please check ArtifactHub [changelog].
|
|||
| controller.readinessProbe | object | See [values.yaml] | Configure readiness [probe] for the controller |
|
||||
| controller.replicas | int | `2` | The number of controller pods to run |
|
||||
| controller.resources | object | `{}` | Resource limits and requests for the controller pods. |
|
||||
| controller.stepPlugins | list | `[]` | Configures 3rd party stepPlugins for controller |
|
||||
| controller.terminationGracePeriodSeconds | int | `30` | terminationGracePeriodSeconds for container lifecycle hook |
|
||||
| controller.tolerations | list | `[]` | [Tolerations] for use with node taints |
|
||||
| controller.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the controller |
|
||||
|
|
|
@ -11,6 +11,10 @@ data:
|
|||
metricProviderPlugins: |-
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.controller.stepPlugins }}
|
||||
stepPlugins: |-
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.controller.trafficRouterPlugins }}
|
||||
trafficRouterPlugins: |-
|
||||
{{- toYaml . | nindent 4 }}
|
||||
|
|
|
@ -26,12 +26,13 @@ spec:
|
|||
revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with (mergeOverwrite (deepCopy .Values.podAnnotations) .Values.controller.podAnnotations) }}
|
||||
annotations:
|
||||
{{- with (mergeOverwrite (deepCopy .Values.podAnnotations) .Values.controller.podAnnotations) }}
|
||||
{{- range $key, $value := . }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
checksum/cm: {{ include (print $.Template.BasePath "/controller/configmap.yaml") . | sha256sum }}
|
||||
labels:
|
||||
{{- include "argo-rollouts.selectorLabels" . | nindent 8 }}
|
||||
app.kubernetes.io/component: {{ .Values.controller.component }}
|
||||
|
|
|
@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.13.0
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
{{- if .Values.keepCRDs }}
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
|
@ -108,6 +108,11 @@ spec:
|
|||
- type: integer
|
||||
- type: string
|
||||
x-kubernetes-int-or-string: true
|
||||
consecutiveSuccessLimit:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
x-kubernetes-int-or-string: true
|
||||
count:
|
||||
anyOf:
|
||||
- type: integer
|
||||
|
@ -217,6 +222,13 @@ spec:
|
|||
type: object
|
||||
query:
|
||||
type: string
|
||||
secretRef:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
namespaced:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
graphite:
|
||||
properties:
|
||||
|
@ -3025,6 +3037,9 @@ spec:
|
|||
type: string
|
||||
query:
|
||||
type: string
|
||||
timeout:
|
||||
format: int64
|
||||
type: integer
|
||||
required:
|
||||
- query
|
||||
type: object
|
||||
|
@ -3076,6 +3091,15 @@ spec:
|
|||
type: boolean
|
||||
query:
|
||||
type: string
|
||||
rangeQuery:
|
||||
properties:
|
||||
end:
|
||||
type: string
|
||||
start:
|
||||
type: string
|
||||
step:
|
||||
type: string
|
||||
type: object
|
||||
timeout:
|
||||
format: int64
|
||||
type: integer
|
||||
|
@ -3210,6 +3234,9 @@ spec:
|
|||
consecutiveError:
|
||||
format: int32
|
||||
type: integer
|
||||
consecutiveSuccess:
|
||||
format: int32
|
||||
type: integer
|
||||
count:
|
||||
format: int32
|
||||
type: integer
|
||||
|
|
|
@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.13.0
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
{{- if .Values.keepCRDs }}
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
|
@ -104,6 +104,11 @@ spec:
|
|||
- type: integer
|
||||
- type: string
|
||||
x-kubernetes-int-or-string: true
|
||||
consecutiveSuccessLimit:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
x-kubernetes-int-or-string: true
|
||||
count:
|
||||
anyOf:
|
||||
- type: integer
|
||||
|
@ -213,6 +218,13 @@ spec:
|
|||
type: object
|
||||
query:
|
||||
type: string
|
||||
secretRef:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
namespaced:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
graphite:
|
||||
properties:
|
||||
|
@ -3021,6 +3033,9 @@ spec:
|
|||
type: string
|
||||
query:
|
||||
type: string
|
||||
timeout:
|
||||
format: int64
|
||||
type: integer
|
||||
required:
|
||||
- query
|
||||
type: object
|
||||
|
@ -3072,6 +3087,15 @@ spec:
|
|||
type: boolean
|
||||
query:
|
||||
type: string
|
||||
rangeQuery:
|
||||
properties:
|
||||
end:
|
||||
type: string
|
||||
start:
|
||||
type: string
|
||||
step:
|
||||
type: string
|
||||
type: object
|
||||
timeout:
|
||||
format: int64
|
||||
type: integer
|
||||
|
|
|
@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.13.0
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
{{- if .Values.keepCRDs }}
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
|
@ -104,6 +104,11 @@ spec:
|
|||
- type: integer
|
||||
- type: string
|
||||
x-kubernetes-int-or-string: true
|
||||
consecutiveSuccessLimit:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
x-kubernetes-int-or-string: true
|
||||
count:
|
||||
anyOf:
|
||||
- type: integer
|
||||
|
@ -213,6 +218,13 @@ spec:
|
|||
type: object
|
||||
query:
|
||||
type: string
|
||||
secretRef:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
namespaced:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
graphite:
|
||||
properties:
|
||||
|
@ -3021,6 +3033,9 @@ spec:
|
|||
type: string
|
||||
query:
|
||||
type: string
|
||||
timeout:
|
||||
format: int64
|
||||
type: integer
|
||||
required:
|
||||
- query
|
||||
type: object
|
||||
|
@ -3072,6 +3087,15 @@ spec:
|
|||
type: boolean
|
||||
query:
|
||||
type: string
|
||||
rangeQuery:
|
||||
properties:
|
||||
end:
|
||||
type: string
|
||||
start:
|
||||
type: string
|
||||
step:
|
||||
type: string
|
||||
type: object
|
||||
timeout:
|
||||
format: int64
|
||||
type: integer
|
||||
|
|
|
@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.13.0
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
{{- if .Values.keepCRDs }}
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
|
|
|
@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
|||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.13.0
|
||||
controller-gen.kubebuilder.io/version: v0.14.0
|
||||
{{- if .Values.keepCRDs }}
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
|
@ -672,6 +672,16 @@ spec:
|
|||
- type: string
|
||||
x-kubernetes-int-or-string: true
|
||||
type: object
|
||||
plugin:
|
||||
properties:
|
||||
config:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
name:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
setCanaryScale:
|
||||
properties:
|
||||
matchTrafficWeight:
|
||||
|
@ -944,6 +954,10 @@ spec:
|
|||
type: object
|
||||
annotationPrefix:
|
||||
type: string
|
||||
canaryIngressAnnotations:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
stableIngress:
|
||||
type: string
|
||||
stableIngresses:
|
||||
|
@ -3727,6 +3741,45 @@ spec:
|
|||
type: object
|
||||
stablePingPong:
|
||||
type: string
|
||||
stepPluginStatuses:
|
||||
items:
|
||||
properties:
|
||||
backoff:
|
||||
type: string
|
||||
disabled:
|
||||
type: boolean
|
||||
executions:
|
||||
format: int32
|
||||
type: integer
|
||||
finishedAt:
|
||||
format: date-time
|
||||
type: string
|
||||
index:
|
||||
format: int32
|
||||
type: integer
|
||||
message:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
operation:
|
||||
type: string
|
||||
phase:
|
||||
type: string
|
||||
startedAt:
|
||||
format: date-time
|
||||
type: string
|
||||
status:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
updatedAt:
|
||||
format: date-time
|
||||
type: string
|
||||
required:
|
||||
- index
|
||||
- name
|
||||
- operation
|
||||
type: object
|
||||
type: array
|
||||
weights:
|
||||
properties:
|
||||
additional:
|
||||
|
|
|
@ -217,6 +217,12 @@ controller:
|
|||
# - name: "argoproj-labs/sample-prometheus" # name of the plugin, it must match the name required by the plugin so that it can find its configuration
|
||||
# location: "file://./my-custom-plugin" # supports http(s):// urls and file://
|
||||
|
||||
# -- Configures 3rd party stepPlugins for controller
|
||||
## Ref: https://argo-rollouts.readthedocs.io/en/stable/features/canary/plugins/
|
||||
stepPlugins: []
|
||||
# - name: "argoproj-labs/step-exec" # name of the plugin, it must match the name required by the plugin so it can find it's configuration
|
||||
# location: "file://./my-custom-plugin" # supports http(s):// urls and file://
|
||||
|
||||
# -- Configures 3rd party traffic router plugins for controller
|
||||
## Ref: https://argo-rollouts.readthedocs.io/en/stable/features/traffic-management/plugins/
|
||||
trafficRouterPlugins: []
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
apiVersion: v2
|
||||
appVersion: v3.6.2
|
||||
appVersion: v3.6.5
|
||||
name: argo-workflows
|
||||
description: A Helm chart for Argo Workflows
|
||||
type: application
|
||||
version: 0.45.4
|
||||
version: 0.45.12
|
||||
icon: https://argo-workflows.readthedocs.io/en/stable/assets/logo.png
|
||||
home: https://github.com/argoproj/argo-helm
|
||||
sources:
|
||||
|
@ -16,5 +16,5 @@ annotations:
|
|||
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
|
||||
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
|
||||
artifacthub.io/changes: |
|
||||
- kind: added
|
||||
description: Support configuring workflow events in the controller
|
||||
- kind: fixed
|
||||
description: Fix yamllint error 'trailing spaces'
|
||||
|
|
|
@ -116,7 +116,7 @@ Fields to note:
|
|||
| 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 |
|
||||
| createAggregateRoles | bool | `true` | Create clusterroles that extend existing clusterroles to interact with argo-cd crds |
|
||||
| createAggregateRoles | bool | `true` | Create ClusterRoles that extend existing ClusterRoles to interact with Argo Workflows CRDs. |
|
||||
| emissary.images | list | `[]` | The command/args for each image on workflow, needed when the command is not specified and the emissary executor is used. |
|
||||
| extraObjects | list | `[]` | Array of extra K8s manifests to deploy |
|
||||
| fullnameOverride | string | `nil` | String to fully override "argo-workflows.fullname" template |
|
||||
|
@ -136,6 +136,7 @@ Fields to note:
|
|||
| workflow.rbac.agentPermissions | bool | `false` | Allows permissions for the Argo Agent. Only required if using http/plugin templates |
|
||||
| workflow.rbac.artifactGC | bool | `false` | Allows permissions for the Argo Artifact GC pod. Only required if using artifact gc |
|
||||
| workflow.rbac.create | bool | `true` | Adds Role and RoleBinding for the above specified service account to be able to run workflows. A Role and Rolebinding pair is also created for each namespace in controller.workflowNamespaces (see below) |
|
||||
| workflow.rbac.rules | list | `[]` | Additional rules for the service account that runs the workflows. |
|
||||
| workflow.rbac.serviceAccounts | list | `[]` | Extra service accounts to be added to the RoleBinding |
|
||||
| workflow.serviceAccount.annotations | object | `{}` | Annotations applied to created service account |
|
||||
| workflow.serviceAccount.create | bool | `false` | Specifies whether a service account should be created |
|
||||
|
@ -310,6 +311,14 @@ Fields to note:
|
|||
| server.ingress.paths | list | `["/"]` | List of ingress paths |
|
||||
| server.ingress.tls | list | `[]` | Ingress TLS configuration |
|
||||
| server.lifecycle | object | `{}` | Specify postStart and preStop lifecycle hooks for server container |
|
||||
| server.livenessProbe.enabled | bool | `false` | Enable Kubernetes liveness probe for server |
|
||||
| server.livenessProbe.failureThreshold | int | `3` | Minimum consecutive failures for the [probe] to be considered failed after having succeeded |
|
||||
| server.livenessProbe.httpGet.path | string | `"/"` | Http path to use for the liveness probe |
|
||||
| server.livenessProbe.httpGet.port | int | `2746` | Http port to use for the liveness probe |
|
||||
| server.livenessProbe.initialDelaySeconds | int | `10` | Number of seconds after the container has started before [probe] is initiated |
|
||||
| server.livenessProbe.periodSeconds | int | `10` | How often (in seconds) to perform the [probe] |
|
||||
| server.livenessProbe.successThreshold | int | `1` | Minimum consecutive successes for the [probe] to be considered successful after having failed |
|
||||
| server.livenessProbe.timeoutSeconds | int | `1` | Number of seconds after which the [probe] times out |
|
||||
| server.loadBalancerClass | string | `""` | The class of the load balancer implementation |
|
||||
| server.loadBalancerIP | string | `""` | Static IP address to assign to loadBalancer service type `LoadBalancer` |
|
||||
| server.loadBalancerSourceRanges | list | `[]` | Source ranges to allow access to service from. Only applies to service type `LoadBalancer` |
|
||||
|
@ -344,7 +353,7 @@ Fields to note:
|
|||
| server.sso.clientSecret.key | string | `"client-secret"` | Key of a secret to retrieve the app OIDC client secret |
|
||||
| server.sso.clientSecret.name | string | `"argo-server-sso"` | Name of a secret to retrieve the app OIDC client secret |
|
||||
| server.sso.customGroupClaimName | string | `""` | Override claim name for OIDC groups |
|
||||
| server.sso.enabled | bool | `false` | Create SSO configuration. If you set `true` , please also set `.Values.server.authMode` as `sso`. |
|
||||
| server.sso.enabled | bool | `false` | Create SSO configuration. If you set `true` , please also set `.Values.server.authModes` as `sso`. |
|
||||
| server.sso.filterGroupsRegex | list | `[]` | Filter the groups returned by the OIDC provider |
|
||||
| server.sso.insecureSkipVerify | bool | `false` | Skip TLS verification for the HTTP client |
|
||||
| server.sso.issuer | string | `"https://accounts.google.com"` | The root URL of the OIDC identity provider |
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
crds:
|
||||
keep: false
|
||||
|
||||
server:
|
||||
livenessProbe:
|
||||
enabled: true
|
|
@ -90,7 +90,7 @@ Selector labels
|
|||
{{- define "argo-workflows.selectorLabels" -}}
|
||||
{{- if .name -}}
|
||||
app.kubernetes.io/name: {{ include "argo-workflows.name" .context }}-{{ .name }}
|
||||
{{ end -}}
|
||||
{{- end }}
|
||||
app.kubernetes.io/instance: {{ .context.Release.Name }}
|
||||
{{- if .component }}
|
||||
app.kubernetes.io/component: {{ .component }}
|
||||
|
|
|
@ -174,7 +174,7 @@ rules:
|
|||
verbs:
|
||||
- get
|
||||
resourceNames:
|
||||
{{/* for HTTP templates */}}
|
||||
{{- /* for HTTP templates */}}
|
||||
- argo-workflows-agent-ca-certificates
|
||||
{{- with .Values.controller.rbac.secretWhitelist }}
|
||||
- apiGroups:
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
{{- if .Values.singleNamespace }}
|
||||
kind: RoleBinding
|
||||
{{ else }}
|
||||
{{- else }}
|
||||
kind: ClusterRoleBinding
|
||||
{{- end }}
|
||||
metadata:
|
||||
|
@ -16,7 +16,7 @@ roleRef:
|
|||
apiGroup: rbac.authorization.k8s.io
|
||||
{{- if .Values.singleNamespace }}
|
||||
kind: Role
|
||||
{{ else }}
|
||||
{{- else }}
|
||||
kind: ClusterRole
|
||||
{{- end }}
|
||||
name: {{ template "argo-workflows.controller.fullname" . }}
|
||||
|
|
|
@ -106,7 +106,8 @@ spec:
|
|||
- name: {{ .Values.controller.metricsConfig.portName }}
|
||||
containerPort: {{ .Values.controller.metricsConfig.port }}
|
||||
- containerPort: 6060
|
||||
livenessProbe: {{ .Values.controller.livenessProbe | toYaml | nindent 12 }}
|
||||
livenessProbe:
|
||||
{{- .Values.controller.livenessProbe | toYaml | nindent 12 }}
|
||||
{{- with .Values.controller.extraContainers }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
|
|
|
@ -9,7 +9,7 @@ metadata:
|
|||
{{- with .Values.controller.serviceAccount.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{ with .Values.controller.serviceAccount.annotations }}
|
||||
{{- with .Values.controller.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml .| nindent 4 }}
|
||||
{{- end }}
|
||||
|
|
|
@ -18,6 +18,9 @@ rules:
|
|||
verbs:
|
||||
- create
|
||||
- patch
|
||||
{{- with $.Values.workflow.rbac.rules }}
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{{ range .Values.extraObjects }}
|
||||
{{- range .Values.extraObjects }}
|
||||
---
|
||||
{{ if typeIs "string" . }}
|
||||
{{- if typeIs "string" . }}
|
||||
{{- tpl . $ }}
|
||||
{{- else }}
|
||||
{{- tpl (toYaml .) $ }}
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
{{- if .Values.singleNamespace }}
|
||||
kind: RoleBinding
|
||||
{{ else }}
|
||||
{{- else }}
|
||||
kind: ClusterRoleBinding
|
||||
{{- end }}
|
||||
metadata:
|
||||
|
@ -16,7 +16,7 @@ roleRef:
|
|||
apiGroup: rbac.authorization.k8s.io
|
||||
{{- if .Values.singleNamespace }}
|
||||
kind: Role
|
||||
{{ else }}
|
||||
{{- else }}
|
||||
kind: ClusterRole
|
||||
{{- end }}
|
||||
name: {{ template "argo-workflows.server.fullname" . }}
|
||||
|
|
|
@ -87,6 +87,22 @@ spec:
|
|||
{{- end }}
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 20
|
||||
{{- if .Values.server.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: {{ .Values.server.livenessProbe.httpGet.path }}
|
||||
port: {{ .Values.server.livenessProbe.httpGet.port }}
|
||||
{{- if .Values.server.secure }}
|
||||
scheme: HTTPS
|
||||
{{- else }}
|
||||
scheme: HTTP
|
||||
{{- end }}
|
||||
initialDelaySeconds: {{ .Values.server.livenessProbe.initialDelaySeconds }}
|
||||
timeoutSeconds: {{ .Values.server.livenessProbe.timeoutSeconds }}
|
||||
periodSeconds: {{ .Values.server.livenessProbe.periodSeconds }}
|
||||
successThreshold: {{ .Values.server.livenessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.server.livenessProbe.failureThreshold }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: IN_CLUSTER
|
||||
value: "true"
|
||||
|
|
|
@ -16,7 +16,7 @@ crds:
|
|||
# -- Annotations to be added to all CRDs
|
||||
annotations: {}
|
||||
|
||||
# -- Create clusterroles that extend existing clusterroles to interact with argo-cd crds
|
||||
# -- Create ClusterRoles that extend existing ClusterRoles to interact with Argo Workflows CRDs.
|
||||
## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
|
||||
createAggregateRoles: true
|
||||
|
||||
|
@ -77,6 +77,8 @@ workflow:
|
|||
serviceAccounts: []
|
||||
# - name: my-service-account
|
||||
# namespace: my-namespace
|
||||
# -- Additional rules for the service account that runs the workflows.
|
||||
rules: []
|
||||
|
||||
controller:
|
||||
image:
|
||||
|
@ -717,7 +719,7 @@ server:
|
|||
|
||||
# SSO configuration when SSO is specified as a server auth mode.
|
||||
sso:
|
||||
# -- Create SSO configuration. If you set `true` , please also set `.Values.server.authMode` as `sso`.
|
||||
# -- Create SSO configuration. If you set `true` , please also set `.Values.server.authModes` as `sso`.
|
||||
enabled: false
|
||||
# -- The root URL of the OIDC identity provider
|
||||
issuer: https://accounts.google.com
|
||||
|
@ -776,6 +778,27 @@ server:
|
|||
# -- terminationGracePeriodSeconds for container lifecycle hook
|
||||
terminationGracePeriodSeconds: 30
|
||||
|
||||
## livenessProbe for server
|
||||
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
|
||||
livenessProbe:
|
||||
# -- Enable Kubernetes liveness probe for server
|
||||
enabled: false
|
||||
httpGet:
|
||||
# -- Http port to use for the liveness probe
|
||||
port: 2746
|
||||
# -- Http path to use for the liveness probe
|
||||
path: /
|
||||
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
|
||||
failureThreshold: 3
|
||||
# -- Number of seconds after the container has started before [probe] is initiated
|
||||
initialDelaySeconds: 10
|
||||
# -- How often (in seconds) to perform the [probe]
|
||||
periodSeconds: 10
|
||||
# -- Number of seconds after which the [probe] times out
|
||||
timeoutSeconds: 1
|
||||
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
|
||||
successThreshold: 1
|
||||
|
||||
# -- Array of extra K8s manifests to deploy
|
||||
extraObjects: []
|
||||
# - apiVersion: secrets-store.csi.x-k8s.io/v1
|
||||
|
|
|
@ -2,8 +2,8 @@ apiVersion: v2
|
|||
name: argocd-image-updater
|
||||
description: A Helm chart for Argo CD Image Updater, a tool to automatically update the container images of Kubernetes workloads which are managed by Argo CD
|
||||
type: application
|
||||
version: 0.12.0
|
||||
appVersion: v0.15.2
|
||||
version: 0.12.1
|
||||
appVersion: v0.16.0
|
||||
home: https://github.com/argoproj-labs/argocd-image-updater
|
||||
icon: https://argocd-image-updater.readthedocs.io/en/stable/assets/logo.png
|
||||
keywords:
|
||||
|
@ -19,4 +19,4 @@ annotations:
|
|||
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
|
||||
artifacthub.io/changes: |
|
||||
- kind: changed
|
||||
description: ConfigMap and Secret names are now configurable
|
||||
description: Bump argocd-image-updater to v0.16.0
|
||||
|
|
|
@ -94,12 +94,6 @@ spec:
|
|||
key: git.email
|
||||
name: {{ .Values.config.name }}
|
||||
optional: true
|
||||
- name: IMAGE_UPDATER_KUBE_EVENTS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: kube.events
|
||||
name: {{ .Values.config.name }}
|
||||
optional: true
|
||||
- name: GIT_COMMIT_SIGNING_KEY
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
|
@ -118,6 +112,18 @@ spec:
|
|||
key: git.commit-sign-off
|
||||
name: {{ .Values.config.name }}
|
||||
optional: true
|
||||
- name: IMAGE_UPDATER_KUBE_EVENTS
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: kube.events
|
||||
name: {{ .Values.config.name }}
|
||||
optional: true
|
||||
- name: ARGOCD_LOGLEVEL
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: log.level
|
||||
name: {{ .Values.config.name }}
|
||||
optional: true
|
||||
{{- with .Values.extraEnv }}
|
||||
{{- toYaml . | nindent 10 }}
|
||||
{{- end }}
|
||||
|
|
|
@ -86,8 +86,9 @@
|
|||
"argoproj/argo-rollouts",
|
||||
"argoproj-labs/argocd-image-updater",
|
||||
"argoprojlabs/argocd-extension-installer",
|
||||
"public.ecr.aws/bitnami/redis-exporter",
|
||||
"public.ecr.aws/docker/library/redis"
|
||||
"public.ecr.aws/docker/library/redis",
|
||||
"ghcr.io/dexidp/dex",
|
||||
"ghcr.io/oliver006/redis_exporter"
|
||||
],
|
||||
"commitMessagePrefix": "chore({{parentDir}}):",
|
||||
"postUpgradeTasks": {
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
# Configuration file for MegaLinter
|
||||
# Run megalinter locally with: `docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/tmp/lint:rw oxsecurity/megalinter:v8`
|
||||
ENABLE:
|
||||
- DOCKERFILE
|
||||
- PYTHON
|
||||
|
||||
DISABLE_LINTERS:
|
||||
- PYTHON_FLAKE8
|
||||
- PYTHON_PYRIGHT
|
||||
- PYTHON_RUFF
|
||||
- PYTHON_BANDIT
|
||||
|
||||
CLEAR_REPORT_FOLDER: true
|
||||
PYTHON_PYLINT_PRE_COMMANDS:
|
||||
- command: pip install -r /tmp/lint/requirements.txt
|
||||
venv: pylint
|
||||
REPORT_OUTPUT_FOLDER: none
|
||||
|
||||
|
||||
# You might want to enable this locally to fix some stuff without guessing what you need to change. Check before committing to git.
|
||||
#APPLY_FIXES: all
|
|
@ -0,0 +1,8 @@
|
|||
FROM python:3.13-slim
|
||||
WORKDIR /app
|
||||
COPY requirements.txt ./
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
COPY main.py fetch_releases.py fetch_helmet_releases.py merge_csvs.py plot_graph.py ./
|
||||
RUN chmod +x main.py fetch_releases.py fetch_helmet_releases.py merge_csvs.py plot_graph.py
|
||||
CMD [ "python", "-u", "./main.py" ]
|
|
@ -0,0 +1,27 @@
|
|||
# argo-helm release analysis
|
||||
|
||||
Compare the time of the upstream release to the time of the equivalent Helm Chart release to determine the time it takes for a new release to be available in argo-helm.
|
||||
|
||||
|
||||
## How to run
|
||||
This is quite github-api-intensive, so you'll need a github PAT. The PAT only requires public read (to fetch the data from the public repos without being too rate limited).
|
||||
|
||||
```bash
|
||||
# Build the container
|
||||
docker build . -t team-helm-analysis
|
||||
|
||||
# Delete any existing data
|
||||
rm -f argo_helm_releases.csv argo_releases.csv merged_releases.csv time_difference_plot_argo*.png
|
||||
|
||||
# Run the container
|
||||
GITHUB_TOKEN=your_token_here
|
||||
docker run --rm -e GITHUB_TOKEN=$GITHUB_TOKEN -v ${PWD}:/app team-helm-analysis
|
||||
```
|
||||
|
||||
You should get 3 csvs and 4 graphs once this completes. It takes around 5 mins to run.
|
||||
|
||||
|
||||
## Linting
|
||||
I ran megalinter against this just to give some confidence that it's not completely broken. It's not perfect, but it's something.
|
||||
|
||||
Run megalinter locally against this directory with: `docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:rw -v $(pwd):/tmp/lint:rw oxsecurity/megalinter:v8`
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,903 @@
|
|||
Repository,Release Tag,Release Date,Release Time
|
||||
argo-cd,v3.0.0-rc3,2025-03-24,21:36:25
|
||||
argo-cd,v2.14.8,2025-03-24,21:36:01
|
||||
argo-cd,v2.13.6,2025-03-24,21:35:38
|
||||
argo-cd,v2.12.11,2025-03-24,21:36:05
|
||||
argo-cd,v3.0.0-rc2,2025-03-19,17:57:41
|
||||
argo-cd,v2.14.7,2025-03-19,17:49:46
|
||||
argo-cd,v2.14.6,2025-03-18,14:17:14
|
||||
argo-cd,v3.0.0-rc1,2025-03-17,20:38:40
|
||||
argo-cd,v2.14.5,2025-03-11,03:57:34
|
||||
argo-cd,v2.14.4,2025-03-04,21:39:08
|
||||
argo-cd,v2.14.3,2025-02-28,19:39:18
|
||||
argo-cd,v2.14.2,2025-02-06,00:23:26
|
||||
argo-cd,v2.13.5,2025-02-05,22:13:35
|
||||
argo-cd,v2.14.1,2025-02-03,22:02:42
|
||||
argo-cd,v2.14.0,2025-02-03,20:22:37
|
||||
argo-cd,v2.14.0-rc7,2025-01-29,21:36:23
|
||||
argo-cd,v2.13.4,2025-01-29,21:30:00
|
||||
argo-cd,v2.12.10,2025-01-29,21:29:19
|
||||
argo-cd,v2.11.13,2025-01-29,21:29:02
|
||||
argo-cd,v2.14.0-rc6,2025-01-21,21:40:31
|
||||
argo-cd,v2.14.0-rc5,2025-01-08,20:16:38
|
||||
argo-cd,v2.13.3,2025-01-03,19:23:42
|
||||
argo-cd,v2.12.9,2025-01-03,19:21:15
|
||||
argo-cd,v2.14.0-rc4,2025-01-02,22:36:35
|
||||
argo-cd,v2.14.0-rc3,2024-12-18,19:22:51
|
||||
argo-cd,v2.14.0-rc2,2024-12-17,18:43:53
|
||||
argo-cd,v2.13.2,2024-12-11,19:18:46
|
||||
argo-cd,v2.12.8,2024-12-11,19:17:57
|
||||
argo-cd,v2.13.1,2024-11-20,17:11:22
|
||||
argo-cd,v2.12.7,2024-11-05,16:08:15
|
||||
argo-cd,v2.11.12,2024-11-05,16:09:52
|
||||
argo-cd,v2.13.0,2024-11-04,12:46:49
|
||||
argo-cd,v2.13.0-rc5,2024-10-18,21:56:52
|
||||
argo-cd,v2.12.6,2024-10-18,19:07:18
|
||||
argo-cd,v2.11.11,2024-10-18,19:10:03
|
||||
argo-cd,v2.13.0-rc4,2024-10-17,22:20:25
|
||||
argo-cd,v2.12.5,2024-10-17,22:03:45
|
||||
argo-cd,v2.11.10,2024-10-17,22:04:22
|
||||
argo-cd,v2.10.18,2024-10-17,22:02:48
|
||||
argo-cd,v2.13.0-rc3,2024-10-07,14:11:10
|
||||
argo-cd,v2.12.4,2024-09-26,07:14:39
|
||||
argo-cd,v2.11.9,2024-09-26,07:39:46
|
||||
argo-cd,v2.10.17,2024-09-26,07:39:53
|
||||
argo-cd,v2.13.0-rc2,2024-09-20,12:16:17
|
||||
argo-cd,v2.13.0-rc1,2024-09-16,09:07:32
|
||||
argo-cd,v2.11.8,2024-09-11,07:18:22
|
||||
argo-cd,v2.12.3,2024-08-27,12:33:34
|
||||
argo-cd,v2.12.2,2024-08-23,04:05:09
|
||||
argo-cd,v2.9.22,2024-08-22,18:09:07
|
||||
argo-cd,v2.8.21,2024-08-22,00:15:46
|
||||
argo-cd,v2.12.1,2024-08-16,17:16:36
|
||||
argo-cd,v2.12.0,2024-08-05,14:02:15
|
||||
argo-cd,v2.12.0-rc5,2024-08-02,00:02:42
|
||||
argo-cd,v2.11.7,2024-07-24,10:27:18
|
||||
argo-cd,v2.10.16,2024-07-24,10:27:30
|
||||
argo-cd,v2.9.21,2024-07-24,10:27:35
|
||||
argo-cd,v2.11.6,2024-07-22,15:19:04
|
||||
argo-cd,v2.10.15,2024-07-22,15:28:11
|
||||
argo-cd,v2.9.20,2024-07-22,15:26:01
|
||||
argo-cd,v2.12.0-rc4,2024-07-15,18:31:03
|
||||
argo-cd,v2.11.5,2024-07-15,18:32:15
|
||||
argo-cd,v2.10.14,2024-07-15,18:43:13
|
||||
argo-cd,v2.9.19,2024-07-15,19:10:33
|
||||
argo-cd,v2.12.0-rc3,2024-07-02,19:11:39
|
||||
argo-cd,v2.11.4,2024-07-02,19:52:42
|
||||
argo-cd,v2.10.13,2024-07-02,19:16:33
|
||||
argo-cd,v2.9.18,2024-07-02,20:06:18
|
||||
argo-cd,v2.12.0-rc2,2024-06-24,21:07:03
|
||||
argo-cd,v2.12.0-rc1,2024-06-18,13:46:04
|
||||
argo-cd,v2.11.3,2024-06-06,09:43:29
|
||||
argo-cd,v2.10.12,2024-06-06,09:44:03
|
||||
argo-cd,v2.9.17,2024-06-06,09:47:39
|
||||
argo-cd,v2.11.2,2024-05-23,14:14:51
|
||||
argo-cd,v2.10.11,2024-05-23,14:20:08
|
||||
argo-cd,v2.9.16,2024-05-23,14:28:35
|
||||
argo-cd,v2.8.20,2024-05-23,14:22:46
|
||||
argo-cd,v2.11.1,2024-05-21,15:03:58
|
||||
argo-cd,v2.10.10,2024-05-21,15:04:04
|
||||
argo-cd,v2.9.15,2024-05-21,15:03:15
|
||||
argo-cd,v2.8.19,2024-05-21,15:02:42
|
||||
argo-cd,v2.11.0,2024-05-07,16:37:25
|
||||
argo-cd,v2.10.9,2024-04-30,16:55:10
|
||||
argo-cd,v2.9.14,2024-04-30,17:52:42
|
||||
argo-cd,v2.8.18,2024-04-30,18:11:05
|
||||
argo-cd,v2.11.0-rc3,2024-04-29,20:34:30
|
||||
argo-cd,v2.10.8,2024-04-26,14:04:02
|
||||
argo-cd,v2.9.13,2024-04-26,13:54:31
|
||||
argo-cd,v2.8.17,2024-04-26,13:32:45
|
||||
argo-cd,v2.11.0-rc2,2024-04-15,20:21:25
|
||||
argo-cd,v2.10.7,2024-04-15,09:21:23
|
||||
argo-cd,v2.9.12,2024-04-15,09:23:39
|
||||
argo-cd,v2.8.16,2024-04-15,09:24:55
|
||||
argo-cd,v2.11.0-rc1,2024-04-05,12:48:47
|
||||
argo-cd,v2.10.6,2024-04-05,01:04:01
|
||||
argo-cd,v2.9.11,2024-04-05,00:33:21
|
||||
argo-cd,v2.8.15,2024-04-05,00:08:33
|
||||
argo-cd,v2.7.18,2024-04-04,23:10:16
|
||||
argo-cd,v2.10.5,2024-03-28,16:29:02
|
||||
argo-cd,v2.9.10,2024-03-28,17:14:04
|
||||
argo-cd,v2.8.14,2024-03-28,17:14:13
|
||||
argo-cd,v2.10.4,2024-03-18,08:44:51
|
||||
argo-cd,v2.9.9,2024-03-18,08:44:29
|
||||
argo-cd,v2.8.13,2024-03-18,08:43:03
|
||||
argo-cd,v2.10.3,2024-03-13,19:53:05
|
||||
argo-cd,v2.9.8,2024-03-13,19:50:14
|
||||
argo-cd,v2.8.12,2024-03-13,19:49:30
|
||||
argo-cd,v2.8.11,2024-03-08,15:35:57
|
||||
argo-cd,v2.10.2,2024-03-01,22:03:43
|
||||
argo-cd,v2.9.7,2024-03-01,23:28:36
|
||||
argo-cd,v2.10.1,2024-02-14,18:12:43
|
||||
argo-cd,v2.10.0,2024-02-06,15:03:51
|
||||
argo-cd,v2.9.6,2024-02-02,19:51:46
|
||||
argo-cd,v2.8.10,2024-02-02,19:01:36
|
||||
argo-cd,v2.7.17,2024-02-02,19:00:32
|
||||
argo-cd,v2.10.0-rc4,2024-01-25,21:50:37
|
||||
argo-cd,v2.10.0-rc3,2024-01-19,18:33:17
|
||||
argo-cd,v2.9.5,2024-01-19,18:32:02
|
||||
argo-cd,v2.8.9,2024-01-19,18:47:44
|
||||
argo-cd,v2.8.8,2024-01-19,15:17:36
|
||||
argo-cd,v2.7.16,2024-01-19,19:38:49
|
||||
argo-cd,v2.10.0-rc2,2024-01-18,21:14:40
|
||||
argo-cd,v2.9.4,2024-01-18,21:24:02
|
||||
argo-cd,v2.10.0-rc1,2023-12-18,21:20:13
|
||||
argo-cd,v2.7.15,2023-12-06,15:59:27
|
||||
argo-cd,v2.9.3,2023-12-01,23:39:19
|
||||
argo-cd,v2.9.2,2023-11-20,17:52:41
|
||||
argo-cd,v2.8.7,2023-11-20,17:52:04
|
||||
argo-cd,v2.9.1,2023-11-14,15:55:51
|
||||
argo-cd,v2.9.0,2023-11-06,05:27:12
|
||||
argo-cd,v2.8.6,2023-11-01,17:29:59
|
||||
argo-cd,v2.9.0-rc4,2023-10-31,22:28:01
|
||||
argo-cd,v2.8.5,2023-10-31,19:30:03
|
||||
argo-cd,v2.9.0-rc3,2023-10-25,19:54:22
|
||||
argo-cd,v2.9.0-rc2,2023-10-03,16:24:24
|
||||
argo-cd,v2.9.0-rc1,2023-09-27,01:06:19
|
||||
argo-cd,v2.8.4,2023-09-13,20:08:07
|
||||
argo-cd,v2.8.3,2023-09-07,18:06:07
|
||||
argo-cd,v2.7.14,2023-09-07,18:05:20
|
||||
argo-cd,v2.6.15,2023-09-07,18:32:42
|
||||
argo-cd,v2.5.22,2023-08-25,15:21:48
|
||||
argo-cd,v2.8.2,2023-08-24,21:05:33
|
||||
argo-cd,v2.7.13,2023-08-24,20:58:11
|
||||
argo-cd,v2.6.14,2023-08-24,22:01:58
|
||||
argo-cd,v2.8.1,2023-08-22,21:19:28
|
||||
argo-cd,v2.7.12,2023-08-23,15:02:27
|
||||
argo-cd,v2.8.0,2023-08-07,20:03:46
|
||||
argo-cd,v2.7.11,2023-08-07,20:07:16
|
||||
argo-cd,v2.8.0-rc7,2023-08-03,16:20:46
|
||||
argo-cd,v2.7.10,2023-07-31,22:51:19
|
||||
argo-cd,v2.8.0-rc6,2023-07-28,14:47:33
|
||||
argo-cd,v2.7.9,2023-07-24,18:50:30
|
||||
argo-cd,v2.8.0-rc5,2023-07-19,18:28:18
|
||||
argo-cd,v2.7.8,2023-07-19,15:58:13
|
||||
argo-cd,v2.6.13,2023-07-19,18:32:25
|
||||
argo-cd,v2.5.21,2023-07-19,16:18:16
|
||||
argo-cd,v2.8.0-rc4,2023-07-19,01:04:24
|
||||
argo-cd,v2.8.0-rc3,2023-07-12,21:02:10
|
||||
argo-cd,v2.8.0-rc2,2023-07-05,20:16:20
|
||||
argo-cd,v2.7.7,2023-07-05,20:25:54
|
||||
argo-cd,v2.6.12,2023-07-05,20:26:58
|
||||
argo-cd,v2.5.20,2023-07-05,20:21:44
|
||||
argo-cd,v2.8.0-rc1,2023-06-27,14:35:51
|
||||
argo-cd,v2.7.6,2023-06-20,21:46:46
|
||||
argo-cd,v2.6.11,2023-06-20,21:40:36
|
||||
argo-cd,v2.7.5,2023-06-16,15:24:00
|
||||
argo-cd,v2.6.10,2023-06-16,15:30:18
|
||||
argo-cd,v2.5.19,2023-06-16,15:14:25
|
||||
argo-cd,v2.7.4,2023-06-05,19:40:08
|
||||
argo-cd,v2.6.9,2023-06-05,20:00:21
|
||||
argo-cd,v2.5.18,2023-06-05,19:37:35
|
||||
argo-cd,v2.6.8,2023-05-25,16:35:40
|
||||
argo-cd,v2.5.17,2023-05-25,16:37:48
|
||||
argo-cd,v2.7.3,2023-05-24,16:14:02
|
||||
argo-cd,v2.7.2,2023-05-12,14:41:07
|
||||
argo-cd,v2.7.1,2023-05-02,17:24:44
|
||||
argo-cd,v2.7.0,2023-05-02,00:51:25
|
||||
argo-cd,v2.7.0-rc2,2023-04-11,16:29:33
|
||||
argo-cd,v2.7.0-rc1,2023-03-27,14:42:25
|
||||
argo-cd,v2.6.7,2023-03-23,15:45:09
|
||||
argo-cd,v2.5.16,2023-03-23,15:34:49
|
||||
argo-cd,v2.4.28,2023-03-23,15:35:38
|
||||
argo-cd,v2.6.6,2023-03-16,23:07:31
|
||||
argo-cd,v2.5.15,2023-03-16,23:35:35
|
||||
argo-cd,v2.4.27,2023-03-16,23:05:14
|
||||
argo-cd,v2.6.5,2023-03-14,14:59:49
|
||||
argo-cd,v2.5.14,2023-03-14,15:03:12
|
||||
argo-cd,v2.4.26,2023-03-14,15:01:43
|
||||
argo-cd,v2.6.4,2023-03-07,23:29:08
|
||||
argo-cd,v2.5.13,2023-03-07,23:28:04
|
||||
argo-cd,v2.4.25,2023-03-07,22:29:10
|
||||
argo-cd,v2.6.3,2023-02-27,15:20:04
|
||||
argo-cd,v2.5.12,2023-02-27,15:21:29
|
||||
argo-cd,v2.4.24,2023-02-27,15:22:21
|
||||
argo-cd,v2.6.2,2023-02-16,15:43:42
|
||||
argo-cd,v2.5.11,2023-02-16,15:46:31
|
||||
argo-cd,v2.4.23,2023-02-16,15:41:44
|
||||
argo-cd,v2.3.17,2023-02-16,16:01:23
|
||||
argo-cd,v2.6.1,2023-02-08,19:39:04
|
||||
argo-cd,v2.6.0,2023-02-06,22:04:33
|
||||
argo-cd,v2.6.0-rc7,2023-02-02,16:04:58
|
||||
argo-cd,v2.5.10,2023-02-02,15:48:00
|
||||
argo-cd,v2.4.22,2023-02-02,16:06:04
|
||||
argo-cd,v2.3.16,2023-02-02,16:20:13
|
||||
argo-cd,v2.6.0-rc6,2023-01-28,00:07:50
|
||||
argo-cd,v2.5.9,2023-01-28,00:04:28
|
||||
argo-cd,v2.4.21,2023-01-28,00:07:25
|
||||
argo-cd,v2.3.15,2023-01-28,01:20:18
|
||||
argo-cd,v2.6.0-rc5,2023-01-25,18:35:37
|
||||
argo-cd,v2.5.8,2023-01-25,17:05:03
|
||||
argo-cd,v2.4.20,2023-01-25,16:19:24
|
||||
argo-cd,v2.3.14,2023-01-25,17:07:36
|
||||
argo-cd,v2.6.0-rc4,2023-01-18,03:00:03
|
||||
argo-cd,v2.5.7,2023-01-18,03:00:02
|
||||
argo-cd,v2.4.19,2023-01-18,02:59:01
|
||||
argo-cd,v2.3.13,2023-01-18,04:02:17
|
||||
argo-cd,v2.6.0-rc3,2023-01-13,20:36:52
|
||||
argo-cd,v2.5.6,2023-01-10,20:14:18
|
||||
argo-cd,v2.6.0-rc2,2023-01-05,16:02:06
|
||||
argo-cd,v2.6.0-rc1,2022-12-19,17:27:17
|
||||
argo-cd,v2.5.5,2022-12-16,16:53:08
|
||||
argo-cd,v2.4.18,2022-12-16,16:47:09
|
||||
argo-cd,v2.3.12,2022-12-16,17:40:00
|
||||
argo-cd,v2.5.4,2022-12-06,20:26:51
|
||||
argo-cd,v2.5.3,2022-11-28,17:28:00
|
||||
argo-cd,v2.5.2,2022-11-07,17:23:44
|
||||
argo-cd,v2.4.17,2022-11-07,17:05:27
|
||||
argo-cd,v2.5.1,2022-11-01,21:53:59
|
||||
argo-cd,v2.4.16,2022-11-01,22:03:02
|
||||
argo-cd,v2.3.11,2022-11-01,22:39:18
|
||||
argo-cd,v2.2.16,2022-11-01,20:44:20
|
||||
argo-cd,v2.5.0,2022-10-25,15:32:28
|
||||
argo-cd,v2.2.15,2022-10-18,22:08:59
|
||||
argo-cd,v2.5.0-rc3,2022-10-17,18:39:09
|
||||
argo-cd,v2.4.15,2022-10-17,21:17:43
|
||||
argo-cd,v2.3.10,2022-10-18,01:09:30
|
||||
argo-cd,v2.5.0-rc2,2022-10-11,19:55:49
|
||||
argo-cd,v2.5.0-rc1,2022-10-05,18:00:34
|
||||
argo-cd,v2.4.14,2022-10-05,17:53:31
|
||||
argo-cd,v2.3.9,2022-10-05,18:24:18
|
||||
argo-cd,v2.2.14,2022-10-05,17:17:02
|
||||
argo-cd,v2.4.13,2022-10-03,21:38:39
|
||||
argo-cd,v2.3.8,2022-10-03,22:36:32
|
||||
argo-cd,v2.2.13,2022-10-03,21:05:16
|
||||
argo-cd,v2.4.12,2022-09-16,01:33:23
|
||||
argo-cd,v2.4.11,2022-08-22,09:52:10
|
||||
argo-cd,v2.4.10,2022-08-17,21:44:09
|
||||
argo-cd,v2.4.9,2022-08-11,15:59:47
|
||||
argo-cd,v2.4.8,2022-07-29,17:38:38
|
||||
argo-cd,v2.3.7,2022-07-29,16:11:01
|
||||
argo-cd,v2.2.12,2022-07-29,14:58:00
|
||||
argo-cd,v2.4.7,2022-07-18,21:54:21
|
||||
argo-cd,v2.4.6,2022-07-12,23:14:34
|
||||
argo-cd,v2.4.5,2022-07-12,17:05:35
|
||||
argo-cd,v2.3.6,2022-07-12,17:56:53
|
||||
argo-cd,v2.2.11,2022-07-12,16:23:51
|
||||
argo-cd,v2.4.4,2022-07-07,07:59:34
|
||||
argo-cd,v2.4.3,2022-06-27,21:39:15
|
||||
argo-cd,v2.4.2,2022-06-21,21:19:40
|
||||
argo-cd,v2.4.1,2022-06-21,17:18:01
|
||||
argo-cd,v2.3.5,2022-06-21,18:28:28
|
||||
argo-cd,v2.2.10,2022-06-21,16:42:53
|
||||
argo-cd,v2.1.16,2022-06-21,16:34:29
|
||||
argo-cd,v2.4.0,2022-06-10,17:59:33
|
||||
argo-cd,v2.4.0-rc5,2022-06-06,19:57:45
|
||||
argo-cd,v2.4.0-rc4,2022-06-01,23:51:49
|
||||
argo-cd,v2.4.0-rc3,2022-05-31,20:14:43
|
||||
argo-cd,v2.4.0-rc2,2022-05-18,13:20:52
|
||||
argo-cd,v2.3.4,2022-05-18,13:14:17
|
||||
argo-cd,v2.2.9,2022-05-18,12:11:30
|
||||
argo-cd,v2.1.15,2022-05-18,12:48:12
|
||||
argo-cd,v2.4.0-rc1,2022-05-06,23:59:23
|
||||
argo-cd,v2.3.3,2022-03-30,01:55:37
|
||||
argo-cd,v2.3.2,2022-03-23,02:12:12
|
||||
argo-cd,v2.2.8,2022-03-23,00:38:55
|
||||
argo-cd,v2.1.14,2022-03-23,00:25:37
|
||||
argo-cd,v2.3.1,2022-03-11,00:07:41
|
||||
argo-cd,v2.2.7,2022-03-09,01:16:04
|
||||
argo-cd,v2.1.12,2022-03-09,01:06:39
|
||||
argo-cd,v2.3.0,2022-03-06,07:59:28
|
||||
argo-cd,v2.2.6,2022-03-06,06:08:26
|
||||
argo-cd,v2.1.11,2022-03-06,05:44:19
|
||||
argo-cd,v2.2.5,2022-02-05,01:42:13
|
||||
argo-cd,v2.1.10,2022-02-05,01:27:00
|
||||
argo-cd,v2.3.0-rc5,2022-02-05,00:52:33
|
||||
argo-cd,v2.3.0-rc4,2022-02-03,23:22:13
|
||||
argo-cd,v2.2.4,2022-02-03,20:50:43
|
||||
argo-cd,v2.1.9,2022-02-03,20:38:47
|
||||
argo-cd,v2.3.0-rc2,2022-02-02,23:59:42
|
||||
argo-cd,v2.3.0-rc1,2022-01-30,23:19:12
|
||||
argo-cd,v2.2.3,2022-01-18,18:03:37
|
||||
argo-cd,v2.2.2,2022-01-01,06:38:42
|
||||
argo-cd,v2.2.1,2021-12-17,01:41:25
|
||||
argo-cd,v2.2.0,2021-12-14,18:19:23
|
||||
argo-cd,v2.1.8,2021-12-13,23:26:15
|
||||
argo-cd,v2.1.7,2021-11-17,22:18:58
|
||||
argo-cd,v2.2.0-rc1,2021-11-12,16:44:39
|
||||
argo-cd,v2.1.6,2021-10-28,20:08:23
|
||||
argo-cd,v2.1.5,2021-10-20,15:25:12
|
||||
argo-cd,v2.1.4,2021-10-20,00:47:38
|
||||
argo-cd,v2.1.3,2021-09-29,21:59:28
|
||||
argo-cd,v2.1.2,2021-09-02,18:13:57
|
||||
argo-cd,v2.1.1,2021-08-25,15:20:05
|
||||
argo-cd,v2.1.0,2021-08-20,05:40:42
|
||||
argo-cd,v2.1.0-rc3,2021-08-11,19:54:48
|
||||
argo-cd,v2.1.0-rc2,2021-08-03,17:17:22
|
||||
argo-cd,v2.1.0-rc1,2021-07-28,22:39:33
|
||||
argo-cd,v2.0.5,2021-07-22,21:00:58
|
||||
argo-cd,v2.0.4,2021-06-23,01:36:22
|
||||
argo-cd,v2.0.3,2021-05-27,17:47:33
|
||||
argo-cd,v2.0.2,2021-05-20,19:38:10
|
||||
argo-cd,v2.0.1,2021-04-15,22:40:37
|
||||
argo-cd,v2.0.0,2021-04-07,06:07:51
|
||||
argo-cd,v2.0.0-rc4,2021-04-05,23:22:38
|
||||
argo-cd,v2.0.0-rc3,2021-04-02,17:59:51
|
||||
argo-cd,v2.0.0-rc2,2021-03-29,21:39:06
|
||||
argo-cd,v2.0.0-rc1,2021-03-19,21:37:41
|
||||
argo-cd,v1.8.7,2021-03-03,07:20:14
|
||||
argo-cd,v1.7.14,2021-03-03,18:45:51
|
||||
argo-cd,v1.8.6,2021-02-26,21:29:08
|
||||
argo-cd,v1.7.13,2021-02-26,17:29:32
|
||||
argo-cd,v1.8.5,2021-02-20,05:47:09
|
||||
argo-cd,v1.8.4,2021-02-05,18:02:18
|
||||
argo-cd,v1.7.12,2021-02-05,20:29:49
|
||||
argo-cd,v1.8.3,2021-01-21,22:26:34
|
||||
argo-cd,v1.8.2,2021-01-10,05:47:08
|
||||
argo-cd,v1.8.1,2020-12-10,03:05:37
|
||||
argo-cd,v1.7.11,2020-12-10,02:47:15
|
||||
argo-cd,v1.8.0,2020-12-09,18:35:24
|
||||
argo-cd,v1.8.0-rc2,2020-12-03,05:15:48
|
||||
argo-cd,v1.8.0-rc1,2020-11-25,18:21:18
|
||||
argo-cd,v1.7.10,2020-11-20,19:57:30
|
||||
argo-cd,v1.7.9,2020-11-17,23:26:31
|
||||
argo-cd,v1.7.8,2020-10-15,22:39:54
|
||||
argo-cd,v1.7.7,2020-09-29,05:02:51
|
||||
argo-cd,v1.7.6,2020-09-19,00:58:10
|
||||
argo-cd,v1.7.5,2020-09-15,23:10:12
|
||||
argo-cd,v1.7.4,2020-09-05,02:51:36
|
||||
argo-cd,v1.7.3,2020-09-01,23:25:39
|
||||
argo-cd,v1.7.2,2020-08-27,23:40:37
|
||||
argo-cd,v1.7.1,2020-08-26,21:17:44
|
||||
argo-cd,v1.7.0,2020-08-25,19:05:00
|
||||
argo-cd,v1.7.0-rc1,2020-08-15,19:37:04
|
||||
argo-cd,v1.6.2,2020-07-31,23:51:10
|
||||
argo-cd,v1.6.1,2020-06-19,00:47:03
|
||||
argo-cd,v1.6.0,2020-06-16,22:46:48
|
||||
argo-cd,v1.5.8,2020-06-16,20:05:59
|
||||
argo-cd,v1.6.0-rc2,2020-06-09,22:29:03
|
||||
argo-cd,v1.5.7,2020-06-09,18:46:23
|
||||
argo-cd,v1.6.0-rc1,2020-06-03,04:11:50
|
||||
argo-cd,v1.5.6,2020-06-02,19:13:17
|
||||
argo-cd,v1.5.5,2020-05-16,15:22:14
|
||||
argo-cd,v1.5.4,2020-05-05,19:25:30
|
||||
argo-cd,v1.5.3,2020-05-02,04:58:47
|
||||
argo-cd,v1.5.2,2020-04-15,19:05:41
|
||||
argo-cd,v1.4.3,2020-04-15,19:09:30
|
||||
argo-cd,v1.5.1,2020-04-06,16:35:44
|
||||
argo-cd,v1.5.0,2020-04-02,18:49:53
|
||||
argo-cd,v1.5.0-rc3,2020-03-30,22:42:52
|
||||
argo-cd,v1.5.0-rc2,2020-03-26,06:12:25
|
||||
argo-cd,v1.5.0-rc1,2020-03-20,23:02:28
|
||||
argo-cd,v1.4.2,2020-01-24,01:18:02
|
||||
argo-cd,v1.4.1,2020-01-22,23:10:57
|
||||
argo-cd,v1.4.0,2020-01-18,06:12:51
|
||||
argo-cd,v1.4.0-rc1,2020-01-13,20:48:09
|
||||
argo-cd,v1.3.6,2019-12-10,22:54:07
|
||||
argo-cd,v1.3.5,2019-12-09,21:25:22
|
||||
argo-cd,v1.3.4,2019-12-05,23:31:46
|
||||
argo-cd,v1.3.3,2019-12-05,22:55:32
|
||||
argo-cd,v1.3.2,2019-12-03,21:40:15
|
||||
argo-cd,v1.3.1,2019-12-02,22:35:57
|
||||
argo-cd,v1.3.0,2019-11-13,02:17:35
|
||||
argo-cd,v1.3.0-rc5,2019-11-11,21:34:47
|
||||
argo-cd,v1.3.0-rc4,2019-11-04,06:53:16
|
||||
argo-cd,v1.3.0-rc3,2019-10-29,20:19:18
|
||||
argo-cd,v1.2.5,2019-10-29,00:14:59
|
||||
argo-cd,v1.3.0-rc2,2019-10-23,01:36:08
|
||||
argo-cd,v1.2.4,2019-10-23,20:11:59
|
||||
argo-cd,v1.3.0-rc1,2019-10-16,21:46:33
|
||||
argo-cd,v1.2.3,2019-10-01,21:10:16
|
||||
argo-cd,v1.2.2,2019-09-24,19:34:55
|
||||
argo-cd,v1.2.1,2019-09-12,17:31:17
|
||||
argo-cd,v1.2.0,2019-09-04,21:39:00
|
||||
argo-cd,v1.2.0-rc2,2019-08-21,16:04:14
|
||||
argo-cd,v1.2.0-rc1,2019-08-06,20:26:20
|
||||
argo-cd,v1.1.2,2019-07-30,18:02:46
|
||||
argo-cd,v1.1.1,2019-07-24,17:44:23
|
||||
argo-cd,v1.1.0,2019-07-24,17:22:37
|
||||
argo-cd,v1.1.0-rc8,2019-07-19,22:33:59
|
||||
argo-cd,v1.1.0-rc7,2019-07-17,23:30:42
|
||||
argo-cd,v1.1.0-rc6,2019-07-16,16:43:32
|
||||
argo-cd,v1.1.0-rc5,2019-07-09,21:43:03
|
||||
argo-cd,v1.1.0-rc4,2019-07-03,21:23:36
|
||||
argo-cd,v1.1.0-rc3,2019-06-28,21:09:41
|
||||
argo-cd,v1.1.0-rc2,2019-06-21,23:41:40
|
||||
argo-cd,v1.1.0-rc1,2019-06-14,18:42:47
|
||||
argo-cd,v1.0.2,2019-06-14,17:23:08
|
||||
argo-cd,v1.0.1,2019-05-28,17:32:09
|
||||
argo-cd,v1.0.0,2019-05-16,22:13:10
|
||||
argo-cd,v1.0.0-rc3,2019-05-09,17:28:45
|
||||
argo-cd,v1.0.0-rc2,2019-04-30,21:30:50
|
||||
argo-cd,v0.12.3,2019-04-30,06:17:03
|
||||
argo-cd,v1.0.0-rc1,2019-04-24,18:21:02
|
||||
argo-cd,v0.12.2,2019-04-22,21:50:44
|
||||
argo-cd,v0.12.1,2019-04-09,21:28:28
|
||||
argo-cd,v0.12.0,2019-03-23,01:35:42
|
||||
argo-cd,v0.12.0-rc6,2019-03-20,22:50:14
|
||||
argo-cd,v0.12.0-rc5,2019-03-19,08:07:36
|
||||
argo-cd,v0.12.0-rc4,2019-03-12,21:55:07
|
||||
argo-cd,v0.12.0-rc3,2019-03-07,02:51:44
|
||||
argo-cd,v0.12.0-rc2,2019-03-06,11:20:06
|
||||
argo-cd,v0.12.0-rc1,2019-03-06,03:04:20
|
||||
argo-cd,v0.11.2,2019-02-19,18:00:25
|
||||
argo-cd,v0.11.1,2019-01-18,21:14:24
|
||||
argo-cd,v0.11.0,2019-01-11,02:13:53
|
||||
argo-cd,v0.11.0-rc6,2019-01-10,00:42:34
|
||||
argo-cd,v0.11.0-rc5,2019-01-09,00:13:56
|
||||
argo-cd,v0.11.0-rc4,2019-01-04,21:48:23
|
||||
argo-cd,v0.11.0-rc3,2019-01-03,23:58:08
|
||||
argo-cd,v0.11.0-rc2,2018-12-28,01:33:08
|
||||
argo-cd,v0.11.0-rc1,2018-12-10,17:50:56
|
||||
argo-cd,v0.10.6,2018-11-15,03:01:53
|
||||
argo-cd,v0.10.5,2018-11-14,02:40:13
|
||||
argo-cd,v0.10.4,2018-11-08,02:06:57
|
||||
argo-cd,v0.10.3,2018-10-29,07:03:10
|
||||
argo-cd,v0.10.2,2018-10-25,20:12:36
|
||||
argo-cd,v0.10.1,2018-10-24,20:28:59
|
||||
argo-cd,v0.10.0,2018-10-19,22:01:34
|
||||
argo-cd,v0.9.2,2018-09-28,16:59:16
|
||||
argo-cd,v0.9.1,2018-09-24,21:46:35
|
||||
argo-cd,v0.9.0,2018-09-24,20:41:50
|
||||
argo-cd,v0.8.2,2018-09-12,08:55:44
|
||||
argo-cd,v0.8.1,2018-09-11,01:34:30
|
||||
argo-cd,v0.8.0,2018-09-05,01:10:25
|
||||
argo-cd,v0.7.2,2018-08-21,08:22:07
|
||||
argo-cd,v0.7.1,2018-08-03,20:45:14
|
||||
argo-cd,v0.7.0,2018-07-28,01:30:19
|
||||
argo-cd,v0.6.2,2018-07-24,10:04:03
|
||||
argo-cd,v0.6.1,2018-07-18,07:44:11
|
||||
argo-cd,v0.6.0,2018-07-17,09:42:25
|
||||
argo-cd,v0.5.4,2018-06-27,23:25:33
|
||||
argo-cd,v0.5.3,2018-06-21,00:09:10
|
||||
argo-cd,v0.5.2,2018-06-14,20:19:39
|
||||
argo-cd,v0.5.1,2018-06-13,21:46:40
|
||||
argo-cd,v0.5.0,2018-06-12,20:39:05
|
||||
argo-cd,v0.4.7,2018-06-07,18:37:20
|
||||
argo-cd,v0.4.6,2018-06-06,18:12:48
|
||||
argo-cd,v0.4.5,2018-05-31,10:29:26
|
||||
argo-cd,v0.4.4,2018-05-30,23:40:52
|
||||
argo-cd,v0.4.3,2018-05-21,22:38:11
|
||||
argo-cd,v0.4.2,2018-05-21,08:25:50
|
||||
argo-cd,v0.4.1,2018-05-18,20:40:11
|
||||
argo-cd,v0.4.0,2018-05-17,09:55:08
|
||||
argo-cd,v0.4.0-alpha1,2018-05-11,23:59:31
|
||||
argo-cd,v0.3.2,2018-05-03,18:25:30
|
||||
argo-cd,v0.3.1,2018-04-24,23:32:12
|
||||
argo-cd,v0.3.0,2018-04-23,08:29:14
|
||||
argo-cd,v0.2.0,2018-04-03,18:19:24
|
||||
argo-cd,v0.1.0,2018-03-13,00:38:20
|
||||
argo-workflows,v3.6.5,2025-03-11,08:59:16
|
||||
argo-workflows,v3.6.4,2025-02-10,12:56:26
|
||||
argo-workflows,v3.6.3,2025-02-07,15:02:18
|
||||
argo-workflows,v3.5.14,2025-01-31,09:01:29
|
||||
argo-workflows,v3.6.2,2024-12-02,14:12:44
|
||||
argo-workflows,v3.5.13,2024-12-02,13:09:39
|
||||
argo-workflows,v3.6.0,2024-11-14,19:02:01
|
||||
argo-workflows,v3.6.0-rc4,2024-10-31,11:56:16
|
||||
argo-workflows,v3.5.12,2024-10-30,11:49:27
|
||||
argo-workflows,v3.6.0-rc3,2024-10-24,10:51:47
|
||||
argo-workflows,v3.4.18,2024-12-16,09:03:37
|
||||
argo-workflows,v3.6.0-rc2,2024-10-03,07:48:59
|
||||
argo-workflows,v3.5.11,2024-09-20,14:08:00
|
||||
argo-workflows,v3.6.0-rc1,2024-09-18,10:03:03
|
||||
argo-workflows,v3.5.10,2024-08-01,06:03:16
|
||||
argo-workflows,v3.5.9,2024-07-30,06:58:49
|
||||
argo-workflows,v3.5.8,2024-06-18,04:52:31
|
||||
argo-workflows,v3.5.7,2024-05-27,07:13:30
|
||||
argo-workflows,v3.4.17,2024-05-13,02:47:39
|
||||
argo-workflows,v3.5.6,2024-04-19,21:43:07
|
||||
argo-workflows,v3.5.5,2024-02-29,21:47:50
|
||||
argo-workflows,v3.5.4,2024-01-14,06:19:09
|
||||
argo-workflows,v3.4.16,2024-01-14,06:17:57
|
||||
argo-workflows,v3.4.15,2024-01-13,23:29:40
|
||||
argo-workflows,v3.5.3,2024-01-11,03:12:46
|
||||
argo-workflows,v3.5.2,2023-11-27,19:16:42
|
||||
argo-workflows,v3.4.14,2023-11-27,18:56:22
|
||||
argo-workflows,v3.5.1,2023-11-03,19:57:45
|
||||
argo-workflows,v3.4.13,2023-11-03,21:07:31
|
||||
argo-workflows,v3.4.12,2023-10-20,13:00:24
|
||||
argo-workflows,v3.5.0,2023-10-13,15:00:44
|
||||
argo-workflows,v3.5.0-rc2,2023-09-20,19:20:10
|
||||
argo-workflows,v3.4.11,2023-09-08,01:14:16
|
||||
argo-workflows,v3.5.0-rc1,2023-08-15,20:01:35
|
||||
argo-workflows,v3.4.10,2023-08-15,18:59:38
|
||||
argo-workflows,v3.4.9,2023-07-20,15:28:41
|
||||
argo-workflows,v3.4.8,2023-05-25,23:37:40
|
||||
argo-workflows,v3.4.7,2023-04-11,17:26:32
|
||||
argo-workflows,v3.4.6,2023-03-31,20:16:18
|
||||
argo-workflows,v3.4.5,2023-02-07,13:26:29
|
||||
argo-workflows,v3.4.4,2022-11-29,21:15:21
|
||||
argo-workflows,v3.3.10,2022-11-29,21:24:54
|
||||
argo-workflows,v3.4.3,2022-10-31,09:17:41
|
||||
argo-workflows,v3.4.2,2022-10-23,07:36:55
|
||||
argo-workflows,v3.4.1,2022-10-01,16:09:34
|
||||
argo-workflows,v3.4.0,2022-09-19,05:23:46
|
||||
argo-workflows,v3.4.0-rc4,2022-09-10,19:34:15
|
||||
argo-workflows,v3.4.0-rc3,2022-09-01,01:28:29
|
||||
argo-workflows,v3.4.0-rc2,2022-08-19,14:51:26
|
||||
argo-workflows,v3.4.0-rc1,2022-08-10,07:13:17
|
||||
argo-workflows,v3.3.9,2022-08-10,01:08:09
|
||||
argo-workflows,v3.3.8,2022-06-24,01:18:03
|
||||
argo-workflows,v3.3.7,2022-06-21,00:41:49
|
||||
argo-workflows,v3.3.6,2022-05-26,01:22:39
|
||||
argo-workflows,v3.3.5,2022-05-04,01:13:34
|
||||
argo-workflows,v3.2.11,2022-05-03,22:59:55
|
||||
argo-workflows,v3.3.4,2022-04-29,19:54:39
|
||||
argo-workflows,v3.3.3,2022-04-25,23:19:39
|
||||
argo-workflows,v3.3.2,2022-04-20,23:16:10
|
||||
argo-workflows,v3.3.1,2022-03-18,19:45:27
|
||||
argo-workflows,v3.3.0,2022-03-14,23:06:47
|
||||
argo-workflows,v3.3.0-rc10,2022-03-07,23:50:34
|
||||
argo-workflows,v3.3.0-rc9,2022-03-05,19:01:28
|
||||
argo-workflows,v3.2.9,2022-03-02,23:04:35
|
||||
argo-workflows,v3.3.0-rc8,2022-03-01,02:52:15
|
||||
argo-workflows,v3.3.0-rc7,2022-02-25,21:14:31
|
||||
argo-workflows,v3.3.0-rc6,2022-02-21,20:27:19
|
||||
argo-workflows,v3.3.0-rc5,2022-02-21,20:07:56
|
||||
argo-workflows,v3.3.0-rc4,2022-02-08,20:05:39
|
||||
argo-workflows,v3.2.8,2022-02-04,20:19:52
|
||||
argo-workflows,v3.3.0-rc3,2022-02-03,20:31:05
|
||||
argo-workflows,v0.0.0-dev-bom-1,2022-02-02,21:21:47
|
||||
argo-workflows,v3.3.0-rc2,2022-01-30,01:45:04
|
||||
argo-workflows,v3.3.0-rc1,2022-01-29,01:08:13
|
||||
argo-workflows,v3.2.7,2022-01-28,02:28:31
|
||||
argo-workflows,v3.2.6,2021-12-17,21:12:28
|
||||
argo-workflows,v3.2.5,2021-12-16,00:34:48
|
||||
argo-workflows,v0.0.0-dev-kc-7,2021-11-19,01:36:27
|
||||
argo-workflows,v3.2.4,2021-11-18,00:41:27
|
||||
argo-workflows,v3.1.15,2021-11-17,18:46:01
|
||||
argo-workflows,v0.0.0-dev-kc-6,2021-11-18,00:10:06
|
||||
argo-workflows,v0.0.0-dev-kc-5,2021-11-16,20:03:24
|
||||
argo-workflows,v0.0.0-dev-kc-4,2021-11-16,18:38:30
|
||||
argo-workflows,v0.0.0-dev-kc-3,2021-11-15,21:54:04
|
||||
argo-workflows,v0.0.0-dev-kc-2,2021-11-15,21:36:23
|
||||
argo-workflows,v0.0.0-dev-kc-1,2021-11-09,21:24:30
|
||||
argo-workflows,v0.0.0-dev-kc-0,2021-11-09,17:10:14
|
||||
argo-workflows,v3.2.3,2021-10-27,02:22:57
|
||||
argo-workflows,v3.2.2,2021-10-21,18:24:56
|
||||
argo-workflows,v3.1.14,2021-10-20,02:52:43
|
||||
argo-workflows,v3.2.1,2021-10-19,22:11:39
|
||||
argo-workflows,v3.2.0,2021-10-12,16:28:36
|
||||
argo-workflows,v3.2.0-rc6,2021-10-06,02:26:30
|
||||
argo-workflows,v3.2.0-rc5,2021-09-29,18:09:20
|
||||
argo-workflows,v3.1.13,2021-09-28,20:07:21
|
||||
argo-workflows,v3.2.0-rc4,2021-09-21,21:03:56
|
||||
argo-workflows,v3.1.12,2021-09-16,14:12:07
|
||||
argo-workflows,v3.2.0-rc3,2021-09-14,19:40:01
|
||||
argo-workflows,v3.1.11,2021-09-14,07:41:28
|
||||
argo-workflows,v3.1.10,2021-09-10,18:58:55
|
||||
argo-workflows,v3.1.9,2021-09-03,22:39:13
|
||||
argo-workflows,v3.2.0-rc2,2021-09-01,23:45:48
|
||||
argo-workflows,v0.0.0-dev-mc-4,2021-08-31,18:10:35
|
||||
argo-workflows,v0.0.0-dev-mc-3,2021-08-30,17:45:10
|
||||
argo-workflows,v0.0.0-dev-mc-2,2021-08-30,17:40:57
|
||||
argo-workflows,v0.0.0-dev-mc-1,2021-08-30,00:26:16
|
||||
argo-workflows,v0.0.0-dev-mc-0,2021-08-28,02:06:29
|
||||
argo-workflows,v3.2.0-rc1,2021-08-20,02:49:34
|
||||
argo-workflows,v3.1.8,2021-08-19,00:19:56
|
||||
argo-workflows,v3.1.7,2021-08-18,18:21:43
|
||||
argo-workflows,v3.0.10,2021-08-18,23:53:38
|
||||
argo-workflows,v3.0.9,2021-08-18,17:03:34
|
||||
argo-workflows,v2.12.13,2021-08-18,23:42:45
|
||||
argo-workflows,v2.12.12,2021-08-18,17:57:06
|
||||
argo-workflows,v3.1.6,2021-08-13,00:39:51
|
||||
argo-workflows,v0.0.0-dev-dataflow-41,2021-08-11,04:28:21
|
||||
argo-workflows,v3.1.5,2021-08-04,07:14:30
|
||||
argo-workflows,v0.0.0-dev-dataflow-40,2021-08-04,02:06:40
|
||||
argo-workflows,v3.1.4,2021-08-04,01:06:06
|
||||
argo-workflows,v0.0.0-dev-dataflow-39,2021-07-30,20:53:39
|
||||
argo-workflows,v3.1.3,2021-07-28,05:38:36
|
||||
argo-workflows,v0.0.0-dev-dataflow-37,2021-07-23,23:23:18
|
||||
argo-workflows,v0.0.0-dev-dataflow-36,2021-07-22,01:29:29
|
||||
argo-workflows,v0.0.0-dev-dataflow-34,2021-07-20,18:17:04
|
||||
argo-workflows,v0.0.0-dev-dataflow-33,2021-07-16,23:18:16
|
||||
argo-workflows,v3.1.2,2021-07-15,22:04:54
|
||||
argo-workflows,v0.0.0-dev-dataflow-31,2021-07-14,16:55:52
|
||||
argo-workflows,v0.0.0-dev-dataflow-30,2021-07-12,18:40:24
|
||||
argo-workflows,v3.1.1,2021-06-28,21:31:33
|
||||
argo-workflows,v0.0.0-dev-dataflow-29,2021-06-28,18:51:44
|
||||
argo-workflows,v0.0.0-dev-dataflow-28,2021-06-25,03:44:24
|
||||
argo-workflows,v3.1.0,2021-06-21,23:35:00
|
||||
argo-workflows,v3.0.8,2021-06-21,23:52:48
|
||||
argo-workflows,v0.0.0-dev-dataflow-27,2021-06-21,23:00:03
|
||||
argo-workflows,v0.0.0-dev-dataflow-26,2021-06-16,00:01:26
|
||||
argo-workflows,v0.0.0-dev-dataflow-25,2021-06-16,00:01:43
|
||||
argo-workflows,v3.1.0-rc14,2021-06-10,19:18:50
|
||||
argo-workflows,v0.0.0-dev-dataflow-24,2021-06-10,17:34:10
|
||||
argo-workflows,v0.0.0-dev-dataflow-23,2021-06-10,02:31:42
|
||||
argo-workflows,v3.1.0-rc13,2021-06-08,16:45:35
|
||||
argo-workflows,v0.0.0-dev-dataflow-22,2021-06-09,20:38:24
|
||||
argo-workflows,v0.0.0-dev-dataflow-20,2021-06-08,02:42:49
|
||||
argo-workflows,v0.0.0-dev-dataflow-19,2021-06-06,20:41:36
|
||||
argo-workflows,v0.0.0-dev-docker-0,2021-06-06,19:00:54
|
||||
argo-workflows,v0.0.0-dev-dataflow-18,2021-06-05,00:59:50
|
||||
argo-workflows,v0.0.0-dev-dataflow-17,2021-06-04,01:23:11
|
||||
argo-workflows,v0.0.0-dev-dataflow-16,2021-06-04,01:03:00
|
||||
argo-workflows,v3.1.0-rc12,2021-06-03,01:40:44
|
||||
argo-workflows,v3.1.0-rc11,2021-06-01,19:02:58
|
||||
argo-workflows,v0.0.0-dev-dataflow-15,2021-06-01,22:31:59
|
||||
argo-workflows,v0.0.0-dev-dataflow-14,2021-06-01,20:34:22
|
||||
argo-workflows,v0.0.0-dev-dataflow-13,2021-06-01,19:06:07
|
||||
argo-workflows,v3.1.0-rc10,2021-05-28,00:00:15
|
||||
argo-workflows,v0.0.0-dev-dataflow-11,2021-05-27,02:01:59
|
||||
argo-workflows,v3.1.0-rc8,2021-05-25,18:06:14
|
||||
argo-workflows,v3.0.7,2021-05-25,19:08:55
|
||||
argo-workflows,v0.0.0-dev-dataflow-10,2021-05-25,18:22:42
|
||||
argo-workflows,v3.1.0-rc7,2021-05-24,20:15:18
|
||||
argo-workflows,v3.0.6,2021-05-24,22:03:27
|
||||
argo-workflows,v3.0.5,2021-05-24,20:16:47
|
||||
argo-workflows,v3.1.0-rc6,2021-05-21,16:46:01
|
||||
argo-workflows,v0.0.0-dev-dataflow-9,2021-05-21,20:56:00
|
||||
argo-workflows,v0.0.0-dev-dataflow-8,2021-05-21,06:32:47
|
||||
argo-workflows,v0.0.0-dev-dataflow-7,2021-05-21,03:02:41
|
||||
argo-workflows,v0.0.0-dev-dataflow-6,2021-05-20,23:34:42
|
||||
argo-workflows,v0.0.0-dev-dataflow-5,2021-05-19,23:23:04
|
||||
argo-workflows,v0.0.0-dev-dataflow-4,2021-05-19,00:02:40
|
||||
argo-workflows,v3.1.0-rc5,2021-05-17,22:42:30
|
||||
argo-workflows,v3.1.0-rc4,2021-05-14,21:20:57
|
||||
argo-workflows,v3.0.4,2021-05-14,06:52:02
|
||||
argo-workflows,v3.1.0-rc3,2021-05-13,21:46:01
|
||||
argo-workflows,v3.1.0-rc2,2021-05-13,00:17:44
|
||||
argo-workflows,v3.1.0-rc1,2021-05-12,21:19:04
|
||||
argo-workflows,v3.0.3,2021-05-11,22:31:06
|
||||
argo-workflows,v3.0.2,2021-04-20,15:37:15
|
||||
argo-workflows,v2.12.11,2021-04-06,18:10:38
|
||||
argo-workflows,v3.0.1,2021-04-01,19:52:20
|
||||
argo-workflows,v3.0.0,2021-03-30,20:25:33
|
||||
argo-workflows,v3.0.0-rc9,2021-03-23,19:04:46
|
||||
argo-workflows,v3.0.0-rc8,2021-03-17,19:30:33
|
||||
argo-workflows,v3.0.0-rc7,2021-03-16,23:25:22
|
||||
argo-workflows,v3.0.0-rc6,2021-03-10,01:08:31
|
||||
argo-workflows,v3.0.0-rc5,2021-03-09,19:50:05
|
||||
argo-workflows,v2.12.10,2021-03-08,22:57:52
|
||||
argo-workflows,v3.0.0-rc4,2021-03-02,22:26:56
|
||||
argo-workflows,v3.0.0-rc3,2021-02-23,21:38:38
|
||||
argo-workflows,v3.0.0-rc2,2021-02-16,18:09:12
|
||||
argo-workflows,v2.12.9,2021-02-17,01:28:49
|
||||
argo-workflows,v3.0.0-rc1,2021-02-09,00:36:27
|
||||
argo-workflows,v2.12.8,2021-02-09,00:36:17
|
||||
argo-workflows,v2.12.7,2021-02-01,22:21:36
|
||||
argo-workflows,v2.12.6,2021-01-25,20:24:13
|
||||
argo-workflows,v2.12.5,2021-01-19,22:49:21
|
||||
argo-workflows,v2.12.4,2021-01-12,20:53:35
|
||||
argo-workflows,v2.12.3,2021-01-05,02:00:00
|
||||
argo-workflows,v2.12.2,2020-12-18,18:17:19
|
||||
argo-workflows,v2.12.1,2020-12-18,01:11:16
|
||||
argo-workflows,v2.12.0,2020-12-17,19:35:41
|
||||
argo-workflows,v2.12.0-rc6,2020-12-15,19:00:45
|
||||
argo-workflows,v2.12.0-rc5,2020-12-10,13:50:01
|
||||
argo-workflows,v2.12.0-rc4,2020-12-03,00:55:16
|
||||
argo-workflows,v2.12.0-rc3,2020-11-23,13:35:50
|
||||
argo-workflows,v2.11.8,2020-11-21,16:36:24
|
||||
argo-workflows,v2.12.0-rc2,2020-11-12,16:23:14
|
||||
argo-workflows,v2.12.0-rc1,2020-11-06,19:14:19
|
||||
argo-workflows,v2.11.7,2020-11-02,21:50:13
|
||||
argo-workflows,v2.11.6,2020-10-19,20:51:22
|
||||
argo-workflows,v2.11.5,2020-10-15,23:14:34
|
||||
argo-workflows,v2.11.4,2020-10-14,22:30:23
|
||||
argo-workflows,v2.11.3,2020-10-07,23:20:10
|
||||
argo-workflows,v2.11.2,2020-10-06,00:19:46
|
||||
argo-workflows,v2.11.1,2020-09-29,17:55:55
|
||||
argo-workflows,v2.11.0,2020-09-17,23:09:05
|
||||
argo-workflows,v2.11.0-rc3,2020-09-15,16:50:33
|
||||
argo-workflows,v2.10.2,2020-09-14,17:45:20
|
||||
argo-workflows,v2.11.0-rc2,2020-09-09,17:43:25
|
||||
argo-workflows,v2.10.1,2020-09-03,00:02:01
|
||||
argo-workflows,v2.11.0-rc1,2020-09-01,20:17:41
|
||||
argo-workflows,v2.10.0,2020-08-18,23:15:58
|
||||
argo-workflows,v2.10.0-rc7,2020-08-14,15:48:45
|
||||
argo-workflows,v2.10.0-rc6,2020-08-06,23:31:38
|
||||
argo-workflows,v2.9.5,2020-08-06,22:45:49
|
||||
argo-workflows,v2.10.0-rc5,2020-08-03,23:21:27
|
||||
argo-workflows,v2.10.0-rc4,2020-07-29,00:15:54
|
||||
argo-workflows,v2.9.4,2020-07-24,21:59:33
|
||||
argo-workflows,v2.10.0-rc3,2020-07-23,23:04:45
|
||||
argo-workflows,v2.10.0-rc1,2020-07-17,20:10:06
|
||||
argo-workflows,v2.9.3,2020-07-15,01:33:15
|
||||
argo-workflows,v2.9.2,2020-07-09,00:21:41
|
||||
argo-workflows,v2.9.1,2020-07-03,15:28:51
|
||||
argo-workflows,v2.9.0,2020-07-02,01:43:01
|
||||
argo-workflows,v2.9.0-rc4,2020-06-26,23:05:54
|
||||
argo-workflows,v2.9.0-rc3,2020-06-23,19:15:20
|
||||
argo-workflows,v2.8.2,2020-06-22,22:28:02
|
||||
argo-workflows,v2.9.0-rc2,2020-06-17,04:36:44
|
||||
argo-workflows,v2.9.0-rc1,2020-06-11,00:19:33
|
||||
argo-workflows,v2.8.1,2020-05-29,00:31:04
|
||||
argo-workflows,v2.8.0,2020-05-11,23:50:27
|
||||
argo-workflows,v2.8.0-rc4,2020-05-06,23:58:00
|
||||
argo-workflows,v2.7.7,2020-05-06,23:32:46
|
||||
argo-workflows,v2.8.0-rc3,2020-04-28,16:46:57
|
||||
argo-workflows,v2.7.6,2020-04-28,17:31:48
|
||||
argo-workflows,v2.8.0-rc2,2020-04-23,23:29:50
|
||||
argo-workflows,v2.8.0-rc1,2020-04-21,15:36:43
|
||||
argo-workflows,v2.7.5,2020-04-21,01:35:36
|
||||
argo-workflows,v2.7.4,2020-04-16,18:20:58
|
||||
argo-workflows,v2.6.4,2020-04-16,03:02:24
|
||||
argo-workflows,v2.7.3,2020-04-16,02:03:38
|
||||
argo-workflows,v2.7.2,2020-04-10,20:29:17
|
||||
argo-workflows,v2.7.1,2020-04-07,17:16:19
|
||||
argo-workflows,v2.7.0,2020-04-01,03:13:14
|
||||
argo-workflows,v2.7.0-rc4,2020-03-30,22:13:50
|
||||
argo-workflows,v2.7.0-rc3,2020-03-25,20:18:44
|
||||
argo-workflows,v2.7.0-rc2,2020-03-23,18:38:05
|
||||
argo-workflows,v2.7.0-rc1,2020-03-19,02:11:45
|
||||
argo-workflows,v2.6.3,2020-03-16,18:24:24
|
||||
argo-workflows,v2.6.2,2020-03-12,16:23:45
|
||||
argo-workflows,v2.6.1,2020-03-04,21:33:38
|
||||
argo-workflows,v2.6.0,2020-02-28,23:39:10
|
||||
argo-workflows,v2.6.0-rc3,2020-02-25,17:32:04
|
||||
argo-workflows,v2.5.2,2020-02-24,23:10:36
|
||||
argo-workflows,v2.6.0-rc2,2020-02-22,00:36:29
|
||||
argo-workflows,v2.5.1,2020-02-20,18:30:07
|
||||
argo-workflows,v2.6.0-rc1,2020-02-19,18:48:23
|
||||
argo-workflows,v2.5.0,2020-02-19,02:54:07
|
||||
argo-workflows,v2.5.0-rc12,2020-02-14,00:08:36
|
||||
argo-workflows,v2.5.0-rc11,2020-02-11,22:25:57
|
||||
argo-workflows,v2.5.0-rc10,2020-02-08,00:23:39
|
||||
argo-workflows,v2.5.0-rc9,2020-02-07,00:40:24
|
||||
argo-workflows,v2.5.0-rc8,2020-02-04,01:25:11
|
||||
argo-workflows,v2.5.0-rc7,2020-01-31,22:43:09
|
||||
argo-workflows,v2.5.0-rc6,2020-01-30,22:14:51
|
||||
argo-workflows,v2.5.0-rc5,2020-01-30,03:13:49
|
||||
argo-workflows,v2.5.0-rc4,2020-01-27,21:08:05
|
||||
argo-workflows,v2.5.0-rc3,2020-01-27,19:37:31
|
||||
argo-workflows,v2.5.0-rc2,2020-01-24,21:43:45
|
||||
argo-workflows,v2.5.0-rc1,2020-01-24,20:59:49
|
||||
argo-workflows,v2.4.3,2019-12-06,05:53:42
|
||||
argo-workflows,v2.4.2,2019-10-21,19:06:52
|
||||
argo-workflows,v2.4.1,2019-10-09,00:01:23
|
||||
argo-workflows,v2.4.0,2019-10-07,20:35:32
|
||||
argo-workflows,v2.4.0-rc1,2019-08-08,22:12:22
|
||||
argo-workflows,v2.3.0,2019-05-20,22:34:35
|
||||
argo-workflows,v2.3.0-rc3,2019-05-08,00:11:00
|
||||
argo-workflows,v2.3.0-rc2,2019-04-21,08:32:04
|
||||
argo-workflows,v2.3.0-rc1,2019-04-10,16:08:39
|
||||
argo-workflows,v2.2.1,2018-10-11,16:44:01
|
||||
argo-workflows,v2.2.0,2018-08-30,09:00:24
|
||||
argo-workflows,v2.1.1,2018-05-29,20:52:07
|
||||
argo-workflows,v2.1.0,2018-05-01,20:33:03
|
||||
argo-workflows,v2.1.0-beta2,2018-03-29,20:55:26
|
||||
argo-workflows,v2.1.0-beta1,2018-03-29,15:35:56
|
||||
argo-workflows,v2.1.0-alpha1,2018-02-21,22:54:53
|
||||
argo-workflows,v2.0.0,2018-02-06,21:55:25
|
||||
argo-workflows,v2.0.0-beta1,2018-01-18,22:58:14
|
||||
argo-workflows,v2.0.0-alpha3,2018-01-02,21:32:11
|
||||
argo-workflows,v2.0.0-alpha2,2017-12-05,05:13:12
|
||||
argo-workflows,v2.0.0-alpha1,2017-11-16,22:10:07
|
||||
argo-events,v1.9.5,2025-01-10,18:11:20
|
||||
argo-events,v1.9.4,2025-01-08,07:48:18
|
||||
argo-events,v1.9.3,2024-11-27,06:51:10
|
||||
argo-events,v1.9.2,2024-06-14,00:38:39
|
||||
argo-events,v1.9.1,2024-02-13,21:21:44
|
||||
argo-events,v1.9.0,2024-01-09,08:31:10
|
||||
argo-events,v1.8.1,2023-08-31,23:49:47
|
||||
argo-events,v1.8.0,2023-05-08,05:54:59
|
||||
argo-events,v1.7.6,2023-02-10,07:30:54
|
||||
argo-events,v1.7.5,2023-01-23,08:23:36
|
||||
argo-events,v1.7.4,2022-12-12,07:45:11
|
||||
argo-events,v1.7.3,2022-09-28,22:10:34
|
||||
argo-events,v1.7.2,2022-09-12,23:46:11
|
||||
argo-events,v1.7.1,2022-06-09,06:27:31
|
||||
argo-events,v1.7.0,2022-05-04,22:47:01
|
||||
argo-events,v1.7.0-rc1,2022-04-23,07:22:52
|
||||
argo-events,v1.6.3,2022-03-03,20:56:12
|
||||
argo-events,v1.6.2,2022-03-02,05:39:57
|
||||
argo-events,v1.6.1,2022-02-27,08:51:59
|
||||
argo-events,v1.6.0,2022-02-13,06:42:27
|
||||
argo-events,v1.5.6,2022-01-12,05:18:08
|
||||
argo-events,v1.5.5,2021-12-19,03:32:55
|
||||
argo-events,v1.5.4,2021-12-10,08:49:46
|
||||
argo-events,v1.5.3,2021-11-22,18:36:36
|
||||
argo-events,v1.5.2,2021-11-09,20:01:58
|
||||
argo-events,v1.5.1,2021-11-08,07:35:38
|
||||
argo-events,v1.5.0,2021-10-12,18:48:33
|
||||
argo-events,v1.4.3,2021-09-30,15:49:41
|
||||
argo-events,v1.4.2,2021-09-21,18:29:51
|
||||
argo-events,v1.4.1,2021-09-01,00:37:05
|
||||
argo-events,v1.4.0,2021-07-12,16:33:29
|
||||
argo-events,v1.3.1,2021-05-04,17:40:52
|
||||
argo-events,v1.3.0,2021-04-12,18:14:51
|
||||
argo-events,v1.3.0-rc4,2021-04-08,06:37:06
|
||||
argo-events,v1.3.0-rc3,2021-04-05,20:42:52
|
||||
argo-events,v1.3.0-rc2,2021-03-31,21:34:56
|
||||
argo-events,v1.3.0-rc1,2021-03-23,18:05:01
|
||||
argo-events,v1.2.3,2021-02-18,17:52:54
|
||||
argo-events,v1.2.2,2021-01-27,17:40:28
|
||||
argo-events,v1.2.1,2021-01-26,08:22:50
|
||||
argo-events,v1.2.0,2021-01-08,08:30:04
|
||||
argo-events,v1.1.0,2020-11-16,20:07:55
|
||||
argo-events,v1.1.0-rc1,2020-11-05,06:36:21
|
||||
argo-events,v1.0.0,2020-09-04,20:57:04
|
||||
argo-events,v1.0.0-rc3,2020-08-26,04:36:48
|
||||
argo-events,v1.0.0-rc2,2020-08-16,21:20:09
|
||||
argo-events,v1.0.0-rc1,2020-08-10,18:25:28
|
||||
argo-events,v0.17.0,2020-07-24,12:40:33
|
||||
argo-events,v0.16.0,2020-06-14,23:52:44
|
||||
argo-events,v0.15.0,2020-05-08,13:42:18
|
||||
argo-events,v0.14.0,2020-04-12,23:34:58
|
||||
argo-events,v0.13.0,2020-03-21,01:21:15
|
||||
argo-events,v0.13.0-rc,2020-02-26,01:33:31
|
||||
argo-events,v0.12,2020-01-17,04:51:55
|
||||
argo-events,v0.12-rc,2019-12-12,04:52:49
|
||||
argo-events,v0.11,2019-11-11,17:11:35
|
||||
argo-events,v0.10,2019-10-07,12:51:38
|
||||
argo-events,v0.9.3,2019-07-15,12:16:22
|
||||
argo-events,v0.9.2,2019-04-26,01:11:53
|
||||
argo-events,v0.9.1,2019-04-26,00:33:03
|
||||
argo-events,v.0.9,2019-03-30,13:07:25
|
||||
argo-events,v0.8.3,2019-03-18,21:09:05
|
||||
argo-events,v0.8.2,2019-03-14,10:32:46
|
||||
argo-events,v0.8.1,2019-03-11,13:42:08
|
||||
argo-events,v0.8,2019-02-27,18:08:21
|
||||
argo-events,v0.7,2019-01-30,04:12:58
|
||||
argo-events,v0.6,2018-11-27,11:46:02
|
||||
argo-events,v0.5,2018-10-18,19:51:19
|
||||
argo-events,v0.5-beta1,2018-07-27,15:00:03
|
||||
argo-events,v0.5-alpha1,2018-06-20,19:23:36
|
||||
argo-rollouts,v1.8.2,2025-03-21,20:37:43
|
||||
argo-rollouts,v1.8.1,2025-03-20,16:40:33
|
||||
argo-rollouts,v1.8.0,2025-01-30,18:24:03
|
||||
argo-rollouts,v1.8.0-rc2,2025-01-16,19:43:44
|
||||
argo-rollouts,v1.8.0-rc1,2024-12-09,14:28:35
|
||||
argo-rollouts,v1.7.2,2024-08-13,18:42:47
|
||||
argo-rollouts,v1.7.1,2024-06-25,01:38:31
|
||||
argo-rollouts,v1.7.0,2024-06-13,20:23:14
|
||||
argo-rollouts,v1.7.0-rc1,2024-04-05,18:24:00
|
||||
argo-rollouts,v1.6.6,2024-02-13,15:56:59
|
||||
argo-rollouts,v1.6.5,2024-01-25,20:19:53
|
||||
argo-rollouts,v1.6.4,2023-12-11,21:54:30
|
||||
argo-rollouts,v1.6.3,2023-12-05,14:36:31
|
||||
argo-rollouts,v1.6.2,2023-11-02,19:58:08
|
||||
argo-rollouts,v1.6.1,2023-11-01,21:19:43
|
||||
argo-rollouts,v1.6.0,2023-09-06,19:00:06
|
||||
argo-rollouts,v1.6.0-rc1,2023-08-11,14:22:24
|
||||
argo-rollouts,v1.5.1,2023-05-24,19:26:51
|
||||
argo-rollouts,v1.5.0,2023-05-08,15:34:06
|
||||
argo-rollouts,v1.5.0-rc1,2023-03-27,20:09:25
|
||||
argo-rollouts,v1.4.1,2023-02-25,15:23:34
|
||||
argo-rollouts,v1.3.3,2023-02-25,04:38:57
|
||||
argo-rollouts,v1.4.0,2023-01-09,21:43:34
|
||||
argo-rollouts,v1.4.0-rc1,2022-12-20,02:07:55
|
||||
argo-rollouts,v1.3.2,2022-12-15,17:05:26
|
||||
argo-rollouts,v1.3.1,2022-09-29,17:43:19
|
||||
argo-rollouts,v1.3.0,2022-09-19,03:29:00
|
||||
argo-rollouts,v1.3.0-rc3,2022-09-15,16:00:07
|
||||
argo-rollouts,v1.3.0-rc2,2022-08-25,20:49:49
|
||||
argo-rollouts,v1.3.0-rc1,2022-07-29,19:54:34
|
||||
argo-rollouts,v1.2.2,2022-07-26,17:49:31
|
||||
argo-rollouts,v1.2.1,2022-05-13,20:57:34
|
||||
argo-rollouts,v1.2.0,2022-03-22,17:16:13
|
||||
argo-rollouts,v1.2.0-rc2,2022-02-25,16:54:46
|
||||
argo-rollouts,v1.2.0-rc1,2022-02-07,20:00:22
|
||||
argo-rollouts,v1.1.1,2021-11-29,21:44:13
|
||||
argo-rollouts,v1.1.0,2021-10-12,17:02:30
|
||||
argo-rollouts,v1.1.0-rc2,2021-10-05,23:41:25
|
||||
argo-rollouts,v1.0.7,2021-09-29,18:02:01
|
||||
argo-rollouts,v1.1.0-rc1,2021-09-21,23:23:21
|
||||
argo-rollouts,v1.0.6,2021-08-26,18:13:19
|
||||
argo-rollouts,v1.0.4,2021-08-03,04:38:07
|
||||
argo-rollouts,v1.0.3,2021-08-03,04:36:59
|
||||
argo-rollouts,v1.0.2,2021-06-15,22:33:04
|
||||
argo-rollouts,v1.0.1,2021-05-26,08:43:12
|
||||
argo-rollouts,v1.0.0,2021-05-20,04:11:28
|
||||
argo-rollouts,v1.0.0-rc1,2021-04-29,20:29:41
|
||||
argo-rollouts,v0.10.2,2020-12-17,21:20:44
|
||||
argo-rollouts,v0.10.1,2020-12-05,01:23:44
|
||||
argo-rollouts,v0.10.0,2020-11-14,00:21:31
|
||||
argo-rollouts,v0.9.3,2020-11-05,23:24:15
|
||||
argo-rollouts,v0.9.2,2020-10-17,04:41:56
|
||||
argo-rollouts,v0.9.1,2020-09-28,22:52:01
|
||||
argo-rollouts,v0.9.0,2020-08-17,22:17:04
|
||||
argo-rollouts,v0.8.3,2020-06-04,00:49:11
|
||||
argo-rollouts,v0.8.2,2020-05-06,20:40:16
|
||||
argo-rollouts,v0.8.1,2020-04-20,23:55:07
|
||||
argo-rollouts,v0.8.0,2020-04-13,16:40:32
|
||||
argo-rollouts,v0.7.2,2020-02-25,19:46:06
|
||||
argo-rollouts,v0.7.1,2020-02-10,18:01:08
|
||||
argo-rollouts,v0.7.0,2020-01-22,05:09:28
|
||||
argo-rollouts,v0.6.3,2020-01-22,04:40:30
|
||||
argo-rollouts,v0.6.2,2019-12-16,17:14:42
|
||||
argo-rollouts,v0.6.1,2019-12-06,00:25:57
|
||||
argo-rollouts,v0.6.0,2019-11-17,21:16:29
|
||||
argo-rollouts,v0.5.0,2019-09-23,17:59:31
|
||||
argo-rollouts,v0.4.2,2019-08-19,20:21:15
|
||||
argo-rollouts,v0.4.1,2019-06-26,16:07:32
|
||||
argo-rollouts,v0.4.0,2019-06-21,17:48:41
|
||||
argo-rollouts,v0.3.2,2019-06-13,17:58:53
|
||||
argo-rollouts,v0.3.1,2019-05-18,21:27:51
|
||||
argo-rollouts,v0.3.0,2019-05-01,06:36:28
|
||||
argo-rollouts,v0.2.2,2019-04-16,23:10:01
|
||||
argo-rollouts,v0.2.1,2019-04-04,21:43:44
|
||||
argo-rollouts,v0.2.0,2019-03-04,22:30:55
|
||||
argo-rollouts,v0.1.0,2019-02-01,19:03:49
|
|
|
@ -0,0 +1,90 @@
|
|||
import csv
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
||||
import requests
|
||||
|
||||
# GitHub repository URL
|
||||
repo_url = "https://api.github.com/repos/argoproj/argo-helm/releases"
|
||||
|
||||
# Get the GitHub token from environment variables
|
||||
github_token = os.getenv("GITHUB_TOKEN")
|
||||
if not github_token:
|
||||
raise ValueError("GITHUB_TOKEN environment variable is not set")
|
||||
|
||||
|
||||
# Function to fetch all releases with pagination
|
||||
def fetch_all_releases(url):
|
||||
releases = []
|
||||
headers = {"Authorization": f"token {github_token}"}
|
||||
while url:
|
||||
response = requests.get(url, headers=headers)
|
||||
response.raise_for_status()
|
||||
releases.extend(response.json())
|
||||
url = response.links.get("next", {}).get("url")
|
||||
return releases
|
||||
|
||||
|
||||
# Function to get the content of Chart.yaml in a release
|
||||
def get_chart_yaml(repo, tag, chart_path):
|
||||
url = f"https://raw.githubusercontent.com/{repo}/refs/tags/{tag}/charts/{chart_path}/Chart.yaml"
|
||||
headers = {"Authorization": f"token {github_token}"}
|
||||
response = requests.get(url, headers=headers)
|
||||
if response.status_code == 200:
|
||||
return response.text
|
||||
return None
|
||||
|
||||
|
||||
# Function to extract appVersion from Chart.yaml content
|
||||
def extract_app_version(chart_yaml):
|
||||
for line in chart_yaml.splitlines():
|
||||
if line.startswith("appVersion:"):
|
||||
return line.split(":")[1].strip()
|
||||
return None
|
||||
|
||||
|
||||
# Function to fetch releases and write to a CSV file
|
||||
def fetch_and_write_helmet_releases(csv_file):
|
||||
# Fetch all releases
|
||||
releases = fetch_all_releases(repo_url)
|
||||
|
||||
# Write the release data to the CSV file
|
||||
with open(csv_file, mode="w", newline="") as file:
|
||||
writer = csv.writer(file, quoting=csv.QUOTE_NONE, escapechar="\\")
|
||||
writer.writerow(["Release Name", "Release Date", "Release Time", "App Version"])
|
||||
|
||||
for release in releases:
|
||||
tag_name = release["tag_name"]
|
||||
published_at = release["published_at"]
|
||||
release_date = datetime.strptime(published_at, "%Y-%m-%dT%H:%M:%SZ").date()
|
||||
release_time = datetime.strptime(published_at, "%Y-%m-%dT%H:%M:%SZ").time()
|
||||
|
||||
# Extract chart path from the release name
|
||||
chart_path = "-".join(tag_name.split("-")[:-1])
|
||||
current_chart_yaml = get_chart_yaml(
|
||||
"argoproj/argo-helm", tag_name, chart_path
|
||||
)
|
||||
|
||||
if current_chart_yaml:
|
||||
current_app_version = extract_app_version(current_chart_yaml)
|
||||
writer.writerow(
|
||||
[tag_name, release_date, release_time, current_app_version]
|
||||
)
|
||||
|
||||
# Read the CSV file, remove any instances of `\"`, and write back the cleaned content
|
||||
with open(csv_file, mode="r") as file:
|
||||
content = file.read()
|
||||
|
||||
cleaned_content = content.replace('\\"', "")
|
||||
|
||||
with open(csv_file, mode="w", newline="") as file:
|
||||
file.write(cleaned_content)
|
||||
|
||||
print(
|
||||
f'Release data has been written to {csv_file} and cleaned of any instances of \\"'
|
||||
)
|
||||
|
||||
|
||||
# Example usage
|
||||
if __name__ == "__main__":
|
||||
fetch_and_write_helmet_releases("argo_helm_releases.csv")
|
|
@ -0,0 +1,57 @@
|
|||
import csv
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
||||
import requests
|
||||
|
||||
# List of GitHub repository URLs we care about
|
||||
repos = [
|
||||
("argo-cd", "https://api.github.com/repos/argoproj/argo-cd/releases"),
|
||||
("argo-workflows", "https://api.github.com/repos/argoproj/argo-workflows/releases"),
|
||||
("argo-events", "https://api.github.com/repos/argoproj/argo-events/releases"),
|
||||
("argo-rollouts", "https://api.github.com/repos/argoproj/argo-rollouts/releases"),
|
||||
]
|
||||
|
||||
# Get the GitHub token from environment variables
|
||||
github_token = os.getenv("GITHUB_TOKEN")
|
||||
if not github_token:
|
||||
raise ValueError("GITHUB_TOKEN environment variable is not set")
|
||||
|
||||
|
||||
# Fetch all releases with pagination
|
||||
def fetch_all_releases(url):
|
||||
releases = []
|
||||
headers = {"Authorization": f"token {github_token}"}
|
||||
while url:
|
||||
response = requests.get(url, headers=headers)
|
||||
response.raise_for_status()
|
||||
releases.extend(response.json())
|
||||
url = response.links.get("next", {}).get("url")
|
||||
return releases
|
||||
|
||||
|
||||
# Fetch releases and write to a CSV file
|
||||
def fetch_and_write_releases(csv_file):
|
||||
with open(csv_file, mode="w", newline="") as file:
|
||||
writer = csv.writer(file)
|
||||
writer.writerow(["Repository", "Release Tag", "Release Date", "Release Time"])
|
||||
|
||||
for repo_name, repo_url in repos:
|
||||
releases = fetch_all_releases(repo_url)
|
||||
for release in releases:
|
||||
tag_name = release["tag_name"]
|
||||
published_at = release["published_at"]
|
||||
release_date = datetime.strptime(
|
||||
published_at, "%Y-%m-%dT%H:%M:%SZ"
|
||||
).date()
|
||||
release_time = datetime.strptime(
|
||||
published_at, "%Y-%m-%dT%H:%M:%SZ"
|
||||
).time()
|
||||
writer.writerow([repo_name, tag_name, release_date, release_time])
|
||||
|
||||
print(f"Release data has been written to {csv_file}")
|
||||
|
||||
|
||||
# Example usage
|
||||
if __name__ == "__main__":
|
||||
fetch_and_write_releases("argo_releases.csv")
|
|
@ -0,0 +1,31 @@
|
|||
import os
|
||||
|
||||
from fetch_helmet_releases import fetch_and_write_helmet_releases
|
||||
from fetch_releases import fetch_and_write_releases
|
||||
from merge_csvs import merge_csv_files
|
||||
from plot_graph import plot_time_difference
|
||||
|
||||
# Check there is a github token
|
||||
github_token = os.getenv("GITHUB_TOKEN")
|
||||
if not github_token:
|
||||
raise ValueError("GITHUB_TOKEN environment variable is not set")
|
||||
|
||||
# Do the thing
|
||||
print("Fetching releases...")
|
||||
fetch_and_write_releases("argo_releases.csv")
|
||||
print("Done")
|
||||
|
||||
print("Fetching Team Helmet releases...")
|
||||
fetch_and_write_helmet_releases("argo_helm_releases.csv")
|
||||
print("Done")
|
||||
|
||||
print("Merging release info...")
|
||||
merge_csv_files("argo_releases.csv", "argo_helm_releases.csv", "merged_releases.csv")
|
||||
print("Done")
|
||||
|
||||
print("Plotting time difference graphs...")
|
||||
plot_time_difference("merged_releases.csv")
|
||||
print("Done")
|
||||
|
||||
# Delete __pycache__ directories
|
||||
os.system("rm -rf __pycache__")
|
|
@ -0,0 +1,108 @@
|
|||
import csv
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
def merge_csv_files(csv_file_1, csv_file_2, output_csv_file):
|
||||
# Read the first CSV file into a dictionary
|
||||
releases_1 = {}
|
||||
with open(csv_file_1, mode="r") as file:
|
||||
reader = csv.DictReader(file)
|
||||
for row in reader:
|
||||
key = (row["Repository"], row["Release Tag"])
|
||||
releases_1[key] = row
|
||||
|
||||
# Read the second CSV file and find the oldest release for each appVersion
|
||||
oldest_releases = {}
|
||||
valid_repos = {"argo-cd", "argo-events", "argo-workflows", "argo-rollouts"}
|
||||
with open(csv_file_2, mode="r") as file:
|
||||
reader = csv.DictReader(file)
|
||||
for row in reader:
|
||||
release_name = row["Release Name"]
|
||||
repo_name = "-".join(release_name.split("-")[:-1])
|
||||
if repo_name in valid_repos:
|
||||
app_version = row["App Version"]
|
||||
release_datetime = datetime.strptime(
|
||||
f"{row['Release Date']} {row['Release Time']}", "%Y-%m-%d %H:%M:%S"
|
||||
)
|
||||
if (
|
||||
repo_name,
|
||||
app_version,
|
||||
) not in oldest_releases or release_datetime < oldest_releases[
|
||||
(repo_name, app_version)
|
||||
][
|
||||
"datetime"
|
||||
]:
|
||||
oldest_releases[(repo_name, app_version)] = {
|
||||
"row": row,
|
||||
"datetime": release_datetime,
|
||||
}
|
||||
|
||||
# Merge the oldest releases with the first CSV file
|
||||
merged_releases = []
|
||||
for (repo_name, app_version), data in oldest_releases.items():
|
||||
row = data["row"]
|
||||
for key, release in releases_1.items():
|
||||
if (
|
||||
repo_name == release["Repository"]
|
||||
and app_version == release["Release Tag"]
|
||||
):
|
||||
time_difference = data["datetime"] - datetime.strptime(
|
||||
f"{release['Release Date']} {release['Release Time']}",
|
||||
"%Y-%m-%d %H:%M:%S",
|
||||
)
|
||||
time_difference_hours = (
|
||||
time_difference.total_seconds() / 3600
|
||||
) # Convert to hours
|
||||
merged_row = {
|
||||
"Repository": release["Repository"],
|
||||
"Release Tag": release["Release Tag"],
|
||||
"Release Date": release["Release Date"],
|
||||
"Release Time": release["Release Time"],
|
||||
"App Version": app_version,
|
||||
"Release Name": row["Release Name"],
|
||||
"Release Date 2": row["Release Date"],
|
||||
"Release Time 2": row["Release Time"],
|
||||
"Time Difference": time_difference_hours,
|
||||
}
|
||||
merged_releases.append(merged_row)
|
||||
break
|
||||
else:
|
||||
merged_row = {
|
||||
"Repository": repo_name,
|
||||
"Release Tag": "",
|
||||
"Release Date": "",
|
||||
"Release Time": "",
|
||||
"App Version": app_version,
|
||||
"Release Name": row["Release Name"],
|
||||
"Release Date 2": row["Release Date"],
|
||||
"Release Time 2": row["Release Time"],
|
||||
"Time Difference": "",
|
||||
}
|
||||
merged_releases.append(merged_row)
|
||||
|
||||
# Write the merged data to a new CSV file
|
||||
with open(output_csv_file, mode="w", newline="") as file:
|
||||
fieldnames = [
|
||||
"Repository",
|
||||
"Release Tag",
|
||||
"Release Date",
|
||||
"Release Time",
|
||||
"App Version",
|
||||
"Release Name",
|
||||
"Release Date 2",
|
||||
"Release Time 2",
|
||||
"Time Difference",
|
||||
]
|
||||
writer = csv.DictWriter(file, fieldnames=fieldnames)
|
||||
writer.writeheader()
|
||||
for row in merged_releases:
|
||||
writer.writerow(row)
|
||||
|
||||
print(f"Merged data has been written to {output_csv_file}")
|
||||
|
||||
|
||||
# Example usage
|
||||
if __name__ == "__main__":
|
||||
merge_csv_files(
|
||||
"argo_releases.csv", "argo_helm_releases.csv", "merged_releases.csv"
|
||||
)
|
|
@ -0,0 +1,210 @@
|
|||
Repository,Release Tag,Release Date,Release Time,App Version,Release Name,Release Date 2,Release Time 2,Time Difference
|
||||
argo-cd,v2.14.8,2025-03-24,21:36:01,v2.14.8,argo-cd-7.8.14,2025-03-25,00:08:57,2.548888888888889
|
||||
argo-rollouts,v1.8.2,2025-03-21,20:37:43,v1.8.2,argo-rollouts-2.39.3,2025-03-23,12:51:36,40.23138888888889
|
||||
argo-rollouts,v1.8.1,2025-03-20,16:40:33,v1.8.1,argo-rollouts-2.39.2,2025-03-21,07:13:50,14.554722222222223
|
||||
argo-cd,v2.14.7,2025-03-19,17:49:46,v2.14.7,argo-cd-7.8.13,2025-03-19,18:35:57,0.7697222222222222
|
||||
argo-cd,v2.14.6,2025-03-18,14:17:14,v2.14.6,argo-cd-7.8.12,2025-03-18,16:35:25,2.3030555555555554
|
||||
argo-cd,v2.14.5,2025-03-11,03:57:34,v2.14.5,argo-cd-7.8.10,2025-03-11,07:25:23,3.463611111111111
|
||||
argo-rollouts,v1.8.0,2025-01-30,18:24:03,v1.8.0,argo-rollouts-2.39.0,2025-01-31,01:54:56,7.514722222222222
|
||||
argo-events,v1.9.5,2025-01-10,18:11:20,v1.9.5,argo-events-2.4.13,2025-01-11,10:22:47,16.190833333333334
|
||||
argo-workflows,v3.6.5,2025-03-11,08:59:16,v3.6.5,argo-workflows-0.45.11,2025-03-11,11:52:08,2.881111111111111
|
||||
argo-cd,v2.14.4,2025-03-04,21:39:08,v2.14.4,argo-cd-7.8.8,2025-03-05,00:15:58,2.613888888888889
|
||||
argo-workflows,v3.6.4,2025-02-10,12:56:26,v3.6.4,argo-workflows-0.45.6,2025-02-10,14:30:33,1.5686111111111112
|
||||
argo-cd,v2.14.3,2025-02-28,19:39:18,v2.14.3,argo-cd-7.8.6,2025-02-28,21:33:58,1.9111111111111112
|
||||
argo-cd,v2.14.2,2025-02-06,00:23:26,v2.14.2,argo-cd-7.8.1,2025-02-06,10:07:58,9.742222222222223
|
||||
argo-workflows,v3.6.3,2025-02-07,15:02:18,v3.6.3,argo-workflows-0.45.5,2025-02-08,05:59:05,14.946388888888889
|
||||
argo-cd,v2.14.1,2025-02-03,22:02:42,v2.14.1,argo-cd-7.8.0,2025-02-04,11:26:11,13.391388888888889
|
||||
argo-cd,v2.13.4,2025-01-29,21:30:00,v2.13.4,argo-cd-7.7.22,2025-01-29,22:47:19,1.2886111111111112
|
||||
argo-cd,v2.13.3,2025-01-03,19:23:42,v2.13.3,argo-cd-7.7.13,2025-01-04,00:07:55,4.736944444444444
|
||||
argo-workflows,v3.6.2,2024-12-02,14:12:44,v3.6.2,argo-workflows-0.45.1,2024-12-02,17:39:46,3.4505555555555554
|
||||
argo-events,v1.9.4,2025-01-08,07:48:18,v1.9.4,argo-events-2.4.12,2025-01-08,08:37:01,0.8119444444444445
|
||||
argo-events,v1.9.3,2024-11-27,06:51:10,v1.9.3,argo-events-2.4.9,2024-11-27,20:44:06,13.882222222222222
|
||||
argo-rollouts,v1.7.2,2024-08-13,18:42:47,v1.7.2,argo-rollouts-2.37.5,2024-08-14,08:31:31,13.812222222222223
|
||||
argo-cd,v2.13.2,2024-12-11,19:18:46,v2.13.2,argo-cd-7.7.10,2024-12-12,05:33:28,10.245
|
||||
argo-cd,v2.13.1,2024-11-20,17:11:22,v2.13.1,argo-cd-7.7.4,2024-11-20,20:48:11,3.613611111111111
|
||||
argo-workflows,v3.6.0,2024-11-14,19:02:01,v3.6.0,argo-workflows-0.43.0,2024-11-21,08:27:21,157.42222222222222
|
||||
argo-cd,v2.13.0,2024-11-04,12:46:49,v2.13.0,argo-cd-7.7.0,2024-11-05,00:00:06,11.221388888888889
|
||||
argo-workflows,v3.5.12,2024-10-30,11:49:27,v3.5.12,argo-workflows-0.42.6,2024-10-30,13:24:53,1.5905555555555555
|
||||
argo-cd,v2.12.6,2024-10-18,19:07:18,v2.12.6,argo-cd-7.6.12,2024-10-18,19:27:20,0.3338888888888889
|
||||
argo-cd,v2.12.5,2024-10-17,22:03:45,v2.12.5,argo-cd-7.6.11,2024-10-18,07:16:30,9.2125
|
||||
argo-cd,v2.12.4,2024-09-26,07:14:39,v2.12.4,argo-cd-7.6.5,2024-09-26,07:42:42,0.4675
|
||||
argo-workflows,v3.5.11,2024-09-20,14:08:00,v3.5.11,argo-workflows-0.42.3,2024-09-20,15:08:40,1.011111111111111
|
||||
argo-cd,v2.12.3,2024-08-27,12:33:34,v2.12.3,argo-cd-7.4.7,2024-08-27,13:30:34,0.95
|
||||
argo-events,v1.9.2,2024-06-14,00:38:39,v1.9.2,argo-events-2.4.6,2024-06-14,05:09:08,4.508055555555556
|
||||
argo-workflows,v3.5.10,2024-08-01,06:03:16,v3.5.10,argo-workflows-0.41.13,2024-08-01,07:19:01,1.2625
|
||||
argo-cd,v2.12.2,2024-08-23,04:05:09,v2.12.2,argo-cd-7.4.5,2024-08-23,08:51:19,4.769444444444445
|
||||
argo-cd,v2.12.1,2024-08-16,17:16:36,v2.12.1,argo-cd-7.4.4,2024-08-16,21:36:53,4.338055555555556
|
||||
argo-rollouts,v1.7.1,2024-06-25,01:38:31,v1.7.1,argo-rollouts-2.37.0,2024-06-26,09:10:19,31.53
|
||||
argo-cd,v2.12.0,2024-08-05,14:02:15,v2.12.0,argo-cd-7.4.0,2024-08-05,15:22:06,1.3308333333333333
|
||||
argo-workflows,v3.5.9,2024-07-30,06:58:49,v3.5.9,argo-workflows-0.41.12,2024-07-30,07:39:23,0.6761111111111111
|
||||
argo-cd,v2.11.7,2024-07-24,10:27:18,v2.11.7,argo-cd-7.3.11,2024-07-24,11:44:52,1.2927777777777778
|
||||
argo-cd,v2.11.6,2024-07-22,15:19:04,v2.11.6,argo-cd-7.3.10,2024-07-22,17:14:41,1.9269444444444443
|
||||
argo-cd,v2.11.5,2024-07-15,18:32:15,v2.11.5,argo-cd-7.3.7,2024-07-16,01:17:05,6.747222222222222
|
||||
argo-cd,v2.11.4,2024-07-02,19:52:42,v2.11.4,argo-cd-7.3.4,2024-07-02,20:43:46,0.8511111111111112
|
||||
argo-cd,v2.11.3,2024-06-06,09:43:29,v2.11.3,argo-cd-7.1.2,2024-06-06,10:51:51,1.1394444444444445
|
||||
argo-rollouts,v1.7.0,2024-06-13,20:23:14,v1.7.0,argo-rollouts-2.36.0,2024-06-14,09:00:46,12.625555555555556
|
||||
argo-workflows,v3.5.8,2024-06-18,04:52:31,v3.5.8,argo-workflows-0.41.10,2024-06-18,07:47:04,2.9091666666666667
|
||||
argo-workflows,v3.5.7,2024-05-27,07:13:30,v3.5.7,argo-workflows-0.41.7,2024-05-27,08:09:42,0.9366666666666666
|
||||
argo-cd,v2.11.2,2024-05-23,14:14:51,v2.11.2,argo-cd-6.11.1,2024-05-23,15:37:21,1.375
|
||||
argo-events,v1.9.1,2024-02-13,21:21:44,v1.9.1,argo-events-2.4.3,2024-02-14,08:53:00,11.52111111111111
|
||||
argo-rollouts,v1.6.6,2024-02-13,15:56:59,v1.6.6,argo-rollouts-2.34.3,2024-02-14,08:50:21,16.889444444444443
|
||||
argo-cd,v2.11.1,2024-05-21,15:03:58,v2.11.1,argo-cd-6.10.0,2024-05-21,16:36:49,1.5475
|
||||
argo-workflows,v3.5.6,2024-04-19,21:43:07,v3.5.6,argo-workflows-0.41.2,2024-04-20,04:55:21,7.203888888888889
|
||||
argo-cd,v2.11.0,2024-05-07,16:37:25,v2.11.0,argo-cd-6.8.0,2024-05-08,06:21:31,13.735
|
||||
argo-cd,v2.10.9,2024-04-30,16:55:10,v2.10.9,argo-cd-6.7.18,2024-04-30,17:14:22,0.32
|
||||
argo-cd,v2.10.8,2024-04-26,14:04:02,v2.10.8,argo-cd-6.7.16,2024-04-26,14:21:35,0.2925
|
||||
argo-cd,v2.10.7,2024-04-15,09:21:23,v2.10.7,argo-cd-6.7.12,2024-04-15,10:43:13,1.363888888888889
|
||||
argo-cd,v2.10.6,2024-04-05,01:04:01,v2.10.6,argo-cd-6.7.10,2024-04-05,05:00:08,3.935277777777778
|
||||
argo-cd,v2.10.5,2024-03-28,16:29:02,v2.10.5,argo-cd-6.7.4,2024-03-28,17:30:11,1.0191666666666668
|
||||
argo-workflows,v3.5.5,2024-02-29,21:47:50,v3.5.5,argo-workflows-0.40.12,2024-03-01,00:03:01,2.2530555555555556
|
||||
argo-cd,v2.10.4,2024-03-18,08:44:51,v2.10.4,argo-cd-6.7.3,2024-03-18,09:36:58,0.8686111111111111
|
||||
argo-cd,v2.10.3,2024-03-13,19:53:05,v2.10.3,argo-cd-6.7.2,2024-03-13,20:46:14,0.8858333333333334
|
||||
argo-cd,v2.10.2,2024-03-01,22:03:43,v2.10.2,argo-cd-6.5.1,2024-03-01,22:33:17,0.49277777777777776
|
||||
argo-cd,v2.10.1,2024-02-14,18:12:43,v2.10.1,argo-cd-6.0.14,2024-02-14,21:04:43,2.8666666666666667
|
||||
argo-workflows,v3.5.4,2024-01-14,06:19:09,v3.5.4,argo-workflows-0.40.6,2024-01-14,08:11:19,1.8694444444444445
|
||||
argo-cd,v2.10.0,2024-02-06,15:03:51,v2.10.0,argo-cd-5.55.0,2024-02-07,07:10:30,16.110833333333332
|
||||
argo-cd,v2.9.6,2024-02-02,19:51:46,v2.9.6,argo-cd-5.53.13,2024-02-02,22:50:34,2.98
|
||||
argo-cd,v2.9.5,2024-01-19,18:32:02,v2.9.5,argo-cd-5.53.2,2024-01-19,20:20:14,1.8033333333333332
|
||||
argo-rollouts,v1.6.5,2024-01-25,20:19:53,v1.6.5,argo-rollouts-2.34.2,2024-01-26,06:31:27,10.192777777777778
|
||||
argo-cd,v2.9.4,2024-01-18,21:24:02,v2.9.4,argo-cd-5.53.1,2024-01-19,05:48:47,8.4125
|
||||
argo-cd,v2.9.3,2023-12-01,23:39:19,v2.9.3,argo-cd-5.51.6,2023-12-02,11:03:49,11.408333333333333
|
||||
argo-workflows,v3.5.3,2024-01-11,03:12:46,v3.5.3,argo-workflows-0.40.5,2024-01-11,07:20:47,4.133611111111111
|
||||
argo-events,v1.9.0,2024-01-09,08:31:10,v1.9.0,argo-events-2.4.2,2024-01-09,10:14:30,1.7222222222222223
|
||||
argo-rollouts,v1.6.4,2023-12-11,21:54:30,v1.6.4,argo-rollouts-2.32.8,2023-12-13,06:59:39,33.08583333333333
|
||||
argo-workflows,v3.5.2,2023-11-27,19:16:42,v3.5.2,argo-workflows-0.39.5,2023-11-27,21:13:09,1.9408333333333334
|
||||
argo-rollouts,v1.6.3,2023-12-05,14:36:31,v1.6.3,argo-rollouts-2.32.7,2023-12-08,15:06:58,72.5075
|
||||
argo-rollouts,v1.6.2,2023-11-02,19:58:08,v1.6.2,argo-rollouts-2.32.4,2023-11-15,13:09:53,305.1958333333333
|
||||
argo-cd,v2.9.2,2023-11-20,17:52:41,v2.9.2,argo-cd-5.51.4,2023-11-20,18:50:04,0.9563888888888888
|
||||
argo-workflows,v3.5.1,2023-11-03,19:57:45,v3.5.1,argo-workflows-0.38.0,2023-11-04,05:58:06,10.005833333333333
|
||||
argo-cd,v2.9.1,2023-11-14,15:55:51,v2.9.1,argo-cd-5.51.2,2023-11-15,05:59:33,14.061666666666667
|
||||
argo-rollouts,v1.6.1,2023-11-01,21:19:43,v1.6.1,argo-rollouts-2.32.3,2023-11-15,10:00:45,324.6838888888889
|
||||
argo-cd,v2.9.0,2023-11-06,05:27:12,v2.9.0,argo-cd-5.51.0,2023-11-06,12:54:52,7.461111111111111
|
||||
argo-workflows,v3.5.0,2023-10-13,15:00:44,v3.5.0,argo-workflows-0.35.0,2023-10-13,22:07:38,7.115
|
||||
argo-cd,v2.8.6,2023-11-01,17:29:59,v2.8.6,argo-cd-5.50.0,2023-10-31,18:12:30,-23.29138888888889
|
||||
argo-rollouts,v1.6.0,2023-09-06,19:00:06,v1.6.0,argo-rollouts-2.32.0,2023-09-07,12:23:50,17.395555555555557
|
||||
argo-cd,v2.8.5,2023-10-31,19:30:03,v2.8.5,argo-cd-5.48.0,2023-10-28,07:29:05,-84.01611111111112
|
||||
argo-cd,v2.8.4,2023-09-13,20:08:07,v2.8.4,argo-cd-5.46.3,2023-09-14,04:56:22,8.804166666666667
|
||||
argo-workflows,v3.4.11,2023-09-08,01:14:16,v3.4.11,argo-workflows-0.33.2,2023-09-08,04:20:30,3.1038888888888887
|
||||
argo-cd,v2.8.3,2023-09-07,18:06:07,v2.8.3,argo-cd-5.45.3,2023-09-08,00:13:52,6.129166666666666
|
||||
argo-cd,v2.8.2,2023-08-24,21:05:33,v2.8.2,argo-cd-5.43.6,2023-08-25,08:46:11,11.677222222222222
|
||||
argo-events,v1.8.1,2023-08-31,23:49:47,v1.8.1,argo-events-2.4.1,2023-09-04,01:15:35,73.43
|
||||
argo-cd,v2.8.1,2023-08-22,21:19:28,v2.8.1,argo-cd-5.43.5,2023-08-23,03:57:35,6.635277777777778
|
||||
argo-workflows,v3.4.10,2023-08-15,18:59:38,v3.4.10,argo-workflows-0.32.3,2023-08-16,11:00:55,16.02138888888889
|
||||
argo-rollouts,v1.5.1,2023-05-24,19:26:51,v1.5.1,argo-rollouts-2.31.1,2023-07-20,17:26:45,1365.9983333333332
|
||||
argo-cd,v2.8.0,2023-08-07,20:03:46,v2.8.0,argo-cd-5.43.0,2023-08-08,14:36:04,18.538333333333334
|
||||
argo-workflows,v3.4.9,2023-07-20,15:28:41,v3.4.9,argo-workflows-0.32.0,2023-07-20,23:20:17,7.86
|
||||
argo-cd,v2.7.11,2023-08-07,20:07:16,v2.7.11,argo-cd-5.42.3,2023-08-08,06:11:54,10.077222222222222
|
||||
argo-cd,v2.7.10,2023-07-31,22:51:19,v2.7.10,argo-cd-5.42.1,2023-08-01,05:57:37,7.105
|
||||
argo-cd,v2.7.9,2023-07-24,18:50:30,v2.7.9,argo-cd-5.41.2,2023-07-25,02:10:03,7.325833333333334
|
||||
argo-cd,v2.7.8,2023-07-19,15:58:13,v2.7.8,argo-cd-5.41.1,2023-07-19,22:26:30,6.471388888888889
|
||||
argo-cd,v2.7.7,2023-07-05,20:25:54,v2.7.7,argo-cd-5.37.1,2023-07-06,08:26:09,12.004166666666666
|
||||
argo-workflows,v3.4.8,2023-05-25,23:37:40,v3.4.8,argo-workflows-0.28.2,2023-05-26,04:19:27,4.6963888888888885
|
||||
argo-cd,v2.7.6,2023-06-20,21:46:46,v2.7.6,argo-cd-5.36.5,2023-06-21,04:27:57,6.686388888888889
|
||||
argo-events,v1.8.0,2023-05-08,05:54:59,v1.8.0,argo-events-2.4.0,2023-06-21,12:41:55,1062.7822222222221
|
||||
argo-cd,v2.7.5,2023-06-16,15:24:00,v2.7.5,argo-cd-5.36.2,2023-06-17,04:55:38,13.527222222222223
|
||||
argo-cd,v2.7.4,2023-06-05,19:40:08,v2.7.4,argo-cd-5.35.1,2023-06-06,04:53:38,9.225
|
||||
argo-cd,v2.7.3,2023-05-24,16:14:02,v2.7.3,argo-cd-5.34.5,2023-05-24,23:23:36,7.1594444444444445
|
||||
argo-rollouts,v1.5.0,2023-05-08,15:34:06,v1.5.0,argo-rollouts-2.28.0,2023-05-10,15:37:42,48.06
|
||||
argo-workflows,v3.4.7,2023-04-11,17:26:32,v3.4.7,argo-workflows-0.23.2,2023-04-12,04:52:48,11.437777777777777
|
||||
argo-cd,v2.7.2,2023-05-12,14:41:07,v2.7.2,argo-cd-5.33.2,2023-05-12,15:19:23,0.6377777777777778
|
||||
argo-cd,v2.7.1,2023-05-02,17:24:44,v2.7.1,argo-cd-5.31.1,2023-05-03,09:48:25,16.39472222222222
|
||||
argo-events,v1.7.6,2023-02-10,07:30:54,v1.7.6,argo-events-2.1.3,2023-02-21,01:14:54,257.73333333333335
|
||||
argo-rollouts,v1.4.1,2023-02-25,15:23:34,v1.4.1,argo-rollouts-2.22.3,2023-03-02,15:08:16,119.745
|
||||
argo-cd,v2.7.0,2023-05-02,00:51:25,v2.7.0,argo-cd-5.30.0,2023-05-02,07:29:11,6.629444444444444
|
||||
argo-cd,v2.6.7,2023-03-23,15:45:09,v2.6.7,argo-cd-5.27.2,2023-03-24,00:09:05,8.398888888888889
|
||||
argo-workflows,v3.4.6,2023-03-31,20:16:18,v3.4.6,argo-workflows-0.22.16,2023-04-04,11:10:35,86.90472222222222
|
||||
argo-workflows,v3.4.5,2023-02-07,13:26:29,v3.4.5,argo-workflows-0.22.10,2023-02-07,15:11:29,1.75
|
||||
argo-cd,v2.6.6,2023-03-16,23:07:31,v2.6.6,argo-cd-5.27.1,2023-03-17,08:25:05,9.292777777777777
|
||||
argo-cd,v2.6.5,2023-03-14,14:59:49,v2.6.5,argo-cd-5.26.1,2023-03-14,18:42:39,3.713888888888889
|
||||
argo-cd,v2.6.4,2023-03-07,23:29:08,v2.6.4,argo-cd-5.24.2,2023-03-08,07:13:22,7.737222222222222
|
||||
argo-cd,v2.6.3,2023-02-27,15:20:04,v2.6.3,argo-cd-5.23.3,2023-02-28,08:32:15,17.203055555555554
|
||||
argo-cd,v2.6.2,2023-02-16,15:43:42,v2.6.2,argo-cd-5.21.1,2023-02-17,08:23:54,16.67
|
||||
argo-cd,v2.6.1,2023-02-08,19:39:04,v2.6.1,argo-cd-5.20.3,2023-02-08,20:15:43,0.6108333333333333
|
||||
argo-cd,v2.6.0,2023-02-06,22:04:33,v2.6.0,argo-cd-5.20.0,2023-02-07,15:02:47,16.970555555555556
|
||||
argo-cd,v2.5.10,2023-02-02,15:48:00,v2.5.10,argo-cd-5.19.14,2023-02-02,21:56:38,6.143888888888889
|
||||
argo-cd,v2.5.9,2023-01-28,00:04:28,v2.5.9,argo-cd-5.19.11,2023-01-28,13:41:15,13.613055555555556
|
||||
argo-workflows,v3.4.4,2022-11-29,21:15:21,v3.4.4,argo-workflows-0.20.12,2022-11-30,15:26:09,18.18
|
||||
argo-rollouts,v1.4.0,2023-01-09,21:43:34,v1.4.0,argo-rollouts-2.22.0,2023-01-19,21:14:27,239.51472222222222
|
||||
argo-events,v1.7.5,2023-01-23,08:23:36,v1.7.5,argo-events-2.1.1,2023-01-29,12:16:37,147.88361111111112
|
||||
argo-cd,v2.5.8,2023-01-25,17:05:03,v2.5.8,argo-cd-5.19.7,2023-01-26,08:23:02,15.299722222222222
|
||||
argo-events,v1.7.4,2022-12-12,07:45:11,v1.7.4,argo-events-2.0.10,2022-12-24,19:41:24,299.93694444444446
|
||||
argo-cd,v2.5.7,2023-01-18,03:00:02,v2.5.7,argo-cd-5.17.2,2023-01-18,06:44:45,3.745277777777778
|
||||
argo-rollouts,v1.3.1,2022-09-29,17:43:19,v1.3.1,argo-rollouts-2.21.1,2022-09-30,22:29:28,28.769166666666667
|
||||
argo-cd,v2.5.6,2023-01-10,20:14:18,v2.5.6,argo-cd-5.17.1,2023-01-11,06:33:59,10.328055555555556
|
||||
argo-cd,v2.5.5,2022-12-16,16:53:08,v2.5.5,argo-cd-5.16.7,2022-12-17,11:36:17,18.719166666666666
|
||||
argo-events,v1.7.3,2022-09-28,22:10:34,v1.7.3,argo-events-2.0.6,2022-09-29,15:55:01,17.740833333333335
|
||||
argo-cd,v2.5.4,2022-12-06,20:26:51,v2.5.4,argo-cd-5.16.2,2022-12-07,07:41:56,11.251388888888888
|
||||
argo-cd,v2.5.3,2022-11-28,17:28:00,v2.5.3,argo-cd-5.14.3,2022-11-28,22:10:18,4.705
|
||||
argo-workflows,v3.4.3,2022-10-31,09:17:41,v3.4.3,argo-workflows-0.20.6,2022-11-01,09:26:43,24.150555555555556
|
||||
argo-cd,v2.5.2,2022-11-07,17:23:44,v2.5.2,argo-cd-5.13.6,2022-11-08,16:04:52,22.685555555555556
|
||||
argo-cd,v2.5.1,2022-11-01,21:53:59,v2.5.1,argo-cd-5.13.1,2022-11-02,07:31:33,9.626111111111111
|
||||
argo-cd,v2.5.0,2022-10-25,15:32:28,v2.5.0,argo-cd-5.8.0,2022-10-25,21:22:42,5.8372222222222225
|
||||
argo-workflows,v3.4.2,2022-10-23,07:36:55,v3.4.2,argo-workflows-0.20.3,2022-10-24,05:53:54,22.283055555555556
|
||||
argo-cd,v2.4.15,2022-10-17,21:17:43,v2.4.15,argo-cd-5.6.1,2022-10-20,11:23:48,62.10138888888889
|
||||
argo-workflows,v3.4.1,2022-10-01,16:09:34,v3.4.1,argo-workflows-0.20.1,2022-10-02,09:28:15,17.31138888888889
|
||||
argo-cd,v2.4.14,2022-10-05,17:53:31,v2.4.14,argo-cd-5.5.10,2022-10-06,21:05:05,27.192777777777778
|
||||
argo-cd,v2.4.13,2022-10-03,21:38:39,v2.4.13,argo-cd-5.5.8,2022-10-04,00:58:31,3.331111111111111
|
||||
argo-cd,v2.4.12,2022-09-16,01:33:23,v2.4.12,argo-cd-5.4.4,2022-09-16,08:58:43,7.4222222222222225
|
||||
argo-rollouts,v1.3.0,2022-09-19,03:29:00,v1.3.0,argo-rollouts-2.21.0,2022-09-29,06:43:50,243.24722222222223
|
||||
argo-workflows,v3.4.0,2022-09-19,05:23:46,v3.4.0,argo-workflows-0.18.0,2022-09-19,16:10:42,10.782222222222222
|
||||
argo-events,v1.7.2,2022-09-12,23:46:11,v1.7.2,argo-events-2.0.5,2022-09-20,11:55:01,180.1472222222222
|
||||
argo-cd,v2.4.11,2022-08-22,09:52:10,v2.4.11,argo-cd-4.10.9,2022-08-22,14:04:30,4.205555555555556
|
||||
argo-workflows,v3.3.9,2022-08-10,01:08:09,v3.3.9,argo-workflows-0.16.9,2022-08-10,11:43:41,10.592222222222222
|
||||
argo-rollouts,v1.2.2,2022-07-26,17:49:31,v1.2.2,argo-rollouts-2.19.2,2022-08-26,09:03:17,735.2294444444444
|
||||
argo-events,v1.7.1,2022-06-09,06:27:31,v1.7.1,argo-events-2.0.2,2022-07-04,09:50:24,603.3813888888889
|
||||
argo-rollouts,v1.2.0,2022-03-22,17:16:13,v1.2.0,argo-rollouts-2.12.0,2022-03-23,21:12:12,27.933055555555555
|
||||
argo-cd,v2.4.10,2022-08-17,21:44:09,v2.4.10,argo-cd-4.10.7,2022-08-18,00:28:21,2.736666666666667
|
||||
argo-cd,v2.4.9,2022-08-11,15:59:47,v2.4.9,argo-cd-4.10.6,2022-08-11,20:43:51,4.734444444444445
|
||||
argo-cd,v2.4.8,2022-07-29,17:38:38,v2.4.8,argo-cd-4.10.4,2022-08-01,13:49:17,68.1775
|
||||
argo-cd,v2.4.7,2022-07-18,21:54:21,v2.4.7,argo-cd-4.9.15,2022-07-19,06:25:53,8.525555555555556
|
||||
argo-workflows,v3.3.8,2022-06-24,01:18:03,v3.3.8,argo-workflows-0.16.6,2022-06-24,05:47:50,4.496388888888889
|
||||
argo-cd,v2.4.6,2022-07-12,23:14:34,v2.4.6,argo-cd-4.9.13,2022-07-13,20:43:07,21.475833333333334
|
||||
argo-cd,v2.4.4,2022-07-07,07:59:34,v2.4.4,argo-cd-4.9.12,2022-07-07,16:46:25,8.780833333333334
|
||||
argo-cd,v2.4.3,2022-06-27,21:39:15,v2.4.3,argo-cd-4.9.9,2022-06-28,13:20:49,15.692777777777778
|
||||
argo-events,v1.7.0,2022-05-04,22:47:01,v1.7.0,argo-events-2.0.0,2022-06-14,15:38:27,976.8572222222223
|
||||
argo-cd,v2.4.2,2022-06-21,21:19:40,v2.4.2,argo-cd-4.9.5,2022-06-23,05:50:20,32.51111111111111
|
||||
argo-workflows,v3.3.7,2022-06-21,00:41:49,v3.3.7,argo-workflows-0.16.5,2022-06-23,16:01:09,63.32222222222222
|
||||
argo-workflows,v3.3.6,2022-05-26,01:22:39,v3.3.6,argo-workflows-0.16.1,2022-05-26,11:20:50,9.969722222222222
|
||||
argo-cd,v2.4.0,2022-06-10,17:59:33,v2.4.0,argo-cd-4.9.0,2022-06-14,10:10:37,88.18444444444444
|
||||
argo-cd,v2.3.4,2022-05-18,13:14:17,v2.3.4,argo-cd-4.6.2,2022-05-19,17:54:21,28.66777777777778
|
||||
argo-workflows,v3.3.5,2022-05-04,01:13:34,v3.3.5,argo-workflows-0.15.2,2022-05-20,21:14:27,404.01472222222225
|
||||
argo-workflows,v3.3.2,2022-04-20,23:16:10,v3.3.2,argo-workflows-0.14.0,2022-04-22,07:09:42,31.892222222222223
|
||||
argo-cd,v2.3.3,2022-03-30,01:55:37,v2.3.3,argo-cd-4.3.1,2022-03-30,13:40:17,11.744444444444444
|
||||
argo-events,v1.6.0,2022-02-13,06:42:27,v1.6.0,argo-events-1.11.0,2022-02-20,18:31:57,179.825
|
||||
argo-cd,v2.3.2,2022-03-23,02:12:12,v2.3.2,argo-cd-4.2.2,2022-03-23,09:53:45,7.6925
|
||||
argo-workflows,v3.2.9,2022-03-02,23:04:35,v3.2.9,argo-workflows-0.11.2,2022-03-05,08:51:50,57.7875
|
||||
argo-cd,v2.3.1,2022-03-11,00:07:41,v2.3.1,argo-cd-4.0.0,2022-03-16,21:02:33,140.91444444444446
|
||||
argo-rollouts,v1.1.1,2021-11-29,21:44:13,v1.1.1,argo-rollouts-2.8.1,2022-01-10,18:21:14,1004.6169444444445
|
||||
argo-cd,v2.2.5,2022-02-05,01:42:13,v2.2.5,argo-cd-3.33.4,2022-02-05,12:55:15,11.217222222222222
|
||||
argo-workflows,v3.2.7,2022-01-28,02:28:31,v3.2.7,argo-workflows-0.10.1,2022-02-09,23:06:55,308.64
|
||||
argo-cd,v2.2.4,2022-02-03,20:50:43,v2.2.4,argo-cd-3.33.3,2022-02-04,09:19:44,12.483611111111111
|
||||
argo-cd,v2.2.3,2022-01-18,18:03:37,v2.2.3,argo-cd-3.32.0,2022-01-26,15:14:35,189.18277777777777
|
||||
argo-workflows,v3.2.6,2021-12-17,21:12:28,v3.2.6,argo-workflows-0.9.4,2021-12-20,11:00:00,61.79222222222222
|
||||
argo-events,v1.5.6,2022-01-12,05:18:08,v1.5.6,argo-events-1.10.1,2022-01-18,22:20:08,161.03333333333333
|
||||
argo-cd,v2.2.2,2022-01-01,06:38:42,v2.2.2,argo-cd-3.29.5,2022-01-04,10:16:28,75.62944444444445
|
||||
argo-events,v1.5.0,2021-10-12,18:48:33,v1.5.0,argo-events-1.8.0,2021-10-27,15:13:58,356.4236111111111
|
||||
argo-rollouts,v1.1.0,2021-10-12,17:02:30,v1.1.0,argo-rollouts-2.2.0,2021-10-14,14:58:28,45.93277777777778
|
||||
argo-cd,v2.2.1,2021-12-17,01:41:25,v2.2.1,argo-cd-3.29.1,2021-12-17,10:06:18,8.414722222222222
|
||||
argo-cd,v2.2.0,2021-12-14,18:19:23,v2.2.0,argo-cd-3.29.0,2021-12-15,10:15:30,15.935277777777777
|
||||
argo-cd,v2.1.7,2021-11-17,22:18:58,v2.1.7,argo-cd-3.26.10,2021-11-21,12:48:45,86.49638888888889
|
||||
argo-workflows,v3.2.4,2021-11-18,00:41:27,v3.2.4,argo-workflows-0.8.3,2021-11-21,18:59:21,90.29833333333333
|
||||
argo-workflows,v3.2.0,2021-10-12,16:28:36,v3.2.0,argo-workflows-0.7.3,2021-10-15,10:22:13,65.89361111111111
|
||||
argo-cd,v2.1.6,2021-10-28,20:08:23,v2.1.6,argo-cd-3.26.4,2021-10-31,11:57:25,63.81722222222222
|
||||
argo-cd,v2.1.5,2021-10-20,15:25:12,v2.1.5,argo-cd-3.26.3,2021-10-21,20:56:35,29.523055555555555
|
||||
argo-cd,,,,2.1.4,argo-cd-3.26.1,2021-10-20,06:32:59,
|
||||
argo-cd,,,,2.1.3,argo-cd-3.23.1,2021-10-06,15:28:20,
|
||||
argo-workflows,v3.1.8,2021-08-19,00:19:56,v3.1.8,argo-workflows-0.4.2,2021-08-23,11:13:42,106.89611111111111
|
||||
argo-cd,,,,2.1.2,argo-cd-3.17.6,2021-09-02,21:59:12,
|
||||
argo-rollouts,v1.0.2,2021-06-15,22:33:04,v1.0.2,argo-rollouts-1.0.2,2021-07-07,15:18:22,520.755
|
||||
argo-cd,,,,2.1.1,argo-cd-3.17.2,2021-08-26,14:22:27,
|
||||
argo-cd,,,,2.1.0,argo-cd-3.13.0,2021-08-23,12:14:11,
|
||||
argo-workflows,v3.1.5,2021-08-04,07:14:30,v3.1.5,argo-workflows-0.4.0,2021-08-17,07:31:04,312.2761111111111
|
||||
argo-cd,,,,2.0.5,argo-cd-3.10.1,2021-07-27,01:33:24,
|
||||
argo-workflows,v3.0.7,2021-05-25,19:08:55,v3.0.7,argo-workflows-0.2.6,2021-06-25,06:16:05,731.1194444444444
|
||||
argo-events,,,,1.3.1,argo-events-1.4.2,2021-05-21,16:00:05,
|
||||
argo-cd,,,,2.0.4,argo-cd-3.6.11,2021-06-29,08:49:22,
|
||||
argo-cd,,,,2.0.3,argo-cd-3.6.3,2021-05-29,08:42:00,
|
||||
argo-workflows,v3.0.2,2021-04-20,15:37:15,v3.0.2,argo-workflows-0.1.1,2021-05-21,16:00:07,744.3811111111111
|
||||
argo-rollouts,v1.0.1,2021-05-26,08:43:12,v1.0.1,argo-rollouts-1.0.0,2021-05-31,16:06:49,127.39361111111111
|
||||
argo-rollouts,,,,0.10.2,argo-rollouts-0.5.3,2021-05-21,16:00:06,
|
||||
argo-cd,,,,2.0.1,argo-cd-3.4.1,2021-05-21,16:00:04,
|
|
|
@ -0,0 +1,58 @@
|
|||
import csv
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
from packaging import version
|
||||
|
||||
|
||||
def plot_time_difference(csv_file):
|
||||
# Read the CSV file and process the data
|
||||
data = {"argo-cd": [], "argo-events": [], "argo-workflows": [], "argo-rollouts": []}
|
||||
release_tags = {
|
||||
"argo-cd": [],
|
||||
"argo-events": [],
|
||||
"argo-workflows": [],
|
||||
"argo-rollouts": [],
|
||||
}
|
||||
with open(csv_file, mode="r") as file:
|
||||
reader = csv.DictReader(file)
|
||||
for row in reader:
|
||||
repo = row["Repository"]
|
||||
time_diff_str = row["Time Difference"]
|
||||
release_tag = row["Release Tag"]
|
||||
if repo in data and time_diff_str:
|
||||
time_diff = float(time_diff_str)
|
||||
data[repo].append(time_diff)
|
||||
release_tags[repo].append(release_tag)
|
||||
|
||||
# Sort the release tags based on semantic versioning
|
||||
for repo in release_tags:
|
||||
sorted_indices = sorted(
|
||||
range(len(release_tags[repo])),
|
||||
key=lambda i: version.parse(release_tags[repo][i]),
|
||||
)
|
||||
release_tags[repo] = [release_tags[repo][i] for i in sorted_indices]
|
||||
data[repo] = [data[repo][i] for i in sorted_indices]
|
||||
|
||||
# Plot the data
|
||||
for repo, time_diffs in data.items():
|
||||
plt.figure(figsize=(10, 6))
|
||||
plt.plot(release_tags[repo], time_diffs, marker="o", label=repo)
|
||||
plt.axhline(y=72, color="r", linestyle="--", label="SLA (72 hours)")
|
||||
plt.xlabel("Upstream Release Tag")
|
||||
plt.ylabel(
|
||||
"Time difference between upstream release and Helm Chart release (hours)"
|
||||
)
|
||||
plt.title(f"Time to Release Helm Chart for {repo}")
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.xticks(rotation=45)
|
||||
plt.tight_layout()
|
||||
plt.savefig(f"time_difference_plot_{repo}.png")
|
||||
plt.close()
|
||||
|
||||
print("The plots have been saved as 'time_difference_plot_<repo>.png'")
|
||||
|
||||
|
||||
# Example usage
|
||||
if __name__ == "__main__":
|
||||
plot_time_difference("merged_releases.csv")
|
|
@ -0,0 +1,2 @@
|
|||
requests
|
||||
matplotlib
|
Binary file not shown.
After Width: | Height: | Size: 84 KiB |
Binary file not shown.
After Width: | Height: | Size: 67 KiB |
Binary file not shown.
After Width: | Height: | Size: 74 KiB |
Binary file not shown.
After Width: | Height: | Size: 68 KiB |
Loading…
Reference in New Issue