From d068c17c250b371e4a5e5f6b1ff5354c1178c536 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Fri, 20 Dec 2024 23:49:42 +0530 Subject: [PATCH] feat : Add config option to set developer password for cluster (#2539) Add option to set developer password for the user. ``` $ crc config set developer-password mypassword $ crc start [...] INFO Adding crc-admin and crc-developer contexts to kubeconfig... Started the OpenShift cluster. The server is accessible via web console at: https://console-openshift-console.apps-crc.testing Log in as user: Username: developer Password: mypassword ``` Signed-off-by: Rohan Kumar --- cmd/crc/cmd/start.go | 1 + pkg/crc/api/handlers.go | 1 + pkg/crc/config/settings.go | 3 +++ pkg/crc/config/settings_test.go | 6 ++++++ pkg/crc/constants/constants.go | 1 + pkg/crc/machine/types/types.go | 3 +++ 6 files changed, 15 insertions(+) diff --git a/cmd/crc/cmd/start.go b/cmd/crc/cmd/start.go index e33d1fba2b..c8e9779e20 100644 --- a/cmd/crc/cmd/start.go +++ b/cmd/crc/cmd/start.go @@ -75,6 +75,7 @@ func runStart(ctx context.Context) (*types.StartResult, error) { NameServer: config.Get(crcConfig.NameServer).AsString(), PullSecret: cluster.NewInteractivePullSecretLoader(config), KubeAdminPassword: config.Get(crcConfig.KubeAdminPassword).AsString(), + DeveloperPassword: config.Get(crcConfig.DeveloperPassword).AsString(), Preset: crcConfig.GetPreset(config), IngressHTTPPort: config.Get(crcConfig.IngressHTTPPort).AsUInt(), IngressHTTPSPort: config.Get(crcConfig.IngressHTTPSPort).AsUInt(), diff --git a/pkg/crc/api/handlers.go b/pkg/crc/api/handlers.go index 82221f6620..870abf0621 100644 --- a/pkg/crc/api/handlers.go +++ b/pkg/crc/api/handlers.go @@ -127,6 +127,7 @@ func getStartConfig(cfg crcConfig.Storage, args client.StartConfig) types.StartC NameServer: cfg.Get(crcConfig.NameServer).AsString(), PullSecret: cluster.NewNonInteractivePullSecretLoader(cfg, args.PullSecretFile), KubeAdminPassword: cfg.Get(crcConfig.KubeAdminPassword).AsString(), + DeveloperPassword: cfg.Get(crcConfig.DeveloperPassword).AsString(), IngressHTTPPort: cfg.Get(crcConfig.IngressHTTPPort).AsUInt(), IngressHTTPSPort: cfg.Get(crcConfig.IngressHTTPSPort).AsUInt(), Preset: crcConfig.GetPreset(cfg), diff --git a/pkg/crc/config/settings.go b/pkg/crc/config/settings.go index d4236d6a5c..ce44450014 100644 --- a/pkg/crc/config/settings.go +++ b/pkg/crc/config/settings.go @@ -29,6 +29,7 @@ const ( ConsentTelemetry = "consent-telemetry" EnableClusterMonitoring = "enable-cluster-monitoring" KubeAdminPassword = "kubeadmin-password" + DeveloperPassword = "developer-password" Preset = "preset" EnableSharedDirs = "enable-shared-dirs" SharedDirPassword = "shared-dir-password" // #nosec G101 @@ -134,6 +135,8 @@ func RegisterSettings(cfg *Config) { cfg.AddSetting(KubeAdminPassword, "", validateString, SuccessfullyApplied, "User defined kubeadmin password") + cfg.AddSetting(DeveloperPassword, constants.DefaultDeveloperPassword, validateString, SuccessfullyApplied, + "User defined developer password") cfg.AddSetting(IngressHTTPPort, constants.OpenShiftIngressHTTPPort, validatePort, RequiresHTTPPortChangeWarning, fmt.Sprintf("HTTP port to use for OpenShift ingress/routes on the host (1024-65535, default: %d)", constants.OpenShiftIngressHTTPPort)) cfg.AddSetting(IngressHTTPSPort, constants.OpenShiftIngressHTTPSPort, validatePort, RequiresHTTPSPortChangeWarning, diff --git a/pkg/crc/config/settings_test.go b/pkg/crc/config/settings_test.go index b8e13290b6..578e1b5d6e 100644 --- a/pkg/crc/config/settings_test.go +++ b/pkg/crc/config/settings_test.go @@ -200,6 +200,9 @@ var configDefaultValuesTestArguments = []struct { { KubeAdminPassword, "", }, + { + DeveloperPassword, "developer", + }, { CPUs, uint(4), }, @@ -286,6 +289,9 @@ var configProvidedValuesTestArguments = []struct { { KubeAdminPassword, "kubeadmin-secret-password", }, + { + DeveloperPassword, "developer-secret-password", + }, { CPUs, uint(8), }, diff --git a/pkg/crc/constants/constants.go b/pkg/crc/constants/constants.go index c76afb6ee3..7bd2db7566 100644 --- a/pkg/crc/constants/constants.go +++ b/pkg/crc/constants/constants.go @@ -30,6 +30,7 @@ const ( BackgroundLauncherURL = "https://github.com/crc-org/win32-background-launcher/releases/download/v%s/win32-background-launcher.exe" DefaultBundleURLBase = "https://mirror.openshift.com/pub/openshift-v4/clients/crc/bundles/%s/%s/%s" DefaultContext = "admin" + DefaultDeveloperPassword = "developer" DaemonHTTPEndpoint = "http://unix/api" DaemonVsockPort = 1024 DefaultPodmanNamedPipe = `\\.\pipe\crc-podman` diff --git a/pkg/crc/machine/types/types.go b/pkg/crc/machine/types/types.go index ef810a7218..1e8c1e48ea 100644 --- a/pkg/crc/machine/types/types.go +++ b/pkg/crc/machine/types/types.go @@ -26,6 +26,9 @@ type StartConfig struct { // User defined kubeadmin password KubeAdminPassword string + // User defined developer password + DeveloperPassword string + // Preset Preset crcpreset.Preset