diff --git a/ci-operator/step-registry/ipi/aws/post/sharednetwork/OWNERS b/ci-operator/step-registry/ipi/aws/post/sharednetwork/OWNERS new file mode 100644 index 0000000000000..f14198cff70e7 --- /dev/null +++ b/ci-operator/step-registry/ipi/aws/post/sharednetwork/OWNERS @@ -0,0 +1,11 @@ +approvers: +- smarterclayton +- wking +- stevekuznetsov +- vrutkovs +- abhinavdahiya +- deads2k +- crawford +- ewolinetz +- csrwng +- staebler diff --git a/ci-operator/step-registry/ipi/aws/post/sharednetwork/ipi-aws-post-sharednetwork-chain.metadata.json b/ci-operator/step-registry/ipi/aws/post/sharednetwork/ipi-aws-post-sharednetwork-chain.metadata.json new file mode 100644 index 0000000000000..6e55a4126fbec --- /dev/null +++ b/ci-operator/step-registry/ipi/aws/post/sharednetwork/ipi-aws-post-sharednetwork-chain.metadata.json @@ -0,0 +1,17 @@ +{ + "path": "ipi/aws/post/sharednetwork/ipi-aws-post-sharednetwork-chain.yaml", + "owners": { + "approvers": [ + "smarterclayton", + "wking", + "stevekuznetsov", + "vrutkovs", + "abhinavdahiya", + "deads2k", + "crawford", + "ewolinetz", + "csrwng", + "staebler" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/ipi/aws/post/sharednetwork/ipi-aws-post-sharednetwork-chain.yaml b/ci-operator/step-registry/ipi/aws/post/sharednetwork/ipi-aws-post-sharednetwork-chain.yaml new file mode 100644 index 0000000000000..23bc4e943e46c --- /dev/null +++ b/ci-operator/step-registry/ipi/aws/post/sharednetwork/ipi-aws-post-sharednetwork-chain.yaml @@ -0,0 +1,8 @@ +chain: + as: ipi-aws-post-sharednetwork + steps: + - chain: ipi-aws-post + - ref: ipi-deprovision-aws-sharednetwork + documentation: |- + The IPI post step contains all steps that provision an OpenShift cluster + in a shared VPC configuration on AWS. diff --git a/ci-operator/step-registry/ipi/conf/aws/sharednetwork/ipi-conf-aws-sharednetwork-commands.sh b/ci-operator/step-registry/ipi/conf/aws/sharednetwork/ipi-conf-aws-sharednetwork-commands.sh index 7961bcd2cf47d..95a9d1c577224 100755 --- a/ci-operator/step-registry/ipi/conf/aws/sharednetwork/ipi-conf-aws-sharednetwork-commands.sh +++ b/ci-operator/step-registry/ipi/conf/aws/sharednetwork/ipi-conf-aws-sharednetwork-commands.sh @@ -5,12 +5,15 @@ set -o errexit set -o pipefail # TODO: move to image -curl -L https://github.com/mikefarah/yq/releases/download/3.3.0/yq_linux_amd64 -o /tmp/yq && chmod +x /tmp/yq +pip3 install --user yq +export PATH=~/.local/bin:$PATH + +export AWS_SHARED_CREDENTIALS_FILE=$CLUSTER_PROFILE_DIR/.awscred CONFIG="${SHARED_DIR}/install-config.yaml" PATCH="${SHARED_DIR}/install-config-sharednetwork.yaml.patch" -aws_region=$(/tmp/yq r "${CONFIG}" 'platform.aws.region') +aws_region=$(yq -r '.platform.aws.region' "${CONFIG}") subnets="[]" case "${aws_region}_$((RANDOM % 4))" in @@ -34,10 +37,28 @@ us-west-2_3) subnets="['subnet-072d00dcf02ad90a6','subnet-0ad913e4bd6ff53fa','su esac echo "Subnets : ${subnets}" +first_subnet="$(echo ${subnets} | yq -r '.[0]')" + +vpc_id="$(aws --region "${aws_region}" ec2 describe-subnets --subnet-ids "${first_subnet}" | jq -r '.[][0].VpcId')" +echo "Using vpc_id: ${vpc_id}" + +cluster_domain=$(yq -r '.metadata.name + "." + .baseDomain' "${CONFIG}") +hosted_zone="$(aws route53 create-hosted-zone \ + --name "${cluster_domain}" \ + --vpc VPCRegion="${aws_region}",VPCId="${vpc_id}" \ + --caller-reference "${cluster_domain}-$(date +"%Y-%m-%d-%H-%M-%S")" \ + --hosted-zone-config Comment="BYO hosted zone for ${cluster_domain}",PrivateZone=true | + jq -r '.HostedZone.Id' | \ + sed -E 's|^/hostedzone/(.+)$|\1|' \ + )" +echo "Using hosted zone: ${hosted_zone}" + cat >> "${PATCH}" << EOF platform: aws: subnets: ${subnets} + hostedZone: ${hosted_zone} EOF -/tmp/yq m -x -i "${CONFIG}" "${PATCH}" +yq -y -s '.[0] * .[1]' "${CONFIG}" "${PATCH}" > "${CONFIG}.patched" +mv "${CONFIG}.patched" "${CONFIG}" diff --git a/ci-operator/step-registry/ipi/conf/aws/sharednetwork/ipi-conf-aws-sharednetwork-ref.yaml b/ci-operator/step-registry/ipi/conf/aws/sharednetwork/ipi-conf-aws-sharednetwork-ref.yaml index 22a56c42ab865..d9bb58244cca7 100644 --- a/ci-operator/step-registry/ipi/conf/aws/sharednetwork/ipi-conf-aws-sharednetwork-ref.yaml +++ b/ci-operator/step-registry/ipi/conf/aws/sharednetwork/ipi-conf-aws-sharednetwork-ref.yaml @@ -1,9 +1,9 @@ ref: as: ipi-conf-aws-sharednetwork from_image: - namespace: origin - name: centos - tag: '8' + namespace: ocp + name: "4.8" + tag: upi-installer commands: ipi-conf-aws-sharednetwork-commands.sh resources: requests: diff --git a/ci-operator/step-registry/ipi/deprovision/aws/OWNERS b/ci-operator/step-registry/ipi/deprovision/aws/OWNERS new file mode 100644 index 0000000000000..f14198cff70e7 --- /dev/null +++ b/ci-operator/step-registry/ipi/deprovision/aws/OWNERS @@ -0,0 +1,11 @@ +approvers: +- smarterclayton +- wking +- stevekuznetsov +- vrutkovs +- abhinavdahiya +- deads2k +- crawford +- ewolinetz +- csrwng +- staebler diff --git a/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/OWNERS b/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/OWNERS new file mode 100644 index 0000000000000..f14198cff70e7 --- /dev/null +++ b/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/OWNERS @@ -0,0 +1,11 @@ +approvers: +- smarterclayton +- wking +- stevekuznetsov +- vrutkovs +- abhinavdahiya +- deads2k +- crawford +- ewolinetz +- csrwng +- staebler diff --git a/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-commands.sh b/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-commands.sh new file mode 100755 index 0000000000000..b7cb664676698 --- /dev/null +++ b/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-commands.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -o nounset +set -o errexit +set -o pipefail + +# TODO: move to image +pip3 install --user yq +export PATH=~/.local/bin:$PATH + +export AWS_SHARED_CREDENTIALS_FILE=$CLUSTER_PROFILE_DIR/.awscred + +CONFIG="${SHARED_DIR}/install-config.yaml" + +hosted_zone="$(yq -r '.platform.aws.hostedZone' "${CONFIG}")" +echo "Deleting hosted zone: ${hosted_zone}" +aws route53 delete-hosted-zone --id "${hosted_zone}" diff --git a/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-ref.metadata.json b/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-ref.metadata.json new file mode 100644 index 0000000000000..ac327798587dc --- /dev/null +++ b/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-ref.metadata.json @@ -0,0 +1,17 @@ +{ + "path": "ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-ref.yaml", + "owners": { + "approvers": [ + "smarterclayton", + "wking", + "stevekuznetsov", + "vrutkovs", + "abhinavdahiya", + "deads2k", + "crawford", + "ewolinetz", + "csrwng", + "staebler" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-ref.yaml b/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-ref.yaml new file mode 100644 index 0000000000000..7b5a63e38a8f7 --- /dev/null +++ b/ci-operator/step-registry/ipi/deprovision/aws/sharednetwork/ipi-deprovision-aws-sharednetwork-ref.yaml @@ -0,0 +1,13 @@ +ref: + as: ipi-deprovision-aws-sharednetwork + from_image: + namespace: ocp + name: "4.8" + tag: upi-installer + commands: ipi-deprovision-aws-sharednetwork-commands.sh + resources: + requests: + cpu: 10m + memory: 100Mi + documentation: |- + The IPI AWS sharednetwork deprovision step deletes the AWS resources for shared network. diff --git a/ci-operator/step-registry/openshift/e2e/aws/sharednetwork/openshift-e2e-aws-sharednetwork-workflow.yaml b/ci-operator/step-registry/openshift/e2e/aws/sharednetwork/openshift-e2e-aws-sharednetwork-workflow.yaml index adb2f2efa612c..d3a1b3c293932 100644 --- a/ci-operator/step-registry/openshift/e2e/aws/sharednetwork/openshift-e2e-aws-sharednetwork-workflow.yaml +++ b/ci-operator/step-registry/openshift/e2e/aws/sharednetwork/openshift-e2e-aws-sharednetwork-workflow.yaml @@ -6,6 +6,6 @@ workflow: test: - ref: openshift-e2e-test post: - - chain: ipi-aws-post + - chain: ipi-aws-post-sharednetwork documentation: |- The Openshift E2E AWS workflow executes the common end-to-end test suite on AWS in a shared network cluster configuration.