summaryrefslogtreecommitdiffstats
path: root/ci/ansible/roles/nbp-installer/scenarios
diff options
context:
space:
mode:
Diffstat (limited to 'ci/ansible/roles/nbp-installer/scenarios')
-rw-r--r--ci/ansible/roles/nbp-installer/scenarios/csi.yml44
-rw-r--r--ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml16
-rw-r--r--ci/ansible/roles/nbp-installer/scenarios/release.yml38
-rw-r--r--ci/ansible/roles/nbp-installer/scenarios/repository.yml79
4 files changed, 176 insertions, 1 deletions
diff --git a/ci/ansible/roles/nbp-installer/scenarios/csi.yml b/ci/ansible/roles/nbp-installer/scenarios/csi.yml
index e69de29..93fff88 100644
--- a/ci/ansible/roles/nbp-installer/scenarios/csi.yml
+++ b/ci/ansible/roles/nbp-installer/scenarios/csi.yml
@@ -0,0 +1,44 @@
+# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved.
+#
+# 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.
+
+---
+- name: Configure opensds endpoint IP in opensds csi plugin
+ lineinfile:
+ dest: "{{ nbp_work_dir }}/csi/deploy/kubernetes/csi-configmap-opensdsplugin.yaml"
+ regexp: '^ opensdsendpoint'
+ line: ' opensdsendpoint: {{ opensds_endpoint }}'
+ backup: yes
+
+- name: Configure opensds auth strategy in opensds csi plugin
+ lineinfile:
+ dest: "{{ nbp_work_dir }}/csi/deploy/kubernetes/csi-configmap-opensdsplugin.yaml"
+ regexp: '^ opensdsauthstrategy'
+ line: ' opensdsauthstrategy: {{ opensds_auth_strategy }}'
+ backup: yes
+
+- name: Configure keystone os auth url in opensds csi plugin
+ lineinfile:
+ dest: "{{ nbp_work_dir }}/csi/deploy/kubernetes/csi-configmap-opensdsplugin.yaml"
+ regexp: '^ osauthurl'
+ line: ' osauthurl: {{ keystone_os_auth_url }}'
+ backup: yes
+ when: opensds_auth_strategy == "keystone"
+
+- name: Prepare and deploy opensds csi plugin
+ shell: |
+ . /etc/profile
+ kubectl create -f deploy/kubernetes
+ args:
+ chdir: "{{ nbp_work_dir }}/csi"
+ ignore_errors: yes
diff --git a/ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml b/ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml
index 0bba93b..52ec16d 100644
--- a/ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml
+++ b/ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml
@@ -1,3 +1,17 @@
+# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved.
+#
+# 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.
+
---
- name: Create flexvolume plugin directory if not existed
file:
@@ -7,5 +21,5 @@
- name: Copy opensds flexvolume plugin binary file into flexvolume plugin dir
copy:
- src: "{{ nbp_dir }}/flexvolume/opensds"
+ src: "{{ nbp_work_dir }}/flexvolume/opensds"
dest: "{{ flexvolume_plugin_dir }}/opensds"
diff --git a/ci/ansible/roles/nbp-installer/scenarios/release.yml b/ci/ansible/roles/nbp-installer/scenarios/release.yml
new file mode 100644
index 0000000..89429d7
--- /dev/null
+++ b/ci/ansible/roles/nbp-installer/scenarios/release.yml
@@ -0,0 +1,38 @@
+# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved.
+#
+# 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.
+
+---
+- name: check for nbp release files existed
+ stat:
+ path: "{{ nbp_tarball_dir }}"
+ ignore_errors: yes
+ register: nbpreleasesexisted
+
+- name: download and extract the nbp release tarball if not exists
+ unarchive:
+ src={{ nbp_download_url }}
+ dest=/tmp/
+ when:
+ - nbpreleasesexisted.stat.exists is undefined or nbpreleasesexisted.stat.exists == false
+
+- name: change the mode of all binary files in nbp release
+ file:
+ path: "{{ nbp_tarball_dir }}/flexvolume"
+ mode: 0755
+ recurse: yes
+
+- name: copy nbp tarball into nbp work directory
+ copy:
+ src: "{{ nbp_tarball_dir }}/"
+ dest: "{{ nbp_work_dir }}"
diff --git a/ci/ansible/roles/nbp-installer/scenarios/repository.yml b/ci/ansible/roles/nbp-installer/scenarios/repository.yml
new file mode 100644
index 0000000..fb8059b
--- /dev/null
+++ b/ci/ansible/roles/nbp-installer/scenarios/repository.yml
@@ -0,0 +1,79 @@
+# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved.
+#
+# 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.
+
+---
+- set_fact:
+ go_path: "{{ lookup('env', 'GOPATH') }}"
+
+- name: check go_path
+ shell: "{{ item }}"
+ with_items:
+ - echo "The environment variable GOPATH must be set and cannot be an empty string!"
+ - /bin/false
+ when: go_path == ""
+
+- name: check for nbp source code existed
+ stat:
+ path: "{{ go_path }}/src/github.com/opensds/nbp"
+ ignore_errors: yes
+ register: nbpexisted
+
+- name: download nbp source code if not exists
+ git:
+ repo: "{{ nbp_remote_url }}"
+ dest: "{{ go_path }}/src/github.com/opensds/nbp"
+ version: "{{ nbp_repo_branch }}"
+ when:
+ - nbpexisted.stat.exists is undefined or nbpexisted.stat.exists == false
+
+- name: build nbp binary file
+ shell: make
+ environment:
+ GOPATH: "{{ go_path }}"
+ args:
+ chdir: "{{ go_path }}/src/github.com/opensds/nbp"
+
+- name: create nbp install directory if it doesn't exist
+ file:
+ path: "{{ item }}"
+ state: directory
+ mode: 0755
+ with_items:
+ - "{{ nbp_work_dir }}/csi"
+ - "{{ nbp_work_dir }}/flexvolume"
+ - "{{ nbp_work_dir }}/provisioner"
+
+- name: copy nbp csi deploy scripts into nbp work directory
+ copy:
+ src: "{{ item }}"
+ dest: "{{ nbp_work_dir }}/csi/"
+ directory_mode: yes
+ with_items:
+ - "{{ go_path }}/src/github.com/opensds/nbp/csi/server/deploy"
+ - "{{ go_path }}/src/github.com/opensds/nbp/csi/server/examples"
+
+- name: copy nbp flexvolume binary file into nbp work directory
+ copy:
+ src: "{{ go_path }}/src/github.com/opensds/nbp/.output/flexvolume.server.opensds"
+ dest: "{{ nbp_work_dir }}/flexvolume/opensds"
+ mode: 0755
+
+- name: copy nbp provisioner deploy scripts into nbp work directory
+ copy:
+ src: "{{ item }}"
+ dest: "{{ nbp_work_dir }}/provisioner/"
+ directory_mode: yes
+ with_items:
+ - "{{ go_path }}/src/github.com/opensds/nbp/opensds-provisioner/deploy"
+ - "{{ go_path }}/src/github.com/opensds/nbp/opensds-provisioner/examples"