Skip to content

Commit 0e15bbe

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 e95b3d1 commit 0e15bbe

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
@@ -161167,6 +161167,82 @@ periodics:
161167161167
- name: result-aggregator
161168161168
secret:
161169161169
secretName: result-aggregator
161170+
- agent: kubernetes
161171+
cluster: build11
161172+
decorate: true
161173+
decoration_config:
161174+
skip_cloning: true
161175+
extra_refs:
161176+
- base_ref: master
161177+
org: openshift
161178+
repo: release
161179+
interval: 168h
161180+
labels:
161181+
ci-operator.openshift.io/cloud: aws
161182+
ci-operator.openshift.io/cloud-cluster-profile: aws
161183+
ci-operator.openshift.io/variant: nightly-4.21
161184+
ci.openshift.io/generator: prowgen
161185+
ci.openshift.io/no-builds: "true"
161186+
job-release: "4.21"
161187+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
161188+
name: periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ccm-techpreview
161189+
spec:
161190+
containers:
161191+
- args:
161192+
- --gcs-upload-secret=/secrets/gcs/service-account.json
161193+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
161194+
- --lease-server-credentials-file=/etc/boskos/credentials
161195+
- --report-credentials-file=/etc/report/credentials
161196+
- --secret-dir=/secrets/ci-pull-credentials
161197+
- --target=e2e-aws-ccm-techpreview
161198+
- --variant=nightly-4.21
161199+
command:
161200+
- ci-operator
161201+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
161202+
imagePullPolicy: Always
161203+
name: ""
161204+
resources:
161205+
requests:
161206+
cpu: 10m
161207+
volumeMounts:
161208+
- mountPath: /etc/boskos
161209+
name: boskos
161210+
readOnly: true
161211+
- mountPath: /secrets/ci-pull-credentials
161212+
name: ci-pull-credentials
161213+
readOnly: true
161214+
- mountPath: /secrets/gcs
161215+
name: gcs-credentials
161216+
readOnly: true
161217+
- mountPath: /secrets/manifest-tool
161218+
name: manifest-tool-local-pusher
161219+
readOnly: true
161220+
- mountPath: /etc/pull-secret
161221+
name: pull-secret
161222+
readOnly: true
161223+
- mountPath: /etc/report
161224+
name: result-aggregator
161225+
readOnly: true
161226+
serviceAccountName: ci-operator
161227+
volumes:
161228+
- name: boskos
161229+
secret:
161230+
items:
161231+
- key: credentials
161232+
path: credentials
161233+
secretName: boskos-credentials
161234+
- name: ci-pull-credentials
161235+
secret:
161236+
secretName: ci-pull-credentials
161237+
- name: manifest-tool-local-pusher
161238+
secret:
161239+
secretName: manifest-tool-local-pusher
161240+
- name: pull-secret
161241+
secret:
161242+
secretName: registry-pull-credentials
161243+
- name: result-aggregator
161244+
secret:
161245+
secretName: result-aggregator
161170161246
- agent: kubernetes
161171161247
cluster: build11
161172161248
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: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
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+
30+
function gather_lb_info_for_service() {
31+
local service_name=$1
32+
local namespace=$2
33+
local artifact_file="${ARTIFACT_DIR}/${namespace}-${service_name}-loadbalancer.json"
34+
35+
echo "Gathering Service LoadBalancer Hostname of ${namespace}/${service_name} service..."
36+
37+
LB_DNS=$(oc get svc/"${service_name}" -n "${namespace}" -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
38+
LB_NAME=$(echo $LB_DNS | sed -e 's/\..*//' -e 's/-[^-]*$//')
39+
40+
echo "Service (${namespace}/${service_name}): LoadBalancer Name=${LB_NAME} Hostname=${LB_DNS}"
41+
42+
# CLB lookup
43+
{
44+
if aws elb describe-load-balancers --load-balancer-names $LB_NAME \
45+
--query 'LoadBalancerDescriptions[0].{LoadBalancerName:LoadBalancerName,DNSName:DNSName,CreatedTime:CreatedTime,AvailabilityZones:AvailabilityZones,SecurityGroups:SecurityGroups,IpAddressType:IpAddressType,Scheme:Scheme}' \
46+
--output json | jq '. + {Type: "Classic"}' > /tmp/output_clb.json; then
47+
echo "CLB found for LoadBalancer Name=${LB_NAME}, saving to ${artifact_file}"
48+
cat /tmp/output_clb.json >> "${artifact_file}"
49+
else
50+
echo "No CLB found for LoadBalancer Name=${LB_NAME}"
51+
fi
52+
} || true
53+
54+
# NLB lookup
55+
{
56+
if aws elbv2 describe-load-balancers --names $LB_NAME \
57+
--query 'LoadBalancers[0].{DNSName:DNSName,CreatedTime:CreatedTime,LoadBalancerName:LoadBalancerName,State:State,Type:Type,AvailabilityZones:AvailabilityZones,SecurityGroups:SecurityGroups,IpAddressType:IpAddressType,Scheme:Scheme}' \
58+
> /tmp/output_nlb.json; then
59+
echo "NLB found for LoadBalancer Name=${LB_NAME}, saving to ${artifact_file}"
60+
cat /tmp/output_nlb.json >> "${artifact_file}"
61+
else
62+
echo "No NLB found for LoadBalancer Name=${LB_NAME}"
63+
fi
64+
} || true
65+
}
66+
67+
# Discovery the Load Balancer hostname of default ingresscontroller service and
68+
# remove the domain from the hostname and AWS-appended random string to get the load balancer name
69+
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)