Eiffel installation using easy2use 96/12296/4
authornauman <nauman.yaseen@est.tech>
Tue, 8 Feb 2022 06:23:01 +0000 (06:23 +0000)
committernauman <nauman.yaseen@est.tech>
Mon, 14 Feb 2022 14:50:52 +0000 (14:50 +0000)
basic eiffel installation
added new eiffel deploy scenario

Deploy-Scenario: k8-calico-eiffel

Change-Id: I053821d935ae3c727a5dab0e8be3660a000a9e84

apps/eiffel/install.yml [new file with mode: 0644]
apps/eiffel/roles/install/tasks/easy2use.yml [new file with mode: 0644]
apps/eiffel/roles/install/tasks/main.yml [new file with mode: 0644]
apps/eiffel/roles/install/tasks/poll-pods.yml [new file with mode: 0644]
apps/eiffel/roles/install/vars/main.yml [new file with mode: 0644]
scenarios/k8-calico-eiffel.yaml [new file with mode: 0644]
vars/kubernetes.yaml

diff --git a/apps/eiffel/install.yml b/apps/eiffel/install.yml
new file mode 100644 (file)
index 0000000..f12b964
--- /dev/null
@@ -0,0 +1,26 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2022 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=========================================================
+
+- hosts: jumphost
+  gather_facts: true
+
+  roles:
+    - role: install
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/apps/eiffel/roles/install/tasks/easy2use.yml b/apps/eiffel/roles/install/tasks/easy2use.yml
new file mode 100644 (file)
index 0000000..305aee3
--- /dev/null
@@ -0,0 +1,44 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2022 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=========================================================
+
+- name: Clean easy2use dir
+  file:
+    path: /tmp/eiffel-easy2use
+    state: absent
+
+- name: Clone easy2use source
+  git:
+    repo: "{{ easy2use_url }}"
+    dest: /tmp/eiffel-easy2use
+    version: "{{ easy2use_version }}"
+
+- name: Create eiffel namespace
+  k8s:
+    api_version: v1
+    kind: Namespace
+    name: "{{ eiffel_namespace }}"
+    state: present
+
+- name: Install eiffel using easy2use
+  vars:
+    dir: /tmp/eiffel-easy2use
+  command:
+    cmd: "{{ dir }}/easy2use start Eiffel -y"
+    chdir: "{{ dir }}"
+  changed_when: false
diff --git a/apps/eiffel/roles/install/tasks/main.yml b/apps/eiffel/roles/install/tasks/main.yml
new file mode 100644 (file)
index 0000000..d678615
--- /dev/null
@@ -0,0 +1,21 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2022 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=========================================================
+
+- import_tasks: easy2use.yml
+- import_tasks: poll-pods.yml
diff --git a/apps/eiffel/roles/install/tasks/poll-pods.yml b/apps/eiffel/roles/install/tasks/poll-pods.yml
new file mode 100644 (file)
index 0000000..1ddfd52
--- /dev/null
@@ -0,0 +1,31 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2022 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=========================================================
+
+- name: Wait for all eiffel pods to become ready
+  k8s_facts:
+    kind: Pod
+    namespace: "{{ eiffel_namespace }}"
+    field_selectors:
+      - status.phase=Running
+  register: eiffel_status
+  until:
+    - eiffel_status.resources is defined
+    - eiffel_status.resources
+  retries: 30
+  delay: 10
diff --git a/apps/eiffel/roles/install/vars/main.yml b/apps/eiffel/roles/install/vars/main.yml
new file mode 100644 (file)
index 0000000..2d62231
--- /dev/null
@@ -0,0 +1,25 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2022 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=========================================================
+#
+
+easy2use_version: "master"
+
+easy2use_url: "https://github.com/eiffel-community/eiffel-easy2use.git"
+
+eiffel_namespace: eiffel
diff --git a/scenarios/k8-calico-eiffel.yaml b/scenarios/k8-calico-eiffel.yaml
new file mode 100644 (file)
index 0000000..29fac2d
--- /dev/null
@@ -0,0 +1,54 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2022 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=========================================================
+
+# NOTE (fdegir): scenario specific preinstall tasks
+- hosts: localhost
+  connection: local
+  gather_facts: false
+  become: false
+  tags:
+    - preinstall
+
+  tasks:
+    # set networking plugin to calico
+    - name: Set network plugin to calico
+      lineinfile:
+        path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s_cluster/k8s-cluster.yml"
+        regexp: "^kube_network_plugin:.*"
+        line: "kube_network_plugin: calico"
+
+# NOTE (fdegir): common postinstall tasks
+- name: Execute common postinstall tasks
+  import_playbook: "../playbooks/postinstall.yaml"
+  tags: postinstall
+
+# NOTE (fdegir): scenario specific postinstall tasks
+- name: Install CEPH
+  import_playbook: "../apps/ceph/kubespray/playbooks/install.yml"
+  tags: postinstall
+
+- name: Install Prometheus
+  import_playbook: "../apps/prometheus/kubespray/playbooks/install.yml"
+  tags: postinstall
+
+- name: Install Eiffel
+  import_playbook: "../apps/eiffel/install.yml"
+  tags: postinstall
+
+# vim: set ts=2 sw=2 expandtab:
index 361025e..08f7f1b 100644 (file)
@@ -49,6 +49,7 @@ scenarios:
   - k8-calico-istio
   - k8-calico-nofeature
   - k8-calico-spinnaker
+  - k8-calico-eiffel
   - k8-canal-nofeature
   - k8-cilium-nofeature
   - k8-flannel-nofeature