-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Refresh ~/.finch/confg.json based on finch.yaml #966
base: main
Are you sure you want to change the base?
fix: Refresh ~/.finch/confg.json based on finch.yaml #966
Conversation
The Unit Test is failing in the Windows environment.
This is occurring because in the Windows environment, the validate() function is not accurately validating the contents of As a result, we will modify the code to separate the Unit Test for macOS (darwin) and Windows environments. |
The following CI is failing, and I'm currently investigating the cause of the failure as it remains unclear. The details of the error are as follows: Details
panic: test timed out after 2h0m0s
running tests:
TestVM (2h0m0s)
goroutine 82 [running]:
testing.(*M).startAlarm.func1()
C:/Program Files/Go/src/testing/testing.go:2366 +0x385
created by time.goFunc
C:/Program Files/Go/src/time/sleep.go:177 +0x2d
goroutine 1 [chan receive, 119 minutes]:
testing.(*T).Run(0xc00017a9c0, {0xeba887?, 0xc03877a3c0?}, 0xf04c70)
C:/Program Files/Go/src/testing/testing.go:1750 +0x3ab
testing.runTests.func1(0xc00017a9c0)
C:/Program Files/Go/src/testing/testing.go:2161 +0x37
testing.tRunner(0xc00017a9c0, 0xc0000f1c70)
C:/Program Files/Go/src/testing/testing.go:1689 +0xfb
testing.runTests(0xc000178228, {0x138eb40, 0x1, 0x1}, {0x1?, 0x9dd493?, 0x13c5680?})
C:/Program Files/Go/src/testing/testing.go:2159 +0x445
testing.(*M).Run(0xc00011fe00)
C:/Program Files/Go/src/testing/testing.go:2027 +0x68b
main.main()
_testmain.go:47 +0x16c
goroutine 18 [runnable]:
github.com/onsi/ginkgo/v2/internal.extractRunningGoroutines()
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/progress_report.go:177 +0xef3
github.com/onsi/ginkgo/v2/internal.NewProgressReport(_, {{0xc0000be3c0, 0x2, 0x2}, {0xc00018c1c0, 0x2, 0x2}, {0xc0000305d0, 0x2, 0x2}, ...}, ...)
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/progress_report.go:75 +0x2df
github.com/onsi/ginkgo/v2/internal.(*Suite).generateProgressReport(_, _)
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/suite.go:381 +0x59b
github.com/onsi/ginkgo/v2/internal.(*Suite).runNode(_, {0x16, 0x4, {0xedaf82, 0x33}, 0xc000113710, {{0x105e722, 0x42}, 0x19, {0x0, ...}, ...}, ...}, ...)
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/suite.go:959 +0x119f
github.com/onsi/ginkgo/v2/internal.(*group).attemptSpec(0xc00038f130, 0x1, {{0xc0002d1c08?, 0xc00018c1c0?, 0x2?}, 0x0?})
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/group.go:199 +0xc33
github.com/onsi/ginkgo/v2/internal.(*group).run(0xc00038f130, {0xc0000be000?, 0x0?, 0x0?})
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/group.go:349 +0x925
github.com/onsi/ginkgo/v2/internal.(*Suite).runSpecs(0xc00014ea88, {0xecd48a, 0x1f}, {0x144df20, 0x0, 0x0}, {0xc00016edb0, 0x2a}, 0x0, {0xc00013d688, ...})
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/suite.go:489 +0xac5
github.com/onsi/ginkgo/v2/internal.(*Suite).Run(_, {_, _}, {_, _, _}, {_, _}, _, {0xfaf790, ...}, ...)
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/suite.go:130 +0x405
github.com/onsi/ginkgo/v2.RunSpecs({0xfa78c0, 0xc00017ab60}, {0xecd48a, 0x1f}, {0x0, 0x0, 0x0})
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/core_dsl.go:300 +0x8b3
github.com/runfinch/finch/e2e/vm.TestVM(0xc00017ab60)
C:/actions-runner/_work/finch/finch/e2e/vm/vm_windows_test.go:55 +0x1ca
testing.tRunner(0xc00017ab60, 0xf04c70)
C:/Program Files/Go/src/testing/testing.go:1689 +0xfb
created by testing.(*T).Run in goroutine 1
C:/Program Files/Go/src/testing/testing.go:1742 +0x390
goroutine 19 [syscall, 119 minutes]:
os/signal.signal_recv()
C:/Program Files/Go/src/runtime/sigqueue.go:152 +0x29
os/signal.loop()
C:/Program Files/Go/src/os/signal/signal_unix.go:23 +0x13
created by os/signal.Notify.func1.1 in goroutine 18
C:/Program Files/Go/src/os/signal/signal.go:151 +0x1f
goroutine 20 [select, 119 minutes]:
github.com/onsi/ginkgo/v2/internal/interrupt_handler.(*InterruptHandler).registerForInterrupts.func2(0x0?)
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/interrupt_handler/interrupt_handler.go:131 +0x7d
created by github.com/onsi/ginkgo/v2/internal/interrupt_handler.(*InterruptHandler).registerForInterrupts in goroutine 18
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/interrupt_handler/interrupt_handler.go:128 +0x165
goroutine 21 [select, 119 minutes]:
github.com/onsi/ginkgo/v2/internal.RegisterForProgressSignal.func1()
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/progress_report.go:32 +0x8b
created by github.com/onsi/ginkgo/v2/internal.RegisterForProgressSignal in goroutine 18
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/progress_report.go:30 +0xd9
goroutine 26 [syscall, 119 minutes, locked to thread]:
syscall.SyscallN(0x7ffa06a23bf0?, {0xc0004b1a48?, 0x3?, 0x0?})
C:/Program Files/Go/src/runtime/syscall_windows.go:544 +0x107
syscall.Syscall(0x3?, 0x3?, 0xc00049e900?, 0x0?, 0x0?)
C:/Program Files/Go/src/runtime/syscall_windows.go:482 +0x35
syscall.WaitForSingleObject(0x30c, 0xffffffff)
C:/Program Files/Go/src/syscall/zsyscall_windows.go:1142 +0x5d
os.(*Process).wait(0xc0003356b0)
C:/Program Files/Go/src/os/exec_windows.go:18 +0x50
os.(*Process).Wait(...)
C:/Program Files/Go/src/os/exec.go:134
os/exec.(*Cmd).Wait(0xc000160160)
C:/Program Files/Go/src/os/exec/exec.go:897 +0x45
os/exec.(*Cmd).Run(0xc000160160)
C:/Program Files/Go/src/os/exec/exec.go:607 +0x2d
github.com/runfinch/finch/e2e/vm.init.func5(0xc0002981b0)
C:/actions-runner/_work/finch/finch/e2e/vm/vm_test.go:32 +0x2f9
github.com/runfinch/finch/e2e/vm.init.func7.1.1()
C:/actions-runner/_work/finch/finch/e2e/vm/additional_disk_test.go:26 +0x3a
github.com/onsi/ginkgo/v2/internal.extractBodyFunction.func3({0x0?, 0x0?})
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/node.go:472 +0x13
github.com/onsi/ginkgo/v2/internal.(*Suite).runNode.func3()
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/suite.go:894 +0x8d
created by github.com/onsi/ginkgo/v2/internal.(*Suite).runNode in goroutine 18
C:/Users/Administrator/go/pkg/mod/github.com/onsi/ginkgo/[email protected]/internal/suite.go:881 +0xdb0
FAIL github.com/runfinch/finch/e2e/vm 7200.074s
FAIL
make: *** [test-e2e-vm-serial] Error 1
Error: Process completed with exit code 1. Additionally, the CI for recently created PR is also failing. Consequently, it is reasonable to assume that the changes made in this commit are not the root cause of the failure. |
Suppose we have configured the `creds_helpers` in `~/.finch/finch.yaml` as follows, and subsequently initialized a VM (`finch vm init`). ``` cpus: 6 creds_helpers: - ecr-login memory: 8GiB vmType: vz rosetta: true ``` As a result, `~/.finch/config.json` is created, and it contains the following: ``` {"credsStore":"ecr-login"} ``` This allows us to utilize the Amazon ECR Docker Credential Helper within Finch. Subsequently, suppose we stop and remove the VM (`finch vm stop` && `finch vm remove`), and then remove the `creds_helpers` configuration from `finch.yaml`. We then configure the `finch.yaml` file as follows: ``` cpus: 6 memory: 8GiB vmType: vz rosetta: true ``` As a result, when we reinitialize the VM (`finch vm init`), the expected behavior is that it will no longer use the Amazon ECR Docker Credential Helper. However, when initializing the VM, despite the absence of `creds_helpers` configuration in `finch.yaml`, the `"credsStore": "ecr-login"` remains in `config.json`, allowing the continued use of the Amazon ECR Docker Credential Helper. This behavior has been reported in the following issue: - runfinch#480 Furthermore, this issue occurs when we stop the VM (`finch vm stop`), modify `finch.yaml`, and subsequently start the VM (`finch vm start`). Consequently, we will modify the behavior to update `config.json` in accordance with the `creds_helpers` configuration in `finch.yaml` when initiating or starting the VM. Note that in this pull request, the commits are divided as follows: - Implement the logic to update `config.json` according to `finch.yaml` and change the function name (loadFinchConfig) in the config package - Modify to call the logic to update `config.json` according to `finch.yaml` on the VM side - Add unit tests for the credhelper package and modify unit tests for the config package - Modify and add Behavior-Driven Development (BDD) Tests using Ginkgo on the VM side - Add e2e tests On the other hand, in this commit, the logic to update `config.json` according to `finch.yaml` is implemented and the function name (loadFinchConfig) is changed in the config package. Signed-off-by: Hayato Kiwata <[email protected]>
This commit fixes the logic to call the VM side to update config.json according to ~/.finch/finch.yaml. Signed-off-by: Hayato Kiwata <[email protected]>
…kage In this commit, unit tests for credhelper package are added and unit tests for config package are modified. Signed-off-by: Hayato Kiwata <[email protected]>
In this commit, Behavior-Driven Development (BDD) tests using Ginkgo are modified and added. Signed-off-by: Hayato Kiwata <[email protected]>
In this commit, e2e tests for the implementation are added. Signed-off-by: Hayato Kiwata <[email protected]>
392950c
to
c231fd2
Compare
The following error has occured. Details
Finch Container Development E2E Tests Run a container image when running a container with network related flags should add a custom host-to-IP mapping with --add-host flag with special IP
C:/Users/Administrator/go/pkg/mod/github.com/runfinch/[email protected]/tests/run.go:383
time="2024-06-10T14:27:57Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl ps --all --quiet --no-trunc], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
6639458223931720f48de6b6afdc3b33dfb632bfc7fd55c56488d89b3fc6638d
No containers to be removed
time="2024-06-10T14:27:58Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl images --all --quiet], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
4fac7a8257b1
No images to be removed
time="2024-06-10T14:27:59Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl volume ls --quiet], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
fbd4a280b3ac12a87be6b4c9d4c1381023134854d65b67676f90f96c27a6a30f
time="2024-06-10T14:27:59Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl volume prune --force --all], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
time="2024-06-10T14:28:00Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl network ls --format {{.Name}}], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
bridge
host
none
No networks to be removed
time="2024-06-10T14:28:06Z" level=debug msg="Resolving special IP \"host-gateway\" to \"172.20.32.1\" for host \"test-host\""
time="2024-06-10T14:28:06Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl container run -d --name ctr-test --add-host test-host:172.20.32.1 localhost:54245/amazonlinux/amazonlinux:2 sleep infinity], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
2024-06-10 14:28:07.000679828 +0000 UTC finch /snapshot/prepare {"key":"extract-980825813-ceyw sha256:9e1c1e301fa54d41bb458ac8eb55c27666b79d815b1955e62d45edb27a814e3c","snapshotter":"overlayfs"}
localhost:54245/amazonlinux/amazonlinux:2: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:22bf06725070287a989d60f6ad5c036957515956c0408c4140839a18a632ce88: done |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:d50f1e912a2da0036b3e2303c2dea1788579e41cdfb0643e94ea354e92bdf132: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:24c69f972b4922d2e8c98dd360dc8717646a27703f7fa80f8ca820937fd0bd48: downloading |--------------------------------------| 0.0 B/1.4 KiB
elapsed: 0.1 s total: 846.0 (8.1 KiB/s)
localhost:54245/amazonlinux/amazonlinux:2: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:22bf06725070287a989d60f6ad5c036957515956c0408c4140839a18a632ce88: done |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:d50f1e912a2da0036b3e2303c2dea1788579e41cdfb0643e94ea354e92bdf132: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:24c69f972b4922d2e8c98dd360dc8717646a27703f7fa80f8ca820937fd0bd48: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:8a0995d2bf38a3ce742d376865782dab667a8fd7d3ded687b5775794788440be: downloading |+++-----------------------------------| 5.0 MiB/59.7 MiB
elapsed: 0.2 s total: 5.0 Mi (24.8 MiB/s)
localhost:54245/amazonlinux/amazonlinux:2: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:22bf06725070287a989d60f6ad5c036957515956c0408c4140839a18a632ce88: done |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:d50f1e912a2da0036b3e2303c2dea1788579e41cdfb0643e94ea354e92bdf132: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:24c69f972b4922d2e8c98dd360dc8717646a27703f7fa80f8ca820937fd0bd48: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:8a0995d2bf38a3ce742d376865782dab667a8fd7d3ded687b5775794788440be: downloading |+++++++++++++++++---------------------| 27.0 MiB/59.7 MiB
elapsed: 0.3 s total: 27.0 M (89.3 MiB/s)
localhost:54245/amazonlinux/amazonlinux:2: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:22bf06725070287a989d60f6ad5c036957515956c0408c4140839a18a632ce88: done |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:d50f1e912a2da0036b3e2303c2dea1788579e41cdfb0643e94ea354e92bdf132: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:24c69f972b4922d2e8c98dd360dc8717646a27703f7fa80f8ca820937fd0bd48: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:8a0995d2bf38a3ce742d376865782dab667a8fd7d3ded687b5775794788440be: downloading |++++++++++++++++++++++++++++++--------| 48.0 MiB/59.7 MiB
elapsed: 0.4 s total: 48.0 M (119.6 MiB/s)
localhost:54245/amazonlinux/amazonlinux:2: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:22bf06725070287a989d60f6ad5c036957515956c0408c4140839a18a632ce88: done |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:d50f1e912a2da0036b3e2303c2dea1788579e41cdfb0643e94ea354e92bdf132: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:24c69f972b4922d2e8c98dd360dc8717646a27703f7fa80f8ca820937fd0bd48: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:8a0995d2bf38a3ce742d376865782dab667a8fd7d3ded687b5775794788440be: downloading |++++++++++++++++++++++++++++++++++++++| 59.7 MiB/59.7 MiB
elapsed: 0.5 s total: 59.7 M (119.2 MiB/s)
localhost:54245/amazonlinux/amazonlinux:2: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:22bf06725070287a989d60f6ad5c036957515956c0408c4140839a18a632ce88: done |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:d50f1e912a2da0036b3e2303c2dea1788579e41cdfb0643e94ea354e92bdf132: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:24c69f972b4922d2e8c98dd360dc8717646a27703f7fa80f8ca820937fd0bd48: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:8a0995d2bf38a3ce742d376865782dab667a8fd7d3ded687b5775794788440be: downloading |++++++++++++++++++++++++++++++++++++++| 59.7 MiB/59.7 MiB
elapsed: 0.6 s total: 59.7 M (99.3 MiB/s)
localhost:54245/amazonlinux/amazonlinux:2: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:22bf06725070287a989d60f6ad5c036957515956c0408c4140839a18a632ce88: done |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:d50f1e912a2da0036b3e2303c2dea1788579e41cdfb0643e94ea354e92bdf132: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:24c69f972b4922d2e8c98dd360dc8717646a27703f7fa80f8ca820937fd0bd48: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:8a0995d2bf38a3ce742d376865782dab667a8fd7d3ded687b5775794788440be: done |++++++++++++++++++++++++++++++++++++++|
elapsed: 0.7 s total: 59.7 M (85.2 MiB/s)
localhost:54245/amazonlinux/amazonlinux:2: resolved |++++++++++++++++++++++++++++++++++++++|
22bf06725070
4fac7a8257b1
time="2024-06-10T14:28:24Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl rmi --force 22bf06725070], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
2024-06-10 14:28:24.713404676 +0000 UTC finch /images/delete {"name":"localhost:54245/amazonlinux/amazonlinux:2"}
2024-06-10 14:28:24.71898673 +0000 UTC finch /snapshot/remove {"key":"sha256:9e1c1e301fa54d41bb458ac8eb55c27666b79d815b1955e62d45edb27a814e3c","snapshotter":"overlayfs"}
Untagged: localhost:54245/amazonlinux/amazonlinux:2@sha256:22bf06725070287a989d60f6ad5c036957515956c0408c4140839a18a632ce88
Deleted: sha256:9e1c1e301fa54d41bb458ac8eb55c27666b79d815b1955e62d45edb27a814e3c
time="2024-06-10T14:28:25Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl images --all --format {{.Repository}}:{{.Tag}}], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
public.ecr.aws/docker/library/registry:latest
No images to be removed
time="2024-06-10T14:28:25Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl volume ls --quiet], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
fbd4a280b3ac12a87be6b4c9d4c1381023134854d65b67676f90f96c27a6a30f
time="2024-06-10T14:28:26Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl volume prune --force --all], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
time="2024-06-10T14:28:27Z" level=debug msg="Creating limactl command: ARGUMENTS: [shell --workdir /mnt/c/actions-runner/_work/finch/finch/e2e/container finch sudo -E nerdctl network ls --format {{.Name}}], LIMA_HOME: C:\\actions-runner\\_work\\finch\\finch\\_output\\lima\\data"
bridge
host
none
No networks to be removed
+ [FAILED] [30.300 seconds]
Finch Container Development E2E Tests Run a container image when running a container with network related flags [It] should add a custom host-to-IP mapping with --add-host flag with special IP
C:/Users/Administrator/go/pkg/mod/github.com/runfinch/[email protected]/tests/run.go:383
[FAILED] Timed out after 10.008s.
Expected process to exit. It did not.
In [It] at: C:/Users/Administrator/go/pkg/mod/github.com/runfinch/[email protected]/command/command.go:115 @ 06/10/24 14:28:20.263 I'm investigating the cause of the test failure. |
I think this is unrelated. Right now, the way we enable Windows => WSL2 communication is via a firewall rule. To make this more reliable, it might be best to install/configure mDNS inside the guest VM rootfs and resolve the special Another option is the new |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good generally, just left a few comments
|
||
// RefreshConfigFile refreshes config.json according to finch.yaml. | ||
func RefreshConfigFile(fs afero.Fs, logger flog.Logger, finchConfigPath, configJSONPath string) error { | ||
systemDeps := system.NewStdLib() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you pass these in as dependencies? Makes mocking/testing simpler
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree.
However, depending on the discussion below, there is no need to call config.LoadFinchConfig()
.
So the following call may no longer be necessary.
systemDeps := system.NewStdLib()
mem := fmemory.NewMemory()
systemDeps := system.NewStdLib() | ||
mem := fmemory.NewMemory() | ||
|
||
finchCfg, err := config.LoadFinchConfig(fs, finchConfigPath, logger, systemDeps, mem) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same for config, we can pass it as a dependency to the vm commands, and then to this function instead of loading it again
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this mean that the fc
being passed in the following is passed to newVirtualMachineCommand()
, which in turn is passed to newStartVMCommand()
and newInitVMCommand()
, to avoid re-loading the config?
var vmType string | ||
|
||
ginkgo.BeforeEach(func() { | ||
if runtime.GOOS == "windows" { | ||
vmType = "wsl2" | ||
} else { | ||
vmType = "vz" | ||
} | ||
}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this actually necessary?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think it is necessary.
testFinchConfigFile()
is called in both darwin
and windows
tests, but the vmType in finch.yaml is different for those environments.
The following implementation is also helpful.
Thanks you for review!!! I'm checking .... |
Suppose we have configured the
creds_helpers
in~/.finch/finch.yaml
as follows, and subsequently initialized a VM (finch vm init
).As a result,
~/.finch/config.json
is created, and it contains the following:This allows us to utilize the Amazon ECR Docker Credential Helper within Finch.
Subsequently, suppose we stop and remove the VM
(
finch vm stop
&&finch vm remove
), and then remove thecreds_helpers
configuration fromfinch.yaml
.We then configure the
finch.yaml
file as follows:As a result, when we reinitialize the VM (
finch vm init
), the expected behavior is that it will no longer use the Amazon ECR Docker Credential Helper.However, when initializing the VM, despite the absence of
creds_helpers
configuration infinch.yaml
, the"credsStore": "ecr-login"
remains inconfig.json
, allowing the continued use of the Amazon ECR Docker Credential Helper.This behavior has been reported in the following issue:
creds_helpers
from Finch VM configuration #480Furthermore, this issue occurs when we stop the VM (
finch vm stop
), modifyfinch.yaml
, and subsequently start the VM (finch vm start
).Consequently, we will modify the behavior to update
config.json
in accordance with thecreds_helpers
configuration infinch.yaml
when initiating or starting the VM.Issue #, if available: #480
Description of changes: The details are described in the commit message.
Testing done: yes
License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.