aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJun Hu <jh245g@att.com>2018-01-09 15:11:05 -0500
committerJun (Nicolas) Hu <jh245g@att.com>2018-02-15 16:07:22 +0000
commit64e83a3b70fe794748233cdd7bae6ee7e91bd3ec (patch)
treefd6aed6a1ea09aa5438af31112036b38d4e48bf9
parent1a2202432565078b50e2494339185cd9b767dac1 (diff)
Install/uninstall helm chart
This TOSCA will deploy ONAP on the Kubernetes Cluster. Issue-ID: OOM-46 Change-Id: I783a9fdec19b896470f61dd4ba13bbe0b2e01b0a Signed-off-by: Nicolas Hu <jh245g@att.com>
-rw-r--r--TOSCA/Helm/helmdelete.sh23
-rw-r--r--TOSCA/Helm/helminstall.sh30
-rw-r--r--TOSCA/Helm/onap-blueprint.yaml291
3 files changed, 344 insertions, 0 deletions
diff --git a/TOSCA/Helm/helmdelete.sh b/TOSCA/Helm/helmdelete.sh
new file mode 100644
index 0000000000..d3f342afc1
--- /dev/null
+++ b/TOSCA/Helm/helmdelete.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright © 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============================================
+
+helm delete $1-$2 --purge
+kubectl delete namespace $1-$2
+kubectl delete clusterrolebinding $1-$2-admin-binding
+
+
diff --git a/TOSCA/Helm/helminstall.sh b/TOSCA/Helm/helminstall.sh
new file mode 100644
index 0000000000..96f38dae76
--- /dev/null
+++ b/TOSCA/Helm/helminstall.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright © 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============================================
+
+printf "%s" "$*"
+printf `pwd`
+printf "%s" "---------------"
+kubectl create namespace $1-$2
+kubectl create clusterrolebinding $1-$2-admin-binding --clusterrole=cluster-admin --serviceaccount=$1-$2:default
+# assign default auth token
+if [[ -z $ONAP_DEFAULT_AUTH_TOKEN ]]; then
+ DEFAULT_SECRET=`kubectl get secrets -n $1-$2 | grep default-token | awk '{ print $1}'`
+ ONAP_DEFAULT_AUTH_TOKEN=`kubectl get secrets $DEFAULT_SECRET -n $1-$2 -o yaml | grep 'token:' | awk '{ print $2}' | base64 -d`
+fi
+kubectl --namespace $1-$2 create secret docker-registry $1-docker-registry-key --docker-server=nexus3.onap.org:10001 --docker-username=docker --docker-password=docker --docker-email=@
+helm install ../$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=302,kubeMasterAuthToken=$ONAP_DEFAULT_AUTH_TOKEN \ No newline at end of file
diff --git a/TOSCA/Helm/onap-blueprint.yaml b/TOSCA/Helm/onap-blueprint.yaml
new file mode 100644
index 0000000000..092f7432c5
--- /dev/null
+++ b/TOSCA/Helm/onap-blueprint.yaml
@@ -0,0 +1,291 @@
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright © 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============================================
+
+tosca_definitions_version: cloudify_dsl_1_3
+
+imports:
+ - http://www.getcloudify.org/spec/cloudify/3.4.2/types.yaml
+ - http://www.getcloudify.org/spec/fabric-plugin/1.5/plugin.yaml
+
+inputs:
+ # For agent, toggle to true.
+ install_method:
+ default: none # For fabric use false.
+ ip:
+ user:
+ default: centos
+ namespace_perfix:
+ default: onap
+
+node_types:
+ cloudify.nodes.Helm:
+ derived_from: cloudify.nodes.SoftwareComponent
+ properties:
+ cwd:
+ default: /home/centos/oom/kubernetes/oneclick
+ args:
+ default:
+ - onap
+ - mso
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ # This is for fabric: # Run Anywhere.
+ start:
+ implementation: fabric.fabric_plugin.tasks.run_script
+ inputs:
+ script_path:
+ default: helminstall.sh # Relative to the blueprint file.
+ process:
+ default: &process_vars
+ cwd: { get_property: [ SELF, cwd ] }
+ args: { get_property: [ SELF, args ] }
+ fabric_env:
+ default: &fabric_env
+ user: { get_property: [ k8s_master, agent_config, user ] }
+ host_string: { get_property: [ k8s_master, ip ] }
+ key: { get_property: [ k8s_master, agent_config, key ] }
+ stop:
+ implementation: fabric.fabric_plugin.tasks.run_script
+ inputs:
+ script_path:
+ default: helmdelete.sh
+ process:
+ default: *process_vars
+ fabric_env:
+ default: *fabric_env
+
+node_templates:
+
+ k8s_master:
+ type: cloudify.nodes.Compute
+ properties:
+ ip: { get_input: ip }
+ agent_config:
+ install_method: { get_input: install_method } # False for Fabric.
+ key: { get_secret: agent_key_private }
+ user: { get_input: user }
+
+ consul:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - consul
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ msb:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - msb
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+
+ mso:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - mso
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ appc:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - appc
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ message-router:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - message-router
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ sdnc:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - sdnc
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ vid:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - vid
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ robot:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - robot
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ policy:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - policy
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ portal:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - portal
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ aai:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - aai
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ sdc:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - sdc
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ log:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - log
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ cli:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - cli
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ multicloud:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - multicloud
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ clamp:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - clamp
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ vnfsdk:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - vnfsdk
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ uui:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - uui
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ aaf:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - aaf
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ vfc:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - vfc
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ kube2msb:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - kube2msb
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master