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

Bug 1904582: Assume ingresscontroller is external absent status #502

Conversation

Miciah
Copy link
Contributor

@Miciah Miciah commented Dec 4, 2020

If an ingresscontroller's status.endpointPublishingStrategy.type field is LoadBalancerService but status.endpointPublishingStrategy.loadBalancer is nil, assume the ingresscontroller should have an external load balancer.

#254 added support for internal scope for load balancers. In doing so, it changed the operator logic to initialize status.endpointPublishingStrategy.loadBalancer to indicate the scope when an ingresscontroller was created, using the corresponding fields in the ingresscontroller's spec to determine the scope. The same change also changed operator logic to assume that the ingresscontroller has internal scope if status.endpointPublishingStrategy.loadBalancer is nil. However, if an ingresscontroller already exists, the operator does not update status.endpointPublishingStrategy.loadBalancer. This change was made in OpenShift 4.2, which means that if a cluster was upgraded from 4.1, any ingresscontrollers that were created prior to the upgrade would not have status.endpointPublishingStrategy.loadBalancer set.

Subsequently, #472 made the ingresscontroller's scope mutable, meaning if an ingresscontroller has an external load balancer and status.endpointPublishingStrategy.loadBalancer indicates that the ingresscontroller should have an internal load balancer, then the operator changes the load balancer from external to internal.

In combination, those two changes cause the operator to change an ingresscontroller's load balancer from external to internal if the cluster has been upgraded from 4.1 → 4.2 → ... → 4.6 and the ingresscontroller was originally created on OpenShift 4.1.

This PR rectifies the situation by amending the logic that was added in #254 to assume that a nil value for status.endpointPublishingStrategy.loadBalancer means that the load balancer should be external. This assumption is valid because status.endpointPublishingStrategy.loadBalancer is nil exactly when the ingresscontroller was created on an OpenShift 4.1 cluster, and external scope was the only supported option on OpenShift 4.1.

  • pkg/operator/controller/ingress/load_balancer_service.go (desiredLoadBalancerService): Assume nil status.endpointPublishingStrategy.loadBalancer means external scope.

If an ingresscontroller's status.endpointPublishingStrategy.type field is
"LoadBalancerService" but status.endpointPublishingStrategy.loadBalancer is
nil, assume the ingresscontroller should have an external load balancer.

Commit 8cd622f added support for internal
scope for load balancers.  In doing so, it changed the operator logic to
initialize status.endpointPublishingStrategy.loadBalancer to indicate the
scope when an ingresscontroller was created, using the corresponding fields
in the ingresscontroller's spec to determine the scope.  The same commit
also changed operator logic to assume that the ingresscontroller has
internal scope if status.endpointPublishingStrategy.loadBalancer is nil.
However, if an ingresscontroller already exists, the operator does not
update status.endpointPublishingStrategy.loadBalancer.  This commit was
made in OpenShift 4.2, which means that if a cluster was upgraded from 4.1,
any ingresscontrollers that were created prior to the upgrade would not
have status.endpointPublishingStrategy.loadBalancer set.

Subsequently, commit 982682f made the
ingresscontroller's scope mutable, meaning if an ingresscontroller has an
external load balancer and status.endpointPublishingStrategy.loadBalancer
indicates that the ingresscontroller should have an internal load balancer,
then the operator changes the load balancer from external to internal.

In combination, those two commits cause the operator to change an
ingresscontroller's load balancer from external to internal if the cluster
has been upgraded from 4.1 → 4.2 → ... → 4.6 and the ingresscontroller was
originally created on OpenShift 4.1.

This commit rectifies the situation by amending the logic that was added in
commit 8cd622f to assume that a nil value
for status.endpointPublishingStrategy.loadBalancer means that the load
balancer should be external. This assumption is valid because
status.endpointPublishingStrategy.loadBalancer is nil exactly when the
ingresscontroller was created on an OpenShift 4.1 cluster, and external
scope was the only supported option on OpenShift 4.1.

