#!/bin/bash ### Setting up variables used in this script ### build_node_ip=$(openstack server list -c Name -c Networks -f value | egrep ${openstack_build_stack_name} | awk '{print $NF}' | sed 's/.*=//g') ssh_cmd="ssh -o StrictHostKeychecking=no -i ${ssh_key} ${remote_user}@${build_node_ip}" onap_docker_images_dir="/tmp/resources/offline_data/docker_images_for_nexus" ${ssh_cmd} "${clone_oom_cmd}" ### Changing onap values.yaml to include all the components of onap, as by default all are set to false and then the data_list creator script ### ### would not work as intended ### #TODO: Is this the best way to do this? The values.yaml could change when new components are added and static content will not mirror this. [eronkeo: 10-10-2019] ${ssh_cmd} "sudo bash -c \"cat << EOF > /tmp/oom/kubernetes/onap/values.yaml # Copyright © 2019 Amdocs, Bell Canada # # 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. ################################################################# # Global configuration overrides. # # These overrides will affect all helm charts (ie. applications) # that are listed below and are 'enabled'. ################################################################# global: # Change to an unused port prefix range to prevent port conflicts # with other instances running within the same k8s cluster nodePortPrefix: 302 nodePortPrefixExt: 304 # ONAP Repository # Uncomment the following to enable the use of a single docker # repository but ONLY if your repository mirrors all ONAP # docker images. This includes all images from dockerhub and # any other repository that hosts images for ONAP components. #repository: nexus3.onap.org:10001 repositoryCred: user: docker password: docker # readiness check - temporary repo until images migrated to nexus3 readinessRepository: oomk8s # logging agent - temporary repo until images migrated to nexus3 loggingRepository: docker.elastic.co # image pull policy pullPolicy: Always # default mount path root directory referenced # by persistent volumes and log files persistence: mountPath: /dockerdata-nfs enableDefaultStorageclass: false parameters: {} storageclassProvisioner: kubernetes.io/no-provisioner volumeReclaimPolicy: Retain # override default resource limit flavor for all charts # flag to enable debugging - application support required debugEnabled: false ################################################################# # Enable/disable and configure helm charts (ie. applications) # to customize the ONAP deployment. ################################################################# aaf: enabled: true aai: enabled: true appc: enabled: true config: openStackType: OpenStackProvider openStackName: OpenStack openStackKeyStoneUrl: http://localhost:8181/apidoc/explorer/index.html openStackServiceTenantName: default openStackDomain: default openStackUserName: admin openStackEncryptedPassword: admin cassandra: enabled: true clamp: enabled: true cli: enabled: true consul: enabled: true contrib: enabled: true dcaegen2: enabled: true #Pnda site is down and can't pull any version of pnda at the moment pnda: enabled: false dmaap: enabled: true esr: enabled: true log: enabled: true sniro-emulator: enabled: true oof: enabled: true mariadb-galera: enabled: true msb: enabled: true multicloud: enabled: true nbi: enabled: true config: # openstack configuration openStackRegion: "Yolo" openStackVNFTenantId: "1234" nfs-provisioner: enabled: true policy: enabled: true pomba: enabled: true portal: enabled: true robot: enabled: true config: # openStackEncryptedPasswordHere should match the encrypted string used in SO and APPC and overridden per environment openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e" sdc: enabled: true sdnc: enabled: true replicaCount: 1 mysql: replicaCount: 1 so: enabled: true replicaCount: 1 liveness: # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true # so server configuration config: # message router configuration dmaapTopic: "AUTO" # openstack configuration openStackUserName: "vnf_user" openStackRegion: "RegionOne" openStackKeyStoneUrl: "http://1.2.3.4:5000" openStackServiceTenantName: "service" openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e" # configure embedded mariadb mariadb: config: mariadbRootPassword: password uui: enabled: true vfc: enabled: true vid: enabled: true vnfsdk: enabled: true modeling: enabled: true nginx-ingress: enabled: true EOF \" " ###TODO There is a script created in the offline installer to check rpms and create repo, but at the moment it is not usable, thus it is done manually### #${ssh_cmd} "sudo /tmp/onap-offline/build/create_repo.sh -d $(pwd)" ### RPM's for CentOS were changed, thus we need to remake the rpm.list file ### ${ssh_cmd} "sudo bash -c \"cat << EOF > ${build_dir}/data_lists/onap_rpm.list #Renewed list of rpms containerd.io-1.2.5-3.1.el7.x86_64 container-selinux-1.12.5-14.el7.x86_64 container-selinux-2.107-3.el7.noarch docker-ce-18.09.5-3.el7.x86_64 docker-ce-cli-18.09.6-3.el7.x86_64 gssproxy-0.7.0-26.el7.x86_64 keyutils-1.5.8-3.el7.x86_64 libbasicobjects-0.1.1-32.el7.x86_64 libcollection-0.7.0-32.el7.x86_64 libevent-2.0.21-4.el7.x86_64 libini_config-1.3.1-32.el7.x86_64 libnfsidmap-0.25-19.el7.x86_64 libpath_utils-0.2.1-32.el7.x86_64 libref_array-0.1.5-32.el7.x86_64 libverto-libevent-0.2.5-4.el7.x86_64 nfs-utils-1.3.0-0.65.el7.x86_64 python-docker-py-1.10.6-9.el7_6.noarch python-docker-pycreds-0.3.0-9.el7_6.noarch python-ipaddress-1.0.16-2.el7.noarch python-jsonpointer-1.9-2.el7.noarch python-websocket-client-0.56.0-3.git3c25814.el7.noarch EOF\" " ###Need to download and install helm in order to populate data_list according to oom helm charts### ###Since we cannot login as root, and scripts presume you are a root user,need to set up correctly to be able to use helm ### ${ssh_cmd} "sudo ${build_dir}/download/download.py --http ${data_list_dir}/infra_bin_utils.list ${resources_dir}/downloads" ${ssh_cmd} "sudo tar -xf ${resources_dir}/downloads/storage.googleapis.com/kubernetes-helm/*.tar.gz linux-amd64/helm" ${ssh_cmd} "sudo mv linux-amd64/helm /usr/local/bin/helm" ${ssh_cmd} "sudo sed -i -e '/secure_path/ s[=.*[&:/usr/local/bin[' /etc/sudoers" ${ssh_cmd} "sudo sed -i ${sed_cmd} ${build_dir}/creating_data/docker-images-collector.sh" ${ssh_cmd} "sudo ${build_dir}/creating_data/docker-images-collector.sh /tmp/oom/kubernetes/onap &>/dev/null" ###*******Commands to incorporate Online PART 1*******### #${ssh_cmd} "sudo curl https://artifactory.nordix.org/artifactory/list/onap/online-install/master/latest/onap_docker_images.list -o ${onap_offline_dir}/onap_docker_images_online.list" #scp -o StrictHostKeychecking=no -i ${ssh_key} ${WORKSPACE}/build/scripts/docker_sha_downloader.py ${openstack_user}@${build_node_ip}:${onap_offline_dir}/docker_sha_downloader.py #${ssh_cmd} "sudo $(onap_offline_dir}/docker_sha_downloader.py -l onap_docker_images_online.list -d ${onap_docker_images_dir}" #${ssh_cmd} "sudo sed -i '/nexus3.onap.org:10001\/onap/d' ${data_list_dir}/onap_docker_images.list" ###Download Scripts run step by step instead of using a wrapper script### ${ssh_cmd} "sudo ${build_dir}/download/download.py \ --docker ${data_list_dir}/infra_docker_images.list ${resources_dir}/offline_data/docker_images_infra \ --docker ${data_list_dir}/k8s_docker_images.list ${resources_dir}/offline_data/docker_images_for_nexus \ --docker ${data_list_dir}/rke_docker_images.list ${resources_dir}/offline_data/docker_images_for_nexus \ --docker ${data_list_dir}/onap_docker_images.list ${resources_dir}/offline_data/docker_images_for_nexus" if [ $? -ne 0 ]; then echo "Error downloading docker images: Retrying" #There is a problem with the collector making a list with the same image being pulled twice, but once from a bad repo, thus it needs to be removed ${ssh_cmd} "sudo sed -i '/registry.hub.docker.com\/onap\/multicloud\/framework-artifactbroker:1.4.2/d' ${build_dir}/data_lists/onap_docker_images.list" ${ssh_cmd} "sudo ${build_dir}/download/download.py \ --docker ${data_list_dir}/infra_docker_images.list ${resources_dir}/offline_data/docker_images_infra \ --docker ${data_list_dir}/k8s_docker_images.list ${resources_dir}/offline_data/docker_images_for_nexus \ --docker ${data_list_dir}/rke_docker_images.list ${resources_dir}/offline_data/docker_images_for_nexus \ --docker ${data_list_dir}/onap_docker_images.list ${resources_dir}/offline_data/docker_images_for_nexus" if [ $? -ne 0 ]; then echo "Error downloading docker images -----RETRY FAILED-----" exit -1 fi fi ${ssh_cmd} "sudo ${build_dir}/download/download.py --rpm ${data_list_dir}/onap_rpm.list ${resources_dir}/pkg/rhel" if [ $? -ne 0 ]; then echo "Error downloading rpm files" exit -1 fi ###Need to create repo, as that is used in the deployment stage### ${ssh_cmd} "sudo createrepo /tmp/resources/pkg/rhel" if [ $? -ne 0 ]; then echo "Error creating repo" exit -1 fi ###*******Commands to incorporate Online PART 2 ( TO BE LEFT COMMENTED OUT FOR NIGHTLY PURPOSES ) *******### #${ssh_cmd} "sudo bash -c \"cat ${onap_offline_dir}/onap_docker_images_online.list | sed 's/#sha256.*//' > ${onap_offline_dir}/onap_docker_images_work.list\"" #${ssh_cmd} "sudo sed -i 's/registry.nordix.org\/onap\/online-install\//nexus.onap.org:10001\//' ${onap_offline_dir}/onap_docker_images_work.list" #${ssh_cmd} "sudo bash -c \"cat ${onap_offline_dir}/onap_docker_images_work.list | sort >> ${data_list_dir}/onap_docker_images.list\"" ###SHOULD NOT BE NEEDED ANYMORE IF WE ARE DROPPING THE 4 DIGIT TAG, but will be kept just in case### #${ssh_cmd} "sudo sed -i 's/\.[0-9]*$//' ${onap_offline_dir}/onap_docker_images_work.list" #${ssh_cmd} "sudo sed -i 's/\.[0-9]*[[:blank:]]$//' ${onap_offline_dir}/onap_docker_images_work.list"