Skip to content

Commit 57da9d2

Browse files
authored
Merge pull request #279 from covexo/config-fix
Change cloud config to only include hostname
2 parents 00a7085 + 146c738 commit 57da9d2

3 files changed

Lines changed: 28 additions & 19 deletions

File tree

cmd/init.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -372,11 +372,13 @@ func (cmd *InitCmd) useCloudProvider() bool {
372372
cloudProvider += ")"
373373
cloudProviderSelected := ""
374374

375-
for _, ok := providerConfig[cloudProviderSelected]; ok == false && cloudProviderSelected != "no"; {
376-
cloudProviderSelected = *stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
375+
for ok := false; ok == false && cloudProviderSelected != "no"; {
376+
cloudProviderSelected = strings.TrimSpace(*stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
377377
Question: "Do you want to use a cloud provider? (no to skip) " + cloudProvider,
378378
DefaultValue: cloud.DevSpaceCloudProviderName,
379-
})
379+
}))
380+
381+
_, ok = providerConfig[cloudProviderSelected]
380382
}
381383

382384
if cloudProviderSelected != "no" {

pkg/devspace/cloud/config.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,25 @@ type ProviderConfig map[string]*Provider
2222
type Provider struct {
2323
Name string `yaml:"name,omitempty"`
2424
KubeContext string `yaml:"kubecontext,omitempty"`
25-
Login string `yaml:"login,omitempty"`
26-
GetConfig string `yaml:"getConfig,omitempty"`
25+
Host string `yaml:"host,omitempty"`
2726
Token string `yaml:"token,omitempty"`
2827
}
2928

3029
// DevSpaceCloudProviderName is the name of the default devspace-cloud provider
3130
const DevSpaceCloudProviderName = "devspace-cloud"
3231

32+
// LoginEndpoint is the cloud endpoint that will log you in
33+
const LoginEndpoint = "/login"
34+
35+
// LoginSuccessEndpoint is the url redirected to after successful login
36+
const LoginSuccessEndpoint = "/loginSuccess"
37+
38+
// GetClusterConfigEndpoint is the endpoint where to get the kubernetes context data
39+
const GetClusterConfigEndpoint = "/clusterConfig"
40+
3341
// DevSpaceCloudProviderConfig holds the information for the devspace-cloud
3442
var DevSpaceCloudProviderConfig = &Provider{
35-
Login: "https://cloud.devspace.covexo.com/login",
36-
GetConfig: "https://cloud.devspace.covexo.com/clusterConfig",
43+
Host: "https://cloud.devspace.covexo.com",
3744
KubeContext: DevSpaceKubeContextName,
3845
}
3946

@@ -58,8 +65,7 @@ func ParseCloudConfig() (ProviderConfig, error) {
5865
}
5966

6067
if _, ok := cloudConfig[DevSpaceCloudProviderName]; ok {
61-
cloudConfig[DevSpaceCloudProviderName].GetConfig = DevSpaceCloudProviderConfig.GetConfig
62-
cloudConfig[DevSpaceCloudProviderName].Login = DevSpaceCloudProviderConfig.Login
68+
cloudConfig[DevSpaceCloudProviderName].Host = DevSpaceCloudProviderConfig.Host
6369
} else {
6470
cloudConfig[DevSpaceCloudProviderName] = DevSpaceCloudProviderConfig
6571
}
@@ -84,8 +90,7 @@ func SaveCloudConfig(config ProviderConfig) error {
8490
provider.Name = ""
8591

8692
if name == DevSpaceCloudProviderName {
87-
provider.Login = ""
88-
provider.GetConfig = ""
93+
provider.Host = ""
8994
}
9095
}
9196

pkg/devspace/cloud/login.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cloud
22

33
import (
4+
"context"
45
"encoding/json"
56
"fmt"
67
"io/ioutil"
@@ -28,7 +29,7 @@ func CheckAuth(provider *Provider) (string, *api.Cluster, *api.AuthInfo, error)
2829
// GetClusterConfig retrieves the cluster and authconfig from the devspace cloud
2930
func GetClusterConfig(provider *Provider) (string, *api.Cluster, *api.AuthInfo, error) {
3031
client := &http.Client{}
31-
req, err := http.NewRequest("GET", provider.GetConfig, nil)
32+
req, err := http.NewRequest("GET", provider.Host+GetClusterConfigEndpoint, nil)
3233
if err != nil {
3334
return "", nil, nil, err
3435
}
@@ -81,17 +82,18 @@ func GetClusterConfig(provider *Provider) (string, *api.Cluster, *api.AuthInfo,
8182

8283
// Login logs the user into the devspace cloud
8384
func Login(provider *Provider) (string, *api.Cluster, *api.AuthInfo, error) {
85+
ctx := context.Background()
8486
tokenChannel := make(chan string)
8587

86-
log.StartWait("Logging into cloud " + provider.Login + " ...")
87-
server := startServer(tokenChannel)
88+
log.StartWait("Logging into cloud " + provider.Host + LoginEndpoint + " ...")
89+
server := startServer(provider.Host+LoginSuccessEndpoint, tokenChannel)
8890

89-
open.Start(provider.Login)
91+
open.Start(provider.Host + LoginEndpoint)
9092

9193
token := <-tokenChannel
9294
close(tokenChannel)
9395

94-
err := server.Shutdown(nil)
96+
err := server.Shutdown(ctx)
9597
if err != nil {
9698
return "", nil, nil, err
9799
}
@@ -185,19 +187,19 @@ func UpdateKubeConfig(contextName string, cluster *api.Cluster, authInfo *api.Au
185187
return kubeconfig.WriteKubeConfig(config, clientcmd.RecommendedHomeFile)
186188
}
187189

188-
func startServer(tokenChannel chan string) *http.Server {
190+
func startServer(redirectURI string, tokenChannel chan string) *http.Server {
189191
srv := &http.Server{Addr: ":25853"}
190192

191193
http.HandleFunc("/token", func(w http.ResponseWriter, r *http.Request) {
192-
fmt.Fprintf(w, "<script type=\"text/javascript\">window.close();</script>")
193-
194194
keys, ok := r.URL.Query()["token"]
195195
if !ok || len(keys[0]) < 1 {
196196
log.Fatal("Bad request")
197197
}
198198

199199
log.StopWait()
200200
tokenChannel <- keys[0]
201+
202+
http.Redirect(w, r, redirectURI, http.StatusSeeOther)
201203
})
202204

203205
go func() {

0 commit comments

Comments
 (0)