diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 5db1fbc3..168f8edb 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -11,6 +11,23 @@ body: validations: required: true +- type: dropdown + attributes: + label: Related helm chart + description: You may select more than one. + multiple: true + options: + - argo-cd + - argo-events + - argo-rollouts + - argo-workflows + - argocd-applicationset + - argocd-image-updater + - argocd-notifications + - other + validations: + required: true + - type: textarea attributes: label: To Reproduce diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index 2ff5ab68..2fa38441 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -13,6 +13,23 @@ body: validations: required: false +- type: dropdown + attributes: + label: Related helm chart + description: You may select more than one. + multiple: true + options: + - argo-cd + - argo-events + - argo-rollouts + - argo-workflows + - argocd-applicationset + - argocd-image-updater + - argocd-notifications + - other + validations: + required: true + - type: textarea attributes: label: Describe the solution you'd like diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 03965cc5..5947dfc3 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -7,7 +7,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v3 + - uses: actions/stale@v4 with: repo-token: ${{ secrets.GITHUB_TOKEN }} # Number of days of inactivity before an issue becomes stale diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 30488923..a68ababd 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 appVersion: 2.1.2 description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 3.19.0 +version: 3.22.1 home: https://github.com/argoproj/argo-helm icon: https://argoproj.github.io/argo-cd/assets/logo.png keywords: @@ -21,4 +21,4 @@ dependencies: condition: redis-ha.enabled annotations: artifacthub.io/changes: | - - "[Added]: Add support for topologySpreadConstraints" + - "[Fixed]: repoServer.extraContainers unused" diff --git a/charts/argo-cd/README.md b/charts/argo-cd/README.md index 5e1459a2..95a938dc 100644 --- a/charts/argo-cd/README.md +++ b/charts/argo-cd/README.md @@ -175,6 +175,8 @@ NAME: my-release | configs.secret.extra | add additional secrets to be added to argocd-secret | `{}` | | configs.styles | Define custom CSS styles for your argo instance ([Read More](https://argo-cd.readthedocs.io/en/stable/operator-manual/custom-styles/)). This Settings will automatically mount the provided css and reference it in the argo configuration. | `""` (See [values.yaml](values.yaml)) | | openshift.enabled | enables using arbitrary uid for argo repo server | `false` | +| server.additionalApplications | Deploy ArgoCD Applications within this helm release | `[]` (See [values.yaml](values.yaml)) | +| server.additionalProjects | Deploy ArgoCD Projects within this helm release | `[]` (See [values.yaml](values.yaml)) | ## ArgoCD Controller @@ -187,6 +189,8 @@ NAME: my-release | controller.args.selfHealTimeout | define the controller `--self-heal-timeout-seconds` | `"5"` | | controller.args.statusProcessors | define the controller `--status-processors` | `"20"` | | controller.clusterAdminAccess.enabled | Enable RBAC for local cluster deployments. | `true` | +| controller.clusterRoleRules.enabled | Enable custom rules for the Application Controller's Cluster Role resource. | `false` | +| controller.clusterRoleRules.rules | List of custom rules for the Application Controller's Cluster Role resource. | `[]` | | controller.containerPort | Controller listening port. | `8082` | | controller.extraArgs | Additional arguments for the controller. A list of flags | `[]` | | controller.extraContainers | Additional containers for the controller. A list of containers. | `[]` | @@ -244,6 +248,9 @@ NAME: my-release | repoServer.autoscaling.maxReplicas | Maximum number of replicas for the repo server [HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | `5` | | repoServer.autoscaling.targetCPUUtilizationPercentage | Average CPU utilization percentage for the repo server [HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | `50` | | repoServer.autoscaling.targetMemoryUtilizationPercentage | Average memory utilization percentage for the repo server [HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) | `50` | +| repoServer.clusterAdminAccess.enabled | Enable RBAC for local cluster deployments. | `false` | +| repoServer.clusterRoleRules.enabled | Enable custom rules for the Repo server's Cluster Role resource. | `false` | +| repoServer.clusterRoleRules.rules | List of custom rules for the Repo server's Cluster Role resource. | `[]` | | repoServer.containerPort | Repo server port | `8081` | | repoServer.extraArgs | Additional arguments for the repo server. A list of flags. | `[]` | | repoServer.extraContainers | Additional containers for the repo server. A list of containers. | `[]` | @@ -469,6 +476,25 @@ through `xxx.extraArgs` | redis.securityContext | Redis Pod Security Context | See [values.yaml](values.yaml) | | redis.servicePort | Redis service port | `6379` | | redis.tolerations | [Tolerations for use with node taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) | `[]` | +| redis.metrics.enabled | Deploy metrics service and redis-exporter sidecar | `false` | +| redis.metrics.image.repository | redis-exporter image repository | `quay.io/bitnami/redis-exporter` | +| redis.metrics.image.tag | redis-exporter image tag | `1.26.0-debian-10-r2` | +| redis.metrics.image.imagePullPolicy | redis-exporter image PullPolicy | `IfNotPresent` | +| redis.metrics.containerPort | Port to use for redis-exporter sidecar | `9121` | +| redis.metrics.resources | Resource limits and requests for redis-exporter sidecar | `{}` | +| redis.metrics.service.type | Metrics service type | `ClusterIP` | +| redis.metrics.service.clusterIP | Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) | `None` | +| redis.metrics.service.annotations | Metrics service annotations | `{}` | +| redis.metrics.service.labels | Metrics service labels | `{}` | +| redis.metrics.service.servicePort | Metrics service port | `9121` | +| redis.metrics.service.portName | Metrics service port name | `http-metrics` | +| redis.metrics.serviceMonitor.enabled | Enable a prometheus ServiceMonitor | `false` | +| redis.metrics.serviceMonitor.interval | Interval at which metrics should be scraped | `30s` | +| redis.metrics.serviceMonitor.relabelings | Prometheus [RelabelConfigs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config) to apply to samples before scraping | `[]` | +| redis.metrics.serviceMonitor.metricRelabelings | Prometheus [MetricRelabelConfigs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs) to apply to samples before ingestion | `[]` | +| redis.metrics.serviceMonitor.selector | Prometheus ServiceMonitor selector labels | `{}` | +| redis.metrics.serviceMonitor.namespace | Prometheus ServiceMonitor namespace | `` | +| redis.metrics.serviceMonitor.additionalLabels | Additional labels to add to the Prometheus ServiceMonitor | `{}` | | redis-ha | Configures [Redis HA subchart](https://github.com/DandyDeveloper/charts/tree/master/charts/redis-ha) The properties below have been changed from the subchart defaults | | | redis-ha.enabled | Enables the Redis HA subchart and disables the custom Redis single node deployment| `false` | | redis-ha.exporter.enabled | If `true`, the prometheus exporter sidecar is enabled | `true` | diff --git a/charts/argo-cd/templates/argocd-application-controller/clusterrole.yaml b/charts/argo-cd/templates/argocd-application-controller/clusterrole.yaml index bd6ff8aa..0aa82961 100644 --- a/charts/argo-cd/templates/argocd-application-controller/clusterrole.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/clusterrole.yaml @@ -6,9 +6,9 @@ metadata: labels: {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} rules: -{{- if .Values.controller.clusterRoleRules.enabled }} -{{- toYaml .Values.controller.clusterRoleRules.rules | nindent 2 }} -{{ else }} + {{- if .Values.controller.clusterRoleRules.enabled }} + {{- toYaml .Values.controller.clusterRoleRules.rules | nindent 0 }} + {{- else }} - apiGroups: - '*' resources: @@ -19,5 +19,5 @@ rules: - '*' verbs: - '*' -{{- end }} + {{- end }} {{- end }} diff --git a/charts/argo-cd/templates/argocd-application-controller/deployment.yaml b/charts/argo-cd/templates/argocd-application-controller/deployment.yaml index 90963613..b924ea41 100755 --- a/charts/argo-cd/templates/argocd-application-controller/deployment.yaml +++ b/charts/argo-cd/templates/argocd-application-controller/deployment.yaml @@ -133,10 +133,10 @@ spec: {{- end }} {{- end }} serviceAccountName: {{ template "argo-cd.controllerServiceAccountName" . }} -{{- with .Values.global.hostAliases }} + {{- with .Values.global.hostAliases }} hostAliases: -{{ toYaml . | indent 6 }} -{{- end }} + {{- toYaml . | nindent 6 }} + {{- end }} volumes: - emptyDir: {} name: argocd-home diff --git a/charts/argo-cd/templates/argocd-repo-server/clusterrole.yaml b/charts/argo-cd/templates/argocd-repo-server/clusterrole.yaml new file mode 100644 index 00000000..4ea41da3 --- /dev/null +++ b/charts/argo-cd/templates/argocd-repo-server/clusterrole.yaml @@ -0,0 +1,23 @@ +{{- if and .Values.repoServer.serviceAccount.create .Values.repoServer.clusterAdminAccess.enabled }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ template "argo-cd.repoServer.fullname" . }} + labels: + {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} +rules: + {{- if .Values.repoServer.clusterRoleRules.enabled }} + {{- toYaml .Values.repoServer.clusterRoleRules.rules | nindent 0 }} + {{- else }} +- apiGroups: + - '*' + resources: + - '*' + verbs: + - '*' +- nonResourceURLs: + - '*' + verbs: + - '*' + {{- end }} +{{- end }} diff --git a/charts/argo-cd/templates/argocd-repo-server/clusterrolebinding.yaml b/charts/argo-cd/templates/argocd-repo-server/clusterrolebinding.yaml new file mode 100644 index 00000000..9757912e --- /dev/null +++ b/charts/argo-cd/templates/argocd-repo-server/clusterrolebinding.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.repoServer.serviceAccount.create .Values.repoServer.clusterAdminAccess.enabled }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "argo-cd.repoServer.fullname" . }} + labels: + {{- include "argo-cd.labels" (dict "context" . "component" .Values.repoServer.name "name" .Values.repoServer.name) | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "argo-cd.repoServer.fullname" . }} +subjects: +- kind: ServiceAccount + name: {{ template "argo-cd.repoServerServiceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end }} diff --git a/charts/argo-cd/templates/argocd-repo-server/deployment.yaml b/charts/argo-cd/templates/argocd-repo-server/deployment.yaml index eabc1920..3c86cb8f 100755 --- a/charts/argo-cd/templates/argocd-repo-server/deployment.yaml +++ b/charts/argo-cd/templates/argocd-repo-server/deployment.yaml @@ -114,7 +114,7 @@ spec: failureThreshold: {{ .Values.repoServer.readinessProbe.failureThreshold }} resources: {{- toYaml .Values.repoServer.resources | nindent 10 }} - {{- with .Values.controller.extraContainers }} + {{- with .Values.repoServer.extraContainers }} {{- toYaml . | nindent 6 }} {{- end }} {{- if .Values.repoServer.nodeSelector }} @@ -141,10 +141,10 @@ spec: {{- end }} {{- end }} serviceAccountName: {{ template "argo-cd.repoServerServiceAccountName" . }} -{{- with .Values.global.hostAliases }} + {{- with .Values.global.hostAliases }} hostAliases: -{{ toYaml . | indent 6 }} -{{- end }} + {{- toYaml . | nindent 6 }} + {{- end }} volumes: {{- if .Values.repoServer.volumes }} {{- toYaml .Values.repoServer.volumes | nindent 6 }} diff --git a/charts/argo-cd/templates/argocd-server/applications.yaml b/charts/argo-cd/templates/argocd-server/applications.yaml index 1b9d424a..d4d6171b 100644 --- a/charts/argo-cd/templates/argocd-server/applications.yaml +++ b/charts/argo-cd/templates/argocd-server/applications.yaml @@ -2,41 +2,45 @@ apiVersion: v1 kind: List items: -{{- range .Values.server.additionalApplications }} + {{- range .Values.server.additionalApplications }} - apiVersion: argoproj.io/v1alpha1 kind: Application metadata: - {{- if .additionalAnnotations }} + {{- with .additionalAnnotations }} annotations: - {{- range $key, $value := .additionalAnnotations }} + {{- range $key, $value := . }} {{ $key }}: {{ $value | quote }} + {{- end }} {{- end }} - {{- end }} - {{- if .additionalLabels }} + {{- with .additionalLabels }} labels: -{{- toYaml .additionalLabels | nindent 8 }} + {{- toYaml . | nindent 8 }} {{- end }} name: {{ .name }} - {{- if .namespace }} - namespace: {{ .namespace }} + {{- with .namespace }} + namespace: {{ . }} {{- end }} - {{- if .finalizers }} + {{- with .finalizers }} finalizers: -{{- toYaml .finalizers | nindent 8 }} + {{- toYaml . | nindent 8 }} {{- end }} spec: project: {{ tpl .project $ }} source: -{{- toYaml .source | nindent 8 }} + {{- toYaml .source | nindent 8 }} destination: -{{- toYaml .destination | nindent 8 }} - {{- if .syncPolicy }} + {{- toYaml .destination | nindent 8 }} + {{- with .syncPolicy }} syncPolicy: -{{- toYaml .syncPolicy | nindent 8 }} + {{- toYaml . | nindent 8 }} {{- end }} - {{- if .ignoreDifferences }} + {{- with .ignoreDifferences }} ignoreDifferences: -{{- toYaml .ignoreDifferences | nindent 8 }} + {{- toYaml . | nindent 8 }} {{- end }} -{{- end }} + {{- with .info }} + info: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- end }} {{- end }} \ No newline at end of file diff --git a/charts/argo-cd/templates/argocd-server/deployment.yaml b/charts/argo-cd/templates/argocd-server/deployment.yaml index c84d9d95..38cd5cbf 100755 --- a/charts/argo-cd/templates/argocd-server/deployment.yaml +++ b/charts/argo-cd/templates/argocd-server/deployment.yaml @@ -152,10 +152,10 @@ spec: {{- end }} {{- end }} serviceAccountName: {{ template "argo-cd.serverServiceAccountName" . }} -{{- with .Values.global.hostAliases }} + {{- with .Values.global.hostAliases }} hostAliases: -{{ toYaml . | indent 6 }} -{{- end }} + {{- toYaml . | nindent 6 }} + {{- end }} volumes: {{- if .Values.server.volumes }} {{- toYaml .Values.server.volumes | nindent 6}} diff --git a/charts/argo-cd/templates/dex/deployment.yaml b/charts/argo-cd/templates/dex/deployment.yaml index 5fe78628..17043a95 100755 --- a/charts/argo-cd/templates/dex/deployment.yaml +++ b/charts/argo-cd/templates/dex/deployment.yaml @@ -127,6 +127,10 @@ spec: {{- end }} {{- end }} serviceAccountName: {{ template "argo-cd.dexServiceAccountName" . }} + {{- with .Values.global.hostAliases }} + hostAliases: + {{- toYaml . | nindent 6 }} + {{- end }} volumes: - emptyDir: {} name: tmp-dir diff --git a/charts/argo-cd/templates/redis/deployment.yaml b/charts/argo-cd/templates/redis/deployment.yaml index f5003466..fa01c7b4 100755 --- a/charts/argo-cd/templates/redis/deployment.yaml +++ b/charts/argo-cd/templates/redis/deployment.yaml @@ -64,6 +64,24 @@ spec: {{- end }} resources: {{- toYaml .Values.redis.resources | nindent 10 }} + {{- if .Values.redis.metrics.enabled }} + - name: metrics + env: + - name: REDIS_ADDR + value: {{ printf "redis://localhost:%v" .Values.redis.containerPort }} + - name: REDIS_EXPORTER_WEB_LISTEN_ADDRESS + value: {{ printf "0.0.0.0:%v" .Values.redis.metrics.containerPort }} + image: {{ .Values.redis.metrics.image.repository }}:{{ .Values.redis.metrics.image.tag }} + imagePullPolicy: {{ .Values.redis.metrics.image.imagePullPolicy}} + ports: + - containerPort: {{ .Values.redis.metrics.containerPort }} + name: metrics + protocol: TCP + resources: {{- toYaml .Values.redis.metrics.resources | nindent 10 }} + {{- with .Values.redis.containerSecurityContext }} + securityContext: {{- toYaml . | nindent 10 }} + {{- end }} + {{- end }} {{- with .Values.redis.extraContainers }} {{- toYaml . | nindent 6 }} {{- end }} diff --git a/charts/argo-cd/templates/redis/metrics-service.yaml b/charts/argo-cd/templates/redis/metrics-service.yaml new file mode 100644 index 00000000..e799b5ea --- /dev/null +++ b/charts/argo-cd/templates/redis/metrics-service.yaml @@ -0,0 +1,28 @@ +{{- $redisHa := (index .Values "redis-ha") -}} +{{- if and .Values.redis.enabled (not $redisHa.enabled) .Values.redis.metrics.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "argo-cd.redis.fullname" . }}-metrics + {{- with .Values.redis.metrics.service.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} + {{- with .Values.redis.metrics.service.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- with .Values.redis.metrics.service.clusterIP }} + clusterIP: {{ . }} + {{- end }} + ports: + - name: {{ .Values.redis.metrics.service.portName }} + protocol: TCP + port: {{ .Values.redis.metrics.service.servicePort }} + targetPort: metrics + selector: + {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} + type: {{ .Values.redis.metrics.service.type }} +{{- end }} diff --git a/charts/argo-cd/templates/redis/networkpolicy.yaml b/charts/argo-cd/templates/redis/networkpolicy.yaml index 881e257c..8b564add 100644 --- a/charts/argo-cd/templates/redis/networkpolicy.yaml +++ b/charts/argo-cd/templates/redis/networkpolicy.yaml @@ -21,6 +21,13 @@ spec: ports: - port: redis protocol: TCP + {{- if .Values.redis.metrics.enabled }} + - from: + - namespaceSelector: {} + ports: + - port: metrics + protocol: TCP + {{- end }} podSelector: matchLabels: {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.redis.name) | nindent 6 }} diff --git a/charts/argo-cd/templates/redis/servicemonitor.yaml b/charts/argo-cd/templates/redis/servicemonitor.yaml new file mode 100644 index 00000000..b7029b74 --- /dev/null +++ b/charts/argo-cd/templates/redis/servicemonitor.yaml @@ -0,0 +1,39 @@ +{{- $redisHa := (index .Values "redis-ha") -}} +{{- if and .Values.redis.enabled (not $redisHa.enabled) .Values.redis.metrics.enabled .Values.redis.metrics.serviceMonitor.enabled -}} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ template "argo-cd.redis.fullname" . }} + {{- with .Values.redis.metrics.serviceMonitor.namespace }} + namespace: {{ . }} + {{- end }} + labels: + {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }} + {{- with .Values.redis.metrics.serviceMonitor.selector }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.redis.metrics.serviceMonitor.additionalLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + endpoints: + - port: {{ .Values.redis.metrics.service.portName }} + {{- with .Values.redis.metrics.serviceMonitor.interval }} + interval: {{ . }} + {{- end }} + path: /metrics + {{- with .Values.redis.metrics.serviceMonitor.relabelings }} + relabelings: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.redis.metrics.serviceMonitor.metricRelabelings }} + metricRelabelings: + {{- toYaml . | nindent 8 }} + {{- end }} + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} + selector: + matchLabels: + {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 6 }} +{{- end }} diff --git a/charts/argo-cd/values.yaml b/charts/argo-cd/values.yaml index 526660ab..d914eacf 100755 --- a/charts/argo-cd/values.yaml +++ b/charts/argo-cd/values.yaml @@ -451,6 +451,37 @@ redis: ## Additional containers to be added to the redis pod. extraContainers: [] + metrics: + enabled: false + image: + repository: quay.io/bitnami/redis-exporter + tag: 1.26.0-debian-10-r2 + imagePullPolicy: IfNotPresent + containerPort: 9121 + resources: {} + # limits: + # cpu: 50m + # memory: 64Mi + # requests: + # cpu: 10m + # memory: 32Mi + service: + type: ClusterIP + clusterIP: None + annotations: {} + labels: {} + servicePort: 9121 + portName: http-metrics + serviceMonitor: + enabled: false + interval: 30s + relabelings: [] + metricRelabelings: [] + selector: {} + # prometheus: kube-prometheus + # namespace: monitoring + additionalLabels: {} + # This key configures Redis-HA subchart and when enabled (redis-ha.enabled=true) # the custom redis deployment is omitted redis-ha: @@ -816,13 +847,21 @@ server: # path: guestbook # directory: # recurse: true - # destination: + # destination: # server: https://kubernetes.default.svc # namespace: guestbook - # syncPolicy: - # automated: - # prune: false - # selfHeal: false + # syncPolicy: + # automated: + # prune: false + # selfHeal: false + # ignoreDifferences: + # - group: apps + # kind: Deployment + # jsonPointers: + # - /spec/replicas + # info: + # - name: url + # value: https://argoproj.github.io/ ## Projects ## reference: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/ @@ -1030,6 +1069,17 @@ repoServer: # namespace: monitoring # additionalLabels: {} + ## Enable Admin ClusterRole resources. + ## Enable if you would like to grant cluster rights to ArgoCD repo-server. + clusterAdminAccess: + enabled: false + ## Enable Custom Rules for the Repo server's Cluster Role resource + ## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource. + ## Defaults to off + clusterRoleRules: + enabled: false + rules: [] + ## Repo server service account ## If create is set to true, make sure to uncomment the name and update the rbac section below serviceAccount: diff --git a/charts/argo-rollouts/ci/default-values.yaml b/charts/argo-rollouts/ci/default-values.yaml new file mode 100644 index 00000000..507f1e54 --- /dev/null +++ b/charts/argo-rollouts/ci/default-values.yaml @@ -0,0 +1 @@ +# Test with default values diff --git a/charts/argo-rollouts/ci/enable-dashboard-values.yaml b/charts/argo-rollouts/ci/enable-dashboard-values.yaml new file mode 100644 index 00000000..5c0a1c04 --- /dev/null +++ b/charts/argo-rollouts/ci/enable-dashboard-values.yaml @@ -0,0 +1,6 @@ +# Test with dashboard enabled +# Do not deploy the CRDs as they are already present from the previous test +installCRDs: false + +dashboard: + enabled: true diff --git a/charts/argo-rollouts/ci/test-values.yaml b/charts/argo-rollouts/ci/test-values.yaml deleted file mode 100644 index 7ea0c4c8..00000000 --- a/charts/argo-rollouts/ci/test-values.yaml +++ /dev/null @@ -1,2 +0,0 @@ -dashboard: - enabled: true diff --git a/charts/argo-workflows/Chart.yaml b/charts/argo-workflows/Chart.yaml index f05be3e9..a36c9cb2 100644 --- a/charts/argo-workflows/Chart.yaml +++ b/charts/argo-workflows/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: argo-workflows description: A Helm chart for Argo Workflows type: application -version: 0.5.2 +version: 0.7.1 appVersion: "v3.1.8" icon: https://raw.githubusercontent.com/argoproj/argo-workflows/master/docs/assets/argo.png home: https://github.com/argoproj/argo-helm @@ -15,4 +15,4 @@ maintainers: - name: benjaminws annotations: artifacthub.io/changes: | - - "[Added]: Add controller initialDelay param to configmap" + - "[Added]: Also test with default values" diff --git a/charts/argo-workflows/ci/default-values.yaml b/charts/argo-workflows/ci/default-values.yaml new file mode 100644 index 00000000..507f1e54 --- /dev/null +++ b/charts/argo-workflows/ci/default-values.yaml @@ -0,0 +1 @@ +# Test with default values diff --git a/charts/argo-workflows/templates/controller/workflow-controller-deployment.yaml b/charts/argo-workflows/templates/controller/workflow-controller-deployment.yaml index 7dee67e5..1cd28df2 100644 --- a/charts/argo-workflows/templates/controller/workflow-controller-deployment.yaml +++ b/charts/argo-workflows/templates/controller/workflow-controller-deployment.yaml @@ -75,7 +75,7 @@ spec: resources: {{- toYaml .Values.controller.resources | nindent 12 }} ports: - - name: metrics + - name: {{ .Values.controller.metricsConfig.portName }} containerPort: {{ .Values.controller.metricsConfig.port }} - containerPort: 6060 livenessProbe: {{ .Values.controller.livenessProbe | toYaml | nindent 12 }} diff --git a/charts/argo-workflows/templates/server/server-service.yaml b/charts/argo-workflows/templates/server/server-service.yaml index 5d161ee8..49314e6e 100644 --- a/charts/argo-workflows/templates/server/server-service.yaml +++ b/charts/argo-workflows/templates/server/server-service.yaml @@ -17,6 +17,9 @@ spec: name: {{ . }} {{- end }} targetPort: 2746 + {{- if and (eq .Values.server.serviceType "NodePort") .Values.server.serviceNodePort }} + nodePort: {{ .Values.server.serviceNodePort }} + {{- end }} selector: {{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 4 }} sessionAffinity: None diff --git a/charts/argo-workflows/values.yaml b/charts/argo-workflows/values.yaml index f87b3364..98a7fda6 100644 --- a/charts/argo-workflows/values.yaml +++ b/charts/argo-workflows/values.yaml @@ -57,6 +57,7 @@ controller: enabled: false path: /metrics port: 9090 + portName: metrics servicePort: 8080 servicePortName: metrics # the controller container's securityContext @@ -222,6 +223,7 @@ server: name: server serviceType: ClusterIP servicePort: 2746 + # serviceNodePort: 32746 # servicePortName: http serviceAccount: create: true diff --git a/charts/argocd-applicationset/Chart.yaml b/charts/argocd-applicationset/Chart.yaml index ba9b62cd..652adaf4 100644 --- a/charts/argocd-applicationset/Chart.yaml +++ b/charts/argocd-applicationset/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: argocd-applicationset description: A Helm chart for installing ArgoCD ApplicationSet type: application -version: 1.4.0 +version: 1.5.1 appVersion: "v0.2.0" home: https://github.com/argoproj/argo-helm icon: https://argocd-applicationset.readthedocs.io/en/stable/assets/logo.png @@ -14,4 +14,4 @@ maintainers: - name: maruina annotations: artifacthub.io/changes: | - - "[Added]: Configuration for Pod labels" + - "[Removed]: Duplicated default values during chart testing" diff --git a/charts/argocd-applicationset/README.md b/charts/argocd-applicationset/README.md index 1683c33b..506880a6 100644 --- a/charts/argocd-applicationset/README.md +++ b/charts/argocd-applicationset/README.md @@ -65,6 +65,7 @@ kubectl apply -k https://github.com/argoproj-labs/applicationset.git/manifests/c | args.namespace | string | `"argocd"` | The default Argo CD repo namespace | | args.policy | string | `"sync"` | How application is synced between the generator and the cluster | | args.probeBindAddr | string | `":8081"` | The default health check port | +| extraArgs | list | `[]` | List of extra cli args to add | | extraVolumeMounts | list | `[]` | List of extra mounts to add (normally used with extraVolumes) | | extraVolumes | list | `[]` | List of extra volumes to add | | fullnameOverride | string | `""` | Override the default fully qualified app name | diff --git a/charts/argocd-applicationset/ci/default-values.yaml b/charts/argocd-applicationset/ci/default-values.yaml index 233dd8e2..507f1e54 100644 --- a/charts/argocd-applicationset/ci/default-values.yaml +++ b/charts/argocd-applicationset/ci/default-values.yaml @@ -1,75 +1 @@ -# Default values for argo-applicationset. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -replicaCount: 1 - -image: - # The image repository - repository: quay.io/argocdapplicationset/argocd-applicationset - # Image pull policy - pullPolicy: IfNotPresent - # Overrides the image tag whose default is the chart appVersion. - tag: "" - -args: - metricsAddr: :8080 - probeBindAddr: :8081 - enableLeaderElection: false - namespace: argocd - argocdRepoServer: argocd-repo-server:8081 - policy: sync - debug: false - dryRun: false - -imagePullSecrets: [] -nameOverride: "" -fullnameOverride: "" - -serviceAccount: - # Specifies whether a service account should be created - create: true - # Annotations to add to the service account - annotations: {} - # The name of the service account to use. - # If not set and create is true, a name is generated using the fullname template - name: "" - -podAnnotations: {} - -rbac: - pspEnabled: true - -podSecurityContext: {} - # fsGroup: 2000 - -securityContext: {} - # capabilities: - # drop: - # - ALL - # readOnlyRootFilesystem: true - # runAsNonRoot: true - # runAsUser: 1000 - -resources: {} - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as Minikube. If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - -nodeSelector: {} - -tolerations: [] - -affinity: {} - -mountSSHKnownHostsVolume: true -mountTLSCertsVolume: true -mountGPGKeysVolume: false -mountGPGKeyringVolume: true +# Test with default values diff --git a/charts/argocd-applicationset/templates/deployment.yaml b/charts/argocd-applicationset/templates/deployment.yaml index a577854b..c0527562 100644 --- a/charts/argocd-applicationset/templates/deployment.yaml +++ b/charts/argocd-applicationset/templates/deployment.yaml @@ -44,6 +44,9 @@ spec: - --policy={{ .Values.args.policy }} - --debug={{ .Values.args.debug }} - --dry-run={{ .Values.args.dryRun }} + {{- with .Values.extraArgs }} + {{- toYaml . | nindent 12 }} + {{- end }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: diff --git a/charts/argocd-applicationset/values.yaml b/charts/argocd-applicationset/values.yaml index 5c9f8225..fd5a50d5 100644 --- a/charts/argocd-applicationset/values.yaml +++ b/charts/argocd-applicationset/values.yaml @@ -113,3 +113,7 @@ extraVolumeMounts: [] extraVolumes: [] # - name: foobar # emptyDir: {} + +# -- List of extra cli args to add +extraArgs: [] + # - --loglevel=warn diff --git a/charts/argocd-image-updater/Chart.yaml b/charts/argocd-image-updater/Chart.yaml index bf652d50..7ff1d925 100644 --- a/charts/argocd-image-updater/Chart.yaml +++ b/charts/argocd-image-updater/Chart.yaml @@ -2,7 +2,7 @@ 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.2.0 +version: 0.2.1 appVersion: v0.10.1 home: https://github.com/argoproj-labs/argocd-image-updater icon: https://argocd-image-updater.readthedocs.io/en/stable/assets/logo.png @@ -15,4 +15,4 @@ maintainers: url: https://argoproj.github.io/ annotations: artifacthub.io/changes: | - - "[Added]: Ability to provide custom environment variables" + - "[Fixed]: Update default values example for extraArgs diff --git a/charts/argocd-image-updater/values.yaml b/charts/argocd-image-updater/values.yaml index c6bbf4d4..01f63fc7 100644 --- a/charts/argocd-image-updater/values.yaml +++ b/charts/argocd-image-updater/values.yaml @@ -16,16 +16,23 @@ nameOverride: "" fullnameOverride: "" # -- Extra arguments for argocd-image-updater not defined in config.argocd +# If a flag contains both key and value, they need to be split to a new entry extraArgs: [] # - --disable-kubernetes # - --dry-run - # - --health-port 8080 - # - --interval 2m - # - --kubeconfig ~/.kube/config - # - --match-application-name staging-* - # - --max-concurrency 5 + # - --health-port + # - 8080 + # - --interval + # - 2m + # - --kubeconfig + # - ~/.kube/config + # - --match-application-name + # - staging-* + # - --max-concurrency + # - 5 # - --once - # - --registries-conf-path /app/config/registries.conf + # - --registries-conf-path + # - /app/config/registries.conf # -- Extra environment variables for argocd-image-updater extraEnv: []