add tasks to install k8s tools 71/32571/4
authorHong Guan <hg4105@att.com>
Thu, 22 Feb 2018 15:54:22 +0000 (10:54 -0500)
committerHong Guan <hg4105@att.com>
Mon, 26 Feb 2018 19:49:14 +0000 (19:49 +0000)
Change-Id: Iae1032f73c03fcdf3bb69b341fc113bc67ecbb46
Issue-ID: OOM-725
Signed-off-by: hg4105 <hg4105@att.com>
TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml
TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml
TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh [new file with mode: 0644]

index 16b4b9a..2a7b7e7 100644 (file)
@@ -63,6 +63,8 @@ node_templates:
           - [kubectl, 1.8.6-0]
           - [kubernetes-cni, 0.5.1-1]
           - [nfs-utils]
+          - git
+          - wget
         runcmd:
           - [ setenforce, 0 ]
           - [ sysctl , '--system' ]
index 9ff0d58..3219791 100644 (file)
@@ -45,6 +45,10 @@ inputs:
       User for connecting to agent VMs
     default: centos
 
+  helm_version:
+    description: helm version to be installed
+    default: v2.7.0
+
 dsl_definitions:
 
   openstack_config: &openstack_config
@@ -76,6 +80,25 @@ node_templates:
       - type: cloudify.relationships.contained_in
         target: kubernetes_master_host
 
+  k8s_tools:
+    type: cloudify.nodes.SoftwareComponent
+    properties:
+    interfaces:
+      cloudify.interfaces.lifecycle:
+         start:
+          implementation: fabric.fabric_plugin.tasks.run_script
+          inputs:
+            script_path: scripts/k8s_tools.sh
+            process:
+              args: [{ get_input: helm_version }]
+            fabric_env:
+              host_string: { get_attribute: [ kubernetes_master_host, ip ] }
+              user: { get_input: agent_user }
+              key: { get_secret: agent_key_private }
+    relationships:
+      - type: cloudify.relationships.contained_in
+        target: kubernetes_master
+
   kubernetes_master_host:
     type: cloudify.openstack.nodes.Server
     properties:
diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh b/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh
new file mode 100644 (file)
index 0000000..2eee89e
--- /dev/null
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#============LICENSE_END============================================
+
+# this script will install dashboard on k8s master.
+
+#install heapster
+git clone -b release-1.5 https://github.com/kubernetes/heapster.git
+
+kubectl create -f heapster/deploy/kube-config/influxdb/
+kubectl create -f heapster/deploy/kube-config/rbac/heapster-rbac.yaml
+
+#install dashboard
+kubectl  apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
+
+##Change spec.type from ClusterIP to NodePort  and save.
+kubectl get svc kubernetes-dashboard --namespace=kube-system -o yaml | sed 's/type: ClusterIP/type: NodePort/' | kubectl replace -f -
+
+cat <<EOF >>dashboard-admin.yaml
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRoleBinding
+metadata:
+  name: kubernetes-dashboard
+  labels:
+    k8s-app: kubernetes-dashboard
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: cluster-admin
+subjects:
+- kind: ServiceAccount
+  name: kubernetes-dashboard
+  namespace: kube-system
+EOF
+
+kubectl create -f dashboard-admin.yaml
+
+#install helm
+wget http://storage.googleapis.com/kubernetes-helm/helm-$1-linux-amd64.tar.gz
+tar -zxvf helm-$1-linux-amd64.tar.gz
+sudo mv linux-amd64/helm /usr/bin/helm
+
+kubectl -n kube-system create sa tiller
+kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
+helm init --service-account tiller
\ No newline at end of file