Fix CLI credentials config file loading issue (closes #261) #685
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Summary:
This pull request fixes issue #261 by resolving the Kubero CLI's failure to create the credentials configuration file during the
kubero login
command, which caused subsequent commands likekubero dashboard
andkubero list
to fail with the error:Error while loading credentialsConfig file: Config File "credentials" Not Found in "[/etc/kubero /home/<user>/.kubero]"
. The changes ensure the credentials file is properly created in either/etc/kubero
or~/.kubero
, validate the API URL to prevent errors likeunsupported protocol scheme ""
, and improve error handling for better user feedback.Motivation and Context:
The issue reported in #261 indicates that users successfully log in but cannot execute other CLI commands due to a missing credentials file. This disrupts the CLI's usability, particularly for users managing Kubero instances on separate machines from their Kubernetes cluster. The fix enhances the CLI's reliability by ensuring proper configuration file creation and validation, aligning with Kubero's goal of providing a seamless PaaS experience. The changes also address a dependency issue in the test suite to ensure CI/CD compliance.
Dependencies:
github.com/spf13/cobra
for CLI command handling (already part of Kubero’s dependencies).gopkg.in/yaml.v3
for YAML parsing (already part of Kubero’s dependencies).sigs.k8s.io/[email protected]
(to resolve test failure; see below).missing go.sum entry for github.com/evanphx/json-patch/v5
), run:go.sum
to include the required dependency, ensuringgo test ./...
passes.Fixes #261
Type of change
How Has This Been Tested?
The changes were tested by:
cmd/kubero/login.go
,cmd/kubero/main.go
, andREADME.md
.go build -o kubero ./cmd/kubero
.kubero login
with:julep
http://kubero.julep.ai
<redacted>
~/.kubero/credentials
was created with correct YAML content:kubero dashboard
andkubero list
to confirm they execute without errors.http://
): Confirmed error message:invalid API URL
./etc/kubero
: Confirmed fallback to~/.kubero
.credentials file not found; please run 'kubero login'
.go get sigs.k8s.io/controller-runtime/pkg/[email protected]
to fixgo.sum
error.go test ./...
in the repository root to confirm tests pass (cached tests forpkg/core
andpkg/dns
passed; no tests incmd/kubero
oroperator/api/v1
).Test Configuration:
<latest-commit>
; update with actual hash when creating PR).Checklist:
go.sum
issue)