From ee0c6bc055afab2ed29dc89f389ac8d8af280bfc Mon Sep 17 00:00:00 2001 From: nauman Date: Tue, 8 Feb 2022 06:23:01 +0000 Subject: [PATCH] Eiffel installation using easy2use basic eiffel installation added new eiffel deploy scenario Deploy-Scenario: k8-calico-eiffel Change-Id: I053821d935ae3c727a5dab0e8be3660a000a9e84 --- apps/eiffel/install.yml | 26 +++++++++ apps/eiffel/roles/install/tasks/easy2use.yml | 44 +++++++++++++++ apps/eiffel/roles/install/tasks/main.yml | 21 ++++++++ apps/eiffel/roles/install/tasks/poll-pods.yml | 31 +++++++++++ apps/eiffel/roles/install/vars/main.yml | 25 +++++++++ scenarios/k8-calico-eiffel.yaml | 54 +++++++++++++++++++ vars/kubernetes.yaml | 1 + 7 files changed, 202 insertions(+) create mode 100644 apps/eiffel/install.yml create mode 100644 apps/eiffel/roles/install/tasks/easy2use.yml create mode 100644 apps/eiffel/roles/install/tasks/main.yml create mode 100644 apps/eiffel/roles/install/tasks/poll-pods.yml create mode 100644 apps/eiffel/roles/install/vars/main.yml create mode 100644 scenarios/k8-calico-eiffel.yaml diff --git a/apps/eiffel/install.yml b/apps/eiffel/install.yml new file mode 100644 index 0000000..f12b964 --- /dev/null +++ b/apps/eiffel/install.yml @@ -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 index 0000000..305aee3 --- /dev/null +++ b/apps/eiffel/roles/install/tasks/easy2use.yml @@ -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 index 0000000..d678615 --- /dev/null +++ b/apps/eiffel/roles/install/tasks/main.yml @@ -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 index 0000000..1ddfd52 --- /dev/null +++ b/apps/eiffel/roles/install/tasks/poll-pods.yml @@ -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 index 0000000..2d62231 --- /dev/null +++ b/apps/eiffel/roles/install/vars/main.yml @@ -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 index 0000000..29fac2d --- /dev/null +++ b/scenarios/k8-calico-eiffel.yaml @@ -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: diff --git a/vars/kubernetes.yaml b/vars/kubernetes.yaml index 361025e..08f7f1b 100644 --- a/vars/kubernetes.yaml +++ b/vars/kubernetes.yaml @@ -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 -- 2.25.1