From: Fatih Degirmenci Date: Thu, 2 Jul 2020 08:34:05 +0000 (+0000) Subject: Bring Kubernetes 1.15 X-Git-Url: https://gerrit.nordix.org/gitweb?p=infra%2Fstack%2Fkubernetes.git;a=commitdiff_plain;h=a446d5d5c0bf09edf6884aea8e829ddc184464dc Bring Kubernetes 1.15 This change brings K8s 1.15 to Nordix. Some notes about K8s 1.15 support of engine. - The support is only included for the scenario k8-calico-nofeature. - Deployment with the scenario k8-multus-plugins fails and other scenarios are not tested since they may not be relevant for us anymore. Due to this those scenarios have been removed from 1.15 branch. - Installer, infra/installer/kubespray, 1.15 branch is tracked by this branch. An example command to deploy K8s 1.15 in online mode with the engine is. - clone engine repo as usual - cd engine/engine - ./deploy.sh -s kubernetes -b 1.15 -c k8-calico-nofeature \ -p -i -v If you are deploying on OpenStack using Heat, you need to - specify the location of openrc file - pass heat environment file as pdf An example command to package K8s 1.15 for offline deployment with the engine is. - clone engine repo as usual - cd engine/engine - ./package.sh -s kubernetes -b 1.15 -v Change-Id: Ic594b74780b6cdc309e36c24cea75e8e60863b2b --- diff --git a/.gitreview b/.gitreview index 5a06466..02f0e76 100644 --- a/.gitreview +++ b/.gitreview @@ -2,4 +2,4 @@ host=gerrit.nordix.org port=29418 project=infra/stack/kubernetes.git -defaultbranch=master +defaultbranch=1.15 diff --git a/scenarios/k8-calico-istio.yaml b/scenarios/k8-calico-istio.yaml deleted file mode 100644 index ca09ba8..0000000 --- a/scenarios/k8-calico-istio.yaml +++ /dev/null @@ -1,54 +0,0 @@ ---- -# ============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========================================================= - -# 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 Istio - import_playbook: "../apps/istio/kubespray/playbooks/install.yml" - tags: postinstall - -# vim: set ts=2 sw=2 expandtab: diff --git a/scenarios/k8-calico-spinnaker.yaml b/scenarios/k8-calico-spinnaker.yaml deleted file mode 100644 index 9d5cb2f..0000000 --- a/scenarios/k8-calico-spinnaker.yaml +++ /dev/null @@ -1,54 +0,0 @@ ---- -# ============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========================================================= - -# 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 Spinnaker - import_playbook: "../apps/spinnaker/kubespray/playbooks/install.yml" - tags: postinstall - -# vim: set ts=2 sw=2 expandtab: diff --git a/scenarios/k8-canal-nofeature.yaml b/scenarios/k8-canal-nofeature.yaml deleted file mode 100644 index afad438..0000000 --- a/scenarios/k8-canal-nofeature.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -# ============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========================================================= - -# NOTE (fdegir): scenario specific preinstall tasks -- hosts: localhost - connection: local - gather_facts: false - become: false - tags: - - preinstall - - tasks: - # set networking plugin to canal - - name: Set network plugin to Canal - lineinfile: - path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml" - regexp: "^kube_network_plugin:.*" - line: "kube_network_plugin: canal" - -# 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 - -# vim: set ts=2 sw=2 expandtab: diff --git a/scenarios/k8-cilium-nofeature.yaml b/scenarios/k8-cilium-nofeature.yaml deleted file mode 100644 index d82f251..0000000 --- a/scenarios/k8-cilium-nofeature.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -# ============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========================================================= - -# NOTE (fdegir): scenario specific preinstall tasks -- hosts: localhost - connection: local - gather_facts: false - become: false - tags: - - preinstall - - tasks: - # set networking plugin to cilium - - name: Set network plugin to Cilium - lineinfile: - path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml" - regexp: "^kube_network_plugin:.*" - line: "kube_network_plugin: cilium" - -# 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 - -# vim: set ts=2 sw=2 expandtab: diff --git a/scenarios/k8-flannel-nofeature.yaml b/scenarios/k8-flannel-nofeature.yaml deleted file mode 100644 index 1183517..0000000 --- a/scenarios/k8-flannel-nofeature.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -# ============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========================================================= - -# NOTE (fdegir): scenario specific preinstall tasks -- hosts: localhost - connection: local - gather_facts: false - become: false - tags: - - preinstall - - tasks: - # set networking plugin to flannel - - name: Set network plugin to Flannel - lineinfile: - path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml" - regexp: "^kube_network_plugin:.*" - line: "kube_network_plugin: flannel" - -# 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 - -# vim: set ts=2 sw=2 expandtab: diff --git a/scenarios/k8-multus-nofeature.yaml b/scenarios/k8-multus-nofeature.yaml deleted file mode 100644 index 1840e4a..0000000 --- a/scenarios/k8-multus-nofeature.yaml +++ /dev/null @@ -1,57 +0,0 @@ ---- -# ============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========================================================= - -# NOTE (fdegir): scenario specific preinstall tasks -- hosts: localhost - connection: local - gather_facts: false - become: false - tags: - - preinstall - - tasks: - # set master plugin to calico for multus to use as the primary network plugin - - name: Configure Multus to use Calico as the primary network plugin - lineinfile: - path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml" - regexp: "^kube_network_plugin:.*" - line: "kube_network_plugin: calico" - - # configure multus to use ca - - name: Enable Multus network plugin - lineinfile: - path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml" - regexp: "^kube_network_plugin_multus:.*" - line: "kube_network_plugin_multus: true" - -# 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 - -# vim: set ts=2 sw=2 expandtab: diff --git a/scenarios/k8-multus-plugins.yaml b/scenarios/k8-multus-plugins.yaml deleted file mode 100644 index 599558b..0000000 --- a/scenarios/k8-multus-plugins.yaml +++ /dev/null @@ -1,72 +0,0 @@ ---- -# ============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========================================================= - -# NOTE (fdegir): scenario specific preinstall tasks -- hosts: localhost - connection: local - gather_facts: false - become: false - tags: - - preinstall - - tasks: - # set master plugin to calico for multus to use as the primary network plugin - - name: Configure Multus to use Calico as the primary network plugin - lineinfile: - path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml" - regexp: "^kube_network_plugin:.*" - line: "kube_network_plugin: calico" - - # configure multus to use ca - - name: Enable Multus network plugin - lineinfile: - path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml" - regexp: "^kube_network_plugin_multus:.*" - line: "kube_network_plugin_multus: true" - -# 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 - -- hosts: k8s-cluster - gather_facts: false - become: false - tags: - - postinstall - - tasks: - - name: Include Kubespray vars - include_vars: "{{ item }}" - with_items: - - "{{ engine_cache }}/repos/kubespray/roles/kubespray-defaults/defaults/main.yaml" - - "{{ engine_cache }}/repos/kubespray/roles/download/defaults/main.yml" - - - include_tasks: "{{ engine_cache }}/repos/kubespray/roles/network_plugin/cni/tasks/main.yml" - -# vim: set ts=2 sw=2 expandtab: diff --git a/scenarios/k8-weave-nofeature.yaml b/scenarios/k8-weave-nofeature.yaml deleted file mode 100644 index 56637ab..0000000 --- a/scenarios/k8-weave-nofeature.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -# ============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========================================================= - -# NOTE (fdegir): scenario specific preinstall tasks -- hosts: localhost - connection: local - gather_facts: false - become: false - tags: - - preinstall - - tasks: - # set networking plugin to weave - - name: Set network plugin to Weave - lineinfile: - path: "{{ engine_cache }}/repos/kubespray/inventory/engine/group_vars/k8s-cluster/k8s-cluster.yml" - regexp: "^kube_network_plugin:.*" - line: "kube_network_plugin: weave" - -# 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 - -# vim: set ts=2 sw=2 expandtab: diff --git a/vars/kubernetes.yaml b/vars/kubernetes.yaml index 5accc01..e9b86cd 100644 --- a/vars/kubernetes.yaml +++ b/vars/kubernetes.yaml @@ -36,32 +36,19 @@ installers: kubespray: scm: git src: https://gerrit.nordix.org/infra/installer/kubespray.git - version: "{{ lookup('env', 'NORDIX_KUBESPRAY_VERSION') | default('master', true) }}" + version: "{{ lookup('env', 'NORDIX_KUBESPRAY_VERSION') | default('1.15', true) }}" refspec: "{{ lookup('env', 'NORDIX_KUBESPRAY_REFSPEC') | default(omit) }}" -# NOTE (fdegir): this is only the list of scenarios implemented within -# installer repository and does not list what apps are for curated for -# them as it is self documented within the scenario playbook in installer -# repository. Curated apps are not listed separately either as they are -# similar to scenarios; they are available in installer repository. +# NOTE (fdegir): this is only the list of scenarios supported by this version of the stack scenarios: - - k8-calico-istio - k8-calico-nofeature - - k8-calico-spinnaker - - k8-canal-nofeature - - k8-cilium-nofeature - - k8-flannel-nofeature - - k8-multus-nofeature - - k8-multus-plugins - - k8-weave-nofeature # ------------------------------------------------------------------------------- # Kubernetes: Kubernetes and kubectl versions # ------------------------------------------------------------------------------- # Kubernetes version that is supported by the pinned kubespray version -kubernetes_version: "v1.17.0" +kubernetes_version: "v1.15.9" # version of the kubectl should generally match to the version of kubernetes itself -# but it would be good to have possibility to override it in case if someone needs it for some reason kubectl_version: "{{ kubernetes_version }}" # -------------------------------------------------------------------------------