Skip to content

HIVE-3134: Axe the direct dependency on the Machine API operator#2884

Open
dlom wants to merge 1 commit intoopenshift:masterfrom
dlom:HIVE-3134-remove-mapi-op-dep
Open

HIVE-3134: Axe the direct dependency on the Machine API operator#2884
dlom wants to merge 1 commit intoopenshift:masterfrom
dlom:HIVE-3134-remove-mapi-op-dep

Conversation

@dlom
Copy link
Copy Markdown
Contributor

@dlom dlom commented Mar 26, 2026

xref: HIVE-3134

We're pulling in thousands of lines of code from the MAPI operator just to call two 10-line functions (and only one of those happens at runtime). What if we just didn't do that? It's still remains as an indirect dependency (for now...)

/assign @2uasimojo

Summary by CodeRabbit

  • Refactor

    • Reworked vSphere provider-spec handling to use local decoding helpers and simplified actuator construction.
  • Chores

    • Removed numerous vendored vSphere/cloud-provider and gcfg/warnings modules and pruned indirect dependencies to streamline the codebase.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Mar 26, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Mar 26, 2026

@dlom: This pull request references HIVE-3134 which is a valid jira issue.

Details

In response to this:

xref: HIVE-3134

We're pulling in thousands of lines of code from the MAPI operator just to call two 10-line functions (and only one of those happens at runtime). What if we just didn't do that? It's still remains as an indirect dependency (for now...)

/assign @2uasimojo

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-ci openshift-ci bot requested review from 2uasimojo and jstuever March 26, 2026 23:07
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 26, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 26, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 45838a74-3cf4-4d51-9222-05f147114f86

📥 Commits

Reviewing files that changed from the base of the PR and between 1e889dd and 6e03987.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (39)
  • go.mod
  • pkg/controller/machinepool/machinepool_controller.go
  • pkg/controller/machinepool/vsphereactuator.go
  • pkg/controller/machinepool/vsphereactuator_test.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/actuator.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/machine_scope.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/reconciler.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/session/session.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/session/tag_ids_caching_client.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/util.go
  • vendor/github.com/openshift/machine-api-operator/pkg/util/ipam/util.go
  • vendor/gopkg.in/gcfg.v1/LICENSE
  • vendor/gopkg.in/gcfg.v1/README
  • vendor/gopkg.in/gcfg.v1/doc.go
  • vendor/gopkg.in/gcfg.v1/errors.go
  • vendor/gopkg.in/gcfg.v1/read.go
  • vendor/gopkg.in/gcfg.v1/scanner/errors.go
  • vendor/gopkg.in/gcfg.v1/scanner/scanner.go
  • vendor/gopkg.in/gcfg.v1/set.go
  • vendor/gopkg.in/gcfg.v1/token/position.go
  • vendor/gopkg.in/gcfg.v1/token/serialize.go
  • vendor/gopkg.in/gcfg.v1/token/token.go
  • vendor/gopkg.in/gcfg.v1/types/bool.go
  • vendor/gopkg.in/gcfg.v1/types/doc.go
  • vendor/gopkg.in/gcfg.v1/types/enum.go
  • vendor/gopkg.in/gcfg.v1/types/int.go
  • vendor/gopkg.in/gcfg.v1/types/scan.go
  • vendor/gopkg.in/warnings.v0/LICENSE
  • vendor/gopkg.in/warnings.v0/README
  • vendor/gopkg.in/warnings.v0/warnings.go
  • vendor/k8s.io/cloud-provider-vsphere/LICENSE
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config_ini_legacy.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config_yaml.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/consts_and_errors.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_common.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_ini_legacy.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_yaml.go
  • vendor/modules.txt
