diff options
author | Shinya Maeda <shinya@gitlab.com> | 2017-09-27 15:53:50 +0300 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2017-09-27 15:53:50 +0300 |
commit | 5fbf4069f6bc17dcc1ceeb81c28498b872882a6a (patch) | |
tree | 969082bb8f6a40b1de1c2c6c99c2a603e05c2612 /app/controllers/projects/clusters_controller.rb | |
parent | e9d05a2cdc24b4dc771344f26e6ffdcf0240e46c (diff) |
Fetch k8s token from k8s username/password
Diffstat (limited to 'app/controllers/projects/clusters_controller.rb')
-rw-r--r-- | app/controllers/projects/clusters_controller.rb | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/app/controllers/projects/clusters_controller.rb b/app/controllers/projects/clusters_controller.rb index 567c54ea2e2..b6e2b2a723b 100644 --- a/app/controllers/projects/clusters_controller.rb +++ b/app/controllers/projects/clusters_controller.rb @@ -40,20 +40,37 @@ class Projects::ClustersController < Projects::ApplicationController params['gcp_project_id'], params['cluster_zone'], params['cluster_name'] ) + # Get k8s token + token = '' + KubernetesService.new.tap do |ks| + ks.api_url = 'https://' + gke_cluster.endpoint + ks.ca_pem = Base64.decode64(gke_cluster.master_auth.cluster_ca_certificate) + ks.username = gke_cluster.master_auth.username + ks.password = gke_cluster.master_auth.password + secrets = ks.read_secrets + secrets.each do |secret| + name = secret.dig('metadata', 'name') + if /default-token/ =~ name + token_base64 = secret.dig('data', 'token') + token = Base64.decode64(token_base64) + break + end + end + end + # Update service kubernetes_service.attributes = service_params( active: true, - api_url: gke_cluster.endpoint, + api_url: 'https://' + gke_cluster.endpoint, ca_pem: Base64.decode64(gke_cluster.master_auth.cluster_ca_certificate), namespace: params['project_namespace'], - token: 'aaa' # TODO: username/password + token: token ) kubernetes_service.save! # Save info project.clusters.create( - creation_type: params['creation_type'], gcp_project_id: params['gcp_project_id'], cluster_zone: params['cluster_zone'], cluster_name: params['cluster_name'], |