Introduce stack setup script 33/5333/2
authorFatih Degirmenci <fatih.degirmenci@est.tech>
Thu, 9 Jul 2020 07:33:47 +0000 (07:33 +0000)
committerFatih Degirmenci <fatih.degirmenci@est.tech>
Thu, 9 Jul 2020 08:24:18 +0000 (08:24 +0000)
This change introduces setup-stack.sh script which will do setup
for the stack itself such as setting the default scenario if not
specified by the user and more importantly installing the dependencies.

Further changes will be sent, moving dependencies to stacks and
installations of those into stack setup script.

Depends-On: I6b9d27edd2016594b197a368b8ed393e98beef7f
Change-Id: I7892fa217a7db5c0c7b84a1b57aa6f311ee14cc6

playbooks/roles/bootstrap-swconfig/tasks/main.yaml
setup-stack.sh [new file with mode: 0755]
vars/kubernetes.yaml

index 46db541..5f64622 100644 (file)
 # SPDX-License-Identifier: Apache-2.0
 # ============LICENSE_END=========================================================
 
-- name: Set distribution
+- name: Set deploy scenario
   set_fact:
-    distro: "{{ ansible_distribution | lower }}{{ ansible_distribution_version | replace('.','') }}"
+    deploy_scenario: "{{ lookup('env', 'DEPLOY_SCENARIO') | default('k8-multus-plugins', true) }}"
+
+- name: Log deploy scenario to console
+  debug:
+    msg: 'Set deploy scenario to {{ deploy_scenario }}'
+
+- name: Fail if the deploy scenario is not valid for stack '{{ stack_type }}'
+  fail:
+    msg: "'{{ deploy_scenario }}' is not valid for stack '{{ stack_type }}'"
+  when: deploy_scenario not in scenarios
 
 - name: Log distribution to console
   debug:
     msg: "'{{ installer_type }}' is not a valid installer for stack '{{ stack_type }}'"
   when: installer_type not in installers
 
-- name: Log deploy scenario to console
-  debug:
-    msg: 'Set deploy scenario to {{ deploy_scenario }}'
-
-- name: Fail if the deploy scenario is not valid for stack '{{ stack_type }}'
-  fail:
-    msg: "'{{ deploy_scenario }}' is not valid for stack '{{ stack_type }}'"
-  when: deploy_scenario not in scenarios
 
 # NOTE (fdegir): as we determine things dynamically, we need to record variables in order
 # for them to become available subsequent tasks, roles, playbooks
@@ -74,7 +75,7 @@
     state: present
     create: true
     block: |
-      distro: "{{ distro }}"
+      deploy_scenario: "{{ deploy_scenario }}"
       provisioner_type: "{{ provisioner_type }}"
       installer_type: "{{ installer_type }}"
     marker: "# {mark} ANSIBLE MANAGED BLOCK engine-kubernetes"
diff --git a/setup-stack.sh b/setup-stack.sh
new file mode 100755 (executable)
index 0000000..3fde7ee
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+set -o errexit
+set -o nounset
+set -o pipefail
+
+#-------------------------------------------------------------------------------
+# Find and set where we are
+#-------------------------------------------------------------------------------
+STACK_ROOT_DIR="$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
+export STACK_ROOT_DIR
+
+# NOTE (fdegir): different stacks and their branches have different scenarios
+# supported by default so we set DEPLOY_SCENARIO within the stack unless it is
+# set by user rather than setting the default one in engine
+export DEPLOY_SCENARIO="${DEPLOY_SCENARIO:=k8-multus-plugins}"
+echo "Info  : Deploy scenario is $DEPLOY_SCENARIO"
+
+# vim: set ts=2 sw=2 expandtab:
index 905bb35..75bd857 100644 (file)
@@ -55,6 +55,9 @@ scenarios:
   - k8-multus-plugins
   - k8-weave-nofeature
 
+# NOTE (fdegir): set default deploy scenario for the stack
+deploy_scenario: "{{ lookup('env', 'DEPLOY_SCENARIO') | default('k8-multus-plugins', true) }}"
+
 # -------------------------------------------------------------------------------
 # Nordix: Docker version
 # -------------------------------------------------------------------------------