Skip to content

NO-ISSUE: test MCC proxy. Refactor TC 52373 proxy test. - #6355

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
sergiordlr:refactor_tc_52373_proxy_test
Jul 31, 2026
Merged

NO-ISSUE: test MCC proxy. Refactor TC 52373 proxy test.#6355
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
sergiordlr:refactor_tc_52373_proxy_test

Conversation

@sergiordlr

@sergiordlr sergiordlr commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

- What I did

Proxy test OCP-52373 has been modified with the following changes:

  • Test that the MCC is getting the proxy configuration too
  • Check that the kube apiserver is ready before modifying the MCPs to unpause them, in order to avoid instabilities due to the ValidatingAdmissionPolicy.
❯ I0730 15:20:00.920955   17040 client.go:727] Error running /usr/bin/oc --kubeconfig=/tmp/kubeconfig patch mcp worker --type merge -p {"spec":{"paused": false}}:                                                 
  The machineconfigpools "worker" is invalid: : ValidatingAdmissionPolicy 'machineconfigpool-osimagestream-reference-validation' denied request: failed to configure policy: failed to find resource referenced by 
 paramKind: 'machineconfiguration.openshift.io/v1, Kind=OSImageStream'   
  • Make sure that all deferred instructions are executed, even if a function reports an error.

An instruction reporting a test failure in a deferred section will stop the execution of this deferred section. Having several deferred sections is a solution, but sometimes we have a single big deferred section. In order to make sure that those scenarios fully execute all the instructions even if a failure happens we created the SafeCleanup function.

  • The existing calls to InterceptGomegaFailures have been refactored to use the SafeCleanup function, which is cleaner.

In the future we should refactor the pause function to make it return an error instead of directly failing the test case.

- How to verify it
Test should pass

Summary by CodeRabbit

  • Tests
    • Expanded validation for paused machine configuration pools using HTTP, HTTPS, and no-proxy settings.
    • Improved checks for degraded status and rollout completion across relevant machine configuration components.
    • Strengthened test cleanup and error reporting to provide more reliable results.
    • Added reliable retrieval and restoration of resource specifications during testing.

@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 Jul 31, 2026
@openshift-ci

openshift-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci-robot openshift-ci-robot added jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jul 31, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@sergiordlr: This pull request references Jira Issue OCPBUGS-92811, which is invalid:

  • expected the bug to be in one of the following states: NEW, ASSIGNED, POST, but it is Verified instead

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

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

- What I did

Proxy test OCP-52373 has been modified to

  • Test that the MCC is getting the proxy configuration too
  • The kube apiserver is ready before modifying the MCPs to unpause them, in order to avoid instabilities due to the ValidatingAdmissionPolicy.
❯ I0730 15:20:00.920955   17040 client.go:727] Error running /usr/bin/oc --kubeconfig=/tmp/kubeconfig patch mcp worker --type merge -p {"spec":{"paused": false}}:                                                 
 The machineconfigpools "worker" is invalid: : ValidatingAdmissionPolicy 'machineconfigpool-osimagestream-reference-validation' denied request: failed to configure policy: failed to find resource referenced by 
paramKind: 'machineconfiguration.openshift.io/v1, Kind=OSImageStream'   
  • Make sure that all deferred instructions are executed, even if a function reports an error.

An instruction reporting a test failure in a deferred section will stop the execution of this deferred section. Having several deferred sections is a solution, but sometimes we have a single big deferred section. In order to make sure that those scenarios fully execute all the instructions even if a failure happens we created the SafeCleanup function.

- How to verify it
Test should pass

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 31, 2026
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Walkthrough

This PR adds spec retrieval and aggregated cleanup helpers. It updates extended privileged tests to restore proxy state safely, validate proxy propagation and degraded conditions, and use the cleanup helper during scale tests.

Changes

Extended Privileged Test Updates

Layer / File(s) Summary
Spec and cleanup helpers
test/extended-priv/resource.go, test/extended-priv/util.go
Adds Resource.GetSpec() and updates GetSpecOrFail to propagate retrieval errors. Adds SafeCleanup to collect cleanup failures, log them, and report an aggregate failure.
Paused-pool proxy test flow
test/extended-priv/mco_machineconfigpool.go
Consolidates test setup, captures and restores proxy configuration with GetSpecOrFail and SetSpec, applies all proxy fields in one patch, and validates propagation to the MCD and MCC. The test also checks degraded conditions and kube-apiserver rollout completion.
MachineSet scale cleanup
test/extended-priv/mco_scale.go
Uses SafeCleanup to remove the cloned MachineSet and restore the expected worker count.

