Skip to content

Commit 4026f7f

Browse files
anjannathpraveenkumar
authored andcommitted
preflight: add check to remove podman from ~/.crc/bin/oc
1 parent 012cf33 commit 4026f7f

6 files changed

+49
-5
lines changed

pkg/crc/preflight/preflight_checks_common.go

+29
Original file line numberDiff line numberDiff line change
@@ -155,3 +155,32 @@ func removeAllLogs() error {
155155
func removeCRCHostEntriesFromKnownHosts() error {
156156
return ssh.RemoveCRCHostEntriesFromKnownHosts()
157157
}
158+
159+
func checkPodmanInOcBinDir() error {
160+
podmanBinPath := filepath.Join(constants.CrcOcBinDir, constants.PodmanRemoteExecutableName)
161+
if crcos.FileExists(podmanBinPath) {
162+
return fmt.Errorf("Found podman executable: %s", podmanBinPath)
163+
}
164+
return nil
165+
}
166+
167+
func fixPodmanInOcBinDir() error {
168+
podmanBinPath := filepath.Join(constants.CrcOcBinDir, constants.PodmanRemoteExecutableName)
169+
if crcos.FileExists(podmanBinPath) {
170+
logging.Debugf("Removing podman binary at: %s", podmanBinPath)
171+
return os.Remove(podmanBinPath)
172+
}
173+
return nil
174+
}
175+
176+
func removePodmanFromOcBinDirCheck() Check {
177+
return Check{
178+
configKeySuffix: "check-podman-in-ocbindir",
179+
checkDescription: fmt.Sprintf("Check if Podman binary exists in: %s", constants.CrcOcBinDir),
180+
check: checkPodmanInOcBinDir,
181+
fixDescription: fmt.Sprintf("Removing Podman binary from: %s", constants.CrcOcBinDir),
182+
fix: fixPodmanInOcBinDir,
183+
184+
labels: None,
185+
}
186+
}

pkg/crc/preflight/preflight_darwin.go

+1
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ func getChecks(_ network.Mode, bundlePath string, preset crcpreset.Preset, enabl
120120
checks = append(checks, nonWinPreflightChecks...)
121121
checks = append(checks, genericPreflightChecks(preset)...)
122122
checks = append(checks, memoryCheck(preset))
123+
checks = append(checks, removePodmanFromOcBinDirCheck())
123124
checks = append(checks, genericCleanupChecks...)
124125
checks = append(checks, vfkitPreflightChecks...)
125126
checks = append(checks, resolverPreflightChecks...)

pkg/crc/preflight/preflight_linux.go

+1
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ func getChecks(distro *linux.OsRelease, bundlePath string, preset crcpreset.Pres
368368
checks = append(checks, wsl2PreflightCheck)
369369
checks = append(checks, genericPreflightChecks(preset)...)
370370
checks = append(checks, memoryCheck(preset))
371+
checks = append(checks, removePodmanFromOcBinDirCheck())
371372
checks = append(checks, genericCleanupChecks...)
372373
checks = append(checks, libvirtPreflightChecks(distro)...)
373374
checks = append(checks, ubuntuPreflightChecks...)

pkg/crc/preflight/preflight_linux_test.go

+12
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ var checkListForDistros = []checkListForDistro{
7070
{check: checkSupportedCPUArch},
7171
{check: checkCrcSymlink},
7272
{configKeySuffix: "check-ram"},
73+
{check: checkPodmanInOcBinDir},
7374
{cleanup: removeCRCMachinesDir},
7475
{cleanup: removeAllLogs},
7576
{cleanup: cluster.ForgetPullSecret},
@@ -109,6 +110,7 @@ var checkListForDistros = []checkListForDistro{
109110
{check: checkSupportedCPUArch},
110111
{check: checkCrcSymlink},
111112
{configKeySuffix: "check-ram"},
113+
{check: checkPodmanInOcBinDir},
112114
{cleanup: removeCRCMachinesDir},
113115
{cleanup: removeAllLogs},
114116
{cleanup: cluster.ForgetPullSecret},
@@ -147,6 +149,7 @@ var checkListForDistros = []checkListForDistro{
147149
{check: checkSupportedCPUArch},
148150
{check: checkCrcSymlink},
149151
{configKeySuffix: "check-ram"},
152+
{check: checkPodmanInOcBinDir},
150153
{cleanup: removeCRCMachinesDir},
151154
{cleanup: removeAllLogs},
152155
{cleanup: cluster.ForgetPullSecret},
@@ -179,6 +182,7 @@ var checkListForDistros = []checkListForDistro{
179182
{check: checkSupportedCPUArch},
180183
{check: checkCrcSymlink},
181184
{configKeySuffix: "check-ram"},
185+
{check: checkPodmanInOcBinDir},
182186
{cleanup: removeCRCMachinesDir},
183187
{cleanup: removeAllLogs},
184188
{cleanup: cluster.ForgetPullSecret},
@@ -218,6 +222,7 @@ var checkListForDistros = []checkListForDistro{
218222
{check: checkSupportedCPUArch},
219223
{check: checkCrcSymlink},
220224
{configKeySuffix: "check-ram"},
225+
{check: checkPodmanInOcBinDir},
221226
{cleanup: removeCRCMachinesDir},
222227
{cleanup: removeAllLogs},
223228
{cleanup: cluster.ForgetPullSecret},
@@ -256,6 +261,7 @@ var checkListForDistros = []checkListForDistro{
256261
{check: checkSupportedCPUArch},
257262
{check: checkCrcSymlink},
258263
{configKeySuffix: "check-ram"},
264+
{check: checkPodmanInOcBinDir},
259265
{cleanup: removeCRCMachinesDir},
260266
{cleanup: removeAllLogs},
261267
{cleanup: cluster.ForgetPullSecret},
@@ -288,6 +294,7 @@ var checkListForDistros = []checkListForDistro{
288294
{check: checkSupportedCPUArch},
289295
{check: checkCrcSymlink},
290296
{configKeySuffix: "check-ram"},
297+
{check: checkPodmanInOcBinDir},
291298
{cleanup: removeCRCMachinesDir},
292299
{cleanup: removeAllLogs},
293300
{cleanup: cluster.ForgetPullSecret},
@@ -327,6 +334,7 @@ var checkListForDistros = []checkListForDistro{
327334
{check: checkSupportedCPUArch},
328335
{check: checkCrcSymlink},
329336
{configKeySuffix: "check-ram"},
337+
{check: checkPodmanInOcBinDir},
330338
{cleanup: removeCRCMachinesDir},
331339
{cleanup: removeAllLogs},
332340
{cleanup: cluster.ForgetPullSecret},
@@ -365,6 +373,7 @@ var checkListForDistros = []checkListForDistro{
365373
{check: checkSupportedCPUArch},
366374
{check: checkCrcSymlink},
367375
{configKeySuffix: "check-ram"},
376+
{check: checkPodmanInOcBinDir},
368377
{cleanup: removeCRCMachinesDir},
369378
{cleanup: removeAllLogs},
370379
{cleanup: cluster.ForgetPullSecret},
@@ -397,6 +406,7 @@ var checkListForDistros = []checkListForDistro{
397406
{check: checkSupportedCPUArch},
398407
{check: checkCrcSymlink},
399408
{configKeySuffix: "check-ram"},
409+
{check: checkPodmanInOcBinDir},
400410
{cleanup: removeCRCMachinesDir},
401411
{cleanup: removeAllLogs},
402412
{cleanup: cluster.ForgetPullSecret},
@@ -437,6 +447,7 @@ var checkListForDistros = []checkListForDistro{
437447
{check: checkSupportedCPUArch},
438448
{check: checkCrcSymlink},
439449
{configKeySuffix: "check-ram"},
450+
{check: checkPodmanInOcBinDir},
440451
{cleanup: removeCRCMachinesDir},
441452
{cleanup: removeAllLogs},
442453
{cleanup: cluster.ForgetPullSecret},
@@ -476,6 +487,7 @@ var checkListForDistros = []checkListForDistro{
476487
{check: checkSupportedCPUArch},
477488
{check: checkCrcSymlink},
478489
{configKeySuffix: "check-ram"},
490+
{check: checkPodmanInOcBinDir},
479491
{cleanup: removeCRCMachinesDir},
480492
{cleanup: removeAllLogs},
481493
{cleanup: cluster.ForgetPullSecret},

pkg/crc/preflight/preflight_windows.go

+1
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ func getAllPreflightChecks() []Check {
212212
func getChecks(bundlePath string, preset crcpreset.Preset, enableBundleQuayFallback bool) []Check {
213213
checks := []Check{}
214214
checks = append(checks, memoryCheck(preset))
215+
checks = append(checks, removePodmanFromOcBinDirCheck())
215216
checks = append(checks, hypervPreflightChecks...)
216217
checks = append(checks, crcUsersGroupExistsCheck)
217218
checks = append(checks, userPartOfCrcUsersAndHypervAdminsGroupCheck)

pkg/crc/preflight/preflight_windows_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ import (
1313
func TestCountConfigurationOptions(t *testing.T) {
1414
cfg := config.New(config.NewEmptyInMemoryStorage(), config.NewEmptyInMemorySecretStorage())
1515
RegisterSettings(cfg)
16-
assert.Len(t, cfg.AllConfigs(), 15)
16+
assert.Len(t, cfg.AllConfigs(), 16)
1717
}
1818

1919
func TestCountPreflights(t *testing.T) {
20-
assert.Len(t, getPreflightChecks(false, network.SystemNetworkingMode, constants.GetDefaultBundlePath(preset.OpenShift), preset.OpenShift, false), 23)
21-
assert.Len(t, getPreflightChecks(true, network.SystemNetworkingMode, constants.GetDefaultBundlePath(preset.OpenShift), preset.OpenShift, false), 23)
20+
assert.Len(t, getPreflightChecks(false, network.SystemNetworkingMode, constants.GetDefaultBundlePath(preset.OpenShift), preset.OpenShift, false), 24)
21+
assert.Len(t, getPreflightChecks(true, network.SystemNetworkingMode, constants.GetDefaultBundlePath(preset.OpenShift), preset.OpenShift, false), 24)
2222

23-
assert.Len(t, getPreflightChecks(false, network.UserNetworkingMode, constants.GetDefaultBundlePath(preset.OpenShift), preset.OpenShift, false), 22)
24-
assert.Len(t, getPreflightChecks(true, network.UserNetworkingMode, constants.GetDefaultBundlePath(preset.OpenShift), preset.OpenShift, false), 22)
23+
assert.Len(t, getPreflightChecks(false, network.UserNetworkingMode, constants.GetDefaultBundlePath(preset.OpenShift), preset.OpenShift, false), 23)
24+
assert.Len(t, getPreflightChecks(true, network.UserNetworkingMode, constants.GetDefaultBundlePath(preset.OpenShift), preset.OpenShift, false), 23)
2525
}

0 commit comments

Comments
 (0)