Merge "Update docker user for osmclient"
authorMike Marchetti <mmarchetti@sandvine.com>
Wed, 24 Oct 2018 20:25:55 +0000 (22:25 +0200)
committerGerrit Code Review <root@osm.etsi.org>
Wed, 24 Oct 2018 20:25:55 +0000 (22:25 +0200)
descriptor-packages/nsd/hackfest_ansible_ns/Makefile [new file with mode: 0644]
descriptor-packages/nsd/hackfest_ansible_ns/src/ansiblecharm_nsd.yaml [new file with mode: 0644]
descriptor-packages/nsd/hackfest_ansible_ns/src/icons/osm.png [new file with mode: 0644]
descriptor-packages/vnfd/hackfest_ansible_vnf/Makefile [new file with mode: 0644]
descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml [new file with mode: 0644]
descriptor-packages/vnfd/hackfest_ansible_vnf/src/cloud_init/cloud-config.txt [new file with mode: 0644]
descriptor-packages/vnfd/hackfest_ansible_vnf/src/icons/osm.png [new file with mode: 0644]
docker/Keystone/Dockerfile
docker/LCM/Dockerfile
installers/full_install_osm.sh

diff --git a/descriptor-packages/nsd/hackfest_ansible_ns/Makefile b/descriptor-packages/nsd/hackfest_ansible_ns/Makefile
new file mode 100644 (file)
index 0000000..9c18082
--- /dev/null
@@ -0,0 +1,20 @@
+#
+#   Copyright 2018 Telefonica
+#
+#   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.
+#
+
+DESCRIPTORS_TOPDIR ?= ../..
+include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
+
+all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/nsd/hackfest_ansible_ns/src/ansiblecharm_nsd.yaml b/descriptor-packages/nsd/hackfest_ansible_ns/src/ansiblecharm_nsd.yaml
new file mode 100644 (file)
index 0000000..031ed4e
--- /dev/null
@@ -0,0 +1,26 @@
+nsd:nsd-catalog:
+    nsd:
+    -   id: ansiblecharm_nsd
+        name: ansiblecharm_nsd
+        short-name: ansiblecharm_nsd
+        description: Generated by OSM package generator
+        vendor: OSM
+        logo: osm.png
+        version: '1.0'
+        constituent-vnfd:
+            # The member-vnf-index needs to be unique, starting from 1
+            # vnfd-id-ref is the id of the VNFD
+            # Multiple constituent VNFDs can be specified
+        -   member-vnf-index: 1
+            vnfd-id-ref: ansiblecharm_vnfd
+        vld:
+        # Networks for the VNFs
+        -   id: mgmtnet
+            name: mgmtnet
+            short-name: mgmtnet
+            type: ELAN
+            mgmt-network: 'true'
+            vnfd-connection-point-ref:
+            -   member-vnf-index-ref: 1
+                vnfd-id-ref: ansiblecharm_vnfd
+                vnfd-connection-point-ref: vnf-cp0
diff --git a/descriptor-packages/nsd/hackfest_ansible_ns/src/icons/osm.png b/descriptor-packages/nsd/hackfest_ansible_ns/src/icons/osm.png
new file mode 100644 (file)
index 0000000..62012d2
Binary files /dev/null and b/descriptor-packages/nsd/hackfest_ansible_ns/src/icons/osm.png differ
diff --git a/descriptor-packages/vnfd/hackfest_ansible_vnf/Makefile b/descriptor-packages/vnfd/hackfest_ansible_vnf/Makefile
new file mode 100644 (file)
index 0000000..e989331
--- /dev/null
@@ -0,0 +1,21 @@
+#
+#   Copyright 2018 Telefonica
+#
+#   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.
+#
+DESCRIPTORS_TOPDIR ?= ../..
+
+VNFD_CHARM = ansible-charm
+include $(DESCRIPTORS_TOPDIR)/mk/pkg.mk
+
+all: $(BUILD_DIR)/$(PKG_NAME)
diff --git a/descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml b/descriptor-packages/vnfd/hackfest_ansible_vnf/src/ansiblecharm_vnfd.yaml
new file mode 100644 (file)
index 0000000..873d041
--- /dev/null
@@ -0,0 +1,55 @@
+vnfd:vnfd-catalog:
+    vnfd:
+    -   id: ansiblecharm_vnfd
+        name: ansiblecharm_vnfd
+        short-name: ansiblecharm_vnfd
+        description: Generated by OSM package generator
+        vendor: OSM
+        logo: osm.png
+        version: '1.0'
+        connection-point:
+        -   name: vnf-cp0
+            type: VPORT
+        mgmt-interface:
+            cp: vnf-cp0
+        vdu:
+        -   id: ansiblecharm_vnfd-VM
+            name: ansiblecharm_vnfd-VM
+            description: ansiblecharm_vnfd-VM
+            count: 1
+            vm-flavor:
+                vcpu-count: 1
+                memory-mb: 1024
+                storage-gb: 10
+            image: 'ubuntu1604'
+            interface:
+            -   name: vdu-eth0
+                type: EXTERNAL
+                virtual-interface:
+                    type: VIRTIO
+                external-connection-point-ref: vnf-cp0
+            cloud-init-file: cloud-config.txt
+        vnf-configuration:
+             juju:
+                 charm: ansible-charm
+             initial-config-primitive:
+             -   seq: 1
+                 name: config
+                 parameter:
+                 -   name: ssh-hostname
+                     value: <rw_mgmt_ip>
+                 -   name: ssh-username
+                     value: ubuntu
+                 -   name: ssh-password
+                     value: osm4u
+             -   seq: 2
+                 name: ansible-playbook
+                 parameter:
+                 -   name: filename
+                     value: '/home/ubuntu/first-touch'
+             config-primitive:
+             -   name: ansible-playbook
+                 parameter:
+                 -   name: filename
+                     data-type: STRING
+                     value: '/home/ubuntu/first-touch'
diff --git a/descriptor-packages/vnfd/hackfest_ansible_vnf/src/cloud_init/cloud-config.txt b/descriptor-packages/vnfd/hackfest_ansible_vnf/src/cloud_init/cloud-config.txt
new file mode 100644 (file)
index 0000000..36c8d1b
--- /dev/null
@@ -0,0 +1,12 @@
+#cloud-config\r
+password: osm4u\r
+chpasswd: { expire: False }\r
+ssh_pwauth: True\r
+\r
+write_files:\r
+-   content: |\r
+        # My new helloworld file\r
+\r
+    owner: root:root\r
+    permissions: '0644'\r
+    path: /root/helloworld.txt\r
diff --git a/descriptor-packages/vnfd/hackfest_ansible_vnf/src/icons/osm.png b/descriptor-packages/vnfd/hackfest_ansible_vnf/src/icons/osm.png
new file mode 100644 (file)
index 0000000..62012d2
Binary files /dev/null and b/descriptor-packages/vnfd/hackfest_ansible_vnf/src/icons/osm.png differ
index 263716a..2030aa5 100644 (file)
@@ -21,12 +21,14 @@ RUN apt-get update && \
     rm -rf /var/lib/apt/lists/* && \
     chmod +x start.sh
 
-ENV DB_HOST                 keystone-db     # DB Hostname
-ENV DB_PORT                 3306            # DB Port
-ENV ROOT_DB_USER            root            # DB Root User
-ENV ROOT_DB_PASSWORD        admin           # DB Root Password
-ENV KEYSTONE_DB_PASSWORD    admin           # Keystone user password
-ENV ADMIN_PASSWORD          admin           # Admin password
-ENV NBI_PASSWORD            nbi             # NBI password
+# database
+ENV DB_HOST                 keystone-db
+ENV DB_PORT                 3306
+ENV ROOT_DB_USER            root
+ENV ROOT_DB_PASSWORD        admin
+# keystone
+ENV KEYSTONE_DB_PASSWORD    admin
+ENV ADMIN_PASSWORD          admin
+ENV NBI_PASSWORD            nbi
 
 ENTRYPOINT ./start.sh
index 46be58e..a6b5429 100644 (file)
@@ -29,15 +29,8 @@ RUN apt-get update && apt-get install -y git make python3 \
     && pip3 install pip==9.0.3 \
     && pip3 install -U aiokafka pyang lxml six enum34 \
     && pip3 install websockets==4.0.1 \
-    && pip3 install requests
-
-RUN pip3 install PyNaCl
-
-RUN git clone https://osm.etsi.org/gerrit/osm/N2VC.git \
-    && cd N2VC \
-    && git checkout BUILD_v4.0.1_1 \
-    && cd modules/libjuju && python3 setup.py develop && cd ../.. \
-    && pip3 install -U -r requirements.txt
+    && pip3 install requests \
+    && pip3 install PyNaCl
 
 ARG REPOSITORY_BASE=http://osm-download.etsi.org/repository/osm/debian
 ARG RELEASE=ReleaseFOUR-daily
index 2c4fc74..ffb5913 100755 (executable)
@@ -660,22 +660,34 @@ function generate_docker_images() {
         sg docker -c "docker pull prom/prometheus:${PROMETHEUS_TAG}" || FATAL "cannot get prometheus docker image"
     fi
 
+    if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q KEYSTONE-DB ; then
+        sg docker -c "docker pull mariadb:${KEYSTONEDB_TAG}" || FATAL "cannot get keystone-db docker image"
+    fi
+
     if [ -n "$PULL_IMAGES" ]; then
         sg docker -c "docker pull ${DOCKER_USER}/mon:${OSM_DOCKER_TAG}" || FATAL "cannot pull MON docker image"
-        sg docker -c "docker pull ${DOCKER_USER}/pol:${OSM_DOCKER_TAG}" || FATAL "cannot pull POL docker image"
     elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q MON ; then
         git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/MON
         git -C ${LWTEMPDIR}/MON checkout ${COMMIT_ID}
         sg docker -c "docker build ${LWTEMPDIR}/MON -f ${LWTEMPDIR}/MON/docker/Dockerfile -t osm/mon --no-cache" || FATAL "cannot build MON docker image"
-        sg docker -c "docker build ${LWTEMPDIR}/MON/policy_module -f ${LWTEMPDIR}/MON/policy_module/Dockerfile -t osm/pm --no-cache" || FATAL "cannot build PM docker image"
+    fi
+
+    if [ -n "$PULL_IMAGES" ]; then
+        sg docker -c "docker pull ${DOCKER_USER}/pol:${OSM_DOCKER_TAG}" || FATAL "cannot pull POL docker image"
+    elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q MON ; then
+        git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/POL
+        git -C ${LWTEMPDIR}/POL checkout ${COMMIT_ID}
+        sg docker -c "docker build ${LWTEMPDIR}/POL -f ${LWTEMPDIR}/POL/docker/Dockerfile -t osm/pol --no-cache" || FATAL "cannot build PM docker image"
     fi
 
     if [ -n "$PULL_IMAGES" ]; then
         sg docker -c "docker pull ${DOCKER_USER}/nbi:${OSM_DOCKER_TAG}" || FATAL "cannot pull NBI docker image"
+        sg docker -c "docker pull ${DOCKER_USER}/keystone:${OSM_DOCKER_TAG}" || FATAL "cannot pull KEYSTONE docker image"
     elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NBI ; then
         git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/NBI
         git -C ${LWTEMPDIR}/NBI checkout ${COMMIT_ID}
         sg docker -c "docker build ${LWTEMPDIR}/NBI -f ${LWTEMPDIR}/NBI/Dockerfile.local -t osm/nbi --no-cache" || FATAL "cannot build NBI docker image"
+        sg docker -c "docker build ${LWTEMPDIR}/NBI/keystone -f ${LWTEMPDIR}/NBI/keystone/Dockerfile -t osm/keystone --no-cache" || FATAL "cannot build KEYSTONE docker image"
     fi
 
     if [ -n "$PULL_IMAGES" ]; then
@@ -826,6 +838,7 @@ function deploy_lightweight() {
     echo "export DOCKER_USER=${DOCKER_USER}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh
     echo "export KAFKA_TAG=${KAFKA_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh
     echo "export PROMETHEUS_TAG=${PROMETHEUS_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh
+    echo "export KEYSTONEDB_TAG=${KEYSTONEDB_TAG}" | $WORKDIR_SUDO tee --append $OSM_DOCKER_WORK_DIR/osm_ports.sh
 
 
 
@@ -885,18 +898,14 @@ function deploy_elk() {
 }
 
 function deploy_perfmon() {
-    echo "Pulling docker images for PM (Grafana and Prometheus)"
-    sg docker -c "docker pull prom/prometheus" || FATAL "cannot get prometheus docker image"
+    echo "Pulling docker images for PM (Grafana)"
     sg docker -c "docker pull grafana/grafana" || FATAL "cannot get grafana docker image"
     echo "Finished pulling PM docker images"
-    echo "Generating osm/kafka-exporter docker image"
-    sg docker -c "docker build ${OSM_DEVOPS}/installers/docker/osm_metrics/kafka-exporter -f ${OSM_DEVOPS}/installers/docker/osm_metrics/kafka-exporter/Dockerfile -t osm/kafka-exporter --no-cache" || FATAL "cannot build kafka-exporter docker image"
-    echo "Finished generation of osm/kafka-exporter docker image"
     $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/osm_metrics
     $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_metrics/*.yml $OSM_DOCKER_WORK_DIR/osm_metrics
     $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_metrics/*.json $OSM_DOCKER_WORK_DIR/osm_metrics
     remove_stack osm_metrics
-    echo "Deploying PM stack (Kafka exporter + Prometheus + Grafana)"
+    echo "Deploying PM stack (Grafana)"
     sg docker -c "OSM_NETWORK=net${OSM_STACK_NAME} docker stack deploy -c $OSM_DOCKER_WORK_DIR/osm_metrics/docker-compose.yml osm_metrics"
     echo "Finished deployment of PM stack"
     return 0
@@ -1086,6 +1095,7 @@ OSM_DOCKER_TAG=latest
 DOCKER_USER=osm
 KAFKA_TAG=2.11-1.0.2
 PROMETHEUS_TAG=v2.4.3
+KEYSTONEDB_TAG=10
 
 while getopts ":hy-:b:r:k:u:R:l:p:D:o:m:H:S:s:w:t:" o; do
     case "${o}" in