* pkg/operator/controller/ingress/load_balancer_service.go
(desiredLoadBalancerService): Assume nil
status.endpointPublishingStrategy.loadBalancer means external scope.
@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Dec 4, 2020
@Miciah
Copy link
Contributor Author

Miciah commented Dec 4, 2020

We'll need this backported to 4.6 (which made scope mutable) but no further.
/cherry-pick release-4.6

@openshift-cherrypick-robot

@Miciah: once the present PR merges, I will cherry-pick it on top of release-4.6 in a new PR and assign it to you.

In response to this:

We'll need this backported to 4.6 (which made scope mutable) but no further.
/cherry-pick release-4.6

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.

@Miciah
Copy link
Contributor Author

Miciah commented Dec 4, 2020

/retitle Bug 1904582: Assume ingresscontroller is external absent status

@openshift-ci-robot openshift-ci-robot changed the title Assume ingresscontroller is external absent status Bug 1904582: Assume ingresscontroller is external absent status Dec 4, 2020
@openshift-ci-robot
Copy link
Contributor

@Miciah: This pull request references Bugzilla bug 1904582, which is invalid:

  • expected the bug to target the "4.7.0" release, but it targets "---" instead

Comment /bugzilla refresh to re-evaluate validity if changes to the Bugzilla bug are made, or edit the title of this pull request to link to a different bug.

In response to this:

Bug 1904582: Assume ingresscontroller is external absent status

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.

@openshift-ci-robot openshift-ci-robot added bugzilla/severity-unspecified Referenced Bugzilla bug's severity is unspecified for the PR. bugzilla/invalid-bug Indicates that a referenced Bugzilla bug is invalid for the branch this PR is targeting. labels Dec 4, 2020
@Miciah
Copy link
Contributor Author

Miciah commented Dec 4, 2020

/bugzilla refresh

@openshift-ci-robot
Copy link
Contributor

@Miciah: An error was encountered adding this pull request to the external tracker bugs for bug 1904582 on the Bugzilla server at https://bugzilla.redhat.com:

JSONRPC error 32000: There was an error reported for the RPC call to Jira: There was an error reported for a GitHub REST call. URL: https://api.github.com/repos/openshift/cluster-ingress-operator/pulls/502 Error: 403 Forbidden at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 111. at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 111. eval {...} called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 98 Bugzilla::Extension::ExternalBugs::Type::GitHub::_do_rest_call('Bugzilla::Extension::ExternalBugs::Type::GitHub=HASH(0x556e29...', 'https://api.github.com/repos/openshift/cluster-ingress-operat...', 'GET') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 62 Bugzilla::Extension::ExternalBugs::Type::GitHub::get_data('Bugzilla::Extension::ExternalBugs::Type::GitHub=HASH(0x556e29...', 'Bugzilla::Extension::ExternalBugs::Bug=HASH(0x556e291a14d8)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 302 eval {...} called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 302 Bugzilla::Extension::ExternalBugs::Bug::update_ext_info('Bugzilla::Extension::ExternalBugs::Bug=HASH(0x556e291a14d8)', 1) called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 125 Bugzilla::Extension::ExternalBugs::Bug::create('Bugzilla::Extension::ExternalBugs::Bug', 'HASH(0x556e28b20728)') called at /var/www/html/bugzilla/extensions/ExternalBugs/Extension.pm line 940 Bugzilla::Extension::ExternalBugs::bug_start_of_update('Bugzilla::Extension::ExternalBugs=HASH(0x556e285e6a80)', 'HASH(0x556e27f28f48)') called at /var/www/html/bugzilla/Bugzilla/Hook.pm line 21 Bugzilla::Hook::process('bug_start_of_update', 'HASH(0x556e27f28f48)') called at /var/www/html/bugzilla/Bugzilla/Bug.pm line 1173 Bugzilla::Bug::update('Bugzilla::Bug=HASH(0x556e289d24d8)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/WebService.pm line 88 Bugzilla::Extension::ExternalBugs::WebService::add_external_bug('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e28dcc428)') called at (eval 2592) line 1 eval ' $procedure->{code}->($self, @params) ;' called at /usr/share/perl5/vendor_perl/JSON/RPC/Legacy/Server.pm line 220 JSON::RPC::Legacy::Server::_handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e28df12b8)') called at /var/www/html/bugzilla/Bugzilla/WebService/Server/JSONRPC.pm line 297 Bugzilla::WebService::Server::JSONRPC::_handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e28df12b8)') called at /usr/share/perl5/vendor_perl/JSON/RPC/Legacy/Server.pm line 126 JSON::RPC::Legacy::Server::handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...') called at /var/www/html/bugzilla/Bugzilla/WebService/Server/JSONRPC.pm line 70 Bugzilla::WebService::Server::JSONRPC::handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...') called at /var/www/html/bugzilla/jsonrpc.cgi line 31 ModPerl::ROOT::Bugzilla::ModPerl::ResponseHandler::var_www_html_bugzilla_jsonrpc_2ecgi::handler('Apache2::RequestRec=SCALAR(0x556e28bdf540)') called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 207 eval {...} called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 207 ModPerl::RegistryCooker::run('Bugzilla::ModPerl::ResponseHandler=HASH(0x556e28de9840)') called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 173 ModPerl::RegistryCooker::default_handler('Bugzilla::ModPerl::ResponseHandler=HASH(0x556e28de9840)') called at /usr/lib64/perl5/vendor_perl/ModPerl/Registry.pm line 32 ModPerl::Registry::handler('Bugzilla::ModPerl::ResponseHandler', 'Apache2::RequestRec=SCALAR(0x556e28bdf540)') called at /var/www/html/bugzilla/mod_perl.pl line 139 Bugzilla::ModPerl::ResponseHandler::handler('Bugzilla::ModPerl::ResponseHandler', 'Apache2::RequestRec=SCALAR(0x556e28bdf540)') called at (eval 2592) line 0 eval {...} called at (eval 2592) line 0 at /var/www/html/bugzilla/Bugzilla/Error.pm line 130. Bugzilla::Error::_throw_error('global/user-error.html.tmpl', 'ext_bz_rest_error', 'HASH(0x556e2953ed18)') called at /var/www/html/bugzilla/Bugzilla/Error.pm line 193 Bugzilla::Error::ThrowUserError('ext_bz_rest_error', 'HASH(0x556e2953ed18)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 120 Bugzilla::Extension::ExternalBugs::Type::GitHub::_do_rest_call('Bugzilla::Extension::ExternalBugs::Type::GitHub=HASH(0x556e29...', 'https://api.github.com/repos/openshift/cluster-ingress-operat...', 'GET') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 62 Bugzilla::Extension::ExternalBugs::Type::GitHub::get_data('Bugzilla::Extension::ExternalBugs::Type::GitHub=HASH(0x556e29...', 'Bugzilla::Extension::ExternalBugs::Bug=HASH(0x556e291a14d8)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 302 eval {...} called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 302 Bugzilla::Extension::ExternalBugs::Bug::update_ext_info('Bugzilla::Extension::ExternalBugs::Bug=HASH(0x556e291a14d8)', 1) called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 125 Bugzilla::Extension::ExternalBugs::Bug::create('Bugzilla::Extension::ExternalBugs::Bug', 'HASH(0x556e28b20728)') called at /var/www/html/bugzilla/extensions/ExternalBugs/Extension.pm line 940 Bugzilla::Extension::ExternalBugs::bug_start_of_update('Bugzilla::Extension::ExternalBugs=HASH(0x556e285e6a80)', 'HASH(0x556e27f28f48)') called at /var/www/html/bugzilla/Bugzilla/Hook.pm line 21 Bugzilla::Hook::process('bug_start_of_update', 'HASH(0x556e27f28f48)') called at /var/www/html/bugzilla/Bugzilla/Bug.pm line 1173 Bugzilla::Bug::update('Bugzilla::Bug=HASH(0x556e289d24d8)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/WebService.pm line 88 Bugzilla::Extension::ExternalBugs::WebService::add_external_bug('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e28dcc428)') called at (eval 2592) line 1 eval ' $procedure->{code}->($self, @params) ;' called at /usr/share/perl5/vendor_perl/JSON/RPC/Legacy/Server.pm line 220 JSON::RPC::Legacy::Server::_handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e28df12b8)') called at /var/www/html/bugzilla/Bugzilla/WebService/Server/JSONRPC.pm line 297 Bugzilla::WebService::Server::JSONRPC::_handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e28df12b8)') called at /usr/share/perl5/vendor_perl/JSON/RPC/Legacy/Server.pm line 126 JSON::RPC::Legacy::Server::handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...') called at /var/www/html/bugzilla/Bugzilla/WebService/Server/JSONRPC.pm line 70 Bugzilla::WebService::Server::JSONRPC::handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...') called at /var/www/html/bugzilla/jsonrpc.cgi line 31 ModPerl::ROOT::Bugzilla::ModPerl::ResponseHandler::var_www_html_bugzilla_jsonrpc_2ecgi::handler('Apache2::RequestRec=SCALAR(0x556e28bdf540)') called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 207 eval {...} called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 207 ModPerl::RegistryCooker::run('Bugzilla::ModPerl::ResponseHandler=HASH(0x556e28de9840)') called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 173 ModPerl::RegistryCooker::default_handler('Bugzilla::ModPerl::ResponseHandler=HASH(0x556e28de9840)') called at /usr/lib64/perl5/vendor_perl/ModPerl/Registry.pm line 32 ModPerl::Registry::handler('Bugzilla::ModPerl::ResponseHandler', 'Apache2::RequestRec=SCALAR(0x556e28bdf540)') called at /var/www/html/bugzilla/mod_perl.pl line 139 Bugzilla::ModPerl::ResponseHandler::handler('Bugzilla::ModPerl::ResponseHandler', 'Apache2::RequestRec=SCALAR(0x556e28bdf540)') called at (eval 2592) line 0 eval {...} called at (eval 2592) line 0
Please contact an administrator to resolve this issue, then request a bug refresh with /bugzilla refresh.

In response to this:

/bugzilla refresh

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.

@Miciah
Copy link
Contributor Author

Miciah commented Dec 4, 2020

/bugzilla refresh

@openshift-ci-robot
Copy link
Contributor

@Miciah: An error was encountered adding this pull request to the external tracker bugs for bug 1904582 on the Bugzilla server at https://bugzilla.redhat.com:

JSONRPC error 32000: There was an error reported for the RPC call to Jira: There was an error reported for a GitHub REST call. URL: https://api.github.com/repos/openshift/cluster-ingress-operator/pulls/502 Error: 403 Forbidden at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 111. at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 111. eval {...} called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 98 Bugzilla::Extension::ExternalBugs::Type::GitHub::_do_rest_call('Bugzilla::Extension::ExternalBugs::Type::GitHub=HASH(0x556e29...', 'https://api.github.com/repos/openshift/cluster-ingress-operat...', 'GET') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 62 Bugzilla::Extension::ExternalBugs::Type::GitHub::get_data('Bugzilla::Extension::ExternalBugs::Type::GitHub=HASH(0x556e29...', 'Bugzilla::Extension::ExternalBugs::Bug=HASH(0x556e29d07940)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 302 eval {...} called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 302 Bugzilla::Extension::ExternalBugs::Bug::update_ext_info('Bugzilla::Extension::ExternalBugs::Bug=HASH(0x556e29d07940)', 1) called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 125 Bugzilla::Extension::ExternalBugs::Bug::create('Bugzilla::Extension::ExternalBugs::Bug', 'HASH(0x556e292a4f20)') called at /var/www/html/bugzilla/extensions/ExternalBugs/Extension.pm line 940 Bugzilla::Extension::ExternalBugs::bug_start_of_update('Bugzilla::Extension::ExternalBugs=HASH(0x556e292db520)', 'HASH(0x556e28d5ae90)') called at /var/www/html/bugzilla/Bugzilla/Hook.pm line 21 Bugzilla::Hook::process('bug_start_of_update', 'HASH(0x556e28d5ae90)') called at /var/www/html/bugzilla/Bugzilla/Bug.pm line 1173 Bugzilla::Bug::update('Bugzilla::Bug=HASH(0x556e2904db48)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/WebService.pm line 88 Bugzilla::Extension::ExternalBugs::WebService::add_external_bug('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e28cc4cd8)') called at (eval 2547) line 1 eval ' $procedure->{code}->($self, @params) ;' called at /usr/share/perl5/vendor_perl/JSON/RPC/Legacy/Server.pm line 220 JSON::RPC::Legacy::Server::_handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e2926bba8)') called at /var/www/html/bugzilla/Bugzilla/WebService/Server/JSONRPC.pm line 297 Bugzilla::WebService::Server::JSONRPC::_handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e2926bba8)') called at /usr/share/perl5/vendor_perl/JSON/RPC/Legacy/Server.pm line 126 JSON::RPC::Legacy::Server::handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...') called at /var/www/html/bugzilla/Bugzilla/WebService/Server/JSONRPC.pm line 70 Bugzilla::WebService::Server::JSONRPC::handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...') called at /var/www/html/bugzilla/jsonrpc.cgi line 31 ModPerl::ROOT::Bugzilla::ModPerl::ResponseHandler::var_www_html_bugzilla_jsonrpc_2ecgi::handler('Apache2::RequestRec=SCALAR(0x556e28e56c18)') called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 207 eval {...} called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 207 ModPerl::RegistryCooker::run('Bugzilla::ModPerl::ResponseHandler=HASH(0x556e28e57278)') called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 173 ModPerl::RegistryCooker::default_handler('Bugzilla::ModPerl::ResponseHandler=HASH(0x556e28e57278)') called at /usr/lib64/perl5/vendor_perl/ModPerl/Registry.pm line 32 ModPerl::Registry::handler('Bugzilla::ModPerl::ResponseHandler', 'Apache2::RequestRec=SCALAR(0x556e28e56c18)') called at /var/www/html/bugzilla/mod_perl.pl line 139 Bugzilla::ModPerl::ResponseHandler::handler('Bugzilla::ModPerl::ResponseHandler', 'Apache2::RequestRec=SCALAR(0x556e28e56c18)') called at (eval 2547) line 0 eval {...} called at (eval 2547) line 0 at /var/www/html/bugzilla/Bugzilla/Error.pm line 130. Bugzilla::Error::_throw_error('global/user-error.html.tmpl', 'ext_bz_rest_error', 'HASH(0x556e28ff5070)') called at /var/www/html/bugzilla/Bugzilla/Error.pm line 193 Bugzilla::Error::ThrowUserError('ext_bz_rest_error', 'HASH(0x556e28ff5070)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 120 Bugzilla::Extension::ExternalBugs::Type::GitHub::_do_rest_call('Bugzilla::Extension::ExternalBugs::Type::GitHub=HASH(0x556e29...', 'https://api.github.com/repos/openshift/cluster-ingress-operat...', 'GET') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Type/GitHub.pm line 62 Bugzilla::Extension::ExternalBugs::Type::GitHub::get_data('Bugzilla::Extension::ExternalBugs::Type::GitHub=HASH(0x556e29...', 'Bugzilla::Extension::ExternalBugs::Bug=HASH(0x556e29d07940)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 302 eval {...} called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 302 Bugzilla::Extension::ExternalBugs::Bug::update_ext_info('Bugzilla::Extension::ExternalBugs::Bug=HASH(0x556e29d07940)', 1) called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/Bug.pm line 125 Bugzilla::Extension::ExternalBugs::Bug::create('Bugzilla::Extension::ExternalBugs::Bug', 'HASH(0x556e292a4f20)') called at /var/www/html/bugzilla/extensions/ExternalBugs/Extension.pm line 940 Bugzilla::Extension::ExternalBugs::bug_start_of_update('Bugzilla::Extension::ExternalBugs=HASH(0x556e292db520)', 'HASH(0x556e28d5ae90)') called at /var/www/html/bugzilla/Bugzilla/Hook.pm line 21 Bugzilla::Hook::process('bug_start_of_update', 'HASH(0x556e28d5ae90)') called at /var/www/html/bugzilla/Bugzilla/Bug.pm line 1173 Bugzilla::Bug::update('Bugzilla::Bug=HASH(0x556e2904db48)') called at /loader/0x556e211e9d68/Bugzilla/Extension/ExternalBugs/WebService.pm line 88 Bugzilla::Extension::ExternalBugs::WebService::add_external_bug('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e28cc4cd8)') called at (eval 2547) line 1 eval ' $procedure->{code}->($self, @params) ;' called at /usr/share/perl5/vendor_perl/JSON/RPC/Legacy/Server.pm line 220 JSON::RPC::Legacy::Server::_handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e2926bba8)') called at /var/www/html/bugzilla/Bugzilla/WebService/Server/JSONRPC.pm line 297 Bugzilla::WebService::Server::JSONRPC::_handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...', 'HASH(0x556e2926bba8)') called at /usr/share/perl5/vendor_perl/JSON/RPC/Legacy/Server.pm line 126 JSON::RPC::Legacy::Server::handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...') called at /var/www/html/bugzilla/Bugzilla/WebService/Server/JSONRPC.pm line 70 Bugzilla::WebService::Server::JSONRPC::handle('Bugzilla::WebService::Server::JSONRPC::Bugzilla::Extension::E...') called at /var/www/html/bugzilla/jsonrpc.cgi line 31 ModPerl::ROOT::Bugzilla::ModPerl::ResponseHandler::var_www_html_bugzilla_jsonrpc_2ecgi::handler('Apache2::RequestRec=SCALAR(0x556e28e56c18)') called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 207 eval {...} called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 207 ModPerl::RegistryCooker::run('Bugzilla::ModPerl::ResponseHandler=HASH(0x556e28e57278)') called at /usr/lib64/perl5/vendor_perl/ModPerl/RegistryCooker.pm line 173 ModPerl::RegistryCooker::default_handler('Bugzilla::ModPerl::ResponseHandler=HASH(0x556e28e57278)') called at /usr/lib64/perl5/vendor_perl/ModPerl/Registry.pm line 32 ModPerl::Registry::handler('Bugzilla::ModPerl::ResponseHandler', 'Apache2::RequestRec=SCALAR(0x556e28e56c18)') called at /var/www/html/bugzilla/mod_perl.pl line 139 Bugzilla::ModPerl::ResponseHandler::handler('Bugzilla::ModPerl::ResponseHandler', 'Apache2::RequestRec=SCALAR(0x556e28e56c18)') called at (eval 2547) line 0 eval {...} called at (eval 2547) line 0
Please contact an administrator to resolve this issue, then request a bug refresh with /bugzilla refresh.

In response to this:

/bugzilla refresh

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.

@sgreene570
Copy link
Contributor

LGTM once the bugzilla is linked

@sdodson
Copy link
Member

sdodson commented Dec 4, 2020

/bugzilla refresh

@openshift-ci-robot openshift-ci-robot added bugzilla/severity-urgent Referenced Bugzilla bug's severity is urgent for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. and removed bugzilla/severity-unspecified Referenced Bugzilla bug's severity is unspecified for the PR. labels Dec 4, 2020
@openshift-ci-robot
Copy link
Contributor

@sdodson: This pull request references Bugzilla bug 1904582, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target release (4.7.0) matches configured target release for branch (4.7.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, ON_DEV, POST, POST)

In response to this:

/bugzilla refresh

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.

@openshift-ci-robot openshift-ci-robot removed the bugzilla/invalid-bug Indicates that a referenced Bugzilla bug is invalid for the branch this PR is targeting. label Dec 4, 2020
@sgreene570
Copy link
Contributor

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Dec 4, 2020
@openshift-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Miciah, sgreene570

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

@bbrowning
Copy link

Does this open the door for the potential reverse problem? If someone manually changed a 4.1.z cluster's ingresscontroller to have internal load balancer after the cluster was initially installed, will this inadvertently change that back to an external load balancer?

Or would any manual change to point the apps domain at an internal load balancer have been reverted by the ingress operator anyway, before this change?

@Miciah
Copy link
Contributor Author

Miciah commented Dec 4, 2020

Does this open the door for the potential reverse problem? If someone manually changed a 4.1.z cluster's ingresscontroller to have internal load balancer after the cluster was initially installed, will this inadvertently change that back to an external load balancer?

No, if the administrator changed the scope, then that means there is an explicit value for spec.endpointPublishingStrategy.loadBalancer.scope.

Or would any manual change to point the apps domain at an internal load balancer have been reverted by the ingress operator anyway, before this change?

What kind of manual changes do you mean? Directly modifying the Service or DNSRecord objects that the operator creates is unsupported.

@Miciah
Copy link
Contributor Author

Miciah commented Dec 4, 2020

No, if the administrator changed the scope, then that means there is an explicit value for spec.endpointPublishingStrategy.loadBalancer.scope.

And to complete that thought, #472 means that changes to spec.endpointPublishingStrategy.loadBalancer.scope are reflected to status.endpointPublishingStrategy.loadBalancer.scope:

if specLB != nil && statusLB != nil && specLB.Scope != statusLB.Scope {
ic.Status.EndpointPublishingStrategy.LoadBalancer.Scope = effectiveStrategy.LoadBalancer.Scope
}

@bbrowning
Copy link

What kind of manual changes do you mean? Directly modifying the Service or DNSRecord objects that the operator creates is unsupported.

I was referring to a user modifying the cloud resources directly for started-in-4.1 clusters where users could not choose internal versus external load balancers via the API. Back then if you wanted an internal only load balancer, your only option was to modify the cloud resources directly, right? And I don't think we reconciled manual changes away? I know of no way to determine what, if any, clusters would have done that and if it was never a suggested or supported option for older clusters than my concern is probably irrelevant.

@openshift-merge-robot openshift-merge-robot merged commit 770adfb into openshift:master Dec 4, 2020
@openshift-ci-robot
Copy link
Contributor

@Miciah: All pull requests linked via external trackers have merged:

Bugzilla bug 1904582 has been moved to the MODIFIED state.

In response to this:

Bug 1904582: Assume ingresscontroller is external absent status

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.

@openshift-cherrypick-robot

@Miciah: new pull request created: #503

In response to this:

We'll need this backported to 4.6 (which made scope mutable) but no further.
/cherry-pick release-4.6

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.

@Miciah
Copy link
Contributor Author

Miciah commented Dec 4, 2020

What kind of manual changes do you mean? Directly modifying the Service or DNSRecord objects that the operator creates is unsupported.

I was referring to a user modifying the cloud resources directly for started-in-4.1 clusters where users could not choose internal versus external load balancers via the API. Back then if you wanted an internal only load balancer, your only option was to modify the cloud resources directly, right? And I don't think we reconciled manual changes away? I know of no way to determine what, if any, clusters would have done that and if it was never a suggested or supported option for older clusters than my concern is probably irrelevant.

That's true, we didn't reconcile away user-added annotations on the service, but as you say, we have never suggested or supported administrators doing that. In general, directly modifying operator-managed resources is unsupported.

@Miciah
Copy link
Contributor Author

Miciah commented Dec 4, 2020

There have been cases where we suggested setting spec.endpointPublishingStrategy.type: Private and creating a user-managed service. If a user has done that, that's fine; the operator will not mess with user-created resources.

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. bugzilla/severity-urgent Referenced Bugzilla bug's severity is urgent for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants