Skip to content

Commit f4a3aa3

Browse files
Add Kuttl tests (#534)
* Add test to validate the Dex Client Secret Signed-off-by: mehabhalodiya <[email protected]> Signed-off-by: mbhalodi <[email protected]> * Add test to validate the server autoscale Signed-off-by: mehabhalodiya <[email protected]> * Add test to validate rollout resources creation and policyrules Signed-off-by: mehabhalodiya <[email protected]> * Add test to validate the terminating namespaces Signed-off-by: mehabhalodiya <[email protected]> * Add sequential tests Signed-off-by: mehabhalodiya <[email protected]> * rename the file Signed-off-by: mehabhalodiya <[email protected]> --------- Signed-off-by: mehabhalodiya <[email protected]> Signed-off-by: mbhalodi <[email protected]> Co-authored-by: Varsha B <[email protected]>
1 parent a46102c commit f4a3aa3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1099
-2
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: ArgoCD
3+
metadata:
4+
name: example-argocd
5+
status:
6+
phase: Available
7+
---
8+
apiVersion: v1
9+
kind: ServiceAccount
10+
metadata:
11+
name: example-argocd-argocd-dex-server
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: ArgoCD
3+
metadata:
4+
name: example-argocd
5+
labels:
6+
examples: route
7+
spec:
8+
sso:
9+
provider: dex
10+
dex:
11+
openShiftOAuth: true
12+
server:
13+
route:
14+
enabled: true
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: |
5+
clientSecret=$(oc get configmap argocd-cm -n $NAMESPACE -o jsonpath='{.data.dex\.config}' | grep clientSecret | awk -F' ' '{print $2}')
6+
if test "$clientSecret" != "\$oidc.dex.clientSecret"; then
7+
echo "Client secret exposed!"
8+
exit 1
9+
fi
10+
exit 0
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: |
5+
# This test validates the Dex Client Secret copied by the operator from dex serviceaccount token secret in to argocd-secret.
6+
# To verify the behavior we should first get the token secret name of the dex service account.
7+
secret=$(oc get -n $NAMESPACE sa example-argocd-argocd-dex-server -o json | jq -r '.secrets[] | select(.name | contains("token")) | .name')
8+
9+
# Extract the clientSecret
10+
expectedClientSecret=$(oc get secret $secret -n $NAMESPACE -o json | jq -r '.data.token')
11+
12+
# actualClientSecret is the value of the secret in argocd-secret where argocd-operator should copy the secret from
13+
actualClientSecret=$(oc get secret argocd-secret -o json -n $NAMESPACE | jq -r '.data."oidc.dex.clientSecret"')
14+
15+
# Verify
16+
if [[ $expectedClientSecret != $actualClientSecret ]]; then
17+
echo "Error: Dex Client Secret for OIDC is not valid"
18+
exit 1
19+
fi
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: ArgoCD
3+
metadata:
4+
name: example-argocd
5+
status:
6+
phase: Available
7+
---
8+
kind: Deployment
9+
apiVersion: apps/v1
10+
metadata:
11+
name: example-argocd-server
12+
spec:
13+
replicas: 2
14+
status:
15+
conditions:
16+
- type: Available
17+
status: 'True'
18+
- type: Progressing
19+
status: 'True'
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: ArgoCD
3+
metadata:
4+
name: example-argocd
5+
spec:
6+
server:
7+
replicas: 2
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: ArgoCD
3+
metadata:
4+
name: example-argocd
5+
spec:
6+
server:
7+
replicas: 2
8+
autoscale:
9+
enabled: true
10+
hpa:
11+
minReplicas: 4
12+
maxReplicas: 7
13+
targetCPUUtilizationPercentage: 50
14+
scaleTargetRef:
15+
kind: deployment
16+
apiVersion: apps/v1
17+
name: example-argocd-server
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: sleep 45
5+
- script: |
6+
set -e
7+
serverReplicas=$(kubectl get -n $NAMESPACE deployment/example-argocd-server -o jsonpath='{.spec.replicas}')
8+
9+
if [ "$serverReplicas" -ge 4 ] && [ "$serverReplicas" -le 7 ]; then
10+
echo "server replica count matches expectation"
11+
exit 0
12+
fi
13+
exit 1
14+
done
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
apiVersion: autoscaling/v2
2+
kind: HorizontalPodAutoscaler
3+
metadata:
4+
name: example-argocd-server
5+
spec:
6+
maxReplicas: 12
7+
metrics:
8+
- resource:
9+
name: cpu
10+
target:
11+
averageUtilization: 50
12+
type: Utilization
13+
type: Resource
14+
minReplicas: 8
15+
scaleTargetRef:
16+
apiVersion: apps/v1
17+
kind: deployment
18+
name: example-argocd-server
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: ArgoCD
3+
metadata:
4+
name: example-argocd
5+
spec:
6+
server:
7+
replicas: 2
8+
autoscale:
9+
enabled: true
10+
hpa:
11+
minReplicas: 8
12+
maxReplicas: 12
13+
targetCPUUtilizationPercentage: 50
14+
scaleTargetRef:
15+
kind: deployment
16+
apiVersion: apps/v1
17+
name: example-argocd-server

test/openshift/e2e/sequential/1-086_validate_rollouts_resources_creation/02-assert.yaml renamed to test/openshift/e2e/parallel/1-100_validate_rollouts_resources_creation/02-assert.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ kind: RolloutManager
44
metadata:
55
name: example-rollout-manager
66
status:
7-
phase: Available
7+
phase: Available

test/openshift/e2e/sequential/1-087_validate_rollout_policyrules/01-assert.yaml renamed to test/openshift/e2e/parallel/1-101_validate_rollout_policyrules/01-assert.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,4 +208,4 @@ rules:
208208
verbs:
209209
- watch
210210
- get
211-
- update
211+
- update
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: gitops-service-argocd
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: gitops-service-argocd
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: ArgoCD
3+
metadata:
4+
name: gitops-service-argocd
5+
namespace: gitops-service-argocd
6+
status:
7+
phase: Available
8+
---
9+
kind: Namespace
10+
apiVersion: v1
11+
metadata:
12+
name: jane
13+
labels:
14+
argocd.argoproj.io/managed-by: gitops-service-argocd
15+
---
16+
apiVersion: v1
17+
kind: ConfigMap
18+
metadata:
19+
name: my-config-map-2
20+
namespace: jane
21+
finalizers:
22+
- some.random/finalizer

0 commit comments

Comments
 (0)