💤 Files with no reviewable changes (35)
  • vendor/gopkg.in/gcfg.v1/README
  • vendor/gopkg.in/gcfg.v1/LICENSE
  • vendor/gopkg.in/warnings.v0/LICENSE
  • vendor/k8s.io/cloud-provider-vsphere/LICENSE
  • vendor/gopkg.in/gcfg.v1/types/bool.go
  • vendor/gopkg.in/gcfg.v1/types/doc.go
  • vendor/gopkg.in/gcfg.v1/types/scan.go
  • vendor/gopkg.in/gcfg.v1/doc.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/machine_scope.go
  • vendor/gopkg.in/gcfg.v1/types/enum.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_yaml.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_ini_legacy.go
  • vendor/gopkg.in/warnings.v0/README
  • vendor/gopkg.in/gcfg.v1/token/serialize.go
  • vendor/gopkg.in/gcfg.v1/types/int.go
  • vendor/gopkg.in/gcfg.v1/errors.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/consts_and_errors.go
  • vendor/gopkg.in/gcfg.v1/read.go
  • vendor/gopkg.in/gcfg.v1/scanner/scanner.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/actuator.go
  • vendor/modules.txt
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/session/tag_ids_caching_client.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config_yaml.go
  • vendor/gopkg.in/gcfg.v1/set.go
  • vendor/gopkg.in/gcfg.v1/token/token.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_common.go
  • vendor/gopkg.in/gcfg.v1/scanner/errors.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/util.go
  • vendor/github.com/openshift/machine-api-operator/pkg/util/ipam/util.go
  • vendor/gopkg.in/warnings.v0/warnings.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config_ini_legacy.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/session/session.go
  • vendor/gopkg.in/gcfg.v1/token/position.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/reconciler.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • go.mod
  • pkg/controller/machinepool/vsphereactuator.go

📝 Walkthrough

Walkthrough

Removed large sets of vendored vSphere/cloud-config/ipam/gcfg/warnings code and simplified vSphere machinepool actuator by replacing external provider-spec helpers with local helpers and trimming go.mod indirect dependencies. No exported APIs were added.

Changes

Cohort / File(s) Summary
Module metadata
go.mod, vendor/modules.txt
Marked github.com/openshift/machine-api-operator as // indirect and removed unused indirect dependencies; pruned vendor module entries.
Machinepool vSphere actuator
pkg/controller/machinepool/vsphereactuator.go, pkg/controller/machinepool/vsphereactuator_test.go
Removed scheme parameter from NewVSphereActuator; replaced external vsphereutil RawExtension helpers with local providerSpecFromRawExtension / rawExtensionFromProviderSpec; added JSON (un)marshal helpers and adjusted tests/imports.
Removed vendored machine-api-operator vSphere controller
vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/...
Deleted vSphere actuator, machine scope, reconciler, session management, tag caching, and util helpers (Create/Exists/Update/Delete flows, session cache, VM/task/tag helpers, provider-spec/status utilities).
Removed vendored ipam utilities
vendor/github.com/openshift/machine-api-operator/pkg/util/ipam/util.go
Deleted IPAddress/IPAddressClaim ensure/adopt/count/verify utilities and related helpers.
Removed vendored gcfg and scanner
vendor/gopkg.in/gcfg.v1/...
Deleted INI parsing library: tokenizer, scanner, reader, set/type helpers, token/position serialization, docs, and related types.
Removed vendored warnings library
vendor/gopkg.in/warnings.v0/...
Deleted warnings collector/List/Collector APIs and helpers.
Removed vendored cloud-provider-vsphere config
vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/...
Deleted YAML/INI parsing, validation, types, env-overrides, and constants/errors for vSphere cloud-provider config.
Removed vendored license/docs
vendor/gopkg.in/gcfg.v1/LICENSE, vendor/gopkg.in/warnings.v0/LICENSE, vendor/k8s.io/cloud-provider-vsphere/LICENSE, .../README files
Removed license and README files for deleted vendored packages.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐇 I nibble code and tidy vines,
Vendor brambles trimmed in lines,
Local helpers hop in place,
Clean paths now wear a softer face,
Hooray—less clutter, lighter pace!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 44.44% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: removing the direct dependency on the Machine API operator, which aligns with the core objective of the PR.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 and usage tips.

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Mar 26, 2026

@dlom: This pull request references HIVE-3134 which is a valid jira issue.

