CORD-1000 Build and publish XOS images on corddev
Change-Id: I10f9a41220ac42e412b0fb90d574d17556c2c4e8
diff --git a/roles/cord-profile/templates/Dockerfile.xos.j2 b/roles/cord-profile/templates/Dockerfile.xos.j2
new file mode 100644
index 0000000..a8bfc2a
--- /dev/null
+++ b/roles/cord-profile/templates/Dockerfile.xos.j2
@@ -0,0 +1,11 @@
+FROM {{ deploy_docker_registry }}xosproject/xos:{{ deploy_docker_tag }}
+
+ARG XOS_GIT_COMMIT_HASH=unknown
+ARG XOS_GIT_COMMIT_DATE=unknown
+
+LABEL XOS_GIT_COMMIT_HASH=$XOS_GIT_COMMIT_HASH
+LABEL XOS_GIT_COMMIT_DATE=$XOS_GIT_COMMIT_DATE
+
+# Include local certificates for onboarding
+ADD im_cert_chain.pem /usr/local/share/ca-certificates/local_certs.crt
+RUN update-ca-certificates
diff --git a/roles/cord-profile/templates/onboard-chameleon.yaml.j2 b/roles/cord-profile/templates/onboard-chameleon.yaml.j2
index e8f88d8..caefaea 100644
--- a/roles/cord-profile/templates/onboard-chameleon.yaml.j2
+++ b/roles/cord-profile/templates/onboard-chameleon.yaml.j2
@@ -11,7 +11,7 @@
type: tosca.nodes.Component
properties:
command: python chameleon/chameleon/main.py -R 9101 -G xos-core:50055
- image: xosproject/chameleon
+ image: {{ deploy_docker_registry }}xosproject/chameleon:{{ deploy_docker_tag }}
ports: 9101:9101
chameleon-to-core:
diff --git a/roles/cord-profile/templates/onboard-gui-extensions-store.yaml.j2 b/roles/cord-profile/templates/onboard-gui-extensions-store.yaml.j2
index 0e83718..02cc72c 100644
--- a/roles/cord-profile/templates/onboard-gui-extensions-store.yaml.j2
+++ b/roles/cord-profile/templates/onboard-gui-extensions-store.yaml.j2
@@ -12,7 +12,7 @@
gui-extensions-store:
type: tosca.nodes.Component
properties:
- image: node:argon
+ image: {{ deploy_docker_registry }}node:argon
command: /bin/true
/var/www/dist/extensions:
@@ -23,4 +23,4 @@
requirements:
- xos:
node: gui-extensions-store
- relationship: tosca.relationships.VolumeOfComponent
\ No newline at end of file
+ relationship: tosca.relationships.VolumeOfComponent
diff --git a/roles/cord-profile/templates/onboard-xos-gui.yaml.j2 b/roles/cord-profile/templates/onboard-xos-gui.yaml.j2
index bcaf3c3..877f444 100644
--- a/roles/cord-profile/templates/onboard-xos-gui.yaml.j2
+++ b/roles/cord-profile/templates/onboard-xos-gui.yaml.j2
@@ -12,7 +12,7 @@
xos-spa-gui:
type: tosca.nodes.Component
properties:
- image: xosproject/xos-gui
+ image: {{ deploy_docker_registry }}xosproject/xos-gui:{{ deploy_docker_tag }}
ports: 4000:4000
# UI App Config
@@ -57,7 +57,7 @@
- xos:
node: xos-spa-gui
relationship: tosca.relationships.LinkOfComponent
-
+
gui-to-gw:
type: tosca.nodes.ComponentLink
properties:
@@ -67,4 +67,4 @@
requirements:
- xos:
node: xos-spa-gui
- relationship: tosca.relationships.LinkOfComponent
\ No newline at end of file
+ relationship: tosca.relationships.LinkOfComponent
diff --git a/roles/cord-profile/templates/onboard-xos-rest-gw.yaml.j2 b/roles/cord-profile/templates/onboard-xos-rest-gw.yaml.j2
index 22d9fc6..503d6b5 100644
--- a/roles/cord-profile/templates/onboard-xos-rest-gw.yaml.j2
+++ b/roles/cord-profile/templates/onboard-xos-rest-gw.yaml.j2
@@ -12,7 +12,7 @@
xos-rest-gateway:
type: tosca.nodes.Component
properties:
- image: xosproject/xos-rest-gw
+ image: {{ deploy_docker_registry }}xosproject/xos-rest-gw:{{ deploy_docker_tag }}
command: npm start -- --config gateway-config.yml
ports: 3000:3000
@@ -47,4 +47,4 @@
requirements:
- xos:
node: xos-rest-gateway
- relationship: tosca.relationships.LinkOfComponent
\ No newline at end of file
+ relationship: tosca.relationships.LinkOfComponent
diff --git a/roles/cord-profile/templates/xos-bootstrap-docker-compose.yaml.j2 b/roles/cord-profile/templates/xos-bootstrap-docker-compose.yaml.j2
index bf79d65..ed24bd5 100644
--- a/roles/cord-profile/templates/xos-bootstrap-docker-compose.yaml.j2
+++ b/roles/cord-profile/templates/xos-bootstrap-docker-compose.yaml.j2
@@ -11,7 +11,7 @@
services:
xos_db:
- image: xosproject/xos-postgres
+ image: {{ deploy_docker_registry }}xosproject/xos-postgres:{{ deploy_docker_tag }}
networks:
{% for network in xos_docker_networks %}
- {{ network }}
@@ -21,7 +21,7 @@
{% if use_redis %}
xos_redis:
- image: redis
+ image: {{ deploy_docker_registry }}redis:{{ deploy_docker_tag }}
networks:
{% for network in xos_docker_networks %}
- {{ network }}
@@ -34,7 +34,7 @@
{% endif %}
xos_bootstrap_ui:
- image: xosproject/xos
+ image: {{ deploy_docker_registry }}xosproject/xos:{{ deploy_docker_tag }}
command: python /opt/xos/manage.py runserver 0.0.0.0:{{ xos_bootstrap_ui_port }} --insecure --makemigrations
networks:
{% for network in xos_docker_networks %}
@@ -69,7 +69,7 @@
max-file: "5"
xos_synchronizer_onboarding:
- image: xosproject/xos
+ image: {{ deploy_docker_registry }}xosproject/xos:{{ deploy_docker_tag }}
command: bash -c "cd /opt/xos/synchronizers/onboarding; ./run.sh"
networks:
{% for network in xos_docker_networks %}
@@ -95,4 +95,3 @@
options:
max-size: "1000k"
max-file: "5"
-
diff --git a/roles/cord-profile/templates/xos-gui-extensions-onboard.yml.j2 b/roles/cord-profile/templates/xos-gui-extensions-onboard.yml.j2
new file mode 100644
index 0000000..a46c188
--- /dev/null
+++ b/roles/cord-profile/templates/xos-gui-extensions-onboard.yml.j2
@@ -0,0 +1,28 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Onboard xos-sample-gui-extension
+
+imports:
+ - custom_types/xos.yaml
+
+topology_template:
+ node_templates:
+
+ # UI Extensions
+{% for ext in enabled_gui_extensions %}
+ gui-extensions-{{ext.name}}:
+ type: tosca.nodes.Component
+ properties:
+ image: {{ deploy_docker_registry }}xosproject/gui-extension-{{ ext.name }}:{{ deploy_docker_tag }}
+ command: npm run build
+
+ gui-extensions-store-{{ ext.name }}:
+ type: tosca.nodes.ComponentVolumeContainer
+ properties:
+ container: gui-extensions-store
+ requirements:
+ - xos:
+ node: gui-extensions-{{ext.name}}
+ relationship: tosca.relationships.VolumeContainerOfComponent
+{% endfor %}
+
diff --git a/roles/cord-profile/templates/xos-gui-extensions.yml.j2 b/roles/cord-profile/templates/xos-gui-extensions.yml.j2
new file mode 100644
index 0000000..6b5be5e
--- /dev/null
+++ b/roles/cord-profile/templates/xos-gui-extensions.yml.j2
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Persist xos-sample-gui-extension
+
+imports:
+ - custom_types/xos.yaml
+
+topology_template:
+ node_templates:
+
+ # UI Extension
+{% for ext in enabled_gui_extensions %}
+ {{ext.name}}:
+ type: tosca.nodes.XOSGuiExtension
+ properties:
+ files: /spa/extensions/{{ext.name}}/vendor.js, /spa/extensions/{{ext.name}}/app.js
+{% endfor %}