Skip to content

Commit ea953d4

Browse files
committed
SPLAT-2501: added jobs for CCM-AWS and CCCMO TechPreview
Introduce optional presubmit and presubmit jobs for CCM-AWS and CCCMO projects using feature set TechPreview to test gates under this set, including the NLB+SG feature. Additionally, the e2e-aws-ccm workflow is now collecting the loadbalancer information from a service (router as example).
1 parent c6db7e0 commit ea953d4

File tree

14 files changed

+409
-0
lines changed

14 files changed

+409
-0
lines changed

ci-operator/config/openshift/cloud-provider-aws/openshift-cloud-provider-aws-main.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,15 @@ tests:
113113
steps:
114114
cluster_profile: aws-2
115115
workflow: openshift-upgrade-aws
116+
- always_run: false
117+
as: e2e-aws-ovn-techpreview
118+
optional: true
119+
skip_if_only_changed: ^docs/|\.md$|^(?:.*/)?(?:\.gitignore|OWNERS|PROJECT|LICENSE)$
120+
steps:
121+
cluster_profile: aws
122+
env:
123+
FEATURE_SET: TechPreviewNoUpgrade
124+
workflow: openshift-e2e-aws-ccm-techpreview
116125
- as: e2e-aws-ovn-cgroupsv2
117126
optional: true
118127
skip_if_only_changed: ^docs/|\.md$|^(?:.*/)?(?:\.gitignore|OWNERS|PROJECT|LICENSE)$

ci-operator/config/openshift/cluster-cloud-controller-manager-operator/openshift-cluster-cloud-controller-manager-operator-main.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ tests:
8888
steps:
8989
cluster_profile: aws-2
9090
workflow: openshift-upgrade-aws
91+
- always_run: false
92+
as: e2e-aws-ovn-techpreview
93+
optional: true
94+
skip_if_only_changed: ^docs/|\.md$|^(?:.*/)?(?:\.gitignore|OWNERS|PROJECT|LICENSE)$
95+
steps:
96+
cluster_profile: aws
97+
env:
98+
FEATURE_SET: TechPreviewNoUpgrade
99+
workflow: openshift-e2e-aws-ccm-techpreview
91100
- always_run: false
92101
as: e2e-azure-manual-oidc
93102
optional: true

ci-operator/config/openshift/release/openshift-release-master__nightly-4.21.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,13 @@ tests:
167167
enable:
168168
- observers-resource-watch
169169
workflow: openshift-e2e-aws-single-node
170+
- as: e2e-aws-ccm-techpreview
171+
interval: 168h
172+
steps:
173+
cluster_profile: aws
174+
env:
175+
FEATURE_SET: TechPreviewNoUpgrade
176+
workflow: openshift-e2e-aws-ccm-techpreview
170177
- as: e2e-metal-ovn-single-node-rt-upgrade
171178
interval: 168h
172179
steps:

ci-operator/jobs/openshift/cloud-provider-aws/openshift-cloud-provider-aws-main-presubmits.yaml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,81 @@ presubmits:
149149
secret:
150150
secretName: result-aggregator
151151
trigger: (?m)^/test( | .* )e2e-aws-ovn-cgroupsv2,?($|\s.*)
152+
- agent: kubernetes
153+
always_run: false
154+
branches:
155+
- ^main$
156+
- ^main-
157+
cluster: build03
158+
context: ci/prow/e2e-aws-ovn-techpreview
159+
decorate: true
160+
labels:
161+
ci-operator.openshift.io/cloud: aws
162+
ci-operator.openshift.io/cloud-cluster-profile: aws
163+
ci.openshift.io/generator: prowgen
164+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
165+
name: pull-ci-openshift-cloud-provider-aws-main-e2e-aws-ovn-techpreview
166+
optional: true
167+
path_alias: k8s.io/cloud-provider-aws
168+
rerun_command: /test e2e-aws-ovn-techpreview
169+
skip_if_only_changed: ^docs/|\.md$|^(?:.*/)?(?:\.gitignore|OWNERS|PROJECT|LICENSE)$
170+
spec:
171+
containers:
172+
- args:
173+
- --gcs-upload-secret=/secrets/gcs/service-account.json
174+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
175+
- --lease-server-credentials-file=/etc/boskos/credentials
176+
- --report-credentials-file=/etc/report/credentials
177+
- --secret-dir=/secrets/ci-pull-credentials
178+
- --target=e2e-aws-ovn-techpreview
179+
command:
180+
- ci-operator
181+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
182+
imagePullPolicy: Always
183+
name: ""
184+
resources:
185+
requests:
186+
cpu: 10m
187+
volumeMounts:
188+
- mountPath: /etc/boskos
189+
name: boskos
190+
readOnly: true
191+
- mountPath: /secrets/ci-pull-credentials
192+
name: ci-pull-credentials
193+
readOnly: true
194+
- mountPath: /secrets/gcs
195+
name: gcs-credentials
196+
readOnly: true
197+
- mountPath: /secrets/manifest-tool
198+
name: manifest-tool-local-pusher
199+
readOnly: true
200+
- mountPath: /etc/pull-secret
201+
name: pull-secret
202+
readOnly: true
203+
- mountPath: /etc/report
204+
name: result-aggregator
205+
readOnly: true
206+
serviceAccountName: ci-operator
207+
volumes:
208+
- name: boskos
209+
secret:
210+
items:
211+
- key: credentials
212+
path: credentials
213+
secretName: boskos-credentials
214+
- name: ci-pull-credentials
215+
secret:
216+
secretName: ci-pull-credentials
217+
- name: manifest-tool-local-pusher
218+
secret:
219+
secretName: manifest-tool-local-pusher
220+
- name: pull-secret
221+
secret:
222+
secretName: registry-pull-credentials
223+
- name: result-aggregator
224+
secret:
225+
secretName: result-aggregator
226+
trigger: (?m)^/test( | .* )e2e-aws-ovn-techpreview,?($|\s.*)
152227
- agent: kubernetes
153228
always_run: false
154229
branches:

ci-operator/jobs/openshift/cluster-cloud-controller-manager-operator/openshift-cluster-cloud-controller-manager-operator-main-presubmits.yaml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,80 @@ presubmits:
7373
secret:
7474
secretName: result-aggregator
7575
trigger: (?m)^/test( | .* )e2e-aws-ovn,?($|\s.*)
76+
- agent: kubernetes
77+
always_run: false
78+
branches:
79+
- ^main$
80+
- ^main-
81+
cluster: build01
82+
context: ci/prow/e2e-aws-ovn-techpreview
83+
decorate: true
84+
labels:
85+
ci-operator.openshift.io/cloud: aws
86+
ci-operator.openshift.io/cloud-cluster-profile: aws
87+
ci.openshift.io/generator: prowgen
88+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
89+
name: pull-ci-openshift-cluster-cloud-controller-manager-operator-main-e2e-aws-ovn-techpreview
90+
optional: true
91+
rerun_command: /test e2e-aws-ovn-techpreview
92+
skip_if_only_changed: ^docs/|\.md$|^(?:.*/)?(?:\.gitignore|OWNERS|PROJECT|LICENSE)$
93+
spec:
94+
containers:
95+
- args:
96+
- --gcs-upload-secret=/secrets/gcs/service-account.json
97+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
98+
- --lease-server-credentials-file=/etc/boskos/credentials
99+
- --report-credentials-file=/etc/report/credentials
100+
- --secret-dir=/secrets/ci-pull-credentials
101+
- --target=e2e-aws-ovn-techpreview
102+
command:
103+
- ci-operator
104+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
105+
imagePullPolicy: Always
106+
name: ""
107+
resources:
108+
requests:
109+
cpu: 10m
110+
volumeMounts:
111+
- mountPath: /etc/boskos
112+
name: boskos
113+
readOnly: true
114+
- mountPath: /secrets/ci-pull-credentials
115+
name: ci-pull-credentials
116+
readOnly: true
117+
- mountPath: /secrets/gcs
118+
name: gcs-credentials
119+
readOnly: true
120+
- mountPath: /secrets/manifest-tool
121+
name: manifest-tool-local-pusher
122+
readOnly: true
123+
- mountPath: /etc/pull-secret
124+
name: pull-secret
125+
readOnly: true
126+
- mountPath: /etc/report
127+
name: result-aggregator
128+
readOnly: true
129+
serviceAccountName: ci-operator
130+
volumes:
131+
- name: boskos
132+
secret:
133+
items:
134+
- key: credentials
135+
path: credentials
136+
secretName: boskos-credentials
137+
- name: ci-pull-credentials
138+
secret:
139+
secretName: ci-pull-credentials
140+
- name: manifest-tool-local-pusher
141+
secret:
142+
secretName: manifest-tool-local-pusher
143+
- name: pull-secret
144+
secret:
145+
secretName: registry-pull-credentials
146+
- name: result-aggregator
147+
secret:
148+
secretName: result-aggregator
149+
trigger: (?m)^/test( | .* )e2e-aws-ovn-techpreview,?($|\s.*)
76150
- agent: kubernetes
77151
always_run: false
78152
branches:

ci-operator/jobs/openshift/release/openshift-release-master-periodics.yaml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161094,6 +161094,82 @@ periodics:
161094161094
- name: result-aggregator
161095161095
secret:
161096161096
secretName: result-aggregator
161097+
- agent: kubernetes
161098+
cluster: build11
161099+
decorate: true
161100+
decoration_config:
161101+
skip_cloning: true
161102+
extra_refs:
161103+
- base_ref: master
161104+
org: openshift
161105+
repo: release
161106+
interval: 168h
161107+
labels:
161108+
ci-operator.openshift.io/cloud: aws
161109+
ci-operator.openshift.io/cloud-cluster-profile: aws
161110+
ci-operator.openshift.io/variant: nightly-4.21
161111+
ci.openshift.io/generator: prowgen
161112+
ci.openshift.io/no-builds: "true"
161113+
job-release: "4.21"
161114+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
161115+
name: periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ccm-techpreview
161116+
spec:
161117+
containers:
161118+
- args:
161119+
- --gcs-upload-secret=/secrets/gcs/service-account.json
161120+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
161121+
- --lease-server-credentials-file=/etc/boskos/credentials
161122+
- --report-credentials-file=/etc/report/credentials
161123+
- --secret-dir=/secrets/ci-pull-credentials
161124+
- --target=e2e-aws-ccm-techpreview
161125+
- --variant=nightly-4.21
161126+
command:
161127+
- ci-operator
161128+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
161129+
imagePullPolicy: Always
161130+
name: ""
161131+
resources:
161132+
requests:
161133+
cpu: 10m
161134+
volumeMounts:
161135+
- mountPath: /etc/boskos
161136+
name: boskos
161137+
readOnly: true
161138+
- mountPath: /secrets/ci-pull-credentials
161139+
name: ci-pull-credentials
161140+
readOnly: true
161141+
- mountPath: /secrets/gcs
161142+
name: gcs-credentials
161143+
readOnly: true
161144+
- mountPath: /secrets/manifest-tool
161145+
name: manifest-tool-local-pusher
161146+
readOnly: true
161147+
- mountPath: /etc/pull-secret
161148+
name: pull-secret
161149+
readOnly: true
161150+
- mountPath: /etc/report
161151+
name: result-aggregator
161152+
readOnly: true
161153+
serviceAccountName: ci-operator
161154+
volumes:
161155+
- name: boskos
161156+
secret:
161157+
items:
161158+
- key: credentials
161159+
path: credentials
161160+
secretName: boskos-credentials
161161+
- name: ci-pull-credentials
161162+
secret:
161163+
secretName: ci-pull-credentials
161164+
- name: manifest-tool-local-pusher
161165+
secret:
161166+
secretName: manifest-tool-local-pusher
161167+
- name: pull-secret
161168+
secret:
161169+
secretName: registry-pull-credentials
161170+
- name: result-aggregator
161171+
secret:
161172+
secretName: result-aggregator
161097161173
- agent: kubernetes
161098161174
cluster: build11
161099161175
decorate: true
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../OWNERS
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../OWNERS
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/bin/bash
2+
3+
#
4+
# ccm-gather-service-aws step collects Load Balancer information from AWS API.
5+
#
6+
7+
set -o nounset
8+
set -o errexit
9+
set -o pipefail
10+
11+
if test ! -f "${KUBECONFIG}"
12+
then
13+
echo "No kubeconfig, so no point in calling ccm-gather-service-aws."
14+
exit 0
15+
fi
16+
17+
if ! command -v aws &>/dev/null; then
18+
echo "AWS CLI not found, skipping..."
19+
exit 0
20+
fi
21+
22+
if test ! -f "${CLUSTER_PROFILE_DIR}/.awscred"; then
23+
echo "No AWS credentials, skipping..."
24+
exit 0
25+
fi
26+
27+
export AWS_SHARED_CREDENTIALS_FILE=${CLUSTER_PROFILE_DIR}/.awscred
28+
export AWS_REGION=${LEASED_RESOURCE}
29+
export ARTIFACT_LOADBALANCER_FILE=${ARTIFACT_DIR}/loadbalancer.json
30+
31+
# Discovery the Load Balancer hostname of default ingresscontroller service and
32+
# remove the domain from the hostname and AWS-appended random string to get the load balancer name
33+
34+
function gather_lb_info_for_service() {
35+
local service_name=$1
36+
local namespace=$2
37+
38+
echo "Gathering Service LoadBalancer Hostname of ${namespace}/${service_name} service..."
39+
40+
LB_DNS=$(oc get svc/"${service_name}" -n "${namespace}" -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
41+
LB_NAME=$(echo $LB_DNS | sed -e 's/\..*//' -e 's/-[^-]*$//')
42+
43+
echo "Service (${namespace}/${service_name}): LoadBalancer Name=${LB_NAME} Hostname=${LB_DNS}"
44+
45+
# CLB lookup
46+
{
47+
if aws elb describe-load-balancers --load-balancer-names $LB_NAME \
48+
--query 'LoadBalancerDescriptions[0].{LoadBalancerName:LoadBalancerName,DNSName:DNSName,CreatedTime:CreatedTime,AvailabilityZones:AvailabilityZones,SecurityGroups:SecurityGroups,IpAddressType:IpAddressType,Scheme:Scheme}' \
49+
--output json | jq '. + {Type: "Classic"}' > /tmp/output_clb.json; then
50+
echo "CLB found for LoadBalancer Name=${LB_NAME}, saving to ${ARTIFACT_DIR}/loadbalancer.json"
51+
cat /tmp/output_clb.json >> "${ARTIFACT_LOADBALANCER_FILE}"
52+
else
53+
echo "No CLB found for LoadBalancer Name=${LB_NAME}"
54+
fi
55+
} || true
56+
57+
# NLB lookup
58+
{
59+
if aws elbv2 describe-load-balancers --names $LB_NAME \
60+
--query 'LoadBalancers[0].{DNSName:DNSName,CreatedTime:CreatedTime,LoadBalancerName:LoadBalancerName,State:State,Type:Type,AvailabilityZones:AvailabilityZones,SecurityGroups:SecurityGroups,IpAddressType:IpAddressType,Scheme:Scheme}' \
61+
> /tmp/output_nlb.json; then
62+
echo "NLB found for LoadBalancer Name=${LB_NAME}, saving to ${ARTIFACT_LOADBALANCER_FILE}"
63+
cat /tmp/output_nlb.json >> "${ARTIFACT_LOADBALANCER_FILE}"
64+
else
65+
echo "No NLB found for LoadBalancer Name=${LB_NAME}"
66+
fi
67+
} || true
68+
}
69+
70+
gather_lb_info_for_service "router-default" "openshift-ingress"
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"path": "ccm/gather/service-aws/ccm-gather-service-aws-ref.yaml",
3+
"owners": {
4+
"approvers": [
5+
"danil-grigorev",
6+
"elmiko",
7+
"fedosin",
8+
"joelspeed",
9+
"mandre",
10+
"mdbooth",
11+
"stephenfin"
12+
],
13+
"reviewers": [
14+
"danil-grigorev",
15+
"elmiko",
16+
"fedosin",
17+
"joelspeed",
18+
"mandre",
19+
"mdbooth",
20+
"stephenfin"
21+
]
22+
}
23+
}

0 commit comments

Comments
 (0)