diff options
Diffstat (limited to 'test/ete/labs/huawei/onap-oom.yaml')
-rw-r--r-- | test/ete/labs/huawei/onap-oom.yaml | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/test/ete/labs/huawei/onap-oom.yaml b/test/ete/labs/huawei/onap-oom.yaml new file mode 100644 index 000000000..11767cf63 --- /dev/null +++ b/test/ete/labs/huawei/onap-oom.yaml @@ -0,0 +1,155 @@ +heat_template_version: 2015-10-15 +description: ONAP on Kubernetes using OOM + +parameters: + public_net_id: + type: string + description: The ID of the Public network for floating IP address allocation + + docker_proxy: + type: string + + apt_proxy: + type: string + +resources: + rancher_vm: + type: OS::Nova::Server + properties: + name: rancher + image: xenial + flavor: m1.medium + key_name: onap_key + networks: + - network: { get_param: public_net_id } + user_data_format: RAW + user_data: + str_replace: + params: + __docker_proxy__: { get_param: docker_proxy } + __apt_proxy__: { get_param: apt_proxy } + template: | + #!/bin/bash -x + echo `hostname -I` `hostname` >> /etc/hosts + mkdir -p /etc/docker + cat > /etc/docker/daemon.json <<EOF + { + "insecure-registries" : ["__docker_proxy__"] + } + EOF + cat > /etc/apt/apt.conf.d/30proxy<<EOF + Acquire::http { Proxy "http://__apt_proxy__"; }; + Acquire::https::Proxy "DIRECT"; + EOF + apt-get -y update + apt-get -y install docker.io + usermod -aG docker ubuntu + docker run --restart unless-stopped -d -p 8080:8080 rancher/server:v1.6.10 + + k8s_vm: + type: OS::Nova::Server + properties: + name: k8s + image: xenial + flavor: m1.xxlarge + key_name: onap_key + networks: + - network: { get_param: public_net_id } + user_data_format: RAW + user_data: + str_replace: + params: + __docker_proxy__: { get_param: docker_proxy } + __apt_proxy__: { get_param: apt_proxy } + __rancher_ip_addr__: { get_attr: [rancher_vm, first_address] } + template: | + #!/bin/bash -x + mkdir -p /opt/config + echo "__rancher_ip_addr__" > /opt/config/rancher_ip_addr.txt + echo `hostname -I` `hostname` >> /etc/hosts + mkdir -p /etc/docker + cat > /etc/docker/daemon.json <<EOF + { + "insecure-registries" : ["__docker_proxy__"] + } + EOF + cat > /etc/apt/apt.conf.d/30proxy<<EOF + Acquire::http { Proxy "http://__apt_proxy__"; }; + Acquire::https::Proxy "DIRECT"; + EOF + apt-get -y update + apt-get -y install jq + + cd ~ + + # install docker 1.12 + curl -s https://releases.rancher.com/install-docker/1.12.sh | sh + usermod -aG docker ubuntu + + # install kubernetes 1.8.6 + curl -s -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.6/bin/linux/amd64/kubectl + chmod +x ./kubectl + sudo mv ./kubectl /usr/local/bin/kubectl + mkdir ~/.kube + + # install helm 2.3 + wget -q http://storage.googleapis.com/kubernetes-helm/helm-v2.3.0-linux-amd64.tar.gz + tar -zxvf helm-v2.3.0-linux-amd64.tar.gz + sudo mv linux-amd64/helm /usr/local/bin/helm + + # Fix virtual memory allocation for onap-log:elasticsearch: + sysctl -w vm.max_map_count=262144 + + # install rancher agent + echo export RANCHER_IP=__rancher_ip_addr__ > api-keys-rc + source api-keys-rc + + until curl -s -o projects.json -H "Accept: application/json" http://$RANCHER_IP:8080/v2-beta/projects; do + sleep 5 + done + OLD_PID=$(jq -r '.data[0].id' projects.json) + + curl -s -H "Accept: application/json" -H "Content-Type: application/json" -d '{"accountId":"1a1"}' http://$RANCHER_IP:8080/v2-beta/apikeys | tee apikeys.json + echo export RANCHER_ACCESS_KEY=`jq -r '.publicValue' apikeys.json` >> api-keys-rc + echo export RANCHER_SECRET_KEY=`jq -r '.secretValue' apikeys.json` >> api-keys-rc + source api-keys-rc + + curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" -X DELETE -H 'Content-Type: application/json' "http://$RANCHER_IP:8080/v2-beta/projects/$OLD_PID" + + until [ ! -z "$TEMPLATE_ID" ] && [ "$TEMPLATE_ID" != "null" ]; do + sleep 5 + curl -s -H "Accept: application/json" http://$RANCHER_IP:8080/v2-beta/projectTemplates?name=Kubernetes | tee projectTemplatesKubernetes.json + TEMPLATE_ID=$(jq -r '.data[0].id' projectTemplatesKubernetes.json) + done + + curl -u "${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" -X POST -H 'Content-Type: application/json' -d '{ "name":"oom", "projectTemplateId":"'$TEMPLATE_ID'" }' "http://$RANCHER_IP:8080/v2-beta/projects" | tee project.json + PID=`jq -r '.id' project.json` + echo export RANCHER_URL=http://$RANCHER_IP:8080/v1/projects/$PID >> api-keys-rc + source api-keys-rc + + until [ $(jq -r '.state' project.json) == "active" ]; do + sleep 1 + curl -s -H "Accept: application/json" http://$RANCHER_IP:8080/v1/projects/$PID | tee project.json + done + + TID=$(curl -s -X POST -H "Accept: application/json" -H "Content-Type: application/json" http://$RANCHER_IP:8080/v1/projects/$PID/registrationTokens | jq -r '.id') + touch token.json + while [ $(jq -r .command token.json | wc -c) -lt 10 ]; do + sleep 1 + curl -s -X GET -H "Accept: application/json" http://$RANCHER_IP:8080/v1/projects/$PID/registrationToken/$TID | tee token.json + done + CMD=$(jq -r .command token.json) + eval $CMD + + # download rancher CLI + wget -q https://github.com/rancher/cli/releases/download/v0.6.7/rancher-linux-amd64-v0.6.7.tar.xz + unxz rancher-linux-amd64-v0.6.7.tar.xz + tar xvf rancher-linux-amd64-v0.6.7.tar + + # Clone OOM: + cd ~ + git clone -b amsterdam http://gerrit.onap.org/r/oom + + # Update values.yaml to point to docker-proxy instead of nexus3: + cd ~/oom/kubernetes + perl -p -i -e 's/nexus3.onap.org:10001/__docker_proxy__/g' `find ./ -name values.yaml` |