From 5ed2d835de246e3cfb0878d78b382115ec8f0987 Mon Sep 17 00:00:00 2001 From: Fatih Degirmenci Date: Sat, 31 Aug 2019 18:50:05 +0200 Subject: Refactor k8s scenario implementation This change updates the scenario logic for basic k8s scenarios that enables the use of various network plugins. The change simply stops copying k8s-cluster.yml over but instead operates on the existing/original k8s-cluster.yml and updates kube_network_plugin in place. This makes it easier to maintain the scenarios and more importantly unblocks us from bumping kubespray and kubernetes versions. Please note that opnfv-scenario-requirements.yml contains version and the refspec of the corresponding change in releng-xci-scenarios repo so this change must be verified properly and if it passes CI, it needs to be amended, updating k8-calico-nofeature scenario's version to master and submitted. And then the change in releng-xci-scenarios can properly be verified. https://gerrit.opnfv.org/gerrit/#/c/releng-xci-scenarios/+/68418/ installer-type:kubespray deploy-scenario:k8-calico-nofeature JIRA: XCI-20 Change-Id: I1f851d20f5f7bc256199303581b05659091fddf9 Signed-off-by: Fatih Degirmenci --- .../kubespray/playbooks/configure-installer.yml | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 xci/installer/kubespray/playbooks/configure-installer.yml (limited to 'xci/installer/kubespray/playbooks/configure-installer.yml') diff --git a/xci/installer/kubespray/playbooks/configure-installer.yml b/xci/installer/kubespray/playbooks/configure-installer.yml new file mode 100644 index 00000000..1f3b3d6f --- /dev/null +++ b/xci/installer/kubespray/playbooks/configure-installer.yml @@ -0,0 +1,46 @@ +--- +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +- hosts: localhost + connection: local + vars_files: + - "{{ xci_path }}/xci/var/opnfv.yml" + + tasks: + - name: delete existing kubespray/inventory/opnfv directory + file: + path: "{{ xci_path }}/.cache/repos/kubespray/inventory/opnfv" + state: absent + + - name: copy kubespray/inventory/sample as kubespray/inventory/opnfv + copy: + src: "{{ xci_path }}/.cache/repos/kubespray/inventory/sample/" + dest: "{{ xci_path }}/.cache/repos/kubespray/inventory/opnfv" + + - name: update kubespray k8s-cluster.yml for xci + lineinfile: + path: "{{ xci_path }}/.cache/repos/kubespray/inventory/opnfv/group_vars/k8s-cluster/k8s-cluster.yml" + regexp: "{{ item.regexp }}" + line: "{{ item.line }}" + with_items: + - { regexp: "kube_version:.*", line: "kube_version: {{ kubernetes_version }}" } + - { regexp: "kubeconfig_localhost:.*", line: "kubeconfig_localhost: true" } + - { regexp: "kube_basic_auth:.*", line: "kube_basic_auth: true" } + - { regexp: "dashboard_enabled:.*", line: "dashboard_enabled: true" } + + - name: update kubespray artifacts_dir + lineinfile: + path: "{{ xci_path }}/.cache/repos/kubespray/inventory/opnfv/group_vars/k8s-cluster/k8s-cluster.yml" + regexp: "artifacts_dir:.*" + line: "artifacts_dir: '{{ '{{' }} ansible_env.HOME {{ '}}' }}'" + + - name: change dashboard server type to NodePort + lineinfile: + path: "{{ xci_path }}/.cache/repos/kubespray/roles/kubernetes-apps/ansible/templates/dashboard.yml.j2" + insertafter: 'targetPort' + line: " type: NodePort" -- cgit 1.2.3-korg