Skip to content

Commit 7e15c79

Browse files
committed
test: integration test for argo rollouts
1 parent 4fc0165 commit 7e15c79

File tree

7 files changed

+67
-0
lines changed

7 files changed

+67
-0
lines changed

snyk-monitor-cluster-permissions.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,14 @@ rules:
5454
- get
5555
- list
5656
- watch
57+
- apiGroups:
58+
- argoproj.io
59+
resources:
60+
- rollouts
61+
verbs:
62+
- get
63+
- list
64+
- watch
5765
---
5866
kind: ServiceAccount
5967
apiVersion: v1

snyk-monitor-namespaced-permissions.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@ rules:
4646
- get
4747
- list
4848
- watch
49+
- apiGroups:
50+
- argoproj.io
51+
resources:
52+
- rollouts
53+
verbs:
54+
- get
55+
- list
56+
- watch
4957
---
5058
kind: ServiceAccount
5159
apiVersion: v1

test/fixtures/argo-rollout.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: Rollout
3+
metadata:
4+
name: argo-rollout
5+
namespace: services
6+
spec:
7+
replicas: 1
8+
strategy:
9+
canary:
10+
steps:
11+
- setWeight: 100
12+
revisionHistoryLimit: 1
13+
selector:
14+
matchLabels:
15+
app: rollouts-demo
16+
template:
17+
metadata:
18+
labels:
19+
app: rollouts-demo
20+
spec:
21+
imagePullSecrets:
22+
- name: docker-io
23+
containers:
24+
- name: rollouts-demo
25+
image: argoproj/rollouts-demo:blue
26+
ports:
27+
- name: http
28+
containerPort: 8080
29+
protocol: TCP
30+
resources:
31+
requests:
32+
memory: 32Mi
33+
cpu: 5m

test/integration/kubernetes.spec.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ let cronJobV1Supported = true;
5555
let cronJobV1Beta1Supported = true;
5656
// Next we apply some sample workloads
5757
test('deploy sample workloads', async () => {
58+
const argoNamespace = 'argo-rollouts';
5859
const servicesNamespace = 'services';
5960
const someImageWithSha =
6061
'docker.io/library/alpine@sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a';
@@ -81,6 +82,15 @@ test('deploy sample workloads', async () => {
8182
someImageWithSha,
8283
servicesNamespace,
8384
),
85+
kubectl
86+
.createNamespace(argoNamespace)
87+
.then(() =>
88+
kubectl.applyK8sYaml(
89+
'https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml',
90+
argoNamespace,
91+
),
92+
)
93+
.then(() => kubectl.applyK8sYaml('./test/fixtures/argo-rollout.yaml')),
8494
]);
8595
});
8696

@@ -176,6 +186,11 @@ test('snyk-monitor sends data to kubernetes-upstream', async () => {
176186
workload.name === 'consul' &&
177187
workload.type === WorkloadKind.Deployment,
178188
) !== undefined &&
189+
workloads.find(
190+
(workload) =>
191+
workload.name === 'argo-rollout' &&
192+
workload.type === WorkloadKind.ArgoRollout,
193+
) !== undefined &&
179194
// only one of the cronjob versions needs to be valid
180195
(cronJobValidator(workloads) || cronJobV1Beta1Validator(workloads))
181196
);

test/setup/platforms/aks.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export async function loadImageInCluster(
6969
export async function clean(): Promise<void> {
7070
await Promise.all([
7171
kubectl.deleteNamespace('services'),
72+
kubectl.deleteNamespace('argo-rollouts'),
7273
kubectl.deleteNamespace('snyk-monitor'),
7374
]);
7475
}

test/setup/platforms/eks.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ export async function loadImageInCluster(
7272
export async function clean(): Promise<void> {
7373
await Promise.all([
7474
kubectl.deleteNamespace('services'),
75+
kubectl.deleteNamespace('argo-rollouts'),
7576
kubectl.deleteNamespace('snyk-monitor'),
7677
]);
7778
}

test/setup/platforms/openshift4.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ export async function clean(): Promise<void> {
142142
.deleteResource('clusterrole', 'snyk-monitor', 'default')
143143
.catch(() => undefined),
144144
kubectl.deleteNamespace('services').catch(() => undefined),
145+
kubectl.deleteNamespace('argo-rollouts').catch(() => undefined),
145146
kubectl.deleteNamespace('snyk-monitor').catch(() => undefined),
146147
]);
147148
}

0 commit comments

Comments
 (0)