Merge "Modify docker role to use dind"
authorSamuli Silvius <s.silvius@partner.samsung.com>
Thu, 30 May 2019 15:23:26 +0000 (15:23 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 30 May 2019 15:23:26 +0000 (15:23 +0000)
55 files changed:
ansible/README.md
ansible/roles/application/defaults/main.yml
ansible/roles/application/molecule/default/tests/test_default.py
ansible/roles/application/tasks/install.yml
ansible/roles/nexus/defaults/main.yml
ansible/roles/nexus/tasks/install.yml
ansible/roles/package-repository/tasks/main.yml
ansible/roles/rancher/molecule/default/cleanup.yml [deleted file]
ansible/roles/rancher/molecule/default/molecule.yml
ansible/roles/rancher/molecule/default/playbook.yml
ansible/roles/rancher/molecule/default/prepare.yml
ansible/roles/rancher/tasks/rancher_agent.yml
ansible/site.yml
ansible/test/play-infrastructure/.yamllint [new file with mode: 0644]
ansible/test/play-infrastructure/molecule/default/molecule.yml [new file with mode: 0644]
ansible/test/play-infrastructure/molecule/default/playbook.yml [new file with mode: 0644]
ansible/test/play-infrastructure/molecule/default/prepare.yml [new file with mode: 0644]
ansible/test/play-infrastructure/molecule/default/tests/test_nodes.py [new file with mode: 0644]
ansible/test/play-infrastructure/molecule/default/vars.yml [new file with mode: 0644]
ansible/test/roles/prepare-common/tasks/main.yml
ansible/test/roles/prepare-dns/tasks/main.yml [new file with mode: 0644]
ansible/test/roles/prepare-nexus/tasks/main.yml [new file with mode: 0644]
ansible/test/roles/prepare-nexus/vars/main.yml [new file with mode: 0644]
ansible/test/roles/prepare-nginx/tasks/main.yml [new file with mode: 0644]
ansible/test/roles/prepare-package-repository/tasks/main.yml [new file with mode: 0644]
ansible/test/roles/prepare-package-repository/vars/main.yml [new file with mode: 0644]
ansible/test/roles/prepare-vncserver/tasks/main.yml [new file with mode: 0644]
build/build_nexus_blob.sh
build/creating_data/download-pip.sh
build/data_lists/onap_3.0.0-docker_images.list [deleted file]
build/data_lists/onap_3.0.1-docker_images.list [deleted file]
build/data_lists/onap_3.0.2-docker_images.list [deleted file]
build/data_lists/onap_3.0.x-git_repos.list [deleted file]
build/data_lists/onap_3.0.x-pip_packages.list [deleted file]
build/data_lists/onap_docker_images.list [new file with mode: 0644]
build/data_lists/onap_git_repos.list [new file with mode: 0644]
build/data_lists/onap_npm.list [moved from build/data_lists/onap_3.0.x-npm.list with 76% similarity]
build/data_lists/onap_pip_packages.list [new file with mode: 0644]
build/data_lists/rke_docker_images.list [new file with mode: 0644]
build/download/__init__.py [new file with mode: 0644]
build/download/base.py [new file with mode: 0644]
build/download/docker_images.py [new file with mode: 0755]
build/download/git_repos.py [new file with mode: 0755]
build/download/http_files.py [new file with mode: 0755]
build/download/npm_packages.py [new file with mode: 0755]
build/download/requirements.txt [new file with mode: 0644]
build/download/rpm_packages.py [new file with mode: 0755]
build/fetch_and_patch_charts.sh
build/package.conf
config/application_configuration.yml
docs/BuildGuide.rst
docs/InstallGuide.rst
patches/casablanca.patch [deleted file]
patches/onap-patch-role/tasks/main.yml [moved from patches/onap-casablanca-patch-role/tasks/main.yml with 64% similarity]
patches/onap.patch [new file with mode: 0644]

index 8d6e41e..f82c750 100644 (file)
@@ -113,7 +113,7 @@ This playbook contains imports for all the other playbooks needed to deploy
 wanted Kubernetes application:
   - `upload_resources.yml`
   - `infrastructure.yml`
-  - `rancher_kubernetes.yml`
+  - `rke.yml`
   - `application.yml` - this is an application related playbook
 
 ### Resource upload
@@ -139,7 +139,7 @@ Infrastructure setup is handled by `infrastructure.yml` playbook.
 
 ### Kubernetes cluster deployment
 
-Kubernetes cluster is deployment is handled by `rancher_kubernetes.yml` playbook.
+Kubernetes cluster deployment is handled by `rke.yml` playbook.
 
 **Preconditions**:
   - infrastructure deployed by running `infrastructure.yml` playbook
@@ -162,7 +162,7 @@ copied there after installer package is deployed and before installing the appli
 Application Helm charts and configuration is better described in [application/README.md](./application/README.md)
 
 **Preconditions**:
-  - Kubernetes cluster must be up and running i.e. `rancher_kubernetes.yml` playbook has been run.
+  - Kubernetes cluster must be up and running i.e. `rke.yml` playbook has been run.
 
 ## Running playbooks
 To run ansible playbook call `run_playbook.sh` with same arguments as you would
@@ -222,12 +222,25 @@ parts.
           hosts:
             infrastructure-server:
               ansible_host: 10.8.8.9
+              #IP used for communication between infra and kubernetes nodes, must be specified.
+              cluster_ip: 10.8.8.9
 
         # This is group of hosts which are/will be part of Kubernetes cluster.
         kubernetes:
           hosts:
             kubernetes-node-1:
               ansible_host: 10.8.8.13
+              #ip of the node that it uses for communication with k8s cluster.
+              cluster_ip: 10.8.8.13
+
+        # This is a group of hosts that are to be used as kubernetes control plane nodes.
+        # This means they host kubernetes api server, controller manager and scheduler.
+        # This example uses infra for this purpose, however note that any
+        # other host could be used including kubernetes nodes.
+        # cluster_ip needs to be set for hosts used as control planes.
+        kubernetes-control-plane:
+          hosts:
+            infrastructure-server
 
         nfs-server:
           hosts:
index dec1760..84fffec 100644 (file)
@@ -1,6 +1,8 @@
 ---
 helm_repository_name: local
 helm_repository_url: http://127.0.0.1:8879
+helm_extra_install_options:
+  - { opt: '--timeout 1800'}
 # Override file generation for Helm application can be customized by any role
 # given by user and found by ansible from roles_path.
 # By default override file is generated by 'application-override' role that is
index 3e0cbb4..5edceff 100644 (file)
@@ -16,7 +16,8 @@ serve
 repo list
 repo add local http://127.0.0.1:8879
 install --name moleculetestapp local/moleculetestapp --namespace \
-moleculetestapp -f /opt/moleculetestapp/override.yaml"""
+moleculetestapp -f /opt/moleculetestapp/override.yaml \
+--timeout 1800"""
     assert fc == expected_content
 
 
index cdc7ced..bdf6e51 100644 (file)
@@ -72,6 +72,7 @@
           {{ helm_repository_name }}/{{ app_helm_chart_name }}
           --namespace {{ app_kubernetes_namespace }}
           {{ '' if app_skip_helm_override else '-f ' + app_helm_override_file }}
+          {% for arg in helm_extra_install_options %} {{ arg.opt }} {% endfor %}
   changed_when: true  # when executed its a changed type of action
   register: helm_install
   failed_when: helm_install.stderr
index 92089e9..8f63697 100644 (file)
@@ -1,4 +1,5 @@
 ---
+nexus_come_up_wait_retries: 30
 # By default prepopulated nexus binary blob used.
 populate_nexus: false
 # By dafault no additional docker images pushed to nexus at runtime
index f8de5e9..c88e585 100644 (file)
@@ -36,7 +36,7 @@
     password: admin123
     force_basic_auth: true
     method: GET
-  retries: 30
+  retries: "{{ nexus_come_up_wait_retries }}"
   delay: 10
   register: nexus_wait
   until: not nexus_wait.failed
index 599e105..7dc2e76 100644 (file)
@@ -5,6 +5,7 @@
     path: /etc/resolv.conf
     state: present
     insertbefore: BOF
+    unsafe_writes: true
 
 - name: Disable all OS default repositories
   block:
diff --git a/ansible/roles/rancher/molecule/default/cleanup.yml b/ansible/roles/rancher/molecule/default/cleanup.yml
deleted file mode 100644 (file)
index d4bf449..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
----
-- name: Cleanup host
-  hosts: localhost
-  roles:
-    - role: cleanup-containers
-      vars:
-        container_list:
-          - rancher-agent
-          - rancher-server
-    - role: cleanup-rancher
-      vars:
-        container_list_by_label:
-          - { 'label':'io.rancher.project.name', 'value':'healthcheck'}
-          - { 'label':'io.rancher.project.name', 'value':'kubernetes'}
index b21325d..eb7f8c1 100644 (file)
@@ -13,8 +13,7 @@ platforms:
     override_command: false
     restart_policy: unless-stopped
     volumes:
-      - /var/run/docker.sock:/var/run/docker.sock
-      - /var/lib/rancher:/var/lib/rancher:ro
+      - /var/lib/docker
     groups:
       - infrastructure
     networks:
@@ -27,12 +26,14 @@ platforms:
     override_command: false
     restart_policy: unless-stopped
     volumes:
-      - /var/run/docker.sock:/var/run/docker.sock
-      - /var/lib/rancher:/var/lib/rancher:ro
+      - /var/lib/docker
+      - /var/lib/rancher
+      - /var/lib/kubelet
     groups:
       - kubernetes
     networks:
       - name: rancher
+    purge_networks: true
 
 provisioner:
   name: ansible
index e0ef086..e4a7151 100644 (file)
@@ -2,7 +2,7 @@
 - name: Converge rancher master
   hosts: infrastructure
   roles:
-    - prepare-common  # molecule specific role needed here to populate cluster_ip
+    - prepare-common
     - role: rancher
       vars:
         mode: server
index 90159c6..d70cda4 100644 (file)
@@ -1,5 +1,5 @@
 ---
-- name: Prepare kube nodes
-  hosts: kubernetes
+- name: Prepare hosts
+  hosts: all
   roles:
-    - prepare-docker
+    - prepare-docker-dind
index 091503c..73d9a64 100644 (file)
@@ -7,7 +7,6 @@
     volumes:
       - "/var/run/docker.sock:/var/run/docker.sock"
       - "/var/lib/rancher:/var/lib/rancher"
-    auto_remove: true
     privileged: true
   vars:
     server_hostvars: "{{ hostvars[groups.infrastructure.0] }}"
index fbf2c38..7e22c5b 100644 (file)
@@ -15,6 +15,6 @@
 #    installer
 - import_playbook: resources.yml
 - import_playbook: infrastructure.yml
-- import_playbook: rancher_kubernetes.yml
+- import_playbook: rke.yml
 - import_playbook: application.yml
 
diff --git a/ansible/test/play-infrastructure/.yamllint b/ansible/test/play-infrastructure/.yamllint
new file mode 100644 (file)
index 0000000..ad0be76
--- /dev/null
@@ -0,0 +1,11 @@
+extends: default
+
+rules:
+  braces:
+    max-spaces-inside: 1
+    level: error
+  brackets:
+    max-spaces-inside: 1
+    level: error
+  line-length: disable
+  truthy: disable
diff --git a/ansible/test/play-infrastructure/molecule/default/molecule.yml b/ansible/test/play-infrastructure/molecule/default/molecule.yml
new file mode 100644 (file)
index 0000000..894ab80
--- /dev/null
@@ -0,0 +1,73 @@
+---
+dependency:
+  name: galaxy
+driver:
+  name: docker
+lint:
+  name: yamllint
+platforms:
+  - name: infrastructure-server
+    image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+    pre_build_image: true
+    privileged: true
+    override_command: false
+    restart_policy: unless-stopped
+    volumes:
+      - /var/lib/docker
+      - /opt/onap
+    groups:
+      - infrastructure
+    networks:
+      - name: infrastructure-net
+    purge_networks: true
+
+  - name: kubernetes-node-1
+    image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+    pre_build_image: true
+    privileged: true
+    override_command: false
+    restart_policy: unless-stopped
+    env:
+      container: docker
+    volumes:
+      - /var/lib/docker
+    groups:
+      - kubernetes
+    networks:
+      - name: infrastructure-net
+    purge_networks: true
+
+provisioner:
+  name: ansible
+  env:
+    ANSIBLE_ROLES_PATH: ../../../roles:../../../../roles/
+    ANSIBLE_LIBRARY: ../../../../library
+  inventory:
+    links:
+      group_vars: ../../../../group_vars
+  lint:
+    name: ansible-lint
+scenario:
+  name: default
+  test_sequence:
+    - lint
+    - cleanup
+    - destroy
+    - dependency
+    - syntax
+    - create
+    - prepare
+    - converge
+    # - idempotence
+    # --> Action: 'idempotence'
+    # ERROR: Idempotence test failed because of the following tasks:
+    # * [infrastructure-server -> 10.0.2.15] => certificates : Generate an OpenSSL CSR.
+    # * [infrastructure-server -> 10.0.2.15] => certificates : Generate root CA certificate
+    - side_effect
+    - verify
+    - cleanup
+    - destroy
+verifier:
+  name: testinfra
+  lint:
+    name: flake8
diff --git a/ansible/test/play-infrastructure/molecule/default/playbook.yml b/ansible/test/play-infrastructure/molecule/default/playbook.yml
new file mode 100644 (file)
index 0000000..26b3c15
--- /dev/null
@@ -0,0 +1,11 @@
+---
+- name: Common setup for all hosts
+  hosts: all
+  tasks:
+    - name: Set cluster_ip variable
+      set_fact:
+        cluster_ip: "{{ ansible_default_ipv4.address }}"
+    - name: Include variables
+      include_vars: vars.yml
+
+- import_playbook: ../../../../infrastructure.yml
diff --git a/ansible/test/play-infrastructure/molecule/default/prepare.yml b/ansible/test/play-infrastructure/molecule/default/prepare.yml
new file mode 100644 (file)
index 0000000..86e25b4
--- /dev/null
@@ -0,0 +1,25 @@
+---
+- name: Prepare infra
+  hosts: infrastructure
+  roles:
+    - prepare-package-repository
+    - prepare-chrony
+    - prepare-vncserver
+    - prepare-nginx
+    - prepare-nexus
+    - prepare-dns
+    - prepare-firewall
+  vars_files:
+    - vars.yml
+    - ../../../../roles/nginx/defaults/main.yml
+    - ../../../../roles/vncserver/defaults/main.yml
+    - ../../../../roles/nexus/defaults/main.yml
+    - ../../../../roles/dns/defaults/main.yml
+
+- name: Prepare kubernetes
+  hosts: kubernetes
+  roles:
+    - prepare-chrony
+    - prepare-firewall
+  vars_files:
+    - vars.yml
diff --git a/ansible/test/play-infrastructure/molecule/default/tests/test_nodes.py b/ansible/test/play-infrastructure/molecule/default/tests/test_nodes.py
new file mode 100644 (file)
index 0000000..c0ce64f
--- /dev/null
@@ -0,0 +1,11 @@
+import os
+
+import testinfra.utils.ansible_runner
+
+testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
+    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('kubernetes')
+
+
+def test_registry_access(host):
+    assert host.run(
+      'docker login -u admin -p admin123 nexus3.onap.org:10001').rc == 0
diff --git a/ansible/test/play-infrastructure/molecule/default/vars.yml b/ansible/test/play-infrastructure/molecule/default/vars.yml
new file mode 100644 (file)
index 0000000..e91eadb
--- /dev/null
@@ -0,0 +1,24 @@
+---
+vnc_passwd: molecule
+certificates:
+  organization_name: Molecule Testers
+  state_or_province_name: Finland
+  country_name: FI
+  locality_name: Tampere
+app_name: onap
+app_data_path: "/opt/{{ app_name }}"
+
+nexus_come_up_wait_retries: 60
+populate_nexus: true  # Different from default, molecule tests also nexus's configure.yml
+
+molecule_test_registry: nexus3.onap.org:10001
+# Different from default i.e. also additional images population is tested with molecule
+runtime_images:
+  busybox:
+    registry: "{{ molecule_test_registry }}"
+    path: "/onap/components/busybox"
+    tag: "latest"
+  aaionap-haproxy:
+    registry: "{{ molecule_test_registry }}"
+    path: "/onap/components/aaionap/haproxy"
+    tag: "1.2.4"
index 11dcbe7..909d58c 100644 (file)
@@ -1,31 +1,4 @@
 ---
-- name: Fetch docker host ip
-  block:
-    - name: Get docker host ip to access host where container running (as dood)
-      shell: |
-        set -o pipefail
-        ip route | awk '/default/ { print $3 }'
-      args:
-        executable: /bin/bash
-      register: ip
-      changed_when: false
-
-    - name: "set docker host ip {{ ip.stdout }} for cluster_ip"
-      set_fact:
-        cluster_ip: "{{ ip.stdout }}"
-  when: inventory_hostname != 'localhost'
-
-- name: Set fact for localhost OS
-  block:
-    - name: set localhost fact
-      set_fact:
-        localhost_ansible_os_family: "{{ hostvars['localhost'].ansible_os_family }}"
-
-    - name: debug
-      debug:
-        var: localhost_ansible_os_family
-  when: hostvars['localhost'].ansible_os_family is defined
-
-- name: debug
-  debug:
-    var: ansible_os_family
\ No newline at end of file
+- name: "Set cluster_ip fact"
+  set_fact:
+    cluster_ip: "{{ ansible_default_ipv4.address }}"
diff --git a/ansible/test/roles/prepare-dns/tasks/main.yml b/ansible/test/roles/prepare-dns/tasks/main.yml
new file mode 100644 (file)
index 0000000..7907f86
--- /dev/null
@@ -0,0 +1,22 @@
+---
+- name: "Create needed dirs for dns role"
+  file:
+    path: "{{ item }}"
+    state: directory
+    mode: "u+rw,g+wx,o+rwx"
+    recurse: true
+  loop:
+    - "{{ app_data_path }}/cfg"
+    - "{{ infra_images_path }}"
+
+- name: Download and archive dnsmasq docker image for the dns role to use
+  delegate_to: localhost
+  docker_image:
+    name: andyshinn/dnsmasq
+    tag: 2.76
+    archive_path: /tmp/dnsmasq.tar
+
+- name: Copy dnsmasq image to node
+  copy:
+    src: /tmp/dnsmasq.tar
+    dest: "{{ infra_images_path }}/{{ dns_server_image_tar }}"
diff --git a/ansible/test/roles/prepare-nexus/tasks/main.yml b/ansible/test/roles/prepare-nexus/tasks/main.yml
new file mode 100644 (file)
index 0000000..4ef40f5
--- /dev/null
@@ -0,0 +1,70 @@
+---
+- name: Add nexus simulation hosts to /etc/hosts
+  lineinfile:
+    regexp: "^{{ ansible_default_ipv4.address | regex_escape() }} {{ etc_hosts | join(' ') | regex_escape() }}$"
+    line: "{{ ansible_default_ipv4.address }} {{ etc_hosts | join(' ') }}"
+    insertafter: EOF
+    path: /etc/hosts
+    unsafe_writes: true
+
+- name: "Create needed dirs for nexus role"
+  file:
+    path: "{{ item }}"
+    state: directory
+    mode: "u+rw,g+wx,o+rwx"
+    recurse: true
+  loop:
+    - "{{ app_data_path }}/nexus_data"
+    - "{{ infra_images_path }}"
+    - "{{ aux_data_path }}"
+
+- name: Download and archive nexus docker image for the nexus role to use
+  delegate_to: localhost
+  docker_image:
+    name: "{{ nexus3_image }}"
+    archive_path: /tmp/nexus.tar
+
+- name: Download and tag additional (busybox) docker image for the nexus role to populate into
+  delegate_to: localhost
+  docker_image:
+    name: busybox
+    tag: latest
+    repository: nexus3.onap.org:10001/onap/components/busybox
+
+- name: Save busybox image
+  delegate_to: localhost
+  docker_image:
+    name: nexus3.onap.org:10001/onap/components/busybox
+    tag: latest
+    pull: false
+    archive_path: /tmp/busybox.tar
+
+- name: Download and tag additional (aaionap/haproxy) docker image for the nexus role to populate into nexus
+  delegate_to: localhost
+  docker_image:
+    name: aaionap/haproxy
+    tag: 1.2.4
+    repository: nexus3.onap.org:10001/onap/components/aaionap/haproxy
+
+- name: Save haproxy image
+  delegate_to: localhost
+  docker_image:
+    name: nexus3.onap.org:10001/onap/components/aaionap/haproxy
+    tag: 1.2.4
+    pull: false
+    archive_path: /tmp/haproxy.tar
+
+- name: Copy nexus image to node
+  copy:
+    src: /tmp/nexus.tar
+    dest: "{{ infra_images_path }}/{{ nexus3_image_tar }}"
+
+- name: Copy busybox image to node
+  copy:
+    src: /tmp/busybox.tar
+    dest: "{{ aux_data_path }}/busybox.tar"
+
+- name: Copy haproxy image to node
+  copy:
+    src: /tmp/haproxy.tar
+    dest: "{{ aux_data_path }}/aaionap-haproxy.tar"
diff --git a/ansible/test/roles/prepare-nexus/vars/main.yml b/ansible/test/roles/prepare-nexus/vars/main.yml
new file mode 100644 (file)
index 0000000..d2ee354
--- /dev/null
@@ -0,0 +1,5 @@
+---
+# Hosts to be added to /etc/hosts file.
+etc_hosts:
+  - nexus.infrastructure-server
+  - nexus3.onap.org
diff --git a/ansible/test/roles/prepare-nginx/tasks/main.yml b/ansible/test/roles/prepare-nginx/tasks/main.yml
new file mode 100644 (file)
index 0000000..3cd9399
--- /dev/null
@@ -0,0 +1,28 @@
+---
+- name: "Create needed dirs for nginx role"
+  file:
+    path: "{{ item }}"
+    state: directory
+    mode: "u+rw,g+wx,o+rwx"
+    recurse: true
+  loop:
+    - "{{ infra_images_path }}"
+
+- name: Build nginx docker image
+  delegate_to: localhost
+  docker_image:
+    path: ../../../../../build/creating_data/create_nginx_image/
+    name: own_nginx
+    tag: 2.0.0
+
+- name: Archive nginx docker image for the nginx role to use
+  delegate_to: localhost
+  docker_image:
+    name: own_nginx
+    tag: 2.0.0
+    archive_path: /tmp/nginx.tar
+
+- name: Copy nginx image to node
+  copy:
+    src: /tmp/nginx.tar
+    dest: "{{ infra_images_path }}/{{ nginx_server_image_tar }}"
diff --git a/ansible/test/roles/prepare-package-repository/tasks/main.yml b/ansible/test/roles/prepare-package-repository/tasks/main.yml
new file mode 100644 (file)
index 0000000..66f81d6
--- /dev/null
@@ -0,0 +1,26 @@
+---
+- name: Add Docker-CE repo
+  yum_repository:
+    name: docker-ce
+    description: Docker-ce YUM repo
+    baseurl: https://download.docker.com/linux/centos/7/x86_64/stable/
+    gpgcheck: true
+    gpgkey: https://download.docker.com/linux/centos/gpg
+
+- name: Install createrepo
+  yum:
+    name: createrepo
+    state: present
+
+- name: "Ensure {{ rhel_pkg_dir }} exists"
+  file:
+    path: "{{ rhel_pkg_dir }}"
+    state: directory
+
+- name: Download rpm packages
+  command: "yumdownloader --destdir={{ rhel_pkg_dir }} --resolve {{ packages | join(' ') }}"
+
+- name: Index repository
+  command: "createrepo {{ rhel_pkg_dir }}"
+  args:
+    creates: "{{ rhel_pkg_dir }}/repodata"
diff --git a/ansible/test/roles/prepare-package-repository/vars/main.yml b/ansible/test/roles/prepare-package-repository/vars/main.yml
new file mode 100644 (file)
index 0000000..8094428
--- /dev/null
@@ -0,0 +1,12 @@
+---
+rhel_pkg_dir: "{{ app_data_path }}/pkg/rhel"
+packages:
+- "docker-ce-18.09.5"
+- container-selinux
+- docker-ce-cli
+- containerd.io
+- python-jsonpointer
+- python-docker-py
+- python-docker-pycreds
+- python-ipaddress
+- python-websocket-client
diff --git a/ansible/test/roles/prepare-vncserver/tasks/main.yml b/ansible/test/roles/prepare-vncserver/tasks/main.yml
new file mode 100644 (file)
index 0000000..cb7a5f8
--- /dev/null
@@ -0,0 +1,21 @@
+---
+- name: "Create needed dirs for vncserver role"
+  file:
+    path: "{{ item }}"
+    state: directory
+    mode: "u+rw,g+wx,o+rwx"
+    recurse: true
+  loop:
+    - "{{ infra_images_path }}"
+
+- name: Download and archive vncserver docker image for the vncserver role to use
+  delegate_to: localhost
+  docker_image:
+    name: "{{ vnc_server_image }}"
+    state: present
+    archive_path: /tmp/vncserver.tar
+
+- name: Copy vnc server image to node
+  copy:
+    src: /tmp/vncserver.tar
+    dest: "{{ infra_images_path }}/{{ vnc_server_image_tar }}"
index 4b1697e..09ed896 100755 (executable)
 ### This script prepares Nexus repositories data blobs for ONAP
 
 ## The script requires following dependencies are installed: nodejs, jq, docker
-## All required resources are expected in the upper directory
-## created during download procedure as DATA_DIR
-## All lists used must be in project data_lists directory
+## All required resources are expected in the upper directory created during
+## download procedure as DATA_DIR or in the directory given as --input-directory
+## All lists used must be in project data_lists directory or in the directory given
+## as --resource-list-directory
 
 # Fail fast settings
 set -e
@@ -34,18 +35,6 @@ SCRIPT_LOG="/tmp/$(basename $0)_$(eval ${TIMESTAMP}).log"
 # Log everything
 exec &> >(tee -a "${SCRIPT_LOG}")
 
-usage () {
-    echo "  This script is preparing Nexus data blob from docker images and npm and pypi packages"
-    echo "      Usage:"
-    echo "        ./$(basename $0) <project version> [<target>]"
-    echo "      "
-    echo "      Example: ./$(basename $0) onap_3.0.1 /root/nexus_data"
-    echo "      "
-    echo "      Dependencies: nodejs, jq, docker"
-    echo "      "
-    exit 1
-}
-
 # Nexus repository location
 NEXUS_DOMAIN="nexus"
 NEXUS_PORT="8081"
@@ -60,24 +49,53 @@ NEXUS_USERNAME=admin
 NEXUS_PASSWORD=admin123
 NEXUS_EMAIL=admin@example.org
 
-if [ "${1}" == "-h" ] || [ "${1}" == "--help"  ] || [ $# -eq 0 ]; then
-    usage
-else
-    TAG="${1}"
-fi
-
 # Setting paths
 LOCAL_PATH="$(readlink -f $(dirname ${0}))"
+
+#Defaults
 DATA_DIR="$(realpath ${LOCAL_PATH}/../../resources)"
+NEXUS_DATA_DIR="${DATA_DIR}/nexus_data"
+LISTS_DIR="${LOCAL_PATH}/data_lists"
 
-if [ -z "${2}" ]; then
-    NEXUS_DATA_DIR="${DATA_DIR}/nexus_data"
-else
-    NEXUS_DATA_DIR="${2}"
-fi
+usage () {
+    echo "   Example usage: build_nexus_blob.sh -t <tag> --input-directory </path/to/downloaded/files/dir>  --output-directory
+           </path/to/output/dir> --resource-list-directory </path/to/dir/with/resource/list>
+
+     -t | --tag release tag, taken from available on git or placed by data generating script (mandatory) must fallow scheme onap_<semver>
+     -i | --input-directory directory containing file needed to create nexus blob. The structure of this directory must organized as described in build guide
+     -o | --output-directory
+    -rl | --resource-list-directory directory with files containing docker, pypi and rpm lists
+    "
+    exit 1
+}
+
+while [ "$1" != "" ]; do
+    case $1 in
+        -t | --tag )                       shift
+                                           TAG=$1
+                                           ;;
+        -i | --input-directory )           shift
+                                           DATA_DIR=$1
+                                           ;;
+        -o | --output-directory )          shift
+                                           NEXUS_DATA_DIR=$1
+                                           ;;
+        -rl | --resource-list-directory )  shift
+                                           LISTS_DIR=$1
+                                           ;;
+        -h | --help )                      usage
+                                           ;;
+        *)                                 usage
+    esac
+    shift
+done
 
-# Setup directory with resources lists
-LISTS_DIR="${LOCAL_PATH}/data_lists"
+
+# exit if no tag given
+if [ -z ${TAG} ]; then
+    usage
+    exit 1
+fi
 
 # Setup directories with resources for docker, npm and pypi
 NXS_SRC_DOCKER_IMG_DIR="${DATA_DIR}/offline_data/docker_images_for_nexus"
@@ -284,7 +302,7 @@ for IMAGE in $(sed $'s/\r// ; /^#/d' ${NXS_DOCKER_IMG_LIST} | awk '{ print $1 }'
     if [[ ${IMAGE} != *"/"* ]]; then
         PUSH="${DOCKER_REGISTRY}/library/${IMAGE}"
     elif [[ ${IMAGE} == *"${DEFAULT_REGISTRY}"* ]]; then
-       if [[ ${IMAGE} == *"/"*"/"* ]]; then
+        if [[ ${IMAGE} == *"/"*"/"* ]]; then
             PUSH="$(sed 's/'"${DEFAULT_REGISTRY}"'/'"${DOCKER_REGISTRY}"'/' <<< ${IMAGE})"
         else
             PUSH="$(sed 's/'"${DEFAULT_REGISTRY}"'/'"${DOCKER_REGISTRY}"'\/library/' <<< ${IMAGE})"
@@ -311,10 +329,10 @@ echo "Stopping Nexus and returning backups"
 docker stop ${NEXUS_CONT_ID} > /dev/null
 
 # Return backed up configuration files
-mv -f "${HOSTS_BACKUP}" /etc/hosts
+mv -f "/etc/${HOSTS_BACKUP}" /etc/hosts
 
 if [ -f "~/.docker/${DOCKER_CONF_BACKUP}" ]; then
-    mv -f "${DOCKER_CONF_BACKUP}" ~/.docker/config.json
+    mv -f "~/.docker/${DOCKER_CONF_BACKUP}" ~/.docker/config.json
 fi
 
 # Return default settings
@@ -322,3 +340,4 @@ npm config set registry "https://registry.npmjs.org"
 
 echo "Nexus blob is built"
 exit 0
+
index fd4a436..7ab4b0c 100755 (executable)
@@ -41,7 +41,7 @@ cnt=1
 mkdir -p "$outdir"
 
 cd "$outdir"
-for line in $(clean_list "$LIST_FILE)"; do
+for line in $(clean_list "$LIST_FILE"); do
     echo "Downloading $cnt / $lines: $line"
     pip download $line
     cnt=$((cnt+1))
diff --git a/build/data_lists/onap_3.0.0-docker_images.list b/build/data_lists/onap_3.0.0-docker_images.list
deleted file mode 100644 (file)
index 589c6a5..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-aaionap/haproxy:1.2.4
-library/alpine:3.6
-library/busybox:latest
-library/cassandra:2.1
-library/consul:1.0.6
-crunchydata/crunchy-pgpool:centos7-10.4-2.0.0
-crunchydata/crunchy-postgres:centos7-10.3-1.8.2
-crunchydata/crunchy-postgres:centos7-10.4-2.0.0
-docker.elastic.co/beats/filebeat:5.5.0
-docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
-docker.elastic.co/elasticsearch/elasticsearch:5.5.0
-docker.elastic.co/elasticsearch/elasticsearch:6.1.2
-docker.elastic.co/elasticsearch/elasticsearch:6.3.1
-docker.elastic.co/kibana/kibana:5.5.0
-docker.elastic.co/kibana/kibana:6.3.1
-docker.elastic.co/logstash/logstash:5.4.3
-gcr.io/google-samples/xtrabackup:1.0
-gcr.io/google_samples/k8szk:v3
-gcr.io/kubernetes-helm/tiller:v2.9.1
-library/mariadb:10
-nexus3.onap.org:10001/adfinissygroup/k8s-mariadb-galera-centos:v002
-nexus3.onap.org:10001/busybox:latest
-nexus3.onap.org:10001/library/consul:1.0.6
-nexus3.onap.org:10001/library/tomcat:8.5
-nexus3.onap.org:10001/library/vault:0.10.0
-nexus3.onap.org:10001/mariadb:10.1.11
-nexus3.onap.org:10001/mariadb:10.2.14
-nexus3.onap.org:10001/onap/aaf/aaf_cass:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_cm:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_config:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_fs:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_gui:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_hello:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_locate:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_oauth:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_service:2.1.8
-nexus3.onap.org:10001/onap/aaf/distcenter:3.0.0
-nexus3.onap.org:10001/onap/aaf/sms:3.0.1
-nexus3.onap.org:10001/onap/aaf/smsquorumclient:3.0.1
-nexus3.onap.org:10001/onap/aaf/testcaservice:3.0.0
-nexus3.onap.org:10001/onap/aai-graphadmin:1.0.1
-nexus3.onap.org:10001/onap/aai-resources:1.3.4
-nexus3.onap.org:10001/onap/aai-traversal:1.3.3
-nexus3.onap.org:10001/onap/aai/esr-gui:1.2.1
-nexus3.onap.org:10001/onap/aai/esr-server:1.2.1
-nexus3.onap.org:10001/onap/admportal-sdnc-image:1.4.3
-nexus3.onap.org:10001/onap/appc-cdt-image:1.4.3
-nexus3.onap.org:10001/onap/appc-image:1.4.3
-nexus3.onap.org:10001/onap/babel:1.3.2
-nexus3.onap.org:10001/onap/ccsdk-ansible-server-image:0.3.2
-nexus3.onap.org:10001/onap/ccsdk-apps-ms-neng:0.3.2
-nexus3.onap.org:10001/onap/ccsdk-controllerblueprints:0.3.2
-nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:0.3.2
-nexus3.onap.org:10001/onap/champ:1.3.0
-nexus3.onap.org:10001/onap/clamp-dashboard-kibana:3.0.3
-nexus3.onap.org:10001/onap/clamp-dashboard-logstash:3.0.3
-nexus3.onap.org:10001/onap/clamp:3.0.3
-nexus3.onap.org:10001/onap/cli:2.0.4
-nexus3.onap.org:10001/onap/data-router:1.3.1
-nexus3.onap.org:10001/onap/dcae-be:1.3.0
-nexus3.onap.org:10001/onap/dcae-dt:1.2.0
-nexus3.onap.org:10001/onap/dcae-fe:1.3.0
-nexus3.onap.org:10001/onap/dcae-tools:1.3.0
-nexus3.onap.org:10001/onap/dcae-tosca-app:1.3.0
-nexus3.onap.org:10001/onap/dmaap/buscontroller:1.0.23
-nexus3.onap.org:10001/onap/dmaap/datarouter-node:1.0.3
-nexus3.onap.org:10001/onap/dmaap/datarouter-prov:1.0.3
-nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.8
-nexus3.onap.org:10001/onap/dmaap/kafka01101:0.0.1
-nexus3.onap.org:10001/onap/externalapi/nbi:3.0.1
-nexus3.onap.org:10001/onap/gizmo:1.3.0
-nexus3.onap.org:10001/onap/holmes/engine-management:1.2.2
-nexus3.onap.org:10001/onap/holmes/rule-management:1.2.3
-nexus3.onap.org:10001/onap/model-loader:1.3.1
-nexus3.onap.org:10001/onap/msb/msb_apigateway:1.2.1
-nexus3.onap.org:10001/onap/msb/msb_discovery:1.2.1
-nexus3.onap.org:10001/onap/multicloud/azure:1.2.1
-nexus3.onap.org:10001/onap/multicloud/framework:1.2.1
-nexus3.onap.org:10001/onap/multicloud/openstack-ocata:1.2.1
-nexus3.onap.org:10001/onap/multicloud/openstack-pike:1.2.1
-nexus3.onap.org:10001/onap/multicloud/openstack-windriver:1.2.1
-nexus3.onap.org:10001/onap/multicloud/vio:1.2.1
-nexus3.onap.org:10001/onap/music/cassandra_3_11:3.0.24
-nexus3.onap.org:10001/onap/music/cassandra_job:3.0.24
-nexus3.onap.org:10001/onap/music/cassandra_music:3.0.0
-nexus3.onap.org:10001/onap/music/music:3.0.24
-nexus3.onap.org:10001/onap/network-discovery:1.4.2
-nexus3.onap.org:10001/onap/oom/kube2msb:1.1.0
-nexus3.onap.org:10001/onap/optf-cmso-dbinit:1.0.1
-nexus3.onap.org:10001/onap/optf-cmso-service:1.0.1
-nexus3.onap.org:10001/onap/optf-has:1.2.4
-nexus3.onap.org:10001/onap/optf-osdf:1.2.4
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.4
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.0.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.snmptrap:1.4.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.1
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.cm-container:1.4.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container:1.1.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.4.5
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.redis-cluster-container:1.0.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tls-init-container:1.0.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:2.2.3
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler:3.0.3
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.inventory-api:3.0.4
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.policy-handler:4.4.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.servicechange-handler:1.1.5
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server:1.1.1
-nexus3.onap.org:10001/onap/policy-apex-pdp:2.0.3
-nexus3.onap.org:10001/onap/policy-distribution:2.0.3
-nexus3.onap.org:10001/onap/policy-drools:1.3.4
-nexus3.onap.org:10001/onap/policy-pe:1.3.4
-nexus3.onap.org:10001/onap/pomba-aai-context-builder:1.3.2
-nexus3.onap.org:10001/onap/pomba-context-aggregator:1.3.4
-nexus3.onap.org:10001/onap/pomba-network-discovery-context-builder:1.3.1
-nexus3.onap.org:10001/onap/pomba-sdc-context-builder:1.3.2
-nexus3.onap.org:10001/onap/portal-app:2.3.1
-nexus3.onap.org:10001/onap/portal-db:2.3.1
-nexus3.onap.org:10001/onap/portal-sdk:2.3.1
-nexus3.onap.org:10001/onap/portal-wms:2.3.1
-nexus3.onap.org:10001/onap/sdc-backend-init:1.3.5
-nexus3.onap.org:10001/onap/sdc-backend:1.3.5
-nexus3.onap.org:10001/onap/sdc-cassandra-init:1.3.5
-nexus3.onap.org:10001/onap/sdc-cassandra:1.3.5
-nexus3.onap.org:10001/onap/sdc-elasticsearch:1.3.5
-nexus3.onap.org:10001/onap/sdc-frontend:1.3.5
-nexus3.onap.org:10001/onap/sdc-init-elasticsearch:1.3.5
-nexus3.onap.org:10001/onap/sdc-kibana:1.3.5
-nexus3.onap.org:10001/onap/sdc-onboard-backend:1.3.5
-nexus3.onap.org:10001/onap/sdc-onboard-cassandra-init:1.3.5
-nexus3.onap.org:10001/onap/sdnc-ansible-server-image:1.4.3
-nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image:1.4.3
-nexus3.onap.org:10001/onap/sdnc-image:1.4.3
-nexus3.onap.org:10001/onap/sdnc-ueb-listener-image:1.4.3
-nexus3.onap.org:10001/onap/search-data-service:1.3.1
-nexus3.onap.org:10001/onap/service-decomposition:1.4.2
-nexus3.onap.org:10001/onap/sniroemulator:1.0.0
-nexus3.onap.org:10001/onap/so/api-handler-infra:1.3.3
-nexus3.onap.org:10001/onap/so/bpmn-infra:1.3.3
-nexus3.onap.org:10001/onap/so/catalog-db-adapter:1.3.3
-nexus3.onap.org:10001/onap/so/openstack-adapter:1.3.3
-nexus3.onap.org:10001/onap/so/request-db-adapter:1.3.3
-nexus3.onap.org:10001/onap/so/sdc-controller:1.3.3
-nexus3.onap.org:10001/onap/so/sdnc-adapter:1.3.3
-nexus3.onap.org:10001/onap/so/so-monitoring:1.3.3
-nexus3.onap.org:10001/onap/so/vfc-adapter:1.3.3
-nexus3.onap.org:10001/onap/sparky-be:1.3.0
-nexus3.onap.org:10001/onap/spike:1.3.1
-nexus3.onap.org:10001/onap/testsuite:1.3.2
-nexus3.onap.org:10001/onap/usecase-ui-server:1.2.1
-nexus3.onap.org:10001/onap/usecase-ui:1.2.2
-nexus3.onap.org:10001/onap/validation:1.3.1
-nexus3.onap.org:10001/onap/vfc/catalog:1.2.1
-nexus3.onap.org:10001/onap/vfc/db:1.2.1
-nexus3.onap.org:10001/onap/vfc/emsdriver:1.2.1
-nexus3.onap.org:10001/onap/vfc/gvnfmdriver:1.2.1
-nexus3.onap.org:10001/onap/vfc/jujudriver:1.2.1
-nexus3.onap.org:10001/onap/vfc/multivimproxy:1.2.1
-nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei:1.2.1
-nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokia:1.1.0
-nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokiav2:1.3.0
-nexus3.onap.org:10001/onap/vfc/nslcm:1.2.1
-nexus3.onap.org:10001/onap/vfc/resmanagement:1.2.1
-nexus3.onap.org:10001/onap/vfc/vnflcm:1.2.1
-nexus3.onap.org:10001/onap/vfc/vnfmgr:1.2.1
-nexus3.onap.org:10001/onap/vfc/vnfres:1.2.1
-nexus3.onap.org:10001/onap/vfc/wfengine-activiti:1.2.0
-nexus3.onap.org:10001/onap/vfc/wfengine-mgrservice:1.2.0
-nexus3.onap.org:10001/onap/vfc/ztesdncdriver:1.2.0
-nexus3.onap.org:10001/onap/vfc/ztevnfmdriver:1.2.1
-nexus3.onap.org:10001/onap/vid:3.2.2
-nexus3.onap.org:10001/onap/vnfsdk/refrepo:1.2.0
-nexus3.onap.org:10001/onap/workflow-backend:1.3.2
-nexus3.onap.org:10001/onap/workflow-frontend:1.3.2
-nexus3.onap.org:10001/onap/workflow-init:1.3.2
-nexus3.onap.org:10001/sonatype/nexus:2.14.8-01
-nexus3.onap.org:10001/zookeeper:3.4
-library/nginx:1.13-alpine
-ninech/netbox:v2.3.5
-oomk8s/consul:1.0.0
-oomk8s/mariadb-client-init:3.0.0
-oomk8s/readiness-check:2.0.0
-oomk8s/readiness-check:2.0.1
-oomk8s/ubuntu-init:1.0.0
-library/postgres:10.2-alpine
-library/postgres:9.5.2
-rancher/agent:v1.2.11
-rancher/dns:v0.17.4
-rancher/etc-host-updater:v0.0.3
-rancher/etcd:v2.3.7-17
-rancher/healthcheck:v0.3.8
-rancher/heapster-amd64:v1.5.2
-rancher/heapster-grafana-amd64:v4.4.3
-rancher/heapster-influxdb-amd64:v1.3.3
-rancher/k8s-dns-dnsmasq-nanny-amd64:1.14.10
-rancher/k8s-dns-kube-dns-amd64:1.14.10
-rancher/k8s-dns-sidecar-amd64:1.14.10
-rancher/k8s:v1.11.5-rancher1-1
-rancher/kubectld:v0.8.8
-rancher/kubernetes-agent:v0.6.9
-rancher/kubernetes-auth:v0.0.8
-rancher/kubernetes-dashboard-amd64:v1.8.3
-rancher/lb-service-haproxy:v0.9.6
-rancher/lb-service-rancher:v0.9.6
-rancher/metadata:v0.10.4
-rancher/net:holder
-rancher/net:v0.13.17
-rancher/network-manager:v0.7.22
-rancher/pause-amd64:3.0
-rancher/server:v1.6.22
-rancher/tiller:v2.9.1
-registry.hub.docker.com/library/busybox:latest
-registry.hub.docker.com/library/consul:0.9.3
-registry.hub.docker.com/library/mongo:3
-registry.hub.docker.com/library/mysql:5.7
-registry.hub.docker.com/oomk8s/ubuntu-init:2.0.0
-taskrabbit/elasticsearch-dump:latest
-wurstmeister/zookeeper:latest
diff --git a/build/data_lists/onap_3.0.1-docker_images.list b/build/data_lists/onap_3.0.1-docker_images.list
deleted file mode 100644 (file)
index ec98a3e..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-aaionap/haproxy:1.2.4
-library/alpine:3.6
-library/busybox:latest
-library/cassandra:2.1
-cdposs/zookeeper:3.4.9
-library/consul:1.0.6
-crunchydata/crunchy-pgpool:centos7-10.4-2.0.0
-crunchydata/crunchy-postgres:centos7-10.3-1.8.2
-crunchydata/crunchy-postgres:centos7-10.4-2.0.0
-docker.elastic.co/beats/filebeat:5.5.0
-docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
-docker.elastic.co/elasticsearch/elasticsearch:5.5.0
-docker.elastic.co/elasticsearch/elasticsearch:6.1.2
-docker.elastic.co/elasticsearch/elasticsearch:6.3.1
-docker.elastic.co/kibana/kibana:5.5.0
-docker.elastic.co/kibana/kibana:6.3.1
-docker.elastic.co/logstash/logstash:5.4.3
-gcr.io/google-samples/xtrabackup:1.0
-gcr.io/google_samples/k8szk:v3
-gcr.io/kubernetes-helm/tiller:v2.9.1
-library/mariadb:10
-nexus3.onap.org:10001/adfinissygroup/k8s-mariadb-galera-centos:v002
-nexus3.onap.org:10001/busybox:latest
-nexus3.onap.org:10001/library/consul:1.0.6
-nexus3.onap.org:10001/library/tomcat:8.5
-nexus3.onap.org:10001/library/vault:0.10.0
-nexus3.onap.org:10001/mariadb:10.1.11
-nexus3.onap.org:10001/mariadb:10.2.14
-nexus3.onap.org:10001/onap/aaf/aaf_cass:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_cm:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_config:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_fs:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_gui:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_hello:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_locate:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_oauth:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_service:2.1.8
-nexus3.onap.org:10001/onap/aaf/distcenter:3.0.0
-nexus3.onap.org:10001/onap/aaf/sms:3.0.1
-nexus3.onap.org:10001/onap/aaf/smsquorumclient:3.0.1
-nexus3.onap.org:10001/onap/aaf/testcaservice:3.0.0
-nexus3.onap.org:10001/onap/aai-graphadmin:1.0.4
-nexus3.onap.org:10001/onap/aai-resources:1.3.5
-nexus3.onap.org:10001/onap/aai-traversal:1.3.4
-nexus3.onap.org:10001/onap/aai/esr-gui:1.2.1
-nexus3.onap.org:10001/onap/aai/esr-server:1.2.1
-nexus3.onap.org:10001/onap/admportal-sdnc-image:1.4.4
-nexus3.onap.org:10001/onap/appc-cdt-image:1.4.4
-nexus3.onap.org:10001/onap/appc-image:1.4.4
-nexus3.onap.org:10001/onap/babel:1.3.3
-nexus3.onap.org:10001/onap/ccsdk-ansible-server-image:0.3.3
-nexus3.onap.org:10001/onap/ccsdk-apps-ms-neng:0.3.3
-nexus3.onap.org:10001/onap/ccsdk-controllerblueprints:0.3.3
-nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:0.3.3
-nexus3.onap.org:10001/onap/champ:1.3.1
-nexus3.onap.org:10001/onap/clamp-dashboard-kibana:3.0.3
-nexus3.onap.org:10001/onap/clamp-dashboard-logstash:3.0.3
-nexus3.onap.org:10001/onap/clamp:3.0.3
-nexus3.onap.org:10001/onap/cli:2.0.4
-nexus3.onap.org:10001/onap/data-router:1.3.1
-nexus3.onap.org:10001/onap/data-router:1.3.2
-nexus3.onap.org:10001/onap/data-router:1.3.3
-nexus3.onap.org:10001/onap/dcae-be:1.3.0
-nexus3.onap.org:10001/onap/dcae-dt:1.2.0
-nexus3.onap.org:10001/onap/dcae-fe:1.3.0
-nexus3.onap.org:10001/onap/dcae-tools:1.3.0
-nexus3.onap.org:10001/onap/dcae-tosca-app:1.3.0
-nexus3.onap.org:10001/onap/dmaap/buscontroller:1.0.23
-nexus3.onap.org:10001/onap/dmaap/datarouter-node:1.0.3
-nexus3.onap.org:10001/onap/dmaap/datarouter-prov:1.0.3
-nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.8
-nexus3.onap.org:10001/onap/dmaap/kafka01101:0.0.1
-nexus3.onap.org:10001/onap/externalapi/nbi:3.0.2
-nexus3.onap.org:10001/onap/gizmo:1.3.2
-nexus3.onap.org:10001/onap/holmes/engine-management:1.2.2
-nexus3.onap.org:10001/onap/holmes/rule-management:1.2.3
-nexus3.onap.org:10001/onap/model-loader:1.3.2
-nexus3.onap.org:10001/onap/msb/msb_apigateway:1.2.1
-nexus3.onap.org:10001/onap/msb/msb_discovery:1.2.1
-nexus3.onap.org:10001/onap/multicloud/azure:1.2.1
-nexus3.onap.org:10001/onap/multicloud/framework:1.2.1
-nexus3.onap.org:10001/onap/multicloud/openstack-ocata:1.2.3
-nexus3.onap.org:10001/onap/multicloud/openstack-pike:1.2.3
-nexus3.onap.org:10001/onap/multicloud/openstack-windriver:1.2.3
-nexus3.onap.org:10001/onap/multicloud/vio:1.2.1
-nexus3.onap.org:10001/onap/music/cassandra_3_11:3.0.24
-nexus3.onap.org:10001/onap/music/cassandra_job:3.0.24
-nexus3.onap.org:10001/onap/music/cassandra_music:3.0.0
-nexus3.onap.org:10001/onap/music/music:3.0.24
-nexus3.onap.org:10001/onap/network-discovery:1.4.2
-nexus3.onap.org:10001/onap/oom/kube2msb:1.1.0
-nexus3.onap.org:10001/onap/optf-cmso-dbinit:1.0.1
-nexus3.onap.org:10001/onap/optf-cmso-service:1.0.1
-nexus3.onap.org:10001/onap/optf-has:1.2.5
-nexus3.onap.org:10001/onap/optf-osdf:1.2.4
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.5
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.0.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.snmptrap:1.4.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.cm-container:1.4.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container:1.1.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.4.5
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.redis-cluster-container:1.0.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tls-init-container:1.0.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:2.2.3
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler:3.0.3
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.inventory-api:3.0.4
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.policy-handler:4.4.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.servicechange-handler:1.1.5
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server:1.1.1
-nexus3.onap.org:10001/onap/policy-apex-pdp:2.0.4
-nexus3.onap.org:10001/onap/policy-distribution:2.0.4
-nexus3.onap.org:10001/onap/policy-drools:1.3.5
-nexus3.onap.org:10001/onap/policy-pe:1.3.5
-nexus3.onap.org:10001/onap/pomba-aai-context-builder:1.3.2
-nexus3.onap.org:10001/onap/pomba-context-aggregator:1.3.4
-nexus3.onap.org:10001/onap/pomba-network-discovery-context-builder:1.3.1
-nexus3.onap.org:10001/onap/pomba-sdc-context-builder:1.3.2
-nexus3.onap.org:10001/onap/portal-app:2.3.1
-nexus3.onap.org:10001/onap/portal-db:2.3.1
-nexus3.onap.org:10001/onap/portal-sdk:2.3.1
-nexus3.onap.org:10001/onap/portal-wms:2.3.1
-nexus3.onap.org:10001/onap/sdc-backend-init:1.3.6
-nexus3.onap.org:10001/onap/sdc-backend:1.3.6
-nexus3.onap.org:10001/onap/sdc-cassandra-init:1.3.6
-nexus3.onap.org:10001/onap/sdc-cassandra:1.3.6
-nexus3.onap.org:10001/onap/sdc-elasticsearch:1.3.6
-nexus3.onap.org:10001/onap/sdc-frontend:1.3.6
-nexus3.onap.org:10001/onap/sdc-init-elasticsearch:1.3.6
-nexus3.onap.org:10001/onap/sdc-kibana:1.3.6
-nexus3.onap.org:10001/onap/sdc-onboard-backend:1.3.6
-nexus3.onap.org:10001/onap/sdc-onboard-cassandra-init:1.3.6
-nexus3.onap.org:10001/onap/sdnc-ansible-server-image:1.4.4
-nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image:1.4.4
-nexus3.onap.org:10001/onap/sdnc-image:1.4.4
-nexus3.onap.org:10001/onap/sdnc-ueb-listener-image:1.4.4
-nexus3.onap.org:10001/onap/search-data-service:1.3.2
-nexus3.onap.org:10001/onap/service-decomposition:1.4.2
-nexus3.onap.org:10001/onap/sniroemulator:1.0.0
-nexus3.onap.org:10001/onap/so/api-handler-infra:1.3.6
-nexus3.onap.org:10001/onap/so/bpmn-infra:1.3.6
-nexus3.onap.org:10001/onap/so/catalog-db-adapter:1.3.6
-nexus3.onap.org:10001/onap/so/openstack-adapter:1.3.6
-nexus3.onap.org:10001/onap/so/request-db-adapter:1.3.6
-nexus3.onap.org:10001/onap/so/sdc-controller:1.3.6
-nexus3.onap.org:10001/onap/so/sdnc-adapter:1.3.6
-nexus3.onap.org:10001/onap/so/so-monitoring:1.3.6
-nexus3.onap.org:10001/onap/so/vfc-adapter:1.3.6
-nexus3.onap.org:10001/onap/sparky-be:1.3.2
-nexus3.onap.org:10001/onap/spike:1.3.1
-nexus3.onap.org:10001/onap/testsuite:1.3.3
-nexus3.onap.org:10001/onap/usecase-ui-server:1.2.1
-nexus3.onap.org:10001/onap/usecase-ui:1.2.2
-nexus3.onap.org:10001/onap/validation:1.3.1
-nexus3.onap.org:10001/onap/vfc/catalog:1.2.1
-nexus3.onap.org:10001/onap/vfc/db:1.2.1
-nexus3.onap.org:10001/onap/vfc/emsdriver:1.2.1
-nexus3.onap.org:10001/onap/vfc/gvnfmdriver:1.2.1
-nexus3.onap.org:10001/onap/vfc/jujudriver:1.2.1
-nexus3.onap.org:10001/onap/vfc/multivimproxy:1.2.1
-nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei:1.2.1
-nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokia:1.1.0
-nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokiav2:1.3.0
-nexus3.onap.org:10001/onap/vfc/nslcm:1.2.1
-nexus3.onap.org:10001/onap/vfc/resmanagement:1.2.1
-nexus3.onap.org:10001/onap/vfc/vnflcm:1.2.1
-nexus3.onap.org:10001/onap/vfc/vnfmgr:1.2.1
-nexus3.onap.org:10001/onap/vfc/vnfres:1.2.1
-nexus3.onap.org:10001/onap/vfc/wfengine-activiti:1.2.0
-nexus3.onap.org:10001/onap/vfc/wfengine-mgrservice:1.2.0
-nexus3.onap.org:10001/onap/vfc/ztesdncdriver:1.2.0
-nexus3.onap.org:10001/onap/vfc/ztevnfmdriver:1.2.1
-nexus3.onap.org:10001/onap/vid:3.2.2
-nexus3.onap.org:10001/onap/vnfsdk/refrepo:1.2.0
-nexus3.onap.org:10001/onap/workflow-backend:1.3.2
-nexus3.onap.org:10001/onap/workflow-frontend:1.3.2
-nexus3.onap.org:10001/onap/workflow-init:1.3.2
-nexus3.onap.org:10001/sonatype/nexus:2.14.8-01
-nexus3.onap.org:10001/zookeeper:3.4
-library/nginx:1.13-alpine
-ninech/netbox:v2.3.5
-oomk8s/consul:1.0.0
-oomk8s/mariadb-client-init:3.0.0
-oomk8s/readiness-check:2.0.0
-oomk8s/readiness-check:2.0.1
-oomk8s/ubuntu-init:1.0.0
-library/postgres:10.2-alpine
-library/postgres:9.5.2
-rancher/agent:v1.2.11
-rancher/dns:v0.17.4
-rancher/etc-host-updater:v0.0.3
-rancher/etcd:v2.3.7-17
-rancher/healthcheck:v0.3.8
-rancher/heapster-amd64:v1.5.2
-rancher/heapster-grafana-amd64:v4.4.3
-rancher/heapster-influxdb-amd64:v1.3.3
-rancher/k8s-dns-dnsmasq-nanny-amd64:1.14.10
-rancher/k8s-dns-kube-dns-amd64:1.14.10
-rancher/k8s-dns-sidecar-amd64:1.14.10
-rancher/k8s:v1.11.5-rancher1-1
-rancher/kubectld:v0.8.8
-rancher/kubernetes-agent:v0.6.9
-rancher/kubernetes-auth:v0.0.8
-rancher/kubernetes-dashboard-amd64:v1.8.3
-rancher/lb-service-haproxy:v0.9.6
-rancher/lb-service-rancher:v0.9.6
-rancher/metadata:v0.10.4
-rancher/net:holder
-rancher/net:v0.13.17
-rancher/network-manager:v0.7.22
-rancher/pause-amd64:3.0
-rancher/server:v1.6.22
-rancher/tiller:v2.9.1
-registry.hub.docker.com/library/busybox:latest
-registry.hub.docker.com/library/consul:0.9.3
-registry.hub.docker.com/library/mongo:3
-registry.hub.docker.com/library/mysql:5.7
-registry.hub.docker.com/oomk8s/ubuntu-init:2.0.0
-taskrabbit/elasticsearch-dump:latest
-library/zookeeper:3.4
diff --git a/build/data_lists/onap_3.0.2-docker_images.list b/build/data_lists/onap_3.0.2-docker_images.list
deleted file mode 100644 (file)
index eba4451..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-alpine:3.6
-cassandra:2.1
-crunchydata/crunchy-pgpool:centos7-10.4-2.0.0
-crunchydata/crunchy-postgres:centos7-10.3-1.8.2
-crunchydata/crunchy-postgres:centos7-10.4-2.0.0
-docker.elastic.co/beats/filebeat:5.5.0
-docker.elastic.co/elasticsearch/elasticsearch:5.5.0
-docker.elastic.co/elasticsearch/elasticsearch:6.1.2
-docker.elastic.co/elasticsearch/elasticsearch:6.3.1
-docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
-docker.elastic.co/kibana/kibana:5.5.0
-docker.elastic.co/kibana/kibana:6.3.1
-docker.elastic.co/logstash/logstash:5.4.3
-docker.io/aaionap/haproxy:1.2.4
-docker.io/busybox
-docker.io/cdposs/zookeeper:3.4.9
-docker.io/consul:1.0.6
-docker.io/library/busybox:latest
-docker.io/nginx:1.13-alpine
-docker.io/ninech/netbox:v2.3.5
-docker.io/oomk8s/consul:1.0.0
-docker.io/postgres:10.2-alpine
-docker.io/taskrabbit/elasticsearch-dump
-gcr.io/google_samples/k8szk:v3
-gcr.io/google-samples/xtrabackup:1.0
-library/mariadb:10
-nexus3.onap.org:10001/adfinissygroup/k8s-mariadb-galera-centos:v002
-nexus3.onap.org:10001/busybox
-nexus3.onap.org:10001/library/consul:1.0.6
-nexus3.onap.org:10001/library/tomcat:8.5
-nexus3.onap.org:10001/library/vault:0.10.0
-nexus3.onap.org:10001/mariadb:10.1.11
-nexus3.onap.org:10001/mariadb:10.2.14
-nexus3.onap.org:10001/onap/aaf/aaf_cass:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_cm:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_config:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_fs:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_gui:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_hello:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_locate:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_oauth:2.1.8
-nexus3.onap.org:10001/onap/aaf/aaf_service:2.1.8
-nexus3.onap.org:10001/onap/aaf/distcenter:3.0.0
-nexus3.onap.org:10001/onap/aaf/sms:3.0.1
-nexus3.onap.org:10001/onap/aaf/smsquorumclient:3.0.1
-nexus3.onap.org:10001/onap/aaf/testcaservice:3.0.0
-nexus3.onap.org:10001/onap/aai/esr-gui:1.2.1
-nexus3.onap.org:10001/onap/aai/esr-server:1.2.1
-nexus3.onap.org:10001/onap/aai-graphadmin:1.0.4
-nexus3.onap.org:10001/onap/aai-resources:1.3.5
-nexus3.onap.org:10001/onap/aai-traversal:1.3.4
-nexus3.onap.org:10001/onap/admportal-sdnc-image:1.4.4
-nexus3.onap.org:10001/onap/appc-cdt-image:1.4.4
-nexus3.onap.org:10001/onap/appc-image:1.4.4
-nexus3.onap.org:10001/onap/babel:1.3.3
-nexus3.onap.org:10001/onap/ccsdk-ansible-server-image:0.3.4
-nexus3.onap.org:10001/onap/ccsdk-apps-ms-neng:0.3.3
-nexus3.onap.org:10001/onap/ccsdk-controllerblueprints:0.3.3
-nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:0.3.3
-nexus3.onap.org:10001/onap/champ:1.3.1
-nexus3.onap.org:10001/onap/clamp:3.0.4
-nexus3.onap.org:10001/onap/clamp-dashboard-kibana:3.0.4
-nexus3.onap.org:10001/onap/clamp-dashboard-logstash:3.0.4
-nexus3.onap.org:10001/onap/cli:2.0.4
-nexus3.onap.org:10001/onap/data-router:1.3.3
-nexus3.onap.org:10001/onap/dcae-be:1.3.0
-nexus3.onap.org:10001/onap/dcae-dt:1.2.0
-nexus3.onap.org:10001/onap/dcae-fe:1.3.0
-nexus3.onap.org:10001/onap/dcae-tools:1.3.0
-nexus3.onap.org:10001/onap/dcae-tosca-app:1.3.0
-nexus3.onap.org:10001/onap/dmaap/buscontroller:1.0.23
-nexus3.onap.org:10001/onap/dmaap/datarouter-node:1.0.9
-nexus3.onap.org:10001/onap/dmaap/datarouter-prov:1.0.9
-nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.8
-nexus3.onap.org:10001/onap/dmaap/kafka01101:0.0.1
-nexus3.onap.org:10001/onap/externalapi/nbi:3.0.2
-nexus3.onap.org:10001/onap/gizmo:1.3.2
-nexus3.onap.org:10001/onap/holmes/engine-management:1.2.2
-nexus3.onap.org:10001/onap/holmes/rule-management:1.2.3
-nexus3.onap.org:10001/onap/model-loader:1.3.2
-nexus3.onap.org:10001/onap/msb/msb_apigateway:1.2.1
-nexus3.onap.org:10001/onap/msb/msb_discovery:1.2.1
-nexus3.onap.org:10001/onap/multicloud/azure:1.2.1
-nexus3.onap.org:10001/onap/multicloud/framework:1.2.1
-nexus3.onap.org:10001/onap/multicloud/openstack-ocata:1.2.3
-nexus3.onap.org:10001/onap/multicloud/openstack-pike:1.2.3
-nexus3.onap.org:10001/onap/multicloud/openstack-windriver:1.2.3
-nexus3.onap.org:10001/onap/multicloud/vio:1.2.1
-nexus3.onap.org:10001/onap/music/cassandra_3_11:3.0.24
-nexus3.onap.org:10001/onap/music/cassandra_job:3.0.24
-nexus3.onap.org:10001/onap/music/cassandra_music:3.0.0
-nexus3.onap.org:10001/onap/music/music:3.0.24
-nexus3.onap.org:10001/onap/network-discovery:1.4.2
-nexus3.onap.org:10001/onap/oom/kube2msb:1.1.0
-nexus3.onap.org:10001/onap/optf-cmso-dbinit:1.0.1
-nexus3.onap.org:10001/onap/optf-cmso-service:1.0.1
-nexus3.onap.org:10001/onap/optf-has:1.2.5
-nexus3.onap.org:10001/onap/optf-osdf:1.2.4
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.5
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.0.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.snmptrap:1.4.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.cm-container:1.4.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container:1.1.2
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.4.5
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.redis-cluster-container:1.0.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:2.2.3
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler:3.0.3
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.inventory-api:3.0.4
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.policy-handler:4.4.0
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.servicechange-handler:1.1.5
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server:1.1.1
-nexus3.onap.org:10001/onap/policy-apex-pdp:2.0.5
-nexus3.onap.org:10001/onap/policy-distribution:2.0.6
-nexus3.onap.org:10001/onap/policy-drools:1.3.7
-nexus3.onap.org:10001/onap/policy-pe:1.3.7
-nexus3.onap.org:10001/onap/pomba-aai-context-builder:1.3.2
-nexus3.onap.org:10001/onap/pomba-context-aggregator:1.3.4
-nexus3.onap.org:10001/onap/pomba-network-discovery-context-builder:1.3.1
-nexus3.onap.org:10001/onap/pomba-sdc-context-builder:1.3.2
-nexus3.onap.org:10001/onap/portal-app:2.3.1
-nexus3.onap.org:10001/onap/portal-db:2.3.1
-nexus3.onap.org:10001/onap/portal-sdk:2.3.1
-nexus3.onap.org:10001/onap/portal-wms:2.3.1
-nexus3.onap.org:10001/onap/sdc-backend:1.3.6
-nexus3.onap.org:10001/onap/sdc-backend-init:1.3.6
-nexus3.onap.org:10001/onap/sdc-cassandra:1.3.6
-nexus3.onap.org:10001/onap/sdc-cassandra-init:1.3.6
-nexus3.onap.org:10001/onap/sdc-elasticsearch:1.3.6
-nexus3.onap.org:10001/onap/sdc-frontend:1.3.6
-nexus3.onap.org:10001/onap/sdc-init-elasticsearch:1.3.6
-nexus3.onap.org:10001/onap/sdc-kibana:1.3.6
-nexus3.onap.org:10001/onap/sdc-onboard-backend:1.3.6
-nexus3.onap.org:10001/onap/sdc-onboard-cassandra-init:1.3.6
-nexus3.onap.org:10001/onap/sdnc-ansible-server-image:1.4.5
-nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image:1.4.4
-nexus3.onap.org:10001/onap/sdnc-image:1.4.4
-nexus3.onap.org:10001/onap/sdnc-ueb-listener-image:1.4.4
-nexus3.onap.org:10001/onap/search-data-service:1.3.2
-nexus3.onap.org:10001/onap/service-decomposition:1.4.2
-nexus3.onap.org:10001/onap/sniroemulator:1.0.0
-nexus3.onap.org:10001/onap/so/api-handler-infra:1.3.6
-nexus3.onap.org:10001/onap/so/bpmn-infra:1.3.6
-nexus3.onap.org:10001/onap/so/catalog-db-adapter:1.3.6
-nexus3.onap.org:10001/onap/so/openstack-adapter:1.3.6
-nexus3.onap.org:10001/onap/so/request-db-adapter:1.3.6
-nexus3.onap.org:10001/onap/so/sdc-controller:1.3.6
-nexus3.onap.org:10001/onap/so/sdnc-adapter:1.3.6
-nexus3.onap.org:10001/onap/so/so-monitoring:1.3.6
-nexus3.onap.org:10001/onap/so/vfc-adapter:1.3.6
-nexus3.onap.org:10001/onap/sparky-be:1.3.2
-nexus3.onap.org:10001/onap/spike:1.3.1
-nexus3.onap.org:10001/onap/testsuite:1.3.3
-nexus3.onap.org:10001/onap/usecase-ui:1.2.2
-nexus3.onap.org:10001/onap/usecase-ui-server:1.2.1
-nexus3.onap.org:10001/onap/validation:1.3.1
-nexus3.onap.org:10001/onap/vfc/catalog:1.2.1
-nexus3.onap.org:10001/onap/vfc/db:1.2.1
-nexus3.onap.org:10001/onap/vfc/emsdriver:1.2.1
-nexus3.onap.org:10001/onap/vfc/gvnfmdriver:1.2.1
-nexus3.onap.org:10001/onap/vfc/jujudriver:1.2.1
-nexus3.onap.org:10001/onap/vfc/multivimproxy:1.2.1
-nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei:1.2.1
-nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokia:1.1.0
-nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokiav2:1.3.0
-nexus3.onap.org:10001/onap/vfc/nslcm:1.2.1
-nexus3.onap.org:10001/onap/vfc/resmanagement:1.2.1
-nexus3.onap.org:10001/onap/vfc/vnflcm:1.2.1
-nexus3.onap.org:10001/onap/vfc/vnfmgr:1.2.1
-nexus3.onap.org:10001/onap/vfc/vnfres:1.2.1
-nexus3.onap.org:10001/onap/vfc/wfengine-activiti:1.2.0
-nexus3.onap.org:10001/onap/vfc/wfengine-mgrservice:1.2.0
-nexus3.onap.org:10001/onap/vfc/ztesdncdriver:1.2.0
-nexus3.onap.org:10001/onap/vfc/ztevnfmdriver:1.2.1
-nexus3.onap.org:10001/onap/vid:3.2.3
-nexus3.onap.org:10001/onap/vnfsdk/refrepo:1.2.0
-nexus3.onap.org:10001/onap/workflow-backend:1.3.2
-nexus3.onap.org:10001/onap/workflow-frontend:1.3.2
-nexus3.onap.org:10001/onap/workflow-init:1.3.2
-nexus3.onap.org:10001/sonatype/nexus:2.14.8-01
-nexus3.onap.org:10001/zookeeper:3.4
-oomk8s/mariadb-client-init:3.0.0
-oomk8s/readiness-check:2.0.0
-oomk8s/readiness-check:2.0.1
-oomk8s/ubuntu-init:1.0.0
-registry.hub.docker.com/library/busybox:latest
-registry.hub.docker.com/library/consul:0.9.3
-registry.hub.docker.com/library/mongo:3
-registry.hub.docker.com/library/mysql:5.7
-registry.hub.docker.com/oomk8s/ubuntu-init:2.0.0
-gcr.io/kubernetes-helm/tiller:v2.9.1
-nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tls-init-container:1.0.0
-library/postgres:9.5.2
-rancher/agent:v1.2.11
-rancher/dns:v0.17.4
-rancher/etc-host-updater:v0.0.3
-rancher/etcd:v2.3.7-17
-rancher/healthcheck:v0.3.8
-rancher/heapster-amd64:v1.5.2
-rancher/heapster-grafana-amd64:v4.4.3
-rancher/heapster-influxdb-amd64:v1.3.3
-rancher/k8s-dns-dnsmasq-nanny-amd64:1.14.10
-rancher/k8s-dns-kube-dns-amd64:1.14.10
-rancher/k8s-dns-sidecar-amd64:1.14.10
-rancher/k8s:v1.11.5-rancher1-1
-rancher/kubectld:v0.8.8
-rancher/kubernetes-agent:v0.6.9
-rancher/kubernetes-auth:v0.0.8
-rancher/kubernetes-dashboard-amd64:v1.8.3
-rancher/lb-service-haproxy:v0.9.6
-rancher/lb-service-rancher:v0.9.6
-rancher/metadata:v0.10.4
-rancher/net:holder
-rancher/net:v0.13.17
-rancher/network-manager:v0.7.22
-rancher/pause-amd64:3.0
-rancher/server:v1.6.22
-rancher/tiller:v2.9.1
diff --git a/build/data_lists/onap_3.0.x-git_repos.list b/build/data_lists/onap_3.0.x-git_repos.list
deleted file mode 100644 (file)
index 27ecd57..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#repo                                                        branch
-gerrit.onap.org/r/aaf/authz.git                             casablanca
-gerrit.onap.org/r/demo.git                                  casablanca
-gerrit.onap.org/r/dmaap/messagerouter/messageservice.git    casablanca
-gerrit.onap.org/r/so/docker-config.git                      casablanca
-github.com/rancher/community-catalog.git
-git.rancher.io/rancher-catalog.git
-gerrit.onap.org/r/testsuite/properties.git                  casablanca
-gerrit.onap.org/r/portal.git                                casablanca
diff --git a/build/data_lists/onap_3.0.x-pip_packages.list b/build/data_lists/onap_3.0.x-pip_packages.list
deleted file mode 100644 (file)
index f67c764..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-CherryPy==17.4.1
-PyMySQL==0.9.3
-backports.functools_lru_cache==1.5
-certifi==2018.11.29
-chardet==3.0.4
-cheroot==6.5.4
-contextlib2==0.5.5
-idna==2.8
-jaraco.functools==2.0
-more_itertools==5.0.0
-portend==2.3
-pytz==2018.9
-requests==2.21.0
-setuptools==40.7.1
-six==1.12.0
-tempora==1.14
-urllib3==1.24.1
-zc.lockfile==1.4
diff --git a/build/data_lists/onap_docker_images.list b/build/data_lists/onap_docker_images.list
new file mode 100644 (file)
index 0000000..3ac67ed
--- /dev/null
@@ -0,0 +1,225 @@
+# generated from OOM commit 94664fb4457c61076cc7e65ed40dda5cf696bcbe
+alpine:3.6
+busybox
+crunchydata/crunchy-pgpool:centos7-10.4-2.0.0
+crunchydata/crunchy-postgres:centos7-10.3-1.8.2
+crunchydata/crunchy-postgres:centos7-10.4-2.0.0
+docker.elastic.co/beats/filebeat:5.5.0
+docker.elastic.co/elasticsearch/elasticsearch:5.5.0
+docker.elastic.co/elasticsearch/elasticsearch:6.6.2
+docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.2
+docker.elastic.co/kibana/kibana:5.5.0
+docker.elastic.co/kibana/kibana:6.6.2
+docker.elastic.co/logstash/logstash:5.4.3
+docker.io/aaionap/haproxy:1.4.0
+docker.io/busybox
+docker.io/busybox:1.30
+docker.io/consul:1.0.6
+docker.io/library/busybox:latest
+docker.io/nginx:1.15-alpine
+docker.io/oomk8s/consul:1.0.0
+docker.io/postgres:10.4-alpine
+docker.io/taskrabbit/elasticsearch-dump
+gcr.io/google_samples/k8szk:v3
+k8s.gcr.io/etcd-amd64:2.2.5
+library/mariadb:10
+library/python:3.6-alpine
+netboxcommunity/netbox:v2.5.8
+nexus3.onap.org:10001/adfinissygroup/k8s-mariadb-galera-centos:v002
+nexus3.onap.org:10001/busybox
+nexus3.onap.org:10001/library/consul:1.0.6
+nexus3.onap.org:10001/library/tomcat:8.5
+nexus3.onap.org:10001/library/vault:0.10.0
+nexus3.onap.org:10001/mariadb:10.1.38
+nexus3.onap.org:10001/mariadb:10.2.14
+nexus3.onap.org:10001/mariadb:10.3.12
+nexus3.onap.org:10001/mariadb:10.3.14
+nexus3.onap.org:10001/onap/aaf/aaf_agent:2.1.13
+nexus3.onap.org:10001/onap/aaf/aaf_cass:2.1.13
+nexus3.onap.org:10001/onap/aaf/aaf_cm:2.1.13
+nexus3.onap.org:10001/onap/aaf/aaf_config:2.1.13
+nexus3.onap.org:10001/onap/aaf/aaf_fs:2.1.13
+nexus3.onap.org:10001/onap/aaf/aaf_gui:2.1.13
+nexus3.onap.org:10001/onap/aaf/aaf_hello:2.1.13
+nexus3.onap.org:10001/onap/aaf/aaf_locate:2.1.13
+nexus3.onap.org:10001/onap/aaf/aaf_oauth:2.1.13
+nexus3.onap.org:10001/onap/aaf/aaf_service:2.1.13
+nexus3.onap.org:10001/onap/aaf/distcenter:4.0.0
+nexus3.onap.org:10001/onap/aaf/sms:4.0.0
+nexus3.onap.org:10001/onap/aaf/smsquorumclient:4.0.0
+nexus3.onap.org:10001/onap/aaf/testcaservice:4.0.0
+nexus3.onap.org:10001/onap/aai/esr-gui:1.4.0
+nexus3.onap.org:10001/onap/aai/esr-server:1.4.0
+nexus3.onap.org:10001/onap/aai-graphadmin:1.1.0
+nexus3.onap.org:10001/onap/aai-resources:1.4.0
+nexus3.onap.org:10001/onap/aai-schema-service:1.0.6
+nexus3.onap.org:10001/onap/aai-traversal:1.4.1
+nexus3.onap.org:10001/onap/admportal-sdnc-image:1.5.1
+nexus3.onap.org:10001/onap/appc-cdt-image:1.5.0
+nexus3.onap.org:10001/onap/appc-image:1.5.0
+nexus3.onap.org:10001/onap/babel:1.4.2
+nexus3.onap.org:10001/onap/ccsdk-ansible-server-image:0.4.2
+nexus3.onap.org:10001/onap/ccsdk-apps-ms-neng:0.4.2
+nexus3.onap.org:10001/onap/ccsdk-blueprintsprocessor:0.4.2
+nexus3.onap.org:10001/onap/ccsdk-cds-ui-server:0.4.2
+nexus3.onap.org:10001/onap/ccsdk-commandexecutor:0.4.2
+nexus3.onap.org:10001/onap/ccsdk-controllerblueprints:0.4.2
+nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:0.4.2
+nexus3.onap.org:10001/onap/ccsdk-sdclistener:0.4.2
+nexus3.onap.org:10001/onap/champ:1.4.0
+nexus3.onap.org:10001/onap/clamp:4.0.2
+nexus3.onap.org:10001/onap/clamp-dashboard-kibana:4.0.1
+nexus3.onap.org:10001/onap/clamp-dashboard-logstash:4.0.1
+nexus3.onap.org:10001/onap/cli:2.0.4
+nexus3.onap.org:10001/onap/data-router:1.3.3
+nexus3.onap.org:10001/onap/data-router:1.4.0
+nexus3.onap.org:10001/onap/dcae-be:1.3.0
+nexus3.onap.org:10001/onap/dcae-dt:1.2.0
+nexus3.onap.org:10001/onap/dcae-fe:1.3.0
+nexus3.onap.org:10001/onap/dcae-tools:1.3.0
+nexus3.onap.org:10001/onap/dcae-tosca-app:1.3.0
+nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.1.0
+nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.1.0
+nexus3.onap.org:10001/onap/dmaap/dbc-client:1.0.9
+nexus3.onap.org:10001/onap/dmaap/dmaap-bc:1.1.5
+nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.14
+nexus3.onap.org:10001/onap/dmaap/kafka111:1.0.1
+nexus3.onap.org:10001/onap/dmaap/zookeeper:6.0.0
+nexus3.onap.org:10001/onap/elasticsearch-sg:1.4.3
+nexus3.onap.org:10001/onap/externalapi/nbi:4.0.0
+nexus3.onap.org:10001/onap/gizmo:1.4.0
+nexus3.onap.org:10001/onap/holmes/engine-management:1.2.5
+nexus3.onap.org:10001/onap/holmes/rule-management:1.2.6
+nexus3.onap.org:10001/onap/modeling/genericparser:1.0.2
+nexus3.onap.org:10001/onap/model-loader:1.4.0
+nexus3.onap.org:10001/onap/msb/msb_apigateway:1.2.4
+nexus3.onap.org:10001/onap/msb/msb_discovery:1.2.3
+nexus3.onap.org:10001/onap/multicloud/azure:1.2.1
+nexus3.onap.org:10001/onap/multicloud/framework:1.3.1
+nexus3.onap.org:10001/onap/multicloud/framework-artifactbroker:1.3.3
+nexus3.onap.org:10001/onap/multicloud/k8s:0.2.0
+nexus3.onap.org:10001/onap/multicloud/openstack-fcaps:1.3.2
+nexus3.onap.org:10001/onap/multicloud/openstack-lenovo:1.3.1
+nexus3.onap.org:10001/onap/multicloud/openstack-ocata:1.3.2
+nexus3.onap.org:10001/onap/multicloud/openstack-pike:1.3.2
+nexus3.onap.org:10001/onap/multicloud/openstack-starlingx:1.3.2
+nexus3.onap.org:10001/onap/multicloud/openstack-windriver:1.3.2
+nexus3.onap.org:10001/onap/multicloud/vio:1.3.1
+nexus3.onap.org:10001/onap/music/cassandra_3_11:3.0.24
+nexus3.onap.org:10001/onap/music/cassandra_job:3.0.24
+nexus3.onap.org:10001/onap/music/cassandra_music:3.0.0
+nexus3.onap.org:10001/onap/music/music:3.0.24
+nexus3.onap.org:10001/onap/network-discovery:1.5.1
+nexus3.onap.org:10001/onap/oom/kube2msb:1.1.0
+nexus3.onap.org:10001/onap/optf-cmso-dbinit:2.0.0
+nexus3.onap.org:10001/onap/optf-cmso-optimizer:2.0.0
+nexus3.onap.org:10001/onap/optf-cmso-service:2.0.0
+nexus3.onap.org:10001/onap/optf-cmso-ticketmgt:2.0.0
+nexus3.onap.org:10001/onap/optf-cmso-topology:2.0.0
+nexus3.onap.org:10001/onap/optf-has:1.3.0
+nexus3.onap.org:10001/onap/optf-osdf:1.3.0
+nexus3.onap.org:10001/onap/org.onap.ccsdk.dashboard.ccsdk-app-os:1.1.0-SNAPSHOT-latest
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.1.0
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.snmptrap:1.4.0
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.4.4
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.cm-container:1.6.2
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.consul-loader-container:1.0.0
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.healthcheck-container:1.2.4
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.4.17
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.multisite-init-container:1.0.0
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.redis-cluster-container:1.0.0
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tls-init-container:1.0.3
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:2.3.0
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler:4.0.1
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.inventory-api:3.2.0
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.policy-handler:5.0.0
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.servicechange-handler:1.1.5
+nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server:1.2.3
+nexus3.onap.org:10001/onap/policy-apex-pdp:2.1.0
+nexus3.onap.org:10001/onap/policy-api:2.0.1
+nexus3.onap.org:10001/onap/policy-distribution:2.1.0
+nexus3.onap.org:10001/onap/policy-pap:2.0.1
+nexus3.onap.org:10001/onap/policy-pdpd-cl:1.4.1
+nexus3.onap.org:10001/onap/policy-pe:1.4.1
+nexus3.onap.org:10001/onap/policy-xacml-pdp:2.0.1
+nexus3.onap.org:10001/onap/pomba-aai-context-builder:1.4.0
+nexus3.onap.org:10001/onap/pomba-context-aggregator:1.4.0
+nexus3.onap.org:10001/onap/pomba-network-discovery-context-builder:1.4.0
+nexus3.onap.org:10001/onap/pomba-sdc-context-builder:1.4.0
+nexus3.onap.org:10001/onap/pomba-sdnc-context-builder:1.4.0
+nexus3.onap.org:10001/onap/portal-app:2.5.0
+nexus3.onap.org:10001/onap/portal-db:2.5.0
+nexus3.onap.org:10001/onap/portal-sdk:2.5.0
+nexus3.onap.org:10001/onap/portal-wms:2.5.0
+nexus3.onap.org:10001/onap/sdc-backend:1.4.0
+nexus3.onap.org:10001/onap/sdc-backend-init:1.4.0
+nexus3.onap.org:10001/onap/sdc-cassandra-init:1.4.0
+nexus3.onap.org:10001/onap/sdc-elasticsearch:1.4.0
+nexus3.onap.org:10001/onap/sdc-frontend:1.4.0
+nexus3.onap.org:10001/onap/sdc-init-elasticsearch:1.4.0
+nexus3.onap.org:10001/onap/sdc-kibana:1.4.0
+nexus3.onap.org:10001/onap/sdc-onboard-backend:1.4.0
+nexus3.onap.org:10001/onap/sdc-onboard-cassandra-init:1.4.0
+nexus3.onap.org:10001/onap/sdnc-ansible-server-image:1.5.1
+nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image:1.5.1
+nexus3.onap.org:10001/onap/sdnc-image:1.5.1
+nexus3.onap.org:10001/onap/sdnc-ueb-listener-image:1.5.1
+nexus3.onap.org:10001/onap/search-data-service:1.3.1
+nexus3.onap.org:10001/onap/search-data-service:1.4.3
+nexus3.onap.org:10001/onap/service-decomposition:1.5.1
+nexus3.onap.org:10001/onap/sniroemulator:1.0.0
+nexus3.onap.org:10001/onap/so/api-handler-infra:1.4.1
+nexus3.onap.org:10001/onap/so/bpmn-infra:1.4.1
+nexus3.onap.org:10001/onap/so/catalog-db-adapter:1.4.1
+nexus3.onap.org:10001/onap/so/openstack-adapter:1.4.1
+nexus3.onap.org:10001/onap/so/request-db-adapter:1.4.1
+nexus3.onap.org:10001/onap/so/sdc-controller:1.4.1
+nexus3.onap.org:10001/onap/so/sdnc-adapter:1.4.1
+nexus3.onap.org:10001/onap/so/so-monitoring:1.4.1
+nexus3.onap.org:10001/onap/so/vfc-adapter:1.4.1
+nexus3.onap.org:10001/onap/so/vnfm-adapter:1.4.1
+nexus3.onap.org:10001/onap/sparky-be:1.4.0
+nexus3.onap.org:10001/onap/spike:1.4.0
+nexus3.onap.org:10001/onap/testsuite:1.4.0
+nexus3.onap.org:10001/onap/usecase-ui:1.2.2
+nexus3.onap.org:10001/onap/usecase-ui-server:1.2.1
+nexus3.onap.org:10001/onap/validation:1.3.1
+nexus3.onap.org:10001/onap/vfc/catalog:1.3.1
+nexus3.onap.org:10001/onap/vfc/db:1.3.0
+nexus3.onap.org:10001/onap/vfc/emsdriver:1.3.0
+nexus3.onap.org:10001/onap/vfc/gvnfmdriver:1.3.1
+nexus3.onap.org:10001/onap/vfc/jujudriver:1.3.1
+nexus3.onap.org:10001/onap/vfc/multivimproxy:1.3.0
+nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei:1.3.0
+nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokiav2:1.3.0
+nexus3.onap.org:10001/onap/vfc/nslcm:1.3.1
+nexus3.onap.org:10001/onap/vfc/resmanagement:1.3.0
+nexus3.onap.org:10001/onap/vfc/vnflcm:1.3.1
+nexus3.onap.org:10001/onap/vfc/vnfmgr:1.3.1
+nexus3.onap.org:10001/onap/vfc/vnfres:1.3.1
+nexus3.onap.org:10001/onap/vfc/wfengine-activiti:1.3.0
+nexus3.onap.org:10001/onap/vfc/wfengine-mgrservice:1.3.0
+nexus3.onap.org:10001/onap/vfc/ztesdncdriver:1.3.0
+nexus3.onap.org:10001/onap/vfc/ztevnfmdriver:1.3.1
+nexus3.onap.org:10001/onap/vid:4.0.0
+nexus3.onap.org:10001/onap/vnfsdk/refrepo:1.2.0
+nexus3.onap.org:10001/onap/workflow-backend:1.4.0
+nexus3.onap.org:10001/onap/workflow-frontend:1.4.0
+nexus3.onap.org:10001/onap/workflow-init:1.4.0
+nexus3.onap.org:10001/sonatype/nexus:2.14.8-01
+nexus3.onap.org:10001/zookeeper:3.4
+oomk8s/mariadb-client-init:3.0.0
+oomk8s/readiness-check:2.0.0
+oomk8s/readiness-check:2.0.1
+oomk8s/readiness-check:2.0.2
+oomk8s/ubuntu-init:1.0.0
+pndareg.ctao6.net/onap/org.onap.dcaegen2.deployments.pnda-bootstrap-container:5.0.0
+pndareg.ctao6.net/onap/org.onap.dcaegen2.deployments.pnda-mirror-container:5.0.0
+rabbitmq:alpine
+registry.hub.docker.com/library/busybox:latest
+registry.hub.docker.com/library/consul:1.4.3
+registry.hub.docker.com/library/mongo:4.0.8
+registry.hub.docker.com/oomk8s/ubuntu-init:2.0.0
+library/cassandra:2.2.14
+quay.io/kubernetes_incubator/nfs-provisioner:v1.0.8
diff --git a/build/data_lists/onap_git_repos.list b/build/data_lists/onap_git_repos.list
new file mode 100644 (file)
index 0000000..518eecd
--- /dev/null
@@ -0,0 +1,2 @@
+#repo                                                        branch
+gerrit.onap.org/r/so/docker-config.git                      master
similarity index 76%
rename from build/data_lists/onap_3.0.x-npm.list
rename to build/data_lists/onap_npm.list
index a22b237..058307e 100644 (file)
 async@0.1.22
-bl@0.9.5
-brace-expansion@1.1.11
-commander@2.1.0
 compression@1.1.2
-connect@2.26.1
-cookiejar@1.3.2
-csurf@1.6.6
 debug@0.7.4
-depd@0.4.5
-domelementtype@1.1.3
-domutils@1.4.3
 errorhandler@1.2.4
-express@3.17.2
-extend@1.2.1
-formidable@1.0.14
 fresh@0.2.4
-fs.extra@1.3.2
-graceful-fs@2.0.3
-grunt-cli@0.1.13
 grunt-legacy-util@0.2.0
-htmlparser2@3.7.3
-inflight@1.0.6
-isarray@0.0.1
 js-yaml@2.0.5
-libmime@0.1.7
-load-json-file@1.1.0
-lodash@4.17.11
 mime-types@2.0.14
-morgan@1.3.2
-ncp@0.6.0
-object-assign@3.0.0
 pause@0.0.1
-proxy-addr@1.0.10
-punycode@2.1.1
-range-parser@1.0.3
-redent@1.0.0
-request@2.42.0
-send@0.9.3
-sigmund@1.0.1
 smtp-connection@1.3.8
-sntp@0.2.4
-statuses@1.5.0
-strip-indent@1.0.1
 thenify@3.3.0
-through@2.2.7
-tough-cookie@2.5.0
-uglify-to-browserify@1.0.2
 underscore.string@2.3.3
-validate-npm-package-license@3.0.4
-wordwrap@0.0.3
-ansi-color@0.2.1
 any-promise@1.3.0
-array-find-index@1.0.2
-balanced-match@1.0.0
-basic-auth@1.0.0
-builtin-modules@1.1.1
-coffee-script@1.3.3
-combined-stream@0.0.7
-core-util-is@1.0.2
-crc@3.4.4
-csrf@2.0.7
-csv-stringify@0.0.8
-entities@1.0.0
 etag@1.4.0
-exit@0.1.2
-finalhandler@0.2.0
-follow-redirects@0.0.3
 hoek@0.9.1
-ipaddr.js@1.0.5
-is-builtin-module@1.0.0
-is-utf8@0.2.1
 method-override@2.2.0
-minimatch@3.0.4
-mkdirp@0.3.5
-ms@2.0.0
 needle@0.9.2
-nodemailer-direct-transport@1.1.0
-node-uuid@1.4.8
-normalize-package-data@2.4.0
 oauth@0.9.12
-on-finished@2.3.0
-options@0.0.6
-parseurl@1.3.2
 path-is-absolute@1.0.1
-pinkie@2.0.4
-pretty-data@0.40.0
-rimraf@2.2.8
 sentiment@0.2.3
-stream-counter@0.2.0
-string_decoder@1.1.1
-trim-newlines@1.0.0
 twitter-ng@0.6.2
-type-is@1.6.16
-underscore.string@2.4.0
-walk@2.3.14
-xml2js@0.4.4
-abbrev@1.1.1
-assert-plus@0.1.5
-async@0.2.10
-bootstrap@3.4.0
 cookie-parser@1.3.5
-debug@2.0.0
-dicer@0.2.5
-domelementtype@1.3.1
-domutils@1.5.1
-ee-first@1.0.5
-etag@1.5.1
-formatio@1.0.2
-fs.realpath@1.0.0
-getobject@0.1.0
 glob@3.1.21
-grunt-contrib-jshint@0.10.0
-grunt-simple-mocha@0.4.0
-htmlparser2@3.8.3
-http-signature@0.10.1
-iconv-lite@0.4.24
-inherits@1.0.2
-isarray@1.0.0
-libmime@1.2.0
-lodash@0.9.2
 media-typer@0.3.0
-mime-db@1.12.0
-mime-types@2.1.21
-minimist@0.0.8
-mkdirp@0.5.0
 multer@1.1.0
-native-or-bluebird@1.1.2
-object-assign@4.1.1
-on-headers@1.0.1
-properties-reader@0.0.9
-readable-stream@1.0.27-1
-signal-exit@3.0.2
-spdx-license-ids@3.0.3
-stringstream@0.0.6
-strip-json-comments@1.0.4
-thenify-all@1.6.0
-uid-safe@1.0.1
-underscore@1.6.0
-utf7@1.0.0
-vary@1.0.1
-addressparser@0.3.2
-append-field@0.1.0
-async@0.9.2
-bignumber.js@2.0.7
-busboy@0.2.14
-component-emitter@1.1.2
 concat-map@0.0.1
-connect-timeout@1.3.0
-cors@2.4.2
-csv@0.4.6
-csvtojson@0.5.14
-dateformat@1.0.12
-domhandler@2.2.1
-duplexer@0.1.1
 entities@1.1.2
-express@4.9.8
-foreachasync@3.0.0
-graceful-fs@4.1.15
-http-errors@1.2.8
-iconv-lite@0.4.4
 irc@0.3.7
-is-arrayish@0.2.1
-jshint@2.5.11
-keypress@0.1.0
 libqp@0.1.1
-loud-rejection@1.6.0
-minimatch@0.2.14
-mkdirp@0.5.1
-mqtt@0.3.13
 mysql@2.7.0
-negotiator@0.4.9
-nodemailer-smtp-transport@0.1.13
-oauth-sign@0.4.0
 once@1.4.0
-path-to-regexp@0.1.3
-pinkie-promise@2.0.1
-process@0.11.10
 qs@0.6.6
-raw-body@1.3.0
-samsam@1.1.3
-semver@5.6.0
 serve-favicon@2.1.7
-shelljs@0.3.0
-spdx-correct@3.1.0
-streamsearch@0.1.2
 utils-merge@1.0.0
-when@3.4.6
-wrappy@1.0.2
-async@1.5.2
-basic-auth-connect@1.0.0
-bootstrap-submenu@2.0.4
-camelcase@2.1.1
-caseless@0.6.0
-commander@0.6.1
 cookie@0.1.2
-cookie-signature@1.0.5
-cron@1.0.4
-CSSselect@0.4.1
 debug@2.6.9
-depd@1.1.2
-diff@1.0.7
-ee-first@1.1.1
-form-data@0.1.2
-forwarded@0.1.2
-fs-extra@0.11.1
-glob@3.2.11
-growl@1.8.1
-grunt-legacy-log@0.1.3
 hooker@0.2.3
-iconv-lite@0.2.11
-imap@0.8.13
-inherits@2.0.3
-is-finite@1.0.2
 json-stringify-safe@5.0.1
-lodash@1.3.1
-map-obj@1.0.1
-meow@3.7.0
-methods@0.0.1
-mime@1.2.11
-minimist@1.2.0
-mocha@1.21.4
-multer@1.4.1
-mz@1.3.0
-optimist@0.3.7
-psl@1.1.31
-readable-stream@1.0.34
-read-pkg@1.1.0
 reduce-component@1.0.1
-repeating@2.0.1
-response-time@2.0.1
-rimraf@2.6.3
-serve-static@1.6.5
-sinon@1.10.3
-spdx-exceptions@2.2.0
-tinycolor@0.0.1
-uid-safe@1.1.0
 underscore@1.7.0
-util@0.10.4
-xmlbuilder@9.0.7
-accepts@1.1.4
-append-field@1.0.0
-async@2.6.1
-buffer-from@1.1.1
-bytes@1.0.0
-cli@0.6.6
-crc@3.0.0
-csv-generate@0.0.6
-ctype@0.5.3
-dateformat@1.0.2-1.2.3
-decamelize@1.2.0
-delayed-stream@0.0.5
-destroy@1.0.3
-domhandler@2.3.0
-duplexer2@0.0.2
-ejs@0.8.8
 escape-html@1.0.1
-esprima@1.0.4
-eventemitter2@0.4.14
-find-up@1.1.2
 forever-agent@0.5.2
-glob@3.2.3
-hyperquest@0.3.0
-jsonfile@1.0.1
-libqp@1.1.0
 lodash@2.4.2
-mime-db@1.37.0
-minimatch@0.3.0
-ms@0.6.2
-multiparty@3.3.2
-nodemailer-wellknown@0.1.10
 nopt@1.0.10
-number-is-nan@1.0.1
-parse-json@2.2.0
-path@0.12.7
 qs@1.2.2
+cookie@0.1.3
+form-data@0.1.4
+grunt-legacy-log-utils@0.1.1
+libbase64@0.1.0
+qs@2.2.3
+glob@7.1.3
+nopt@3.0.1
+qs@2.2.4
+scmp@1.0.0
+type-is@1.5.7
+abbrev@1.1.1
+etag@1.5.1
+iconv-lite@0.4.24
+readable-stream@1.0.27-1
+strip-json-comments@1.0.4
+utf7@1.0.0
+async@0.9.2
+fs-extra@0.11.1
+mime@1.2.11
+optimist@0.3.7
+sinon@1.10.3
+buffer-from@1.1.1
+destroy@1.0.3
+mime-db@1.37.0
 readable-stream@1.1.14
-require-all@1.0.0
-sax@0.6.1
-shelljs@0.5.3
-stream-transform@0.1.2
 superagent@0.18.0
-tunnel-agent@0.4.3
-typedarray@0.0.6
-underscore@1.9.1
-utils-merge@1.0.1
 which@1.0.9
-ws@0.4.32
-argparse@0.1.16
-aws-sign2@0.5.0
 batch@0.5.1
-body-parser@1.8.4
-bootstrap-table@1.13.1
-camelcase-keys@2.1.0
 colors@0.6.2
-commander@1.3.2
-compressible@2.0.15
-console-browserify@1.1.0
-cookie@0.1.3
 cookie-signature@1.0.6
+should@4.0.4
+uglify-js@2.4.15
+base64-url@1.2.1
+clone@0.1.18
+hyperquest@1.3.0
+methods@1.1.0
+on-finished@2.1.0
+readable-stream@2.3.6
+bl@0.9.5
+connect@2.26.1
+depd@0.4.5
+express@3.17.2
+htmlparser2@3.7.3
+libmime@0.1.7
+morgan@1.3.2
+request@2.42.0
+sntp@0.2.4
+through@2.2.7
+coffee-script@1.3.3
+csrf@2.0.7
+exit@0.1.2
+minimatch@3.0.4
+nodemailer-direct-transport@1.1.0
+on-finished@2.3.0
+stream-counter@0.2.0
+type-is@1.6.16
+debug@2.0.0
+formatio@1.0.2
+grunt-contrib-jshint@0.10.0
+mime-db@1.12.0
+native-or-bluebird@1.1.2
+bignumber.js@2.0.7
+connect-timeout@1.3.0
+negotiator@0.4.9
+raw-body@1.3.0
+shelljs@0.3.0
+when@3.4.6
+cookie-signature@1.0.5
+diff@1.0.7
+iconv-lite@0.2.11
+lodash@1.3.1
+ctype@0.5.3
+esprima@1.0.4
+glob@3.2.3
+minimatch@0.3.0
+require-all@1.0.0
 cryptiles@0.2.2
-CSSwhat@0.4.7
-date-now@0.1.4
-dns-sync@0.1.3
 dom-serializer@0.0.1
-error-ex@1.3.2
-express-session@1.15.6
-form-data@0.1.4
-fs-extra@0.6.4
-get-stdin@4.0.1
-glob@5.0.15
-graceful-fs@1.2.3
-grunt@0.4.5
-grunt-legacy-log-utils@0.1.1
 hawk@1.1.1
-hosted-git-info@2.7.1
-indent-string@2.1.0
-libbase64@0.1.0
-lodash@3.10.1
-merge-descriptors@0.0.2
-methods@1.0.0
-mime@1.2.5
-mime-types@1.0.2
-moment@2.23.0
 nan@1.0.0
-ncp@0.4.2
-path-type@1.1.0
-proxy-addr@1.0.1
-qs@2.2.3
-random-bytes@1.0.0
-read-pkg-up@1.0.1
-safe-buffer@5.1.2
-serve-index@1.2.1
-should@4.0.4
-spdx-expression-parse@3.0.0
-strip-bom@2.0.0
-through2@0.6.5
-uglify-js@2.4.15
+ipaddr.js@0.1.2
+minimatch@1.0.0
+resolve@0.3.1
+send@0.9.2
+util-deprecate@1.0.2
+assert-plus@0.1.5
+dicer@0.2.5
+inherits@1.0.2
+thenify-all@1.6.0
+vary@1.0.1
+glob@3.2.11
+imap@0.8.13
+psl@1.1.31
+xmlbuilder@9.0.7
+bytes@1.0.0
+domhandler@2.3.0
+hyperquest@0.3.0
+ms@0.6.2
+tunnel-agent@0.4.3
+ws@0.4.32
+body-parser@1.8.4
+commander@1.3.2
+merge-descriptors@0.0.2
 underscore.string@2.2.1
-util@0.11.1
-amdefine@1.0.1
-asn1@0.1.11
-base64-url@1.2.1
 boom@0.4.2
-buildmail@1.3.0
-cheerio@0.17.0
-clone@0.1.18
 commander@2.0.0
+jade@0.26.3
+mkdirp@0.3.0
+source-map@0.1.34
+brace-expansion@1.1.11
+cookiejar@1.3.2
+domelementtype@1.1.3
+extend@1.2.1
+graceful-fs@2.0.3
+inflight@1.0.6
+ncp@0.6.0
+punycode@2.1.1
+send@0.9.3
+statuses@1.5.0
+tough-cookie@2.5.0
+wordwrap@0.0.3
+balanced-match@1.0.0
+combined-stream@0.0.7
+finalhandler@0.2.0
+mkdirp@0.3.5
+node-uuid@1.4.8
+options@0.0.6
+pretty-data@0.40.0
+string_decoder@1.1.1
+underscore.string@2.4.0
+fs.realpath@1.0.0
+grunt-simple-mocha@0.4.0
+mime-types@2.1.21
+busboy@0.2.14
+cors@2.4.2
+domhandler@2.2.1
+graceful-fs@4.1.15
+jshint@2.5.11
+minimatch@0.2.14
+nodemailer-smtp-transport@0.1.13
+samsam@1.1.3
+wrappy@1.0.2
+cron@1.0.4
+ee-first@1.1.1
+growl@1.8.1
+mocha@1.21.4
+response-time@2.0.1
+dateformat@1.0.2-1.2.3
+duplexer2@0.0.2
+eventemitter2@0.4.14
+multiparty@3.3.2
+sax@0.6.1
+compressible@2.0.15
+CSSwhat@0.4.7
+glob@5.0.15
+util@0.11.1
 concat-stream@1.6.2
-cookie@0.3.1
-crc@3.2.1
-csv-parse@1.3.3
-currently-unhandled@0.4.1
 etag@1.3.1
+mustache@0.8.2
+rndm@1.1.1
+vhost@3.0.2
+async@0.2.10
+domelementtype@1.3.1
+isarray@1.0.0
+minimist@0.0.8
+on-headers@1.0.1
+uid-safe@1.0.1
+addressparser@0.3.2
+http-errors@1.2.8
+mkdirp@0.5.1
+caseless@0.6.0
+form-data@0.1.2
+inherits@2.0.3
+readable-stream@1.0.34
+tinycolor@0.0.1
+accepts@1.1.4
+cli@0.6.6
+typedarray@0.0.6
+argparse@0.1.16
+graceful-fs@1.2.3
+methods@1.0.0
+safe-buffer@5.1.2
+amdefine@1.0.1
+buildmail@1.3.0
 express-session@1.8.2
-findup-sync@0.1.3
-glob@7.1.3
-hyperquest@1.3.0
-ipaddr.js@0.1.2
-jade@0.26.3
 jsonfile@2.4.0
+string_decoder@0.10.31
+commander@2.1.0
+csurf@1.6.6
+domutils@1.4.3
+formidable@1.0.14
+grunt-cli@0.1.13
+isarray@0.0.1
+object-assign@3.0.0
+range-parser@1.0.3
+sigmund@1.0.1
+uglify-to-browserify@1.0.2
+ansi-color@0.2.1
+basic-auth@1.0.0
+core-util-is@1.0.2
+entities@1.0.0
+follow-redirects@0.0.3
+ms@2.0.0
+parseurl@1.3.2
+rimraf@2.2.8
+domutils@1.5.1
+getobject@0.1.0
+htmlparser2@3.8.3
+libmime@1.2.0
+component-emitter@1.1.2
+duplexer@0.1.1
+keypress@0.1.0
+mqtt@0.3.13
+oauth-sign@0.4.0
+streamsearch@0.1.2
+CSSselect@0.4.1
+grunt-legacy-log@0.1.3
+rimraf@2.6.3
+nodemailer-wellknown@0.1.10
+console-browserify@1.1.0
+date-now@0.1.4
+grunt@0.4.5
+mime@1.2.5
+findup-sync@0.1.3
 lodash@3.7.0
-lru-cache@2.7.3
-methods@1.1.0
-minimatch@1.0.0
-mkdirp@0.3.0
-mustache@0.8.2
 nodemailer@1.3.0
-nopt@3.0.1
-on-finished@2.1.0
-path-exists@2.1.0
-pify@2.3.0
 process-nextick-args@2.0.0
-qs@2.2.4
-readable-stream@2.3.6
-resolve@0.3.1
-rndm@1.1.1
 safer-buffer@2.1.2
-scmp@1.0.0
-send@0.9.2
-source-map@0.1.34
-string_decoder@0.10.31
 supertest@0.13.0
-type-is@1.5.7
-uid-safe@2.1.5
-util-deprecate@1.0.2
-vhost@3.0.2
-xml2js@0.4.19
+xml2js@0.4.4
+ee-first@1.0.5
+http-signature@0.10.1
+lodash@0.9.2
+mkdirp@0.5.0
+stringstream@0.0.6
+underscore@1.6.0
+append-field@0.1.0
+iconv-lite@0.4.4
+basic-auth-connect@1.0.0
+commander@0.6.1
+methods@0.0.1
+mz@1.3.0
+serve-static@1.6.5
+uid-safe@1.1.0
+crc@3.0.0
+delayed-stream@0.0.5
+libqp@1.1.0
+underscore@1.9.1
+aws-sign2@0.5.0
+mime-types@1.0.2
+proxy-addr@1.0.1
+serve-index@1.2.1
+through2@0.6.5
+asn1@0.1.11
+cheerio@0.17.0
+crc@3.2.1
+lru-cache@2.7.3
 xtend@4.0.1
\ No newline at end of file
diff --git a/build/data_lists/onap_pip_packages.list b/build/data_lists/onap_pip_packages.list
new file mode 100644 (file)
index 0000000..ba5cdf7
--- /dev/null
@@ -0,0 +1,12 @@
+Click==7.0
+certifi==2019.3.9
+chardet==3.0.4
+Flask==1.0.3
+idna==2.8
+itsdangerous==1.1.0
+Jinja2==2.10.1
+MarkupSafe==1.1.1
+requests==2.22.0
+setuptools==40.7.1
+urllib3==1.25.3
+Werkzeug==0.15.4
diff --git a/build/data_lists/rke_docker_images.list b/build/data_lists/rke_docker_images.list
new file mode 100644 (file)
index 0000000..75d35c7
--- /dev/null
@@ -0,0 +1,22 @@
+coredns/coredns:1.2.6
+gcr.io/kubernetes-helm/tiller:v2.12.3
+k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
+rancher/calico-cni:v3.4.0
+rancher/calico-ctl:v2.0.0
+rancher/calico-node:v3.4.0
+rancher/cluster-proportional-autoscaler:1.0.0
+rancher/coreos-etcd:v3.2.24-rancher1
+rancher/coreos-flannel:v0.10.0
+rancher/coreos-flannel:v0.10.0-rancher1
+rancher/flannel-cni:v0.3.0-rancher1
+rancher/hyperkube:v1.13.5-rancher1
+rancher/k8s-dns-dnsmasq-nanny:1.15.0
+rancher/k8s-dns-kube-dns:1.15.0
+rancher/k8s-dns-sidecar:1.15.0
+rancher/metrics-server:v0.3.1
+rancher/nginx-ingress-controller-defaultbackend:1.4-rancher1
+rancher/nginx-ingress-controller:0.21.0-rancher3
+rancher/pause:3.1
+rancher/rke-tools:v0.1.27
+weaveworks/weave-kube:2.5.0
+weaveworks/weave-npc:2.5.0
diff --git a/build/download/__init__.py b/build/download/__init__.py
new file mode 100644 (file)
index 0000000..f0efbc1
--- /dev/null
@@ -0,0 +1,22 @@
+
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#   COPYRIGHT NOTICE STARTS HERE
+
+#   Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+#   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.
+
+#   COPYRIGHT NOTICE ENDS HERE
+
diff --git a/build/download/base.py b/build/download/base.py
new file mode 100644 (file)
index 0000000..5bcd0ef
--- /dev/null
@@ -0,0 +1,114 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#   COPYRIGHT NOTICE STARTS HERE
+
+#   Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+#   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.
+
+#   COPYRIGHT NOTICE ENDS HERE
+
+
+import concurrent.futures
+import os
+import progressbar
+import prettytable
+import requests
+from distutils.spawn import find_executable
+
+progressbar.streams.wrap_stdout()
+progressbar.streams.wrap_stderr()
+
+
+def load_list(item_list):
+    """
+    Parse list with items to be downloaded.
+    :param item_list: File with list of items (1 line per item)
+    :return: set of items from file
+    """
+    with open(item_list, 'r') as f:
+        return {item for item in (line.strip() for line in f) if item}
+
+
+def init_progress(items_name):
+    progress_widgets = ['Downloading {}: '.format(items_name),
+                        progressbar.Bar(), ' ',
+                        progressbar.Percentage(), ' ',
+                        '(', progressbar.SimpleProgress(), ')']
+
+    progress = progressbar.ProgressBar(widgets=progress_widgets,
+                                       poll_rate=1.0,
+                                       redirect_stdout=True)
+    return progress
+
+
+def start_progress(progress, target_count, skipping, log):
+    log_skipping(skipping, log)
+    log.info("Initializing download. Takes a while.")
+
+    progress.max_value = target_count
+    progress.start()
+    progress.update(len(skipping))
+
+
+def log_skipping(skipping_iterable, logger):
+    for skipped in skipping_iterable:
+        logger.info('Skipping: {}'.format(skipped))
+
+
+def run_concurrent(workers, progress, fn, iterable, *args):
+    with concurrent.futures.ThreadPoolExecutor(max_workers=workers) as executor:
+        futures = [executor.submit(fn, item, *args) for item in iterable]
+        error_count = 0
+        for future in concurrent.futures.as_completed(futures):
+            error = future.exception()
+            if error:
+                error_count += 1
+                progress.update()
+            else:
+                progress.update(progress.value +1)
+    return error_count
+
+
+def finish_progress(progress, error_count, log):
+    progress.finish(dirty=error_count > 0)
+    log.info('Download ended. Elapsed time {}'.format(progress.data()['time_elapsed']))
+
+def check_tool(name):
+    return find_executable(name)
+
+def save_to_file(dst, content):
+    """
+    Save downloaded byte content to file
+    :param dst: path to file to save content to
+    :param content: byte content of file
+    """
+    dst_dir = os.path.dirname(dst)
+    if not os.path.exists(dst_dir):
+        os.makedirs(dst_dir)
+    with open(dst, 'wb') as dst_file:
+        dst_file.write(content)
+
+def make_get_request(url):
+    req = requests.get(url)
+    req.raise_for_status()
+    return req
+
+def simple_check_table(target, missing):
+    table = prettytable.PrettyTable(['Name', 'Downloaded'])
+    table.align['Name'] = 'l'
+    for item in sorted(target):
+        table.add_row([item, item not in missing])
+    return table
+
diff --git a/build/download/docker_images.py b/build/download/docker_images.py
new file mode 100755 (executable)
index 0000000..e4e742b
--- /dev/null
@@ -0,0 +1,268 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#   COPYRIGHT NOTICE STARTS HERE
+
+#   Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+#   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.
+
+#   COPYRIGHT NOTICE ENDS HERE
+
+
+import argparse
+import concurrent.futures
+import docker
+import itertools
+import json
+import logging
+import os
+import prettytable
+import sys
+import threading
+from retrying import retry
+
+import base
+
+log = logging.getLogger(__name__)
+
+
+def image_filename(image_name):
+    """
+    Get a name of a file where image will be saved.
+    :param image_name: Name of the image from list
+    :return: Filename of the image
+    """
+    return '{}.tar'.format(image_name.replace(':', '_').replace('/', '_'))
+
+
+def image_registry_name(image_name):
+    """
+    Get the name as shown in local registry. Since some strings are not part of name
+    when using default registry e.g. docker.io
+    :param image_name: name of the image from the list
+    :return: name of the image as it is shown by docker
+    """
+    name = image_name
+
+    if name.startswith('docker.io/'):
+        name = name.replace('docker.io/', '')
+
+    if name.startswith('library/'):
+        name = name.replace('library/', '')
+
+    if ':' not in name.rsplit('/')[-1]:
+        name = '{}:latest'.format(name)
+
+    return name
+
+
+def not_pulled_images(docker_client, target_list):
+    """
+    Get set of images that are not pulled on local system.
+    :param docker_client: docker.client.DockerClient
+    :param target_list: list of images to look for
+    :return: (set) images that are not present on local system
+    """
+    pulled = set(itertools.chain.from_iterable((image.tags for image
+                                                in docker_client.images.list())))
+    return {image for image in target_list if image_registry_name(image) not in pulled}
+
+
+def not_saved(target_images, target_dir):
+    """
+    Get set of images that are not saved in target directory
+    :param target_images: List of images to check for
+    :param target_dir: Directory where those images should be
+    :return: (set) Images that are missing from target directory
+    """
+    return set(image for image in target_images
+               if not os.path.isfile('/'.join((target_dir, image_filename(image)))))
+
+
+def missing(docker_client, target_list, save, target_dir):
+    """
+    Get dictionary of images not present locally.
+    :param docker_client: docker.client.DockerClient for communication with docker
+    :param target_list: list of desired images
+    :param save: (boolean) check for saved images
+    :param target_dir: target directory for saved images
+    :return: Dictionary of missing images ('not_pulled', 'not_saved')
+    """
+    return {'not_pulled': not_pulled_images(docker_client, target_list),
+            'not_saved': not_saved(target_list, target_dir) if save else set()}
+
+
+def merge_dict_sets(dictionary):
+    return set.union(*dictionary.values())
+
+
+def check_table(check_list, missing, save):
+    table = prettytable.PrettyTable(['Image', 'Pulled', 'Saved'])
+    table.align['Image'] = 'l'
+    for image in sorted(check_list):
+        pulled = not image in missing['not_pulled']
+        download_state = [pulled]
+        if save:
+            # if not pulled save anyway
+            download_state.append(pulled and not image in missing['not_saved'])
+        else:
+            download_state.append('Not checked')
+        table.add_row([image] + download_state)
+    return table
+
+
+@retry(stop_max_attempt_number=5, wait_fixed=5000)
+def pull_image(docker_client, image_name):
+    """
+    Pull docker image.
+    :param docker_client: docker.client.DockerClient for communication with docker
+    :param image_name: name of the image to be pulled
+    :return: pulled image (image object)
+    :raises docker.errors.APIError: after unsuccessful retries
+    """
+    if ':' not in image_name.rsplit('/')[-1]:
+        image_name = '{}:latest'.format(image_name)
+    try:
+        image = docker_client.images.pull(image_name)
+        log.info('Image {} pulled'.format(image_name))
+        return image
+    except docker.errors.APIError as err:
+        log.warning('Failed: {}: {}. Retrying...'.format(image_name, err))
+        raise err
+
+
+def save_image(image_name, image, output_dir, docker_client=None):
+    """
+    Save image to tar.
+    :param output_dir: path to destination directory
+    :param image: image object from pull_image function
+    :param image_name: name of the image from list
+    :param docker_client: docker.client.DockerClient for communication with docker
+    :return: None
+    """
+    dst = '{}/{}'.format(output_dir, image_filename(image_name))
+    if not os.path.exists(output_dir):
+        os.makedirs(output_dir)
+    if not isinstance(image, docker.models.images.Image):
+        image = docker_client.images.get(image_name)
+    try:
+        with open(dst, 'wb') as f:
+            for chunk in image.save(named=image_registry_name(image_name)):
+                f.write(chunk)
+        log.info('Image {} saved as {}'.format(image_name, dst))
+    except Exception as err:
+        os.remove(dst)
+        raise err
+
+
+def download_docker_image(image, save, output_dir, docker_client):
+    """ Pull and save docker image from specified docker registry
+    :param docker_client: docker.client.DockerClient for communication with docker
+    :param image: image to be downloaded
+    :param save: boolean - save image to disk or skip saving
+    :param output_dir: directory where image will be saved
+    :return: None
+    """
+    log.info('Downloading image: {}'.format(image))
+    try:
+        pulled_image = pull_image(docker_client, image)
+        if save:
+            save_image(image, pulled_image, output_dir)
+    except Exception as err:
+        log.error('Error downloading {}: {}'.format(image, err))
+        raise err
+
+
+def download(image_list, save, output_dir, check_mode, progress, workers=3):
+    """
+    Download images from list
+    :param image_list: list of images to be downloaded
+    :param save: whether images should be saved to disk
+    :param output_dir: directory where images will be saved
+    :param check_mode: only check for missing images. No download
+    :param progress_bar: progressbar.ProgressBar to show how far download is
+    :return: None
+    """
+    try:
+        docker_client = docker.client.DockerClient(version='auto')
+    except docker.errors.DockerException as err:
+        log.error(err)
+        log.error('Error creating docker client. Check if is docker installed and running'
+                  ' or if you have right permissions.')
+        raise err
+
+    target_images = base.load_list(image_list)
+    missing_images = missing(docker_client, target_images, save, output_dir)
+
+    if check_mode:
+        log.info(check_table(target_images, missing_images, save))
+        return
+
+    skipping = target_images - merge_dict_sets(missing_images)
+
+    base.start_progress(progress, len(target_images), skipping, log)
+
+    # if pulling and save is True. Save every pulled image to assure parity
+    error_count = base.run_concurrent(workers, progress, download_docker_image, missing_images['not_pulled'],
+                                      save, output_dir, docker_client)
+    # only save those that are pulled already but not saved
+    error_count += base.run_concurrent(workers, progress, save_image,
+                                       missing_images['not_saved'] - missing_images['not_pulled'],
+                                       None, output_dir, docker_client)
+
+    if error_count > 0:
+        log.error('{} images were not downloaded'.format(error_count))
+        missing_images = missing(docker_client, target_images, save, output_dir)
+        log.info(check_table(merge_dict_sets(missing_images), missing_images, save))
+
+    base.finish_progress(progress, error_count, log)
+
+    return error_count
+
+
+def run_cli():
+    parser = argparse.ArgumentParser(description='Download docker images from list')
+    parser.add_argument('image_list', metavar='image-list',
+                        help='File with list of images to download.')
+    parser.add_argument('--save', '-s', action='store_true', default=False,
+                        help='Save images (without it only pull is executed)')
+    parser.add_argument('--output-dir', '-o', default=os.getcwd(),
+                        help='Download destination')
+    parser.add_argument('--check', '-c', action='store_true', default=False,
+                        help='Check what is missing. No download.'
+                             'Use with combination with -s to check saved images as well.')
+    parser.add_argument('--debug', action='store_true', default=False,
+                        help='Turn on debug output')
+    parser.add_argument('--workers', type=int, default=3,
+                        help='Set maximum workers for parallel download (default: 3)')
+
+    args = parser.parse_args()
+
+    if args.debug:
+        logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
+    else:
+        logging.basicConfig(stream=sys.stdout, level=logging.INFO, format='%(message)s')
+
+    progress = base.init_progress('Docker images') if not args.check else None
+    try:
+        sys.exit(download(args.image_list, args.save, args.output_dir, args.check,
+                 progress, args.workers))
+    except docker.errors.DockerException:
+        log.error('Irrecoverable error detected.')
+        sys.exit(1)
+
+
+if __name__ == '__main__':
+    run_cli()
+
diff --git a/build/download/git_repos.py b/build/download/git_repos.py
new file mode 100755 (executable)
index 0000000..e388e94
--- /dev/null
@@ -0,0 +1,93 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#   COPYRIGHT NOTICE STARTS HERE
+
+#   Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+#   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.
+
+#   COPYRIGHT NOTICE ENDS HEREE
+
+import argparse
+import subprocess
+import logging
+import sys
+import os
+from retrying import retry
+
+import base
+
+log = logging.getLogger(name=__name__)
+
+@retry(stop_max_attempt_number=5, wait_fixed=5000)
+def clone_repo(dst, repo, branch=None):
+    if branch:
+        command = 'git clone -b {} --single-branch https://{} --bare {}'.format(branch, repo, dst)
+    else:
+        command = 'git clone https://{} --bare {}'.format(repo, dst)
+    log.info('Running: {}'.format(command))
+    log.info(subprocess.check_output(command.split(), stderr=subprocess.STDOUT).decode())
+    log.info('Downloaded: {}'.format(repo))
+
+
+def download(git_list, dst_dir, progress):
+    if not base.check_tool('git'):
+        log.error('ERROR: git is not installed')
+        progress.finish(dirty=True)
+        return 1
+
+    git_set = {tuple(item.split()) for item in base.load_list(git_list)
+               if not item.startswith('#')}
+
+    error_count = 0
+
+    base.start_progress(progress, len(git_set), [], log)
+
+    for repo in git_set:
+        dst = '{}/{}'.format(dst_dir, repo[0])
+        if os.path.isdir(dst):
+            log.warning('Directory {} already exists. Repo probably present'.format(dst))
+            progress.update(progress.value + 1)
+            continue
+        try:
+            clone_repo(dst, *repo)
+            progress.update(progress.value + 1)
+        except subprocess.CalledProcessError as err:
+            log.error(err.output.decode())
+            error_count += 1
+
+    base.finish_progress(progress, error_count, log)
+    if error_count > 0:
+        log.error('{} were not downloaded. Check logs for details'.format(error_count))
+    return error_count
+
+
+def run_cli():
+    parser = argparse.ArgumentParser(description='Download git repositories from list')
+    parser.add_argument('git_list', metavar='git-list',
+                        help='File with list of npm packages to download.')
+    parser.add_argument('--output-dir', '-o', default=os.getcwd(),
+                        help='Download destination')
+
+    args = parser.parse_args()
+
+    logging.basicConfig(stream=sys.stdout, level=logging.INFO, format='%(message)s')
+
+    progress = base.init_progress('git repositories')
+
+    sys.exit(download(args.git_list, args.output_dir, progress))
+
+
+if __name__ == '__main__':
+    run_cli()
diff --git a/build/download/http_files.py b/build/download/http_files.py
new file mode 100755 (executable)
index 0000000..f5b1e59
--- /dev/null
@@ -0,0 +1,131 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#   COPYRIGHT NOTICE STARTS HERE
+
+#   Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+#   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.
+
+#   COPYRIGHT NOTICE ENDS HERE
+
+
+import argparse
+import concurrent.futures
+import logging
+import os
+import sys
+from retrying import retry
+
+import base
+
+log = logging.getLogger(__name__)
+
+@retry(stop_max_attempt_number=5, wait_fixed=2000)
+def get_file(file_uri):
+    """
+    Get file from the Internet
+    :param file_uri: address of file
+    :return: byte content of file
+    """
+    if not file_uri.startswith('http'):
+        file_uri = 'http://' + file_uri
+    file_req = base.make_get_request(file_uri)
+    return file_req.content
+
+
+def download_file(file_uri, dst_dir):
+    """
+    Download http file and save it to file.
+    :param file_uri: http address of file
+    :param dst_dir: directory where file will be saved
+    """
+    log.info('Downloading: {}'.format(file_uri))
+    dst_path = '{}/{}'.format(dst_dir, file_uri.rsplit('//')[-1])
+    try:
+        file_content = get_file(file_uri)
+        base.save_to_file(dst_path, file_content)
+    except Exception as err:
+        if os.path.isfile(dst_path):
+            os.remove(dst_path)
+        log.error('Error downloading: {}: {}'.format(file_uri, err))
+        raise err
+    log.info('Downloaded: {}'.format(file_uri))
+
+
+def missing(file_set, dst_dir):
+    return {file for file in file_set if not os.path.isfile('{}/{}'.format(dst_dir, file))}
+
+
+def download(data_list, dst_dir, check, progress, workers=None):
+    """
+    Download files specified in data list
+    :param data_list: path to file with list
+    :param dst_dir: destination directory
+    :param check: boolean check mode
+    :param progress: progressbar.ProgressBar to monitor progress
+    :param workers: workers to use for parallel execution
+    :return: 0 if success else number of errors
+    """
+    file_set = base.load_list(data_list)
+    missing_files = missing(file_set, dst_dir)
+    target_count = len(file_set)
+
+    if check:
+        log.info(base.simple_check_table(file_set, missing_files))
+        return 0
+
+    skipping = file_set - missing_files
+
+    base.start_progress(progress, len(file_set), skipping, log)
+
+    error_count = base.run_concurrent(workers, progress, download_file, missing_files, dst_dir)
+
+    if error_count > 0:
+        log.error('{} files were not downloaded. Check log for specific failures.'.format(error_count))
+
+    base.finish_progress(progress, error_count, log)
+
+    return error_count
+
+def run_cli():
+    """
+    Run as cli tool
+    """
+    parser = argparse.ArgumentParser(description='Download http files from list')
+    parser.add_argument('file_list', metavar='file-list',
+                        help='File with list of http files to download')
+    parser.add_argument('--output-dir', '-o', default=os.getcwd(),
+                        help='Destination directory for saving')
+    parser.add_argument('--check', '-c', action='store_true', default=False,
+                        help='Check mode')
+    parser.add_argument('--debug', action='store_true', default=False,
+                        help='Turn on debug output')
+    parser.add_argument('--workers', type=int, default=None,
+                        help='Set maximum workers for parallel download (default: cores * 5)')
+
+    args = parser.parse_args()
+
+    if args.debug:
+        logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
+    else:
+        logging.basicConfig(stream=sys.stdout, level=logging.INFO, format='%(message)s')
+
+    progress = base.init_progress('http files') if not args.check else None
+
+    sys.exit(download(args.file_list, args.output_dir, args.check, progress, args.workers))
+
+
+if __name__ == '__main__':
+    run_cli()
+
diff --git a/build/download/npm_packages.py b/build/download/npm_packages.py
new file mode 100755 (executable)
index 0000000..c174e2c
--- /dev/null
@@ -0,0 +1,121 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#   COPYRIGHT NOTICE STARTS HERE
+
+#   Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+#   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.
+
+#   COPYRIGHT NOTICE ENDS HERE
+
+import argparse
+import concurrent.futures
+import hashlib
+import logging
+import os
+import sys
+from retrying import retry
+
+import base
+
+log = logging.getLogger(name=__name__)
+
+
+@retry(stop_max_attempt_number=5, wait_fixed=5000)
+def get_npm(registry, npm_name, npm_version):
+    npm_url = '{}/{}/{}'.format(registry, npm_name, npm_version)
+    npm_req = base.make_get_request(npm_url)
+    npm_json = npm_req.json()
+    tarball_url = npm_json['dist']['tarball']
+    shasum = npm_json['dist']['shasum']
+    tarball_req = base.make_get_request(tarball_url)
+    tarball = tarball_req.content
+    if hashlib.sha1(tarball).hexdigest() == shasum:
+        return tarball
+    else:
+        raise Exception('{}@{}: Wrong checksum. Retrying...'.format(npm_name, npm_version))
+
+
+def download_npm(npm, registry, dst_dir):
+    log.info('Downloading: {}'.format(npm))
+    npm_name, npm_version = npm.split('@')
+    dst_path = '{}/{}-{}.tgz'.format(dst_dir, npm_name, npm_version)
+    try:
+        tarball = get_npm(registry, *npm.split('@'))
+        base.save_to_file(dst_path, tarball)
+    except Exception as err:
+        if os.path.isfile(dst_path):
+            os.remove(dst_path)
+        log.error('Failed: {}: {}'.format(npm, err))
+        raise err
+    log.info('Downloaded: {}'.format(npm))
+
+
+def missing(npm_set, dst_dir):
+    return {npm for npm in npm_set
+            if not os.path.isfile('{}/{}-{}.tgz'.format(dst_dir, *npm.split('@')))}
+
+
+def download(npm_list, registry, dst_dir, check_mode, progress=None, workers=None):
+    npm_set = base.load_list(npm_list)
+    target_count = len(npm_set)
+    missing_npms = missing(npm_set, dst_dir)
+
+    if check_mode:
+        log.info(base.simple_check_table(npm_set, missing_npms))
+        return 0
+
+    skipping = npm_set - missing_npms
+
+    base.start_progress(progress, len(npm_set), skipping, log)
+    error_count = base.run_concurrent(workers, progress, download_npm, missing_npms, registry, dst_dir)
+
+    if error_count > 0:
+        log.error('{} packages were not downloaded. Check log for specific failures.'.format(error_count))
+
+    base.finish_progress(progress, error_count, log)
+
+    return error_count
+
+
+def run_cli():
+    parser = argparse.ArgumentParser(description='Download npm packages from list')
+    parser.add_argument('npm_list', metavar='npm-list',
+                        help='File with list of npm packages to download.')
+    parser.add_argument('--registry', '-r', default='https://registry.npmjs.org',
+                        help='Download destination')
+    parser.add_argument('--output-dir', '-o', default=os.getcwd(),
+                        help='Download destination')
+    parser.add_argument('--check', '-c', action='store_true', default=False,
+                        help='Check what is missing. No download.')
+    parser.add_argument('--debug', action='store_true', default=False,
+                        help='Turn on debug output')
+    parser.add_argument('--workers', type=int, default=None,
+                        help='Set maximum workers for parallel download (default: cores * 5)')
+
+    args = parser.parse_args()
+
+    if args.debug:
+        logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
+    else:
+        logging.basicConfig(stream=sys.stdout, level=logging.INFO, format='%(message)s')
+
+    progress = base.init_progress('npm packages') if not args.check else None
+    sys.exit(download(args.npm_list, args.registry, args.output_dir, args.check, progress,
+                      args.workers))
+
+
+if __name__ == '__main__':
+    run_cli()
+
diff --git a/build/download/requirements.txt b/build/download/requirements.txt
new file mode 100644 (file)
index 0000000..875f0c6
--- /dev/null
@@ -0,0 +1,5 @@
+docker==3.7.2
+futures==3.2.0; python_version == '2.7'
+prettytable==0.7.2
+progressbar2==3.39.3
+retrying==1.3.3
diff --git a/build/download/rpm_packages.py b/build/download/rpm_packages.py
new file mode 100755 (executable)
index 0000000..7f9700a
--- /dev/null
@@ -0,0 +1,66 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#   COPYRIGHT NOTICE STARTS HERE
+
+#   Copyright 2019 © Samsung Electronics Co., Ltd.
+#
+#   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.
+
+#   COPYRIGHT NOTICE ENDS HERE
+
+import argparse
+import subprocess
+import logging
+import sys
+import os
+
+import base
+
+log = logging.getLogger(name=__name__)
+
+
+def download(rpm_list, dst_dir):
+    if not base.check_tool('yumdownloader'):
+        log.error('ERROR: yumdownloader is not installed')
+        return 1
+
+    rpm_set = base.load_list(rpm_list)
+
+    command = 'yumdownloader --destdir={} {}'.format(dst_dir, ' '.join(rpm_set))
+    log.info('Running command: {}'.format(command))
+    try:
+        subprocess.check_call(command.split())
+        log.info('Downloaded')
+    except subprocess.CalledProcessError as err:
+        log.error(err.output)
+        return err.returncode
+
+
+
+def run_cli():
+    parser = argparse.ArgumentParser(description='Download rpm packages from list')
+    parser.add_argument('rpm_list', metavar='rpm-list',
+                        help='File with list of npm packages to download.')
+    parser.add_argument('--output-dir', '-o', default=os.getcwd(),
+                        help='Download destination')
+
+    args = parser.parse_args()
+
+    logging.basicConfig(stream=sys.stdout, level=logging.INFO, format='%(message)s')
+
+    sys.exit(download(args.rpm_list, args.output_dir))
+
+
+if __name__ == '__main__':
+    run_cli()
index c558558..79d7a01 100755 (executable)
@@ -37,7 +37,7 @@ C_='\033[0m'            #Color off
 usage () {
     echo "Usage:"
     echo -e "./$(basename $0) <helm charts repo> <commit/tag/branch> <patchfile> <target_dir>\n"
-    echo "Example: ./$(basename $0) https://gerrit.onap.org/r/oom 3.0.2-ONAP /root/offline-installer/patches/casablanca.patch /root/offline-installer/ansible/application/helm_charts"
+    echo "Example: ./$(basename $0) https://gerrit.onap.org/r/oom master /root/offline-installer/patches/onap.patch /root/offline-installer/ansible/application/helm_charts"
 }
 
 if [ "$#" -ne 4 ]; then
index 7d6a1b8..d74eac0 100644 (file)
@@ -54,7 +54,7 @@ HELM_CHARTS_DIR=/tmp/oom-clone/kubernetes
 #)
 APP_CONFIGURATION=(
     /tmp/offline-installer/config/application_configuration.yml
-    /tmp/offline-installer/patches/onap-casablanca-patch-role
+    /tmp/offline-installer/patches/onap-patch-role
 )
 
 # APP_BINARY_RESOURCES_DIR is variable to directory containing directories and files for offline
index d897058..2e397f4 100755 (executable)
@@ -7,7 +7,7 @@
 #
 resources_dir: /data
 app_name: onap
-resources_filename: "offline-{{ app_name }}-3.0.2.resources.tar"
+resources_filename: "offline-{{ app_name }}-4.0.0.resources.tar"
 app_data_path: "/opt/{{ app_name }}"
 certificates:
   organization_name: Samsung
@@ -18,4 +18,4 @@ app_helm_build_targets:
   - all
   - onap
 app_helm_chart_name: onap
-application_pre_install_role: "onap-casablanca-patch-role"
+application_pre_install_role: "onap-patch-role"
index 8ae08d8..bb0e4cc 100644 (file)
@@ -273,7 +273,7 @@ For example:
 
 ::
 
-  ./build/fetch_and_patch_charts.sh https://gerrit.onap.org/r/oom 3.0.2-ONAP /tmp/onap-offline/patches/casablanca.patch /tmp/oom-clone
+  ./build/fetch_and_patch_charts.sh https://gerrit.onap.org/r/oom master /tmp/onap-offline/patches/onap.patch /tmp/oom-clone
 
 Part 5. Creating offline installation package
 ---------------------------------------------
@@ -298,8 +298,8 @@ Example values below are setup according to steps done in this guide to package
 |                                       | Example::                                                                    |
 |                                       |                                                                              |
 |                                       |  APP_CONFIGURATION=(                                                         |
-|                                       |     /tmp/onap-offline/config/application_configuration.yml              |
-|                                       |     /tmp/onap-offline/patches/onap-casablanca-patch-role                |
+|                                       |     /tmp/onap-offline/config/application_configuration.yml                   |
+|                                       |     /tmp/onap-offline/patches/onap-patch-role                                |
 |                                       |  )                                                                           |
 |                                       |                                                                              |
 +---------------------------------------+------------------------------------------------------------------------------+
index 07255b7..7849047 100644 (file)
@@ -174,6 +174,15 @@ We need to setup the ``'hosts.yml'`` first, the template looks like this::
               #ip of the node that it uses for communication with k8s cluster.
               cluster_ip: 10.8.8.19
 
+        # This is a group of hosts that are to be used as kubernetes control plane nodes.
+        # This means they host kubernetes api server, controller manager and scheduler.
+        # This example uses infra for this purpose, however note that any
+        # other host could be used including kubernetes nodes.
+        # cluster_ip needs to be set for hosts used as control planes.
+        kubernetes-control-plane:
+          hosts:
+            infrastructure-server
+
         nfs-server:
           hosts:
             kubernetes-node-1
@@ -233,6 +242,18 @@ After all the changes, the ``'hosts.yml'`` should look similar to this::
               #ip of the node that it uses for communication with k8s cluster.
               cluster_ip: 10.8.8.103
 
+        # This is a group of hosts that are to be used as kubernetes control plane nodes.
+        # This means they host kubernetes api server, controller manager and scheduler.
+        # This example uses infra for this purpose, however note that any
+        # other host could be used including kubernetes nodes.
+        # cluster_ip needs to be set for hosts used as control planes.
+        kubernetes-control-plane:
+          hosts:
+            infrastructure-server
+              ansible_host: 10.8.8.100
+              #IP used for communication between infra and kubernetes nodes, must be specified.
+              cluster_ip: 10.8.8.100
+
         nfs-server:
           hosts:
             kubernetes-node-1
@@ -378,7 +399,7 @@ This will take a while so be patient.
 
 - ``upload_resources.yml``
 - ``infrastructure.yml``
-- ``rancher_kubernetes.yml``
+- ``rke.yml``
 - ``application.yml``
 
 ----
diff --git a/patches/casablanca.patch b/patches/casablanca.patch
deleted file mode 100644 (file)
index 7f9d206..0000000
+++ /dev/null
@@ -1,428 +0,0 @@
-From 10656e7f8089e3c3a718a947fd10b1a728eeb8c6 Mon Sep 17 00:00:00 2001
-From: Milan Verespej <m.verespej@partner.samsung.com>
-Date: Wed, 6 Feb 2019 10:24:09 +0100
-Subject: [PATCH] Casablanca 3.0.0 offline patch
-
----
- .../templates/deployment.yaml                 | 12 ++-
- .../common/common/templates/_cacert.tpl       | 80 +++++++++++++++++++
- .../dgbuilder/templates/deployment.yaml       | 10 ++-
- .../templates/deployment.yaml                 |  7 ++
- kubernetes/onap/templates/configmap.yaml      | 33 ++++++++
- .../charts/brmsgw/templates/deployment.yaml   |  5 ++
- .../charts/drools/templates/statefulset.yaml  |  8 ++
- .../charts/pdp/templates/statefulset.yaml     |  5 ++
- .../policy-common/templates/_keystore.tpl     | 61 ++++++++++++++
- .../templates/deployment.yaml                 | 12 ++-
- .../sdnc-portal/templates/deployment.yaml     |  9 ++-
- 11 files changed, 234 insertions(+), 8 deletions(-)
- create mode 100644 kubernetes/common/common/templates/_cacert.tpl
- create mode 100644 kubernetes/onap/templates/configmap.yaml
- create mode 100644 kubernetes/policy/charts/policy-common/templates/_keystore.tpl
-
-diff --git a/kubernetes/appc/charts/appc-ansible-server/templates/deployment.yaml b/kubernetes/appc/charts/appc-ansible-server/templates/deployment.yaml
-index a7daa051..b7cdd9e6 100644
---- a/kubernetes/appc/charts/appc-ansible-server/templates/deployment.yaml
-+++ b/kubernetes/appc/charts/appc-ansible-server/templates/deployment.yaml
-@@ -47,8 +47,16 @@ spec:
-         name: {{ include "common.name" . }}-readiness
-       containers:
-         - name: {{ include "common.name" . }}
--          command: ["/bin/bash"]
--          args: ["-c", "cd /opt/onap/ccsdk && ./startAnsibleServer.sh"]
-+          command:
-+            - /bin/bash
-+            - -c
-+            -  >
-+               pip install -i http://nexus3.onap.org/repository/pypi-private/simple/
-+               --trusted-host nexus3.onap.org
-+               PyMySQL cherrypy requests;
-+               curl -s repo.infra-server/ubuntu/xenial/onap.list > /etc/apt/sources.list;
-+               apt-get update;
-+               cd /opt/onap/ccsdk && ./startAnsibleServer.sh
-           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-           ports:
-diff --git a/kubernetes/common/common/templates/_cacert.tpl b/kubernetes/common/common/templates/_cacert.tpl
-new file mode 100644
-index 00000000..4fb80964
---- /dev/null
-+++ b/kubernetes/common/common/templates/_cacert.tpl
-@@ -0,0 +1,80 @@
-+#   COPYRIGHT NOTICE STARTS HERE
-+#
-+#   Copyright 2018 © Samsung Electronics Co., Ltd.
-+#
-+#   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.
-+#
-+#   COPYRIGHT NOTICE ENDS HERE
-+
-+#This template adds volume for access to ca certificate.
-+#Template is ignored when cacert not set.
-+{{- define "common.cacert-volume" }}
-+{{- if .Values.global.cacert }}
-+- name: cacert
-+  configMap:
-+    name: {{ include "common.namespace" . }}-root-ca-cert
-+{{- end }}
-+{{- end }}
-+
-+#This template mounts the CA certificate in an ubuntu compatible way.
-+#It is mounted to /usr/local/share/ca-certificates/cacert.crt.
-+#Template is ignored if cacert not set.
-+{{- define "common.cacert-mount-ubuntu" }}
-+{{- if .Values.global.cacert }}
-+- mountPath: "/usr/local/share/ca-certificates/cacert.crt"
-+  name: cacert
-+  subPath: certificate
-+{{- end }}
-+{{- end }}
-+
-+#This template creates an empty volume used to store system certificates (includes java keystore).
-+{{- define "common.system-ca-store-volume" }}
-+{{- if .Values.global.cacert }}
-+- name: system-ca-store
-+  emptyDir:
-+{{- end }}
-+{{- end }}
-+
-+#This template mounts system ca store volume to /etc/ssl/certs (ubuntu specific).
-+#Template is ignored in case cacert is not given.
-+{{- define "common.system-ca-store-mount-ubuntu" }}
-+{{- if .Values.global.cacert }}
-+- mountPath: "/etc/ssl/certs"
-+  name: system-ca-store
-+{{- end }}
-+{{- end }}
-+
-+#This template is a template for an init container.
-+#This init container can be declared to update system's ca store for ubuntu containers.
-+#It runs as root using the same image as the main one.
-+#It expects /etc/ssl/certs to be mounted as a volume.
-+#It has to be shared with the main container.
-+#This template is ignored if cacert is not given as helm value.
-+{{- define "common.update-system-ca-store-ubuntu" }}
-+{{- if .Values.global.cacert }}
-+- command:
-+  - "/bin/bash"
-+  - "-c"
-+  - |
-+      mkdir -p /etc/ssl/certs/java
-+      update-ca-certificates
-+  name: update-system-ca-store
-+  imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-+  image: {{ include "common.repository" . }}/{{ .Values.image }}
-+  securityContext:
-+    runAsUser: 0
-+  volumeMounts:
-+{{ include "common.cacert-mount-ubuntu" . | indent 2 }}
-+{{ include "common.system-ca-store-mount-ubuntu" . | indent 2 }}
-+{{- end }}
-+{{- end }}
-diff --git a/kubernetes/common/dgbuilder/templates/deployment.yaml b/kubernetes/common/dgbuilder/templates/deployment.yaml
-index 353c2314..2cb02d62 100644
---- a/kubernetes/common/dgbuilder/templates/deployment.yaml
-+++ b/kubernetes/common/dgbuilder/templates/deployment.yaml
-@@ -49,8 +49,14 @@ spec:
-         - name: {{ include "common.name" . }}
-           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
--          command: ["/bin/bash"]
--          args: ["-c", "cd /opt/onap/ccsdk/dgbuilder/ && ./start.sh sdnc1.0 && wait"]
-+          command:
-+          - /bin/bash
-+          - -c
-+          - >
-+            HOSTS_FILE_RECORD >> /etc/hosts;
-+            NPM_REGISTRY_RECORD;
-+            cd /opt/onap/ccsdk/dgbuilder/;
-+            ./start.sh sdnc1.0 && wait
-           ports:
-           - containerPort: {{ .Values.service.internalPort }}
-           readinessProbe:
-diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/deployment.yaml b/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/deployment.yaml
-index 79bd8962..8e807a9b 100644
---- a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/deployment.yaml
-+++ b/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/deployment.yaml
-@@ -70,6 +70,8 @@ spec:
-           - mountPath: /etc/localtime
-             name: localtime
-             readOnly: true
-+          - mountPath: /etc/pki/ca-trust/source/anchors
-+            name: root-ca
-           securityContext:
-             privileged: True
-           lifecycle:
-@@ -82,6 +84,8 @@ spec:
-                   set -ex
-                   mkdir -p /var/run/secrets/kubernetes.io/
-                   ln -s /secret /var/run/secrets/kubernetes.io/serviceaccount
-+                  echo -e '\nREQUESTS_CA_BUNDLE="/etc/ssl/certs/ca-bundle.crt"' >> /etc/sysconfig/cloudify-restservice
-+                  update-ca-trust extract
-       volumes:
-         - name: {{ include "common.fullname" . }}-config
-           configMap:
-@@ -95,5 +99,8 @@ spec:
-         - name: localtime
-           hostPath:
-             path: /etc/localtime
-+        - name: root-ca
-+          hostPath:
-+            path: /etc/pki/ca-trust/source/anchors
-       imagePullSecrets:
-       - name: "{{ include "common.namespace" . }}-docker-registry-key"
-diff --git a/kubernetes/onap/templates/configmap.yaml b/kubernetes/onap/templates/configmap.yaml
-new file mode 100644
-index 00000000..b1804a36
---- /dev/null
-+++ b/kubernetes/onap/templates/configmap.yaml
-@@ -0,0 +1,33 @@
-+#   COPYRIGHT NOTICE STARTS HERE
-+#
-+#   Copyright 2018 © Samsung Electronics Co., Ltd.
-+#
-+#   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.
-+#
-+#   COPYRIGHT NOTICE ENDS HERE
-+
-+{{ if .Values.global.cacert -}}
-+apiVersion: v1
-+kind: ConfigMap
-+metadata:
-+  name: {{ include "common.namespace" . }}-root-ca-cert
-+  namespace: {{ include "common.namespace" . }}
-+  labels:
-+    app: {{ include "common.name" . }}
-+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-+    release: {{ .Release.Name }}
-+    heritage: {{ .Release.Service }}
-+data:
-+  certificate: |
-+{{ .Values.global.cacert | indent 4 }}
-+{{- end }}
-diff --git a/kubernetes/policy/charts/brmsgw/templates/deployment.yaml b/kubernetes/policy/charts/brmsgw/templates/deployment.yaml
-index 7535d541..bbd63c13 100644
---- a/kubernetes/policy/charts/brmsgw/templates/deployment.yaml
-+++ b/kubernetes/policy/charts/brmsgw/templates/deployment.yaml
-@@ -46,6 +46,7 @@ spec:
-         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-         name: {{ include "common.name" . }}-readiness
-+{{ include "common.update-system-ca-store-ubuntu" . | indent 6 }}
-       containers:
-       - command:
-         - /bin/bash
-@@ -69,6 +70,8 @@ spec:
-           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-           periodSeconds: {{ .Values.readiness.periodSeconds }}
-         volumeMounts:
-+{{ include "common.cacert-mount-ubuntu" . | indent 8 }}
-+{{ include "common.system-ca-store-mount-ubuntu" . | indent 8 }}
-         - mountPath: /etc/localtime
-           name: localtime
-           readOnly: true
-@@ -95,6 +98,8 @@ spec:
- {{ toYaml .Values.affinity | indent 10 }}
-       {{- end }}
-       volumes:
-+{{ include "common.cacert-volume" . | indent 8 }}
-+{{ include "common.system-ca-store-volume" . | indent 8 }}
-         - name: localtime
-           hostPath:
-             path: /etc/localtime
-diff --git a/kubernetes/policy/charts/drools/templates/statefulset.yaml b/kubernetes/policy/charts/drools/templates/statefulset.yaml
-index 6564e798..53c8b600 100644
---- a/kubernetes/policy/charts/drools/templates/statefulset.yaml
-+++ b/kubernetes/policy/charts/drools/templates/statefulset.yaml
-@@ -52,6 +52,8 @@ spec:
-         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-         name: {{ include "common.name" . }}-readiness
-+{{ include "common.update-system-ca-store-ubuntu" . | indent 6 }}
-+{{ include "policy.update-policy-truststore" . | indent 6 }}
-       containers:
-         - name: {{ include "common.name" . }}
-           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-@@ -79,6 +81,9 @@ spec:
-           - name: REPLICAS
-             value: "{{ .Values.replicaCount }}"
-           volumeMounts:
-+{{ include "common.cacert-mount-ubuntu" . | indent 10 }}
-+{{ include "common.system-ca-store-mount-ubuntu" . | indent 10 }}
-+{{ include "policy.truststore-mount" . | indent 10 }}
-           - mountPath: /etc/localtime
-             name: localtime
-             readOnly: true
-@@ -137,6 +142,9 @@ spec:
- {{ toYaml .Values.affinity | indent 10 }}
-         {{- end }}
-       volumes:
-+{{ include "common.cacert-volume" . | indent 8 }}
-+{{ include "common.system-ca-store-volume" . | indent 8 }}
-+{{ include "policy.truststore-storage-volume" . | indent 8 }}
-         - name: localtime
-           hostPath:
-             path: /etc/localtime
-diff --git a/kubernetes/policy/charts/pdp/templates/statefulset.yaml b/kubernetes/policy/charts/pdp/templates/statefulset.yaml
-index a3a8f6a9..4ae0ead5 100644
---- a/kubernetes/policy/charts/pdp/templates/statefulset.yaml
-+++ b/kubernetes/policy/charts/pdp/templates/statefulset.yaml
-@@ -50,6 +50,7 @@ spec:
-         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-         name: {{ include "common.name" . }}-readiness
-+{{ include "common.update-system-ca-store-ubuntu" . | indent 6 }}
-       containers:
-       - command:
-         - /bin/bash
-@@ -75,6 +76,8 @@ spec:
-           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-           periodSeconds: {{ .Values.readiness.periodSeconds }}
-         volumeMounts:
-+{{ include "common.cacert-mount-ubuntu" . | indent 8 }}
-+{{ include "common.system-ca-store-mount-ubuntu" . | indent 8 }}
-         - mountPath: /etc/localtime
-           name: localtime
-           readOnly: true
-@@ -114,6 +117,8 @@ spec:
-         - mountPath: /usr/share/filebeat/data
-           name: policy-data-filebeat
-       volumes:
-+{{ include "common.cacert-volume" . | indent 6 }}
-+{{ include "common.system-ca-store-volume" . | indent 6 }}
-       - name: localtime
-         hostPath:
-           path: /etc/localtime
-diff --git a/kubernetes/policy/charts/policy-common/templates/_keystore.tpl b/kubernetes/policy/charts/policy-common/templates/_keystore.tpl
-new file mode 100644
-index 00000000..81ba09bc
---- /dev/null
-+++ b/kubernetes/policy/charts/policy-common/templates/_keystore.tpl
-@@ -0,0 +1,61 @@
-+#   COPYRIGHT NOTICE STARTS HERE
-+#
-+#   Copyright 2018 © Samsung Electronics Co., Ltd.
-+#
-+#   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.
-+#
-+#   COPYRIGHT NOTICE ENDS HERE
-+
-+#This template creates a volume for storing policy-truststore with imported ca.
-+#It is ignored if cacert was not given.
-+{{- define "policy.truststore-storage-volume" }}
-+{{- if .Values.global.cacert }}
-+- name: truststore-storage
-+  emptyDir:
-+{{- end }}
-+{{- end }}
-+
-+#This template mounts policy-truststore in appropriate place for policy components to take it.
-+#It is ignored if cacert is not given.
-+{{- define "policy.truststore-mount" }}
-+{{- if .Values.global.cacert }}
-+- mountPath: "/tmp/policy-install/config/policy-truststore"
-+  name: truststore-storage
-+  subPath: policy-truststore
-+{{- end }}
-+{{- end }}
-+
-+#This will extract a policy truststore and then import
-+#the root cacert of offline nexus into it.
-+#This template expects a volume named truststore-storage where policy-truststore will be put.
-+#It also expects volume named cacert where the file "certificate" will contain the cert to import.
-+#Template is ignored if ca certificate not given.
-+{{- define "policy.update-policy-truststore" }}
-+{{- if .Values.global.cacert }}
-+- command:
-+  - "/bin/bash"
-+  - "-c"
-+  - |
-+      set -e
-+      tar -xzf base-*.tar.gz etc/ssl/policy-truststore
-+      cp etc/ssl/policy-truststore truststore-storage/
-+      keytool -import -keystore truststore-storage/policy-truststore -storepass "Pol1cy_0nap" -noprompt -file /usr/local/share/ca-certificates/cacert.crt
-+  name: update-policy-truststore
-+  imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-+  image: {{ include "common.repository" . }}/{{ .Values.image }}
-+  volumeMounts:
-+  - mountPath: "/tmp/policy-install/truststore-storage"
-+    name: truststore-storage
-+{{ include "common.cacert-mount-ubuntu" . | indent 2 }}
-+{{- end }}
-+{{- end }}
-diff --git a/kubernetes/sdnc/charts/sdnc-ansible-server/templates/deployment.yaml b/kubernetes/sdnc/charts/sdnc-ansible-server/templates/deployment.yaml
-index 1f14dd31..18b579dd 100644
---- a/kubernetes/sdnc/charts/sdnc-ansible-server/templates/deployment.yaml
-+++ b/kubernetes/sdnc/charts/sdnc-ansible-server/templates/deployment.yaml
-@@ -47,8 +47,16 @@ spec:
-         name: {{ include "common.name" . }}-readiness
-       containers:
-         - name: {{ include "common.name" . }}
--          command: ["/bin/bash"]
--          args: ["-c", "cd /opt/onap/ccsdk && ./startAnsibleServer.sh"]
-+          command:
-+            - /bin/bash
-+            - -c
-+            -  >
-+               pip install -i http://nexus3.onap.org/repository/pypi-private/simple/
-+               --trusted-host nexus3.onap.org
-+               PyMySQL cherrypy requests;
-+               curl -s repo.infra-server/ubuntu/xenial/onap.list > /etc/apt/sources.list;
-+               apt-get update;
-+               cd /opt/onap/ccsdk && ./startAnsibleServer.sh
-           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-           ports:
-diff --git a/kubernetes/sdnc/charts/sdnc-portal/templates/deployment.yaml b/kubernetes/sdnc/charts/sdnc-portal/templates/deployment.yaml
-index 35dffee5..18dd7cd4 100644
---- a/kubernetes/sdnc/charts/sdnc-portal/templates/deployment.yaml
-+++ b/kubernetes/sdnc/charts/sdnc-portal/templates/deployment.yaml
-@@ -49,8 +49,13 @@ spec:
-         name: {{ include "common.name" . }}-readiness
-       containers:
-         - name: {{ include "common.name" . }}
--          command: ["/bin/bash"]
--          args: ["-c", "cd /opt/onap/sdnc/admportal/shell && ./start_portal.sh"]
-+          command:
-+          - /bin/bash
-+          - -c
-+          - >
-+            HOSTS_FILE_RECORD >> /etc/hosts;
-+            NPM_REGISTRY_RECORD;
-+            cd /opt/onap/sdnc/admportal/shell && ./start_portal.sh
-           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-           ports:
--- 
-2.20.1
-
similarity index 64%
rename from patches/onap-casablanca-patch-role/tasks/main.yml
rename to patches/onap-patch-role/tasks/main.yml
index 00ee457..fb81f20 100644 (file)
@@ -6,25 +6,14 @@
     path: "{{ app_helm_charts_infra_directory }}/{{ item }}"
   with_items:
     - common/dgbuilder/templates/deployment.yaml
-    - sdnc/charts/sdnc-portal/templates/deployment.yaml
   register: npm_files_check
 
-- name: Check presence of dcae cloudify deployment chart file
+- name: Check presence of files for nexus domain resolving
   stat:
     path: "{{ app_helm_charts_infra_directory }}/{{ item }}"
   with_items:
-    - dcaegen2/charts/dcae-cloudify-manager/templates/deployment.yaml
-  register: dcae_files_check
-
-- name: Patch OOM - nexus domain resolving
-  lineinfile:
-    path: "{{ item.stat.path }}"
-    regexp: '^(.*)HOSTS_FILE_RECORD'
-    line: '\g<1>{{ cluster_ip }} {{ simulated_hosts.nexus | join(" ") }} >> /etc/hosts;'
-    backrefs: yes
-    state: present
-  with_items: "{{ npm_files_check.results }}"
-  when: item.stat.exists
+    - oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/msosimulator.sh
+  register: hosts_files_check
 
 - name: Patch OOM - set npm registry
   lineinfile:
   with_items: "{{ npm_files_check.results }}"
   when: item.stat.exists
 
-- name: Patch OOM - set cert path for cloudify
+- name: Patch OOM - nexus domain resolving
   lineinfile:
     path: "{{ item.stat.path }}"
-    regexp: '^(.*)CERT_PATH'
-    line: '\g<1>/etc/pki/ca-trust/source/anchors'
+    regexp: '^(.*)HOSTS_FILE_RECORD'
+    line: '\g<1>{{ cluster_ip }} {{ simulated_hosts.nexus | join(" ") }} >> /etc/hosts;'
     backrefs: yes
     state: present
-  with_items: "{{ dcae_files_check.results }}"
+  with_items: "{{ hosts_files_check.results }}"
   when: item.stat.exists
-
diff --git a/patches/onap.patch b/patches/onap.patch
new file mode 100644 (file)
index 0000000..05e217e
--- /dev/null
@@ -0,0 +1,41 @@
+diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/msosimulator.sh b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/msosimulator.sh
+index c87a26b..79ad921 100644
+--- a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/msosimulator.sh
++++ b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/msosimulator.sh
+@@ -1,4 +1,10 @@
+ #!/bin/sh
+-pip install flask
+-pip install requests
++
++# for some reason DNS is not working properly on this pod
++# therefore we need to explicitly add record just for
++# the purpose of this script
++HOSTS_FILE_RECORD >> /etc/hosts
++
++pip install -i https://nexus3.onap.org/repository/pypi-private/simple/ --trusted-host nexus3.onap.org flask
++pip install -i https://nexus3.onap.org/repository/pypi-private/simple/ --trusted-host nexus3.onap.org requests
+ python /share/etc/config/mock.py
+--
+
+diff --git a/kubernetes/common/dgbuilder/templates/deployment.yaml b/kubernetes/common/dgbuilder/templates/deployment.yaml
+index 353c231..cf38409 100644
+--- a/kubernetes/common/dgbuilder/templates/deployment.yaml
++++ b/kubernetes/common/dgbuilder/templates/deployment.yaml
+@@ -49,8 +49,12 @@ spec:
+         - name: {{ include "common.name" . }}
+           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+-          command: ["/bin/bash"]
+-          args: ["-c", "cd /opt/onap/ccsdk/dgbuilder/ && ./start.sh sdnc1.0 && wait"]
++          command:
++          - /bin/bash
++          - -c
++          - >
++            NPM_REGISTRY_RECORD;
++            cd /opt/onap/ccsdk/dgbuilder/ && ./start.sh sdnc1.0 && wait
+           ports:
+           - containerPort: {{ .Values.service.internalPort }}
+           readinessProbe:
+-- 
+1.8.3.1
+