CORD-842 deploy chameleon
Change-Id: Ie33ba200f275954176fef76a5fc804b82ca3c975
diff --git a/roles/cord-profile/tasks/main.yml b/roles/cord-profile/tasks/main.yml
index 15d861a..beb17f5 100644
--- a/roles/cord-profile/tasks/main.yml
+++ b/roles/cord-profile/tasks/main.yml
@@ -82,6 +82,7 @@
- deployment.yaml
- xos.yaml
- xos-bootstrap-docker-compose.yaml
+ - onboard-chameleon.yaml
- name: Create profile specific templated TOSCA config files
template:
diff --git a/roles/cord-profile/templates/onboard-chameleon.yaml.j2 b/roles/cord-profile/templates/onboard-chameleon.yaml.j2
new file mode 100644
index 0000000..9ba68f2
--- /dev/null
+++ b/roles/cord-profile/templates/onboard-chameleon.yaml.j2
@@ -0,0 +1,15 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/xos.yaml
+
+description: chameleon component config, generated by platform-install
+
+topology_template:
+ node_templates:
+ xos_chameleon:
+ type: tosca.nodes.Component
+ properties:
+ command: python chameleon/chameleon/main.py -R 9101 -G xos-core:50055
+ image: xosproject/chameleon
+ ports: 9101:9101
diff --git a/roles/xos-docker-images/tasks/main.yml b/roles/xos-docker-images/tasks/main.yml
index 4482aac..37c1a6a 100644
--- a/roles/xos-docker-images/tasks/main.yml
+++ b/roles/xos-docker-images/tasks/main.yml
@@ -43,6 +43,23 @@
dockerfile: "containers/xos/Dockerfile.test"
pull: False # use the locally built copy of xosproject/xos
+- name: Clean up chameleon temp directory
+ shell: rm -rf {{ cord_dir }}/orchestration/xos/containers/chameleon/tmp.chameleon
+ tags:
+ - skip_ansible_lint # docker can't access files outside of build context, so we must copy
+
+- name: Populate chameleon temp directory
+ shell: cp -a "{{ cord_dir }}/component/chameleon" "{{ cord_dir }}/orchestration/xos/containers/chameleon/tmp.chameleon"
+ tags:
+ - skip_ansible_lint # docker can't access files outside of build context, so we must copy
+
+- name: Build xosproject/chameleon image
+ docker_image:
+ name: "xosproject/chameleon"
+ path: "{{ cord_dir }}/orchestration/xos/containers/chameleon"
+ dockerfile: "Dockerfile.chameleon"
+ pull: False # use the locally built copy of xosproject/xos
+
- name: Tag and push xos-base image to docker registry
when: push_xos_base_image
docker_image:
diff --git a/roles/xos-onboarding/defaults/main.yml b/roles/xos-onboarding/defaults/main.yml
index b9d946f..22d7bdb 100644
--- a/roles/xos-onboarding/defaults/main.yml
+++ b/roles/xos-onboarding/defaults/main.yml
@@ -8,5 +8,9 @@
xos_libraries:
- "ng-xos-lib"
+xos_components:
+ - name: Chameleon
+ recipe_filename: onboard-chameleon.yaml
+
xos_services: []
diff --git a/roles/xos-onboarding/tasks/main.yml b/roles/xos-onboarding/tasks/main.yml
index 7498bed..841125b 100644
--- a/roles/xos-onboarding/tasks/main.yml
+++ b/roles/xos-onboarding/tasks/main.yml
@@ -47,6 +47,12 @@
tags:
- skip_ansible_lint # TOSCA loading should be idempotent
+- name: Onboard components
+ command: "python /opt/xos/tosca/run.py {{ xos_admin_user }} /opt/cord_profile/{{ item.recipe_filename }}"
+ with_items: "{{ xos_components }}"
+ tags:
+ - skip_ansible_lint # TOSCA loading should be idempotent
+
- name: Enable onboarding
command: "python /opt/xos/tosca/run.py {{ xos_admin_user }} /opt/cord_profile/enable-onboarding.yaml"
tags: