Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add vsphere ELB config #47676

Merged
merged 1 commit into from Mar 27, 2024
Merged

Conversation

zhaozhanqi
Copy link
Contributor

No description provided.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 16, 2024
@zhaozhanqi
Copy link
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.15-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 16, 2024
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 23, 2024
@zhaozhanqi
Copy link
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.16-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28

1 similar comment
@zhaozhanqi
Copy link
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.16-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28

@openshift-bot
Copy link
Contributor

Issues in openshift/release go stale after 30d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle stale.
Stale issues rot after an additional 15d of inactivity and eventually close.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 24, 2024
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 24, 2024
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 4, 2024
@openshift-ci-robot
Copy link
Contributor

@zhaozhanqi, pj-rehearse: unable to determine affected jobs. This could be due to a branch that needs to be rebased. ERROR:

could not load configuration from base revision of release repo: could not checkout worktree: '[git checkout 96eb2628e121df0e4cd7c5a0028b3b7b2c450449]' failed with out: fatal: reference is not a tree: 96eb2628e121df0e4cd7c5a0028b3b7b2c450449
and error exit status 128
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse abort to abort all active rehearsals

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@zhaozhanqi
Copy link
Contributor Author

@jianlinliu @liangxia Usually this /pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.16-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28 will trigger one accept nightly build.

Do you happen to know is there a way this can trigger a payload build from cluster-bot? to pre-merge testing this Pr openshift/api#1757

cc @sgaoshang

@liangxia
Copy link
Member

liangxia commented Mar 4, 2024

@jianlinliu @liangxia Usually this /pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.16-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28 will trigger one accept nightly build.

Do you happen to know is there a way this can trigger a payload build from cluster-bot? to pre-merge testing this Pr openshift/api#1757

cc @sgaoshang

Not sure if this is the one you want, https://docs.ci.openshift.org/docs/architecture/ci-operator/#testing-with-an-ephemeral-openshift-release

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 5, 2024
@openshift-ci-robot
Copy link
Contributor

@zhaozhanqi, pj-rehearse: unable to determine affected jobs. This could be due to a branch that needs to be rebased. ERROR:

couldn't prepare candidate: couldn't rebase candidate onto master: %!w(<nil>)
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse abort to abort all active rehearsals

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 5, 2024
@zhaozhanqi
Copy link
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.16-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28

@zhaozhanqi
Copy link
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.16-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28

1 similar comment
@zhaozhanqi
Copy link
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.16-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28

@@ -99,6 +105,17 @@ networking:
machineNetwork:
- cidr: "${machine_cidr}"
EOF

# if loadbalancer is UserManaged, it's mean using external LB,
# then keepalived and haproxy will not deployed, but coredns still keep
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is difference compared with the existing cucushift-installer-rehearse-vsphere-ipi-zones-multisubnets-external-lb install workflow ?

Does that mean if loadbalancer is OpenShiftManagedDefault, though we did not set apiVIPs and ingressVIPs in install-config.yaml, keepalived and haproxy are still deployed, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also talk to Dev for this question, see https://issues.redhat.com/browse/OPNET-305?focusedId=23430205&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-23430205

So like if using loadbalancer is UserManaged is IPI, if apiVIP and ingressVIP is empty, it's UPI

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay. got it.

@@ -2658,6 +2658,19 @@ tests:
test:
- chain: openshift-e2e-test-qe-destructive
workflow: cucushift-installer-rehearse-vsphere-ipi-zones-multisubnets-external-lb
- as: vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f7
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

f7 sounds a bit aggressive, vsphere does not have a big number of slice quota, I think we can set it to f28 to keep consistent with the above vsphere-ipi-zones-multisubnets-external-lb job.

And generally we always add a destructive ci job using the same install workflow as a pair.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, updated f28

@@ -20,6 +20,12 @@ declare vsphere_extra_portgroup_2
source "${SHARED_DIR}/vsphere_context.sh"
# shellcheck source=/dev/null
source "${SHARED_DIR}/govc.sh"
declare -a vips
mapfile -t vips < "${SHARED_DIR}"/vips.txt
APIVIP=${vips[0]}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think here we can directly set APIVIP and INGRESSVIP to a correct value per different case:

declare -a vips
mapfile -t vips < "${SHARED_DIR}"/vips.txt
if [[ ${LB_TYPE} == "UserManaged" ]]; then
    APIVIP=${vips[0]}
    INGRESSVIP=${vips[1]}
else
    APIVIP=""
    INGRESSVIP=""
fi

After that, we can directly reference INGRESSVIP and APIVIP, and write then into "${CONFIG}" on line 38, and drop the if block on line 112.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, I was thinking it at the beginning. However if so we also need to set .platform.vsphere.loadBalancer.type which value should be UserManaged in this case for 4.16, not sure .platform.vsphere.loadBalancer.type will be supported in previous version. so I did not change the origin install-config.yaml. to avoid to cause the conflict. thus I don't need to regression test on other profile, WDYT?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That should be not difficult.

