From b25a58d78dde82703ae49d086675f4fd5f930904 Mon Sep 17 00:00:00 2001 From: Jibin Date: Mon, 13 May 2019 18:27:29 +0530 Subject: [PATCH] Generate cluster config from init script --- docker-compose.yaml | 18 ++++++++++-------- docker/local.Dockerfile | 2 +- src/helpers/kube-requests.go | 6 ++++-- src/main.go | 8 ++++---- src/tools/init.go | 20 ++++++++++++++------ src/tools/scheduler.go | 11 ----------- src/tools/tasks/send-webapp-token.go | 3 +-- 7 files changed, 34 insertions(+), 34 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 725d991..8dcd23e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,21 +1,23 @@ version: '3' services: configserver: - build: + build: context: . dockerfile: docker/local.Dockerfile + command: ["./app", "--init"] ports: - - '3005:3005' + - '3005:3005' volumes: - - ./src/config-files:/conf.d/ - - ./src/:/go/src/github.com/BlockClusterApp/daemon/src + - ./src/config-files:/conf.d/ + - ./src/:/go/src/github.com/BlockClusterApp/daemon/src environment: -# KUBE_API_SERVER_URL: 'https://k8s-dev-us-west-2-api.blockcluster.io' -# KUBE_TOKEN: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJibG9ja2NsdXN0ZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoiYmxvY2tjbHVzdGVyLWFnZW50LXRva2VuLTRodGo1Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImJsb2NrY2x1c3Rlci1hZ2VudCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjU1OWM0ODNmLWQ2ZTQtMTFlOC1iNjVlLTAyYjYzYWIyMDNiZSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpibG9ja2NsdXN0ZXI6YmxvY2tjbHVzdGVyLWFnZW50In0.tvjvyHBGO40rqK2AbUW7aqsrZtrj_lln4JSlMYpJHapsriNxuEf_8szinwe1N9QxjaxYZtMBdpniouwuC-7H3FKi9zAXm8rrw6fRGLGQ7BbzyWjFjAac9yK1lTdKyy-qECGXfkWZ-eSL2LPfrhtISbydGH815YAcRNl2t7cbPoZ9aO43cU9u7O49FfXgA9yxTIhGtPLQ2ST-yfQYWkjZgGH39ZkQPQMUsjqx7SMKNECAG7y2BLhDb0j40jHTbJ0x3CW3FTI79NogrJwA3OeUiLfQVSZ4LL6veHDdEJN3QqGDAaeD2136NZweaGhEe-cxd1cmRtI5UkJJBCznuY3U7w' + KUBE_API_SERVER_URL: 'https://k8s-dev-us-west-2-api.blockcluster.io' + KUBE_TOKEN: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJibG9ja2NsdXN0ZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoiYmxvY2tjbHVzdGVyLWFnZW50LXRva2VuLTRodGo1Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImJsb2NrY2x1c3Rlci1hZ2VudCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjU1OWM0ODNmLWQ2ZTQtMTFlOC1iNjVlLTAyYjYzYWIyMDNiZSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpibG9ja2NsdXN0ZXI6YmxvY2tjbHVzdGVyLWFnZW50In0.tvjvyHBGO40rqK2AbUW7aqsrZtrj_lln4JSlMYpJHapsriNxuEf_8szinwe1N9QxjaxYZtMBdpniouwuC-7H3FKi9zAXm8rrw6fRGLGQ7BbzyWjFjAac9yK1lTdKyy-qECGXfkWZ-eSL2LPfrhtISbydGH815YAcRNl2t7cbPoZ9aO43cU9u7O49FfXgA9yxTIhGtPLQ2ST-yfQYWkjZgGH39ZkQPQMUsjqx7SMKNECAG7y2BLhDb0j40jHTbJ0x3CW3FTI79NogrJwA3OeUiLfQVSZ4LL6veHDdEJN3QqGDAaeD2136NZweaGhEe-cxd1cmRtI5UkJJBCznuY3U7w' GO_ENV: 'development' SHOW_LOGS: "1" - LICENSE_KEY: "" - CLUSTER_IDENTIFIER: "" + ENTERPRISE_API_URL: "https://7bf99fe4.ngrok.io/daemon" + LICENSE_KEY: "SJTYLN-TNX2-B3VM-SXF9" + CLUSTER_IDENTIFIER: "us-west-2" diff --git a/docker/local.Dockerfile b/docker/local.Dockerfile index f1c21f5..1c58ec2 100644 --- a/docker/local.Dockerfile +++ b/docker/local.Dockerfile @@ -11,6 +11,6 @@ RUN dep ensure -vendor-only COPY . ./ -# RUN go build -o app /go/src/github.com/BlockClusterApp/daemon/**/*.go +RUN go build -o app /go/src/github.com/BlockClusterApp/daemon/**/*.go CMD ["go", "run", "src/main.go"] diff --git a/src/helpers/kube-requests.go b/src/helpers/kube-requests.go index f6f548d..4d03c4a 100644 --- a/src/helpers/kube-requests.go +++ b/src/helpers/kube-requests.go @@ -183,10 +183,12 @@ func MakeKubeRequest(method string, path string, payload io.Reader) (string, err } defer resp.Body.Close() - if resp.StatusCode > 400 { + if resp.StatusCode >= 400 { + bodyBytes, _ := ioutil.ReadAll(resp.Body) + bodyString := string(bodyBytes) GetLogger().Printf("Request to %s returned %d", url, resp.StatusCode) resp.Body.Close() - return "", errors.New(fmt.Sprintf("Request to %s returned %d", url, resp.StatusCode)) + return "", errors.New(fmt.Sprintf("Request to %s returned %d | %s", url, resp.StatusCode, bodyString)) } if resp.StatusCode == http.StatusOK || resp.StatusCode == http.StatusCreated { diff --git a/src/main.go b/src/main.go index 3d507c8..51fb093 100644 --- a/src/main.go +++ b/src/main.go @@ -21,14 +21,14 @@ func main() { log = helpers.GetLogger() bc := helpers.GetBlockclusterInstance() - var isInInitMode = false + var isInInitMode *bool - flag.Bool("init", isInInitMode, "--init if using in init mode") + isInInitMode = flag.Bool("init", false, "--init if using in init mode") flag.Parse() - bc.IsInInitMode = isInInitMode + bc.IsInInitMode = *isInInitMode - if isInInitMode { + if bc.IsInInitMode { tools.Init() } else { router := newRouter() diff --git a/src/tools/init.go b/src/tools/init.go index 67913e9..16c0492 100644 --- a/src/tools/init.go +++ b/src/tools/init.go @@ -5,6 +5,7 @@ import ( "github.com/BlockClusterApp/daemon/src/dtos" "github.com/BlockClusterApp/daemon/src/helpers" "github.com/BlockClusterApp/daemon/src/tools/tasks" + "log" "net/http" "strings" ) @@ -40,7 +41,7 @@ func deleteBlockclusterConfigmap() { func fetchConfigFromServer() *dtos.ServerClusterConfig { bc := helpers.GetBlockclusterInstance() - path := "/api/daemon/cluster-config" + path := "/cluster-config" res, err := bc.SendGetRequest(path) @@ -78,11 +79,16 @@ func createConfigMap(cm *dtos.BlockclusterConfigmap) { } func Init() { + log.Printf("Starting init scripts") tasks.ValidateLicence() tasks.SendWebappTokenToServer() _, err := fetchBlockclusterConfigMap() + if err != nil { + log.Printf("Error fetching configmap %s", err.Error()) + } + config := fetchConfigFromServer() kubeVersion := helpers.FetchLocalKubeVersion() @@ -101,11 +107,13 @@ func Init() { }, } - if err != nil && (strings.Contains(err.Error(), "Not Found") || strings.Contains(err.Error(), "404")) { - // Does not exists - } else { - deleteBlockclusterConfigmap() - } + log.Printf("New config %s", config) + + //if err != nil && (strings.Contains(err.Error(), "Not Found") || strings.Contains(err.Error(), "404")) { + // // Does not exists + //} else { + // deleteBlockclusterConfigmap() + //} createConfigMap(&newConfig) } diff --git a/src/tools/scheduler.go b/src/tools/scheduler.go index f8b21d4..f188415 100644 --- a/src/tools/scheduler.go +++ b/src/tools/scheduler.go @@ -1,8 +1,6 @@ package tools import ( - "github.com/BlockClusterApp/daemon/src/dtos" - "github.com/BlockClusterApp/daemon/src/helpers" "github.com/BlockClusterApp/daemon/src/tools/tasks" "github.com/jasonlvhit/gocron" "log" @@ -13,16 +11,11 @@ import ( func StartScheduler() { log.Println("Starting jobs") gocron.Start() - bc := helpers.GetBlockclusterInstance() sleepDuration := time.Duration(1) time.Sleep(sleepDuration * time.Second) tasks.ValidateLicence() - if bc.OperationType == dtos.CLOUD_CONFIG { - tasks.SendWebappTokenToServer() - } - tasks.UpdateConfigs() if os.Getenv("GO_ENV") == "development" { @@ -44,10 +37,6 @@ func StartScheduler() { gocron.Every(5).Minutes().Do(tasks.ValidateLicence) gocron.Every(10).Minutes().Do(tasks.CheckAllSystems) - if bc.OperationType == dtos.CLOUD_CONFIG { - gocron.Every(5).Hours().Do(tasks.SendWebappTokenToServer) - } - gocron.Every(2).Minutes().Do(tasks.UpdateConfigs) gocron.Every(30).Seconds().Do(tasks.UpdateMetrics) gocron.Every(9).Minutes().Do(tasks.FetchNodeInformation) diff --git a/src/tools/tasks/send-webapp-token.go b/src/tools/tasks/send-webapp-token.go index 1f170a1..2fc9bdc 100644 --- a/src/tools/tasks/send-webapp-token.go +++ b/src/tools/tasks/send-webapp-token.go @@ -44,7 +44,7 @@ func fetchWebappSecret(secretList *dtos.SecretList) dtos.WebappSecret { } func sendTokenToServer(token string) { - path := "/api/daemon/cluster-token" + path := "/cluster-token" blockcluster := helpers.GetBlockclusterInstance() body := fmt.Sprintf(`{"token": "%s", "identifier": "%s"}`, token, os.Getenv("CLUSTER_IDENTIFIER")) @@ -70,5 +70,4 @@ func SendWebappTokenToServer() { } sendTokenToServer(webappSecret.Data.Token) - helpers.GetLogger().Printf("Sent token") } \ No newline at end of file