Estimated code review effort: 3 (Moderate) | ~20 minutes


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 1 warning)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error The test logs proxyInitialConfig, which can contain proxy credentials, and includes proxyValue in assertion messages; these values can expose passwords in CI logs. Remove credential-bearing proxy configuration from log messages and assertion details, or redact passwords and other secrets before logging.
Microshift Test Compatibility ⚠️ Warning The modified proxy test is unguarded and accesses MCP/MachineConfiguration and ClusterOperator resources, which use OpenShift API groups unavailable on MicroShift. MicroShift compatibility notice: add [apigroup:config.openshift.io] and [apigroup:machineconfiguration.openshift.io] tags, or guard the test with IsMicroShiftCluster and g.Skip().
✅ Passed checks (13 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed All Ginkgo titles in the changed files are static string literals; no dynamic names, node or namespace values, timestamps, IPs, or generated identifiers were added.
Test Structure And Quality ✅ Passed The proxy test (OCP-52373) demonstrates proper Ginkgo test structure: (1) Single responsibility verified—test validates proxy config on MCD and MCC; (2) SafeCleanup ensures all deferred cleanup exe...
Single Node Openshift (Sno) Test Compatibility ✅ Passed The diff adds no Ginkgo It/Describe/Context/When declarations; it only modifies existing tests and cleanup helpers, so this new-test SNO check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed The PR changes only four test helper/extended-test Go files; no deployment manifests, controllers, or topology scheduling constraints were added or modified.
Ote Binary Stdout Contract ✅ Passed The PR adds no process-level stdout writes. OTE main has no fmt/log/klog output, and changed logger calls route through GinkgoWriter inside It or deferred test cleanup.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The patch modifies an existing test and adds no IPv4 literals or network APIs; proxy-fake and test.52373.no-proxy.com are configuration values, not external connections.
No-Weak-Crypto ✅ Passed The PR adds proxy checks, resource access, and cleanup logic only; added lines contain no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret comparisons.
Container-Privileges ✅ Passed The PR changes only four Go test files. No added container/Kubernetes manifest contains privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, root, or allowPrivilegeEscalation settings.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the MCC proxy test refactor and matches the pull request's primary changes.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/extended-priv/mco_machineconfigpool.go`:
- Around line 140-147: Redact sensitive proxy details in
test/extended-priv/mco_machineconfigpool.go lines 140-147 by changing the
capture and restore logs to report only that the configuration was captured or
restored, without logging proxyInitialConfig. In test/extended-priv/util.go
lines 327-331, update SafeCleanup to redact sensitive values before logging or
embedding collected assertion failures in the final message.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f85f94e3-fc73-40af-a704-de9dc84962d0

📥 Commits

Reviewing files that changed from the base of the PR and between 538eaab and 59d4c60.

📒 Files selected for processing (3)
  • test/extended-priv/mco_machineconfigpool.go
  • test/extended-priv/resource.go
  • test/extended-priv/util.go

Comment on lines +140 to 147
proxyInitialConfig := proxy.GetSpecOrFail()
logger.Infof("Initial proxy configuration: %s", proxyInitialConfig)
logger.Infof("OK!\n")

wmcp := NewMachineConfigPool(oc.AsAdmin(), MachineConfigPoolWorker)
mmcp := NewMachineConfigPool(oc.AsAdmin(), MachineConfigPoolMaster)

defer func() {
defer SafeCleanup(func() {
logger.Infof("Start TC defer block")

logger.Infof("Restore original proxy config %s", proxyInitialConfig)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Remove or redact sensitive cleanup output.

proxyInitialConfig can contain HTTP proxy credentials. Lines 141 and 147 write it directly to CI logs. SafeCleanup also writes collected assertion text without redaction. A failed proxy restore can then report the same sensitive configuration.

  • test/extended-priv/mco_machineconfigpool.go#L140-L147: Log that the proxy configuration was captured or restored. Do not log the full specification.
  • test/extended-priv/util.go#L327-L331: Redact sensitive values before logging or including collected failures in the final assertion message.

As per coding guidelines, flag logging that may expose passwords, tokens, API keys, PII, session IDs, internal hostnames, or customer data.

📍 Affects 2 files
  • test/extended-priv/mco_machineconfigpool.go#L140-L147 (this comment)
  • test/extended-priv/util.go#L327-L331
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/extended-priv/mco_machineconfigpool.go` around lines 140 - 147, Redact
sensitive proxy details in test/extended-priv/mco_machineconfigpool.go lines
140-147 by changing the capture and restore logs to report only that the
configuration was captured or restored, without logging proxyInitialConfig. In
test/extended-priv/util.go lines 327-331, update SafeCleanup to redact sensitive
values before logging or embedding collected assertion failures in the final
message.

Source: Coding guidelines

@sergiordlr
sergiordlr force-pushed the refactor_tc_52373_proxy_test branch from 59d4c60 to 44cb8f4 Compare July 31, 2026 10:13
@sergiordlr

Copy link
Copy Markdown
Contributor Author
Manual execution logs
  I0731 11:39:57.893608 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get infrastructure cluster -o=jsonpath={.status.platformStatus.type}'
  I0731 11:39:58.104902 3483790 test_context.go:530] The --provider flag is not set. Continuing as if --provider=skeleton had been used.
  Running Suite:  - /home/fedora/Workspace/machine-config-operator
  ================================================================
  Random Seed: 1785497997 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [ReportBeforeSuite] 
  /home/fedora/Workspace/machine-config-operator/vendor/k8s.io/kubernetes/test/e2e/invariants/logcheck/logcheck.go:169
  [ReportBeforeSuite] PASSED [0.000 seconds]
  ------------------------------
  [sig-mco][Suite:openshift/machine-config-operator/longduration][Serial][Disruptive] MCO [PolarionID:52373][OTP] Modify proxy configuration in paused pools
  /home/fedora/Workspace/machine-config-operator/test/extended-priv/mco_machineconfigpool.go:108
    STEP: Creating a kubernetes client @ 07/31/26 11:39:58.106
  I0731 11:39:58.324129 3483790 client.go:164] configPath is now "/tmp/configfile135086096"
  I0731 11:39:58.324177 3483790 client.go:291] The user is now "e2e-test-mco-md28r-user"
  I0731 11:39:58.324184 3483790 client.go:293] Creating project "e2e-test-mco-md28r"
  I0731 11:39:58.404304 3483790 client.go:302] Waiting on permissions in project "e2e-test-mco-md28r" ...
  I0731 11:39:58.508327 3483790 client.go:363] Waiting for ServiceAccount "default" to be provisioned...
  I0731 11:39:58.630216 3483790 client.go:363] Waiting for ServiceAccount "builder" to be provisioned...
  I0731 11:39:58.753333 3483790 client.go:363] Waiting for ServiceAccount "deployer" to be provisioned...
  I0731 11:39:58.875454 3483790 client.go:373] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0731 11:39:58.898790 3483790 client.go:373] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0731 11:39:58.920279 3483790 client.go:373] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0731 11:39:58.999521 3483790 client.go:404] Project "e2e-test-mco-md28r" has been fully provisioned.
    STEP: MCO Preconditions Checks @ 07/31/26 11:39:58.999
  Jul 31 11:39:59.209: INFO: Check that master pool is ready for testing
  I0731 11:39:59.209237 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.machineCount}'
  Jul 31 11:39:59.379: INFO: Num nodes: 3, wait time per node 13 minutes
  Jul 31 11:39:59.379: INFO: Increase waiting time because it is master pool
  Jul 31 11:39:59.379: INFO: Waiting 3m54s for MCP master to be completed.
  I0731 11:39:59.379298 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.conditions[?(@.type=="Degraded")].status}'
  I0731 11:39:59.545614 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.conditions[?(@.type=="Updated")].status}'
  Jul 31 11:39:59.716: INFO: MCP 'master' is ready for testing
  Jul 31 11:39:59.716: INFO: Check that worker pool is ready for testing
  I0731 11:39:59.717024 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.machineCount}'
  Jul 31 11:39:59.875: INFO: Num nodes: 2, wait time per node 13 minutes
  Jul 31 11:39:59.875: INFO: Waiting 2m0s for MCP worker to be completed.
  I0731 11:39:59.876023 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.conditions[?(@.type=="Degraded")].status}'
  I0731 11:40:00.035001 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.conditions[?(@.type=="Updated")].status}'
  Jul 31 11:40:00.196: INFO: MCP 'worker' is ready for testing
  Jul 31 11:40:00.196: INFO: Wait for MCC to get the leader lease
  I0731 11:40:00.196492 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get pod -n openshift-machine-config-operator -l k8s-app=machine-config-controller -o jsonpath={.items[0].metadata.name}'
  I0731 11:40:00.368751 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms logs -n openshift-machine-config-operator -c machine-config-controller machine-config-controller-b8586785-7b6rs'
  Jul 31 11:40:00.599: INFO: End of MCO Preconditions

    STEP: Disable boot images update and skew enforcement @ 07/31/26 11:40:00.599
  I0731 11:40:00.599962 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get infrastructure cluster -o=jsonpath={.status.platformStatus.type}'
  I0731 11:40:00.755465 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.spec}'
  Jul 31 11:40:00.923: INFO: Disabling the Skew functionality
  Jul 31 11:40:00.924: INFO: Setting .spec.bootImageSkewEnforcement to None mode on <Kind: machineconfiguration, Name: cluster, Namespace: >
  I0731 11:40:00.924088 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch machineconfiguration cluster --type merge -p {"spec":{"bootImageSkewEnforcement":{"mode":"None"}}}'
  I0731 11:40:01.117081 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.metadata.generation}'
  I0731 11:40:01.285663 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.status.observedGeneration}'
  I0731 11:40:11.464249 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.metadata.generation}'
  I0731 11:40:11.622326 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.status.observedGeneration}'
  Jul 31 11:40:11.784: INFO: Skew functionality has been disabled
  I0731 11:40:11.784288 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch machineconfiguration cluster --type merge -p {"spec":{"managedBootImages":{"machineManagers":[{"resource": "machinesets","apiGroup": "machine.openshift.io","selection": {"mode": "None"}}]}}}'
  Jul 31 11:40:11.977: INFO: OK!

    STEP: Get current proxy configuration @ 07/31/26 11:40:11.977
  I0731 11:40:11.977901 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get proxy cluster -o jsonpath={.spec}'
  Jul 31 11:40:12.136: INFO: Initial proxy configuration: {"trustedCA":{"name":""}}
  Jul 31 11:40:12.136: INFO: OK!

    STEP: Pause MCPs @ 07/31/26 11:40:12.136
  Jul 31 11:40:12.136: INFO: patch mcp worker, change spec.paused to true
  I0731 11:40:12.136840 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch mcp worker --type merge -p {"spec":{"paused": true}}'
  Jul 31 11:40:12.351: INFO: patch mcp master, change spec.paused to true
  I0731 11:40:12.351785 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch mcp master --type merge -p {"spec":{"paused": true}}'
  Jul 31 11:40:12.565: INFO: OK!

    STEP: Configure new proxy @ 07/31/26 11:40:12.566
  I0731 11:40:12.566095 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch proxy cluster --type json -p [{ "op": "add", "path": "/spec/httpProxy", "value": "http://user:pass@proxy-fake:1111" },{ "op": "add", "path": "/spec/httpsProxy", "value": "http://user:pass@proxy-fake:1111" },{ "op": "add", "path": "/spec/noProxy", "value": "test.52373.no-proxy.com" }]'
  Jul 31 11:40:12.762: INFO: OK!

    STEP: Verify that the proxy configuration was applied to the MCD daemonset and the MCC deployment @ 07/31/26 11:40:12.762
  I0731 11:40:12.762223 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
  I0731 11:40:42.953336 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
  I0731 11:40:43.122860 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
  I0731 11:40:43.285644 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
  I0731 11:40:43.452565 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
  Jul 31 11:40:43.628: INFO: OK!

    STEP: Check that the operator has been marked as degraded @ 07/31/26 11:40:43.628
  I0731 11:40:43.628573 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
  Jul 31 11:40:43.782: INFO: Value: True
  I0731 11:40:43.782784 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
  Jul 31 11:40:43.946: INFO: Value: Failed to resync 5.0.0-0-2026-07-31-092329-test-ci-ln-n5yrsbb-latest because: the required MachineConfigPool master was paused with no pending updates; no further syncing will occur until it is unpaused
  I0731 11:41:13.960293 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
  Jul 31 11:41:14.110: INFO: Value: Failed to resync 5.0.0-0-2026-07-31-092329-test-ci-ln-n5yrsbb-latest because: required MachineConfigPool master is paused and cannot sync until it is unpaused
  Jul 31 11:41:14.110: INFO: OK!

    STEP: Restore original proxy configuration @ 07/31/26 11:41:14.11
  I0731 11:41:14.110433 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch proxy cluster --type json -p [{ "op": "add", "path": "/spec", "value": {"trustedCA":{"name":""}}}]'
  Jul 31 11:41:14.279: INFO: OK!

    STEP: Verify that the original configuration is restored in the MCD daemonset and the MCC deployment @ 07/31/26 11:41:14.279
  I0731 11:41:14.279425 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
  I0731 11:41:44.488545 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
  I0731 11:41:44.659632 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
  I0731 11:41:44.840420 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
  I0731 11:42:15.008669 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
  I0731 11:42:15.174587 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
  Jul 31 11:42:15.343: INFO: OK!

    STEP: Check that the operator is not marked as degraded anymore @ 07/31/26 11:42:15.343
  I0731 11:42:15.343163 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
  Jul 31 11:42:15.496: INFO: Value: True
  I0731 11:42:45.521754 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
  Jul 31 11:42:45.683: INFO: Value: False
  Jul 31 11:42:45.683: INFO: OK!

  Jul 31 11:42:45.683: INFO: Start TC defer block
  Jul 31 11:42:45.683: INFO: Restore original proxy config {"trustedCA":{"name":""}}
  I0731 11:42:45.683489 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch proxy cluster --type json -p [{ "op": "add", "path": "/spec", "value": {"trustedCA":{"name":""}}}]'
  Jul 31 11:42:45.855: INFO: Wait for new machine configs to be rendered and paused pools to report updated status
  I0731 11:42:45.855378 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.machineCount}'
  Jul 31 11:42:46.004: INFO: Num nodes: 2, wait time per node 13 minutes
  Jul 31 11:42:46.004: INFO: Waiting 26m0s for MCP worker condition Updated to be True
  I0731 11:43:46.049714 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.conditions[?(@.type=="Updated")].status}'
  Jul 31 11:43:46.230: INFO: MCP worker condition Updated status is True
  I0731 11:43:46.230190 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.machineCount}'
  Jul 31 11:43:46.383: INFO: Num nodes: 3, wait time per node 13 minutes
  Jul 31 11:43:46.383: INFO: Increase waiting time because it is master pool
  Jul 31 11:43:46.383: INFO: Waiting 50m42s for MCP master condition Updated to be True
  I0731 11:44:46.384030 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.conditions[?(@.type=="Updated")].status}'
  Jul 31 11:44:46.600: INFO: MCP master condition Updated status is True
  Jul 31 11:44:46.601: INFO: Wait for kube-apiserver rollout to complete after proxy restore
  I0731 11:44:46.601082 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:44:46.768: INFO: Value: True
  I0731 11:45:16.792943 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:45:16.997: INFO: Value: True
  I0731 11:45:47.027258 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:45:47.228: INFO: Value: True
  I0731 11:46:17.250044 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:46:17.441: INFO: Value: True
  I0731 11:46:47.442160 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:46:47.631: INFO: Value: True
  I0731 11:47:17.657845 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:47:17.830: INFO: Value: True
  I0731 11:47:47.849785 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:47:48.025: INFO: Value: True
  I0731 11:48:18.026410 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:48:18.177: INFO: Value: True
  I0731 11:48:48.177915 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:48:48.376: INFO: Value: True
  I0731 11:49:18.401558 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:49:18.580: INFO: Value: True
  I0731 11:49:48.609576 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:49:48.775: INFO: Value: True
  I0731 11:50:18.799318 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:50:18.947: INFO: Value: True
  I0731 11:50:48.947782 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:50:49.144: INFO: Value: True
  I0731 11:51:19.144713 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:51:19.329: INFO: Value: True
  I0731 11:51:49.329447 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:51:49.503: INFO: Value: True
  I0731 11:52:19.532228 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:52:19.696: INFO: Value: True
  I0731 11:52:49.697206 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
  Jul 31 11:52:49.855: INFO: Value: False
  Jul 31 11:52:49.855: INFO: Unpause worker pool
  Jul 31 11:52:49.855: INFO: patch mcp worker, change spec.paused to false
  I0731 11:52:49.855339 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch mcp worker --type merge -p {"spec":{"paused": false}}'
  Jul 31 11:52:50.052: INFO: Unpause master pool
  Jul 31 11:52:50.052: INFO: patch mcp master, change spec.paused to false
  I0731 11:52:50.052518 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch mcp master --type merge -p {"spec":{"paused": false}}'
  Jul 31 11:52:50.264: INFO: End TC defer block
  I0731 11:52:50.264688 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch machineconfiguration cluster --type json -p [{ "op": "add", "path": "/spec", "value": {"logLevel":"Normal","managementState":"Managed","operatorLogLevel":"Normal"}}]'
  I0731 11:52:50.553350 3483790 client.go:421] Deleted {user.openshift.io/v1, Resource=users  e2e-test-mco-md28r-user}, err: <nil>
  I0731 11:52:50.580543 3483790 client.go:421] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-mco-md28r}, err: <nil>
  I0731 11:52:50.607480 3483790 client.go:421] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~yg-lMFuo_r8qNLNjxsrocsiGyGE3lkw_NMpHh8aFNQ0}, err: <nil>
    STEP: Destroying namespace "e2e-test-mco-md28r" for this suite. @ 07/31/26 11:52:50.607
  • [772.526 seconds]
  ------------------------------
  [ReportAfterSuite] [sig-testing] Log Check
  /home/fedora/Workspace/machine-config-operator/vendor/k8s.io/kubernetes/test/e2e/invariants/logcheck/logcheck.go:179
  [ReportAfterSuite] PASSED [0.000 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 772.526 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

/verified by @sergiordlr

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jul 31, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@sergiordlr: This PR has been marked as verified by @sergiordlr.

Details

In response to this:

Manual execution logs
 I0731 11:39:57.893608 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get infrastructure cluster -o=jsonpath={.status.platformStatus.type}'
 I0731 11:39:58.104902 3483790 test_context.go:530] The --provider flag is not set. Continuing as if --provider=skeleton had been used.
 Running Suite:  - /home/fedora/Workspace/machine-config-operator
 ================================================================
 Random Seed: 1785497997 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [ReportBeforeSuite] 
 /home/fedora/Workspace/machine-config-operator/vendor/k8s.io/kubernetes/test/e2e/invariants/logcheck/logcheck.go:169
 [ReportBeforeSuite] PASSED [0.000 seconds]
 ------------------------------
 [sig-mco][Suite:openshift/machine-config-operator/longduration][Serial][Disruptive] MCO [PolarionID:52373][OTP] Modify proxy configuration in paused pools
 /home/fedora/Workspace/machine-config-operator/test/extended-priv/mco_machineconfigpool.go:108
   STEP: Creating a kubernetes client @ 07/31/26 11:39:58.106
 I0731 11:39:58.324129 3483790 client.go:164] configPath is now "/tmp/configfile135086096"
 I0731 11:39:58.324177 3483790 client.go:291] The user is now "e2e-test-mco-md28r-user"
 I0731 11:39:58.324184 3483790 client.go:293] Creating project "e2e-test-mco-md28r"
 I0731 11:39:58.404304 3483790 client.go:302] Waiting on permissions in project "e2e-test-mco-md28r" ...
 I0731 11:39:58.508327 3483790 client.go:363] Waiting for ServiceAccount "default" to be provisioned...
 I0731 11:39:58.630216 3483790 client.go:363] Waiting for ServiceAccount "builder" to be provisioned...
 I0731 11:39:58.753333 3483790 client.go:363] Waiting for ServiceAccount "deployer" to be provisioned...
 I0731 11:39:58.875454 3483790 client.go:373] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0731 11:39:58.898790 3483790 client.go:373] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0731 11:39:58.920279 3483790 client.go:373] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0731 11:39:58.999521 3483790 client.go:404] Project "e2e-test-mco-md28r" has been fully provisioned.
   STEP: MCO Preconditions Checks @ 07/31/26 11:39:58.999
 Jul 31 11:39:59.209: INFO: Check that master pool is ready for testing
 I0731 11:39:59.209237 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.machineCount}'
 Jul 31 11:39:59.379: INFO: Num nodes: 3, wait time per node 13 minutes
 Jul 31 11:39:59.379: INFO: Increase waiting time because it is master pool
 Jul 31 11:39:59.379: INFO: Waiting 3m54s for MCP master to be completed.
 I0731 11:39:59.379298 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.conditions[?(@.type=="Degraded")].status}'
 I0731 11:39:59.545614 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.conditions[?(@.type=="Updated")].status}'
 Jul 31 11:39:59.716: INFO: MCP 'master' is ready for testing
 Jul 31 11:39:59.716: INFO: Check that worker pool is ready for testing
 I0731 11:39:59.717024 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.machineCount}'
 Jul 31 11:39:59.875: INFO: Num nodes: 2, wait time per node 13 minutes
 Jul 31 11:39:59.875: INFO: Waiting 2m0s for MCP worker to be completed.
 I0731 11:39:59.876023 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.conditions[?(@.type=="Degraded")].status}'
 I0731 11:40:00.035001 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.conditions[?(@.type=="Updated")].status}'
 Jul 31 11:40:00.196: INFO: MCP 'worker' is ready for testing
 Jul 31 11:40:00.196: INFO: Wait for MCC to get the leader lease
 I0731 11:40:00.196492 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get pod -n openshift-machine-config-operator -l k8s-app=machine-config-controller -o jsonpath={.items[0].metadata.name}'
 I0731 11:40:00.368751 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms logs -n openshift-machine-config-operator -c machine-config-controller machine-config-controller-b8586785-7b6rs'
 Jul 31 11:40:00.599: INFO: End of MCO Preconditions

   STEP: Disable boot images update and skew enforcement @ 07/31/26 11:40:00.599
 I0731 11:40:00.599962 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get infrastructure cluster -o=jsonpath={.status.platformStatus.type}'
 I0731 11:40:00.755465 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.spec}'
 Jul 31 11:40:00.923: INFO: Disabling the Skew functionality
 Jul 31 11:40:00.924: INFO: Setting .spec.bootImageSkewEnforcement to None mode on <Kind: machineconfiguration, Name: cluster, Namespace: >
 I0731 11:40:00.924088 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch machineconfiguration cluster --type merge -p {"spec":{"bootImageSkewEnforcement":{"mode":"None"}}}'
 I0731 11:40:01.117081 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.metadata.generation}'
 I0731 11:40:01.285663 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.status.observedGeneration}'
 I0731 11:40:11.464249 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.metadata.generation}'
 I0731 11:40:11.622326 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get machineconfiguration cluster -o jsonpath={.status.observedGeneration}'
 Jul 31 11:40:11.784: INFO: Skew functionality has been disabled
 I0731 11:40:11.784288 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch machineconfiguration cluster --type merge -p {"spec":{"managedBootImages":{"machineManagers":[{"resource": "machinesets","apiGroup": "machine.openshift.io","selection": {"mode": "None"}}]}}}'
 Jul 31 11:40:11.977: INFO: OK!

   STEP: Get current proxy configuration @ 07/31/26 11:40:11.977
 I0731 11:40:11.977901 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get proxy cluster -o jsonpath={.spec}'
 Jul 31 11:40:12.136: INFO: Initial proxy configuration: {"trustedCA":{"name":""}}
 Jul 31 11:40:12.136: INFO: OK!

   STEP: Pause MCPs @ 07/31/26 11:40:12.136
 Jul 31 11:40:12.136: INFO: patch mcp worker, change spec.paused to true
 I0731 11:40:12.136840 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch mcp worker --type merge -p {"spec":{"paused": true}}'
 Jul 31 11:40:12.351: INFO: patch mcp master, change spec.paused to true
 I0731 11:40:12.351785 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch mcp master --type merge -p {"spec":{"paused": true}}'
 Jul 31 11:40:12.565: INFO: OK!

   STEP: Configure new proxy @ 07/31/26 11:40:12.566
 I0731 11:40:12.566095 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch proxy cluster --type json -p [{ "op": "add", "path": "/spec/httpProxy", "value": "http://user:pass@proxy-fake:1111" },{ "op": "add", "path": "/spec/httpsProxy", "value": "http://user:pass@proxy-fake:1111" },{ "op": "add", "path": "/spec/noProxy", "value": "test.52373.no-proxy.com" }]'
 Jul 31 11:40:12.762: INFO: OK!

   STEP: Verify that the proxy configuration was applied to the MCD daemonset and the MCC deployment @ 07/31/26 11:40:12.762
 I0731 11:40:12.762223 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
 I0731 11:40:42.953336 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
 I0731 11:40:43.122860 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
 I0731 11:40:43.285644 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
 I0731 11:40:43.452565 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
 Jul 31 11:40:43.628: INFO: OK!

   STEP: Check that the operator has been marked as degraded @ 07/31/26 11:40:43.628
 I0731 11:40:43.628573 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
 Jul 31 11:40:43.782: INFO: Value: True
 I0731 11:40:43.782784 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
 Jul 31 11:40:43.946: INFO: Value: Failed to resync 5.0.0-0-2026-07-31-092329-test-ci-ln-n5yrsbb-latest because: the required MachineConfigPool master was paused with no pending updates; no further syncing will occur until it is unpaused
 I0731 11:41:13.960293 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
 Jul 31 11:41:14.110: INFO: Value: Failed to resync 5.0.0-0-2026-07-31-092329-test-ci-ln-n5yrsbb-latest because: required MachineConfigPool master is paused and cannot sync until it is unpaused
 Jul 31 11:41:14.110: INFO: OK!

   STEP: Restore original proxy configuration @ 07/31/26 11:41:14.11
 I0731 11:41:14.110433 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch proxy cluster --type json -p [{ "op": "add", "path": "/spec", "value": {"trustedCA":{"name":""}}}]'
 Jul 31 11:41:14.279: INFO: OK!

   STEP: Verify that the original configuration is restored in the MCD daemonset and the MCC deployment @ 07/31/26 11:41:14.279
 I0731 11:41:14.279425 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
 I0731 11:41:44.488545 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
 I0731 11:41:44.659632 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator DaemonSet machine-config-daemon -o jsonpath={.spec}'
 I0731 11:41:44.840420 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
 I0731 11:42:15.008669 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
 I0731 11:42:15.174587 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get -n openshift-machine-config-operator Deployment machine-config-controller -o jsonpath={.spec}'
 Jul 31 11:42:15.343: INFO: OK!

   STEP: Check that the operator is not marked as degraded anymore @ 07/31/26 11:42:15.343
 I0731 11:42:15.343163 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
 Jul 31 11:42:15.496: INFO: Value: True
 I0731 11:42:45.521754 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co machine-config -o jsonpath={.status.conditions[?(@.type=="Degraded")]}'
 Jul 31 11:42:45.683: INFO: Value: False
 Jul 31 11:42:45.683: INFO: OK!

 Jul 31 11:42:45.683: INFO: Start TC defer block
 Jul 31 11:42:45.683: INFO: Restore original proxy config {"trustedCA":{"name":""}}
 I0731 11:42:45.683489 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch proxy cluster --type json -p [{ "op": "add", "path": "/spec", "value": {"trustedCA":{"name":""}}}]'
 Jul 31 11:42:45.855: INFO: Wait for new machine configs to be rendered and paused pools to report updated status
 I0731 11:42:45.855378 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.machineCount}'
 Jul 31 11:42:46.004: INFO: Num nodes: 2, wait time per node 13 minutes
 Jul 31 11:42:46.004: INFO: Waiting 26m0s for MCP worker condition Updated to be True
 I0731 11:43:46.049714 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp worker -o jsonpath={.status.conditions[?(@.type=="Updated")].status}'
 Jul 31 11:43:46.230: INFO: MCP worker condition Updated status is True
 I0731 11:43:46.230190 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.machineCount}'
 Jul 31 11:43:46.383: INFO: Num nodes: 3, wait time per node 13 minutes
 Jul 31 11:43:46.383: INFO: Increase waiting time because it is master pool
 Jul 31 11:43:46.383: INFO: Waiting 50m42s for MCP master condition Updated to be True
 I0731 11:44:46.384030 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get mcp master -o jsonpath={.status.conditions[?(@.type=="Updated")].status}'
 Jul 31 11:44:46.600: INFO: MCP master condition Updated status is True
 Jul 31 11:44:46.601: INFO: Wait for kube-apiserver rollout to complete after proxy restore
 I0731 11:44:46.601082 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:44:46.768: INFO: Value: True
 I0731 11:45:16.792943 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:45:16.997: INFO: Value: True
 I0731 11:45:47.027258 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:45:47.228: INFO: Value: True
 I0731 11:46:17.250044 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:46:17.441: INFO: Value: True
 I0731 11:46:47.442160 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:46:47.631: INFO: Value: True
 I0731 11:47:17.657845 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:47:17.830: INFO: Value: True
 I0731 11:47:47.849785 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:47:48.025: INFO: Value: True
 I0731 11:48:18.026410 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:48:18.177: INFO: Value: True
 I0731 11:48:48.177915 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:48:48.376: INFO: Value: True
 I0731 11:49:18.401558 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:49:18.580: INFO: Value: True
 I0731 11:49:48.609576 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:49:48.775: INFO: Value: True
 I0731 11:50:18.799318 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:50:18.947: INFO: Value: True
 I0731 11:50:48.947782 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:50:49.144: INFO: Value: True
 I0731 11:51:19.144713 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:51:19.329: INFO: Value: True
 I0731 11:51:49.329447 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:51:49.503: INFO: Value: True
 I0731 11:52:19.532228 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:52:19.696: INFO: Value: True
 I0731 11:52:49.697206 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms get co kube-apiserver -o jsonpath={.status.conditions[?(@.type=="Progressing")]}'
 Jul 31 11:52:49.855: INFO: Value: False
 Jul 31 11:52:49.855: INFO: Unpause worker pool
 Jul 31 11:52:49.855: INFO: patch mcp worker, change spec.paused to false
 I0731 11:52:49.855339 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch mcp worker --type merge -p {"spec":{"paused": false}}'
 Jul 31 11:52:50.052: INFO: Unpause master pool
 Jul 31 11:52:50.052: INFO: patch mcp master, change spec.paused to false
 I0731 11:52:50.052518 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch mcp master --type merge -p {"spec":{"paused": false}}'
 Jul 31 11:52:50.264: INFO: End TC defer block
 I0731 11:52:50.264688 3483790 client.go:718] Running 'oc --kubeconfig=/tmp/50ms patch machineconfiguration cluster --type json -p [{ "op": "add", "path": "/spec", "value": {"logLevel":"Normal","managementState":"Managed","operatorLogLevel":"Normal"}}]'
 I0731 11:52:50.553350 3483790 client.go:421] Deleted {user.openshift.io/v1, Resource=users  e2e-test-mco-md28r-user}, err: <nil>
 I0731 11:52:50.580543 3483790 client.go:421] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-mco-md28r}, err: <nil>
 I0731 11:52:50.607480 3483790 client.go:421] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~yg-lMFuo_r8qNLNjxsrocsiGyGE3lkw_NMpHh8aFNQ0}, err: <nil>
   STEP: Destroying namespace "e2e-test-mco-md28r" for this suite. @ 07/31/26 11:52:50.607
 • [772.526 seconds]
 ------------------------------
 [ReportAfterSuite] [sig-testing] Log Check
 /home/fedora/Workspace/machine-config-operator/vendor/k8s.io/kubernetes/test/e2e/invariants/logcheck/logcheck.go:179
 [ReportAfterSuite] PASSED [0.000 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 772.526 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

/verified by @sergiordlr

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 openshift-eng/jira-lifecycle-plugin repository.

@sergiordlr
sergiordlr marked this pull request as ready for review July 31, 2026 12:01
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 31, 2026
@openshift-ci
openshift-ci Bot requested review from cheesesashimi and proietfb July 31, 2026 12:02
@openshift-ci

openshift-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

@sergiordlr: all tests passed!

Full PR test history. Your PR dashboard.

Details

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-sigs/prow repository. I understand the commands that are listed here.

@sergiordlr sergiordlr changed the title OCPBUGS-92811: test MCC proxy. Refactor TC 52373 proxy test. NO-ISSUE: test MCC proxy. Refactor TC 52373 proxy test. Jul 31, 2026
@openshift-ci-robot openshift-ci-robot removed jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jul 31, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@sergiordlr: This pull request explicitly references no jira issue.

Details

In response to this:

- What I did

Proxy test OCP-52373 has been modified with the following changes:

  • Test that the MCC is getting the proxy configuration too
  • Check that the kube apiserver is ready before modifying the MCPs to unpause them, in order to avoid instabilities due to the ValidatingAdmissionPolicy.
❯ I0730 15:20:00.920955   17040 client.go:727] Error running /usr/bin/oc --kubeconfig=/tmp/kubeconfig patch mcp worker --type merge -p {"spec":{"paused": false}}:                                                 
 The machineconfigpools "worker" is invalid: : ValidatingAdmissionPolicy 'machineconfigpool-osimagestream-reference-validation' denied request: failed to configure policy: failed to find resource referenced by 
paramKind: 'machineconfiguration.openshift.io/v1, Kind=OSImageStream'   
  • Make sure that all deferred instructions are executed, even if a function reports an error.

An instruction reporting a test failure in a deferred section will stop the execution of this deferred section. Having several deferred sections is a solution, but sometimes we have a single big deferred section. In order to make sure that those scenarios fully execute all the instructions even if a failure happens we created the SafeCleanup function.

  • The existing calls to InterceptGomegaFailures have been refactored to use the SafeCleanup function, which is cleaner.

In the future we should refactor the pause function to make it return an error instead of directly failing the test case.

- How to verify it
Test should pass

Summary by CodeRabbit

  • Tests
  • Expanded validation for paused machine configuration pools using HTTP, HTTPS, and no-proxy settings.
  • Improved checks for degraded status and rollout completion across relevant machine configuration components.
  • Strengthened test cleanup and error reporting to provide more reliable results.
  • Added reliable retrieval and restoration of resource specifications during testing.

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 openshift-eng/jira-lifecycle-plugin repository.

@sergiordlr

Copy link
Copy Markdown
Contributor Author

/jira refresh

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@sergiordlr: This pull request explicitly references no jira issue.

Details

In response to this:

/jira 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 openshift-eng/jira-lifecycle-plugin repository.

@isabella-janssen isabella-janssen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 31, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification

No second-stage tests were triggered for this PR.

This can happen when:

  • The changed files don't match any pipeline_run_if_changed patterns
  • All files match pipeline_skip_if_only_changed patterns
  • No pipeline-controlled jobs are defined for the main branch

Use /test ? to see all available tests.

@openshift-ci

openshift-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: isabella-janssen, sergiordlr

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

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [isabella-janssen,sergiordlr]

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

@openshift-merge-bot
openshift-merge-bot Bot merged commit ffe962e into openshift:main Jul 31, 2026
9 checks passed
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. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants