From a165d304e22477cfbb66d49be525d3cf89c90d85 Mon Sep 17 00:00:00 2001 From: Sheogorath <sheogorath@shivering-isles.com> Date: Wed, 13 Sep 2023 02:33:21 +0200 Subject: [PATCH] feat(goharbor): Add "external", operator-managed redis cluster This patch should make redis HA, which should eliminate another SPOF for goharbor. This is the first usage for the new redis operator. --- apps/base/goharbor/kustomization.yaml | 2 ++ apps/base/goharbor/redis.yaml | 22 ++++++++++++++++++ apps/base/goharbor/release.yaml | 12 ++++------ shared/networkpolicies/allow-from-redis.yaml | 24 ++++++++++++++++++++ 4 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 apps/base/goharbor/redis.yaml create mode 100644 shared/networkpolicies/allow-from-redis.yaml diff --git a/apps/base/goharbor/kustomization.yaml b/apps/base/goharbor/kustomization.yaml index eecc11198..2d75e3a41 100644 --- a/apps/base/goharbor/kustomization.yaml +++ b/apps/base/goharbor/kustomization.yaml @@ -5,11 +5,13 @@ resources: - namespace.yaml - repository.yaml - database.yaml + - redis.yaml - release.yaml - ../../../shared/networkpolicies/allow-from-same-namespace.yaml - ../../../shared/networkpolicies/allow-from-ingress.yaml - ../../../shared/networkpolicies/allow-from-monitoring.yaml - ../../../shared/networkpolicies/allow-from-database.yaml + - ../../../shared/networkpolicies/allow-from-redis.yaml patchesStrategicMerge: - networkpolicy.yaml configMapGenerator: diff --git a/apps/base/goharbor/redis.yaml b/apps/base/goharbor/redis.yaml new file mode 100644 index 000000000..f0651cb1d --- /dev/null +++ b/apps/base/goharbor/redis.yaml @@ -0,0 +1,22 @@ +apiVersion: databases.spotahome.com/v1 +kind: RedisFailover +metadata: + name: goharbor-redis + namespace: goharbor +spec: + sentinel: + replicas: 3 + resources: + requests: + cpu: 100m + limits: + memory: 100Mi + redis: + replicas: 3 + resources: + requests: + memory: 128Mi + cpu: 100m + limits: + memory: 256Mi + cpu: 200m diff --git a/apps/base/goharbor/release.yaml b/apps/base/goharbor/release.yaml index 975b266d5..31db31372 100644 --- a/apps/base/goharbor/release.yaml +++ b/apps/base/goharbor/release.yaml @@ -127,14 +127,10 @@ spec: post: 5432 sslmode: require redis: - internal: - resources: - requests: - memory: 128Mi - cpu: 100m - limits: - memory: 256Mi - cpu: 200m + type: external + external: + addr: 'rfs-goharbor-redis:26379' + sentinelMasterSet: mymaster exporter: resources: requests: diff --git a/shared/networkpolicies/allow-from-redis.yaml b/shared/networkpolicies/allow-from-redis.yaml new file mode 100644 index 000000000..1a6a03984 --- /dev/null +++ b/shared/networkpolicies/allow-from-redis.yaml @@ -0,0 +1,24 @@ + +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: allow-from-redis +spec: + policyTypes: + - Ingress + ingress: + - from: + - namespaceSelector: + matchLabels: + redis.shivering-isles.com/network-access-required: "true" + podSelector: + matchLabels: + app.kubernetes.io/name: redis-operator + ports: + - port: 26379 + protocol: TCP + - port: 6379 + protocol: TCP + podSelector: + matchLabels: + app.kubernetes.io/part-of: redis-failover -- GitLab