Skip to content

Commit c835dc3

Browse files
author
olegs-codefresh
committed
Add environment variables support, if set
1. KUBECONFIG will be used by default as the part 2. CODEFRESH_TOKEN will be used by default
1 parent 404edd9 commit c835dc3

File tree

2 files changed

+33
-13
lines changed

2 files changed

+33
-13
lines changed

cli.go

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"errors"
45
"fmt"
56
"os"
67

@@ -16,20 +17,41 @@ func setupCli() *cli.App {
1617
return app
1718
}
1819

20+
var (
21+
codefreshJwt string
22+
kubeConfigPath string
23+
)
24+
1925
func setupCommands(app *cli.App) {
2026
app.Commands = []cli.Command{
2127
{
2228
Name: "create",
2329
Description: "Create clusters in Codefresh",
2430
Action: create,
31+
Before: func(c *cli.Context) error {
32+
jwtFromOsEnv := os.Getenv("CODEFRESH_TOKEN")
33+
if jwtFromOsEnv != "" {
34+
c.Set("token", jwtFromOsEnv)
35+
}
36+
if !c.IsSet("token") {
37+
fmt.Printf("not set")
38+
return errors.New("--token nigther CODEFREHS_TOKEN is set")
39+
}
40+
return nil
41+
},
2542
Flags: []cli.Flag{
2643
cli.StringFlag{
27-
Name: "token",
44+
Name: "token",
45+
Usage: "Codefresh JWT token",
46+
EnvVar: "CODEFRESH_TOKEN",
47+
Destination: &codefreshJwt,
2848
},
2949
cli.StringFlag{
30-
Name: "config",
31-
Usage: "Kubernetes config file to be used as input",
32-
Value: fmt.Sprintf("%s/.kube/config", os.Getenv("HOME")),
50+
Name: "config",
51+
Usage: "Kubernetes config file to be used as input",
52+
Value: fmt.Sprintf("%s/.kube/config", os.Getenv("HOME")),
53+
EnvVar: "KUBECONFIG",
54+
Destination: &kubeConfigPath,
3355
},
3456
},
3557
},

create-clusters.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@ func init() {
2929
}
3030

3131
func create(cli *cli.Context) {
32-
pathToKubeConfig := cli.String("config")
33-
jwt := cli.String("token")
34-
cnf := clientcmd.GetConfigFromFileOrDie(pathToKubeConfig)
32+
cnf := clientcmd.GetConfigFromFileOrDie(kubeConfigPath)
3533
c := *cnf
3634
override := clientcmd.ConfigOverrides{
3735
ClusterInfo: api.Cluster{
@@ -80,7 +78,7 @@ func create(cli *cli.Context) {
8078
fmt.Println("Found secret")
8179

8280
fmt.Println("Creating cluster in Codefresh")
83-
body, e := addCluser(clientCnf.Host, contextName, secret.Data["token"], secret.Data["ca.crt"], jwt)
81+
body, e := addCluser(clientCnf.Host, contextName, secret.Data["token"], secret.Data["ca.crt"])
8482
if e != nil {
8583
fmt.Println("Error!!")
8684
fmt.Println(e)
@@ -93,7 +91,7 @@ func create(cli *cli.Context) {
9391
}
9492
}
9593

96-
func addCluser(host string, contextName string, token []byte, crt []byte, jwt string) ([]byte, error) {
94+
func addCluser(host string, contextName string, token []byte, crt []byte) ([]byte, error) {
9795
url := baseCodefreshURL + "api/clusters/local/cluster"
9896
payload := &requestPayload{
9997
Type: "sat",
@@ -105,15 +103,15 @@ func addCluser(host string, contextName string, token []byte, crt []byte, jwt st
105103
}
106104
mar, _ := json.Marshal(payload)
107105
p := strings.NewReader(string(mar))
108-
err := testConnection(payload, jwt)
106+
err := testConnection(payload)
109107
if err != nil {
110108
return nil, err
111109
}
112110
req, err := http.NewRequest("POST", url, p)
113111
if err != nil {
114112
return nil, err
115113
}
116-
req.Header.Add("X-Access-Token", jwt)
114+
req.Header.Add("X-Access-Token", codefreshJwt)
117115
req.Header.Add("content-type", "application/json")
118116
res, err := http.DefaultClient.Do(req)
119117
if err != nil {
@@ -127,15 +125,15 @@ func addCluser(host string, contextName string, token []byte, crt []byte, jwt st
127125
return body, nil
128126
}
129127

130-
func testConnection(payload *requestPayload, jwt string) error {
128+
func testConnection(payload *requestPayload) error {
131129
url := baseCodefreshURL + "api/kubernetes/test"
132130
mar, _ := json.Marshal(payload)
133131
p := strings.NewReader(string(mar))
134132
req, err := http.NewRequest("POST", url, p)
135133
if err != nil {
136134
return err
137135
}
138-
req.Header.Add("X-Access-Token", jwt)
136+
req.Header.Add("X-Access-Token", codefreshJwt)
139137
req.Header.Add("content-type", "application/json")
140138
res, err := http.DefaultClient.Do(req)
141139
if err != nil {

0 commit comments

Comments
 (0)