Details

In response to this:

xref: HIVE-3134

We're pulling in thousands of lines of code from the MAPI operator just to call two 10-line functions (and only one of those happens at runtime). What if we just didn't do that? It's still remains as an indirect dependency (for now...)

/assign @2uasimojo

Summary by CodeRabbit

  • Refactor

  • Refactored vSphere provider specification handling by replacing external utility dependencies with local implementations.

  • Chores

  • Removed several unused external dependencies to streamline the codebase and reduce maintenance overhead.

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.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
pkg/controller/machinepool/vsphereactuator.go (2)

156-171: Remove commented-out debug statement.

The commented-out klog line on line 169 should be removed. If debug logging is needed in the future, it can be added back.

♻️ Suggested fix
 	if err := json.Unmarshal(rawExtension.Raw, &spec); err != nil {
 		return nil, fmt.Errorf("error unmarshalling providerSpec: %v", err)
 	}

-	// klog.V(5).Infof("Got provider spec from raw extension: %+v", spec)
 	return spec, nil
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/controller/machinepool/vsphereactuator.go` around lines 156 - 171, Remove
the leftover commented debug statement inside providerSpecFromRawExtension:
delete the commented-out klog line ("// klog.V(5).Infof(\"Got provider spec from
raw extension: %+v\", spec)") so the function contains only active code and
returns; if future debug tracing is needed, add a proper conditional log call
back in place using klog within providerSpecFromRawExtension.

119-128: Unused scheme parameter in getVSphereOSImage.

The scheme *runtime.Scheme parameter is no longer used since the local providerSpecFromRawExtension only uses json.Unmarshal. Consider removing it to avoid confusion, though this would require updating the call site in NewVSphereActuator.

♻️ Suggested refactor
-func getVSphereOSImage(masterMachine *machineapi.Machine, scheme *runtime.Scheme, logger log.FieldLogger) (string, error) {
+func getVSphereOSImage(masterMachine *machineapi.Machine, logger log.FieldLogger) (string, error) {

And update the call site in NewVSphereActuator:

-	osImage, err := getVSphereOSImage(masterMachine, scheme, logger)
+	osImage, err := getVSphereOSImage(masterMachine, logger)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/controller/machinepool/vsphereactuator.go` around lines 119 - 128, The
getVSphereOSImage function has an unused parameter scheme; remove the unused
scheme *runtime.Scheme parameter from getVSphereOSImage's signature and update
every call site (notably NewVSphereActuator where getVSphereOSImage is invoked)
to pass only the masterMachine and logger (and adjust any variable names if
necessary); ensure imports and any function declarations match the new
two-argument signature and run go build/tests to catch remaining references.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@pkg/controller/machinepool/vsphereactuator.go`:
- Around line 156-171: Remove the leftover commented debug statement inside
providerSpecFromRawExtension: delete the commented-out klog line ("//
klog.V(5).Infof(\"Got provider spec from raw extension: %+v\", spec)") so the
function contains only active code and returns; if future debug tracing is
needed, add a proper conditional log call back in place using klog within
providerSpecFromRawExtension.
- Around line 119-128: The getVSphereOSImage function has an unused parameter
scheme; remove the unused scheme *runtime.Scheme parameter from
getVSphereOSImage's signature and update every call site (notably
NewVSphereActuator where getVSphereOSImage is invoked) to pass only the
masterMachine and logger (and adjust any variable names if necessary); ensure
imports and any function declarations match the new two-argument signature and
run go build/tests to catch remaining references.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0585f76e-fc74-4d12-871f-2e4c26985295

📥 Commits

Reviewing files that changed from the base of the PR and between 8296ffc and 1e889dd.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (38)
  • go.mod
  • pkg/controller/machinepool/vsphereactuator.go
  • pkg/controller/machinepool/vsphereactuator_test.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/actuator.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/machine_scope.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/reconciler.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/session/session.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/session/tag_ids_caching_client.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/util.go
  • vendor/github.com/openshift/machine-api-operator/pkg/util/ipam/util.go
  • vendor/gopkg.in/gcfg.v1/LICENSE
  • vendor/gopkg.in/gcfg.v1/README
  • vendor/gopkg.in/gcfg.v1/doc.go
  • vendor/gopkg.in/gcfg.v1/errors.go
  • vendor/gopkg.in/gcfg.v1/read.go
  • vendor/gopkg.in/gcfg.v1/scanner/errors.go
  • vendor/gopkg.in/gcfg.v1/scanner/scanner.go
  • vendor/gopkg.in/gcfg.v1/set.go
  • vendor/gopkg.in/gcfg.v1/token/position.go
  • vendor/gopkg.in/gcfg.v1/token/serialize.go
  • vendor/gopkg.in/gcfg.v1/token/token.go
  • vendor/gopkg.in/gcfg.v1/types/bool.go
  • vendor/gopkg.in/gcfg.v1/types/doc.go
  • vendor/gopkg.in/gcfg.v1/types/enum.go
  • vendor/gopkg.in/gcfg.v1/types/int.go
  • vendor/gopkg.in/gcfg.v1/types/scan.go
  • vendor/gopkg.in/warnings.v0/LICENSE
  • vendor/gopkg.in/warnings.v0/README
  • vendor/gopkg.in/warnings.v0/warnings.go
  • vendor/k8s.io/cloud-provider-vsphere/LICENSE
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config_ini_legacy.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config_yaml.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/consts_and_errors.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_common.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_ini_legacy.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_yaml.go
  • vendor/modules.txt
💤 Files with no reviewable changes (35)
  • vendor/gopkg.in/warnings.v0/LICENSE
  • vendor/gopkg.in/gcfg.v1/LICENSE
  • vendor/gopkg.in/gcfg.v1/README
  • vendor/k8s.io/cloud-provider-vsphere/LICENSE
  • vendor/gopkg.in/gcfg.v1/types/doc.go
  • vendor/gopkg.in/gcfg.v1/doc.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_ini_legacy.go
  • vendor/gopkg.in/warnings.v0/README
  • vendor/gopkg.in/gcfg.v1/types/scan.go
  • vendor/gopkg.in/gcfg.v1/types/enum.go
  • vendor/gopkg.in/gcfg.v1/errors.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_yaml.go
  • vendor/gopkg.in/gcfg.v1/token/serialize.go
  • vendor/modules.txt
  • vendor/gopkg.in/gcfg.v1/read.go
  • vendor/gopkg.in/gcfg.v1/types/int.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/consts_and_errors.go
  • vendor/gopkg.in/warnings.v0/warnings.go
  • vendor/gopkg.in/gcfg.v1/token/token.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/types_common.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/machine_scope.go
  • vendor/gopkg.in/gcfg.v1/types/bool.go
  • vendor/gopkg.in/gcfg.v1/scanner/errors.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/session/session.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/actuator.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config_ini_legacy.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config_yaml.go
  • vendor/gopkg.in/gcfg.v1/set.go
  • vendor/gopkg.in/gcfg.v1/scanner/scanner.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/reconciler.go
  • vendor/k8s.io/cloud-provider-vsphere/pkg/common/config/config.go
  • vendor/github.com/openshift/machine-api-operator/pkg/util/ipam/util.go
  • vendor/gopkg.in/gcfg.v1/token/position.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/util.go
  • vendor/github.com/openshift/machine-api-operator/pkg/controller/vsphere/session/tag_ids_caching_client.go

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 26, 2026

Codecov Report

❌ Patch coverage is 61.53846% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 50.29%. Comparing base (8296ffc) to head (6e03987).
⚠️ Report is 6 commits behind head on master.

Files with missing lines Patch % Lines
pkg/controller/machinepool/vsphereactuator.go 66.66% 2 Missing and 2 partials ⚠️
...g/controller/machinepool/machinepool_controller.go 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2884      +/-   ##
==========================================
- Coverage   50.29%   50.29%   -0.01%     
==========================================
  Files         280      280              
  Lines       34323    34331       +8     
==========================================
+ Hits        17264    17268       +4     
- Misses      15698    15700       +2     
- Partials     1361     1363       +2     
Files with missing lines Coverage Δ
...g/controller/machinepool/machinepool_controller.go 63.81% <0.00%> (ø)
pkg/controller/machinepool/vsphereactuator.go 71.57% <66.66%> (-1.99%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Member

@2uasimojo 2uasimojo left a comment

Choose a reason for hiding this comment

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

I would generally not be in favor of copy-pasting something that's available upstream, but these two funcs are trivial, and the decluttering of our vendor dir is worth it.

/lgtm

/hold The commented log line isn't crucial: giving you the option to address it here or later (or not at all).

return nil, fmt.Errorf("error unmarshalling providerSpec: %v", err)
}

// klog.V(5).Infof("Got provider spec from raw extension: %+v", spec)
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.

We should either nix this or replace it with our own logger call (which we could conceivably do in the caller's context to avoid having to pass in our logger).

@openshift-ci openshift-ci bot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. lgtm Indicates that a PR is ready to be merged. labels Mar 27, 2026
@2uasimojo
Copy link
Copy Markdown
Member

/test e2e-vsphere

flake during setup

@dlom
Copy link
Copy Markdown
Contributor Author

dlom commented Mar 27, 2026

the decluttering of our vendor dir is worth it

Another impact from this (this is actually how I found this case): The MAPI operator also depends on govmomi, and if/when we wanted to upgrade to the latest (installer just did yesterday), we would have also had to wait for the MAPI operator to update their dependency on it (a breaking change). Now, we are completely untied from them govmomi-wise

@dlom dlom force-pushed the HIVE-3134-remove-mapi-op-dep branch from 1e889dd to 6e03987 Compare March 27, 2026 16:35
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Mar 27, 2026
@dlom
Copy link
Copy Markdown
Contributor Author

dlom commented Mar 27, 2026

@2uasimojo the flake might be related to this openshift/release#76852

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Mar 27, 2026

@dlom: This pull request references HIVE-3134 which is a valid jira issue.

Details

In response to this:

xref: HIVE-3134

We're pulling in thousands of lines of code from the MAPI operator just to call two 10-line functions (and only one of those happens at runtime). What if we just didn't do that? It's still remains as an indirect dependency (for now...)

/assign @2uasimojo

Summary by CodeRabbit

  • Refactor

  • Reworked vSphere provider-spec handling to use local decoding helpers and simplified actuator construction.

  • Chores

  • Removed numerous vendored vSphere/cloud-provider and gcfg/warnings modules and pruned indirect dependencies to streamline the codebase.

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.

@2uasimojo
Copy link
Copy Markdown
Member

/lgtm
/hold cancel

@openshift-ci openshift-ci bot added lgtm Indicates that a PR is ready to be merged. and removed do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Mar 27, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 27, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: 2uasimojo, dlom

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:

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

@openshift-ci-robot
Copy link
Copy Markdown

/retest-required

Remaining retests: 0 against base HEAD 958db34 and 2 for PR HEAD 6e03987 in total

@2uasimojo
Copy link
Copy Markdown
Member

@2uasimojo the flake might be related to this openshift/release#76852

As in, we have to do something to accommodate that change? Like making sure some new piece honors our request to get an extra two IPs? Are you chasing that down?

@openshift-ci-robot
Copy link
Copy Markdown

/retest-required

Remaining retests: 0 against base HEAD 2297bc8 and 1 for PR HEAD 6e03987 in total

@openshift-ci-robot
Copy link
Copy Markdown

/retest-required

Remaining retests: 0 against base HEAD aec89c6 and 0 for PR HEAD 6e03987 in total

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 29, 2026

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

Test name Commit Details Required Rerun command
ci/prow/e2e-vsphere 6e03987 link true /test e2e-vsphere

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.

@openshift-ci-robot
Copy link
Copy Markdown

/hold

Revision 6e03987 was retested 3 times: holding

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 29, 2026
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. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants