Bug 2039339
| Summary: | cluster-ingress-operator should report Unupgradeable if user has modified the aws resources annotations | ||
|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | Arjun Naik <anaik> |
| Component: | Networking | Assignee: | Arjun Naik <anaik> |
| Networking sub component: | router | QA Contact: | Arvind iyengar <aiyengar> |
| Status: | CLOSED ERRATA | Docs Contact: | |
| Severity: | medium | ||
| Priority: | unspecified | CC: | aos-bugs, chdeshpa, cwawak, hongli, mjoseph, mmasters, wking |
| Version: | 4.10 | ||
| Target Milestone: | --- | ||
| Target Release: | 4.10.0 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: |
Cause:
The cluster-ingress-operator did not managed the aws resources annotation once the LoadBalancer type Service was created. Users could update the annotation value.
Consequence:
If the tags in Infrastructure were changed the new values could not be written to the annotation without overwriting the value set the user.
Fix:
The operator now warns the user that the corresponding IngressController is degraded when the annotation value is out of sync.
Result:
In subsequent versions of OCP the annotations value can be safely updated by the cluster-ingress-operator based on external sources.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2022-03-12 04:40:34 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 2058699 | ||
|
Description
Arjun Naik
2022-01-11 14:17:57 UTC
Setting blocker- as this isn't a regression or upgrade blocker. Arjun, I notice you have opened https://github.com/openshift/cluster-ingress-operator/pull/693 for this BZ, so I am assigning the BZ to you. We'll need to discuss the mechanics of getting the change in the branch in which we need it. Verified in "4.10.0-0.nightly-2022-01-22-102609" release version. With this payload, it is observed that with loadbalancer with "service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags" service level annotation, the ingress operator and the CO resource logs the warning about the presence of the annotation and marks upgradeable=false state:
------
oc get clusterversion
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS
version 4.10.0-0.nightly-2022-01-22-102609 True False 135m Cluster version is 4.10.0-0.nightly-2022-01-22-102609
oc -n openshift-ingress annotate service/router-internalapps service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags='test-cluster-qe'
service/router-internalapps annotated
oc -n openshift-ingress get service/router-internalapps -o yaml
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: test-cluster-qe <-----
service.beta.kubernetes.io/aws-load-balancer-healthcheck-healthy-threshold: "2"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "10"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout: "4"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold: "2"
service.beta.kubernetes.io/aws-load-balancer-type: nlb
traffic-policy.network.alpha.openshift.io/local-with-fallback: ""
creationTimestamp: "2022-01-24T05:26:09Z"
check the ingresscontroller and the related CO:
oc -n openshift-ingress-operator get ingresscontroller internalapps -o yaml
- lastTransitionTime: "2022-01-24T05:26:47Z"
status: "False"
type: Degraded
- lastTransitionTime: "2022-01-24T05:48:14Z"
message: 'One or more managed resources are not upgradeable: load balancer service <------
has been modified; changes must be reverted before upgrading: '
reason: OperandsNotUpgradeable
status: "False" <------
type: Upgradeable <------
domain: internalapps.pdhamdhe41024.qe.devcluster.openshift.com
endpointPublishingStrategy:
loadBalancer:
providerParameters:
aws:
type: NLB
type: AWS
scope: External
type: LoadBalancerService
oc get co ingress -o yaml
- lastTransitionTime: "2022-01-24T03:41:38Z"
message: The "default" ingress controller reports Degraded=False.
reason: IngressNotDegraded
status: "False"
type: Degraded
- lastTransitionTime: "2022-01-24T05:48:15Z"
message: 'Some ingresscontrollers are not upgradeable: ingresscontroller "internalapps" <------
is not upgradeable: OperandsNotUpgradeable: One or more managed resources are
not upgradeable: load balancer service has been modified; changes must be reverted
before upgrading: '
reason: IngressControllersNotUpgradeable
status: "False" <------
type: Upgradeable <------
extension: null
------
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Moderate: OpenShift Container Platform 4.10.3 security update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2022:0056 The needinfo request[s] on this closed bug have been removed as they have been unresolved for 120 days |