Skip to content

Commit 1c3bd4b

Browse files
authored
ROX-28137: implement Janitor flavors hidden from users (#1534)
1 parent ef4c571 commit 1c3bd4b

16 files changed

Lines changed: 400 additions & 272 deletions

File tree

chart/infra-server/static/flavors.yaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,6 +1081,42 @@
10811081
description: The URL for the openshift console
10821082
tags: [url]
10831083

1084+
- id: janitor-delete-gke-default
1085+
name: Janitor delete GKE Default
1086+
description: Flavor to delete GKE Default clusters
1087+
availability: janitorDelete
1088+
workflow: configuration/janitor-delete-gke-default.yaml
1089+
parameters:
1090+
- name: name
1091+
description: cluster name
1092+
help: Name of the cluster that was leaked and should be destroyed.
1093+
- name: gcp-zone
1094+
description: Google Cloud zone to delete infrastructure from.
1095+
value: us-central1-a
1096+
1097+
- id: janitor-delete-openshift-4
1098+
name: Janitor delete Openshift
1099+
description: Flavor to delete Openshift 4 clusters
1100+
availability: janitorDelete
1101+
workflow: configuration/janitor-delete-openshift-4.yaml
1102+
parameters:
1103+
- name: name
1104+
description: cluster name
1105+
help: Name of the cluster that was leaked and should be destroyed.
1106+
1107+
- id: janitor-delete-openshift-rosa
1108+
name: Janitor delete ROSA
1109+
description: Flavor to delete ROSA (incl HCP) clusters
1110+
availability: janitorDelete
1111+
workflow: configuration/janitor-delete-openshift-rosa.yaml
1112+
parameters:
1113+
- name: name
1114+
description: cluster name
1115+
help: Name of the cluster that was leaked and should be destroyed.
1116+
- name: aws-region
1117+
description: AWS region to delete from.
1118+
value: us-east-1
1119+
kind: optional
10841120

10851121
{{ if ne .Values.environment "production" -}}
10861122
#################
@@ -1221,4 +1257,17 @@
12211257
description: success or fail
12221258
value: success
12231259
kind: optional
1260+
1261+
################
1262+
# Test Janitor #
1263+
################
1264+
- id: test-janitor-delete
1265+
name: Test Janitor delete
1266+
description: Flavor to test delete
1267+
availability: janitorDelete
1268+
workflow: configuration/test-janitor-delete.yaml
1269+
parameters:
1270+
- name: name
1271+
description: cluster name
1272+
help: Name of the cluster that was leaked and should be destroyed.
12241273
{{ end }}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: Workflow
3+
metadata:
4+
generateName: janitor-delete-gke-default-
5+
spec:
6+
entrypoint: delete
7+
arguments:
8+
parameters:
9+
- name: name
10+
- name: gcp-zone
11+
value: ""
12+
13+
volumes:
14+
- name: credentials
15+
secret:
16+
secretName: google-credentials
17+
18+
templates:
19+
- name: delete
20+
steps:
21+
- - name: destroy
22+
template: destroy
23+
24+
- name: destroy
25+
activeDeadlineSeconds: 3600
26+
container:
27+
image: quay.io/stackrox-io/ci:automation-flavors-gke-default-{{ .Chart.Annotations.automationFlavorsVersion }}
28+
imagePullPolicy: Always
29+
command:
30+
- /usr/bin/entrypoint
31+
args:
32+
- destroy
33+
- --name={{ "{{" }}workflow.parameters.name{{ "}}" }}
34+
- --gcp-project=acs-team-temp-dev
35+
- --gcp-zone={{ "{{" }}workflow.parameters.gcp-zone{{ "}}" }}
36+
volumeMounts:
37+
- name: credentials
38+
mountPath: /tmp
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: Workflow
3+
metadata:
4+
generateName: janitor-delete-openshift-4-
5+
spec:
6+
entrypoint: delete
7+
arguments:
8+
parameters:
9+
- name: name
10+
volumeClaimTemplates:
11+
- metadata:
12+
name: data
13+
spec:
14+
accessModes: [ "ReadWriteOnce" ]
15+
resources:
16+
requests:
17+
storage: 10Mi
18+
volumes:
19+
- name: credentials
20+
secret:
21+
secretName: openshift-4-gcp-service-account
22+
23+
templates:
24+
- name: delete
25+
steps:
26+
- - name: destroy
27+
template: destroy
28+
29+
30+
- name: destroy
31+
container:
32+
image: quay.io/stackrox-io/ci:automation-flavors-openshift-4-{{ .Chart.Annotations.automationFlavorsVersion }}
33+
imagePullPolicy: Always
34+
command:
35+
- entrypoint.sh
36+
args:
37+
- destroy
38+
- '{{ "{{" }}workflow.parameters.name{{ "}}" }}'
39+
env:
40+
- name: GOOGLE_CREDENTIALS
41+
valueFrom:
42+
secretKeyRef:
43+
name: openshift-4-gcp-service-account
44+
key: google-credentials.json
45+
- name: GCP_PROJECT
46+
value : "acs-team-temp-dev"
47+
volumeMounts:
48+
- name: data
49+
mountPath: /data
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: Workflow
3+
metadata:
4+
generateName: janitor-delete-openshift-rosa-
5+
spec:
6+
entrypoint: delete
7+
arguments:
8+
parameters:
9+
- name: name
10+
- name: aws-region
11+
value: "us-east-1"
12+
volumeClaimTemplates:
13+
- metadata:
14+
name: data
15+
spec:
16+
accessModes: [ "ReadWriteOnce" ]
17+
resources:
18+
requests:
19+
storage: 10Mi
20+
21+
templates:
22+
- name: delete
23+
steps:
24+
- - name: destroy
25+
template: destroy
26+
27+
- name: destroy
28+
activeDeadlineSeconds: 3600
29+
container:
30+
image: quay.io/stackrox-io/ci:automation-flavors-rosa-{{ .Chart.Annotations.automationFlavorsVersion }}
31+
imagePullPolicy: Always
32+
command:
33+
- ./entrypoint.sh
34+
args:
35+
- destroy
36+
- '{{ "{{" }}workflow.parameters.name{{ "}}" }}'
37+
env:
38+
- name: AWS_ACCESS_KEY_ID
39+
valueFrom:
40+
secretKeyRef:
41+
name: osd-access-secrets
42+
key: AWS_ACCESS_KEY_ID
43+
- name: AWS_SECRET_ACCESS_KEY
44+
valueFrom:
45+
secretKeyRef:
46+
name: osd-access-secrets
47+
key: AWS_SECRET_ACCESS_KEY
48+
- name: OPENSHIFT_CLUSTER_MANAGER_API_TOKEN
49+
valueFrom:
50+
secretKeyRef:
51+
name: osd-access-secrets
52+
key: OPENSHIFT_CLUSTER_MANAGER_API_TOKEN
53+
- name: REDHAT_PULL_SECRET_BASE64
54+
valueFrom:
55+
secretKeyRef:
56+
name: osd-access-secrets
57+
key: REDHAT_PULL_SECRET_BASE64
58+
- name: AWS_REGION
59+
value: '{{ "{{" }}workflow.parameters.aws-region{{ "}}" }}'
60+
volumeMounts:
61+
- name: data
62+
mountPath: /data
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: Workflow
3+
metadata:
4+
generateName: test-janitor-delete-
5+
spec:
6+
entrypoint: delete
7+
arguments:
8+
parameters:
9+
- name: name
10+
11+
templates:
12+
- name: delete
13+
steps:
14+
- - name: destroy
15+
template: destroy
16+
17+
- name: destroy
18+
script:
19+
image: debian:9.4
20+
command: [bash]
21+
source: |
22+
set -x
23+
start=0
24+
while sleep 1; do
25+
if [[ $((start++)) -ge 10 ]]; then
26+
break
27+
fi
28+
done

chart/infra-server/templates/secrets.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,16 @@ data:
7373
workflow-osd-gcp.yaml: |-
7474
{{- tpl (.Files.Get "static/workflow-osd-gcp.yaml" ) . | b64enc | nindent 4 }}
7575
76+
# Janitor (cleanup) workflows
77+
janitor-delete-gke-default.yaml: |-
78+
{{- tpl (.Files.Get "static/janitor-delete-gke-default.yaml" ) . | b64enc | nindent 4 }}
79+
80+
janitor-delete-openshift-4.yaml: |-
81+
{{- tpl (.Files.Get "static/janitor-delete-openshift-4.yaml" ) . | b64enc | nindent 4 }}
82+
83+
janitor-delete-openshift-rosa.yaml: |-
84+
{{- tpl (.Files.Get "static/janitor-delete-openshift-rosa.yaml" ) . | b64enc | nindent 4 }}
85+
7686
{{ if ne .Values.environment "production" }}
7787

7888
test-url-artifact.yaml: |-
@@ -90,6 +100,8 @@ data:
90100
test-simulate.yaml: |-
91101
{{- tpl (.Files.Get "static/test-simulate.yaml" ) . | b64enc | nindent 4 }}
92102
103+
test-janitor-delete.yaml: |-
104+
{{- tpl (.Files.Get "static/test-janitor-delete.yaml" ) . | b64enc | nindent 4 }}
93105
{{ end }}
94106

95107
---

cmd/infractl/flavor/get/fancy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func (p prettyFlavor) PrettyPrint(cmd *cobra.Command) {
3535
cmd.Printf(" Example: %q\n", parameter.GetValue())
3636
}
3737
if parameter.GetHelp() != "" {
38-
cmd.Printf(" %s\n", parameter.GetHelp())
38+
cmd.Printf(" Help: %s\n", parameter.GetHelp())
3939
}
4040
}
4141
}

0 commit comments

Comments
 (0)