Introduce stack setup script 42/5342/1
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 11:34:28 +0000 (11:34 +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
(cherry picked from commit d7c1e7673b19be3c8ee33283762aba19a606b6cd)

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

index 46db541181f2b863868479fd9b8f135750e5760f..5f64622930ed63605e0174d8312f2aac7304dbbe 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 5a4494b887af8608d6f881d3058f450b1b985927..727fff95a5d23973ee2ace6df9452afc79e41310 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
 # -------------------------------------------------------------------------------