Skip to content

Commit

Permalink
feat: Cassandra Health Check. Closes argoproj#6843 (argoproj#7017)
Browse files Browse the repository at this point in the history
Signed-off-by: benmanifold <[email protected]>
  • Loading branch information
BenManifold authored Aug 25, 2021
1 parent 18057fa commit 81155cc
Show file tree
Hide file tree
Showing 4 changed files with 225 additions and 0 deletions.
24 changes: 24 additions & 0 deletions resource_customizations/cassandra.rook.io/Cluster/health.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
hs = {}
if obj.status ~= nil then
if obj.status.racks ~= nil then
all_racks_good = true
for key, value in pairs(obj.status.racks) do
if all_racks_good and value.members ~= nil and value.readyMembers ~= nil and value.members ~= value.readyMembers then
all_racks_good = false
break
end
end
if all_racks_good then
hs.status = "Healthy"
else
hs.status = "Progressing"
hs.message = "Waiting for Cassandra Cluster"
end
return hs
end
end

hs.status = "Progressing"
hs.message = "Waiting for Cassandra Cluster"
return hs

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
tests:
- healthStatus:
status: Progressing
message: "Waiting for Cassandra Cluster"
inputPath: testdata/progressing.yaml
- healthStatus:
status: Healthy
message: ""
inputPath: testdata/healthy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
apiVersion: cassandra.rook.io/v1alpha1
kind: Cluster
metadata:
name: rook-cassandra
namespace: rook-cassandra
spec:
version: 3.11.6
repository: my-private-repo.io/cassandra
mode: cassandra
# A key/value list of annotations
annotations:
# key: value
datacenter:
name: us-east-1
racks:
- name: us-east-1a
members: 3
storage:
volumeClaimTemplates:
- metadata:
name: rook-cassandra-data
spec:
storageClassName: my-storage-class
resources:
requests:
storage: 200Gi
resources:
requests:
cpu: 8
memory: 32Gi
limits:
cpu: 8
memory: 32Gi
- name: us-east-1b
members: 3
storage:
volumeClaimTemplates:
- metadata:
name: rook-cassandra-data
spec:
storageClassName: my-storage-class
resources:
requests:
storage: 200Gi
resources:
requests:
cpu: 8
memory: 32Gi
limits:
cpu: 8
memory: 32Gi
- name: us-east-1c
members: 3
storage:
volumeClaimTemplates:
- metadata:
name: rook-cassandra-data
spec:
storageClassName: my-storage-class
resources:
requests:
storage: 200Gi
resources:
requests:
cpu: 8
memory: 32Gi
limits:
cpu: 8
memory: 32Gi
# A key/value list of annotations
annotations:
# key: value
placement:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: failure-domain.beta.kubernetes.io/region
operator: In
values:
- us-east-1
- key: failure-domain.beta.kubernetes.io/zone
operator: In
values:
- us-east-1a
status:
racks:
us-east-1a:
members: 3
readyMembers: 3
us-east-1b:
members: 3
readyMembers: 3
us-east-1c:
members: 3
readyMembers: 3
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
apiVersion: cassandra.rook.io/v1alpha1
kind: Cluster
metadata:
name: rook-cassandra
namespace: rook-cassandra
spec:
version: 3.11.6
repository: my-private-repo.io/cassandra
mode: cassandra
# A key/value list of annotations
annotations:
# key: value
datacenter:
name: us-east-1
racks:
- name: us-east-1a
members: 3
storage:
volumeClaimTemplates:
- metadata:
name: rook-cassandra-data
spec:
storageClassName: my-storage-class
resources:
requests:
storage: 200Gi
resources:
requests:
cpu: 8
memory: 32Gi
limits:
cpu: 8
memory: 32Gi
- name: us-east-1b
members: 3
storage:
volumeClaimTemplates:
- metadata:
name: rook-cassandra-data
spec:
storageClassName: my-storage-class
resources:
requests:
storage: 200Gi
resources:
requests:
cpu: 8
memory: 32Gi
limits:
cpu: 8
memory: 32Gi
- name: us-east-1c
members: 3
storage:
volumeClaimTemplates:
- metadata:
name: rook-cassandra-data
spec:
storageClassName: my-storage-class
resources:
requests:
storage: 200Gi
resources:
requests:
cpu: 8
memory: 32Gi
limits:
cpu: 8
memory: 32Gi
# A key/value list of annotations
annotations:
# key: value
placement:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: failure-domain.beta.kubernetes.io/region
operator: In
values:
- us-east-1
- key: failure-domain.beta.kubernetes.io/zone
operator: In
values:
- us-east-1a
status:
racks:
us-east-1a:
members: 3
readyMembers: 1
us-east-1b:
members: 3
readyMembers: 0
us-east-1c:
members: 3
readyMembers: 3

0 comments on commit 81155cc

Please sign in to comment.