Skip to content

Commit

Permalink
feat: argo-cd can deploy Redis HA (#270)
Browse files Browse the repository at this point in the history
* feat: argo-cd can deploy Redis HA

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* fix: add unarchived subchart redis-ha

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* fix: Redis HA upgraded since 4.3.4 contains a bug on the chart

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* docs: how to configure Redis and Redis HA

* fix: add missing chart folder

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* fix: Helm bug with subcharts and alias

* fix: Chart version

* fix: Remove archived subcharts

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* fix: lint script

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* Revert "fix: lint script"

This reverts commit f4b81cb.

* fix: lint and publish scripts

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* fix: align test-image versions

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* fix: remove sudo from scripts
Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* fix: add required repositories to helm

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* fix: simplify expression

Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

* fix: bump up chart version
Signed-off-by: Carlos Juan Gómez Peñalver <carlosjuangp@gmail.com>

Co-authored-by: Spencer Gilbert <Spencer.Gilbert@gmail.com>
  • Loading branch information
carlosjgp and spencergilbert authored Apr 9, 2020
1 parent 567e7ce commit d7da8e8
Show file tree
Hide file tree
Showing 42 changed files with 1,951 additions and 33 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: 2.1
jobs:
lint:
docker:
- image: gcr.io/kubernetes-charts-ci/test-image:v3.0.1
- image: gcr.io/kubernetes-charts-ci/test-image:v3.1.0
steps:
- checkout
- run: ct lint --config .circleci/chart-testing.yaml --lint-conf .circleci/lintconf.yaml
Expand All @@ -11,7 +11,7 @@ jobs:
publish:
docker:
# We just need an image with `helm` on it. Handily we know of one already.
- image: gcr.io/kubernetes-charts-ci/test-image:v3.0.1
- image: gcr.io/kubernetes-charts-ci/test-image:v3.1.0
steps:
# install the additional keys needed to push to Github. Alex Collins owns these keys.
- add_ssh_keys
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
output
.vscode
.DS_Store
*.tgz
**/*.tgz
2 changes: 1 addition & 1 deletion charts/argo-cd/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: v1
appVersion: "1.5.1"
description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes.
name: argo-cd
version: 2.1.2
version: 2.2.0
home: https://github.com/argoproj/argo-helm
icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png
keywords:
Expand Down
37 changes: 26 additions & 11 deletions charts/argo-cd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This chart currently installs the non-HA version of ArgoCD.

## Upgrading

### 1.8.7 to 2.0.0
### 1.8.7 to 2.x.x

`controller.extraArgs`, `repoServer.extraArgs` and `server.extraArgs` are not arrays of strings intead of a map

Expand Down Expand Up @@ -75,8 +75,8 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i

## ArgoCD Controller

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| Key | Default | Description |
|-----|---------|-------------|
| controller.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
| controller.args.operationProcessors | define the controller `--operation-processors` | `"10"` |
| controller.args.statusProcessors | define the controller `--status-processors` | `"20"` |
Expand Down Expand Up @@ -121,8 +121,8 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i

## Argo Repo Server

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| Key | Default | Description |
|-----|---------|-------------|
| repoServer.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
| repoServer.autoscaling.enabled | Enable Horizontal Pod Autoscaler (HPA) for the repo server | `false` |
| repoServer.autoscaling.minReplicas | Minimum number of replicas for the repo server HPA | `1` |
Expand Down Expand Up @@ -168,8 +168,8 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i

## Argo Server

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| Key | Default | Description |
|-----|---------|-------------|
| server.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
| server.autoscaling.enabled | Enable Horizontal Pod Autoscaler (HPA) for the server | `false` |
| server.autoscaling.minReplicas | Minimum number of replicas for the server HPA | `1` |
Expand Down Expand Up @@ -234,8 +234,8 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i

## Dex

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| Key | Default | Description |
|-----|---------|-------------|
| dex.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
| dex.containerPortGrpc | GRPC container port | `5557` |
| dex.containerPortHttp | HTTP container port | `5556` |
Expand Down Expand Up @@ -263,8 +263,14 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i

## Redis

| Key | Type | Default | Description |
|-----|------|---------|-------------|
When Redis is completely disabled from the chart (`redis.enabled=false`) and
an external Redis instance wants to be used or
when Redis HA subcart is enabled (`redis.enabled=true and redis-ha.enabled=true`)
but HA proxy is disabled `redis-ha.haproxy.enabled=false` Redis flags need to be specified
through `xxx.extraArgs`

| Key | Default | Description |
|-----|---------|-------------|
| redis.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
| redis.containerPort | Redis container port | `6379` |
| redis.enabled | Enable redis | `true` |
Expand All @@ -280,3 +286,12 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i
| redis.resources | Resource limits and requests for redis | `{}` |
| redis.servicePort | Redis service port | `6379` |
| redis.tolerations | Tolerations for use with node taints https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ | `[]` |
| redis-ha | Configures Redis HA subchart https://github.com/helm/charts/tree/master/stable/redis-ha | | |
| 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` |
| redis-ha.persistentVolume.enabled | Configures persistency on Redis nodes | `false`
| redis-ha.redis.masterGroupName | Redis convention for naming the cluster group: must match `^[\\w-\\.]+$` and can be templated | `argocd`
| redis-ha.redis.config | Any valid redis config options in this section will be applied to each server (see `redis-ha` chart) | `` |
| redis-ha.redis.config.save | Will save the DB if both the given number of seconds and the given number of write operations against the DB occurred. `""` is disabled | `""` |
| redis-ha.haproxy.enabled | Enabled HAProxy LoadBalancing/Proxy | `true` |
| redis-ha.haproxy.metrics.enabled | HAProxy enable prometheus metric scraping | `true` |
21 changes: 21 additions & 0 deletions charts/argo-cd/charts/redis-ha/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: v1
appVersion: 5.0.6
description: Highly available Kubernetes implementation of Redis
engine: gotpl
home: http://redis.io/
icon: https://upload.wikimedia.org/wikipedia/en/thumb/6/6b/Redis_Logo.svg/1200px-Redis_Logo.svg.png
keywords:
- redis
- keyvalue
- database
maintainers:
- email: salimsalaues@gmail.com
name: ssalaues
- email: aaron.layfield@gmail.com
name: dandydeveloper
name: redis-ha
sources:
- https://redis.io/download
- https://github.com/scality/Zenko/tree/development/1.0/kubernetes/zenko/charts/redis-ha
- https://github.com/oliver006/redis_exporter
version: 4.4.2
6 changes: 6 additions & 0 deletions charts/argo-cd/charts/redis-ha/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
approvers:
- ssalaues
- dandydeveloper
reviewers:
- ssalaues
- dandydeveloper
Loading

0 comments on commit d7da8e8

Please sign in to comment.