declare -a vips
mapfile -t vips < "${SHARED_DIR}"/vips.txt
if [[ ${LB_TYPE} == "UserManaged" ]]; then
    APIVIP=${vips[0]}
    INGRESSVIP=${vips[1]}
    LB_TYPE_DEF="loadBalancer:
      type: UserManaged"
else
    APIVIP=""
    INGRESSVIP=""
    LB_TYPE_DEF=
fi

cat >>"${CONFIG}" <<EOF
...
platform:
  vsphere:
    apiVIP: ${APIVIP}
    ingressVIP: ${INGRESSVIP}
    ${LB_TYPE_DEF}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

apiVIPs also need to instead of apiVIP.

how about

if [ ${LB_TYPE} = "UserManaged" ]; then
  yq --inplace eval-all 'select(fileIndex == 0) * select(fileIndex == 1)' "${CONFIG}" - <<< "
platform:
  baremetal:
    apiVIPs:
    - ${vips[0]}
    ingressVIPs:
    - ${vips[1]}
    loadBalancer:
      type: UserManaged
"      
fi  

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mean here it is updating platform.vsphere.apiVIPs, but not platform.vsphere.apiVIP? apiVIPs is newly introduced in this feature? If update platform.vsphere.apiVIPs, we still need to leave platform.vsphere.apiVIP to be empty? Do you know what is the difference between them?

Actually the initial purpose of the comment is not recommend to use yq, because it is download yq binary from internet, when multi jobs are running, it will hit network bottleneck issue.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no, aipVIPs is not new, guess they already used for long time maybe from dualstack. apiVIP should be deprecated in future.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds like we should drop the line platform.vsphere.apiVIP in install-config.yaml, but use the new one.

If using platform.vsphere.apiVIPs, we can do the same:

declare -a vips
mapfile -t vips < "${SHARED_DIR}"/vips.txt
if [[ ${LB_TYPE} == "UserManaged" ]]; then
    APIVIPS_DEF="apiVIPs:
      - ${vips[0]}"
    INGRESSVIPS_DEF="ingressVIPs:
      - ${vips[1]}"
    LB_TYPE_DEF="loadBalancer:
      type: UserManaged"
else
    APIVIPS_DEF=""
    INGRESSVIPS_DEF=""
    LB_TYPE_DEF=""
fi

cat >>"${CONFIG}" <<EOF
...
platform:
  vsphere:
    ${LB_TYPE_DEF}
    ${APIVIPS_DEF}
    ${INGRESSVIPS_DEF}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, thanks. let me try

@@ -2658,6 +2658,19 @@ tests:
test:
- chain: openshift-e2e-test-qe-destructive
workflow: cucushift-installer-rehearse-vsphere-ipi-zones-multisubnets-external-lb
- as: vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generally we also need to add a destructive ci job using the same install workflow as a pair.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zhaozhanqi this is the last unresolved comment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, missed this one.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jianlinliu added and also update the title due to it's too long(> 62)

@zhaozhanqi
Copy link
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.16-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28

Copy link
Contributor

openshift-ci bot commented Mar 27, 2024

@zhaozhanqi: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/rehearse/periodic-ci-openshift-openshift-tests-private-release-4.15-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28 b749719d16f6b6e3a26b640cbf239eb215df07e8 link unknown /pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.15-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@jianlinliu
Copy link
Contributor

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.14-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-f28

@zhaozhanqi
Copy link
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.16-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-usermanaged-f28

@zhaozhanqi
Copy link
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.14-amd64-nightly-vsphere-ipi-zones-multisubnets-external-lb-f28

@jianlinliu both this job and I triggered 4.16-elb with usermanagerd are passed at least in install cluster part

@jianlinliu
Copy link
Contributor

/lgtm

@jianlinliu
Copy link
Contributor

/pj-rehearse ack

@openshift-ci-robot openshift-ci-robot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Mar 27, 2024
@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 27, 2024
@jianlinliu
Copy link
Contributor

cc @liangxia to review.

@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Mar 27, 2024
@liangxia
Copy link
Member

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 27, 2024
Copy link
Contributor

openshift-ci bot commented Mar 27, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jianlinliu, liangxia, zhaozhanqi

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 27, 2024
@openshift-merge-bot openshift-merge-bot bot merged commit 35cbaab into openshift:master Mar 27, 2024
20 checks passed
@jianlinliu jianlinliu mentioned this pull request Mar 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. rehearsals-ack Signifies that rehearsal jobs have been acknowledged
Projects
None yet
6 participants