From 1556d1c63e834ef046acbe33739ec85858086627 Mon Sep 17 00:00:00 2001 From: Bill Young Date: Wed, 15 Jun 2016 12:58:44 -0400 Subject: [PATCH 001/695] Add IAM profiles for Kubernetes nodes --- .../terraform/aws/00-create-infrastructure.tf | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/contrib/terraform/aws/00-create-infrastructure.tf b/contrib/terraform/aws/00-create-infrastructure.tf index 12fcfd2ec..09cfac37c 100755 --- a/contrib/terraform/aws/00-create-infrastructure.tf +++ b/contrib/terraform/aws/00-create-infrastructure.tf @@ -81,6 +81,112 @@ provider "aws" { region = "${var.awsRegion}" } +variable "iam_prefix" { + type = "string" + description = "Prefix name for IAM profiles" +} + +resource "aws_iam_instance_profile" "kubernetes_master_profile" { + name = "${var.iam_prefix}_kubernetes_master_profile" + roles = ["${aws_iam_role.kubernetes_master_role.name}"] +} + +resource "aws_iam_role" "kubernetes_master_role" { + name = "${var.iam_prefix}_kubernetes_master_role" + assume_role_policy = < Date: Tue, 21 Jun 2016 12:11:10 +0200 Subject: [PATCH 002/695] upgrade pypy version --- roles/coreos-bootstrap/files/bootstrap.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/coreos-bootstrap/files/bootstrap.sh b/roles/coreos-bootstrap/files/bootstrap.sh index e041ed291..f744085b6 100644 --- a/roles/coreos-bootstrap/files/bootstrap.sh +++ b/roles/coreos-bootstrap/files/bootstrap.sh @@ -11,7 +11,7 @@ if [[ -e $BINDIR/.bootstrapped ]]; then exit 0 fi -PYPY_VERSION=2.4.0 +PYPY_VERSION=5.1.0 wget -O - https://bitbucket.org/pypy/pypy/downloads/pypy-$PYPY_VERSION-linux64.tar.bz2 |tar -xjf - mv -n pypy-$PYPY_VERSION-linux64 pypy From d94253ff6a577d4cceb50f2ca9029e3ebfeee61d Mon Sep 17 00:00:00 2001 From: Chris Bell Date: Wed, 22 Jun 2016 09:44:31 -0400 Subject: [PATCH 003/695] Modify calico docker.service --- .../calico/templates/systemd-docker.service | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/roles/network_plugin/calico/templates/systemd-docker.service b/roles/network_plugin/calico/templates/systemd-docker.service index 43b49618f..3d019c7a3 100644 --- a/roles/network_plugin/calico/templates/systemd-docker.service +++ b/roles/network_plugin/calico/templates/systemd-docker.service @@ -12,9 +12,9 @@ Requires=docker.socket [Service] Type=notify {% if ansible_os_family == "RedHat" %} -EnvironmentFile=-/etc/sysconfig/docker -EnvironmentFile=-/etc/sysconfig/docker-network -EnvironmentFile=-/etc/sysconfig/docker-storage +EnvironmentFile=-/etc/default/docker +EnvironmentFile=-/etc/default/docker-network +EnvironmentFile=-/etc/docker/docker-storage {% elif ansible_os_family == "Debian" %} EnvironmentFile=-/etc/default/docker {% endif %} @@ -23,7 +23,8 @@ ExecStart=/usr/bin/docker daemon \ $OPTIONS \ $DOCKER_STORAGE_OPTIONS \ $DOCKER_NETWORK_OPTIONS \ - $INSECURE_REGISTRY + $INSECURE_REGISTRY \ + $DOCKER_OPTS LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity From 9e59c74c24837436a8b03dab224ef30f3e40bbfd Mon Sep 17 00:00:00 2001 From: Chris Bell Date: Wed, 22 Jun 2016 09:51:49 -0400 Subject: [PATCH 004/695] Maintain backwards compatibility with EL6 --- roles/network_plugin/calico/templates/systemd-docker.service | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/roles/network_plugin/calico/templates/systemd-docker.service b/roles/network_plugin/calico/templates/systemd-docker.service index 3d019c7a3..01383d772 100644 --- a/roles/network_plugin/calico/templates/systemd-docker.service +++ b/roles/network_plugin/calico/templates/systemd-docker.service @@ -13,8 +13,9 @@ Requires=docker.socket Type=notify {% if ansible_os_family == "RedHat" %} EnvironmentFile=-/etc/default/docker -EnvironmentFile=-/etc/default/docker-network -EnvironmentFile=-/etc/docker/docker-storage +EnvironmentFile=-/etc/sysconfig/docker +EnvironmentFile=-/etc/sysconfig/docker-network +EnvironmentFile=-/etc/sysconfig/docker-storage {% elif ansible_os_family == "Debian" %} EnvironmentFile=-/etc/default/docker {% endif %} From c4c312c2e6ee1c9343b826c727e0b6fd57aeeb6f Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Fri, 24 Jun 2016 18:10:01 +0300 Subject: [PATCH 005/695] Add configurable option for kube_apiserver_insecure_bind_address --- roles/kubernetes/master/templates/kube-apiserver.j2 | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/roles/kubernetes/master/templates/kube-apiserver.j2 b/roles/kubernetes/master/templates/kube-apiserver.j2 index 341bae861..c74f80723 100644 --- a/roles/kubernetes/master/templates/kube-apiserver.j2 +++ b/roles/kubernetes/master/templates/kube-apiserver.j2 @@ -20,6 +20,9 @@ KUBE_ALLOW_PRIV="--allow_privileged=true" # The port on the local server to listen on. KUBE_API_PORT="--insecure-port={{kube_apiserver_insecure_port}} --secure-port={{ kube_apiserver_port }}" +# Insecure API address (default is localhost) +KUBE_API_INSECURE_BIND="--insecure-bind-address={{ kube_apiserver_insecure_bind_address | default('127.0.0.1') }}" + # Address range to use for services KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range={{ kube_service_addresses }}" @@ -46,7 +49,7 @@ KUBELET_CLOUDPROVIDER="" {% endif %} {% if ansible_service_mgr in ["sysvinit","upstart"] %} -DAEMON_ARGS="$KUBE_LOGGING $KUBE_LOG_LEVEL $KUBE_ALLOW_PRIV $KUBE_API_PORT $KUBE_SERVICE_ADDRESSES \ -$KUBE_ETCD_SERVERS $KUBE_ADMISSION_CONTROL $KUBE_RUNTIME_CONFIG $KUBE_TLS_CONFIG $KUBE_API_ARGS \ -$KUBELET_CLOUDPROVIDER" +DAEMON_ARGS="$KUBE_LOGGING $KUBE_LOG_LEVEL $KUBE_ALLOW_PRIV $KUBE_API_PORT $KUBE_API_INSECURE_BIND \ +$KUBE_SERVICE_ADDRESSES $KUBE_ETCD_SERVERS $KUBE_ADMISSION_CONTROL $KUBE_RUNTIME_CONFIG \ +$KUBE_TLS_CONFIG $KUBE_API_ARGS $KUBELET_CLOUDPROVIDER" {% endif %} From 708d2fbd6148072ae9e6a52e714d7ca1d02646e1 Mon Sep 17 00:00:00 2001 From: mattymo Date: Mon, 27 Jun 2016 13:01:22 +0400 Subject: [PATCH 006/695] Add KUBE_API_INSECURE_BIND to systemd unit file This was missing from commit c4c312c2e6ee1c9343b826c727e0b6fd57aeeb6f --- roles/kubernetes/master/templates/kube-apiserver.service.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/kubernetes/master/templates/kube-apiserver.service.j2 b/roles/kubernetes/master/templates/kube-apiserver.service.j2 index 90bc8e688..699797171 100644 --- a/roles/kubernetes/master/templates/kube-apiserver.service.j2 +++ b/roles/kubernetes/master/templates/kube-apiserver.service.j2 @@ -13,6 +13,7 @@ ExecStart={{ bin_dir }}/kube-apiserver \ $KUBE_ETCD_SERVERS \ $KUBE_API_ADDRESS \ $KUBE_API_PORT \ + $KUBE_API_INSECURE_BIND \ $KUBELET_PORT \ $KUBE_ALLOW_PRIV \ $KUBE_SERVICE_ADDRESSES \ From 536454b0794bc63aac4a806a2fd20ba749b586cc Mon Sep 17 00:00:00 2001 From: Smana Date: Mon, 27 Jun 2016 17:49:56 +0200 Subject: [PATCH 007/695] upgrade etcd version to 2.3.7 --- roles/download/defaults/main.yml | 4 ++-- roles/etcd/defaults/main.yml | 2 +- roles/uploads/defaults/main.yml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index f0be716e9..2be226e62 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -6,7 +6,7 @@ download_run_once: False # Versions kube_version: "v1.2.4" -etcd_version: v2.2.5 +etcd_version: v2.3.7 calico_version: v0.20.0 calico_cni_version: v1.3.1 weave_version: v1.5.0 @@ -27,7 +27,7 @@ calico_checksum: "0d1d15c03ea53cc1a16f2faf02626ed8951829ece410a36fdb93e5a19fbab6 calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" -etcd_checksum: "aa6037406257d2a1bc48ffa769afe7a4f8a04cc1ffcd36ef84f9ee8bc4eca756" +etcd_checksum: "ab102d271026a4060c9f85ecad11f454d82b1df7b8e676cc3da69f67eb078729" kubectl_checksum: "dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897" kubelet_checksum: "4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341" kube_apiserver_checksum: "6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e" diff --git a/roles/etcd/defaults/main.yml b/roles/etcd/defaults/main.yml index 2a491031d..8e80bfcc8 100644 --- a/roles/etcd/defaults/main.yml +++ b/roles/etcd/defaults/main.yml @@ -1,3 +1,3 @@ --- -etcd_version: v2.2.5 +etcd_version: v2.3.7 etcd_bin_dir: "{{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64/" diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index 20450cd37..3dadb504b 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -3,7 +3,7 @@ local_release_dir: /tmp # Versions kube_version: "v1.2.4" -etcd_version: v2.2.5 +etcd_version: v2.3.7 calico_version: v0.20.0 calico_cni_version: v1.3.1 weave_version: v1.5.0 @@ -21,7 +21,7 @@ calico_checksum: "0d1d15c03ea53cc1a16f2faf02626ed8951829ece410a36fdb93e5a19fbab6 calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" -etcd_checksum: "aa6037406257d2a1bc48ffa769afe7a4f8a04cc1ffcd36ef84f9ee8bc4eca756" +etcd_checksum: "ab102d271026a4060c9f85ecad11f454d82b1df7b8e676cc3da69f67eb078729" kubectl_checksum: "dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897" kubelet_checksum: "4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341" kube_apiserver_checksum: "6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e" From a4396cfca0b0d7828ee151115237667eb01a7072 Mon Sep 17 00:00:00 2001 From: Smana Date: Tue, 14 Jun 2016 20:59:54 +0200 Subject: [PATCH 008/695] use python script to update sha256 sum in the vars --- roles/download/defaults/kube_versions.yml | 9 ++ roles/download/defaults/main.yml | 7 +- roles/uploads/defaults/kube_versions.yml | 9 ++ roles/uploads/defaults/main.yml | 6 +- scripts/change_k8s_version.py | 85 ++++++++++++++++ scripts/change_k8s_version.sh | 117 ---------------------- 6 files changed, 108 insertions(+), 125 deletions(-) create mode 100644 roles/download/defaults/kube_versions.yml create mode 100644 roles/uploads/defaults/kube_versions.yml create mode 100644 scripts/change_k8s_version.py delete mode 100755 scripts/change_k8s_version.sh diff --git a/roles/download/defaults/kube_versions.yml b/roles/download/defaults/kube_versions.yml new file mode 100644 index 000000000..dabe543e5 --- /dev/null +++ b/roles/download/defaults/kube_versions.yml @@ -0,0 +1,9 @@ +kube_version: + v1.2.3: + kube_apiserver_checksum: ebaeeeb72cb29b358337b330617a96355ff2d08a5a523fc1a81beba36cc9d6f9 + kubectl_checksum: 394853edd409a721bcafe4f1360009ef9f845050719fe7d6fc7176f45cc92a8c + kubelet_checksum: 633bb41c51c5c0df0645dd60ba82b12eba39d009eb87bae9227de7d9a89c0797 + v1.2.4: + kube_apiserver_checksum: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e + kubectl_checksum: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 + kubelet_checksum: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 2be226e62..51db5d1b0 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -4,8 +4,10 @@ local_release_dir: /tmp # if this is set to true will only download files once download_run_once: False + # Versions -kube_version: "v1.2.4" +include_vars: kube_versions.yml + etcd_version: v2.3.7 calico_version: v0.20.0 calico_cni_version: v1.3.1 @@ -28,9 +30,6 @@ calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99 calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" etcd_checksum: "ab102d271026a4060c9f85ecad11f454d82b1df7b8e676cc3da69f67eb078729" -kubectl_checksum: "dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897" -kubelet_checksum: "4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341" -kube_apiserver_checksum: "6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e" downloads: calico: diff --git a/roles/uploads/defaults/kube_versions.yml b/roles/uploads/defaults/kube_versions.yml new file mode 100644 index 000000000..dabe543e5 --- /dev/null +++ b/roles/uploads/defaults/kube_versions.yml @@ -0,0 +1,9 @@ +kube_version: + v1.2.3: + kube_apiserver_checksum: ebaeeeb72cb29b358337b330617a96355ff2d08a5a523fc1a81beba36cc9d6f9 + kubectl_checksum: 394853edd409a721bcafe4f1360009ef9f845050719fe7d6fc7176f45cc92a8c + kubelet_checksum: 633bb41c51c5c0df0645dd60ba82b12eba39d009eb87bae9227de7d9a89c0797 + v1.2.4: + kube_apiserver_checksum: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e + kubectl_checksum: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 + kubelet_checksum: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index 3dadb504b..a776dfeae 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -2,7 +2,8 @@ local_release_dir: /tmp # Versions -kube_version: "v1.2.4" +include_vars: kube_versions.yml + etcd_version: v2.3.7 calico_version: v0.20.0 calico_cni_version: v1.3.1 @@ -22,9 +23,6 @@ calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99 calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" etcd_checksum: "ab102d271026a4060c9f85ecad11f454d82b1df7b8e676cc3da69f67eb078729" -kubectl_checksum: "dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897" -kubelet_checksum: "4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341" -kube_apiserver_checksum: "6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e" downloads: - name: calico diff --git a/scripts/change_k8s_version.py b/scripts/change_k8s_version.py new file mode 100644 index 000000000..8db6aee07 --- /dev/null +++ b/scripts/change_k8s_version.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# This file is part of Kargo. +# +# Foobar is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Foobar is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Foobar. If not, see . +import sys +import hashlib +import urllib2 +import yaml +import argparse + + +def get_remote_sha256_sum(url, max_file_size=100*1024*1024): + remote = urllib2.urlopen(url) + hash = hashlib.sha256() + total_read = 0 + while True: + data = remote.read(4096) + total_read += 4096 + if not data or total_read > max_file_size: + break + hash.update(data) + return hash.hexdigest() + + +def read_vars(var_file): + """ + Read the variables file + """ + try: + with open(var_file, "r") as f: + kargovars = yaml.load(f) + except: + print( + "Can't read variables file %s" % var_file + ) + sys.exit(1) + return kargovars + + +def get_kube_sha256(version, download_url, binaries): + kube_sha256 = dict() + for k in binaries: + s = get_remote_sha256_sum(download_url + '/' + k) + kube_sha256[k] = s + kube_sha256[k + '_checksum'] = kube_sha256.pop(k) + kube_sha256['kube_apiserver_checksum'] = kube_sha256.pop('kube-apiserver_checksum') + return(kube_sha256) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + prog='change_k8s_version', + description='%(prog)s changes the version to be installed with kargo', + ) + + parser.add_argument( + '-v', '--version', dest='kube_version', required=True, + help="kubernetes version" + ) + args = parser.parse_args() + + kube_binaries = ['kubelet', 'kubectl', 'kube-apiserver'] + kargo_root = ".." + var_files = ['../roles/uploads/defaults/kube_versions.yml', '../roles/download/defaults/kube_versions.yml'] + kube_download_url = "https://storage.googleapis.com/kubernetes-release/release/%s/bin/linux/amd64" % args.kube_version + + new = get_kube_sha256(args.kube_version, kube_download_url, kube_binaries) + for f in var_files: + current = read_vars(f) + current['kube_version'][args.kube_version] = new + with open(f, 'w') as out: + out.write(yaml.dump(current, indent=4, default_flow_style=False)) diff --git a/scripts/change_k8s_version.sh b/scripts/change_k8s_version.sh deleted file mode 100755 index 8c00e7168..000000000 --- a/scripts/change_k8s_version.sh +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/bash - -# This file is part of Kargo. -# -# Foobar is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Foobar is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Foobar. If not, see . - -#color variables -txtbld=$(tput bold) # Bold -bldred=${txtbld}$(tput setaf 1) # red -bldgre=${txtbld}$(tput setaf 2) # green -bldylw=${txtbld}$(tput setaf 3) # yellow -txtrst=$(tput sgr0) # Reset -err=${bldred}ERROR${txtrst} -info=${bldgre}INFO${txtrst} -warn=${bldylw}WARNING${txtrst} - -usage() -{ - cat << EOF -Update ansible playbook with a specific kubernetes version - -Usage : $(basename $0) -v - -h | --help : Show this message - -i | --init : Initial upgrade (download binaries) - -v | --version : Kubernetes version - - ex : switch to kubernetes v1.2.4 - $(basename $0) -v v1.2.4 -EOF -} - -# Options parsing -while (($#)); do - case "$1" in - -h | --help) usage; exit 0;; - -i | --init) INIT=1; shift;; - -v | --version) VERS=${2}; shift 2;; - *) - usage - echo "ERROR : Unknown option" - exit 3 - ;; - esac -done - -if [ -z ${VERS} ]; then - usage - echo -e "\n${err}: The option version must be defined" - exit 3 -else - if ! [[ ${VERS} =~ ^v[0-9]\.[0-9]\.[0-9]$ ]]; then - echo -e "\n${err}: Invalid version format (ex: v1.2.4)" - exit 1 - fi -fi - -UPLOAD_VARFILE="roles/uploads/defaults/main.yml" -DOWNLOAD_VARFILE="roles/download/defaults/main.yml" -K8S_BIN="kubelet kubectl kube-apiserver" - -if [[ ${INIT} -eq 1 ]]; then - DOWNLOAD_URL=https://storage.googleapis.com/kubernetes-release/release/${VERS}/bin/linux/amd64 - TMP_DIR=$(mktemp -d --tmpdir kubernetes_tmpbin_XXXXXXX) - sed -i "s/^hyperkube_image_tag.*$/hyperkube_image_tag: \"${VERS}\"/" roles/kubernetes/node/defaults/main.yml - trap 'rm -rf "${tmpdir}"' EXIT - cd "${tmpdir}" - - for BIN in ${K8S_BIN}; do - curl -s -o ${BIN} ${DOWNLOAD_URL}/${BIN} - if [ $? -ne 0 ]; then - echo -e "\n${err}: Downloading ${BIN} failed! Try again" - exit 1 - else - echo -e "\n${info}: ${BIN} downloaded successfuly" - fi - done - - for varfile in ${UPLOAD_VARFILE} ${DOWNLOAD_VARFILE}; do - sed -i "s/^kube_version.*$/kube_version: \"${VERS}\"/" ${varfile} - - for BIN in ${K8S_BIN}; do - CHECKSUM=$(sha256sum ${BIN} | cut -d' ' -f1) - BIN=$(echo ${BIN} | tr '-' '_') - sed -i "s/^${BIN}_checksum.*$/${BIN}_checksum: \"${CHECKSUM}\"/" ${varfile} - done - done - - rm -rf "${tmpdir}" -else - CHECKSUM_URL=https://storage.googleapis.com/kargo/${VERS}_k8s-sha256 - sed -i "s/^hyperkube_image_tag.*$/hyperkube_image_tag: \"${VERS}\"/" roles/kubernetes/node/defaults/main.yml - for varfile in ${UPLOAD_VARFILE} ${DOWNLOAD_VARFILE}; do - sed -i "s/^kube_version.*$/kube_version: \"${VERS}\"/" ${varfile} - for BIN in ${K8S_BIN}; do - if [[ "${BIN}" =~ "apiserver" ]]; then - BIN="apiserver" - fi - line=$(curl -sk ${CHECKSUM_URL} | grep ${BIN}) - CHECKSUM=$(echo ${line} | cut -d':' -f2) - if [[ "${BIN}" =~ "apiserver" ]]; then - BIN="kube_apiserver" - fi - sed -i "s/^${BIN}_checksum.*$/${BIN}_checksum: \"${CHECKSUM}\"/" ${varfile} - done - done -fi From 247a1a6e6eed68ca6d33f88fb5567ead0cc89524 Mon Sep 17 00:00:00 2001 From: Smana Date: Wed, 15 Jun 2016 20:25:58 +0200 Subject: [PATCH 009/695] change hyperkube repository --- roles/download/defaults/kube_versions.yml | 13 +++++++---- roles/download/defaults/main.yml | 6 ++--- roles/kubernetes/node/defaults/main.yml | 2 +- roles/uploads/defaults/kube_versions.yml | 13 +++++++---- roles/uploads/defaults/main.yml | 6 ++--- scripts/change_k8s_version.py | 28 +++++++++++++++++++---- 6 files changed, 49 insertions(+), 19 deletions(-) diff --git a/roles/download/defaults/kube_versions.yml b/roles/download/defaults/kube_versions.yml index dabe543e5..a915bb258 100644 --- a/roles/download/defaults/kube_versions.yml +++ b/roles/download/defaults/kube_versions.yml @@ -1,9 +1,14 @@ -kube_version: +kube_checksum: + v1.2.2: + kube_apiserver: eb1bfd8b877052cbd1991b8c429a1d06661f4cb019905e20e128174f724e16de + kubectl: 473e6924569fba30d4a50cecdc2cae5f31d97d1f662463e85b74a472105dcff4 + kubelet: f16827dc7e7c82f0e215f0fc73eb01e2dfe91a2ec83f9cbcaf8d37c91b64fd3b v1.2.3: kube_apiserver_checksum: ebaeeeb72cb29b358337b330617a96355ff2d08a5a523fc1a81beba36cc9d6f9 kubectl_checksum: 394853edd409a721bcafe4f1360009ef9f845050719fe7d6fc7176f45cc92a8c kubelet_checksum: 633bb41c51c5c0df0645dd60ba82b12eba39d009eb87bae9227de7d9a89c0797 v1.2.4: - kube_apiserver_checksum: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e - kubectl_checksum: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 - kubelet_checksum: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 + kube_apiserver: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e + kubectl: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 + kubelet: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 +kube_version: v1.2.4 diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 51db5d1b0..4643086b6 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -76,7 +76,7 @@ downloads: kubernetes_kubelet: version: "{{kube_version}}" dest: kubernetes/bin/kubelet - sha256: "{{kubelet_checksum}}" + sha256: "{{kube_checksum.kubelet}}" source_url: "{{ kubelet_download_url }}" url: "{{ kubelet_download_url }}" owner: "kube" @@ -84,7 +84,7 @@ downloads: kubernetes_kubectl: dest: kubernetes/bin/kubectl version: "{{kube_version}}" - sha256: "{{kubectl_checksum}}" + sha256: "{{kube_checksum.kubectl}}" source_url: "{{ kubectl_download_url }}" url: "{{ kubectl_download_url }}" owner: "kube" @@ -92,7 +92,7 @@ downloads: kubernetes_apiserver: dest: kubernetes/bin/kube-apiserver version: "{{kube_version}}" - sha256: "{{kube_apiserver_checksum}}" + sha256: "{{kube_checksum.kube_apiserver}}" source_url: "{{ apiserver_download_url }}" url: "{{ apiserver_download_url }}" owner: "kube" diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index e96e7115b..98b1f8b7c 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -31,7 +31,7 @@ dns_domain: "{{ cluster_name }}" kube_proxy_mode: userspace -hyperkube_image_repo: quay.io/smana/kubernetes-hyperkube +hyperkube_image_repo: "quay.io/smana/kubernetes-hyperkube" hyperkube_image_tag: "v1.2.4" # IP address of the DNS server. diff --git a/roles/uploads/defaults/kube_versions.yml b/roles/uploads/defaults/kube_versions.yml index dabe543e5..a915bb258 100644 --- a/roles/uploads/defaults/kube_versions.yml +++ b/roles/uploads/defaults/kube_versions.yml @@ -1,9 +1,14 @@ -kube_version: +kube_checksum: + v1.2.2: + kube_apiserver: eb1bfd8b877052cbd1991b8c429a1d06661f4cb019905e20e128174f724e16de + kubectl: 473e6924569fba30d4a50cecdc2cae5f31d97d1f662463e85b74a472105dcff4 + kubelet: f16827dc7e7c82f0e215f0fc73eb01e2dfe91a2ec83f9cbcaf8d37c91b64fd3b v1.2.3: kube_apiserver_checksum: ebaeeeb72cb29b358337b330617a96355ff2d08a5a523fc1a81beba36cc9d6f9 kubectl_checksum: 394853edd409a721bcafe4f1360009ef9f845050719fe7d6fc7176f45cc92a8c kubelet_checksum: 633bb41c51c5c0df0645dd60ba82b12eba39d009eb87bae9227de7d9a89c0797 v1.2.4: - kube_apiserver_checksum: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e - kubectl_checksum: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 - kubelet_checksum: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 + kube_apiserver: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e + kubectl: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 + kubelet: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 +kube_version: v1.2.4 diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index a776dfeae..039c6656c 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -74,7 +74,7 @@ downloads: - name: kubernetes-kubelet version: "{{kube_version}}" dest: kubernetes/bin/kubelet - sha256: "{{kubelet_checksum}}" + sha256: "{{kube_checksum.kubelet}}" source_url: "{{ kube_download_url }}/kubelet" url: "{{ kube_download_url }}/kubelet" owner: "kube" @@ -83,7 +83,7 @@ downloads: - name: kubernetes-kubectl dest: kubernetes/bin/kubectl version: "{{kube_version}}" - sha256: "{{kubectl_checksum}}" + sha256: "{{kube_checksum.kubectl}}" source_url: "{{ kube_download_url }}/kubectl" url: "{{ kube_download_url }}/kubectl" owner: "kube" @@ -92,7 +92,7 @@ downloads: - name: kubernetes-apiserver dest: kubernetes/bin/kube-apiserver version: "{{kube_version}}" - sha256: "{{kube_apiserver_checksum}}" + sha256: "{{kube_checksum.kube_apiserver}}" source_url: "{{ kube_download_url }}/kube-apiserver" url: "{{ kube_download_url }}/kube-apiserver" owner: "kube" diff --git a/scripts/change_k8s_version.py b/scripts/change_k8s_version.py index 8db6aee07..1fc7d0972 100644 --- a/scripts/change_k8s_version.py +++ b/scripts/change_k8s_version.py @@ -15,11 +15,14 @@ # # You should have received a copy of the GNU General Public License # along with Foobar. If not, see . +import os import sys import hashlib import urllib2 import yaml import argparse +import shutil +from re import sub def get_remote_sha256_sum(url, max_file_size=100*1024*1024): @@ -55,11 +58,22 @@ def get_kube_sha256(version, download_url, binaries): for k in binaries: s = get_remote_sha256_sum(download_url + '/' + k) kube_sha256[k] = s - kube_sha256[k + '_checksum'] = kube_sha256.pop(k) - kube_sha256['kube_apiserver_checksum'] = kube_sha256.pop('kube-apiserver_checksum') + kube_sha256['kube_apiserver'] = kube_sha256.pop('kube-apiserver') return(kube_sha256) +def file_sub(file, regex, string): + "Substitute string in a file" + shutil.move(file, file + '~') + f = open(file + '~', 'r') + data = f.read() + o = open(file, 'w') + o.write(sub(regex, string, data)) + f.close() + o.close() + os.remove(file + '~') + + if __name__ == '__main__': parser = argparse.ArgumentParser( prog='change_k8s_version', @@ -70,16 +84,22 @@ if __name__ == '__main__': '-v', '--version', dest='kube_version', required=True, help="kubernetes version" ) + parser.add_argument( + '-r', '--repository', dest='docker_repository', required=True, + help="hyperkube docker repository" + ) args = parser.parse_args() + file_sub('../roles/kubernetes/node/defaults/main.yml', r'.*hyperkube_image_repo.*', 'hyperkube_image_repo: "%s"' % args.docker_repository) + file_sub('../roles/kubernetes/node/defaults/main.yml', r'.*hyperkube_image_tag.*', 'hyperkube_image_tag: "%s"' % args.kube_version) + kube_binaries = ['kubelet', 'kubectl', 'kube-apiserver'] - kargo_root = ".." var_files = ['../roles/uploads/defaults/kube_versions.yml', '../roles/download/defaults/kube_versions.yml'] kube_download_url = "https://storage.googleapis.com/kubernetes-release/release/%s/bin/linux/amd64" % args.kube_version new = get_kube_sha256(args.kube_version, kube_download_url, kube_binaries) for f in var_files: current = read_vars(f) - current['kube_version'][args.kube_version] = new + current['kube_checksum'][args.kube_version] = new with open(f, 'w') as out: out.write(yaml.dump(current, indent=4, default_flow_style=False)) From c4beee38f633aef97e73bc14ecd22104eff2cb26 Mon Sep 17 00:00:00 2001 From: Smana Date: Sun, 26 Jun 2016 21:14:45 +0200 Subject: [PATCH 010/695] include variables from a distinct file --- roles/download/defaults/main.yml | 7 +++---- roles/download/tasks/main.yml | 2 ++ roles/download/{defaults => vars}/kube_versions.yml | 0 roles/uploads/defaults/main.yml | 6 +++--- roles/uploads/tasks/main.yml | 2 ++ roles/uploads/{defaults => vars}/kube_versions.yml | 0 scripts/change_k8s_version.py | 2 +- 7 files changed, 11 insertions(+), 8 deletions(-) rename roles/download/{defaults => vars}/kube_versions.yml (100%) rename roles/uploads/{defaults => vars}/kube_versions.yml (100%) diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 4643086b6..5128e8f3e 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -4,7 +4,6 @@ local_release_dir: /tmp # if this is set to true will only download files once download_run_once: False - # Versions include_vars: kube_versions.yml @@ -76,7 +75,7 @@ downloads: kubernetes_kubelet: version: "{{kube_version}}" dest: kubernetes/bin/kubelet - sha256: "{{kube_checksum.kubelet}}" + sha256: "{{vars['kube_checksum'][kube_version]['kubelet']}}" source_url: "{{ kubelet_download_url }}" url: "{{ kubelet_download_url }}" owner: "kube" @@ -84,7 +83,7 @@ downloads: kubernetes_kubectl: dest: kubernetes/bin/kubectl version: "{{kube_version}}" - sha256: "{{kube_checksum.kubectl}}" + sha256: "{{vars['kube_checksum'][kube_version]['kubectl']}}" source_url: "{{ kubectl_download_url }}" url: "{{ kubectl_download_url }}" owner: "kube" @@ -92,7 +91,7 @@ downloads: kubernetes_apiserver: dest: kubernetes/bin/kube-apiserver version: "{{kube_version}}" - sha256: "{{kube_checksum.kube_apiserver}}" + sha256: "{{vars['kube_checksum'][kube_version]['kube_apiserver']}}" source_url: "{{ apiserver_download_url }}" url: "{{ apiserver_download_url }}" owner: "kube" diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml index 40bd3c902..40c52f5ea 100644 --- a/roles/download/tasks/main.yml +++ b/roles/download/tasks/main.yml @@ -1,4 +1,6 @@ --- +- include_vars: kube_versions.yml + - name: downloading... debug: msg: "{{ download.url }}" diff --git a/roles/download/defaults/kube_versions.yml b/roles/download/vars/kube_versions.yml similarity index 100% rename from roles/download/defaults/kube_versions.yml rename to roles/download/vars/kube_versions.yml diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index 039c6656c..a8f1002e2 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -74,7 +74,7 @@ downloads: - name: kubernetes-kubelet version: "{{kube_version}}" dest: kubernetes/bin/kubelet - sha256: "{{kube_checksum.kubelet}}" + sha256: "{{vars['kube_checksum'][kube_version]['kubelet']}}" source_url: "{{ kube_download_url }}/kubelet" url: "{{ kube_download_url }}/kubelet" owner: "kube" @@ -83,7 +83,7 @@ downloads: - name: kubernetes-kubectl dest: kubernetes/bin/kubectl version: "{{kube_version}}" - sha256: "{{kube_checksum.kubectl}}" + sha256: "{{vars['kube_checksum'][kube_version]['kubectl']}}" source_url: "{{ kube_download_url }}/kubectl" url: "{{ kube_download_url }}/kubectl" owner: "kube" @@ -92,7 +92,7 @@ downloads: - name: kubernetes-apiserver dest: kubernetes/bin/kube-apiserver version: "{{kube_version}}" - sha256: "{{kube_checksum.kube_apiserver}}" + sha256: "{{vars['kube_checksum'][kube_version]['kube_apiserver']}}" source_url: "{{ kube_download_url }}/kube-apiserver" url: "{{ kube_download_url }}/kube-apiserver" owner: "kube" diff --git a/roles/uploads/tasks/main.yml b/roles/uploads/tasks/main.yml index 279d26dd5..b19c2aa93 100644 --- a/roles/uploads/tasks/main.yml +++ b/roles/uploads/tasks/main.yml @@ -1,4 +1,6 @@ --- +- include_vars: "kube_versions.yml" + - name: Create the checksum file lineinfile: create: yes diff --git a/roles/uploads/defaults/kube_versions.yml b/roles/uploads/vars/kube_versions.yml similarity index 100% rename from roles/uploads/defaults/kube_versions.yml rename to roles/uploads/vars/kube_versions.yml diff --git a/scripts/change_k8s_version.py b/scripts/change_k8s_version.py index 1fc7d0972..6ffbc7946 100644 --- a/scripts/change_k8s_version.py +++ b/scripts/change_k8s_version.py @@ -94,7 +94,7 @@ if __name__ == '__main__': file_sub('../roles/kubernetes/node/defaults/main.yml', r'.*hyperkube_image_tag.*', 'hyperkube_image_tag: "%s"' % args.kube_version) kube_binaries = ['kubelet', 'kubectl', 'kube-apiserver'] - var_files = ['../roles/uploads/defaults/kube_versions.yml', '../roles/download/defaults/kube_versions.yml'] + var_files = ['../roles/uploads/vars/kube_versions.yml', '../roles/download/vars/kube_versions.yml'] kube_download_url = "https://storage.googleapis.com/kubernetes-release/release/%s/bin/linux/amd64" % args.kube_version new = get_kube_sha256(args.kube_version, kube_download_url, kube_binaries) From 8c3f5f08317ae03752cbc1dbfe91390fd72d0e40 Mon Sep 17 00:00:00 2001 From: Smana Date: Mon, 27 Jun 2016 13:02:11 +0200 Subject: [PATCH 011/695] change licence to apache2 --- scripts/change_k8s_version.py | 40 ++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/scripts/change_k8s_version.py b/scripts/change_k8s_version.py index 6ffbc7946..316a2d5e4 100644 --- a/scripts/change_k8s_version.py +++ b/scripts/change_k8s_version.py @@ -1,20 +1,19 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +# Copyright 2016 Kubespray # -# This file is part of Kargo. +# 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 # -# Foobar is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# http://www.apache.org/licenses/LICENSE-2.0 # -# Foobar is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Foobar. If not, see . +# 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. + import os import sys import hashlib @@ -90,11 +89,22 @@ if __name__ == '__main__': ) args = parser.parse_args() - file_sub('../roles/kubernetes/node/defaults/main.yml', r'.*hyperkube_image_repo.*', 'hyperkube_image_repo: "%s"' % args.docker_repository) - file_sub('../roles/kubernetes/node/defaults/main.yml', r'.*hyperkube_image_tag.*', 'hyperkube_image_tag: "%s"' % args.kube_version) + kargo_root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + file_sub( + os.path.join(kargo_root_path, 'roles/kubernetes/node/defaults/main.yml'), + r'.*hyperkube_image_repo.*', 'hyperkube_image_repo: "%s"' % args.docker_repository + ) + file_sub( + os.path.join(kargo_root_path, 'roles/kubernetes/node/defaults/main.yml'), + r'.*hyperkube_image_tag.*', 'hyperkube_image_tag: "%s"' % args.kube_version + ) kube_binaries = ['kubelet', 'kubectl', 'kube-apiserver'] - var_files = ['../roles/uploads/vars/kube_versions.yml', '../roles/download/vars/kube_versions.yml'] + var_files = [ + os.path.join(kargo_root_path, 'roles/uploads/vars/kube_versions.yml'), + os.path.join(kargo_root_path, 'roles/download/vars/kube_versions.yml') + ] kube_download_url = "https://storage.googleapis.com/kubernetes-release/release/%s/bin/linux/amd64" % args.kube_version new = get_kube_sha256(args.kube_version, kube_download_url, kube_binaries) From 85fa3efc06bd6eb8c936370ecd6d2385a8dc4aac Mon Sep 17 00:00:00 2001 From: Smana Date: Wed, 29 Jun 2016 15:38:33 +0200 Subject: [PATCH 012/695] upgrade kubernetes to v1.2.5 --- roles/download/vars/kube_versions.yml | 4 ++++ roles/kubernetes/node/defaults/main.yml | 2 +- roles/uploads/vars/kube_versions.yml | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/roles/download/vars/kube_versions.yml b/roles/download/vars/kube_versions.yml index a915bb258..b0653bba5 100644 --- a/roles/download/vars/kube_versions.yml +++ b/roles/download/vars/kube_versions.yml @@ -11,4 +11,8 @@ kube_checksum: kube_apiserver: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e kubectl: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 kubelet: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 + v1.2.5: + kube_apiserver: fbe8296ad4b194c06f6802a126d35cd2887dc1aded308d4da2b580f270412b33 + kubectl: 5526a496a84701015485e32c86486e2f23599f7a865164f546e619c6a62f7f19 + kubelet: cd15b929f0190876216f397c2c6e7aa8c08d3b047fd90b4980cd68c8f4896211 kube_version: v1.2.4 diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 98b1f8b7c..53eff0c4c 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -32,7 +32,7 @@ dns_domain: "{{ cluster_name }}" kube_proxy_mode: userspace hyperkube_image_repo: "quay.io/smana/kubernetes-hyperkube" -hyperkube_image_tag: "v1.2.4" +hyperkube_image_tag: "v1.2.5" # IP address of the DNS server. # Kubernetes will create a pod with several containers, serving as the DNS diff --git a/roles/uploads/vars/kube_versions.yml b/roles/uploads/vars/kube_versions.yml index a915bb258..b0653bba5 100644 --- a/roles/uploads/vars/kube_versions.yml +++ b/roles/uploads/vars/kube_versions.yml @@ -11,4 +11,8 @@ kube_checksum: kube_apiserver: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e kubectl: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 kubelet: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 + v1.2.5: + kube_apiserver: fbe8296ad4b194c06f6802a126d35cd2887dc1aded308d4da2b580f270412b33 + kubectl: 5526a496a84701015485e32c86486e2f23599f7a865164f546e619c6a62f7f19 + kubelet: cd15b929f0190876216f397c2c6e7aa8c08d3b047fd90b4980cd68c8f4896211 kube_version: v1.2.4 From 72ab34f2105c30185a7f84ee8ee44a52fd6f7ccc Mon Sep 17 00:00:00 2001 From: Daniel Leining Date: Fri, 1 Jul 2016 18:28:28 -0400 Subject: [PATCH 013/695] Add --bind-address to kube-apiserver --- roles/kubernetes/master/templates/kube-apiserver.j2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/roles/kubernetes/master/templates/kube-apiserver.j2 b/roles/kubernetes/master/templates/kube-apiserver.j2 index c74f80723..7ed979d66 100644 --- a/roles/kubernetes/master/templates/kube-apiserver.j2 +++ b/roles/kubernetes/master/templates/kube-apiserver.j2 @@ -29,6 +29,9 @@ KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range={{ kube_service_addresses }}" # Location of the etcd cluster KUBE_ETCD_SERVERS="--etcd_servers={% for host in groups['etcd'] %}http://{{ hostvars[host]['access_ip'] | default(hostvars[host]['ip'] | default(hostvars[host]['ansible_default_ipv4']['address'])) }}:2379{% if not loop.last %},{% endif %}{% endfor %}" +# Bind address for secure endpoint +KUBE_API_ADDRESS="--bind-address={{ ip | default(ansible_default_ipv4.address) }}" + # default admission control policies KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota" From 40fbb3691d94fa9afaf1519cc65ee29b8634f219 Mon Sep 17 00:00:00 2001 From: Smana Date: Sat, 2 Jul 2016 10:33:58 +0200 Subject: [PATCH 014/695] uprade to etcd v3.0.1 --- roles/download/defaults/main.yml | 4 ++-- roles/etcd/defaults/main.yml | 2 +- roles/uploads/defaults/main.yml | 4 ++-- roles/uploads/tasks/main.yml | 18 ------------------ 4 files changed, 5 insertions(+), 23 deletions(-) diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 5128e8f3e..6501a1e1b 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -7,7 +7,7 @@ download_run_once: False # Versions include_vars: kube_versions.yml -etcd_version: v2.3.7 +etcd_version: v3.0.1 calico_version: v0.20.0 calico_cni_version: v1.3.1 weave_version: v1.5.0 @@ -28,7 +28,7 @@ calico_checksum: "0d1d15c03ea53cc1a16f2faf02626ed8951829ece410a36fdb93e5a19fbab6 calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" -etcd_checksum: "ab102d271026a4060c9f85ecad11f454d82b1df7b8e676cc3da69f67eb078729" +etcd_checksum: "7e5d8db2b8a7cec7a93e531c8ae0f3108c66c7d896a2fb6d8768c067923ce0aa" downloads: calico: diff --git a/roles/etcd/defaults/main.yml b/roles/etcd/defaults/main.yml index 8e80bfcc8..e599619ca 100644 --- a/roles/etcd/defaults/main.yml +++ b/roles/etcd/defaults/main.yml @@ -1,3 +1,3 @@ --- -etcd_version: v2.3.7 +etcd_version: v3.0.1 etcd_bin_dir: "{{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64/" diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index a8f1002e2..563d96b34 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -4,7 +4,7 @@ local_release_dir: /tmp # Versions include_vars: kube_versions.yml -etcd_version: v2.3.7 +etcd_version: v3.0.1 calico_version: v0.20.0 calico_cni_version: v1.3.1 weave_version: v1.5.0 @@ -22,7 +22,7 @@ calico_checksum: "0d1d15c03ea53cc1a16f2faf02626ed8951829ece410a36fdb93e5a19fbab6 calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" -etcd_checksum: "ab102d271026a4060c9f85ecad11f454d82b1df7b8e676cc3da69f67eb078729" +etcd_checksum: "7e5d8db2b8a7cec7a93e531c8ae0f3108c66c7d896a2fb6d8768c067923ce0aa" downloads: - name: calico diff --git a/roles/uploads/tasks/main.yml b/roles/uploads/tasks/main.yml index b19c2aa93..fcd32beef 100644 --- a/roles/uploads/tasks/main.yml +++ b/roles/uploads/tasks/main.yml @@ -1,24 +1,6 @@ --- - include_vars: "kube_versions.yml" -- name: Create the checksum file - lineinfile: - create: yes - dest: "{{ role_path }}/{{ kube_version }}_k8s-sha256" - line: '{{item.name}}:{{item.sha256}}' - with_items: '{{downloads}}' - when: item.name in ["kubernetes-kubelet", "kubernetes-kubectl", "kubernetes-apiserver"] - -- name: Upload checksum file on GS - gc_storage: - bucket: kargo - object: "{{ kube_version }}_k8s-sha256" - src: "{{ role_path }}/{{ kube_version }}_k8s-sha256" - mode: put - permission: public-read - gs_access_key: "changeme" - gs_secret_key: "changeme" - - name: Create dest directories file: path={{local_release_dir}}/{{item.dest|dirname}} state=directory recurse=yes with_items: '{{downloads}}' From f1ba24784489c24b4f607ed2b50cef6a880785a7 Mon Sep 17 00:00:00 2001 From: Smana Date: Sun, 3 Jul 2016 14:14:09 +0200 Subject: [PATCH 015/695] upgrade to k8s v1.3.0 --- roles/download/vars/kube_versions.yml | 6 +++++- roles/kubernetes/node/defaults/main.yml | 2 +- roles/uploads/tasks/main.yml | 4 ++-- roles/uploads/vars/kube_versions.yml | 6 +++++- scripts/change_k8s_version.py | 3 ++- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/roles/download/vars/kube_versions.yml b/roles/download/vars/kube_versions.yml index b0653bba5..5b5f64a42 100644 --- a/roles/download/vars/kube_versions.yml +++ b/roles/download/vars/kube_versions.yml @@ -15,4 +15,8 @@ kube_checksum: kube_apiserver: fbe8296ad4b194c06f6802a126d35cd2887dc1aded308d4da2b580f270412b33 kubectl: 5526a496a84701015485e32c86486e2f23599f7a865164f546e619c6a62f7f19 kubelet: cd15b929f0190876216f397c2c6e7aa8c08d3b047fd90b4980cd68c8f4896211 -kube_version: v1.2.4 + v1.3.0: + kube_apiserver: 431cd312984a29f45590138e990d5c4d537b069b71f2587a72414fabc4fcffdd + kubectl: f40b2d0ff33984e663a0dea4916f1cb9041abecc09b11f9372cdb8049ded95dc + kubelet: bd5f10ccb95fe6e95ddf7ad8a119195c27cb2bce4be6f80c1810ff1a2111496d +kube_version: v1.3.0 diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 53eff0c4c..a14695ba5 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -32,7 +32,7 @@ dns_domain: "{{ cluster_name }}" kube_proxy_mode: userspace hyperkube_image_repo: "quay.io/smana/kubernetes-hyperkube" -hyperkube_image_tag: "v1.2.5" +hyperkube_image_tag: "v1.3.0" # IP address of the DNS server. # Kubernetes will create a pod with several containers, serving as the DNS diff --git a/roles/uploads/tasks/main.yml b/roles/uploads/tasks/main.yml index fcd32beef..68fcd4320 100644 --- a/roles/uploads/tasks/main.yml +++ b/roles/uploads/tasks/main.yml @@ -21,6 +21,6 @@ src: "{{ local_release_dir }}/{{item.dest}}" mode: put permission: public-read - gs_access_key: "changeme" - gs_secret_key: "changeme" + gs_access_key: 'changeme' + gs_secret_key: 'changeme' with_items: '{{downloads}}' diff --git a/roles/uploads/vars/kube_versions.yml b/roles/uploads/vars/kube_versions.yml index b0653bba5..5b5f64a42 100644 --- a/roles/uploads/vars/kube_versions.yml +++ b/roles/uploads/vars/kube_versions.yml @@ -15,4 +15,8 @@ kube_checksum: kube_apiserver: fbe8296ad4b194c06f6802a126d35cd2887dc1aded308d4da2b580f270412b33 kubectl: 5526a496a84701015485e32c86486e2f23599f7a865164f546e619c6a62f7f19 kubelet: cd15b929f0190876216f397c2c6e7aa8c08d3b047fd90b4980cd68c8f4896211 -kube_version: v1.2.4 + v1.3.0: + kube_apiserver: 431cd312984a29f45590138e990d5c4d537b069b71f2587a72414fabc4fcffdd + kubectl: f40b2d0ff33984e663a0dea4916f1cb9041abecc09b11f9372cdb8049ded95dc + kubelet: bd5f10ccb95fe6e95ddf7ad8a119195c27cb2bce4be6f80c1810ff1a2111496d +kube_version: v1.3.0 diff --git a/scripts/change_k8s_version.py b/scripts/change_k8s_version.py index 316a2d5e4..a02b448c8 100644 --- a/scripts/change_k8s_version.py +++ b/scripts/change_k8s_version.py @@ -24,7 +24,7 @@ import shutil from re import sub -def get_remote_sha256_sum(url, max_file_size=100*1024*1024): +def get_remote_sha256_sum(url, max_file_size=1024*1024*1024): remote = urllib2.urlopen(url) hash = hashlib.sha256() total_read = 0 @@ -111,5 +111,6 @@ if __name__ == '__main__': for f in var_files: current = read_vars(f) current['kube_checksum'][args.kube_version] = new + current['kube_version'] = args.kube_version with open(f, 'w') as out: out.write(yaml.dump(current, indent=4, default_flow_style=False)) From 0b67c23d4268c16eda9d1911722ec070d398cbec Mon Sep 17 00:00:00 2001 From: Smana Date: Sun, 3 Jul 2016 16:18:04 +0200 Subject: [PATCH 016/695] test the apiserver from the masters instead of the deployment machine --- tests/testcases/010_check-apiserver.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/testcases/010_check-apiserver.yml b/tests/testcases/010_check-apiserver.yml index 7beed06fb..7107da52f 100644 --- a/tests/testcases/010_check-apiserver.yml +++ b/tests/testcases/010_check-apiserver.yml @@ -3,9 +3,8 @@ tasks: - name: Check the API servers are responding - local_action: - module: uri - url: https://{{ansible_ssh_host}}/api/v1 + uri: + url: "https://{{ansible_ssh_host}}/api/v1" user: kube password: changeme validate_certs: no From 585102ee2038a8fdf466094b00e350d905ebd363 Mon Sep 17 00:00:00 2001 From: Smaine Kahlouch Date: Mon, 4 Jul 2016 14:13:18 +0200 Subject: [PATCH 017/695] add documentation --- README.md | 26 +------------- docs/ansible.md | 50 +++++++++++++++++++++++++++ docs/calico.md | 39 +++++++++++++++++++++ docs/cloud.md | 22 ++++++++++++ docs/coreos.md | 24 +++++++++++++ docs/documentation.md | 75 +++++++++++++++++++++++++++++++++++++++++ docs/flannel.md | 51 ++++++++++++++++++++++++++++ docs/getting-started.md | 19 +++++++++++ docs/openstack.md | 48 ++++++++++++++++++++++++++ docs/vagrant.md | 41 ++++++++++++++++++++++ 10 files changed, 370 insertions(+), 25 deletions(-) mode change 100644 => 120000 README.md create mode 100644 docs/ansible.md create mode 100644 docs/calico.md create mode 100644 docs/cloud.md create mode 100644 docs/coreos.md create mode 100644 docs/documentation.md create mode 100644 docs/flannel.md create mode 100644 docs/getting-started.md create mode 100644 docs/openstack.md create mode 100644 docs/vagrant.md diff --git a/README.md b/README.md deleted file mode 100644 index 3500b0237..000000000 --- a/README.md +++ /dev/null @@ -1,25 +0,0 @@ - - -![Kubespray Logo](http://s9.postimg.org/md5dyjl67/kubespray_logoandkubespray_small.png) - -##Deploy a production ready kubernetes cluster - -- Can be deployed on **AWS, GCE, OpenStack or Baremetal** -- **High available** cluster -- **Composable** (Choice of the network plugin for instance) -- Support most popular **Linux distributions** -- **Continuous integration tests** - - -To deploy the cluster you can use : - -* [**kargo-cli**](https://github.com/kubespray/kargo-cli) -* **vagrant** by simply running `vagrant up` -* **Ansible** usual commands - -A complete **documentation** can be found [**here**](https://docs.kubespray.io) - -If you have questions, you can [invite yourself](https://slack.kubespray.io/) to **chat** with us on Slack! [![SlackStatus](https://slack.kubespray.io/badge.svg)](https://kubespray.slack.com) - -[![Build Status](https://travis-ci.org/kubespray/kargo.svg)](https://travis-ci.org/kubespray/kargo)
-CI tests sponsored by Google (GCE), and [teuto.net](https://teuto.net/) for OpenStack. diff --git a/README.md b/README.md new file mode 120000 index 000000000..e0ec929fb --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +docs/documentation.md \ No newline at end of file diff --git a/docs/ansible.md b/docs/ansible.md new file mode 100644 index 000000000..0786a7764 --- /dev/null +++ b/docs/ansible.md @@ -0,0 +1,50 @@ +Ansible variables +=============== + + +Inventory +------------- +The inventory is composed of 3 groups: + +* **kube-node** : list of kubernetes nodes where the pods will run. +* **kube-master** : list of servers where kubernetes master components (apiserver, scheduler, controller) will run. + Note: if you want the server to act both as master and node the server must be defined on both groups _kube-master_ and _kube-node_ +* **etcd**: list of server to compose the etcd server. you should have at least 3 servers for failover purposes. + +Below is a complete inventory example: + +``` +## Configure 'ip' variable to bind kubernetes services on a +## different ip than the default iface +node1 ansible_ssh_host=95.54.0.12 # ip=10.3.0.1 +node2 ansible_ssh_host=95.54.0.13 # ip=10.3.0.2 +node3 ansible_ssh_host=95.54.0.14 # ip=10.3.0.3 +node4 ansible_ssh_host=95.54.0.15 # ip=10.3.0.4 +node5 ansible_ssh_host=95.54.0.16 # ip=10.3.0.5 +node6 ansible_ssh_host=95.54.0.17 # ip=10.3.0.6 + +[kube-master] +node1 +node2 + +[etcd] +node1 +node2 +node3 + +[kube-node] +node2 +node3 +node4 +node5 +node6 + +[k8s-cluster:children] +kube-node +kube-master +etcd +``` + +Group vars +-------------- +The main variables to change are located in the directory ```inventory/group_vars/all.yml```. diff --git a/docs/calico.md b/docs/calico.md new file mode 100644 index 000000000..50744f63f --- /dev/null +++ b/docs/calico.md @@ -0,0 +1,39 @@ +Calico +=========== + +Check if the calico-node container is running + +``` +docker ps | grep calico +``` + +The **calicoctl** command allows to check the status of the network workloads. +* Check the status of Calico nodes + +``` +calicoctl status +``` + +* Show the configured network subnet for containers + +``` +calicoctl pool show +``` + +* Show the workloads (ip addresses of containers and their located) + +``` +calicoctl endpoint show --detail +``` + +##### Optionnal : BGP Peering with border routers + +In some cases you may want to route the pods subnet and so NAT is not needed on the nodes. +For instance if you have a cluster spread on different locations and you want your pods to talk each other no matter where they are located. +The following variables need to be set: +`peer_with_router` to enable the peering with the datacenter's border router (default value: false). +you'll need to edit the inventory and add a and a hostvar `local_as` by node. + +``` +node1 ansible_ssh_host=95.54.0.12 local_as=xxxxxx +``` diff --git a/docs/cloud.md b/docs/cloud.md new file mode 100644 index 000000000..f0db21c70 --- /dev/null +++ b/docs/cloud.md @@ -0,0 +1,22 @@ +Cloud providers +============== + +#### Provisioning + +You can use kargo-cli to start new instances on cloud providers +here's an example +``` +kargo [aws|gce] --nodes 2 --etcd 3 --cluster-name test-smana +``` + +#### Deploy kubernetes + +With kargo-cli +``` +kargo deploy [--aws|--gce] -u admin +``` + +Or ansible-playbook command +``` +ansible-playbook -u smana -e ansible_ssh_user=admin -e cloud_provider=[aws|gce] -b --become-user=root -i inventory/single.cfg cluster.yml +``` diff --git a/docs/coreos.md b/docs/coreos.md new file mode 100644 index 000000000..e38369aef --- /dev/null +++ b/docs/coreos.md @@ -0,0 +1,24 @@ +CoreOS bootstrap +=============== + +Example with **kargo-cli**: + +``` +kargo deploy --gce --coreos +``` + +Or with Ansible: + +Before running the cluster playbook you must satisfy the following requirements: + +* On each CoreOS nodes a writable directory **/opt/bin** (~400M disk space) + +* Uncomment the variable **ansible\_python\_interpreter** in the file `inventory/group_vars/all.yml` + +* run the Python bootstrap playbook + +``` +ansible-playbook -u smana -e ansible_ssh_user=smana -b --become-user=root -i inventory/inventory.cfg coreos-bootstrap.yml +``` + +Then you can proceed to [cluster deployment](#run-deployment) diff --git a/docs/documentation.md b/docs/documentation.md new file mode 100644 index 000000000..a540a562b --- /dev/null +++ b/docs/documentation.md @@ -0,0 +1,75 @@ +![Kubespray Logo](http://s9.postimg.org/md5dyjl67/kubespray_logoandkubespray_small.png) + +##Deploy a production ready kubernetes cluster + +If you have questions, you can [invite yourself](https://slack.kubespray.io/) to **chat** with us on Slack! [![SlackStatus](https://slack.kubespray.io/badge.svg)](https://kubespray.slack.com) + +- Can be deployed on **AWS, GCE, OpenStack or Baremetal** +- **High available** cluster +- **Composable** (Choice of the network plugin for instance) +- Support most popular **Linux distributions** +- **Continuous integration tests** + + +To deploy the cluster you can use : + +[**kargo-cli**](https://github.com/kubespray/kargo-cli)
+**Ansible** usual commands
+**vagrant** by simply running `vagrant up` (for tests purposes)
+ + +* [Requirements](#requirements) +* [Getting started](docs/getting-started.md) +* [Vagrant install](docs/vagrant.md) +* [CoreOS bootstrap](docs/coreos.md) +* [Ansible variables](docs/ansible.md) +* [Cloud providers](docs/cloud.md) +* [Openstack](docs/openstack.md) +* [Network plugins](#network-plugins) + +Supported Linux distributions +=============== + +* **CoreOS** +* **Debian** Wheezy, Jessie +* **Ubuntu** 14.10, 15.04, 15.10, 16.04 +* **Fedora** 23 +* **CentOS/RHEL** 7 + +Versions +-------------- + +[kubernetes](https://github.com/kubernetes/kubernetes/releases) v1.3.0
+[etcd](https://github.com/coreos/etcd/releases) v3.0.1
+[calicoctl](https://github.com/projectcalico/calico-docker/releases) v0.20.0
+[flanneld](https://github.com/coreos/flannel/releases) v0.5.5
+[weave](http://weave.works/) v1.5.0
+[docker](https://www.docker.com/) v1.10.3
+ + +Requirements +-------------- + +* The target servers must have **access to the Internet** in order to pull docker images. +* The **firewalls are not managed**, you'll need to implement your own rules the way you used to. +in order to avoid any issue during deployment you should disable your firewall +* **Copy your ssh keys** to all the servers part of your inventory. +* **Ansible v2.x and python-netaddr** + + +## Network plugins +You can choose between 3 network plugins. (default: `flannel` with vxlan backend) + +* [**flannel**](docs/flannel.md): gre/vxlan (layer 2) networking. + +* [**calico**](docs/calico.md): bgp (layer 3) networking. + +* **weave**: Weave is a lightweight container overlay network that doesn't require an external K/V database cluster.
+(Please refer to `weave` [troubleshooting documentation](http://docs.weave.works/weave/latest_release/troubleshooting.html)) + +The choice is defined with the variable `kube_network_plugin` + + +[![Build Status](https://travis-ci.org/kubespray/kargo.svg)](https://travis-ci.org/kubespray/kargo)
+CI tests sponsored by Google (GCE), and [teuto.net](https://teuto.net/) for OpenStack. + diff --git a/docs/flannel.md b/docs/flannel.md new file mode 100644 index 000000000..307eab56c --- /dev/null +++ b/docs/flannel.md @@ -0,0 +1,51 @@ +Flannel +============== + +* Flannel configuration file should have been created there + +``` +cat /run/flannel/subnet.env +FLANNEL_NETWORK=10.233.0.0/18 +FLANNEL_SUBNET=10.233.16.1/24 +FLANNEL_MTU=1450 +FLANNEL_IPMASQ=false +``` + +* Check if the network interface has been created + +``` +ip a show dev flannel.1 +4: flannel.1: mtu 1450 qdisc noqueue state UNKNOWN group default + link/ether e2:f3:a7:0f:bf:cb brd ff:ff:ff:ff:ff:ff + inet 10.233.16.0/18 scope global flannel.1 + valid_lft forever preferred_lft forever + inet6 fe80::e0f3:a7ff:fe0f:bfcb/64 scope link + valid_lft forever preferred_lft forever +``` + +* Docker must be configured with a bridge ip in the flannel subnet. + +``` +ps aux | grep docker +root 20196 1.7 2.7 1260616 56840 ? Ssl 10:18 0:07 /usr/bin/docker daemon --bip=10.233.16.1/24 --mtu=1450 +``` + +* Try to run a container and check its ip address + +``` +kubectl run test --image=busybox --command -- tail -f /dev/null +replicationcontroller "test" created + +kubectl describe po test-34ozs | grep ^IP +IP: 10.233.16.2 +``` + +``` +kubectl exec test-34ozs -- ip a show dev eth0 +8: eth0@if9: mtu 1450 qdisc noqueue + link/ether 02:42:0a:e9:2b:03 brd ff:ff:ff:ff:ff:ff + inet 10.233.16.2/24 scope global eth0 + valid_lft forever preferred_lft forever + inet6 fe80::42:aff:fee9:2b03/64 scope link tentative flags 08 + valid_lft forever preferred_lft forever +``` diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 000000000..153c91a12 --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,19 @@ +Getting started +=============== + +The easiest way to run the deployement is to use the **kargo-cli** tool. +A complete documentation can be found in its [github repository](https://github.com/kubespray/kargo-cli). + +Here is a simple example on AWS: + +* Create instances and generate the inventory + +``` +kargo aws --instances 3 +``` + +* Run the deployment + +``` +kargo deploy --aws -u centos -n calico +``` diff --git a/docs/openstack.md b/docs/openstack.md new file mode 100644 index 000000000..1a82133c0 --- /dev/null +++ b/docs/openstack.md @@ -0,0 +1,48 @@ +OpenStack +=============== + +To deploy kubespray on [OpenStack](https://www.openstack.org/) uncomment the `cloud_provider` option in `group_vars/all.yml` and set it to `'openstack'`. + +After that make sure to source in your OpenStack credentials like you would do when using `nova-client` by using `source path/to/your/openstack-rc`. + +The next step is to make sure the hostnames in your `inventory` file are identical to your instance names in OpenStack. +Otherwise [cinder](https://wiki.openstack.org/wiki/Cinder) won't work as expected. + +Unless you are using calico you can now run the playbook. + +**Additional step needed when using calico:** + +Calico does not encapsulate all packages with the hosts ip addresses. Instead the packages will be routed with the PODs ip addresses directly. +OpenStack will filter and drop all packages from ips it does not know to prevent spoofing. + +In order to make calico work on OpenStack you will need to tell OpenStack to allow calicos packages by allowing the network it uses. + +First you will need the ids of your OpenStack instances that will run kubernetes: + + nova list --tenant Your-Tenant + +--------------------------------------+--------+----------------------------------+--------+-------------+ + | ID | Name | Tenant ID | Status | Power State | + +--------------------------------------+--------+----------------------------------+--------+-------------+ + | e1f48aad-df96-4bce-bf61-62ae12bf3f95 | k8s-1 | fba478440cb2444a9e5cf03717eb5d6f | ACTIVE | Running | + | 725cd548-6ea3-426b-baaa-e7306d3c8052 | k8s-2 | fba478440cb2444a9e5cf03717eb5d6f | ACTIVE | Running | + +Then you can use the instance ids to find the connected [neutron](https://wiki.openstack.org/wiki/Neutron) ports: + + neutron port-list -c id -c device_id + +--------------------------------------+--------------------------------------+ + | id | device_id | + +--------------------------------------+--------------------------------------+ + | 5662a4e0-e646-47f0-bf88-d80fbd2d99ef | e1f48aad-df96-4bce-bf61-62ae12bf3f95 | + | e5ae2045-a1e1-4e99-9aac-4353889449a7 | 725cd548-6ea3-426b-baaa-e7306d3c8052 | + +Given the port ids on the left, you can set the `allowed_address_pairs` in neutron: + + # allow kube_service_addresses network + neutron port-update 5662a4e0-e646-47f0-bf88-d80fbd2d99ef --allowed_address_pairs list=true type=dict ip_address=10.233.0.0/18 + neutron port-update e5ae2045-a1e1-4e99-9aac-4353889449a7 --allowed_address_pairs list=true type=dict ip_address=10.233.0.0/18 + + # allow kube_pods_subnet network + neutron port-update 5662a4e0-e646-47f0-bf88-d80fbd2d99ef --allowed_address_pairs list=true type=dict ip_address=10.233.64.0/18 + neutron port-update e5ae2045-a1e1-4e99-9aac-4353889449a7 --allowed_address_pairs list=true type=dict ip_address=10.233.64.0/18 + +Now you can finally run the playbook. diff --git a/docs/vagrant.md b/docs/vagrant.md new file mode 100644 index 000000000..02132c140 --- /dev/null +++ b/docs/vagrant.md @@ -0,0 +1,41 @@ +Vagrant Install +================= + +Assuming you have Vagrant (1.8+) installed with virtualbox (it may work +with vmware, but is untested) you should be able to launch a 3 node +Kubernetes cluster by simply running `$ vagrant up`.
+ +This will spin up 3 VMs and install kubernetes on them. Once they are +completed you can connect to any of them by running
+`$ vagrant ssh k8s-0[1..3]`. + +``` +$ vagrant up +Bringing machine 'k8s-01' up with 'virtualbox' provider... +Bringing machine 'k8s-02' up with 'virtualbox' provider... +Bringing machine 'k8s-03' up with 'virtualbox' provider... +==> k8s-01: Box 'bento/ubuntu-14.04' could not be found. Attempting to find and install... +... +... + k8s-03: Running ansible-playbook... + +PLAY [k8s-cluster] ************************************************************* + +TASK [setup] ******************************************************************* +ok: [k8s-03] +ok: [k8s-01] +ok: [k8s-02] +... +... +PLAY RECAP ********************************************************************* +k8s-01 : ok=157 changed=66 unreachable=0 failed=0 +k8s-02 : ok=137 changed=59 unreachable=0 failed=0 +k8s-03 : ok=86 changed=51 unreachable=0 failed=0 + +$ vagrant ssh k8s-01 +vagrant@k8s-01:~$ kubectl get nodes +NAME STATUS AGE +k8s-01 Ready 45s +k8s-02 Ready 45s +k8s-03 Ready 45s +``` From b847a43c61a0eb38583a0a35c4f39c3b252847cd Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Tue, 5 Jul 2016 12:43:27 +0300 Subject: [PATCH 018/695] Set hyperkube version to kube_version --- roles/kubernetes/node/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index a14695ba5..3418b9ad1 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -32,7 +32,7 @@ dns_domain: "{{ cluster_name }}" kube_proxy_mode: userspace hyperkube_image_repo: "quay.io/smana/kubernetes-hyperkube" -hyperkube_image_tag: "v1.3.0" +hyperkube_image_tag: "{{ kube_version }}" # IP address of the DNS server. # Kubernetes will create a pod with several containers, serving as the DNS From d2151500b60022567e6f041b06511be16b3c3b58 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Tue, 5 Jul 2016 13:11:45 +0300 Subject: [PATCH 019/695] Fix kube-apiserver log level syntax --- roles/kubernetes/master/templates/kube-apiserver.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/master/templates/kube-apiserver.j2 b/roles/kubernetes/master/templates/kube-apiserver.j2 index 7ed979d66..61cb561ab 100644 --- a/roles/kubernetes/master/templates/kube-apiserver.j2 +++ b/roles/kubernetes/master/templates/kube-apiserver.j2 @@ -12,7 +12,7 @@ KUBE_LOGGING="--logtostderr=true" {% endif %} # Apiserver Log level, 0 is debug -KUBE_LOG_LEVEL="{{ kube_log_level | default('--v=2') }}" +KUBE_LOG_LEVEL="--v={{ kube_log_level | default('2') }}" # Should this cluster be allowed to run privileged docker containers KUBE_ALLOW_PRIV="--allow_privileged=true" From baf80b7d7e926115c27378d5ff36d2a1de4c6b92 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Mon, 4 Jul 2016 18:16:18 +0300 Subject: [PATCH 020/695] Change calicoctl deployment to use container Improves upgradability of calicoctl by leveraging docker tags. --- roles/download/defaults/main.yml | 12 ++------- roles/network_plugin/calico/defaults/main.yml | 2 ++ roles/network_plugin/calico/meta/main.yml | 2 -- roles/network_plugin/calico/tasks/main.yml | 25 +++++++------------ .../calico/templates/calicoctl-container.j2 | 8 ++++++ roles/uploads/defaults/main.yml | 11 -------- 6 files changed, 21 insertions(+), 39 deletions(-) create mode 100644 roles/network_plugin/calico/templates/calicoctl-container.j2 diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 6501a1e1b..c402b1efa 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -8,6 +8,8 @@ download_run_once: False include_vars: kube_versions.yml etcd_version: v3.0.1 +#TODO(mattymo): Move calico versions to roles/network_plugins/calico/defaults +# after migration to container download calico_version: v0.20.0 calico_cni_version: v1.3.1 weave_version: v1.5.0 @@ -18,27 +20,17 @@ apiserver_download_url: "https://storage.googleapis.com/kargo/{{kube_version}}_k kubectl_download_url: "https://storage.googleapis.com/kargo/{{kube_version}}_kubernetes-kubectl" etcd_download_url: "https://storage.googleapis.com/kargo/{{etcd_version}}_etcd" -calico_download_url: "https://storage.googleapis.com/kargo/{{calico_version}}_calico" calico_cni_download_url: "https://storage.googleapis.com/kargo/{{calico_cni_version}}_calico-cni-plugin" calico_cni_ipam_download_url: "https://storage.googleapis.com/kargo/{{calico_cni_version}}_calico-cni-plugin-ipam" weave_download_url: "https://storage.googleapis.com/kargo/{{weave_version}}_weave" # Checksums -calico_checksum: "0d1d15c03ea53cc1a16f2faf02626ed8951829ece410a36fdb93e5a19fbab68d" calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" etcd_checksum: "7e5d8db2b8a7cec7a93e531c8ae0f3108c66c7d896a2fb6d8768c067923ce0aa" downloads: - calico: - dest: calico/bin/calicoctl - version: "{{calico_version}}" - sha256: "{{ calico_checksum }}" - source_url: "{{ calico_download_url }}" - url: "{{ calico_download_url }}" - owner: "root" - mode: "0755" calico_cni_plugin: dest: calico/bin/calico version: "{{calico_cni_version}}" diff --git a/roles/network_plugin/calico/defaults/main.yml b/roles/network_plugin/calico/defaults/main.yml index 91a281106..e55b3ab4b 100644 --- a/roles/network_plugin/calico/defaults/main.yml +++ b/roles/network_plugin/calico/defaults/main.yml @@ -4,3 +4,5 @@ nat_outgoing: true # cloud_provider can only be set to 'gce' or 'aws' # cloud_provider: +calicoctl_image_repo: calico/ctl +calicoctl_image_tag: "{{ calico_version }}" diff --git a/roles/network_plugin/calico/meta/main.yml b/roles/network_plugin/calico/meta/main.yml index dd9379a44..92ab5391b 100644 --- a/roles/network_plugin/calico/meta/main.yml +++ b/roles/network_plugin/calico/meta/main.yml @@ -1,7 +1,5 @@ --- dependencies: - - role: download - file: "{{ downloads.calico }}" - role: download file: "{{ downloads.calico_cni_plugin }}" - role: download diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index c112bbdc7..a8185d4f2 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -19,10 +19,15 @@ - meta: flush_handlers -- name: Calico | Install calicoctl bin - command: rsync -piu "{{ local_release_dir }}/calico/bin/calicoctl" "{{ bin_dir }}/calicoctl" - register: calico_copy +- name: Calico | Install calicoctl container script + template: + src: calicoctl-container.j2 + dest: "{{ bin_dir }}/calicoctl" + mode: 0755 + owner: root + group: root changed_when: false + notify: restart calico-node - name: Calico | Install calico cni bin command: rsync -piu "{{ local_release_dir }}/calico/bin/calico" "/opt/cni/bin/calico" @@ -32,9 +37,6 @@ command: rsync -piu "{{ local_release_dir }}/calico/bin/calico" "/opt/cni/bin/calico-ipam" changed_when: false -- name: Calico | install calicoctl - file: path={{ bin_dir }}/calicoctl mode=0755 state=file - - name: Calico | wait for etcd wait_for: port: 2379 @@ -108,21 +110,12 @@ state: started enabled: yes -- name: Calico | Restart calico if binary changed - service: - name: calico-node - state: restarted - when: calico_copy.stdout_lines - - name: Calico | Disable node mesh shell: "{{ bin_dir }}/calicoctl bgp node-mesh off" - environment: - ETCD_AUTHORITY: "127.0.0.1:2379" when: peer_with_router|default(false) and inventory_hostname in groups['kube-node'] - name: Calico | Configure peering with router(s) shell: "{{ bin_dir }}/calicoctl node bgp peer add {{ item.router_id }} as {{ item.as }}" - environment: - ETCD_AUTHORITY: "127.0.0.1:2379" with_items: peers when: peer_with_router|default(false) and inventory_hostname in groups['kube-node'] + diff --git a/roles/network_plugin/calico/templates/calicoctl-container.j2 b/roles/network_plugin/calico/templates/calicoctl-container.j2 new file mode 100644 index 000000000..9436a50e7 --- /dev/null +++ b/roles/network_plugin/calico/templates/calicoctl-container.j2 @@ -0,0 +1,8 @@ +#!/bin/bash +/usr/bin/docker run --privileged --rm \ +--net=host -e ETCD_AUTHORITY=127.0.0.1:2379 \ +-v /usr/bin/docker:/usr/bin/docker \ +-v /var/run/docker.sock:/var/run/docker.sock \ +-v /var/run/calico:/var/run/calico \ +{{ calicoctl_image_repo }}:{{ calicoctl_image_tag}} \ +$@ diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index 563d96b34..2eb76bb16 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -12,28 +12,17 @@ weave_version: v1.5.0 # Download URL's kube_download_url: "https://storage.googleapis.com/kubernetes-release/release/{{ kube_version }}/bin/linux/amd64" etcd_download_url: "https://github.com/coreos/etcd/releases/download/{{ etcd_version }}/etcd-{{ etcd_version }}-linux-amd64.tar.gz" -calico_download_url: "https://github.com/Metaswitch/calico-docker/releases/download/{{calico_version}}/calicoctl" calico_cni_download_url: "https://github.com/projectcalico/calico-cni/releases/download/{{calico_cni_version}}/calico" calico_cni_ipam_download_url: "https://github.com/projectcalico/calico-cni/releases/download/{{calico_cni_version}}/calico-ipam" weave_download_url: "https://github.com/weaveworks/weave/releases/download/{{weave_version}}/weave" # Checksums -calico_checksum: "0d1d15c03ea53cc1a16f2faf02626ed8951829ece410a36fdb93e5a19fbab68d" calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" etcd_checksum: "7e5d8db2b8a7cec7a93e531c8ae0f3108c66c7d896a2fb6d8768c067923ce0aa" downloads: - - name: calico - dest: calico/bin/calicoctl - version: "{{calico_version}}" - sha256: "{{ calico_checksum }}" - source_url: "{{ calico_download_url }}" - url: "{{ calico_download_url }}" - owner: "root" - mode: "0755" - - name: calico-cni-plugin dest: calico/bin/calico version: "{{calico_cni_version}}" From d84ed1b4b3e0ac1dbd02f9d05688d356f1d52f65 Mon Sep 17 00:00:00 2001 From: Daniel Leining Date: Tue, 5 Jul 2016 17:14:12 -0400 Subject: [PATCH 021/695] make kubelet use "ip" as bind address --- roles/kubernetes/node/templates/kubelet.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index c7bc6fcf0..85ba6cdea 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -11,7 +11,7 @@ KUBE_ALLOW_PRIV="--allow_privileged=true" KUBELET_API_SERVER="--api_servers={% for host in groups['kube-master'] %}https://{{ hostvars[host]['access_ip'] | default(hostvars[host]['ip'] | default(hostvars[host]['ansible_default_ipv4']['address'])) }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %}{% endfor %}" {% endif %} # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces) -KUBELET_ADDRESS="--address=0.0.0.0" +KUBELET_ADDRESS="--address={{ ip | default(0.0.0.0) }}" # The port for the info server to serve on # KUBELET_PORT="--port=10250" # You may leave this blank to use the actual hostname From 1d148e9755e672fa43cfa638216e660ad7fee0eb Mon Sep 17 00:00:00 2001 From: Daniel Leining Date: Tue, 5 Jul 2016 17:23:08 -0400 Subject: [PATCH 022/695] fix kubelet ip with quotes --- roles/kubernetes/node/templates/kubelet.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index 85ba6cdea..d96f7ff6e 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -11,7 +11,7 @@ KUBE_ALLOW_PRIV="--allow_privileged=true" KUBELET_API_SERVER="--api_servers={% for host in groups['kube-master'] %}https://{{ hostvars[host]['access_ip'] | default(hostvars[host]['ip'] | default(hostvars[host]['ansible_default_ipv4']['address'])) }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %}{% endfor %}" {% endif %} # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces) -KUBELET_ADDRESS="--address={{ ip | default(0.0.0.0) }}" +KUBELET_ADDRESS="--address={{ ip | default("0.0.0.0") }}" # The port for the info server to serve on # KUBELET_PORT="--port=10250" # You may leave this blank to use the actual hostname From 3b7eaf66b6129fe20ca904f307bab473d40e8e51 Mon Sep 17 00:00:00 2001 From: Alexandre Bourget Date: Wed, 6 Jul 2016 16:25:11 -0400 Subject: [PATCH 023/695] flanneld: don't redirect logs to an unreadable location, let docker/k8s see and aggregate them. --- roles/network_plugin/flannel/templates/flannel-pod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/network_plugin/flannel/templates/flannel-pod.yml b/roles/network_plugin/flannel/templates/flannel-pod.yml index 36198e11a..62f18f500 100644 --- a/roles/network_plugin/flannel/templates/flannel-pod.yml +++ b/roles/network_plugin/flannel/templates/flannel-pod.yml @@ -31,7 +31,7 @@ command: - "/bin/sh" - "-c" - - "/opt/bin/flanneld -etcd-endpoints {% for srv in groups['etcd'] %}http://{{ srv }}:2379{% if not loop.last %},{% endif %}{% endfor %} -etcd-prefix /{{ cluster_name }}/network {% if flannel_interface is defined %}-iface {{ flannel_interface }}{% endif %} {% if flannel_public_ip is defined %}-public-ip {{ flannel_public_ip }}{% endif %} 1>>/var/log/flannel_server.log 2>&1" + - "/opt/bin/flanneld -etcd-endpoints {% for srv in groups['etcd'] %}http://{{ srv }}:2379{% if not loop.last %},{% endif %}{% endfor %} -etcd-prefix /{{ cluster_name }}/network {% if flannel_interface is defined %}-iface {{ flannel_interface }}{% endif %} {% if flannel_public_ip is defined %}-public-ip {{ flannel_public_ip }}{% endif %}" ports: - hostPort: 10253 containerPort: 10253 From e2d6b92370b20644eb59f17c1fa8f9e2aee0191f Mon Sep 17 00:00:00 2001 From: Jean-Christophe Sirot Date: Thu, 7 Jul 2016 10:33:49 +0200 Subject: [PATCH 024/695] Add CI test matrix --- docs/documentation.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/documentation.md b/docs/documentation.md index a540a562b..7aad8db6e 100644 --- a/docs/documentation.md +++ b/docs/documentation.md @@ -69,7 +69,16 @@ You can choose between 3 network plugins. (default: `flannel` with vxlan backend The choice is defined with the variable `kube_network_plugin` +## CI Tests [![Build Status](https://travis-ci.org/kubespray/kargo.svg)](https://travis-ci.org/kubespray/kargo)
-CI tests sponsored by Google (GCE), and [teuto.net](https://teuto.net/) for OpenStack. +### Google Compute Engine + + | Calico | Flannel | Weave | +------------- | ------------- | ------------- | ------------- | +Ubuntu Xenial |[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-weave)| +CentOS 7 |[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-weave/)| +CoreOS (stable) |[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-weave/)| + +CI tests sponsored by Google (GCE), and [teuto.net](https://teuto.net/) for OpenStack. From b3282cd0bb601d0b6b08cd81b92f66d283c9579d Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Fri, 24 Jun 2016 15:25:16 +0300 Subject: [PATCH 025/695] Add optional deployment mode for Docker etcd_deployment_type Running etcd in Docker reduces the number of individual file downloads and services running on the host. Note: etcd container v3.0.1 moves bindir to /usr/local/bin Fixes: #298 --- roles/etcd/defaults/main.yml | 7 + roles/etcd/handlers/main.yml | 9 +- roles/etcd/meta/main.yml | 3 + roles/etcd/tasks/configure.yml | 4 +- roles/etcd/tasks/install.yml | 35 ++++- roles/etcd/tasks/main.yml | 2 +- roles/etcd/tasks/set_facts.yml | 4 + roles/etcd/templates/deb-etcd-docker.initd.j2 | 126 ++++++++++++++++++ ...b-etcd.initd.j2 => deb-etcd-host.initd.j2} | 5 +- roles/etcd/templates/etcd-docker.service.j2 | 33 +++++ .../{etcd.service.j2 => etcd-host.service.j2} | 0 roles/etcd/templates/etcd.j2 | 24 ++-- 12 files changed, 232 insertions(+), 20 deletions(-) create mode 100644 roles/etcd/templates/deb-etcd-docker.initd.j2 rename roles/etcd/templates/{deb-etcd.initd.j2 => deb-etcd-host.initd.j2} (97%) create mode 100644 roles/etcd/templates/etcd-docker.service.j2 rename roles/etcd/templates/{etcd.service.j2 => etcd-host.service.j2} (100%) diff --git a/roles/etcd/defaults/main.yml b/roles/etcd/defaults/main.yml index e599619ca..63f485719 100644 --- a/roles/etcd/defaults/main.yml +++ b/roles/etcd/defaults/main.yml @@ -1,3 +1,10 @@ --- etcd_version: v3.0.1 etcd_bin_dir: "{{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64/" + +# Possible values: host, docker +etcd_deployment_type: "host" + + +etcd_image_repo: "quay.io/coreos/etcd" +etcd_image_tag: "{{ etcd_version }}" diff --git a/roles/etcd/handlers/main.yml b/roles/etcd/handlers/main.yml index a2044fb08..334a4c396 100644 --- a/roles/etcd/handlers/main.yml +++ b/roles/etcd/handlers/main.yml @@ -3,13 +3,20 @@ command: /bin/true notify: - reload systemd + - start etcd - reload etcd - name: reload systemd command: systemctl daemon-reload when: ansible_service_mgr == "systemd" +- name: start etcd + service: + name: etcd + enabled: yes + state: started + - name: reload etcd service: name: etcd - state: restarted + state: "{{ 'restarted' if etcd_deployment_type == 'host' else 'reloaded' }}" diff --git a/roles/etcd/meta/main.yml b/roles/etcd/meta/main.yml index 5ea32c371..84d029d58 100644 --- a/roles/etcd/meta/main.yml +++ b/roles/etcd/meta/main.yml @@ -5,3 +5,6 @@ dependencies: when: ansible_os_family != 'CoreOS' - role: download file: "{{ downloads.etcd }}" + when: etcd_deployment_type == "host" + - role: docker + when: (ansible_os_family != "CoreOS" and etcd_deployment_type == "docker") diff --git a/roles/etcd/tasks/configure.yml b/roles/etcd/tasks/configure.yml index 5f8ab0622..818559239 100644 --- a/roles/etcd/tasks/configure.yml +++ b/roles/etcd/tasks/configure.yml @@ -12,7 +12,7 @@ - name: Configure | Copy etcd.service systemd file template: - src: etcd.service.j2 + src: "etcd-{{ etcd_deployment_type }}.service.j2" dest: /etc/systemd/system/etcd.service backup: yes when: ansible_service_mgr == "systemd" @@ -20,7 +20,7 @@ - name: Configure | Write etcd initd script template: - src: deb-etcd.initd.j2 + src: "deb-etcd-{{ etcd_deployment_type }}.initd.j2" dest: /etc/init.d/etcd owner: root mode: 0755 diff --git a/roles/etcd/tasks/install.yml b/roles/etcd/tasks/install.yml index 56af3b098..09bee1452 100644 --- a/roles/etcd/tasks/install.yml +++ b/roles/etcd/tasks/install.yml @@ -1,9 +1,38 @@ --- -- name: Install | Copy etcd binary +- name: Install | Copy etcd binary from downloaddir command: rsync -piu "{{ etcd_bin_dir }}/etcd" "{{ bin_dir }}/etcd" + when: etcd_deployment_type == "host" register: etcd_copy + +- name: Install | Copy etcdctl binary from downloaddir + command: rsync -piu "{{ etcd_bin_dir }}/etcdctl" "{{ bin_dir }}/etcdctl" + when: etcd_deployment_type == "host" changed_when: false -- name: Install | Copy etcdctl binary - command: rsync -piu "{{ etcd_bin_dir }}/etcdctl" "{{ bin_dir }}/etcdctl" +#Plan A: no docker-py deps +- name: Install | Copy etcdctl binary from container + command: sh -c "/usr/bin/docker rm -f etcdctl-binarycopy; + /usr/bin/docker create --name etcdctl-binarycopy {{ etcd_image_repo }}:{{ etcd_image_tag }} && + /usr/bin/docker cp etcdctl-binarycopy:{{ etcd_container_bin_dir }}etcdctl {{ bin_dir }}/etcdctl && + /usr/bin/docker rm -f etcdctl-binarycopy" + when: etcd_deployment_type == "docker" changed_when: false + +#Plan B: looks nicer, but requires docker-py on all hosts: +#- name: Install | Set up etcd-binarycopy container +# docker: +# name: etcd-binarycopy +# state: present +# image: "{{ etcd_image_repo }}:{{ etcd_image_tag }}" +# when: etcd_deployment_type == "docker" +# +#- name: Install | Copy etcdctl from etcd-binarycopy container +# command: /usr/bin/docker cp "etcd-binarycopy:{{ etcd_container_bin_dir }}etcdctl" "{{ bin_dir }}/etcdctl" +# when: etcd_deployment_type == "docker" +# +#- name: Install | Clean up etcd-binarycopy container +# docker: +# name: etcd-binarycopy +# state: absent +# image: "{{ etcd_image_repo }}:{{ etcd_image_tag }}" +# when: etcd_deployment_type == "docker" diff --git a/roles/etcd/tasks/main.yml b/roles/etcd/tasks/main.yml index a5ac9da96..060d3708b 100644 --- a/roles/etcd/tasks/main.yml +++ b/roles/etcd/tasks/main.yml @@ -8,7 +8,7 @@ - name: Restart etcd if binary changed command: /bin/true notify: restart etcd - when: etcd_copy.stdout_lines + when: etcd_deployment_type == "host" and etcd_copy.stdout_lines # Reload systemd before starting service - meta: flush_handlers diff --git a/roles/etcd/tasks/set_facts.yml b/roles/etcd/tasks/set_facts.yml index a7e91a84e..415ed85c6 100644 --- a/roles/etcd/tasks/set_facts.yml +++ b/roles/etcd/tasks/set_facts.yml @@ -14,3 +14,7 @@ {% endfor %} - set_fact: is_etcd_master: "{{ inventory_hostname in groups['etcd'] }}" +- set_fact: + etcd_after_v3: etcd_version | version_compare("v3.0.0", ">=") +- set_fact: + etcd_container_bin_dir: "{% if etcd_after_v3 %}/usr/local/bin/{% else %}/{% endif %}" diff --git a/roles/etcd/templates/deb-etcd-docker.initd.j2 b/roles/etcd/templates/deb-etcd-docker.initd.j2 new file mode 100644 index 000000000..6e5a8cb03 --- /dev/null +++ b/roles/etcd/templates/deb-etcd-docker.initd.j2 @@ -0,0 +1,126 @@ +#!/bin/sh +set -a + +### BEGIN INIT INFO +# Provides: etcd +# Required-Start: $local_fs $network $syslog +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: etcd distributed k/v store +# Description: +# etcd is a distributed, consistent key-value store for shared configuration and service discovery +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin/:/usr/bin +DESC="etcd k/v store" +NAME=etcd +DAEMON={{ docker_bin_dir | default("/usr/bin") }}/docker +{% if is_etcd_master %} +DAEMON_ARGS='--restart=always --env-file=/etc/etcd.env \ +--net=host \ +-v /usr/share/ca-certificates/:/etc/ssl/certs:ro \ +-v /var/lib/etcd:/var/lib/etcd:rw \ +--name={{ etcd_member_name | default("etcd-proxy") }} \ +{{ etcd_image_repo }}:{{ etcd_image_tag }} \ +{% if etcd_after_v3 %} +{{ etcd_container_bin_dir }}etcd \ +{% endif %} +{% if is_etcd_master %} +--proxy off +{% else %} +--proxy on +{% endif %}' + + +SCRIPTNAME=/etc/init.d/$NAME +DAEMON_USER=etcd +STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" +PID=/var/run/etcd.pid + +# Exit if the binary is not present +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -f /etc/etcd.env ] && . /etc/etcd.env + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.2-14) to ensure that this file is present +# and status_of_proc is working. +. /lib/lsb/init-functions + +do_status() +{ + status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $? +} + +# Function that starts the daemon/service +# +do_start() +{ + start-stop-daemon --background --start --quiet --make-pidfile --pidfile $PID --user $DAEMON_USER --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $NAME + RETVAL="$?" + + sleep 1 + return "$RETVAL" +} + + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) log_end_msg 0 || exit 0 ;; + 2) log_end_msg 1 || exit 1 ;; + esac + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + if do_stop; then + log_end_msg 0 + else + log_failure_msg "Can't stop etcd" + log_end_msg 1 + fi + ;; + status) + if do_status; then + log_end_msg 0 + else + log_failure_msg "etcd is not running" + log_end_msg 1 + fi + ;; + + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + if do_stop; then + if do_start; then + log_end_msg 0 + exit 0 + else + rc="$?" + fi + else + rc="$?" + fi + log_failure_msg "Can't restart etcd" + log_end_msg ${rc} + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + diff --git a/roles/etcd/templates/deb-etcd.initd.j2 b/roles/etcd/templates/deb-etcd-host.initd.j2 similarity index 97% rename from roles/etcd/templates/deb-etcd.initd.j2 rename to roles/etcd/templates/deb-etcd-host.initd.j2 index ec3d9373d..ccecdce4e 100644 --- a/roles/etcd/templates/deb-etcd.initd.j2 +++ b/roles/etcd/templates/deb-etcd-host.initd.j2 @@ -16,10 +16,10 @@ PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="etcd k/v store" NAME=etcd DAEMON={{ bin_dir }}/etcd -{% if inventory_hostname in groups['etcd'] %} +{% if is_etcd_master %} DAEMON_ARGS="" {% else %} -DAEMON_ARGS="-proxy on" +DAEMON_ARGS="--proxy on" {% endif %} SCRIPTNAME=/etc/init.d/$NAME DAEMON_USER=etcd @@ -111,3 +111,4 @@ case "$1" in exit 3 ;; esac + diff --git a/roles/etcd/templates/etcd-docker.service.j2 b/roles/etcd/templates/etcd-docker.service.j2 new file mode 100644 index 000000000..623ec70b9 --- /dev/null +++ b/roles/etcd/templates/etcd-docker.service.j2 @@ -0,0 +1,33 @@ +[Unit] +Description=etcd docker wrapper +Requires=docker.service +After=docker.service + +[Service] +User=root +PermissionsStartOnly=true +ExecStart={{ docker_bin_dir | default("/usr/bin") }}/docker run --restart=always \ +--env-file=/etc/etcd.env \ +{# TODO(mattymo): Allow docker IP binding and disable in envfile + -p 2380:2380 -p 2379:2379 #} +--net=host \ +-v /usr/share/ca-certificates/:/etc/ssl/certs:ro \ +-v /var/lib/etcd:/var/lib/etcd:rw \ +--name={{ etcd_member_name | default("etcd-proxy") }} \ +{{ etcd_image_repo }}:{{ etcd_image_tag }} \ +{% if etcd_after_v3 %} +{{ etcd_container_bin_dir }}etcd \ +{% endif %} +{% if is_etcd_master %} +--proxy off +{% else %} +--proxy on +{% endif %} +ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_member_name | default("etcd-proxy") }} +ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_member_name | default("etcd-proxy") }} +ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_member_name | default("etcd-proxy") }} +Restart=always +RestartSec=10s + +[Install] +WantedBy=multi-user.target diff --git a/roles/etcd/templates/etcd.service.j2 b/roles/etcd/templates/etcd-host.service.j2 similarity index 100% rename from roles/etcd/templates/etcd.service.j2 rename to roles/etcd/templates/etcd-host.service.j2 diff --git a/roles/etcd/templates/etcd.j2 b/roles/etcd/templates/etcd.j2 index 49f0c83a0..94d9e8121 100644 --- a/roles/etcd/templates/etcd.j2 +++ b/roles/etcd/templates/etcd.j2 @@ -1,12 +1,14 @@ -ETCD_DATA_DIR="/var/lib/etcd" -{% if inventory_hostname in groups['etcd'] %} -ETCD_ADVERTISE_CLIENT_URLS="http://{{ hostvars[inventory_hostname]['access_ip'] | default(hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address'])) }}:2379" -ETCD_INITIAL_ADVERTISE_PEER_URLS="http://{{ hostvars[inventory_hostname]['access_ip'] | default(hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address'])) }}:2380" -ETCD_INITIAL_CLUSTER_STATE="{% if etcd_cluster_is_healthy.rc != 0 | bool %}new{% else %}existing{% endif %}" -ETCD_INITIAL_CLUSTER_TOKEN="k8s_etcd" -ETCD_LISTEN_PEER_URLS="http://{{ hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address']) }}:2380" -ETCD_NAME="{{ etcd_member_name }}" -{% endif %} +ETCD_DATA_DIR=/var/lib/etcd +{% if is_etcd_master %} +ETCD_ADVERTISE_CLIENT_URLS=http://{{ hostvars[inventory_hostname]['access_ip'] | default(hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address'])) }}:2379 +ETCD_INITIAL_ADVERTISE_PEER_URLS=http://{{ hostvars[inventory_hostname]['access_ip'] | default(hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address'])) }}:2380 +ETCD_INITIAL_CLUSTER_STATE={% if etcd_cluster_is_healthy.rc != 0 | bool %}new{% else %}existing{% endif %} -ETCD_INITIAL_CLUSTER="{% for host in groups['etcd'] %}etcd{{ loop.index|string }}={{ hostvars[host]['etcd_peer_url'] }}{% if not loop.last %},{% endif %}{% endfor %}" -ETCD_LISTEN_CLIENT_URLS="http://{{ hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address']) }}:2379,http://127.0.0.1:2379" +ETCD_ELECTION_TIMEOUT=10000 +ETCD_INITIAL_CLUSTER_TOKEN=k8s_etcd +ETCD_LISTEN_PEER_URLS=http://{{ hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address']) }}:2380 +ETCD_NAME={{ etcd_member_name }} +{% endif %} +ETCD_INITIAL_CLUSTER={% for host in groups['etcd'] %}etcd{{ loop.index|string }}={{ hostvars[host]['etcd_peer_url'] }}{% if not loop.last %},{% endif %}{% endfor %} + +ETCD_LISTEN_CLIENT_URLS=http://{{ hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address']) }}:2379,http://127.0.0.1:2379 From 5fdea4b947a42ba1726f5afca8e6bec17b3d785a Mon Sep 17 00:00:00 2001 From: Smaine Kahlouch Date: Wed, 6 Jul 2016 17:34:16 +0200 Subject: [PATCH 026/695] first version of the roadmap --- README.md | 87 ++++++++++++++++++++++++++++++++++++++++++- docs/documentation.md | 84 ----------------------------------------- docs/roadmap.md | 85 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 171 insertions(+), 85 deletions(-) mode change 120000 => 100644 README.md delete mode 100644 docs/documentation.md create mode 100644 docs/roadmap.md diff --git a/README.md b/README.md deleted file mode 120000 index e0ec929fb..000000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -docs/documentation.md \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 000000000..a1c9f0c1a --- /dev/null +++ b/README.md @@ -0,0 +1,86 @@ +![Kubespray Logo](http://s9.postimg.org/md5dyjl67/kubespray_logoandkubespray_small.png) + +##Deploy a production ready kubernetes cluster + +If you have questions, you can [invite yourself](https://slack.kubespray.io/) to **chat** with us on Slack! [![SlackStatus](https://slack.kubespray.io/badge.svg)](https://kubespray.slack.com) + +- Can be deployed on **AWS, GCE, OpenStack or Baremetal** +- **High available** cluster +- **Composable** (Choice of the network plugin for instance) +- Support most popular **Linux distributions** +- **Continuous integration tests** + + +To deploy the cluster you can use : + +[**kargo-cli**](https://github.com/kubespray/kargo-cli)
+**Ansible** usual commands
+**vagrant** by simply running `vagrant up` (for tests purposes)
+ + +* [Requirements](#requirements) +* [Getting started](docs/getting-started.md) +* [Vagrant install](docs/vagrant.md) +* [CoreOS bootstrap](docs/coreos.md) +* [Ansible variables](docs/ansible.md) +* [Cloud providers](docs/cloud.md) +* [Openstack](docs/openstack.md) +* [Network plugins](#network-plugins) +* [Roadmap](docs/roadmap.md) + +Supported Linux distributions +=============== + +* **CoreOS** +* **Debian** Wheezy, Jessie +* **Ubuntu** 14.10, 15.04, 15.10, 16.04 +* **Fedora** 23 +* **CentOS/RHEL** 7 + +Versions +-------------- + +[kubernetes](https://github.com/kubernetes/kubernetes/releases) v1.3.0
+[etcd](https://github.com/coreos/etcd/releases) v3.0.1
+[calicoctl](https://github.com/projectcalico/calico-docker/releases) v0.20.0
+[flanneld](https://github.com/coreos/flannel/releases) v0.5.5
+[weave](http://weave.works/) v1.5.0
+[docker](https://www.docker.com/) v1.10.3
+ + +Requirements +-------------- + +* The target servers must have **access to the Internet** in order to pull docker images. +* The **firewalls are not managed**, you'll need to implement your own rules the way you used to. +in order to avoid any issue during deployment you should disable your firewall +* **Copy your ssh keys** to all the servers part of your inventory. +* **Ansible v2.x and python-netaddr** + + +## Network plugins +You can choose between 3 network plugins. (default: `flannel` with vxlan backend) + +* [**flannel**](docs/flannel.md): gre/vxlan (layer 2) networking. + +* [**calico**](docs/calico.md): bgp (layer 3) networking. + +* **weave**: Weave is a lightweight container overlay network that doesn't require an external K/V database cluster.
+(Please refer to `weave` [troubleshooting documentation](http://docs.weave.works/weave/latest_release/troubleshooting.html)) + +The choice is defined with the variable `kube_network_plugin` + + +## CI Tests + +[![Build Status](https://travis-ci.org/kubespray/kargo.svg)](https://travis-ci.org/kubespray/kargo)
+ +### Google Compute Engine + + | Calico | Flannel | Weave | +------------- | ------------- | ------------- | ------------- | +Ubuntu Xenial |[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-weave)| +CentOS 7 |[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-weave/)| +CoreOS (stable) |[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-weave/)| + +CI tests sponsored by Google (GCE), and [teuto.net](https://teuto.net/) for OpenStack. diff --git a/docs/documentation.md b/docs/documentation.md deleted file mode 100644 index 7aad8db6e..000000000 --- a/docs/documentation.md +++ /dev/null @@ -1,84 +0,0 @@ -![Kubespray Logo](http://s9.postimg.org/md5dyjl67/kubespray_logoandkubespray_small.png) - -##Deploy a production ready kubernetes cluster - -If you have questions, you can [invite yourself](https://slack.kubespray.io/) to **chat** with us on Slack! [![SlackStatus](https://slack.kubespray.io/badge.svg)](https://kubespray.slack.com) - -- Can be deployed on **AWS, GCE, OpenStack or Baremetal** -- **High available** cluster -- **Composable** (Choice of the network plugin for instance) -- Support most popular **Linux distributions** -- **Continuous integration tests** - - -To deploy the cluster you can use : - -[**kargo-cli**](https://github.com/kubespray/kargo-cli)
-**Ansible** usual commands
-**vagrant** by simply running `vagrant up` (for tests purposes)
- - -* [Requirements](#requirements) -* [Getting started](docs/getting-started.md) -* [Vagrant install](docs/vagrant.md) -* [CoreOS bootstrap](docs/coreos.md) -* [Ansible variables](docs/ansible.md) -* [Cloud providers](docs/cloud.md) -* [Openstack](docs/openstack.md) -* [Network plugins](#network-plugins) - -Supported Linux distributions -=============== - -* **CoreOS** -* **Debian** Wheezy, Jessie -* **Ubuntu** 14.10, 15.04, 15.10, 16.04 -* **Fedora** 23 -* **CentOS/RHEL** 7 - -Versions --------------- - -[kubernetes](https://github.com/kubernetes/kubernetes/releases) v1.3.0
-[etcd](https://github.com/coreos/etcd/releases) v3.0.1
-[calicoctl](https://github.com/projectcalico/calico-docker/releases) v0.20.0
-[flanneld](https://github.com/coreos/flannel/releases) v0.5.5
-[weave](http://weave.works/) v1.5.0
-[docker](https://www.docker.com/) v1.10.3
- - -Requirements --------------- - -* The target servers must have **access to the Internet** in order to pull docker images. -* The **firewalls are not managed**, you'll need to implement your own rules the way you used to. -in order to avoid any issue during deployment you should disable your firewall -* **Copy your ssh keys** to all the servers part of your inventory. -* **Ansible v2.x and python-netaddr** - - -## Network plugins -You can choose between 3 network plugins. (default: `flannel` with vxlan backend) - -* [**flannel**](docs/flannel.md): gre/vxlan (layer 2) networking. - -* [**calico**](docs/calico.md): bgp (layer 3) networking. - -* **weave**: Weave is a lightweight container overlay network that doesn't require an external K/V database cluster.
-(Please refer to `weave` [troubleshooting documentation](http://docs.weave.works/weave/latest_release/troubleshooting.html)) - -The choice is defined with the variable `kube_network_plugin` - -## CI Tests - -[![Build Status](https://travis-ci.org/kubespray/kargo.svg)](https://travis-ci.org/kubespray/kargo)
- -### Google Compute Engine - - | Calico | Flannel | Weave | -------------- | ------------- | ------------- | ------------- | -Ubuntu Xenial |[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-weave)| -CentOS 7 |[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-weave/)| -CoreOS (stable) |[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-weave/)| - -CI tests sponsored by Google (GCE), and [teuto.net](https://teuto.net/) for OpenStack. diff --git a/docs/roadmap.md b/docs/roadmap.md new file mode 100644 index 000000000..24e82d543 --- /dev/null +++ b/docs/roadmap.md @@ -0,0 +1,85 @@ +Kargo's roadmap +================= + +### Self deployment (pull-mode) [#320](https://github.com/kubespray/kargo/issues/320) +- the playbook would install and configure docker and the etcd cluster [#321](https://github.com/kubespray/kargo/issues/321) +- the following data would be inserted into etcd: certs,tokens,users,inventory,group_vars. +- a "kubespray" container would be deployed (kargo-cli, ansible-playbook, kpm) +- to be discussed, a way to provide the inventory +- **self deployment** of the node + +### Provisionning and cloud providers +- Terraform to provision instances on **GCE, AWS, Openstack, Digital Ocean, Azure** +- On AWS autoscaling, multi AZ +- On Azure autoscaling, create loadbalancer [#297](https://github.com/kubespray/kargo/issues/297) +- On GCE be able to create a loadbalancer automatically (IAM ?) [#280](https://github.com/kubespray/kargo/issues/280) +- **TLS boostrap** support for kubelet [#234](https://github.com/kubespray/kargo/issues/234) + (related issues: https://github.com/kubernetes/kubernetes/pull/20439
+ https://github.com/kubernetes/kubernetes/issues/18112) + +### Tests +- Run kubernetes e2e tests +- migrate to jenkins +(a test is currently a deployment on a 3 node cluste, testing k8s api, ping between 2 pods) +- Full tests on GCE per day (All OS's, all network plugins) +- trigger a single test per pull request +- single test with the Ansible version n-1 per day +- Test idempotency on on single OS but for all network plugins/container engines +- single test on AWS per day +- test different achitectures : + - 3 instances, 3 are members of the etcd cluster, 2 of them acting as master and node, 1 as node + - 5 instances, 3 are etcd and nodes, 2 are masters only + - 7 instances, 3 etcd only, 2 masters, 2 nodes +- test scale up cluster: +1 etcd, +1 master, +1 node + +### Lifecycle +- Drain worker node when upgrading k8s components in a worker node. [#154](https://github.com/kubespray/kargo/issues/154) +- Drain worker node when shutting down/deleting an instance + +### Networking +- romana.io support [#160](https://github.com/kubespray/kargo/issues/160) +- Configure network policy for Calico. [#159](https://github.com/kubespray/kargo/issues/159) +- Opencontrail +- Canal + +### High availability +- (to be discussed) option to set a loadbalancer for the apiservers like ucarp/packemaker/keepalived +While waiting for the issue [kubernetes/kubernetes#18174](https://github.com/kubernetes/kubernetes/issues/18174) to be fixed. + +### Kargo-cli +- Delete instances +- `kargo vagrant` to setup a test cluster locally +- switch to Terraform instead of Ansible for provisionning + +### Kargo API +- Perform all actions through an **API** +- Store inventories / configurations of mulltiple clusters +- make sure that state of cluster is completely saved in no more than one config file beyond hosts inventory + +### Addons (with kpm) +Include optionals deployments to init the cluster: +##### Monitoring +- Heapster / Grafana .... +- **Prometheus** + +##### Others + +##### Dashboards: + - kubernetes-dashboard + - Fabric8 + - Tectonic + - Cockpit + +##### Paas like + - Openshift Origin + - Openstack + - Deis Workflow + +### Others +- remove nodes (adding is already supported) +- being able to choose any k8s version (almost done) +- **rkt** support [#59](https://github.com/kubespray/kargo/issues/59) +- Review documentation (split in categories) +- **consul** -> if officialy supported by k8s +- flex volumes options (e.g. **torrus** support) [#312](https://github.com/kubespray/kargo/issues/312) +- Clusters federation option (aka **ubernetes**) [#329](https://github.com/kubespray/kargo/issues/329) From 1e8ee99d1a75c716a98a2c96462a0da7699d0e66 Mon Sep 17 00:00:00 2001 From: Smana Date: Fri, 8 Jul 2016 09:40:12 +0200 Subject: [PATCH 027/695] a small change in the roadmap --- docs/roadmap.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 24e82d543..19a6b9a07 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -2,11 +2,11 @@ Kargo's roadmap ================= ### Self deployment (pull-mode) [#320](https://github.com/kubespray/kargo/issues/320) -- the playbook would install and configure docker and the etcd cluster [#321](https://github.com/kubespray/kargo/issues/321) +- the playbook would install and configure docker/rkt and the etcd cluster - the following data would be inserted into etcd: certs,tokens,users,inventory,group_vars. - a "kubespray" container would be deployed (kargo-cli, ansible-playbook, kpm) - to be discussed, a way to provide the inventory -- **self deployment** of the node +- **self deployment** of the node from inside a container [#321](https://github.com/kubespray/kargo/issues/321) ### Provisionning and cloud providers - Terraform to provision instances on **GCE, AWS, Openstack, Digital Ocean, Azure** From a2bdcabc33bb2fd9d2e2c6f6e39630677e53b48a Mon Sep 17 00:00:00 2001 From: Jean-Christophe Sirot Date: Fri, 8 Jul 2016 16:30:47 +0200 Subject: [PATCH 028/695] Some additional roadmap items --- docs/roadmap.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/roadmap.md b/docs/roadmap.md index 19a6b9a07..298750493 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -49,7 +49,9 @@ While waiting for the issue [kubernetes/kubernetes#18174](https://github.com/kub ### Kargo-cli - Delete instances - `kargo vagrant` to setup a test cluster locally +- `kargo azure` for Microsoft Azure support - switch to Terraform instead of Ansible for provisionning +- update $HOME/.kube/config when a cluster is deployed. Optionally switch to this context ### Kargo API - Perform all actions through an **API** From da20d9eda4ae3af445983c5b7964cf1700071508 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Fri, 8 Jul 2016 16:45:34 +0200 Subject: [PATCH 029/695] Add hostpath dynamic provisioner for PetSets Defaults to false. Use with v1.3 only. Signed-off-by: Bogdan Dobrelya --- .../templates/manifests/kube-controller-manager.manifest.j2 | 1 + roles/kubernetes/node/defaults/main.yml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 index 3ae4c18fc..29c56e6a8 100644 --- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 @@ -15,6 +15,7 @@ spec: - --leader-elect=true - --service-account-private-key-file={{ kube_cert_dir }}/apiserver-key.pem - --root-ca-file={{ kube_cert_dir }}/ca.pem + - --enable-hostpath-provisioner={{ kube_hostpath_dynamic_provisioner }} - --v={{ kube_log_level | default('2') }} {% if cloud_provider is defined and cloud_provider == "openstack" %} - --cloud-provider=openstack diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 3418b9ad1..457ef1709 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -31,6 +31,10 @@ dns_domain: "{{ cluster_name }}" kube_proxy_mode: userspace +# An experimental dev/test only dynamic volumes provisioner, +# for PetSets. Works for kube>=v1.3 only. +kube_hostpath_dynamic_provisioner: "false" + hyperkube_image_repo: "quay.io/smana/kubernetes-hyperkube" hyperkube_image_tag: "{{ kube_version }}" From c9cff5c84526564e7538fc317912e497233f4ecf Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Fri, 8 Jul 2016 10:04:14 -0700 Subject: [PATCH 030/695] updated admission controllers for >1.2 Kubernetes --- roles/kubernetes/master/templates/kube-apiserver.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/master/templates/kube-apiserver.j2 b/roles/kubernetes/master/templates/kube-apiserver.j2 index 61cb561ab..07ed59cc6 100644 --- a/roles/kubernetes/master/templates/kube-apiserver.j2 +++ b/roles/kubernetes/master/templates/kube-apiserver.j2 @@ -33,7 +33,7 @@ KUBE_ETCD_SERVERS="--etcd_servers={% for host in groups['etcd'] %}http://{{ host KUBE_API_ADDRESS="--bind-address={{ ip | default(ansible_default_ipv4.address) }}" # default admission control policies -KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota" +KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota" # RUNTIME API CONFIGURATION (e.g. enable extensions) KUBE_RUNTIME_CONFIG="{% if kube_api_runtime_config is defined %}{% for conf in kube_api_runtime_config %}--runtime-config={{ conf }} {% endfor %}{% endif %}" From d4dfdf68a67999517256374ea8bd8aa4411f0a0f Mon Sep 17 00:00:00 2001 From: Jonathan Beckman Date: Mon, 4 Jul 2016 17:14:45 +0800 Subject: [PATCH 031/695] Add settable flannel image tag & image repo New settings with defaults: flannel_server_helper_image_repo: "gcr.io/google_containers/" flannel_server_helper_image_tag: "0.1" flannel_image_repo: "quay.io/coreos/flannel" flannel_image_tag: "0.5.5" --- roles/network_plugin/flannel/defaults/main.yml | 7 +++++++ roles/network_plugin/flannel/templates/flannel-pod.yml | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/roles/network_plugin/flannel/defaults/main.yml b/roles/network_plugin/flannel/defaults/main.yml index ce00090ec..8ff48cdb0 100644 --- a/roles/network_plugin/flannel/defaults/main.yml +++ b/roles/network_plugin/flannel/defaults/main.yml @@ -10,3 +10,10 @@ flannel_public_ip: "{{ access_ip|default(ip|default(ansible_default_ipv4.address # You can choose what type of flannel backend to use # please refer to flannel's docs : https://github.com/coreos/flannel/blob/master/README.md flannel_backend_type: "vxlan" + + +flannel_server_helper_image_repo: "gcr.io/google_containers/flannel-server-helper" +flannel_server_helper_image_tag: "0.1" + +flannel_image_repo: "quay.io/coreos/flannel" +flannel_image_tag: "0.5.5" diff --git a/roles/network_plugin/flannel/templates/flannel-pod.yml b/roles/network_plugin/flannel/templates/flannel-pod.yml index 36198e11a..34362364d 100644 --- a/roles/network_plugin/flannel/templates/flannel-pod.yml +++ b/roles/network_plugin/flannel/templates/flannel-pod.yml @@ -17,7 +17,7 @@ path: "/etc/flannel-network.json" containers: - name: "flannel-server-helper" - image: "gcr.io/google_containers/flannel-server-helper:0.1" + image: "{{ flannel_server_helper_image_repo }}:{{ flannel_server_helper_image_tag }}" args: - "--network-config=/etc/flannel-network.json" - "--etcd-prefix=/{{ cluster_name }}/network" @@ -27,7 +27,7 @@ mountPath: "/etc/flannel-network.json" imagePullPolicy: "Always" - name: "flannel-container" - image: "quay.io/coreos/flannel:0.5.5" + image: "{{ flannel_image_repo }}:{{ flannel_image_tag }}" command: - "/bin/sh" - "-c" From a709cd9aa1f89e879484b345a4b344da2060d40e Mon Sep 17 00:00:00 2001 From: Smana Date: Tue, 12 Jul 2016 10:20:43 +0200 Subject: [PATCH 032/695] use iptables as default proxy mode --- roles/kubernetes/node/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 457ef1709..9022d03f1 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -29,7 +29,7 @@ kube_log_dir: "/var/log/kubernetes" dns_domain: "{{ cluster_name }}" -kube_proxy_mode: userspace +kube_proxy_mode: iptables # An experimental dev/test only dynamic volumes provisioner, # for PetSets. Works for kube>=v1.3 only. From dfe7bfd127a553d7c0c7b21692a592d029dcd7a6 Mon Sep 17 00:00:00 2001 From: Smana Date: Thu, 14 Jul 2016 20:24:58 +0200 Subject: [PATCH 033/695] use hyperkube coreos image --- roles/kubernetes/node/defaults/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 9022d03f1..2997946f5 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -35,8 +35,8 @@ kube_proxy_mode: iptables # for PetSets. Works for kube>=v1.3 only. kube_hostpath_dynamic_provisioner: "false" -hyperkube_image_repo: "quay.io/smana/kubernetes-hyperkube" -hyperkube_image_tag: "{{ kube_version }}" +hyperkube_image_repo: "quay.io/coreos/hyperkube" +hyperkube_image_tag: "{{ kube_version }}_coreos.0" # IP address of the DNS server. # Kubernetes will create a pod with several containers, serving as the DNS From ab8fdba484998108e0dd9ae229e4ebfbab490d24 Mon Sep 17 00:00:00 2001 From: Smana Date: Thu, 14 Jul 2016 21:33:24 +0200 Subject: [PATCH 034/695] deployment idempotent --- roles/etcd/tasks/install.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/etcd/tasks/install.yml b/roles/etcd/tasks/install.yml index 09bee1452..26271943a 100644 --- a/roles/etcd/tasks/install.yml +++ b/roles/etcd/tasks/install.yml @@ -3,6 +3,7 @@ command: rsync -piu "{{ etcd_bin_dir }}/etcd" "{{ bin_dir }}/etcd" when: etcd_deployment_type == "host" register: etcd_copy + changed_when: false - name: Install | Copy etcdctl binary from downloaddir command: rsync -piu "{{ etcd_bin_dir }}/etcdctl" "{{ bin_dir }}/etcdctl" From 0b874e8db27664cd198fe084efc3cf54eee99597 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Fri, 15 Jul 2016 14:17:17 +0200 Subject: [PATCH 035/695] Fix systemd service unit for etcd See https://github.com/coreos/etcd/issues/4308 Signed-off-by: Bogdan Dobrelya --- roles/etcd/templates/etcd-host.service.j2 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/roles/etcd/templates/etcd-host.service.j2 b/roles/etcd/templates/etcd-host.service.j2 index 19cc0386e..ff39477ac 100644 --- a/roles/etcd/templates/etcd-host.service.j2 +++ b/roles/etcd/templates/etcd-host.service.j2 @@ -1,8 +1,9 @@ [Unit] Description=etcd - +After=network.target [Service] +Type=notify User=etcd EnvironmentFile=/etc/etcd.env {% if inventory_hostname in groups['etcd'] %} @@ -10,6 +11,7 @@ ExecStart={{ bin_dir }}/etcd {% else %} ExecStart={{ bin_dir }}/etcd -proxy on {% endif %} +NotifyAccess=all Restart=always RestartSec=10s LimitNOFILE=40000 From 32cd6e99b2bbdbe4814920b5298829cf7fd96866 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Mon, 11 Jul 2016 16:05:05 +0200 Subject: [PATCH 036/695] Add etcd proxy support * Enforce a etcd-proxy role to a k8s-cluster group members. This provides an HA layout for all of the k8s cluster internal clients. * Proxies to be run on each node in the group as a separate etcd instances with a readwrite proxy mode and listen the given endpoint, which is either the access_ip:2379 or the localhost:2379. * A notion for the 'kube_etcd_multiaccess' is: ignore endpoints and loadbalancers and use the etcd members IPs as a comma-separated list. Otherwise, clients shall use the local endpoint provided by a etcd-proxy instances on each etcd node. A Netwroking plugins always use that access mode. * Fix apiserver's etcd servers args to use the etcd_access_endpoint. * Fix networking plugins flannel/calico to use the etcd_endpoint. * Fix name env var for non masters to be set as well. * Fix etcd_client_url was not used anywhere and other etcd_* facts evaluation was duplicated in a few places. * Define proxy modes only in the env file, if not a master. Del an automatic proxy mode decisions for etcd nodes in init/unit scripts. * Use Wants= instead of Requires= as "This is the recommended way to hook start-up of one unit to the start-up of another unit" * Make apiserver/calico Wants= etcd-proxy to keep it always up Signed-off-by: Bogdan Dobrelya Co-authored-by: Matthew Mosesohn --- docs/ansible.md | 6 +- inventory/group_vars/all.yml | 17 +++ roles/etcd/handlers/main.yml | 22 ++++ roles/etcd/tasks/configure.yml | 20 ++- roles/etcd/tasks/main.yml | 15 ++- roles/etcd/tasks/refresh_config.yml | 8 ++ roles/etcd/tasks/set_facts.yml | 13 +- roles/etcd/templates/deb-etcd-docker.initd.j2 | 14 +-- roles/etcd/templates/deb-etcd-host.initd.j2 | 5 - .../templates/deb-etcd-proxy-docker.initd.j2 | 117 ++++++++++++++++++ .../templates/deb-etcd-proxy-host.initd.j2 | 110 ++++++++++++++++ roles/etcd/templates/etcd-docker.service.j2 | 11 +- roles/etcd/templates/etcd-host.service.j2 | 4 - .../templates/etcd-proxy-docker.service.j2 | 28 +++++ .../etcd/templates/etcd-proxy-host.service.j2 | 19 +++ roles/etcd/templates/etcd-proxy.j2 | 5 + roles/etcd/templates/etcd.j2 | 12 +- .../master/templates/kube-apiserver.j2 | 2 +- .../templates/kube-apiserver.service.j2 | 4 +- .../manifests/kube-apiserver.manifest.j2 | 2 +- .../node/templates/cni-calico.conf.j2 | 2 +- roles/network_plugin/calico/tasks/main.yml | 4 +- .../calico/templates/calico-node.service.j2 | 4 +- .../calico/templates/calicoctl-container.j2 | 2 +- .../calico/templates/network-environment.j2 | 2 +- .../flannel/templates/flannel-pod.yml | 4 +- 26 files changed, 396 insertions(+), 56 deletions(-) create mode 100644 roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 create mode 100644 roles/etcd/templates/deb-etcd-proxy-host.initd.j2 create mode 100644 roles/etcd/templates/etcd-proxy-docker.service.j2 create mode 100644 roles/etcd/templates/etcd-proxy-host.service.j2 create mode 100644 roles/etcd/templates/etcd-proxy.j2 diff --git a/docs/ansible.md b/docs/ansible.md index 0786a7764..101c0a075 100644 --- a/docs/ansible.md +++ b/docs/ansible.md @@ -4,14 +4,14 @@ Ansible variables Inventory ------------- -The inventory is composed of 3 groups: +The inventory is composed of 3 groups: * **kube-node** : list of kubernetes nodes where the pods will run. -* **kube-master** : list of servers where kubernetes master components (apiserver, scheduler, controller) will run. +* **kube-master** : list of servers where kubernetes master components (apiserver, scheduler, controller) will run. Note: if you want the server to act both as master and node the server must be defined on both groups _kube-master_ and _kube-node_ * **etcd**: list of server to compose the etcd server. you should have at least 3 servers for failover purposes. -Below is a complete inventory example: +Below is a complete inventory example: ``` ## Configure 'ip' variable to bind kubernetes services on a diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index e82c83147..e9b138c92 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -51,6 +51,23 @@ cluster_name: cluster.local # but don't know about that address themselves. # access_ip: 1.1.1.1 +# Service endpoints. May be a VIP or a load balanced frontend IP, like one +# that a HAProxy or Nginx provides, or just a local service endpoint. +# +# Etcd endpoints use a local etcd-proxies to reach the etcd cluster via +# auto-evaluated endpoints. Those will reuse the access_ip for etcd cluster, +# if specified, or defer to the localhost:2379 as well. + +# Etcd access modes: +# Enable multiaccess to configure clients to access all of the etcd members directly +# as the "http://hostX:port, http://hostY:port, ..." and ignore the proxy loadbalancers. +# This may be the case if clients support and loadbalance multiple etcd servers natively. +etcd_multiaccess: false + +# +# TODO apiserver localhost:8080 and localhost:443 endpoints for kubelets and +# (hyper)kube-* and networking components. + # Choose network plugin (calico, weave or flannel) kube_network_plugin: flannel diff --git a/roles/etcd/handlers/main.yml b/roles/etcd/handlers/main.yml index 334a4c396..cf0aaa5bf 100644 --- a/roles/etcd/handlers/main.yml +++ b/roles/etcd/handlers/main.yml @@ -6,6 +6,13 @@ - start etcd - reload etcd +- name: restart etcd-proxy + command: /bin/true + notify: + - reload systemd + - start etcd-proxy + - reload etcd-proxy + - name: reload systemd command: systemctl daemon-reload when: ansible_service_mgr == "systemd" @@ -15,8 +22,23 @@ name: etcd enabled: yes state: started + when: is_etcd_master + +- name: start etcd-proxy + service: + name: etcd-proxy + enabled: yes + state: started + when: is_etcd_proxy - name: reload etcd service: name: etcd state: "{{ 'restarted' if etcd_deployment_type == 'host' else 'reloaded' }}" + when: is_etcd_master + +- name: reload etcd-proxy + service: + name: etcd-proxy + state: "{{ 'restarted' if etcd_deployment_type == 'host' else 'reloaded' }}" + when: is_etcd_proxy diff --git a/roles/etcd/tasks/configure.yml b/roles/etcd/tasks/configure.yml index 818559239..b665acceb 100644 --- a/roles/etcd/tasks/configure.yml +++ b/roles/etcd/tasks/configure.yml @@ -15,7 +15,7 @@ src: "etcd-{{ etcd_deployment_type }}.service.j2" dest: /etc/systemd/system/etcd.service backup: yes - when: ansible_service_mgr == "systemd" + when: ansible_service_mgr == "systemd" and is_etcd_master notify: restart etcd - name: Configure | Write etcd initd script @@ -24,5 +24,21 @@ dest: /etc/init.d/etcd owner: root mode: 0755 - when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian" + when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian" and is_etcd_master notify: restart etcd + +- name: Configure | Copy etcd-proxy.service systemd file + template: + src: "etcd-proxy-{{ etcd_deployment_type }}.service.j2" + dest: /etc/systemd/system/etcd-proxy.service + backup: yes + when: ansible_service_mgr == "systemd" and is_etcd_proxy + notify: restart etcd-proxy +- name: Configure | Write etcd-proxy initd script + template: + src: "deb-etcd-proxy-{{ etcd_deployment_type }}.initd.j2" + dest: /etc/init.d/etcd-proxy + owner: root + mode: 0755 + when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian" and is_etcd_proxy + notify: restart etcd-proxy diff --git a/roles/etcd/tasks/main.yml b/roles/etcd/tasks/main.yml index 060d3708b..34d94ab73 100644 --- a/roles/etcd/tasks/main.yml +++ b/roles/etcd/tasks/main.yml @@ -8,7 +8,12 @@ - name: Restart etcd if binary changed command: /bin/true notify: restart etcd - when: etcd_deployment_type == "host" and etcd_copy.stdout_lines + when: etcd_deployment_type == "host" and etcd_copy.stdout_lines and is_etcd_master + +- name: Restart etcd-proxy if binary changed + command: /bin/true + notify: restart etcd-proxy + when: etcd_deployment_type == "host" and etcd_copy.stdout_lines and is_etcd_proxy # Reload systemd before starting service - meta: flush_handlers @@ -18,6 +23,14 @@ name: etcd state: started enabled: yes + when: is_etcd_master + +- name: Ensure etcd-proxy is running + service: + name: etcd-proxy + state: started + enabled: yes + when: is_etcd_proxy # After etcd cluster is assembled, make sure that # initial state of the cluster is in `existing` diff --git a/roles/etcd/tasks/refresh_config.yml b/roles/etcd/tasks/refresh_config.yml index 701a1d149..178466153 100644 --- a/roles/etcd/tasks/refresh_config.yml +++ b/roles/etcd/tasks/refresh_config.yml @@ -4,3 +4,11 @@ src: etcd.j2 dest: /etc/etcd.env notify: restart etcd + when: is_etcd_master + +- name: Refresh config | Create etcd-proxy config file + template: + src: etcd-proxy.j2 + dest: /etc/etcd-proxy.env + notify: restart etcd-proxy + when: is_etcd_proxy diff --git a/roles/etcd/tasks/set_facts.yml b/roles/etcd/tasks/set_facts.yml index 415ed85c6..5dd283fef 100644 --- a/roles/etcd/tasks/set_facts.yml +++ b/roles/etcd/tasks/set_facts.yml @@ -1,17 +1,28 @@ --- -- set_fact: etcd_access_address="{{ access_ip | default(ip | default(ansible_default_ipv4['address'])) }}" +- set_fact: etcd_address="{{ ip | default(ansible_default_ipv4['address']) }}" +- set_fact: etcd_access_address="{{ access_ip | default(etcd_address) }}" - set_fact: etcd_peer_url="http://{{ etcd_access_address }}:2380" - set_fact: etcd_client_url="http://{{ etcd_access_address }}:2379" +- set_fact: etcd_authority="{{ access_ip|default('127.0.0.1') }}:2379" +- set_fact: etcd_endpoint="http://{{ etcd_authority }}" - set_fact: etcd_access_addresses: |- {% for item in groups['etcd'] -%} http://{{ hostvars[item].etcd_access_address }}:2379{% if not loop.last %},{% endif %} {%- endfor %} +- set_fact: etcd_access_endpoint="{% if etcd_multiaccess %}{{ etcd_access_addresses }}{% else %}{{ etcd_endpoint }}{% endif %}" - set_fact: etcd_member_name: |- {% for host in groups['etcd'] %} {% if inventory_hostname == host %}{{"etcd"+loop.index|string }}{% endif %} {% endfor %} +- set_fact: + etcd_proxy_member_name: |- + {% for host in groups['k8s-cluster'] %} + {% if inventory_hostname == host %}{{"etcd-proxy"+loop.index|string }}{% endif %} + {% endfor %} +- set_fact: + is_etcd_proxy: "{{ inventory_hostname in groups['k8s-cluster'] }}" - set_fact: is_etcd_master: "{{ inventory_hostname in groups['etcd'] }}" - set_fact: diff --git a/roles/etcd/templates/deb-etcd-docker.initd.j2 b/roles/etcd/templates/deb-etcd-docker.initd.j2 index 6e5a8cb03..d2528b034 100644 --- a/roles/etcd/templates/deb-etcd-docker.initd.j2 +++ b/roles/etcd/templates/deb-etcd-docker.initd.j2 @@ -16,23 +16,16 @@ PATH=/sbin:/usr/sbin:/bin/:/usr/bin DESC="etcd k/v store" NAME=etcd DAEMON={{ docker_bin_dir | default("/usr/bin") }}/docker -{% if is_etcd_master %} DAEMON_ARGS='--restart=always --env-file=/etc/etcd.env \ --net=host \ -v /usr/share/ca-certificates/:/etc/ssl/certs:ro \ -v /var/lib/etcd:/var/lib/etcd:rw \ ---name={{ etcd_member_name | default("etcd-proxy") }} \ +--name={{ etcd_member_name | default("etcd") }} \ {{ etcd_image_repo }}:{{ etcd_image_tag }} \ {% if etcd_after_v3 %} -{{ etcd_container_bin_dir }}etcd \ -{% endif %} -{% if is_etcd_master %} ---proxy off -{% else %} ---proxy on +{{ etcd_container_bin_dir }}etcd {% endif %}' - SCRIPTNAME=/etc/init.d/$NAME DAEMON_USER=etcd STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" @@ -41,9 +34,6 @@ PID=/var/run/etcd.pid # Exit if the binary is not present [ -x "$DAEMON" ] || exit 0 -# Read configuration variable file if it is present -[ -f /etc/etcd.env ] && . /etc/etcd.env - # Define LSB log_* functions. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present # and status_of_proc is working. diff --git a/roles/etcd/templates/deb-etcd-host.initd.j2 b/roles/etcd/templates/deb-etcd-host.initd.j2 index ccecdce4e..b27c0f49a 100644 --- a/roles/etcd/templates/deb-etcd-host.initd.j2 +++ b/roles/etcd/templates/deb-etcd-host.initd.j2 @@ -16,11 +16,6 @@ PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="etcd k/v store" NAME=etcd DAEMON={{ bin_dir }}/etcd -{% if is_etcd_master %} -DAEMON_ARGS="" -{% else %} -DAEMON_ARGS="--proxy on" -{% endif %} SCRIPTNAME=/etc/init.d/$NAME DAEMON_USER=etcd STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" diff --git a/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 b/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 new file mode 100644 index 000000000..c2fa40106 --- /dev/null +++ b/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 @@ -0,0 +1,117 @@ +#!/bin/sh +set -a + +### BEGIN INIT INFO +# Provides: etcd-proxy +# Required-Start: $local_fs $network $syslog +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: etcd-proxy +# Description: +# etcd-proxy is a proxy for etcd: distributed, consistent key-value store for shared configuration and service discovery +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin/:/usr/bin +DESC="etcd-proxy" +NAME=etcd-proxy +DAEMON={{ docker_bin_dir | default("/usr/bin") }}/docker +DAEMON_ARGS='--restart=always --env-file=/etc/etcd-proxy.env \ +--net=host \ +--stop-signal=SIGKILL \ +-v /usr/share/ca-certificates/:/etc/ssl/certs:ro \ +--name={{ etcd_proxy_member_name | default("etcd-proxy") }} \ +{{ etcd_image_repo }}:{{ etcd_image_tag }} \ +{% if etcd_after_v3 %} +{{ etcd_container_bin_dir }}etcd +{% endif %}' + + +SCRIPTNAME=/etc/init.d/$NAME +DAEMON_USER=etcd-proxy +STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" +PID=/var/run/etcd-proxy.pid + +# Exit if the binary is not present +[ -x "$DAEMON" ] || exit 0 + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.2-14) to ensure that this file is present +# and status_of_proc is working. +. /lib/lsb/init-functions + +do_status() +{ + status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $? +} + +# Function that starts the daemon/service +# +do_start() +{ + start-stop-daemon --background --start --quiet --make-pidfile --pidfile $PID --user $DAEMON_USER --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $NAME + RETVAL="$?" + + sleep 1 + return "$RETVAL" +} + + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) log_end_msg 0 || exit 0 ;; + 2) log_end_msg 1 || exit 1 ;; + esac + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + if do_stop; then + log_end_msg 0 + else + log_failure_msg "Can't stop etcd-proxy" + log_end_msg 1 + fi + ;; + status) + if do_status; then + log_end_msg 0 + else + log_failure_msg "etcd-proxy is not running" + log_end_msg 1 + fi + ;; + + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + if do_stop; then + if do_start; then + log_end_msg 0 + exit 0 + else + rc="$?" + fi + else + rc="$?" + fi + log_failure_msg "Can't restart etcd-proxy" + log_end_msg ${rc} + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + diff --git a/roles/etcd/templates/deb-etcd-proxy-host.initd.j2 b/roles/etcd/templates/deb-etcd-proxy-host.initd.j2 new file mode 100644 index 000000000..d0858bb2f --- /dev/null +++ b/roles/etcd/templates/deb-etcd-proxy-host.initd.j2 @@ -0,0 +1,110 @@ +#!/bin/sh +set -a + +### BEGIN INIT INFO +# Provides: etcd-proxy +# Required-Start: $local_fs $network $syslog +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: etcd-proxy +# Description: +# etcd-proxy is a proxy for etcd: distributed, consistent key-value store for shared configuration and service discovery +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="etcd-proxy" +NAME=etcd-proxy +DAEMON={{ bin_dir }}/etcd +DAEMON_ARGS="" +SCRIPTNAME=/etc/init.d/$NAME +DAEMON_USER=etcd +STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" +PID=/var/run/etcd-proxy.pid + +# Exit if the binary is not present +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -f /etc/etcd-proxy.env ] && . /etc/etcd-proxy.env + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.2-14) to ensure that this file is present +# and status_of_proc is working. +. /lib/lsb/init-functions + +do_status() +{ + status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $? +} + +# Function that starts the daemon/service +# +do_start() +{ + start-stop-daemon --background --start --quiet --make-pidfile --pidfile $PID --user $DAEMON_USER --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $NAME + RETVAL="$?" + + sleep 1 + return "$RETVAL" +} + + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) log_end_msg 0 || exit 0 ;; + 2) log_end_msg 1 || exit 1 ;; + esac + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + if do_stop; then + log_end_msg 0 + else + log_failure_msg "Can't stop etcd-proxy" + log_end_msg 1 + fi + ;; + status) + if do_status; then + log_end_msg 0 + else + log_failure_msg "etcd-proxy is not running" + log_end_msg 1 + fi + ;; + + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + if do_stop; then + if do_start; then + log_end_msg 0 + exit 0 + else + rc="$?" + fi + else + rc="$?" + fi + log_failure_msg "Can't restart etcd-proxy" + log_end_msg ${rc} + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + diff --git a/roles/etcd/templates/etcd-docker.service.j2 b/roles/etcd/templates/etcd-docker.service.j2 index 623ec70b9..a02e84c25 100644 --- a/roles/etcd/templates/etcd-docker.service.j2 +++ b/roles/etcd/templates/etcd-docker.service.j2 @@ -1,6 +1,6 @@ [Unit] Description=etcd docker wrapper -Requires=docker.service +Wants=docker.service After=docker.service [Service] @@ -13,15 +13,10 @@ ExecStart={{ docker_bin_dir | default("/usr/bin") }}/docker run --restart=always --net=host \ -v /usr/share/ca-certificates/:/etc/ssl/certs:ro \ -v /var/lib/etcd:/var/lib/etcd:rw \ ---name={{ etcd_member_name | default("etcd-proxy") }} \ +--name={{ etcd_member_name | default("etcd") }} \ {{ etcd_image_repo }}:{{ etcd_image_tag }} \ {% if etcd_after_v3 %} -{{ etcd_container_bin_dir }}etcd \ -{% endif %} -{% if is_etcd_master %} ---proxy off -{% else %} ---proxy on +{{ etcd_container_bin_dir }}etcd {% endif %} ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_member_name | default("etcd-proxy") }} ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_member_name | default("etcd-proxy") }} diff --git a/roles/etcd/templates/etcd-host.service.j2 b/roles/etcd/templates/etcd-host.service.j2 index ff39477ac..8a91fab92 100644 --- a/roles/etcd/templates/etcd-host.service.j2 +++ b/roles/etcd/templates/etcd-host.service.j2 @@ -6,11 +6,7 @@ After=network.target Type=notify User=etcd EnvironmentFile=/etc/etcd.env -{% if inventory_hostname in groups['etcd'] %} ExecStart={{ bin_dir }}/etcd -{% else %} -ExecStart={{ bin_dir }}/etcd -proxy on -{% endif %} NotifyAccess=all Restart=always RestartSec=10s diff --git a/roles/etcd/templates/etcd-proxy-docker.service.j2 b/roles/etcd/templates/etcd-proxy-docker.service.j2 new file mode 100644 index 000000000..757423bb4 --- /dev/null +++ b/roles/etcd/templates/etcd-proxy-docker.service.j2 @@ -0,0 +1,28 @@ +[Unit] +Description=etcd-proxy docker wrapper +Wants=docker.service +After=docker.service + +[Service] +User=root +PermissionsStartOnly=true +ExecStart={{ docker_bin_dir | default("/usr/bin") }}/docker run --restart=always \ +--env-file=/etc/etcd-proxy.env \ +{# TODO(mattymo): Allow docker IP binding and disable in envfile + -p 2380:2380 -p 2379:2379 #} +--net=host \ +--stop-signal=SIGKILL \ +-v /usr/share/ca-certificates/:/etc/ssl/certs:ro \ +--name={{ etcd_proxy_member_name | default("etcd-proxy") }} \ +{{ etcd_image_repo }}:{{ etcd_image_tag }} \ +{% if etcd_after_v3 %} +{{ etcd_container_bin_dir }}etcd +{% endif %} +ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_proxy_member_name | default("etcd-proxy") }} +ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_proxy_member_name | default("etcd-proxy") }} +ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_proxy_member_name | default("etcd-proxy") }} +Restart=always +RestartSec=10s + +[Install] +WantedBy=multi-user.target diff --git a/roles/etcd/templates/etcd-proxy-host.service.j2 b/roles/etcd/templates/etcd-proxy-host.service.j2 new file mode 100644 index 000000000..4ea5f7bc9 --- /dev/null +++ b/roles/etcd/templates/etcd-proxy-host.service.j2 @@ -0,0 +1,19 @@ +[Unit] +Description=etcd-proxy +After=network.target + +[Service] +Type=notify +User=etcd +PermissionsStartOnly=true +EnvironmentFile=/etc/etcd-proxy.env +ExecStart={{ bin_dir }}/etcd +ExecStartPre=/bin/mkdir -p /var/lib/etcd-proxy +ExecStartPre=/bin/chown -R etcd: /var/lib/etcd-proxy +NotifyAccess=all +Restart=always +RestartSec=10s +LimitNOFILE=40000 + +[Install] +WantedBy=multi-user.target diff --git a/roles/etcd/templates/etcd-proxy.j2 b/roles/etcd/templates/etcd-proxy.j2 new file mode 100644 index 000000000..90d6f6470 --- /dev/null +++ b/roles/etcd/templates/etcd-proxy.j2 @@ -0,0 +1,5 @@ +ETCD_DATA_DIR=/var/lib/etcd-proxy +ETCD_PROXY=on +ETCD_LISTEN_CLIENT_URLS={{ etcd_access_endpoint }} +ETCD_NAME={{ etcd_proxy_member_name | default("etcd-proxy") }} +ETCD_INITIAL_CLUSTER={% for host in groups['etcd'] %}etcd{{ loop.index|string }}={{ hostvars[host]['etcd_peer_url'] }}{% if not loop.last %},{% endif %}{% endfor %} diff --git a/roles/etcd/templates/etcd.j2 b/roles/etcd/templates/etcd.j2 index 94d9e8121..106217ba6 100644 --- a/roles/etcd/templates/etcd.j2 +++ b/roles/etcd/templates/etcd.j2 @@ -1,14 +1,12 @@ ETCD_DATA_DIR=/var/lib/etcd -{% if is_etcd_master %} -ETCD_ADVERTISE_CLIENT_URLS=http://{{ hostvars[inventory_hostname]['access_ip'] | default(hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address'])) }}:2379 -ETCD_INITIAL_ADVERTISE_PEER_URLS=http://{{ hostvars[inventory_hostname]['access_ip'] | default(hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address'])) }}:2380 +ETCD_ADVERTISE_CLIENT_URLS={{ etcd_client_url }} +ETCD_INITIAL_ADVERTISE_PEER_URLS={{ etcd_peer_url }} ETCD_INITIAL_CLUSTER_STATE={% if etcd_cluster_is_healthy.rc != 0 | bool %}new{% else %}existing{% endif %} +ETCD_LISTEN_CLIENT_URLS=http://{{ etcd_address }}:2379 ETCD_ELECTION_TIMEOUT=10000 ETCD_INITIAL_CLUSTER_TOKEN=k8s_etcd -ETCD_LISTEN_PEER_URLS=http://{{ hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address']) }}:2380 +ETCD_LISTEN_PEER_URLS=http://{{ etcd_address }}:2380 ETCD_NAME={{ etcd_member_name }} -{% endif %} +ETCD_PROXY=off ETCD_INITIAL_CLUSTER={% for host in groups['etcd'] %}etcd{{ loop.index|string }}={{ hostvars[host]['etcd_peer_url'] }}{% if not loop.last %},{% endif %}{% endfor %} - -ETCD_LISTEN_CLIENT_URLS=http://{{ hostvars[inventory_hostname]['ip'] | default( hostvars[inventory_hostname]['ansible_default_ipv4']['address']) }}:2379,http://127.0.0.1:2379 diff --git a/roles/kubernetes/master/templates/kube-apiserver.j2 b/roles/kubernetes/master/templates/kube-apiserver.j2 index 07ed59cc6..0e3a2710d 100644 --- a/roles/kubernetes/master/templates/kube-apiserver.j2 +++ b/roles/kubernetes/master/templates/kube-apiserver.j2 @@ -27,7 +27,7 @@ KUBE_API_INSECURE_BIND="--insecure-bind-address={{ kube_apiserver_insecure_bind_ KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range={{ kube_service_addresses }}" # Location of the etcd cluster -KUBE_ETCD_SERVERS="--etcd_servers={% for host in groups['etcd'] %}http://{{ hostvars[host]['access_ip'] | default(hostvars[host]['ip'] | default(hostvars[host]['ansible_default_ipv4']['address'])) }}:2379{% if not loop.last %},{% endif %}{% endfor %}" +KUBE_ETCD_SERVERS="--etcd_servers={{ etcd_access_endpoint }}" # Bind address for secure endpoint KUBE_API_ADDRESS="--bind-address={{ ip | default(ansible_default_ipv4.address) }}" diff --git a/roles/kubernetes/master/templates/kube-apiserver.service.j2 b/roles/kubernetes/master/templates/kube-apiserver.service.j2 index 699797171..785cfd097 100644 --- a/roles/kubernetes/master/templates/kube-apiserver.service.j2 +++ b/roles/kubernetes/master/templates/kube-apiserver.service.j2 @@ -1,8 +1,8 @@ [Unit] Description=Kubernetes API Server Documentation=https://github.com/GoogleCloudPlatform/kubernetes -Requires=etcd.service -After=etcd.service +Wants=etcd-proxy.service +After=etcd-proxy.service [Service] EnvironmentFile=/etc/kubernetes/kube-apiserver.env diff --git a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 index 48b013e6c..853a76cae 100644 --- a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 @@ -11,7 +11,7 @@ spec: - /hyperkube - apiserver - --advertise-address={{ ip | default(ansible_default_ipv4.address) }} - - --etcd-servers={% for srv in groups['etcd'] %}http://{{ hostvars[srv]['access_ip'] | default(hostvars[srv]['ip']|default(hostvars[srv]['ansible_default_ipv4']['address'])) }}:2379{% if not loop.last %},{% endif %}{% endfor %} + - --etcd-servers={{ etcd_access_endpoint }} - --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota - --service-cluster-ip-range={{ kube_service_addresses }} - --client-ca-file={{ kube_cert_dir }}/ca.pem diff --git a/roles/kubernetes/node/templates/cni-calico.conf.j2 b/roles/kubernetes/node/templates/cni-calico.conf.j2 index c11067965..c48b084a5 100644 --- a/roles/kubernetes/node/templates/cni-calico.conf.j2 +++ b/roles/kubernetes/node/templates/cni-calico.conf.j2 @@ -1,7 +1,7 @@ { "name": "calico-k8s-network", "type": "calico", - "etcd_authority": "127.0.0.1:2379", + "etcd_authority": "{{ etcd_authority }}", "log_level": "info", "ipam": { "type": "calico-ipam" diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index a8185d4f2..7e732d632 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -44,7 +44,7 @@ - name: Calico | Check if calico network pool has already been configured uri: - url: "http://127.0.0.1:2379/v2/keys/calico/v1/ipam/v4/pool" + url: "{{ etcd_endpoint }}/v2/keys/calico/v1/ipam/v4/pool" return_content: yes status_code: 200,404 register: calico_conf @@ -70,7 +70,7 @@ - name: Calico | Get calico configuration from etcd uri: - url: "http://127.0.0.1:2379/v2/keys/calico/v1/ipam/v4/pool" + url: "{{ etcd_endpoint }}/v2/keys/calico/v1/ipam/v4/pool" return_content: yes register: calico_pools run_once: true diff --git a/roles/network_plugin/calico/templates/calico-node.service.j2 b/roles/network_plugin/calico/templates/calico-node.service.j2 index 8c8af6971..191ae8f40 100644 --- a/roles/network_plugin/calico/templates/calico-node.service.j2 +++ b/roles/network_plugin/calico/templates/calico-node.service.j2 @@ -1,8 +1,8 @@ [Unit] Description=Calico per-node agent Documentation=https://github.com/projectcalico/calico-docker -Requires=docker.service -After=docker.service etcd.service +Wants=docker.service etcd-proxy.service +After=docker.service etcd-proxy.service [Service] User=root diff --git a/roles/network_plugin/calico/templates/calicoctl-container.j2 b/roles/network_plugin/calico/templates/calicoctl-container.j2 index 9436a50e7..a6bf88896 100644 --- a/roles/network_plugin/calico/templates/calicoctl-container.j2 +++ b/roles/network_plugin/calico/templates/calicoctl-container.j2 @@ -1,6 +1,6 @@ #!/bin/bash /usr/bin/docker run --privileged --rm \ ---net=host -e ETCD_AUTHORITY=127.0.0.1:2379 \ +--net=host -e ETCD_AUTHORITY={{ etcd_authority }} \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/calico:/var/run/calico \ diff --git a/roles/network_plugin/calico/templates/network-environment.j2 b/roles/network_plugin/calico/templates/network-environment.j2 index 9a588cfc4..99d592a5e 100644 --- a/roles/network_plugin/calico/templates/network-environment.j2 +++ b/roles/network_plugin/calico/templates/network-environment.j2 @@ -6,4 +6,4 @@ DEFAULT_IPV4={{ip | default(ansible_default_ipv4.address) }} KUBERNETES_MASTER={{ hostvars[groups['kube-master'][0]]['access_ip'] | default(hostvars[groups['kube-master'][0]]['ip'] | default(hostvars[groups['kube-master'][0]]['ansible_default_ipv4']['address'])) }} # IP and port of etcd instance used by Calico -ETCD_AUTHORITY=127.0.0.1:2379 +ETCD_AUTHORITY={{ etcd_authority }} diff --git a/roles/network_plugin/flannel/templates/flannel-pod.yml b/roles/network_plugin/flannel/templates/flannel-pod.yml index 62f18f500..b9014f003 100644 --- a/roles/network_plugin/flannel/templates/flannel-pod.yml +++ b/roles/network_plugin/flannel/templates/flannel-pod.yml @@ -21,7 +21,7 @@ args: - "--network-config=/etc/flannel-network.json" - "--etcd-prefix=/{{ cluster_name }}/network" - - "--etcd-server=http://{{ groups['etcd'][0] }}:2379" + - "--etcd-server={{ etcd_endpoint }}" volumeMounts: - name: "networkconfig" mountPath: "/etc/flannel-network.json" @@ -31,7 +31,7 @@ command: - "/bin/sh" - "-c" - - "/opt/bin/flanneld -etcd-endpoints {% for srv in groups['etcd'] %}http://{{ srv }}:2379{% if not loop.last %},{% endif %}{% endfor %} -etcd-prefix /{{ cluster_name }}/network {% if flannel_interface is defined %}-iface {{ flannel_interface }}{% endif %} {% if flannel_public_ip is defined %}-public-ip {{ flannel_public_ip }}{% endif %}" + - "/opt/bin/flanneld -etcd-endpoints {{ etcd_access_endpoint }} -etcd-prefix /{{ cluster_name }}/network {% if flannel_interface is defined %}-iface {{ flannel_interface }}{% endif %} {% if flannel_public_ip is defined %}-public-ip {{ flannel_public_ip }}{% endif %}" ports: - hostPort: 10253 containerPort: 10253 From c3e5aac18eb7bdf5d3c245e52fe6aa4485550ef9 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Wed, 20 Jul 2016 11:57:47 +0300 Subject: [PATCH 037/695] Add variable kube_resolv_conf Allow configuration of a custom /etc/resolv.conf for kubelet. --- roles/kubernetes/node/defaults/main.yml | 3 +++ roles/kubernetes/node/templates/kubelet.j2 | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 2997946f5..38ac1c6dc 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -29,6 +29,9 @@ kube_log_dir: "/var/log/kubernetes" dns_domain: "{{ cluster_name }}" +# resolv.conf to base dns config +kube_resolv_conf: "/etc/resolv.conf" + kube_proxy_mode: iptables # An experimental dev/test only dynamic volumes provisioner, diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index d96f7ff6e..20e521f73 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -21,7 +21,7 @@ KUBELET_REGISTER_NODE="--register-node=false" {% endif %} # location of the api-server {% if dns_setup %} -KUBELET_ARGS="--cluster_dns={{ dns_server }} --cluster_domain={{ dns_domain }} --kubeconfig={{ kube_config_dir}}/node-kubeconfig.yaml --config={{ kube_manifest_dir }}" +KUBELET_ARGS="--cluster_dns={{ dns_server }} --cluster_domain={{ dns_domain }} --kubeconfig={{ kube_config_dir}}/node-kubeconfig.yaml --config={{ kube_manifest_dir }} --resolv-conf={{ kube_resolv_conf }}" {% else %} KUBELET_ARGS="--kubeconfig={{ kube_config_dir}}/kubelet.kubeconfig --config={{ kube_manifest_dir }}" {% endif %} From a76e5dbb11e1a78c779ff8a71256c95fd9f161f5 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Wed, 20 Jul 2016 11:35:06 +0200 Subject: [PATCH 038/695] Fix set_facts visibility Move set_facts to the preinstall scope, so every role may see it. For example, network plugins to see the etcd_endpoint. Signed-off-by: Bogdan Dobrelya --- roles/etcd/tasks/main.yml | 1 - roles/kubernetes/preinstall/tasks/main.yml | 2 ++ roles/{etcd => kubernetes/preinstall}/tasks/set_facts.yml | 0 3 files changed, 2 insertions(+), 1 deletion(-) rename roles/{etcd => kubernetes/preinstall}/tasks/set_facts.yml (100%) diff --git a/roles/etcd/tasks/main.yml b/roles/etcd/tasks/main.yml index 34d94ab73..733f6475b 100644 --- a/roles/etcd/tasks/main.yml +++ b/roles/etcd/tasks/main.yml @@ -1,5 +1,4 @@ --- -- include: set_facts.yml - include: install.yml - include: set_cluster_health.yml - include: configure.yml diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index 95cd134ce..c0dd65797 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -2,6 +2,8 @@ - include: gitinfos.yml when: run_gitinfos +- include: set_facts.yml + - name: gather os specific variables include_vars: "{{ item }}" with_first_found: diff --git a/roles/etcd/tasks/set_facts.yml b/roles/kubernetes/preinstall/tasks/set_facts.yml similarity index 100% rename from roles/etcd/tasks/set_facts.yml rename to roles/kubernetes/preinstall/tasks/set_facts.yml From 7a86b6c73e45e5f321aa0dfdf101f286e1bb8ad9 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Tue, 19 Jul 2016 16:45:37 +0300 Subject: [PATCH 039/695] Set default etcd deployment to docker Improved docker reload command to wait for etcd to be up before proceeding. Switched reload to run restart because it can't reload if it is not guaranteed to be in running state. --- roles/etcd/defaults/main.yml | 2 +- roles/etcd/handlers/main.yml | 27 +++++++------------ roles/etcd/tasks/main.yml | 26 +++++++++--------- roles/etcd/templates/etcd-docker.service.j2 | 2 +- .../templates/etcd-proxy-docker.service.j2 | 2 +- roles/network_plugin/calico/tasks/main.yml | 7 +++-- 6 files changed, 31 insertions(+), 35 deletions(-) diff --git a/roles/etcd/defaults/main.yml b/roles/etcd/defaults/main.yml index 63f485719..e4234179f 100644 --- a/roles/etcd/defaults/main.yml +++ b/roles/etcd/defaults/main.yml @@ -3,7 +3,7 @@ etcd_version: v3.0.1 etcd_bin_dir: "{{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64/" # Possible values: host, docker -etcd_deployment_type: "host" +etcd_deployment_type: "docker" etcd_image_repo: "quay.io/coreos/etcd" diff --git a/roles/etcd/handlers/main.yml b/roles/etcd/handlers/main.yml index cf0aaa5bf..cc22b1c72 100644 --- a/roles/etcd/handlers/main.yml +++ b/roles/etcd/handlers/main.yml @@ -3,42 +3,35 @@ command: /bin/true notify: - reload systemd - - start etcd - reload etcd + - wait for etcd up - name: restart etcd-proxy command: /bin/true notify: - reload systemd - - start etcd-proxy - reload etcd-proxy + - wait for etcd up - name: reload systemd command: systemctl daemon-reload when: ansible_service_mgr == "systemd" -- name: start etcd - service: - name: etcd - enabled: yes - state: started - when: is_etcd_master - -- name: start etcd-proxy - service: - name: etcd-proxy - enabled: yes - state: started - when: is_etcd_proxy +- name: wait for etcd up + uri: url=http://localhost:2379/health + register: result + until: result.status == 200 + retries: 10 + delay: 5 - name: reload etcd service: name: etcd - state: "{{ 'restarted' if etcd_deployment_type == 'host' else 'reloaded' }}" + state: restarted when: is_etcd_master - name: reload etcd-proxy service: name: etcd-proxy - state: "{{ 'restarted' if etcd_deployment_type == 'host' else 'reloaded' }}" + state: restarted when: is_etcd_proxy diff --git a/roles/etcd/tasks/main.yml b/roles/etcd/tasks/main.yml index 34d94ab73..f2d31badb 100644 --- a/roles/etcd/tasks/main.yml +++ b/roles/etcd/tasks/main.yml @@ -5,19 +5,6 @@ - include: configure.yml - include: refresh_config.yml -- name: Restart etcd if binary changed - command: /bin/true - notify: restart etcd - when: etcd_deployment_type == "host" and etcd_copy.stdout_lines and is_etcd_master - -- name: Restart etcd-proxy if binary changed - command: /bin/true - notify: restart etcd-proxy - when: etcd_deployment_type == "host" and etcd_copy.stdout_lines and is_etcd_proxy - -# Reload systemd before starting service -- meta: flush_handlers - - name: Ensure etcd is running service: name: etcd @@ -32,6 +19,19 @@ enabled: yes when: is_etcd_proxy +- name: Restart etcd if binary changed + command: /bin/true + notify: restart etcd + when: etcd_deployment_type == "host" and etcd_copy.stdout_lines and is_etcd_master + +- name: Restart etcd-proxy if binary changed + command: /bin/true + notify: restart etcd-proxy + when: etcd_deployment_type == "host" and etcd_copy.stdout_lines and is_etcd_proxy + +# Reload systemd before starting service +- meta: flush_handlers + # After etcd cluster is assembled, make sure that # initial state of the cluster is in `existing` # state insted of `new`. diff --git a/roles/etcd/templates/etcd-docker.service.j2 b/roles/etcd/templates/etcd-docker.service.j2 index a02e84c25..e196c0b59 100644 --- a/roles/etcd/templates/etcd-docker.service.j2 +++ b/roles/etcd/templates/etcd-docker.service.j2 @@ -22,7 +22,7 @@ ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_me ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_member_name | default("etcd-proxy") }} ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_member_name | default("etcd-proxy") }} Restart=always -RestartSec=10s +RestartSec=15s [Install] WantedBy=multi-user.target diff --git a/roles/etcd/templates/etcd-proxy-docker.service.j2 b/roles/etcd/templates/etcd-proxy-docker.service.j2 index 757423bb4..98d548cce 100644 --- a/roles/etcd/templates/etcd-proxy-docker.service.j2 +++ b/roles/etcd/templates/etcd-proxy-docker.service.j2 @@ -22,7 +22,7 @@ ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_pr ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_proxy_member_name | default("etcd-proxy") }} ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_proxy_member_name | default("etcd-proxy") }} Restart=always -RestartSec=10s +RestartSec=15s [Install] WantedBy=multi-user.target diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index 7e732d632..99d97b01b 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -38,8 +38,11 @@ changed_when: false - name: Calico | wait for etcd - wait_for: - port: 2379 + uri: url=http://localhost:2379/health + register: result + until: result.status == 200 + retries: 10 + delay: 5 when: inventory_hostname in groups['kube-master'] - name: Calico | Check if calico network pool has already been configured From a70c3b661e12d75ca01f8c0b38ef6af625d3383a Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Wed, 13 Jul 2016 17:13:47 +0200 Subject: [PATCH 040/695] Add HA/LB endpoints for kube-apiserver * Add auto-evaluated internal endpoints and clarify the loadbalancer_apiserver vars and usecases. * Add loadbalancer_apiserver_localhost (default false). If enabled, override the external LB and expect localhost:443/8080 to be new internal only frontends. * Add kube_apiserver_multiaccess to ignore loadbalancers, and make clients to access the apiservers as a comma-separated list of access_ip/ip/ansible ip (a default mode). When disabled, allow clients to use the given loadbalancers. * Define connections security mode for kube controllers, schedulers, proxies. It is insecure be default, which is the current deployment choice. * Rework the groups['kube-master'][0] hardcode defining the apiserver endpoints. * Improve grouping of vars and add facts for kube_apiserver. * Define kube_apiserver_insecure_bind_address as a fact, add more facts for ease of use. Signed-off-by: Bogdan Dobrelya --- inventory/group_vars/all.yml | 77 +++++++++++++------ .../master/templates/kube-apiserver.j2 | 4 +- .../templates/kubectl-kubeconfig.yaml.j2 | 2 +- .../kube-controller-manager.manifest.j2 | 6 +- .../manifests/kube-scheduler.manifest.j2 | 6 +- roles/kubernetes/node/templates/kubelet.j2 | 2 +- .../manifests/kube-proxy.manifest.j2 | 10 +-- .../kubernetes/preinstall/tasks/set_facts.yml | 34 ++++++++ 8 files changed, 104 insertions(+), 37 deletions(-) diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index e9b138c92..9c7000c0c 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -53,7 +53,7 @@ cluster_name: cluster.local # Service endpoints. May be a VIP or a load balanced frontend IP, like one # that a HAProxy or Nginx provides, or just a local service endpoint. -# + # Etcd endpoints use a local etcd-proxies to reach the etcd cluster via # auto-evaluated endpoints. Those will reuse the access_ip for etcd cluster, # if specified, or defer to the localhost:2379 as well. @@ -64,15 +64,64 @@ cluster_name: cluster.local # This may be the case if clients support and loadbalance multiple etcd servers natively. etcd_multiaccess: false -# -# TODO apiserver localhost:8080 and localhost:443 endpoints for kubelets and -# (hyper)kube-* and networking components. +# The port the API Server will be listening on. +kube_apiserver_port: 443 # (https) +kube_apiserver_insecure_port: 8080 # (http) + +# For multi masters architecture: +# kube-proxy doesn't support multiple apiservers for the time being so you'll need to configure your own loadbalancer +# This domain name will be inserted into the /etc/hosts file of all servers +# configuration example with haproxy: +# listen kubernetes-apiserver-https +# bind 10.99.0.21:8383 +# option ssl-hello-chk +# mode tcp +# timeout client 3h +# timeout server 3h +# server master1 10.99.0.26:443 +# server master2 10.99.0.27:443 +# balance roundrobin + +# And the corresponding example config vars: +# apiserver_loadbalancer_domain_name: "lb-apiserver.kubernetes.local" +# loadbalancer_apiserver: +# adress: 10.99.0.21 +# port: 8383 + +# For internal only multi-masters architecture: +# Assume there is no loadbalancers configured for internal access. Enable this flag, +# if a loadbalancer listens the localhost, which may be the case when there is neither +# loadbalancer_apiserver nor access_ip is configured, or you want to override both. +loadbalancer_apiserver_localhost: false + +# The internal kube-apiserver endpoints: +# The secure endpoint is auto-evaluated. If loadbalancer_apiserver_localhost=true, +# it uses the localhost:kube_apiserver_port. Otherwise, it uses the external +# apiserver_loadbalancer_domain_name:loadbalancer_apiserver.port. Or defers to the +# access_ip:kube_apiserver_port, then ip, then default ansible ip. + +# The insecure endpoint ignores the apiserver_loadbalancer_domain_name and access_ip. +# By default, it is a localhost:kube_apiserver_insecure_port. +# If loadbalancer_apiserver_localhost, it defers to ip, then default ansible ip. + +# Apiserver access modes: +# Configure clients to access all of the apiservers directly as the +# "http(s)://hostX:port, http(s)://hostY:port, ..." and ignore the loadbalancers, if any. +# This may be the case, if clients support and loadbalance multiple apiservers or +# when there is no loadbalancers configured. +kube_apiserver_multiaccess: true + +# Define connections security for kube controllers, schedulers and proxies +kube_proxy_insecure: true +kube_controller_insecure: true +kube_scheduler_insecure: true # Choose network plugin (calico, weave or flannel) kube_network_plugin: flannel # Kubernetes internal network for services, unused block of space. kube_service_addresses: 10.233.0.0/18 +kube_apiserver_ip: "{{ kube_service_addresses|ipaddr('net')|ipaddr(1)|ipaddr('address') }}" # internal network. When used, it will assign IP # addresses from this range to individual pods. @@ -93,11 +142,6 @@ peer_with_router: false # Warning : enabling router peering will disable calico's default behavior ('node mesh'). # The subnets of each nodes will be distributed by the datacenter router -# The port the API Server will be listening on. -kube_apiserver_ip: "{{ kube_service_addresses|ipaddr('net')|ipaddr(1)|ipaddr('address') }}" -kube_apiserver_port: 443 # (https) -kube_apiserver_insecure_port: 8080 # (http) - # Internal DNS configuration. # Kubernetes can create and mainatain its own DNS server to resolve service names # into appropriate IP addresses. It's highly advisable to run such DNS server, @@ -126,21 +170,6 @@ dns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(2)|ipaddr('address') # like you would do when using nova-client before starting the playbook. # cloud_provider: -# For multi masters architecture: -# kube-proxy doesn't support multiple apiservers for the time being so you'll need to configure your own loadbalancer -# This domain name will be inserted into the /etc/hosts file of all servers -# configuration example with haproxy : -# listen kubernetes-apiserver-https -# bind 10.99.0.21:8383 -# option ssl-hello-chk -# mode tcp -# timeout client 3h -# timeout server 3h -# server master1 10.99.0.26:443 -# server master2 10.99.0.27:443 -# balance roundrobin -# apiserver_loadbalancer_domain_name: "lb-apiserver.kubernetes.local" - ## Set these proxy values in order to update docker daemon to use proxies # http_proxy: "" # https_proxy: "" diff --git a/roles/kubernetes/master/templates/kube-apiserver.j2 b/roles/kubernetes/master/templates/kube-apiserver.j2 index 0e3a2710d..25719e91f 100644 --- a/roles/kubernetes/master/templates/kube-apiserver.j2 +++ b/roles/kubernetes/master/templates/kube-apiserver.j2 @@ -21,7 +21,7 @@ KUBE_ALLOW_PRIV="--allow_privileged=true" KUBE_API_PORT="--insecure-port={{kube_apiserver_insecure_port}} --secure-port={{ kube_apiserver_port }}" # Insecure API address (default is localhost) -KUBE_API_INSECURE_BIND="--insecure-bind-address={{ kube_apiserver_insecure_bind_address | default('127.0.0.1') }}" +KUBE_API_INSECURE_BIND="--insecure-bind-address={{ kube_apiserver_insecure_bind_address }}" # Address range to use for services KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range={{ kube_service_addresses }}" @@ -42,7 +42,7 @@ KUBE_RUNTIME_CONFIG="{% if kube_api_runtime_config is defined %}{% for conf in k KUBE_TLS_CONFIG="--tls_cert_file={{ kube_cert_dir }}/apiserver.pem --tls_private_key_file={{ kube_cert_dir }}/apiserver-key.pem --client_ca_file={{ kube_cert_dir }}/ca.pem" # Add you own! -KUBE_API_ARGS="--token_auth_file={{ kube_token_dir }}/known_tokens.csv --basic-auth-file={{ kube_users_dir }}/known_users.csv --service_account_key_file={{ kube_cert_dir }}/apiserver-key.pem --advertise-address={{ ip | default(ansible_default_ipv4.address) }}" +KUBE_API_ARGS="--token_auth_file={{ kube_token_dir }}/known_tokens.csv --basic-auth-file={{ kube_users_dir }}/known_users.csv --service_account_key_file={{ kube_cert_dir }}/apiserver-key.pem --advertise-address={{ kube_apiserver_address }}" {% if cloud_provider is defined and cloud_provider == "openstack" %} KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }} --cloud-config={{ kube_config_dir }}/cloud_config" diff --git a/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 b/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 index 5cc74cf9e..a9800d3ac 100644 --- a/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 +++ b/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 @@ -5,7 +5,7 @@ preferences: {} clusters: - cluster: certificate-authority-data: {{ kube_node_cert|b64encode }} - server: https://{{ groups['kube-master'][0] }}:{{ kube_apiserver_port }} + server: {{ kube_apiserver_endpoint }} name: {{ cluster_name }} contexts: - context: diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 index 29c56e6a8..d185a863c 100644 --- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 @@ -11,7 +11,11 @@ spec: command: - /hyperkube - controller-manager - - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}} +{% if kube_controller_insecure %} + - --master={{ kube_apiserver_insecure_endpoint }} +{% else %} + - --master={{ kube_apiserver_endpoint }} +{% endif %} - --leader-elect=true - --service-account-private-key-file={{ kube_cert_dir }}/apiserver-key.pem - --root-ca-file={{ kube_cert_dir }}/ca.pem diff --git a/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 index f642fbf70..6993bbb8d 100644 --- a/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 @@ -12,7 +12,11 @@ spec: - /hyperkube - scheduler - --leader-elect=true - - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}} +{% if kube_scheduler_insecure %} + - --master={{ kube_apiserver_insecure_endpoint }} +{% else %} + - --master={{ kube_apiserver_endpoint }} +{% endif %} - --v={{ kube_log_level | default('2') }} livenessProbe: httpGet: diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index 20e521f73..27687eac7 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -8,7 +8,7 @@ KUBE_LOGGING="--logtostderr=true" KUBE_LOG_LEVEL="--v={{ kube_log_level | default('2') }}" KUBE_ALLOW_PRIV="--allow_privileged=true" {% if inventory_hostname in groups['kube-node'] %} -KUBELET_API_SERVER="--api_servers={% for host in groups['kube-master'] %}https://{{ hostvars[host]['access_ip'] | default(hostvars[host]['ip'] | default(hostvars[host]['ansible_default_ipv4']['address'])) }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %}{% endfor %}" +KUBELET_API_SERVER="--api_servers={{ kube_apiserver_access_endpoint }}" {% endif %} # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces) KUBELET_ADDRESS="--address={{ ip | default("0.0.0.0") }}" diff --git a/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 b/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 index d094766b5..f4877784a 100644 --- a/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 +++ b/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 @@ -12,14 +12,10 @@ spec: - /hyperkube - proxy - --v={{ kube_log_level | default('2') }} -{% if inventory_hostname in groups['kube-master'] %} - - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}} +{% if kube_proxy_insecure %} + - --master={{ kube_apiserver_insecure_endpoint }} {% else %} -{% if loadbalancer_apiserver is defined and apiserver_loadbalancer_domain_name is defined %} - - --master=https://{{ apiserver_loadbalancer_domain_name }}:{{ loadbalancer_apiserver.port }} -{% else %} - - --master=https://{{ hostvars[groups['kube-master'][0]]['access_ip'] | default(hostvars[groups['kube-master'][0]]['ip'] | default(hostvars[groups['kube-master'][0]]['ansible_default_ipv4']['address'])) }}:{{ kube_apiserver_port }} -{% endif%} + - --master={{ kube_apiserver_access_endpoint }} - --kubeconfig=/etc/kubernetes/node-kubeconfig.yaml {% endif %} - --bind-address={{ ip | default(ansible_default_ipv4.address) }} diff --git a/roles/kubernetes/preinstall/tasks/set_facts.yml b/roles/kubernetes/preinstall/tasks/set_facts.yml index 5dd283fef..055c77b07 100644 --- a/roles/kubernetes/preinstall/tasks/set_facts.yml +++ b/roles/kubernetes/preinstall/tasks/set_facts.yml @@ -1,4 +1,38 @@ --- +- set_fact: kube_apiserver_count="{{ groups['kube-master'] | length }}" +- set_fact: kube_apiserver_address="{{ ip | default(ansible_default_ipv4['address']) }}" +- set_fact: kube_apiserver_access_address="{{ access_ip | default(kube_apiserver_address) }}" +- set_fact: + kube_apiserver_insecure_bind_address: |- + {% if loadbalancer_apiserver_localhost %} + {{ kube_apiserver_address }}{% else %}127.0.0.1{% endif %} +- set_fact: + apiserver_access_port: |- + {% if loadbalancer_apiserver is defined and loadbalancer_apiserver.port is defined %} + {{ loadbalancer_apiserver.port }}{% else %}{{ kube_apiserver_port }}{% endif %} +- set_fact: + kube_apiserver_endpoint: |- + {% if loadbalancer_apiserver_localhost %} + https://127.0.0.1:{{ apiserver_access_port }} + {% else -%} + https://{{ apiserver_loadbalancer_domain_name|default(kube_apiserver_access_address) }}:{{ apiserver_access_port }} + {%- endif %} +- set_fact: kube_apiserver_insecure_endpoint="http://{{ kube_apiserver_insecure_bind_address }}:{{ kube_apiserver_insecure_port }}" +- set_fact: + kube_apiserver_access_endpoint: |- + {% if kube_apiserver_multiaccess %} + {% for host in groups['kube-master'] -%} + https://{{ hostvars[host].kube_apiserver_access_address }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %} + {%- endfor %} + {% else %}{{ kube_apiserver_endpoint }}{% endif %} +- set_fact: + kube_apiserver_insecure_access_endpoint: |- + {% if kube_apiserver_multiaccess %} + {% for host in groups['kube-master'] -%} + https://{{ hostvars[host].kube_apiserver_insecure_bind_address }}:{{ kube_apiserver_insecure_port }}{% if not loop.last %},{% endif %} + {%- endfor %} + {% else %}{{ kube_apiserver_insecure_endpoint }}{% endif %} + - set_fact: etcd_address="{{ ip | default(ansible_default_ipv4['address']) }}" - set_fact: etcd_access_address="{{ access_ip | default(etcd_address) }}" - set_fact: etcd_peer_url="http://{{ etcd_access_address }}:2380" From f94eb0b99720a51d58e7ab5e32b7d7996db70f44 Mon Sep 17 00:00:00 2001 From: Aleksandr Didenko Date: Thu, 21 Jul 2016 13:05:40 +0200 Subject: [PATCH 041/695] Support --ipip option for calico pool Adds new boolean configuration variable for calico network plugin `ipip`. When it's enabled calico pool is created with '--ipip' option (IP-over-IP encapsulation across hosts). Also refactor pool creation tasks to simplify logic and make tasks more readable. --- roles/network_plugin/calico/defaults/main.yml | 3 ++ roles/network_plugin/calico/tasks/main.yml | 28 +++++++++++-------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/roles/network_plugin/calico/defaults/main.yml b/roles/network_plugin/calico/defaults/main.yml index e55b3ab4b..7482970cd 100644 --- a/roles/network_plugin/calico/defaults/main.yml +++ b/roles/network_plugin/calico/defaults/main.yml @@ -2,6 +2,9 @@ # Enables Internet connectivity from containers nat_outgoing: true +# Use IP-over-IP encapsulation across hosts +ipip: false + # cloud_provider can only be set to 'gce' or 'aws' # cloud_provider: calicoctl_image_repo: calico/ctl diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index 7e732d632..4a568fbc2 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -50,23 +50,27 @@ register: calico_conf run_once: true -- name: Calico | Configure calico network pool - command: "{{ bin_dir }}/calicoctl pool add {{ kube_pods_subnet }}" +- name: Calico | Define ipip pool argument run_once: true - when: calico_conf.status == 404 and cloud_provider is not defined - and not nat_outgoing|default(false) or - (nat_outgoing|default(false) and peer_with_router|default(false)) + set_fact: + ipip_arg: "--ipip" + when: cloud_provider is defined or ipip|default(false) -- name: Calico | Configure calico network pool for cloud - command: "{{ bin_dir }}/calicoctl pool add {{ kube_pods_subnet }} --ipip --nat-outgoing" +- name: Calico | Define nat-outgoing pool argument run_once: true - when: calico_conf.status == 404 and cloud_provider is defined + set_fact: + nat_arg: "--nat-outgoing" + when: nat_outgoing|default(false) and not peer_with_router|default(false) -- name: Calico | Configure calico network pool with nat outgoing - command: "{{ bin_dir}}/calicoctl pool add {{ kube_pods_subnet }} --nat-outgoing" +- name: Calico | Define calico pool task name + set_fact: + pool_task_name: "with options {{ ipip_arg|default('') }} {{ nat_arg|default('') }}" + when: ipip_arg|default(false) or nat_arg|default(false) + +- name: Calico | Configure calico network pool {{ pool_task_name|default('') }} + command: "{{ bin_dir}}/calicoctl pool add {{ kube_pods_subnet }} {{ ipip_arg|default('') }} {{ nat_arg|default('') }}" run_once: true - when: calico_conf.status == 404 and cloud_provider is not defined - and nat_outgoing|default(false) and not peer_with_router|default(false) + when: calico_conf.status == 404 - name: Calico | Get calico configuration from etcd uri: From 7f212ca9cb2ce6014fe665275a7b67f40e559af0 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Fri, 22 Jul 2016 13:54:38 +0300 Subject: [PATCH 042/695] Revert "Add HA/LB endpoints for kube-apiserver" This reverts commit a70c3b661e12d75ca01f8c0b38ef6af625d3383a. --- inventory/group_vars/all.yml | 77 ++++++------------- .../master/templates/kube-apiserver.j2 | 4 +- .../templates/kubectl-kubeconfig.yaml.j2 | 2 +- .../kube-controller-manager.manifest.j2 | 6 +- .../manifests/kube-scheduler.manifest.j2 | 6 +- roles/kubernetes/node/templates/kubelet.j2 | 2 +- .../manifests/kube-proxy.manifest.j2 | 10 ++- .../kubernetes/preinstall/tasks/set_facts.yml | 34 -------- 8 files changed, 37 insertions(+), 104 deletions(-) diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 9c7000c0c..e9b138c92 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -53,7 +53,7 @@ cluster_name: cluster.local # Service endpoints. May be a VIP or a load balanced frontend IP, like one # that a HAProxy or Nginx provides, or just a local service endpoint. - +# # Etcd endpoints use a local etcd-proxies to reach the etcd cluster via # auto-evaluated endpoints. Those will reuse the access_ip for etcd cluster, # if specified, or defer to the localhost:2379 as well. @@ -64,64 +64,15 @@ cluster_name: cluster.local # This may be the case if clients support and loadbalance multiple etcd servers natively. etcd_multiaccess: false -# The port the API Server will be listening on. -kube_apiserver_port: 443 # (https) -kube_apiserver_insecure_port: 8080 # (http) - -# For multi masters architecture: -# kube-proxy doesn't support multiple apiservers for the time being so you'll need to configure your own loadbalancer -# This domain name will be inserted into the /etc/hosts file of all servers -# configuration example with haproxy: -# listen kubernetes-apiserver-https -# bind 10.99.0.21:8383 -# option ssl-hello-chk -# mode tcp -# timeout client 3h -# timeout server 3h -# server master1 10.99.0.26:443 -# server master2 10.99.0.27:443 -# balance roundrobin - -# And the corresponding example config vars: -# apiserver_loadbalancer_domain_name: "lb-apiserver.kubernetes.local" -# loadbalancer_apiserver: -# adress: 10.99.0.21 -# port: 8383 - -# For internal only multi-masters architecture: -# Assume there is no loadbalancers configured for internal access. Enable this flag, -# if a loadbalancer listens the localhost, which may be the case when there is neither -# loadbalancer_apiserver nor access_ip is configured, or you want to override both. -loadbalancer_apiserver_localhost: false - -# The internal kube-apiserver endpoints: -# The secure endpoint is auto-evaluated. If loadbalancer_apiserver_localhost=true, -# it uses the localhost:kube_apiserver_port. Otherwise, it uses the external -# apiserver_loadbalancer_domain_name:loadbalancer_apiserver.port. Or defers to the -# access_ip:kube_apiserver_port, then ip, then default ansible ip. - -# The insecure endpoint ignores the apiserver_loadbalancer_domain_name and access_ip. -# By default, it is a localhost:kube_apiserver_insecure_port. -# If loadbalancer_apiserver_localhost, it defers to ip, then default ansible ip. - -# Apiserver access modes: -# Configure clients to access all of the apiservers directly as the -# "http(s)://hostX:port, http(s)://hostY:port, ..." and ignore the loadbalancers, if any. -# This may be the case, if clients support and loadbalance multiple apiservers or -# when there is no loadbalancers configured. -kube_apiserver_multiaccess: true - -# Define connections security for kube controllers, schedulers and proxies -kube_proxy_insecure: true -kube_controller_insecure: true -kube_scheduler_insecure: true +# +# TODO apiserver localhost:8080 and localhost:443 endpoints for kubelets and +# (hyper)kube-* and networking components. # Choose network plugin (calico, weave or flannel) kube_network_plugin: flannel # Kubernetes internal network for services, unused block of space. kube_service_addresses: 10.233.0.0/18 -kube_apiserver_ip: "{{ kube_service_addresses|ipaddr('net')|ipaddr(1)|ipaddr('address') }}" # internal network. When used, it will assign IP # addresses from this range to individual pods. @@ -142,6 +93,11 @@ peer_with_router: false # Warning : enabling router peering will disable calico's default behavior ('node mesh'). # The subnets of each nodes will be distributed by the datacenter router +# The port the API Server will be listening on. +kube_apiserver_ip: "{{ kube_service_addresses|ipaddr('net')|ipaddr(1)|ipaddr('address') }}" +kube_apiserver_port: 443 # (https) +kube_apiserver_insecure_port: 8080 # (http) + # Internal DNS configuration. # Kubernetes can create and mainatain its own DNS server to resolve service names # into appropriate IP addresses. It's highly advisable to run such DNS server, @@ -170,6 +126,21 @@ dns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(2)|ipaddr('address') # like you would do when using nova-client before starting the playbook. # cloud_provider: +# For multi masters architecture: +# kube-proxy doesn't support multiple apiservers for the time being so you'll need to configure your own loadbalancer +# This domain name will be inserted into the /etc/hosts file of all servers +# configuration example with haproxy : +# listen kubernetes-apiserver-https +# bind 10.99.0.21:8383 +# option ssl-hello-chk +# mode tcp +# timeout client 3h +# timeout server 3h +# server master1 10.99.0.26:443 +# server master2 10.99.0.27:443 +# balance roundrobin +# apiserver_loadbalancer_domain_name: "lb-apiserver.kubernetes.local" + ## Set these proxy values in order to update docker daemon to use proxies # http_proxy: "" # https_proxy: "" diff --git a/roles/kubernetes/master/templates/kube-apiserver.j2 b/roles/kubernetes/master/templates/kube-apiserver.j2 index 25719e91f..0e3a2710d 100644 --- a/roles/kubernetes/master/templates/kube-apiserver.j2 +++ b/roles/kubernetes/master/templates/kube-apiserver.j2 @@ -21,7 +21,7 @@ KUBE_ALLOW_PRIV="--allow_privileged=true" KUBE_API_PORT="--insecure-port={{kube_apiserver_insecure_port}} --secure-port={{ kube_apiserver_port }}" # Insecure API address (default is localhost) -KUBE_API_INSECURE_BIND="--insecure-bind-address={{ kube_apiserver_insecure_bind_address }}" +KUBE_API_INSECURE_BIND="--insecure-bind-address={{ kube_apiserver_insecure_bind_address | default('127.0.0.1') }}" # Address range to use for services KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range={{ kube_service_addresses }}" @@ -42,7 +42,7 @@ KUBE_RUNTIME_CONFIG="{% if kube_api_runtime_config is defined %}{% for conf in k KUBE_TLS_CONFIG="--tls_cert_file={{ kube_cert_dir }}/apiserver.pem --tls_private_key_file={{ kube_cert_dir }}/apiserver-key.pem --client_ca_file={{ kube_cert_dir }}/ca.pem" # Add you own! -KUBE_API_ARGS="--token_auth_file={{ kube_token_dir }}/known_tokens.csv --basic-auth-file={{ kube_users_dir }}/known_users.csv --service_account_key_file={{ kube_cert_dir }}/apiserver-key.pem --advertise-address={{ kube_apiserver_address }}" +KUBE_API_ARGS="--token_auth_file={{ kube_token_dir }}/known_tokens.csv --basic-auth-file={{ kube_users_dir }}/known_users.csv --service_account_key_file={{ kube_cert_dir }}/apiserver-key.pem --advertise-address={{ ip | default(ansible_default_ipv4.address) }}" {% if cloud_provider is defined and cloud_provider == "openstack" %} KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }} --cloud-config={{ kube_config_dir }}/cloud_config" diff --git a/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 b/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 index a9800d3ac..5cc74cf9e 100644 --- a/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 +++ b/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 @@ -5,7 +5,7 @@ preferences: {} clusters: - cluster: certificate-authority-data: {{ kube_node_cert|b64encode }} - server: {{ kube_apiserver_endpoint }} + server: https://{{ groups['kube-master'][0] }}:{{ kube_apiserver_port }} name: {{ cluster_name }} contexts: - context: diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 index d185a863c..29c56e6a8 100644 --- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 @@ -11,11 +11,7 @@ spec: command: - /hyperkube - controller-manager -{% if kube_controller_insecure %} - - --master={{ kube_apiserver_insecure_endpoint }} -{% else %} - - --master={{ kube_apiserver_endpoint }} -{% endif %} + - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}} - --leader-elect=true - --service-account-private-key-file={{ kube_cert_dir }}/apiserver-key.pem - --root-ca-file={{ kube_cert_dir }}/ca.pem diff --git a/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 index 6993bbb8d..f642fbf70 100644 --- a/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 @@ -12,11 +12,7 @@ spec: - /hyperkube - scheduler - --leader-elect=true -{% if kube_scheduler_insecure %} - - --master={{ kube_apiserver_insecure_endpoint }} -{% else %} - - --master={{ kube_apiserver_endpoint }} -{% endif %} + - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}} - --v={{ kube_log_level | default('2') }} livenessProbe: httpGet: diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index 27687eac7..20e521f73 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -8,7 +8,7 @@ KUBE_LOGGING="--logtostderr=true" KUBE_LOG_LEVEL="--v={{ kube_log_level | default('2') }}" KUBE_ALLOW_PRIV="--allow_privileged=true" {% if inventory_hostname in groups['kube-node'] %} -KUBELET_API_SERVER="--api_servers={{ kube_apiserver_access_endpoint }}" +KUBELET_API_SERVER="--api_servers={% for host in groups['kube-master'] %}https://{{ hostvars[host]['access_ip'] | default(hostvars[host]['ip'] | default(hostvars[host]['ansible_default_ipv4']['address'])) }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %}{% endfor %}" {% endif %} # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces) KUBELET_ADDRESS="--address={{ ip | default("0.0.0.0") }}" diff --git a/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 b/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 index f4877784a..d094766b5 100644 --- a/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 +++ b/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 @@ -12,10 +12,14 @@ spec: - /hyperkube - proxy - --v={{ kube_log_level | default('2') }} -{% if kube_proxy_insecure %} - - --master={{ kube_apiserver_insecure_endpoint }} +{% if inventory_hostname in groups['kube-master'] %} + - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}} {% else %} - - --master={{ kube_apiserver_access_endpoint }} +{% if loadbalancer_apiserver is defined and apiserver_loadbalancer_domain_name is defined %} + - --master=https://{{ apiserver_loadbalancer_domain_name }}:{{ loadbalancer_apiserver.port }} +{% else %} + - --master=https://{{ hostvars[groups['kube-master'][0]]['access_ip'] | default(hostvars[groups['kube-master'][0]]['ip'] | default(hostvars[groups['kube-master'][0]]['ansible_default_ipv4']['address'])) }}:{{ kube_apiserver_port }} +{% endif%} - --kubeconfig=/etc/kubernetes/node-kubeconfig.yaml {% endif %} - --bind-address={{ ip | default(ansible_default_ipv4.address) }} diff --git a/roles/kubernetes/preinstall/tasks/set_facts.yml b/roles/kubernetes/preinstall/tasks/set_facts.yml index 055c77b07..5dd283fef 100644 --- a/roles/kubernetes/preinstall/tasks/set_facts.yml +++ b/roles/kubernetes/preinstall/tasks/set_facts.yml @@ -1,38 +1,4 @@ --- -- set_fact: kube_apiserver_count="{{ groups['kube-master'] | length }}" -- set_fact: kube_apiserver_address="{{ ip | default(ansible_default_ipv4['address']) }}" -- set_fact: kube_apiserver_access_address="{{ access_ip | default(kube_apiserver_address) }}" -- set_fact: - kube_apiserver_insecure_bind_address: |- - {% if loadbalancer_apiserver_localhost %} - {{ kube_apiserver_address }}{% else %}127.0.0.1{% endif %} -- set_fact: - apiserver_access_port: |- - {% if loadbalancer_apiserver is defined and loadbalancer_apiserver.port is defined %} - {{ loadbalancer_apiserver.port }}{% else %}{{ kube_apiserver_port }}{% endif %} -- set_fact: - kube_apiserver_endpoint: |- - {% if loadbalancer_apiserver_localhost %} - https://127.0.0.1:{{ apiserver_access_port }} - {% else -%} - https://{{ apiserver_loadbalancer_domain_name|default(kube_apiserver_access_address) }}:{{ apiserver_access_port }} - {%- endif %} -- set_fact: kube_apiserver_insecure_endpoint="http://{{ kube_apiserver_insecure_bind_address }}:{{ kube_apiserver_insecure_port }}" -- set_fact: - kube_apiserver_access_endpoint: |- - {% if kube_apiserver_multiaccess %} - {% for host in groups['kube-master'] -%} - https://{{ hostvars[host].kube_apiserver_access_address }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %} - {%- endfor %} - {% else %}{{ kube_apiserver_endpoint }}{% endif %} -- set_fact: - kube_apiserver_insecure_access_endpoint: |- - {% if kube_apiserver_multiaccess %} - {% for host in groups['kube-master'] -%} - https://{{ hostvars[host].kube_apiserver_insecure_bind_address }}:{{ kube_apiserver_insecure_port }}{% if not loop.last %},{% endif %} - {%- endfor %} - {% else %}{{ kube_apiserver_insecure_endpoint }}{% endif %} - - set_fact: etcd_address="{{ ip | default(ansible_default_ipv4['address']) }}" - set_fact: etcd_access_address="{{ access_ip | default(etcd_address) }}" - set_fact: etcd_peer_url="http://{{ etcd_access_address }}:2380" From 7d816aecf10932ace7609b7684dd3637d660e1c8 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Fri, 22 Jul 2016 14:42:44 +0200 Subject: [PATCH 043/695] Add ha docs Signed-off-by: Bogdan Dobrelya --- docs/ha-mode.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docs/ha-mode.md diff --git a/docs/ha-mode.md b/docs/ha-mode.md new file mode 100644 index 000000000..b3d752cc9 --- /dev/null +++ b/docs/ha-mode.md @@ -0,0 +1,34 @@ +HA endpoints for K8s +==================== + +The following components require a highly available endpoints: +* etcd cluster, +* kube-apiserver service instances. + +The former provides the +[etcd-proxy](https://coreos.com/etcd/docs/latest/proxy.html) service to access +the cluster members in HA fashion. + +The latter relies on a 3rd side reverse proxies, like Nginx or HAProxy, to +achieve the same goal. + +Etcd +---- + +Etcd proxies are deployed on each node in the `k8s-cluster` group. A proxy is +a separate etcd process. It has a `localhost:2379` frontend and all of the etcd +cluster members as backends. Note that the `access_ip` is used as the backend +IP, if specified. Frontend endpoints cannot be accessed externally as they are +bound to a localhost only. + +The `etcd_access_endpoint` fact provides an access pattern for clients. And the +`etcd_multiaccess` (defaults to `false`) group var controlls that behavior. +When enabled, it makes deployed components to access the etcd cluster members +directly: `http://ip1:2379, http://ip2:2379,...`. This mode assumes the clients +do a loadbalancing and handle HA for connections. Note, a pod definition of a +flannel networking plugin always uses a single `--etcd-server` endpoint! + + +Kube-apiserver +-------------- +TODO(bogdando) TBD From d0a1e15ef321b3b557cda359d07ba44e1fcd860a Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Fri, 8 Jul 2016 13:59:21 +0400 Subject: [PATCH 044/695] Deploy kubelet and kube-apiserver as containers kubelet via docker kube-apiserver as a static pod Fixed etcd service start to be more tolerant of slow start. Workaround for kube_version to stay in download role, but not download an files by creating a new "nothing" download entry. --- roles/download/defaults/main.yml | 20 +-- roles/download/vars/kube_versions.yml | 10 -- roles/kubernetes/master/meta/main.yml | 2 - roles/kubernetes/master/tasks/main.yml | 66 +++------- roles/kubernetes/master/tasks/pre-upgrade.yml | 25 ++++ roles/kubernetes/master/tasks/start.yml | 22 ---- .../templates/deb-kube-apiserver.initd.j2 | 118 ------------------ .../master/templates/kube-apiserver.j2 | 58 --------- .../templates/kube-apiserver.service.j2 | 30 ----- .../manifests/kube-apiserver.manifest.j2 | 21 ++-- roles/kubernetes/node/meta/main.yml | 4 +- roles/kubernetes/node/tasks/install.yml | 6 +- roles/kubernetes/node/tasks/main.yml | 2 +- .../node/templates/kubelet-container.j2 | 15 +++ roles/kubernetes/node/templates/kubelet.j2 | 7 +- .../node/templates/kubelet.service.j2 | 5 +- .../calico/templates/calicoctl-container.j2 | 2 +- roles/uploads/defaults/main.yml | 18 --- roles/uploads/vars/kube_versions.yml | 5 - 19 files changed, 88 insertions(+), 348 deletions(-) create mode 100644 roles/kubernetes/master/tasks/pre-upgrade.yml delete mode 100644 roles/kubernetes/master/tasks/start.yml delete mode 100644 roles/kubernetes/master/templates/deb-kube-apiserver.initd.j2 delete mode 100644 roles/kubernetes/master/templates/kube-apiserver.j2 delete mode 100644 roles/kubernetes/master/templates/kube-apiserver.service.j2 create mode 100644 roles/kubernetes/node/templates/kubelet-container.j2 diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index c402b1efa..2353beca3 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -15,8 +15,6 @@ calico_cni_version: v1.3.1 weave_version: v1.5.0 # Download URL's -kubelet_download_url: "https://storage.googleapis.com/kargo/{{kube_version}}_kubernetes-kubelet" -apiserver_download_url: "https://storage.googleapis.com/kargo/{{kube_version}}_kubernetes-apiserver" kubectl_download_url: "https://storage.googleapis.com/kargo/{{kube_version}}_kubernetes-kubectl" etcd_download_url: "https://storage.googleapis.com/kargo/{{etcd_version}}_etcd" @@ -64,14 +62,6 @@ downloads: unarchive: true owner: "etcd" mode: "0755" - kubernetes_kubelet: - version: "{{kube_version}}" - dest: kubernetes/bin/kubelet - sha256: "{{vars['kube_checksum'][kube_version]['kubelet']}}" - source_url: "{{ kubelet_download_url }}" - url: "{{ kubelet_download_url }}" - owner: "kube" - mode: "0755" kubernetes_kubectl: dest: kubernetes/bin/kubectl version: "{{kube_version}}" @@ -80,14 +70,8 @@ downloads: url: "{{ kubectl_download_url }}" owner: "kube" mode: "0755" - kubernetes_apiserver: - dest: kubernetes/bin/kube-apiserver - version: "{{kube_version}}" - sha256: "{{vars['kube_checksum'][kube_version]['kube_apiserver']}}" - source_url: "{{ apiserver_download_url }}" - url: "{{ apiserver_download_url }}" - owner: "kube" - mode: "0755" + nothing: + enabled: false download: enabled: "{{ file.enabled|default('true') }}" diff --git a/roles/download/vars/kube_versions.yml b/roles/download/vars/kube_versions.yml index 5b5f64a42..9b1a162c8 100644 --- a/roles/download/vars/kube_versions.yml +++ b/roles/download/vars/kube_versions.yml @@ -1,22 +1,12 @@ kube_checksum: v1.2.2: - kube_apiserver: eb1bfd8b877052cbd1991b8c429a1d06661f4cb019905e20e128174f724e16de kubectl: 473e6924569fba30d4a50cecdc2cae5f31d97d1f662463e85b74a472105dcff4 - kubelet: f16827dc7e7c82f0e215f0fc73eb01e2dfe91a2ec83f9cbcaf8d37c91b64fd3b v1.2.3: - kube_apiserver_checksum: ebaeeeb72cb29b358337b330617a96355ff2d08a5a523fc1a81beba36cc9d6f9 kubectl_checksum: 394853edd409a721bcafe4f1360009ef9f845050719fe7d6fc7176f45cc92a8c - kubelet_checksum: 633bb41c51c5c0df0645dd60ba82b12eba39d009eb87bae9227de7d9a89c0797 v1.2.4: - kube_apiserver: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e kubectl: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 - kubelet: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 v1.2.5: - kube_apiserver: fbe8296ad4b194c06f6802a126d35cd2887dc1aded308d4da2b580f270412b33 kubectl: 5526a496a84701015485e32c86486e2f23599f7a865164f546e619c6a62f7f19 - kubelet: cd15b929f0190876216f397c2c6e7aa8c08d3b047fd90b4980cd68c8f4896211 v1.3.0: - kube_apiserver: 431cd312984a29f45590138e990d5c4d537b069b71f2587a72414fabc4fcffdd kubectl: f40b2d0ff33984e663a0dea4916f1cb9041abecc09b11f9372cdb8049ded95dc - kubelet: bd5f10ccb95fe6e95ddf7ad8a119195c27cb2bce4be6f80c1810ff1a2111496d kube_version: v1.3.0 diff --git a/roles/kubernetes/master/meta/main.yml b/roles/kubernetes/master/meta/main.yml index 11f02f99d..bd1008ae6 100644 --- a/roles/kubernetes/master/meta/main.yml +++ b/roles/kubernetes/master/meta/main.yml @@ -2,7 +2,5 @@ dependencies: - role: download file: "{{ downloads.kubernetes_kubectl }}" - - role: download - file: "{{ downloads.kubernetes_apiserver }}" - { role: etcd } - { role: kubernetes/node } diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml index deaf017f3..2d9221ba1 100644 --- a/roles/kubernetes/master/tasks/main.yml +++ b/roles/kubernetes/master/tasks/main.yml @@ -1,52 +1,34 @@ --- +- include: pre-upgrade.yml + - name: Copy kubectl bash completion copy: src: kubectl_bash_completion.sh dest: /etc/bash_completion.d/kubectl.sh when: ansible_os_family in ["Debian","RedHat"] -- name: Copy kube-apiserver binary - command: rsync -piu "{{ local_release_dir }}/kubernetes/bin/kube-apiserver" "{{ bin_dir }}/kube-apiserver" - register: kube_apiserver_copy - changed_when: false - - name: Copy kubectl binary command: rsync -piu "{{ local_release_dir }}/kubernetes/bin/kubectl" "{{ bin_dir }}/kubectl" changed_when: false -- name: install | Write kube-apiserver systemd init file - template: - src: "kube-apiserver.service.j2" - dest: "/etc/systemd/system/kube-apiserver.service" - backup: yes - when: ansible_service_mgr == "systemd" - notify: restart kube-apiserver - -- name: install | Write kube-apiserver initd script - template: - src: "deb-kube-apiserver.initd.j2" - dest: "/etc/init.d/kube-apiserver" - owner: root - mode: 0755 - backup: yes - when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian" - -- name: Write kube-apiserver config file - template: - src: "kube-apiserver.j2" - dest: "{{ kube_config_dir }}/kube-apiserver.env" - backup: yes - notify: restart kube-apiserver - -- name: Allow apiserver to bind on both secure and insecure ports - shell: setcap cap_net_bind_service+ep {{ bin_dir }}/kube-apiserver - changed_when: false - - meta: flush_handlers -- include: start.yml - with_items: "{{ groups['kube-master'] }}" - when: "{{ hostvars[item].inventory_hostname == inventory_hostname }}" +- name: Write kube-apiserver manifest + template: + src: manifests/kube-apiserver.manifest.j2 + dest: "{{ kube_manifest_dir }}/kube-apiserver.manifest" + register: apiserver_manifest + +- name: restart kubelet + service: + name: kubelet + state: restarted + when: apiserver_manifest.changed + +- name: wait for the apiserver to be running + wait_for: + port: "{{kube_apiserver_insecure_port}}" + timeout: 60 # Create kube-system namespace - name: copy 'kube-system' namespace manifest @@ -61,17 +43,13 @@ failed_when: False run_once: yes -- name: wait for the apiserver to be running - wait_for: - port: "{{kube_apiserver_insecure_port}}" - timeout: 60 - name: Create 'kube-system' namespace command: "{{ bin_dir }}/kubectl create -f /etc/kubernetes/kube-system-ns.yml" changed_when: False when: kubesystem|failed and inventory_hostname == groups['kube-master'][0] -# Write manifests +# Write other manifests - name: Write kube-controller-manager manifest template: src: manifests/kube-controller-manager.manifest.j2 @@ -81,9 +59,3 @@ template: src: manifests/kube-scheduler.manifest.j2 dest: "{{ kube_manifest_dir }}/kube-scheduler.manifest" - -- name: restart kubelet - service: - name: kubelet - state: restarted - changed_when: false diff --git a/roles/kubernetes/master/tasks/pre-upgrade.yml b/roles/kubernetes/master/tasks/pre-upgrade.yml new file mode 100644 index 000000000..3b9f26de1 --- /dev/null +++ b/roles/kubernetes/master/tasks/pre-upgrade.yml @@ -0,0 +1,25 @@ +--- +- name: "Pre-upgrade | check for kube-apiserver unit file" + stat: + path: /etc/systemd/system/kube-apiserver.service + register: kube_apiserver_service_file + +- name: "Pre-upgrade | check for kube-apiserver init script" + stat: + path: /etc/init.d/kube-apiserver + register: kube_apiserver_init_script + +- name: "Pre-upgrade | stop kube-apiserver if service defined" + service: + name: kube-apiserver + state: stopped + when: (kube_apiserver_service_file.stat.exists|default(False) or kube_apiserver_init_script.stat.exists|default(False)) + +- name: "Pre-upgrade | remove kube-apiserver service definition" + file: + path: "{{ item }}" + state: absent + when: (kube_apiserver_service_file.stat.exists|default(False) or kube_apiserver_init_script.stat.exists|default(False)) + with_items: + - /etc/systemd/system/kube-apiserver.service + - /etc/init.d/kube-apiserver diff --git a/roles/kubernetes/master/tasks/start.yml b/roles/kubernetes/master/tasks/start.yml deleted file mode 100644 index 9cd247c42..000000000 --- a/roles/kubernetes/master/tasks/start.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -- name: Pause - pause: seconds=10 - -- name: reload systemd - command: systemctl daemon-reload - when: ansible_service_mgr == "systemd" and restart_apimaster is defined and restart_apimaster == True - -- name: reload kube-apiserver - service: - name: kube-apiserver - state: restarted - enabled: yes - when: ( restart_apimaster is defined and restart_apimaster == True) or - secret_changed | default(false) - -- name: Enable apiserver - service: - name: kube-apiserver - enabled: yes - state: started - when: restart_apimaster is not defined or restart_apimaster == False diff --git a/roles/kubernetes/master/templates/deb-kube-apiserver.initd.j2 b/roles/kubernetes/master/templates/deb-kube-apiserver.initd.j2 deleted file mode 100644 index 576c70128..000000000 --- a/roles/kubernetes/master/templates/deb-kube-apiserver.initd.j2 +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/bash -# -### BEGIN INIT INFO -# Provides: kube-apiserver -# Required-Start: $local_fs $network $syslog -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: The Kubernetes apiserver -# Description: -# The Kubernetes apiserver. -### END INIT INFO - - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="The Kubernetes apiserver" -NAME=kube-apiserver -DAEMON={{ bin_dir }}/kube-apiserver -DAEMON_LOG_FILE=/var/log/$NAME.log -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME -DAEMON_USER=root - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/kubernetes/$NAME.env ] && . /etc/kubernetes/$NAME.env - -# Define LSB log_* functions. -# Depend on lsb-base (>= 3.2-14) to ensure that this file is present -# and status_of_proc is working. -. /lib/lsb/init-functions - -# -# Function that starts the daemon/service -# -do_start() -{ - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # 2 if daemon could not be started - start-stop-daemon --start --quiet --background --no-close \ - --make-pidfile --pidfile $PIDFILE \ - --exec $DAEMON -c $DAEMON_USER --test > /dev/null \ - || return 1 - start-stop-daemon --start --quiet --background --no-close \ - --make-pidfile --pidfile $PIDFILE \ - --exec $DAEMON -c $DAEMON_USER -- \ - $DAEMON_ARGS >> $DAEMON_LOG_FILE 2>&1 \ - || return 2 -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - # Many daemons don't delete their pidfiles when they exit. - rm -f $PIDFILE - return "$RETVAL" -} - - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0|1) log_end_msg 0 || exit 0 ;; - 2) log_end_msg 1 || exit 1 ;; - esac - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0|1) log_end_msg 0 ;; - 2) exit 1 ;; - esac - ;; - status) - status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $? - ;; - - restart|force-reload) - log_daemon_msg "Restarting $DESC" "$NAME" - do_stop - case "$?" in - 0|1) - do_start - case "$?" in - 0) log_end_msg 0 ;; - 1) log_end_msg 1 ;; # Old process is still running - *) log_end_msg 1 ;; # Failed to start - esac - ;; - *) - # Failed to stop - log_end_msg 1 - ;; - esac - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 - exit 3 - ;; -esac diff --git a/roles/kubernetes/master/templates/kube-apiserver.j2 b/roles/kubernetes/master/templates/kube-apiserver.j2 deleted file mode 100644 index 0e3a2710d..000000000 --- a/roles/kubernetes/master/templates/kube-apiserver.j2 +++ /dev/null @@ -1,58 +0,0 @@ -### -# kubernetes system config -# -# The following values are used to configure the kube-apiserver - -{% if ansible_service_mgr in ["sysvinit","upstart"] %} -# Logging directory -KUBE_LOGGING="--log-dir={{ kube_log_dir }} --logtostderr=true" -{% else %} -# logging to stderr means we get it in the systemd journal -KUBE_LOGGING="--logtostderr=true" -{% endif %} - -# Apiserver Log level, 0 is debug -KUBE_LOG_LEVEL="--v={{ kube_log_level | default('2') }}" - -# Should this cluster be allowed to run privileged docker containers -KUBE_ALLOW_PRIV="--allow_privileged=true" - -# The port on the local server to listen on. -KUBE_API_PORT="--insecure-port={{kube_apiserver_insecure_port}} --secure-port={{ kube_apiserver_port }}" - -# Insecure API address (default is localhost) -KUBE_API_INSECURE_BIND="--insecure-bind-address={{ kube_apiserver_insecure_bind_address | default('127.0.0.1') }}" - -# Address range to use for services -KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range={{ kube_service_addresses }}" - -# Location of the etcd cluster -KUBE_ETCD_SERVERS="--etcd_servers={{ etcd_access_endpoint }}" - -# Bind address for secure endpoint -KUBE_API_ADDRESS="--bind-address={{ ip | default(ansible_default_ipv4.address) }}" - -# default admission control policies -KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota" - -# RUNTIME API CONFIGURATION (e.g. enable extensions) -KUBE_RUNTIME_CONFIG="{% if kube_api_runtime_config is defined %}{% for conf in kube_api_runtime_config %}--runtime-config={{ conf }} {% endfor %}{% endif %}" - -# TLS CONFIGURATION -KUBE_TLS_CONFIG="--tls_cert_file={{ kube_cert_dir }}/apiserver.pem --tls_private_key_file={{ kube_cert_dir }}/apiserver-key.pem --client_ca_file={{ kube_cert_dir }}/ca.pem" - -# Add you own! -KUBE_API_ARGS="--token_auth_file={{ kube_token_dir }}/known_tokens.csv --basic-auth-file={{ kube_users_dir }}/known_users.csv --service_account_key_file={{ kube_cert_dir }}/apiserver-key.pem --advertise-address={{ ip | default(ansible_default_ipv4.address) }}" - -{% if cloud_provider is defined and cloud_provider == "openstack" %} -KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }} --cloud-config={{ kube_config_dir }}/cloud_config" -{% else %} -{# TODO: gce and aws don't need the cloud provider to be set? #} -KUBELET_CLOUDPROVIDER="" -{% endif %} - -{% if ansible_service_mgr in ["sysvinit","upstart"] %} -DAEMON_ARGS="$KUBE_LOGGING $KUBE_LOG_LEVEL $KUBE_ALLOW_PRIV $KUBE_API_PORT $KUBE_API_INSECURE_BIND \ -$KUBE_SERVICE_ADDRESSES $KUBE_ETCD_SERVERS $KUBE_ADMISSION_CONTROL $KUBE_RUNTIME_CONFIG \ -$KUBE_TLS_CONFIG $KUBE_API_ARGS $KUBELET_CLOUDPROVIDER" -{% endif %} diff --git a/roles/kubernetes/master/templates/kube-apiserver.service.j2 b/roles/kubernetes/master/templates/kube-apiserver.service.j2 deleted file mode 100644 index 785cfd097..000000000 --- a/roles/kubernetes/master/templates/kube-apiserver.service.j2 +++ /dev/null @@ -1,30 +0,0 @@ -[Unit] -Description=Kubernetes API Server -Documentation=https://github.com/GoogleCloudPlatform/kubernetes -Wants=etcd-proxy.service -After=etcd-proxy.service - -[Service] -EnvironmentFile=/etc/kubernetes/kube-apiserver.env -User=kube -ExecStart={{ bin_dir }}/kube-apiserver \ - $KUBE_LOGTOSTDERR \ - $KUBE_LOG_LEVEL \ - $KUBE_ETCD_SERVERS \ - $KUBE_API_ADDRESS \ - $KUBE_API_PORT \ - $KUBE_API_INSECURE_BIND \ - $KUBELET_PORT \ - $KUBE_ALLOW_PRIV \ - $KUBE_SERVICE_ADDRESSES \ - $KUBE_ADMISSION_CONTROL \ - $KUBE_RUNTIME_CONFIG \ - $KUBE_TLS_CONFIG \ - $KUBE_API_ARGS \ - $KUBELET_CLOUDPROVIDER -Restart=on-failure -Type=notify -LimitNOFILE=65536 - -[Install] -WantedBy=multi-user.target diff --git a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 index 853a76cae..eaecb011b 100644 --- a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 @@ -2,6 +2,7 @@ apiVersion: v1 kind: Pod metadata: name: kube-apiserver + namespace: kube-system spec: hostNetwork: true containers: @@ -12,12 +13,14 @@ spec: - apiserver - --advertise-address={{ ip | default(ansible_default_ipv4.address) }} - --etcd-servers={{ etcd_access_endpoint }} + - --insecure-bind-address={{ kube_apiserver_insecure_bind_address | default('127.0.0.1') }} - --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota - --service-cluster-ip-range={{ kube_service_addresses }} - --client-ca-file={{ kube_cert_dir }}/ca.pem - --basic-auth-file={{ kube_users_dir }}/known_users.csv - --tls-cert-file={{ kube_cert_dir }}/apiserver.pem - --tls-private-key-file={{ kube_cert_dir }}/apiserver-key.pem + - --token-auth-file={{ kube_token_dir }}/known_tokens.csv - --service-account-key-file={{ kube_cert_dir }}/apiserver-key.pem - --secure-port={{ kube_apiserver_port }} - --insecure-port={{ kube_apiserver_insecure_port }} @@ -26,16 +29,13 @@ spec: - --runtime-config={{ conf }} {% endfor %} {% endif %} - - --token-auth-file={{ kube_token_dir }}/known_tokens.csv - --v={{ kube_log_level | default('2') }} - --allow-privileged=true - ports: - - containerPort: {{ kube_apiserver_port }} - hostPort: {{ kube_apiserver_port }} - name: https - - containerPort: {{ kube_apiserver_insecure_port }} - hostPort: {{ kube_apiserver_insecure_port }} - name: local +{% if cloud_provider is defined and cloud_provider == "openstack" %} + - --cloud-provider={{ cloud_provider }} + - --cloud-config={{ kube_config_dir }}/cloud_config +{% endif %} + - 2>&1 >> {{ kube_log_dir }}/kube-apiserver.log volumeMounts: - mountPath: {{ kube_config_dir }} name: kubernetes-config @@ -43,6 +43,8 @@ spec: - mountPath: /etc/ssl/certs name: ssl-certs-host readOnly: true + - mountPath: /var/log/ + name: logfile volumes: - hostPath: path: {{ kube_config_dir }} @@ -50,3 +52,6 @@ spec: - hostPath: path: /etc/ssl/certs/ name: ssl-certs-host + - hostPath: + path: /var/log/ + name: logfile diff --git a/roles/kubernetes/node/meta/main.yml b/roles/kubernetes/node/meta/main.yml index a277c7d8a..c65c68393 100644 --- a/roles/kubernetes/node/meta/main.yml +++ b/roles/kubernetes/node/meta/main.yml @@ -1,5 +1,5 @@ --- dependencies: - - role: download - file: "{{ downloads.kubernetes_kubelet }}" + - role: download #For kube_version + file: "{{ downloads.nothing }}" - role: kubernetes/secrets diff --git a/roles/kubernetes/node/tasks/install.yml b/roles/kubernetes/node/tasks/install.yml index 4fabf1c88..23e482bc7 100644 --- a/roles/kubernetes/node/tasks/install.yml +++ b/roles/kubernetes/node/tasks/install.yml @@ -14,7 +14,7 @@ when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "RedHat" notify: restart kubelet -- name: install | Install kubelet binary - command: rsync -piu "{{ local_release_dir }}/kubernetes/bin/kubelet" "{{ bin_dir }}/kubelet" - register: kubelet_copy +- name: install | Install kubelet launch script + template: src=kubelet-container.j2 dest="{{ bin_dir }}/kubelet" owner=kube mode=0755 backup=yes + register: kubelet_launcher changed_when: false diff --git a/roles/kubernetes/node/tasks/main.yml b/roles/kubernetes/node/tasks/main.yml index 803c9251b..0aa1957ea 100644 --- a/roles/kubernetes/node/tasks/main.yml +++ b/roles/kubernetes/node/tasks/main.yml @@ -26,7 +26,7 @@ - name: Restart kubelet if binary changed command: /bin/true notify: restart kubelet - when: kubelet_copy.stdout_lines + when: kubelet_launcher.changed # reload-systemd - meta: flush_handlers diff --git a/roles/kubernetes/node/templates/kubelet-container.j2 b/roles/kubernetes/node/templates/kubelet-container.j2 new file mode 100644 index 000000000..2fcc7307f --- /dev/null +++ b/roles/kubernetes/node/templates/kubelet-container.j2 @@ -0,0 +1,15 @@ +#!/bin/bash +/usr/bin/docker run --privileged --rm \ +--net=host --pid=host --name=kubelet \ +-v /etc/cni:/etc/cni:ro \ +-v /opt/cni:/opt/cni:ro \ +-v /etc/kubernetes:/etc/kubernetes \ +-v /sys:/sys \ +-v /dev:/dev \ +-v /var/lib/docker:/var/lib/docker \ +-v /var/run:/var/run \ +-v /var/lib/kubelet:/var/lib/kubelet \ +{{ hyperkube_image_repo }}:{{ hyperkube_image_tag}} \ +nsenter --target=1 --mount --wd=. -- \ +./hyperkube kubelet \ +$@ diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index 20e521f73..7eee44993 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -6,7 +6,6 @@ KUBE_LOGGING="--log-dir={{ kube_log_dir }} --logtostderr=true" KUBE_LOGGING="--logtostderr=true" {% endif %} KUBE_LOG_LEVEL="--v={{ kube_log_level | default('2') }}" -KUBE_ALLOW_PRIV="--allow_privileged=true" {% if inventory_hostname in groups['kube-node'] %} KUBELET_API_SERVER="--api_servers={% for host in groups['kube-master'] %}https://{{ hostvars[host]['access_ip'] | default(hostvars[host]['ip'] | default(hostvars[host]['ansible_default_ipv4']['address'])) }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %}{% endfor %}" {% endif %} @@ -15,7 +14,7 @@ KUBELET_ADDRESS="--address={{ ip | default("0.0.0.0") }}" # The port for the info server to serve on # KUBELET_PORT="--port=10250" # You may leave this blank to use the actual hostname -KUBELET_HOSTNAME="--hostname_override={{ inventory_hostname }}" +KUBELET_HOSTNAME="--hostname-override={{ inventory_hostname }}" {% if inventory_hostname in groups['kube-master'] and inventory_hostname not in groups['kube-node'] %} KUBELET_REGISTER_NODE="--register-node=false" {% endif %} @@ -26,12 +25,12 @@ KUBELET_ARGS="--cluster_dns={{ dns_server }} --cluster_domain={{ dns_domain }} - KUBELET_ARGS="--kubeconfig={{ kube_config_dir}}/kubelet.kubeconfig --config={{ kube_manifest_dir }}" {% endif %} {% if kube_network_plugin is defined and kube_network_plugin in ["calico", "weave"] %} -KUBELET_NETWORK_PLUGIN="--network_plugin=cni --network-plugin-dir=/etc/cni/net.d" +KUBELET_NETWORK_PLUGIN="--network-plugin=cni --network-plugin-dir=/etc/cni/net.d" {% elif kube_network_plugin is defined and kube_network_plugin == "weave" %} DOCKER_SOCKET="--docker-endpoint=unix:/var/run/weave/weave.sock" {% endif %} # Should this cluster be allowed to run privileged docker containers -KUBE_ALLOW_PRIV="--allow_privileged=true" +KUBE_ALLOW_PRIV="--allow-privileged=true" {% if cloud_provider is defined and cloud_provider == "openstack" %} KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }} --cloud-config={{ kube_config_dir }}/cloud_config" {% else %} diff --git a/roles/kubernetes/node/templates/kubelet.service.j2 b/roles/kubernetes/node/templates/kubelet.service.j2 index 9fa47bf13..acad42e1f 100644 --- a/roles/kubernetes/node/templates/kubelet.service.j2 +++ b/roles/kubernetes/node/templates/kubelet.service.j2 @@ -22,7 +22,10 @@ ExecStart={{ bin_dir }}/kubelet \ $KUBELET_REGISTER_NODE \ $KUBELET_NETWORK_PLUGIN \ $KUBELET_CLOUDPROVIDER -Restart=on-failure +ExecStartPre=-/usr/bin/docker rm -f kubelet +ExecReload=/usr/bin/docker restart kubelet +Restart=always +RestartSec=10s [Install] WantedBy=multi-user.target diff --git a/roles/network_plugin/calico/templates/calicoctl-container.j2 b/roles/network_plugin/calico/templates/calicoctl-container.j2 index a6bf88896..466f1df93 100644 --- a/roles/network_plugin/calico/templates/calicoctl-container.j2 +++ b/roles/network_plugin/calico/templates/calicoctl-container.j2 @@ -1,6 +1,6 @@ #!/bin/bash /usr/bin/docker run --privileged --rm \ ---net=host -e ETCD_AUTHORITY={{ etcd_authority }} \ +--net=host --pid=host -e ETCD_AUTHORITY={{ etcd_authority }} \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/calico:/var/run/calico \ diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index 2eb76bb16..db6ba5485 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -60,15 +60,6 @@ downloads: owner: "etcd" mode: "0755" - - name: kubernetes-kubelet - version: "{{kube_version}}" - dest: kubernetes/bin/kubelet - sha256: "{{vars['kube_checksum'][kube_version]['kubelet']}}" - source_url: "{{ kube_download_url }}/kubelet" - url: "{{ kube_download_url }}/kubelet" - owner: "kube" - mode: "0755" - - name: kubernetes-kubectl dest: kubernetes/bin/kubectl version: "{{kube_version}}" @@ -77,12 +68,3 @@ downloads: url: "{{ kube_download_url }}/kubectl" owner: "kube" mode: "0755" - - - name: kubernetes-apiserver - dest: kubernetes/bin/kube-apiserver - version: "{{kube_version}}" - sha256: "{{vars['kube_checksum'][kube_version]['kube_apiserver']}}" - source_url: "{{ kube_download_url }}/kube-apiserver" - url: "{{ kube_download_url }}/kube-apiserver" - owner: "kube" - mode: "0755" diff --git a/roles/uploads/vars/kube_versions.yml b/roles/uploads/vars/kube_versions.yml index 5b5f64a42..627cdc60b 100644 --- a/roles/uploads/vars/kube_versions.yml +++ b/roles/uploads/vars/kube_versions.yml @@ -2,21 +2,16 @@ kube_checksum: v1.2.2: kube_apiserver: eb1bfd8b877052cbd1991b8c429a1d06661f4cb019905e20e128174f724e16de kubectl: 473e6924569fba30d4a50cecdc2cae5f31d97d1f662463e85b74a472105dcff4 - kubelet: f16827dc7e7c82f0e215f0fc73eb01e2dfe91a2ec83f9cbcaf8d37c91b64fd3b v1.2.3: kube_apiserver_checksum: ebaeeeb72cb29b358337b330617a96355ff2d08a5a523fc1a81beba36cc9d6f9 kubectl_checksum: 394853edd409a721bcafe4f1360009ef9f845050719fe7d6fc7176f45cc92a8c - kubelet_checksum: 633bb41c51c5c0df0645dd60ba82b12eba39d009eb87bae9227de7d9a89c0797 v1.2.4: kube_apiserver: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e kubectl: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 - kubelet: 4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e341 v1.2.5: kube_apiserver: fbe8296ad4b194c06f6802a126d35cd2887dc1aded308d4da2b580f270412b33 kubectl: 5526a496a84701015485e32c86486e2f23599f7a865164f546e619c6a62f7f19 - kubelet: cd15b929f0190876216f397c2c6e7aa8c08d3b047fd90b4980cd68c8f4896211 v1.3.0: kube_apiserver: 431cd312984a29f45590138e990d5c4d537b069b71f2587a72414fabc4fcffdd kubectl: f40b2d0ff33984e663a0dea4916f1cb9041abecc09b11f9372cdb8049ded95dc - kubelet: bd5f10ccb95fe6e95ddf7ad8a119195c27cb2bce4be6f80c1810ff1a2111496d kube_version: v1.3.0 From b4688701eaf16b3f4bc0b19fc30f6b550d672b55 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Mon, 25 Jul 2016 13:56:58 +0300 Subject: [PATCH 045/695] Copy kubectl from docker container Nearly the last stage of source all components to containers. Kubectl will be called from hyperkube image. Remaining tasks: * Move kube_version variable to kubernetes/preinstall * Drop placeholder download.nothing requirement --- roles/download/defaults/main.yml | 10 ---------- roles/download/vars/kube_versions.yml | 11 ----------- roles/kubernetes/master/meta/main.yml | 4 ++-- roles/kubernetes/master/tasks/main.yml | 5 +++-- roles/uploads/defaults/main.yml | 10 ---------- roles/uploads/vars/kube_versions.yml | 16 ---------------- 6 files changed, 5 insertions(+), 51 deletions(-) diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 2353beca3..edb3a3b3d 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -15,8 +15,6 @@ calico_cni_version: v1.3.1 weave_version: v1.5.0 # Download URL's -kubectl_download_url: "https://storage.googleapis.com/kargo/{{kube_version}}_kubernetes-kubectl" - etcd_download_url: "https://storage.googleapis.com/kargo/{{etcd_version}}_etcd" calico_cni_download_url: "https://storage.googleapis.com/kargo/{{calico_cni_version}}_calico-cni-plugin" calico_cni_ipam_download_url: "https://storage.googleapis.com/kargo/{{calico_cni_version}}_calico-cni-plugin-ipam" @@ -62,14 +60,6 @@ downloads: unarchive: true owner: "etcd" mode: "0755" - kubernetes_kubectl: - dest: kubernetes/bin/kubectl - version: "{{kube_version}}" - sha256: "{{vars['kube_checksum'][kube_version]['kubectl']}}" - source_url: "{{ kubectl_download_url }}" - url: "{{ kubectl_download_url }}" - owner: "kube" - mode: "0755" nothing: enabled: false diff --git a/roles/download/vars/kube_versions.yml b/roles/download/vars/kube_versions.yml index 9b1a162c8..1ea3eb24f 100644 --- a/roles/download/vars/kube_versions.yml +++ b/roles/download/vars/kube_versions.yml @@ -1,12 +1 @@ -kube_checksum: - v1.2.2: - kubectl: 473e6924569fba30d4a50cecdc2cae5f31d97d1f662463e85b74a472105dcff4 - v1.2.3: - kubectl_checksum: 394853edd409a721bcafe4f1360009ef9f845050719fe7d6fc7176f45cc92a8c - v1.2.4: - kubectl: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 - v1.2.5: - kubectl: 5526a496a84701015485e32c86486e2f23599f7a865164f546e619c6a62f7f19 - v1.3.0: - kubectl: f40b2d0ff33984e663a0dea4916f1cb9041abecc09b11f9372cdb8049ded95dc kube_version: v1.3.0 diff --git a/roles/kubernetes/master/meta/main.yml b/roles/kubernetes/master/meta/main.yml index bd1008ae6..0eb0b867e 100644 --- a/roles/kubernetes/master/meta/main.yml +++ b/roles/kubernetes/master/meta/main.yml @@ -1,6 +1,6 @@ --- dependencies: - - role: download - file: "{{ downloads.kubernetes_kubectl }}" + - role: download # For kube_version variable + file: "{{ downloads.nothing }}" - { role: etcd } - { role: kubernetes/node } diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml index 2d9221ba1..6460324ca 100644 --- a/roles/kubernetes/master/tasks/main.yml +++ b/roles/kubernetes/master/tasks/main.yml @@ -7,9 +7,10 @@ dest: /etc/bash_completion.d/kubectl.sh when: ansible_os_family in ["Debian","RedHat"] -- name: Copy kubectl binary - command: rsync -piu "{{ local_release_dir }}/kubernetes/bin/kubectl" "{{ bin_dir }}/kubectl" +- name: Copy kubectl from hyperkube container + command: "/usr/bin/docker run --rm -v {{ bin_dir }}:/systembindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp /hyperkube /systembindir/kubectl" changed_when: false + register: kubectl_launcher - meta: flush_handlers diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index db6ba5485..a61d334d0 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -10,7 +10,6 @@ calico_cni_version: v1.3.1 weave_version: v1.5.0 # Download URL's -kube_download_url: "https://storage.googleapis.com/kubernetes-release/release/{{ kube_version }}/bin/linux/amd64" etcd_download_url: "https://github.com/coreos/etcd/releases/download/{{ etcd_version }}/etcd-{{ etcd_version }}-linux-amd64.tar.gz" calico_cni_download_url: "https://github.com/projectcalico/calico-cni/releases/download/{{calico_cni_version}}/calico" calico_cni_ipam_download_url: "https://github.com/projectcalico/calico-cni/releases/download/{{calico_cni_version}}/calico-ipam" @@ -59,12 +58,3 @@ downloads: unarchive: true owner: "etcd" mode: "0755" - - - name: kubernetes-kubectl - dest: kubernetes/bin/kubectl - version: "{{kube_version}}" - sha256: "{{vars['kube_checksum'][kube_version]['kubectl']}}" - source_url: "{{ kube_download_url }}/kubectl" - url: "{{ kube_download_url }}/kubectl" - owner: "kube" - mode: "0755" diff --git a/roles/uploads/vars/kube_versions.yml b/roles/uploads/vars/kube_versions.yml index 627cdc60b..1ea3eb24f 100644 --- a/roles/uploads/vars/kube_versions.yml +++ b/roles/uploads/vars/kube_versions.yml @@ -1,17 +1 @@ -kube_checksum: - v1.2.2: - kube_apiserver: eb1bfd8b877052cbd1991b8c429a1d06661f4cb019905e20e128174f724e16de - kubectl: 473e6924569fba30d4a50cecdc2cae5f31d97d1f662463e85b74a472105dcff4 - v1.2.3: - kube_apiserver_checksum: ebaeeeb72cb29b358337b330617a96355ff2d08a5a523fc1a81beba36cc9d6f9 - kubectl_checksum: 394853edd409a721bcafe4f1360009ef9f845050719fe7d6fc7176f45cc92a8c - v1.2.4: - kube_apiserver: 6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e - kubectl: dac61fbd506f7a17540feca691cd8a9d9d628d59661eebce788a50511f578897 - v1.2.5: - kube_apiserver: fbe8296ad4b194c06f6802a126d35cd2887dc1aded308d4da2b580f270412b33 - kubectl: 5526a496a84701015485e32c86486e2f23599f7a865164f546e619c6a62f7f19 - v1.3.0: - kube_apiserver: 431cd312984a29f45590138e990d5c4d537b069b71f2587a72414fabc4fcffdd - kubectl: f40b2d0ff33984e663a0dea4916f1cb9041abecc09b11f9372cdb8049ded95dc kube_version: v1.3.0 From 731d32afda257c4713231c477685824f889dfa45 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Wed, 13 Jul 2016 17:13:47 +0200 Subject: [PATCH 046/695] Add HA/LB endpoints for kube-apiserver * Add HA docs for API server. * Add auto-evaluated internal endpoints and clarify the loadbalancer_apiserver vars and usecases. * Use facts for kube_apiserver to not repeat code and enable LB endpoints use. * Use /healthz check for the wait-for apiserver. * Use the single endpoint for kubelet instead of the list of apiservers * Specify kube_apiserver_count to for HA layout Signed-off-by: Bogdan Dobrelya --- docs/ha-mode.md | 92 ++++++++++++++++++- inventory/group_vars/all.yml | 27 +----- roles/kubernetes/master/tasks/main.yml | 9 +- .../templates/kubectl-kubeconfig.yaml.j2 | 2 +- .../manifests/kube-apiserver.manifest.j2 | 3 +- .../kube-controller-manager.manifest.j2 | 2 +- .../manifests/kube-scheduler.manifest.j2 | 2 +- roles/kubernetes/node/templates/kubelet.j2 | 2 +- .../manifests/kube-proxy.manifest.j2 | 10 +- .../kubernetes/preinstall/tasks/set_facts.yml | 22 +++++ .../calico/templates/network-environment.j2 | 2 +- 11 files changed, 130 insertions(+), 43 deletions(-) diff --git a/docs/ha-mode.md b/docs/ha-mode.md index b3d752cc9..587d5ea46 100644 --- a/docs/ha-mode.md +++ b/docs/ha-mode.md @@ -31,4 +31,94 @@ flannel networking plugin always uses a single `--etcd-server` endpoint! Kube-apiserver -------------- -TODO(bogdando) TBD + +K8s components require a loadbalancer to access the apiservers via a reverse +proxy. A kube-proxy does not support multiple apiservers for the time being so +you will need to configure your own loadbalancer to achieve HA. Note that +deploying a loadbalancer is up to a user and is not covered by ansible roles +in Kargo. By default, it only configures a non-HA endpoint, which points to +the `access_ip` or IP address of the first server node in the `kube-master` +group. It can also configure clients to use endpoints for a given loadbalancer +type. + +A loadbalancer (LB) may be an external or internal one. An external LB +provides access for external clients, while the internal LB accepts client +connections only to the localhost, similarly to the etcd-proxy HA endpoints. +Given a frontend `VIP` address and `IP1, IP2` addresses of backends, here is +an example configuration for a HAProxy service acting as an external LB: +``` +listen kubernetes-apiserver-https + bind :8383 + option ssl-hello-chk + mode tcp + timeout client 3h + timeout server 3h + server master1 :443 + server master2 :443 + balance roundrobin +``` + +And the corresponding example global vars config: +``` +apiserver_loadbalancer_domain_name: "lb-apiserver.kubernetes.local" +loadbalancer_apiserver: + address: + port: 8383 +``` + +This domain name, or default "lb-apiserver.kubernetes.local", will be inserted +into the `/etc/hosts` file of all servers in the `k8s-cluster` group. Note that +the HAProxy service should as well be HA and requires a VIP management, which +is out of scope of this doc. + +The internal LB may be the case if you do not want to operate a VIP management +HA stack and require no external and no secure access to the K8s API. The group +var `loadbalancer_apiserver_localhost` (defaults to `false`) controls that +deployment layout. When enabled, it is expected each node in the `k8s-cluster` +group to run a loadbalancer that listens the localhost frontend and has all +of the apiservers as backends. Here is an example configuration for a HAProxy + service acting as an internal LB: + +``` +listen kubernetes-apiserver-http + bind localhost:8080 + mode tcp + timeout client 3h + timeout server 3h + server master1 :8080 + server master2 :8080 + balance leastconn +``` + +And the corresponding example global vars config: +``` +loadbalancer_apiserver_localhost: true +``` + +This var overrides an external LB configuration, if any. Note that for this +example, the `kubernetes-apiserver-http` endpoint has backends receiving +unencrypted traffic, which may be a security issue when interconnecting +different nodes, or may be not, if those belong to the isolated management +network without external access. + +In order to achieve HA for HAProxy instances, those must be running on the +each node in the `k8s-cluster` group as well, but require no VIP, thus +no VIP management. + +Access endpoints are evaluated automagically, as the following: + +| Endpoint type | kube-master | non-master | +|------------------------------|---------------|---------------------| +| Local LB (overrides ext) | http://lc:p | http://lc:p | +| External LB, no internal | https://lb:lp | https://lb:lp | +| No ext/int LB (default) | http://lc:p | https://m[0].aip:sp | + +Where: +* `m[0]` - the first node in the `kube-master` group; +* `lb` - LB FQDN, `apiserver_loadbalancer_domain_name`; +* `lc` - localhost; +* `p` - insecure port, `kube_apiserver_insecure_port` +* `sp` - secure port, `kube_apiserver_port`; +* `lp` - LB port, `loadbalancer_apiserver.port`, defers to the secure port; +* `ip` - the node IP, defers to the ansible IP; +* `aip` - `access_ip`, defers to the ip. diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index e9b138c92..547a9d612 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -51,22 +51,14 @@ cluster_name: cluster.local # but don't know about that address themselves. # access_ip: 1.1.1.1 -# Service endpoints. May be a VIP or a load balanced frontend IP, like one -# that a HAProxy or Nginx provides, or just a local service endpoint. -# -# Etcd endpoints use a local etcd-proxies to reach the etcd cluster via -# auto-evaluated endpoints. Those will reuse the access_ip for etcd cluster, -# if specified, or defer to the localhost:2379 as well. - # Etcd access modes: # Enable multiaccess to configure clients to access all of the etcd members directly # as the "http://hostX:port, http://hostY:port, ..." and ignore the proxy loadbalancers. # This may be the case if clients support and loadbalance multiple etcd servers natively. etcd_multiaccess: false -# -# TODO apiserver localhost:8080 and localhost:443 endpoints for kubelets and -# (hyper)kube-* and networking components. +# Assume there are no internal loadbalancers for apiservers exist +loadbalancer_apiserver_localhost: false # Choose network plugin (calico, weave or flannel) kube_network_plugin: flannel @@ -126,21 +118,6 @@ dns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(2)|ipaddr('address') # like you would do when using nova-client before starting the playbook. # cloud_provider: -# For multi masters architecture: -# kube-proxy doesn't support multiple apiservers for the time being so you'll need to configure your own loadbalancer -# This domain name will be inserted into the /etc/hosts file of all servers -# configuration example with haproxy : -# listen kubernetes-apiserver-https -# bind 10.99.0.21:8383 -# option ssl-hello-chk -# mode tcp -# timeout client 3h -# timeout server 3h -# server master1 10.99.0.26:443 -# server master2 10.99.0.27:443 -# balance roundrobin -# apiserver_loadbalancer_domain_name: "lb-apiserver.kubernetes.local" - ## Set these proxy values in order to update docker daemon to use proxies # http_proxy: "" # https_proxy: "" diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml index 2d9221ba1..b055b35df 100644 --- a/roles/kubernetes/master/tasks/main.yml +++ b/roles/kubernetes/master/tasks/main.yml @@ -26,9 +26,12 @@ when: apiserver_manifest.changed - name: wait for the apiserver to be running - wait_for: - port: "{{kube_apiserver_insecure_port}}" - timeout: 60 + uri: url=http://localhost:8080/healthz + register: result + until: result.status == 200 + retries: 10 + delay: 6 + # Create kube-system namespace - name: copy 'kube-system' namespace manifest diff --git a/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 b/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 index 5cc74cf9e..a9800d3ac 100644 --- a/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 +++ b/roles/kubernetes/master/templates/kubectl-kubeconfig.yaml.j2 @@ -5,7 +5,7 @@ preferences: {} clusters: - cluster: certificate-authority-data: {{ kube_node_cert|b64encode }} - server: https://{{ groups['kube-master'][0] }}:{{ kube_apiserver_port }} + server: {{ kube_apiserver_endpoint }} name: {{ cluster_name }} contexts: - context: diff --git a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 index eaecb011b..7961ac36f 100644 --- a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 @@ -13,7 +13,8 @@ spec: - apiserver - --advertise-address={{ ip | default(ansible_default_ipv4.address) }} - --etcd-servers={{ etcd_access_endpoint }} - - --insecure-bind-address={{ kube_apiserver_insecure_bind_address | default('127.0.0.1') }} + - --insecure-bind-address={{ kube_apiserver_insecure_bind_address }} + - --apiserver-count={{ kube_apiserver_count }} - --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota - --service-cluster-ip-range={{ kube_service_addresses }} - --client-ca-file={{ kube_cert_dir }}/ca.pem diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 index 29c56e6a8..f22f49de8 100644 --- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 @@ -11,7 +11,7 @@ spec: command: - /hyperkube - controller-manager - - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}} + - --master={{ kube_apiserver_endpoint }} - --leader-elect=true - --service-account-private-key-file={{ kube_cert_dir }}/apiserver-key.pem - --root-ca-file={{ kube_cert_dir }}/ca.pem diff --git a/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 index f642fbf70..024ddbfaa 100644 --- a/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 @@ -12,7 +12,7 @@ spec: - /hyperkube - scheduler - --leader-elect=true - - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}} + - --master={{ kube_apiserver_endpoint }} - --v={{ kube_log_level | default('2') }} livenessProbe: httpGet: diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index 7eee44993..bab27305e 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -7,7 +7,7 @@ KUBE_LOGGING="--logtostderr=true" {% endif %} KUBE_LOG_LEVEL="--v={{ kube_log_level | default('2') }}" {% if inventory_hostname in groups['kube-node'] %} -KUBELET_API_SERVER="--api_servers={% for host in groups['kube-master'] %}https://{{ hostvars[host]['access_ip'] | default(hostvars[host]['ip'] | default(hostvars[host]['ansible_default_ipv4']['address'])) }}:{{ kube_apiserver_port }}{% if not loop.last %},{% endif %}{% endfor %}" +KUBELET_API_SERVER="--api_servers={{ kube_apiserver_endpoint }}" {% endif %} # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces) KUBELET_ADDRESS="--address={{ ip | default("0.0.0.0") }}" diff --git a/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 b/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 index d094766b5..296658cbd 100644 --- a/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 +++ b/roles/kubernetes/node/templates/manifests/kube-proxy.manifest.j2 @@ -12,14 +12,8 @@ spec: - /hyperkube - proxy - --v={{ kube_log_level | default('2') }} -{% if inventory_hostname in groups['kube-master'] %} - - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}} -{% else %} -{% if loadbalancer_apiserver is defined and apiserver_loadbalancer_domain_name is defined %} - - --master=https://{{ apiserver_loadbalancer_domain_name }}:{{ loadbalancer_apiserver.port }} -{% else %} - - --master=https://{{ hostvars[groups['kube-master'][0]]['access_ip'] | default(hostvars[groups['kube-master'][0]]['ip'] | default(hostvars[groups['kube-master'][0]]['ansible_default_ipv4']['address'])) }}:{{ kube_apiserver_port }} -{% endif%} + - --master={{ kube_apiserver_endpoint }} +{% if not is_kube_master %} - --kubeconfig=/etc/kubernetes/node-kubeconfig.yaml {% endif %} - --bind-address={{ ip | default(ansible_default_ipv4.address) }} diff --git a/roles/kubernetes/preinstall/tasks/set_facts.yml b/roles/kubernetes/preinstall/tasks/set_facts.yml index 5dd283fef..527c29b32 100644 --- a/roles/kubernetes/preinstall/tasks/set_facts.yml +++ b/roles/kubernetes/preinstall/tasks/set_facts.yml @@ -1,4 +1,26 @@ --- +- set_fact: kube_apiserver_count="{{ groups['kube-master'] | length }}" +- set_fact: kube_apiserver_address="{{ ip | default(ansible_default_ipv4['address']) }}" +- set_fact: kube_apiserver_access_address="{{ access_ip | default(kube_apiserver_address) }}" +- set_fact: is_kube_master="{{ inventory_hostname in groups['kube-master'] }}" +- set_fact: first_kube_master="{{ hostvars[groups['kube-master'][0]]['access_ip'] | default(hostvars[groups['kube-master'][0]]['ip'] | default(hostvars[groups['kube-master'][0]]['ansible_default_ipv4']['address'])) }}" +- set_fact: + kube_apiserver_insecure_bind_address: |- + {% if loadbalancer_apiserver_localhost %}{{ kube_apiserver_address }}{% else %}127.0.0.1{% endif %} +- set_fact: + kube_apiserver_endpoint: |- + {% if loadbalancer_apiserver_localhost -%} + http://127.0.0.1:{{ kube_apiserver_insecure_port }} + {%- elif is_kube_master and loadbalancer_apiserver is not defined -%} + http://127.0.0.1:{{ kube_apiserver_insecure_port }} + {%- else -%} + {%- if loadbalancer_apiserver is defined and loadbalancer_apiserver.port is defined -%} + https://{{ apiserver_loadbalancer_domain_name|default('lb-apiserver.kubernetes.local') }}:{{ loadbalancer_apiserver.port|default(kube_apiserver_port) }} + {%- else -%} + https://{{ first_kube_master }}:{{ kube_apiserver_port }} + {%- endif -%} + {%- endif %} + - set_fact: etcd_address="{{ ip | default(ansible_default_ipv4['address']) }}" - set_fact: etcd_access_address="{{ access_ip | default(etcd_address) }}" - set_fact: etcd_peer_url="http://{{ etcd_access_address }}:2380" diff --git a/roles/network_plugin/calico/templates/network-environment.j2 b/roles/network_plugin/calico/templates/network-environment.j2 index 99d592a5e..086803d1b 100644 --- a/roles/network_plugin/calico/templates/network-environment.j2 +++ b/roles/network_plugin/calico/templates/network-environment.j2 @@ -3,7 +3,7 @@ DEFAULT_IPV4={{ip | default(ansible_default_ipv4.address) }} # The Kubernetes master IP -KUBERNETES_MASTER={{ hostvars[groups['kube-master'][0]]['access_ip'] | default(hostvars[groups['kube-master'][0]]['ip'] | default(hostvars[groups['kube-master'][0]]['ansible_default_ipv4']['address'])) }} +KUBERNETES_MASTER={{ first_kube_master }} # IP and port of etcd instance used by Calico ETCD_AUTHORITY={{ etcd_authority }} From 1b1f5f22d4c7f5c84cd53a90502b35f865f6b2d7 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Tue, 26 Jul 2016 16:18:47 +0300 Subject: [PATCH 047/695] Fix etcd standalone deployment etcd facts are generated in kubernetes/preinstall, so etcd nodes need to be evaluated first before the rest of the deployment. Moved several directory facts from kubernetes/node to kubernetes/preinstall because they are not backward dependent. --- cluster.yml | 8 ++++++- roles/etcd/handlers/main.yml | 2 +- roles/etcd/meta/main.yml | 1 + roles/etcd/templates/etcd.j2 | 4 ++++ roles/kubernetes/node/defaults/main.yml | 20 ------------------ roles/kubernetes/preinstall/defaults/main.yml | 21 +++++++++++++++++++ roles/kubernetes/preinstall/tasks/main.yml | 7 +++++-- 7 files changed, 39 insertions(+), 24 deletions(-) diff --git a/cluster.yml b/cluster.yml index 0c75b21b9..f87c39579 100644 --- a/cluster.yml +++ b/cluster.yml @@ -1,9 +1,15 @@ --- -- hosts: k8s-cluster +- hosts: etcd roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: etcd, tags: etcd } - { role: docker, tags: docker } + +- hosts: k8s-cluster + roles: + - { role: kubernetes/preinstall, tags: preinstall } + - { role: docker, tags: docker } + - { role: etcd, tags: etcd } - { role: kubernetes/node, tags: node } - { role: network_plugin, tags: network } diff --git a/roles/etcd/handlers/main.yml b/roles/etcd/handlers/main.yml index cc22b1c72..bb32d4e8e 100644 --- a/roles/etcd/handlers/main.yml +++ b/roles/etcd/handlers/main.yml @@ -18,7 +18,7 @@ when: ansible_service_mgr == "systemd" - name: wait for etcd up - uri: url=http://localhost:2379/health + uri: url="http://{% if is_etcd_master %}{{ etcd_address }}{% else %}127.0.0.1{% endif %}:2379/health" register: result until: result.status == 200 retries: 10 diff --git a/roles/etcd/meta/main.yml b/roles/etcd/meta/main.yml index 84d029d58..de3461e70 100644 --- a/roles/etcd/meta/main.yml +++ b/roles/etcd/meta/main.yml @@ -8,3 +8,4 @@ dependencies: when: etcd_deployment_type == "host" - role: docker when: (ansible_os_family != "CoreOS" and etcd_deployment_type == "docker") + - role: "kubernetes/preinstall" diff --git a/roles/etcd/templates/etcd.j2 b/roles/etcd/templates/etcd.j2 index 106217ba6..1f7385939 100644 --- a/roles/etcd/templates/etcd.j2 +++ b/roles/etcd/templates/etcd.j2 @@ -3,7 +3,11 @@ ETCD_ADVERTISE_CLIENT_URLS={{ etcd_client_url }} ETCD_INITIAL_ADVERTISE_PEER_URLS={{ etcd_peer_url }} ETCD_INITIAL_CLUSTER_STATE={% if etcd_cluster_is_healthy.rc != 0 | bool %}new{% else %}existing{% endif %} +{% if not is_etcd_proxy %} +ETCD_LISTEN_CLIENT_URLS=http://{{ etcd_address }}:2379,http://127.0.0.1:2379 +{% else %} ETCD_LISTEN_CLIENT_URLS=http://{{ etcd_address }}:2379 +{% endif %} ETCD_ELECTION_TIMEOUT=10000 ETCD_INITIAL_CLUSTER_TOKEN=k8s_etcd ETCD_LISTEN_PEER_URLS=http://{{ etcd_address }}:2380 diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 38ac1c6dc..1ae008e93 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -1,16 +1,3 @@ -# This directory is where all the additional scripts go -# that Kubernetes normally puts in /srv/kubernetes. -# This puts them in a sane location -kube_script_dir: "{{ bin_dir }}/kubernetes-scripts" - -# This directory is where all the additional config stuff goes -# the kubernetes normally puts in /srv/kubernets. -# This puts them in a sane location. -# Editting this value will almost surely break something. Don't -# change it. Things like the systemd scripts are hard coded to -# look in here. Don't do it. -kube_config_dir: /etc/kubernetes - # This is where all the cert scripts and certs will be located kube_cert_dir: "{{ kube_config_dir }}/ssl" @@ -20,13 +7,6 @@ kube_token_dir: "{{ kube_config_dir }}/tokens" # This is where to save basic auth file kube_users_dir: "{{ kube_config_dir }}/users" -# This is where you can drop yaml/json files and the kubelet will run those -# pods on startup -kube_manifest_dir: "{{ kube_config_dir }}/manifests" - -# Logging directory (sysvinit systems) -kube_log_dir: "/var/log/kubernetes" - dns_domain: "{{ cluster_name }}" # resolv.conf to base dns config diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml index 49f9b7c0e..1fb537b89 100644 --- a/roles/kubernetes/preinstall/defaults/main.yml +++ b/roles/kubernetes/preinstall/defaults/main.yml @@ -1,6 +1,27 @@ --- run_gitinfos: false +# This directory is where all the additional scripts go +# that Kubernetes normally puts in /srv/kubernetes. +# This puts them in a sane location +kube_script_dir: "{{ bin_dir }}/kubernetes-scripts" + +# This directory is where all the additional config stuff goes +# the kubernetes normally puts in /srv/kubernets. +# This puts them in a sane location. +# Editting this value will almost surely break something. Don't +# change it. Things like the systemd scripts are hard coded to +# look in here. Don't do it. +kube_config_dir: /etc/kubernetes + +# Logging directory (sysvinit systems) +kube_log_dir: "/var/log/kubernetes" + +# This is where you can drop yaml/json files and the kubelet will run those +# pods on startup +kube_manifest_dir: "{{ kube_config_dir }}/manifests" + + common_required_pkgs: - python-httplib2 - openssl diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index c0dd65797..442fadfd7 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -28,25 +28,28 @@ path: "{{ kube_config_dir }}" state: directory owner: kube + when: "{{ inventory_hostname in groups['k8s-cluster'] }}" - name: Create kubernetes script directory file: path: "{{ kube_script_dir }}" state: directory owner: kube + when: "{{ inventory_hostname in groups['k8s-cluster'] }}" - name: Create kubernetes manifests directory file: path: "{{ kube_manifest_dir }}" state: directory owner: kube + when: "{{ inventory_hostname in groups['k8s-cluster'] }}" - name: Create kubernetes logs directory file: path: "{{ kube_log_dir }}" state: directory owner: kube - when: ansible_service_mgr in ["sysvinit","upstart"] + when: ansible_service_mgr in ["sysvinit","upstart"] and "{{ inventory_hostname in groups['k8s-cluster'] }}" - name: check cloud_provider value fail: @@ -64,7 +67,7 @@ with_items: - "/etc/cni/net.d" - "/opt/cni/bin" - when: kube_network_plugin in ["calico", "weave"] + when: kube_network_plugin in ["calico", "weave"] and "{{ inventory_hostname in groups['k8s-cluster'] }}" - name: Update package management cache (YUM) yum: update_cache=yes name='*' From 90fc407420198f48d92544bd3be8fa596a2b2558 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Wed, 27 Jul 2016 11:54:47 +0300 Subject: [PATCH 048/695] Fix etcd user for etcd-proxy service Only affects sys V OSes (Ubuntu 14.04) Fixes ##383 --- roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 b/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 index c2fa40106..592361351 100644 --- a/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 +++ b/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 @@ -28,7 +28,7 @@ DAEMON_ARGS='--restart=always --env-file=/etc/etcd-proxy.env \ SCRIPTNAME=/etc/init.d/$NAME -DAEMON_USER=etcd-proxy +DAEMON_USER=etcd STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" PID=/var/run/etcd-proxy.pid From c52c5f5056f29ac7e650c46f4a30914ffb5473c5 Mon Sep 17 00:00:00 2001 From: Aleksandr Didenko Date: Wed, 27 Jul 2016 15:55:41 +0200 Subject: [PATCH 049/695] Add run_once to define calico pool task name --- roles/network_plugin/calico/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index 4a568fbc2..a815feecf 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -63,6 +63,7 @@ when: nat_outgoing|default(false) and not peer_with_router|default(false) - name: Calico | Define calico pool task name + run_once: true set_fact: pool_task_name: "with options {{ ipip_arg|default('') }} {{ nat_arg|default('') }}" when: ipip_arg|default(false) or nat_arg|default(false) From 5668e5f7674c7feb6cb3272964fdb04144074e15 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Fri, 29 Jul 2016 12:46:24 +0300 Subject: [PATCH 050/695] Fix etcd restart and handler systemd tasks Changed Wants=docker.service to docker.socket Renamed handlers for reloading systemd to contain role in task name. --- roles/docker/handlers/main.yml | 8 ++++---- roles/etcd/handlers/main.yml | 6 +++--- roles/etcd/templates/etcd-docker.service.j2 | 2 +- roles/etcd/templates/etcd-proxy-docker.service.j2 | 2 +- roles/kubernetes/node/handlers/main.yml | 8 ++++---- roles/network_plugin/calico/handlers/main.yml | 10 +++++----- .../calico/templates/calico-node.service.j2 | 2 +- roles/network_plugin/flannel/handlers/main.yml | 12 ++++++------ roles/network_plugin/weave/handlers/main.yml | 14 +++++++------- 9 files changed, 32 insertions(+), 32 deletions(-) diff --git a/roles/docker/handlers/main.yml b/roles/docker/handlers/main.yml index 4153d123d..79db42f92 100644 --- a/roles/docker/handlers/main.yml +++ b/roles/docker/handlers/main.yml @@ -2,14 +2,14 @@ - name: restart docker command: /bin/true notify: - - reload systemd - - reload docker + - Docker | reload systemd + - Docker | reload docker -- name : reload systemd +- name : Docker | reload systemd shell: systemctl daemon-reload when: ansible_service_mgr == "systemd" -- name: reload docker +- name: Docker | reload docker service: name: docker state: restarted diff --git a/roles/etcd/handlers/main.yml b/roles/etcd/handlers/main.yml index bb32d4e8e..693754a06 100644 --- a/roles/etcd/handlers/main.yml +++ b/roles/etcd/handlers/main.yml @@ -2,18 +2,18 @@ - name: restart etcd command: /bin/true notify: - - reload systemd + - etcd | reload systemd - reload etcd - wait for etcd up - name: restart etcd-proxy command: /bin/true notify: - - reload systemd + - etcd | reload systemd - reload etcd-proxy - wait for etcd up -- name: reload systemd +- name: etcd | reload systemd command: systemctl daemon-reload when: ansible_service_mgr == "systemd" diff --git a/roles/etcd/templates/etcd-docker.service.j2 b/roles/etcd/templates/etcd-docker.service.j2 index e196c0b59..a37759fec 100644 --- a/roles/etcd/templates/etcd-docker.service.j2 +++ b/roles/etcd/templates/etcd-docker.service.j2 @@ -1,6 +1,6 @@ [Unit] Description=etcd docker wrapper -Wants=docker.service +Wants=docker.socket After=docker.service [Service] diff --git a/roles/etcd/templates/etcd-proxy-docker.service.j2 b/roles/etcd/templates/etcd-proxy-docker.service.j2 index 98d548cce..bf70f0e7f 100644 --- a/roles/etcd/templates/etcd-proxy-docker.service.j2 +++ b/roles/etcd/templates/etcd-proxy-docker.service.j2 @@ -1,6 +1,6 @@ [Unit] Description=etcd-proxy docker wrapper -Wants=docker.service +Wants=docker.socket After=docker.service [Service] diff --git a/roles/kubernetes/node/handlers/main.yml b/roles/kubernetes/node/handlers/main.yml index 6be44279d..5991bebf3 100644 --- a/roles/kubernetes/node/handlers/main.yml +++ b/roles/kubernetes/node/handlers/main.yml @@ -2,14 +2,14 @@ - name: restart kubelet command: /bin/true notify: - - reload systemd - - reload kubelet + - Kubelet | reload systemd + - Kubelet | reload kubelet -- name: reload systemd +- name: Kubelet | reload systemd command: systemctl daemon-reload when: ansible_service_mgr == "systemd" -- name: reload kubelet +- name: Kubelet | reload kubelet service: name: kubelet state: restarted diff --git a/roles/network_plugin/calico/handlers/main.yml b/roles/network_plugin/calico/handlers/main.yml index 1e8d56dbe..d4059c412 100644 --- a/roles/network_plugin/calico/handlers/main.yml +++ b/roles/network_plugin/calico/handlers/main.yml @@ -2,15 +2,15 @@ - name: restart calico-node command: /bin/true notify: - - reload systemd - - reload calico-node + - Calico | reload systemd + - Calico | reload calico-node -- name : reload systemd +- name : Calico | reload systemd shell: systemctl daemon-reload when: ansible_service_mgr == "systemd" -- name: reload calico-node +- name: Calico | reload calico-node service: name: calico-node state: restarted - sleep: 10 \ No newline at end of file + sleep: 10 diff --git a/roles/network_plugin/calico/templates/calico-node.service.j2 b/roles/network_plugin/calico/templates/calico-node.service.j2 index 191ae8f40..115da35ae 100644 --- a/roles/network_plugin/calico/templates/calico-node.service.j2 +++ b/roles/network_plugin/calico/templates/calico-node.service.j2 @@ -1,8 +1,8 @@ [Unit] Description=Calico per-node agent Documentation=https://github.com/projectcalico/calico-docker -Wants=docker.service etcd-proxy.service After=docker.service etcd-proxy.service +Wants=docker.socket [Service] User=root diff --git a/roles/network_plugin/flannel/handlers/main.yml b/roles/network_plugin/flannel/handlers/main.yml index cb3986312..1982765d4 100644 --- a/roles/network_plugin/flannel/handlers/main.yml +++ b/roles/network_plugin/flannel/handlers/main.yml @@ -7,20 +7,20 @@ - name: restart docker command: /bin/true notify: - - reload systemd - - reload docker - - reload kubelet + - Flannel | reload systemd + - Flannel | reload docker + - Flannel | reload kubelet -- name : reload systemd +- name : Flannel | reload systemd shell: systemctl daemon-reload when: ansible_service_mgr == "systemd" -- name: reload docker +- name: Flannel | reload docker service: name: docker state: restarted -- name: reload kubelet +- name: Flannel | reload kubelet service: name: kubelet state: restarted diff --git a/roles/network_plugin/weave/handlers/main.yml b/roles/network_plugin/weave/handlers/main.yml index 3bb21c346..bd20781ee 100644 --- a/roles/network_plugin/weave/handlers/main.yml +++ b/roles/network_plugin/weave/handlers/main.yml @@ -2,32 +2,32 @@ - name: restart docker command: /bin/true notify: - - reload systemd - - reload docker + - Weave | reload systemd + - Weave | reload docker -- name : reload systemd +- name : Weave | reload systemd shell: systemctl daemon-reload when: ansible_service_mgr == "systemd" - name: restart weave command: /bin/true notify: - - reload systemd + - Weave | reload systemd - reload weave - name: restart weaveproxy command: /bin/true notify: - - reload systemd + - Weave | reload systemd - reload weaveproxy - name: restart weaveexpose command: /bin/true notify: - - reload systemd + - Weave | reload systemd - reload weaveexpose -- name: reload docker +- name: Weave | reload docker service: name: docker state: restarted From c7fef6cb761dbf67d2d9cb0ffa53a3df88f157ba Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Sat, 30 Jul 2016 16:03:41 +0400 Subject: [PATCH 051/695] Fix weave deployment task names --- roles/network_plugin/weave/handlers/main.yml | 10 +++++----- roles/network_plugin/weave/tasks/main.yml | 16 ++++++++-------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/roles/network_plugin/weave/handlers/main.yml b/roles/network_plugin/weave/handlers/main.yml index bd20781ee..f983ee579 100644 --- a/roles/network_plugin/weave/handlers/main.yml +++ b/roles/network_plugin/weave/handlers/main.yml @@ -1,20 +1,20 @@ --- -- name: restart docker +- name: Weave | restart docker command: /bin/true notify: - Weave | reload systemd - Weave | reload docker -- name : Weave | reload systemd - shell: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - - name: restart weave command: /bin/true notify: - Weave | reload systemd - reload weave +- name : Weave | reload systemd + shell: systemctl daemon-reload + when: ansible_service_mgr == "systemd" + - name: restart weaveproxy command: /bin/true notify: diff --git a/roles/network_plugin/weave/tasks/main.yml b/roles/network_plugin/weave/tasks/main.yml index 2cd7b2a60..5703dde97 100644 --- a/roles/network_plugin/weave/tasks/main.yml +++ b/roles/network_plugin/weave/tasks/main.yml @@ -7,17 +7,15 @@ group: root mode: 0644 notify: - - restart docker + - Weave | restart docker - name: Write docker.service systemd file template: src: systemd-docker.service dest: /lib/systemd/system/docker.service - notify: restart docker + notify: Weave | restart docker when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS" -- meta: flush_handlers - - name: Weave | Install weave command: rsync -piu "{{ local_release_dir }}/weave/bin/weave" "{{ bin_dir }}/weave" changed_when: false @@ -37,22 +35,24 @@ group: root mode: 0644 notify: - - restart systemd-weave + - restart weave - name: Weave | Write weave systemd init file template: src=weave.service.j2 dest=/etc/systemd/system/weave.service when: ansible_service_mgr == "systemd" - notify: restart systemd-weave + notify: restart weave - name: Weave | Write weaveproxy systemd init file template: src=weaveproxy.service.j2 dest=/etc/systemd/system/weaveproxy.service when: ansible_service_mgr == "systemd" - notify: restart systemd-weaveproxy + notify: restart weaveproxy - name: Weave | Write weaveexpose systemd init file template: src=weaveexpose.service.j2 dest=/etc/systemd/system/weaveexpose.service when: ansible_service_mgr == "systemd" - notify: restart systemd-weaveexpose + notify: restart weaveexpose + +- meta: flush_handlers - name: Weave | Enable weave service: name=weave enabled=yes state=started From ff5a48c9f9f4fe7d4839eb2cf79dee1b2cd7aa62 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Mon, 1 Aug 2016 14:07:59 +0200 Subject: [PATCH 052/695] Add CI test layouts * Drop Trusty from test matrix * Add extra cases to test separate roles deployment Signed-off-by: Bogdan Dobrelya --- .travis.yml | 12 ++++++++---- tests/templates/inventory-gce.j2 | 11 +++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6c26cd110..126e579fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -72,19 +72,22 @@ env: CLOUD_IMAGE=ubuntu-1604-xenial CLOUD_REGION=asia-east1-c - # Ubuntu 15.10 + # Extra cases for separated roles - >- KUBE_NETWORK_PLUGIN=flannel - CLOUD_IMAGE=ubuntu-1510-wily + CLOUD_IMAGE=rhel-7-sudo CLOUD_REGION=europe-west1-b + MODE="separate" - >- KUBE_NETWORK_PLUGIN=calico - CLOUD_IMAGE=ubuntu-1510-wily + CLOUD_IMAGE=ubuntu-1604-xenial CLOUD_REGION=us-central1-a + MODE="separate" - >- KUBE_NETWORK_PLUGIN=weave - CLOUD_IMAGE=ubuntu-1510-wily + CLOUD_IMAGE=debian-8-kubespray CLOUD_REGION=us-east1-d + MODE="separate" before_install: @@ -113,6 +116,7 @@ before_script: script: - > $HOME/.local/bin/ansible-playbook tests/cloud_playbooks/create-gce.yml -i tests/local_inventory/hosts -c local $LOG_LEVEL + -e mode=${MODE} -e test_id=${TEST_ID} -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} -e gce_project_id=${GCE_PROJECT_ID} diff --git a/tests/templates/inventory-gce.j2 b/tests/templates/inventory-gce.j2 index 72ad469de..ef2ae06e6 100644 --- a/tests/templates/inventory-gce.j2 +++ b/tests/templates/inventory-gce.j2 @@ -2,6 +2,16 @@ node1 ansible_ssh_host={{gce.instance_data[0].public_ip}} node2 ansible_ssh_host={{gce.instance_data[1].public_ip}} node3 ansible_ssh_host={{gce.instance_data[2].public_ip}} +{% if mode == "separate" %} +[kube-master] +node1 + +[kube-node] +node2 + +[etcd] +node3 +{% else %} [kube-master] node1 node2 @@ -14,6 +24,7 @@ node3 [etcd] node1 node2 +{% endif %} [k8s-cluster:children] kube-node From 2af71f31b45b8568c18a8833a20529ba3c835768 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Tue, 2 Aug 2016 10:55:42 +0200 Subject: [PATCH 053/695] Rework systemd service units * Add for docker system units: ExecReload=/bin/kill -s HUP $MAINPID Delegate=yes KillMode=process. * Add missed DOCKER_OPTIONS for calico/weave docker systemd unit. * Change Requires= to a less strict and non-faily Wants=, add missing Wants= for After=. * Align wants/after in a wat if Wants=foo, After= has foo as well. * Make wants/after docker.service to ask for the docker.socket as well. * Move "docker rm -f" commands from ExecStartPre= to ExecStopPost=. hooks to ensure non-destructive start attempts issued by Wants=. Signed-off-by: Bogdan Dobrelya --- roles/etcd/templates/etcd-docker.service.j2 | 6 +++--- roles/etcd/templates/etcd-proxy-docker.service.j2 | 6 +++--- roles/kubernetes/node/templates/kubelet.service.j2 | 8 +++++--- .../calico/templates/calico-node.service.j2 | 4 ++-- .../calico/templates/systemd-docker.service | 7 +++++-- .../flannel/templates/systemd-docker.service | 10 +++++++--- .../weave/templates/systemd-docker.service | 8 ++++++-- roles/network_plugin/weave/templates/weave.service.j2 | 4 ++-- .../weave/templates/weaveexpose.service.j2 | 6 ++---- .../weave/templates/weaveproxy.service.j2 | 4 ++-- 10 files changed, 37 insertions(+), 26 deletions(-) diff --git a/roles/etcd/templates/etcd-docker.service.j2 b/roles/etcd/templates/etcd-docker.service.j2 index a37759fec..4b6cec5c9 100644 --- a/roles/etcd/templates/etcd-docker.service.j2 +++ b/roles/etcd/templates/etcd-docker.service.j2 @@ -1,7 +1,7 @@ [Unit] Description=etcd docker wrapper -Wants=docker.socket -After=docker.service +Wants=docker.service docker.socket +After=docker.service docker.socket [Service] User=root @@ -18,7 +18,7 @@ ExecStart={{ docker_bin_dir | default("/usr/bin") }}/docker run --restart=always {% if etcd_after_v3 %} {{ etcd_container_bin_dir }}etcd {% endif %} -ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_member_name | default("etcd-proxy") }} +ExecStopPost=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_member_name | default("etcd-proxy") }} ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_member_name | default("etcd-proxy") }} ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_member_name | default("etcd-proxy") }} Restart=always diff --git a/roles/etcd/templates/etcd-proxy-docker.service.j2 b/roles/etcd/templates/etcd-proxy-docker.service.j2 index bf70f0e7f..939e6fd35 100644 --- a/roles/etcd/templates/etcd-proxy-docker.service.j2 +++ b/roles/etcd/templates/etcd-proxy-docker.service.j2 @@ -1,7 +1,7 @@ [Unit] Description=etcd-proxy docker wrapper -Wants=docker.socket -After=docker.service +Wants=docker.service docker.socket +After=docker.service docker.socket [Service] User=root @@ -18,7 +18,7 @@ ExecStart={{ docker_bin_dir | default("/usr/bin") }}/docker run --restart=always {% if etcd_after_v3 %} {{ etcd_container_bin_dir }}etcd {% endif %} -ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_proxy_member_name | default("etcd-proxy") }} +ExecStopPost=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_proxy_member_name | default("etcd-proxy") }} ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_proxy_member_name | default("etcd-proxy") }} ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_proxy_member_name | default("etcd-proxy") }} Restart=always diff --git a/roles/kubernetes/node/templates/kubelet.service.j2 b/roles/kubernetes/node/templates/kubelet.service.j2 index acad42e1f..e92f71d51 100644 --- a/roles/kubernetes/node/templates/kubelet.service.j2 +++ b/roles/kubernetes/node/templates/kubelet.service.j2 @@ -2,9 +2,11 @@ Description=Kubernetes Kubelet Server Documentation=https://github.com/GoogleCloudPlatform/kubernetes {% if kube_network_plugin is defined and kube_network_plugin == "calico" %} -After=docker.service calico-node.service +After=docker.service docker.socket calico-node.service +Wants=docker.service docker.socket calico-node.service {% else %} -After=docker.service +After=docker.service docker.socket +Wants=docker.service docker.socket {% endif %} [Service] @@ -22,7 +24,7 @@ ExecStart={{ bin_dir }}/kubelet \ $KUBELET_REGISTER_NODE \ $KUBELET_NETWORK_PLUGIN \ $KUBELET_CLOUDPROVIDER -ExecStartPre=-/usr/bin/docker rm -f kubelet +ExecStopPost=-/usr/bin/docker rm -f kubelet ExecReload=/usr/bin/docker restart kubelet Restart=always RestartSec=10s diff --git a/roles/network_plugin/calico/templates/calico-node.service.j2 b/roles/network_plugin/calico/templates/calico-node.service.j2 index 115da35ae..152ecce64 100644 --- a/roles/network_plugin/calico/templates/calico-node.service.j2 +++ b/roles/network_plugin/calico/templates/calico-node.service.j2 @@ -1,8 +1,8 @@ [Unit] Description=Calico per-node agent Documentation=https://github.com/projectcalico/calico-docker -After=docker.service etcd-proxy.service -Wants=docker.socket +After=docker.service docker.socket etcd-proxy.service +Wants=docker.service docker.socket etcd-proxy.service [Service] User=root diff --git a/roles/network_plugin/calico/templates/systemd-docker.service b/roles/network_plugin/calico/templates/systemd-docker.service index 01383d772..d20a2fbe0 100644 --- a/roles/network_plugin/calico/templates/systemd-docker.service +++ b/roles/network_plugin/calico/templates/systemd-docker.service @@ -2,11 +2,11 @@ Description=Docker Application Container Engine Documentation=http://docs.docker.com {% if ansible_os_family == "RedHat" %} -After=network.target +After=network.target docker-storage-setup.service Wants=docker-storage-setup.service {% elif ansible_os_family == "Debian" %} After=network.target docker.socket -Requires=docker.socket +Wants=docker.socket {% endif %} [Service] @@ -20,6 +20,9 @@ EnvironmentFile=-/etc/sysconfig/docker-storage EnvironmentFile=-/etc/default/docker {% endif %} Environment=GOTRACEBACK=crash +ExecReload=/bin/kill -s HUP $MAINPID +Delegate=yes +KillMode=process ExecStart=/usr/bin/docker daemon \ $OPTIONS \ $DOCKER_STORAGE_OPTIONS \ diff --git a/roles/network_plugin/flannel/templates/systemd-docker.service b/roles/network_plugin/flannel/templates/systemd-docker.service index 3275c6e24..21790dd6f 100644 --- a/roles/network_plugin/flannel/templates/systemd-docker.service +++ b/roles/network_plugin/flannel/templates/systemd-docker.service @@ -2,22 +2,26 @@ Description=Docker Application Container Engine Documentation=http://docs.docker.com {% if ansible_os_family == "RedHat" %} -After=network.target +After=network.target docker-storage-setup.service Wants=docker-storage-setup.service {% elif ansible_os_family == "Debian" %} After=network.target docker.socket -Requires=docker.socket +Wants=docker.socket {% endif %} [Service] Type=notify EnvironmentFile=-/etc/default/docker Environment=GOTRACEBACK=crash +ExecReload=/bin/kill -s HUP $MAINPID +Delegate=yes +KillMode=process ExecStart=/usr/bin/docker daemon \ $OPTIONS \ $DOCKER_STORAGE_OPTIONS \ $DOCKER_NETWORK_OPTIONS \ - $INSECURE_REGISTRY + $INSECURE_REGISTRY \ + $DOCKER_OPTS LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity diff --git a/roles/network_plugin/weave/templates/systemd-docker.service b/roles/network_plugin/weave/templates/systemd-docker.service index 3275c6e24..96dd6cd05 100644 --- a/roles/network_plugin/weave/templates/systemd-docker.service +++ b/roles/network_plugin/weave/templates/systemd-docker.service @@ -6,18 +6,22 @@ After=network.target Wants=docker-storage-setup.service {% elif ansible_os_family == "Debian" %} After=network.target docker.socket -Requires=docker.socket +Wants=docker.socket {% endif %} [Service] Type=notify EnvironmentFile=-/etc/default/docker Environment=GOTRACEBACK=crash +ExecReload=/bin/kill -s HUP $MAINPID +Delegate=yes +KillMode=process ExecStart=/usr/bin/docker daemon \ $OPTIONS \ $DOCKER_STORAGE_OPTIONS \ $DOCKER_NETWORK_OPTIONS \ - $INSECURE_REGISTRY + $INSECURE_REGISTRY \ + $DOCKER_OPTS LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity diff --git a/roles/network_plugin/weave/templates/weave.service.j2 b/roles/network_plugin/weave/templates/weave.service.j2 index a4e9e8d8e..46d9434fe 100644 --- a/roles/network_plugin/weave/templates/weave.service.j2 +++ b/roles/network_plugin/weave/templates/weave.service.j2 @@ -1,8 +1,8 @@ [Unit] Description=Weave Network Documentation=http://docs.weave.works/weave/latest_release/ -Requires=docker.service -After=docker.service +Wants=docker.service docker.socket +After=docker.service docker.socket [Service] EnvironmentFile=-/etc/weave.env diff --git a/roles/network_plugin/weave/templates/weaveexpose.service.j2 b/roles/network_plugin/weave/templates/weaveexpose.service.j2 index 03446ee0f..912ed1fee 100644 --- a/roles/network_plugin/weave/templates/weaveexpose.service.j2 +++ b/roles/network_plugin/weave/templates/weaveexpose.service.j2 @@ -1,9 +1,7 @@ [Unit] Documentation=http://docs.weave.works/ -Requires=docker.service -Requires=weave.service -After=weave.service -After=docker.service +Wants=docker.service docker.socket weave.service +After=docker.service docker.socket weave.service [Service] Type=oneshot diff --git a/roles/network_plugin/weave/templates/weaveproxy.service.j2 b/roles/network_plugin/weave/templates/weaveproxy.service.j2 index fe5032893..f37120f1c 100644 --- a/roles/network_plugin/weave/templates/weaveproxy.service.j2 +++ b/roles/network_plugin/weave/templates/weaveproxy.service.j2 @@ -1,8 +1,8 @@ [Unit] Description=Weave proxy for Docker API Documentation=http://docs.weave.works/ -Requires=docker.service -After=docker.service +Wants=docker.service docker.socket +After=docker.service docker.socket [Service] EnvironmentFile=-/etc/weave.%H.env From 5bf9b5345e9e75105c40d42b6c60bc73d8b5f165 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Tue, 2 Aug 2016 12:35:05 +0300 Subject: [PATCH 054/695] Add future docker versions Default version is still unchanged, but added docker versions 1.11 and 1.12 --- roles/docker/vars/debian.yml | 2 ++ roles/docker/vars/fedora.yml | 2 ++ roles/docker/vars/ubuntu-16.04.yml | 1 + roles/docker/vars/ubuntu.yml | 2 ++ 4 files changed, 7 insertions(+) diff --git a/roles/docker/vars/debian.yml b/roles/docker/vars/debian.yml index ce8b52263..6574f451f 100644 --- a/roles/docker/vars/debian.yml +++ b/roles/docker/vars/debian.yml @@ -5,6 +5,8 @@ docker_versioned_pkg: latest: docker-engine 1.9: docker-engine=1.9.1-0~{{ ansible_distribution_release|lower }} 1.10: docker-engine=1.10.3-0~{{ ansible_distribution_release|lower }} + 1.11: docker-engine=1.11.2-0~{{ ansible_distribution_release|lower }} + 1.12: docker-engine=1.12.0-0~{{ ansible_distribution_release|lower }} docker_package_info: pkg_mgr: apt diff --git a/roles/docker/vars/fedora.yml b/roles/docker/vars/fedora.yml index d1693fab7..a6aaf7f56 100644 --- a/roles/docker/vars/fedora.yml +++ b/roles/docker/vars/fedora.yml @@ -4,6 +4,8 @@ docker_versioned_pkg: latest: docker 1.9: docker-1:1.9.1 1.10: docker-1:1.10.1 + 1.11: docker-1:1.11.2 + 1.12: docker-1:1.12.0 docker_package_info: pkg_mgr: dnf diff --git a/roles/docker/vars/ubuntu-16.04.yml b/roles/docker/vars/ubuntu-16.04.yml index e5b84702d..690e447c3 100644 --- a/roles/docker/vars/ubuntu-16.04.yml +++ b/roles/docker/vars/ubuntu-16.04.yml @@ -6,6 +6,7 @@ docker_kernel_min_version: '3.2' docker_versioned_pkg: latest: docker-engine 1.11: docker-engine=1.11.1-0~{{ ansible_distribution_release|lower }} + 1.12: docker-engine=1.12.0-0~{{ ansible_distribution_release|lower }} docker_package_info: pkg_mgr: apt diff --git a/roles/docker/vars/ubuntu.yml b/roles/docker/vars/ubuntu.yml index 18da1b85e..0f92d23c1 100644 --- a/roles/docker/vars/ubuntu.yml +++ b/roles/docker/vars/ubuntu.yml @@ -6,6 +6,8 @@ docker_versioned_pkg: latest: docker-engine 1.9: docker-engine=1.9.0-0~{{ ansible_distribution_release|lower }} 1.10: docker-engine=1.10.3-0~{{ ansible_distribution_release|lower }} + 1.11: docker-engine=1.11.1-0~{{ ansible_distribution_release|lower }} + 1.12: docker-engine=1.12.0-0~{{ ansible_distribution_release|lower }} docker_package_info: pkg_mgr: apt From e8a1c7a53f9e81b425f5bf12b549ddb199562d1b Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Tue, 2 Aug 2016 13:42:27 +0300 Subject: [PATCH 055/695] Move docker systemd unit creation to docker role Creating the unit using default settings early on and then changing it during network_plugin section leads to too many docker restarts and duplicated code. Reversed Wants= dependence on docker.service so it does not restart docker when reloading systemd Consolidated all docker restart handlers. --- roles/docker/handlers/main.yml | 12 +++++++ roles/docker/tasks/main.yml | 8 +++++ .../templates/systemd-docker.service.j2} | 3 +- roles/etcd/templates/etcd-docker.service.j2 | 6 ++-- .../templates/etcd-proxy-docker.service.j2 | 6 ++-- .../node/templates/kubelet.service.j2 | 8 ++--- roles/network_plugin/calico/tasks/main.yml | 7 ---- .../calico/templates/calico-node.service.j2 | 2 +- .../network_plugin/flannel/handlers/main.yml | 16 ---------- roles/network_plugin/flannel/tasks/main.yml | 7 ---- .../flannel/templates/systemd-docker.service | 32 ------------------- roles/network_plugin/meta/main.yml | 1 + roles/network_plugin/weave/handlers/main.yml | 11 ------- roles/network_plugin/weave/tasks/main.yml | 9 +----- .../weave/templates/systemd-docker.service | 32 ------------------- .../weave/templates/weave.service.j2 | 2 +- .../weave/templates/weaveexpose.service.j2 | 2 +- .../weave/templates/weaveproxy.service.j2 | 2 +- 18 files changed, 38 insertions(+), 128 deletions(-) rename roles/{network_plugin/calico/templates/systemd-docker.service => docker/templates/systemd-docker.service.j2} (96%) delete mode 100644 roles/network_plugin/flannel/templates/systemd-docker.service delete mode 100644 roles/network_plugin/weave/templates/systemd-docker.service diff --git a/roles/docker/handlers/main.yml b/roles/docker/handlers/main.yml index 79db42f92..6f54f33d5 100644 --- a/roles/docker/handlers/main.yml +++ b/roles/docker/handlers/main.yml @@ -4,6 +4,8 @@ notify: - Docker | reload systemd - Docker | reload docker + - Docker | pause while Docker restarts + - Docker | wait for docker - name : Docker | reload systemd shell: systemctl daemon-reload @@ -13,3 +15,13 @@ service: name: docker state: restarted + +- name: Docker | pause while Docker restarts + pause: seconds=10 prompt="Waiting for docker restart" + +- name: Docker | wait for docker + command: /usr/bin/docker images + register: docker_ready + retries: 10 + delay: 5 + until: docker_ready.rc == 0 diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 03db20c75..6d71c4980 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -59,6 +59,14 @@ when: ansible_service_mgr == "systemd" and (http_proxy is defined or https_proxy is defined or no_proxy is defined) +- name: Write docker.service systemd file + template: + src: systemd-docker.service.j2 + dest: /etc/systemd/system/docker.service + register: docker_service_file + notify: restart docker + when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS" + - meta: flush_handlers - name: ensure docker service is started and enabled diff --git a/roles/network_plugin/calico/templates/systemd-docker.service b/roles/docker/templates/systemd-docker.service.j2 similarity index 96% rename from roles/network_plugin/calico/templates/systemd-docker.service rename to roles/docker/templates/systemd-docker.service.j2 index d20a2fbe0..b19b1caaf 100644 --- a/roles/network_plugin/calico/templates/systemd-docker.service +++ b/roles/docker/templates/systemd-docker.service.j2 @@ -29,11 +29,12 @@ ExecStart=/usr/bin/docker daemon \ $DOCKER_NETWORK_OPTIONS \ $INSECURE_REGISTRY \ $DOCKER_OPTS +TasksMax=infinity LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity -MountFlags=slave TimeoutStartSec=1min +Restart=on-abnormal [Install] WantedBy=multi-user.target diff --git a/roles/etcd/templates/etcd-docker.service.j2 b/roles/etcd/templates/etcd-docker.service.j2 index 4b6cec5c9..a37759fec 100644 --- a/roles/etcd/templates/etcd-docker.service.j2 +++ b/roles/etcd/templates/etcd-docker.service.j2 @@ -1,7 +1,7 @@ [Unit] Description=etcd docker wrapper -Wants=docker.service docker.socket -After=docker.service docker.socket +Wants=docker.socket +After=docker.service [Service] User=root @@ -18,7 +18,7 @@ ExecStart={{ docker_bin_dir | default("/usr/bin") }}/docker run --restart=always {% if etcd_after_v3 %} {{ etcd_container_bin_dir }}etcd {% endif %} -ExecStopPost=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_member_name | default("etcd-proxy") }} +ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_member_name | default("etcd-proxy") }} ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_member_name | default("etcd-proxy") }} ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_member_name | default("etcd-proxy") }} Restart=always diff --git a/roles/etcd/templates/etcd-proxy-docker.service.j2 b/roles/etcd/templates/etcd-proxy-docker.service.j2 index 939e6fd35..bf70f0e7f 100644 --- a/roles/etcd/templates/etcd-proxy-docker.service.j2 +++ b/roles/etcd/templates/etcd-proxy-docker.service.j2 @@ -1,7 +1,7 @@ [Unit] Description=etcd-proxy docker wrapper -Wants=docker.service docker.socket -After=docker.service docker.socket +Wants=docker.socket +After=docker.service [Service] User=root @@ -18,7 +18,7 @@ ExecStart={{ docker_bin_dir | default("/usr/bin") }}/docker run --restart=always {% if etcd_after_v3 %} {{ etcd_container_bin_dir }}etcd {% endif %} -ExecStopPost=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_proxy_member_name | default("etcd-proxy") }} +ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_proxy_member_name | default("etcd-proxy") }} ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_proxy_member_name | default("etcd-proxy") }} ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_proxy_member_name | default("etcd-proxy") }} Restart=always diff --git a/roles/kubernetes/node/templates/kubelet.service.j2 b/roles/kubernetes/node/templates/kubelet.service.j2 index e92f71d51..ad62d8562 100644 --- a/roles/kubernetes/node/templates/kubelet.service.j2 +++ b/roles/kubernetes/node/templates/kubelet.service.j2 @@ -3,10 +3,10 @@ Description=Kubernetes Kubelet Server Documentation=https://github.com/GoogleCloudPlatform/kubernetes {% if kube_network_plugin is defined and kube_network_plugin == "calico" %} After=docker.service docker.socket calico-node.service -Wants=docker.service docker.socket calico-node.service +Wants=docker.socket calico-node.service {% else %} -After=docker.service docker.socket -Wants=docker.service docker.socket +After=docker.service +Wants=docker.socket {% endif %} [Service] @@ -24,7 +24,7 @@ ExecStart={{ bin_dir }}/kubelet \ $KUBELET_REGISTER_NODE \ $KUBELET_NETWORK_PLUGIN \ $KUBELET_CLOUDPROVIDER -ExecStopPost=-/usr/bin/docker rm -f kubelet +ExecStartPre=-/usr/bin/docker rm -f kubelet ExecReload=/usr/bin/docker restart kubelet Restart=always RestartSec=10s diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index a4c32c1c0..510b8af82 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -10,13 +10,6 @@ - restart docker when: ansible_os_family != "CoreOS" -- name: Calico | Write docker.service systemd file - template: - src: systemd-docker.service - dest: /lib/systemd/system/docker.service - notify: restart docker - when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS" - - meta: flush_handlers - name: Calico | Install calicoctl container script diff --git a/roles/network_plugin/calico/templates/calico-node.service.j2 b/roles/network_plugin/calico/templates/calico-node.service.j2 index 152ecce64..4c709705d 100644 --- a/roles/network_plugin/calico/templates/calico-node.service.j2 +++ b/roles/network_plugin/calico/templates/calico-node.service.j2 @@ -2,7 +2,7 @@ Description=Calico per-node agent Documentation=https://github.com/projectcalico/calico-docker After=docker.service docker.socket etcd-proxy.service -Wants=docker.service docker.socket etcd-proxy.service +Wants=docker.socket etcd-proxy.service [Service] User=root diff --git a/roles/network_plugin/flannel/handlers/main.yml b/roles/network_plugin/flannel/handlers/main.yml index 1982765d4..a503569f6 100644 --- a/roles/network_plugin/flannel/handlers/main.yml +++ b/roles/network_plugin/flannel/handlers/main.yml @@ -4,22 +4,6 @@ ignore_errors: yes notify: restart docker -- name: restart docker - command: /bin/true - notify: - - Flannel | reload systemd - - Flannel | reload docker - - Flannel | reload kubelet - -- name : Flannel | reload systemd - shell: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - -- name: Flannel | reload docker - service: - name: docker - state: restarted - - name: Flannel | reload kubelet service: name: kubelet diff --git a/roles/network_plugin/flannel/tasks/main.yml b/roles/network_plugin/flannel/tasks/main.yml index 55c47d211..9588559f6 100644 --- a/roles/network_plugin/flannel/tasks/main.yml +++ b/roles/network_plugin/flannel/tasks/main.yml @@ -50,11 +50,4 @@ state: link when: ansible_os_family == "CoreOS" -- name: Flannel | Write docker.service systemd file - template: - src: systemd-docker.service - dest: /lib/systemd/system/docker.service - notify: restart docker - when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS" - - meta: flush_handlers diff --git a/roles/network_plugin/flannel/templates/systemd-docker.service b/roles/network_plugin/flannel/templates/systemd-docker.service deleted file mode 100644 index 21790dd6f..000000000 --- a/roles/network_plugin/flannel/templates/systemd-docker.service +++ /dev/null @@ -1,32 +0,0 @@ -[Unit] -Description=Docker Application Container Engine -Documentation=http://docs.docker.com -{% if ansible_os_family == "RedHat" %} -After=network.target docker-storage-setup.service -Wants=docker-storage-setup.service -{% elif ansible_os_family == "Debian" %} -After=network.target docker.socket -Wants=docker.socket -{% endif %} - -[Service] -Type=notify -EnvironmentFile=-/etc/default/docker -Environment=GOTRACEBACK=crash -ExecReload=/bin/kill -s HUP $MAINPID -Delegate=yes -KillMode=process -ExecStart=/usr/bin/docker daemon \ - $OPTIONS \ - $DOCKER_STORAGE_OPTIONS \ - $DOCKER_NETWORK_OPTIONS \ - $INSECURE_REGISTRY \ - $DOCKER_OPTS -LimitNOFILE=1048576 -LimitNPROC=1048576 -LimitCORE=infinity -MountFlags=slave -TimeoutStartSec=1min - -[Install] -WantedBy=multi-user.target diff --git a/roles/network_plugin/meta/main.yml b/roles/network_plugin/meta/main.yml index 736262ab0..0dd36511b 100644 --- a/roles/network_plugin/meta/main.yml +++ b/roles/network_plugin/meta/main.yml @@ -6,3 +6,4 @@ dependencies: when: kube_network_plugin == 'flannel' - role: network_plugin/weave when: kube_network_plugin == 'weave' + - role: docker diff --git a/roles/network_plugin/weave/handlers/main.yml b/roles/network_plugin/weave/handlers/main.yml index f983ee579..e821e989b 100644 --- a/roles/network_plugin/weave/handlers/main.yml +++ b/roles/network_plugin/weave/handlers/main.yml @@ -1,10 +1,4 @@ --- -- name: Weave | restart docker - command: /bin/true - notify: - - Weave | reload systemd - - Weave | reload docker - - name: restart weave command: /bin/true notify: @@ -27,11 +21,6 @@ - Weave | reload systemd - reload weaveexpose -- name: Weave | reload docker - service: - name: docker - state: restarted - - name: reload weave service: name: weave diff --git a/roles/network_plugin/weave/tasks/main.yml b/roles/network_plugin/weave/tasks/main.yml index 5703dde97..eb56d8c9b 100644 --- a/roles/network_plugin/weave/tasks/main.yml +++ b/roles/network_plugin/weave/tasks/main.yml @@ -7,14 +7,7 @@ group: root mode: 0644 notify: - - Weave | restart docker - -- name: Write docker.service systemd file - template: - src: systemd-docker.service - dest: /lib/systemd/system/docker.service - notify: Weave | restart docker - when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS" + - restart docker - name: Weave | Install weave command: rsync -piu "{{ local_release_dir }}/weave/bin/weave" "{{ bin_dir }}/weave" diff --git a/roles/network_plugin/weave/templates/systemd-docker.service b/roles/network_plugin/weave/templates/systemd-docker.service deleted file mode 100644 index 96dd6cd05..000000000 --- a/roles/network_plugin/weave/templates/systemd-docker.service +++ /dev/null @@ -1,32 +0,0 @@ -[Unit] -Description=Docker Application Container Engine -Documentation=http://docs.docker.com -{% if ansible_os_family == "RedHat" %} -After=network.target -Wants=docker-storage-setup.service -{% elif ansible_os_family == "Debian" %} -After=network.target docker.socket -Wants=docker.socket -{% endif %} - -[Service] -Type=notify -EnvironmentFile=-/etc/default/docker -Environment=GOTRACEBACK=crash -ExecReload=/bin/kill -s HUP $MAINPID -Delegate=yes -KillMode=process -ExecStart=/usr/bin/docker daemon \ - $OPTIONS \ - $DOCKER_STORAGE_OPTIONS \ - $DOCKER_NETWORK_OPTIONS \ - $INSECURE_REGISTRY \ - $DOCKER_OPTS -LimitNOFILE=1048576 -LimitNPROC=1048576 -LimitCORE=infinity -MountFlags=slave -TimeoutStartSec=1min - -[Install] -WantedBy=multi-user.target diff --git a/roles/network_plugin/weave/templates/weave.service.j2 b/roles/network_plugin/weave/templates/weave.service.j2 index 46d9434fe..e901c34e7 100644 --- a/roles/network_plugin/weave/templates/weave.service.j2 +++ b/roles/network_plugin/weave/templates/weave.service.j2 @@ -1,7 +1,7 @@ [Unit] Description=Weave Network Documentation=http://docs.weave.works/weave/latest_release/ -Wants=docker.service docker.socket +Wants=docker.socket After=docker.service docker.socket [Service] diff --git a/roles/network_plugin/weave/templates/weaveexpose.service.j2 b/roles/network_plugin/weave/templates/weaveexpose.service.j2 index 912ed1fee..f9931696e 100644 --- a/roles/network_plugin/weave/templates/weaveexpose.service.j2 +++ b/roles/network_plugin/weave/templates/weaveexpose.service.j2 @@ -1,6 +1,6 @@ [Unit] Documentation=http://docs.weave.works/ -Wants=docker.service docker.socket weave.service +Wants=docker.socket weave.service After=docker.service docker.socket weave.service [Service] diff --git a/roles/network_plugin/weave/templates/weaveproxy.service.j2 b/roles/network_plugin/weave/templates/weaveproxy.service.j2 index f37120f1c..29197296f 100644 --- a/roles/network_plugin/weave/templates/weaveproxy.service.j2 +++ b/roles/network_plugin/weave/templates/weaveproxy.service.j2 @@ -1,7 +1,7 @@ [Unit] Description=Weave proxy for Docker API Documentation=http://docs.weave.works/ -Wants=docker.service docker.socket +Wants=docker.socket After=docker.service docker.socket [Service] From e38258381fd0d111cd339ce3e334920d5898dbe9 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Mon, 1 Aug 2016 16:12:23 +0300 Subject: [PATCH 056/695] Wait for static pods when setting up Fixes #390 --- roles/kubernetes/master/handlers/main.yml | 37 +++++++++++++++++++++-- roles/kubernetes/master/tasks/main.yml | 9 ++---- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/roles/kubernetes/master/handlers/main.yml b/roles/kubernetes/master/handlers/main.yml index a4082887b..87e3adc69 100644 --- a/roles/kubernetes/master/handlers/main.yml +++ b/roles/kubernetes/master/handlers/main.yml @@ -1,4 +1,35 @@ --- -- name: restart kube-apiserver - set_fact: - restart_apimaster: True +- name: Master | restart kubelet + command: /bin/true + notify: + - Kubelet | reload systemd + - Kubelet | reload kubelet + +- name: wait for master static pods + command: /bin/true + notify: + - wait for kube-scheduler + - wait for kube-controller-manager + +- name: Master | reload systemd + command: systemctl daemon-reload + when: ansible_service_mgr == "systemd" + +- name: Master | reload kubelet + service: + name: kubelet + state: restarted + +- name: wait for kube-scheduler + uri: url=http://localhost:10251/healthz + register: scheduler_result + until: scheduler_result.status == 200 + retries: 15 + delay: 5 + +- name: wait for kube-controller-manager + uri: url=http://localhost:10252/healthz + register: controller_manager_result + until: controller_manager_result.status == 200 + retries: 15 + delay: 5 diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml index fe984ce17..9140ef36c 100644 --- a/roles/kubernetes/master/tasks/main.yml +++ b/roles/kubernetes/master/tasks/main.yml @@ -19,12 +19,7 @@ src: manifests/kube-apiserver.manifest.j2 dest: "{{ kube_manifest_dir }}/kube-apiserver.manifest" register: apiserver_manifest - -- name: restart kubelet - service: - name: kubelet - state: restarted - when: apiserver_manifest.changed + notify: Master | restart kubelet - name: wait for the apiserver to be running uri: url=http://localhost:8080/healthz @@ -58,8 +53,10 @@ template: src: manifests/kube-controller-manager.manifest.j2 dest: "{{ kube_manifest_dir }}/kube-controller-manager.manifest" + notify: wait for kube-controller-manager - name: Write kube-scheduler manifest template: src: manifests/kube-scheduler.manifest.j2 dest: "{{ kube_manifest_dir }}/kube-scheduler.manifest" + notify: wait for kube-scheduler From e6cfbe42db9e2cf664db689d44873ff42e0f12f5 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Wed, 3 Aug 2016 12:42:52 +0200 Subject: [PATCH 057/695] Revert "Merge pull request #393 from bogdando/ci_changes" This reverts commit 4662b41de62b6197e1c62aff2def48b761c6b756, reversing changes made to 4fb4ac120b9433109924b17701e822dde0d39fbf. --- .travis.yml | 12 ++++-------- tests/templates/inventory-gce.j2 | 11 ----------- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/.travis.yml b/.travis.yml index 126e579fb..6c26cd110 100644 --- a/.travis.yml +++ b/.travis.yml @@ -72,22 +72,19 @@ env: CLOUD_IMAGE=ubuntu-1604-xenial CLOUD_REGION=asia-east1-c - # Extra cases for separated roles + # Ubuntu 15.10 - >- KUBE_NETWORK_PLUGIN=flannel - CLOUD_IMAGE=rhel-7-sudo + CLOUD_IMAGE=ubuntu-1510-wily CLOUD_REGION=europe-west1-b - MODE="separate" - >- KUBE_NETWORK_PLUGIN=calico - CLOUD_IMAGE=ubuntu-1604-xenial + CLOUD_IMAGE=ubuntu-1510-wily CLOUD_REGION=us-central1-a - MODE="separate" - >- KUBE_NETWORK_PLUGIN=weave - CLOUD_IMAGE=debian-8-kubespray + CLOUD_IMAGE=ubuntu-1510-wily CLOUD_REGION=us-east1-d - MODE="separate" before_install: @@ -116,7 +113,6 @@ before_script: script: - > $HOME/.local/bin/ansible-playbook tests/cloud_playbooks/create-gce.yml -i tests/local_inventory/hosts -c local $LOG_LEVEL - -e mode=${MODE} -e test_id=${TEST_ID} -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} -e gce_project_id=${GCE_PROJECT_ID} diff --git a/tests/templates/inventory-gce.j2 b/tests/templates/inventory-gce.j2 index ef2ae06e6..72ad469de 100644 --- a/tests/templates/inventory-gce.j2 +++ b/tests/templates/inventory-gce.j2 @@ -2,16 +2,6 @@ node1 ansible_ssh_host={{gce.instance_data[0].public_ip}} node2 ansible_ssh_host={{gce.instance_data[1].public_ip}} node3 ansible_ssh_host={{gce.instance_data[2].public_ip}} -{% if mode == "separate" %} -[kube-master] -node1 - -[kube-node] -node2 - -[etcd] -node3 -{% else %} [kube-master] node1 node2 @@ -24,7 +14,6 @@ node3 [etcd] node1 node2 -{% endif %} [k8s-cluster:children] kube-node From acae5d4286b4b068d9378af87badf3d2d0a09baa Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Fri, 5 Aug 2016 16:55:04 +0400 Subject: [PATCH 058/695] Check dnsmasq on first kube-node kube-masters without kube-node role will not run kube-proxy, and therefore can't check if dnsmasq is running. Fixes #368 --- roles/dnsmasq/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index 87a89e293..62fe084af 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -55,7 +55,7 @@ host: "{{dns_server}}" port: 53 delay: 5 - when: inventory_hostname == groups['kube-master'][0] + when: inventory_hostname == groups['kube-node'][0] - name: check resolvconf From d2c57142d3aaea86d559773d7660859a29935284 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Mon, 8 Aug 2016 12:06:32 +0200 Subject: [PATCH 059/695] Fix calico-node service unit Signed-off-by: Bogdan Dobrelya --- roles/network_plugin/calico/templates/calico-node.service.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/network_plugin/calico/templates/calico-node.service.j2 b/roles/network_plugin/calico/templates/calico-node.service.j2 index 4c709705d..cd4f28679 100644 --- a/roles/network_plugin/calico/templates/calico-node.service.j2 +++ b/roles/network_plugin/calico/templates/calico-node.service.j2 @@ -13,7 +13,7 @@ ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4. ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4.address) }} --detach=false {% endif %} Restart=always -Restart=10 +RestartSec=10s [Install] WantedBy=multi-user.target From e727bd52f1962556fe40ba673abebef312e0e2f3 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Mon, 8 Aug 2016 13:59:20 +0300 Subject: [PATCH 060/695] Add option to disable ipv6 dns lookup New variable disable_ipv6_dns in kubernetes/preinstall. --- roles/kubernetes/preinstall/defaults/main.yml | 4 ++++ roles/kubernetes/preinstall/tasks/main.yml | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml index 1fb537b89..f419a091c 100644 --- a/roles/kubernetes/preinstall/defaults/main.yml +++ b/roles/kubernetes/preinstall/defaults/main.yml @@ -29,6 +29,10 @@ common_required_pkgs: - rsync - bash-completion +# Set to true if your network does not support IPv6 +# This maybe necessary for pulling Docker images from +# GCE docker repository +disable_ipv6_dns: false # For the openstack integration kubelet will need credentials to access diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index 442fadfd7..dcc925627 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -97,6 +97,14 @@ with_items: "{{required_pkgs | default([]) | union(common_required_pkgs|default([]))}}" when: ansible_os_family != "CoreOS" +- name: Disable IPv6 DNS lookup + lineinfile: + dest: /etc/gai.conf + line: "precedence ::ffff:0:0/96 100" + state: present + backup: yes + when: disable_ipv6_dns and ansible_os_family != "CoreOS" + # Todo : selinux configuration - name: Set selinux policy to permissive selinux: policy=targeted state=permissive From 6cb9bd2619b11d2fab2f9608cba70a9e74904483 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Mon, 8 Aug 2016 13:38:25 +0200 Subject: [PATCH 061/695] Add a diagnostic info collect playbook Signed-off-by: Bogdan Dobrelya --- .travis.yml | 2 ++ scripts/collect-info.yaml | 71 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 scripts/collect-info.yaml diff --git a/.travis.yml b/.travis.yml index 6c26cd110..2b90a2b64 100644 --- a/.travis.yml +++ b/.travis.yml @@ -131,6 +131,8 @@ script: - $HOME/.local/bin/ansible-playbook -i inventory/inventory.ini -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root tests/testcases/020_check-create-pod.yml $LOG_LEVEL ## Ping the between 2 pod - $HOME/.local/bin/ansible-playbook -i inventory/inventory.ini -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root tests/testcases/030_check-network.yml $LOG_LEVEL + ## Collect env info, enable it once GCS configured, see https://docs.travis-ci.com/user/deployment/gcs +# - $HOME/.local/bin/ansible-playbook -i inventory/inventory.ini -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root scritps/collect-info.yaml after_script: - > diff --git a/scripts/collect-info.yaml b/scripts/collect-info.yaml new file mode 100644 index 000000000..95eb7a9d8 --- /dev/null +++ b/scripts/collect-info.yaml @@ -0,0 +1,71 @@ +--- +- hosts: all + become: true + gather_facts: no + + vars: + debug: false + commands: + - name: git_info + cmd: cat {kargo,.}/.git/logs/HEAD + - name: timedate_info + cmd: timedatectl status + - name: boots_info + cmd: journalctl --list-boots --utc --no-pager + - name: space_info + cmd: df -h + - name: kernel_info + cmd: uname -r + - name: distro_info + cmd: cat /etc/issue.net + - name: docker_info + cmd: docker info + - name: ip_info + cmd: ip -4 -o a + - name: route_info + cmd: ip ro + - name: proc_info + cmd: ps auxf | grep -v ]$ + - name: systemctl_info + cmd: systemctl status + - name: k8s_info + cmd: kubectl get all --all-namespaces -o wide + - name: k8s_dump_info + cmd: kubectl get all --all-namespaces -o yaml + - name: errors_info + cmd: journalctl -p err --utc --no-pager + + logs: + - /var/log/ansible.log + - /var/log/ansible/ansible.log + - /var/log/syslog + - /var/log/daemon.log + - /var/log/kern.log + - inventory/inventory.ini + - cluster.yml + - kargo/kargo_default_ubuntu.yaml + - kargo/kargo_default_debian.yaml + - kargo/kargo_default_common.yaml + - kargo/inventory/inventory.cfg + + tasks: + - name: Storing commands output + shell: "{{ item.cmd }} 2>&1 | tee {{ item.name }}" + register: output + ignore_errors: true + with_items: "{{commands}}" + + - debug: var=item + with_items: output.results + when: debug + + - name: Fetch results + fetch: src={{ item.name }} dest=/tmp/collect-info/commands + with_items: "{{commands}}" + + - name: Fetch logs + fetch: src={{ item }} dest=/tmp/collect-info/logs + with_items: "{{logs}}" + + - name: Pack results and logs + local_action: shell GZIP=-9 tar cvzf logs.tar.gz -C /tmp collect-info From 252a30aee8a7148aff5a54f20a079384ac1f8187 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Mon, 8 Aug 2016 16:52:08 +0200 Subject: [PATCH 062/695] Collect ansible logs as artifacts Extends https://github.com/kubespray/kargo/pull/406 Signed-off-by: Bogdan Dobrelya --- .travis.yml | 2 ++ scripts/configure-logs.yaml | 39 +++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 scripts/configure-logs.yaml diff --git a/.travis.yml b/.travis.yml index 2b90a2b64..998a0aa31 100644 --- a/.travis.yml +++ b/.travis.yml @@ -109,6 +109,8 @@ before_script: - $HOME/.local/bin/ansible-playbook --version - cp tests/ansible.cfg . # - "echo $HOME/.local/bin/ansible-playbook -i inventory.ini -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root -e '{\"cloud_provider\": true}' $LOG_LEVEL -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} setup-kubernetes/cluster.yml" + ## Configure ansible deployment logs to be collected as an artifact. Enable when GCS configured, see https://docs.travis-ci.com/user/deployment/gcs +# - $HOME/.local/bin/ansible-playbook -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root scritps/configure-logs.yaml script: - > diff --git a/scripts/configure-logs.yaml b/scripts/configure-logs.yaml new file mode 100644 index 000000000..d093e9279 --- /dev/null +++ b/scripts/configure-logs.yaml @@ -0,0 +1,39 @@ +--- +- hosts: localhost + become: true + gather_facts: no + + vars: + log_path: /var/log/ansible/ + conf_file: /etc/ansible/ansible.cfg + human_readable_plugin: false + callback_plugin_path: /usr/share/ansible/plugins/callback + + tasks: + - name: LOGS | ensure log path + file: path="{{log_path}}" state=directory owner={{ansible_ssh_user}} + + - name: LOGS | ensure plugin path + file: path="{{callback_plugin_path}}" state=directory owner={{ansible_ssh_user}} + when: human_readable_plugin + + - name: LOGS | get plugin + git: repo=https://gist.github.com/cd706de198c85a8255f6.git dest=/tmp/cd706de198c85a8255f6 + when: human_readable_plugin + + - name: LOGS | install plugin + copy: src=/tmp/cd706de198c85a8255f6/human_log.py dest="{{callback_plugin_path}}" + when: human_readable_plugin + + - name: LOGS | config + lineinfile: + line: "log_path={{log_path}}/ansible.log" + regexp: "^#log_path|^log_path" + dest: "{{conf_file}}" + + - name: LOGS | callback plugin + lineinfile: + line: "callback_plugins={{callback_plugin_path}}" + regexp: "^#callback_plugins|^callback_plugins" + dest: "{{conf_file}}" + when: human_readable_plugin From f073ee91ea3c452787387c42a1adb8033cebb503 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Wed, 10 Aug 2016 13:58:10 +0400 Subject: [PATCH 063/695] Copy hyperkube cni plugins optionally for calico deployment Hyperkube from CoreOS now ships with all binaries required for calico and flannel (but not weave). It simplifies deployment for some network plugin scenarios to not download CNI images. TODO: Optionally disable downloading calico to /opt/cni/bin --- roles/network_plugin/calico/defaults/main.yml | 5 +++++ roles/network_plugin/calico/tasks/main.yml | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/roles/network_plugin/calico/defaults/main.yml b/roles/network_plugin/calico/defaults/main.yml index 7482970cd..8d0759ffb 100644 --- a/roles/network_plugin/calico/defaults/main.yml +++ b/roles/network_plugin/calico/defaults/main.yml @@ -9,3 +9,8 @@ ipip: false # cloud_provider: calicoctl_image_repo: calico/ctl calicoctl_image_tag: "{{ calico_version }}" + +# Set to true if your Hyperkube has all required components to run +# calico. This is required in order to run canalized calico. +use_hyperkube_cni: false + diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index 510b8af82..c421300ee 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -25,10 +25,17 @@ - name: Calico | Install calico cni bin command: rsync -piu "{{ local_release_dir }}/calico/bin/calico" "/opt/cni/bin/calico" changed_when: false + when: not use_hyperkube_cni - name: Calico | Install calico-ipam cni bin command: rsync -piu "{{ local_release_dir }}/calico/bin/calico" "/opt/cni/bin/calico-ipam" changed_when: false + when: not use_hyperkube_cni + +- name: Calico | Copy cni plugins from hyperkube + command: "/usr/bin/docker run --rm -v /opt/cni/bin:/cnibindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp -r /opt/cni/bin/. /cnibindir/" + changed_when: false + when: use_hyperkube_cni - name: Calico | wait for etcd uri: url=http://localhost:2379/health From 0fa90ec9e8820aae5b1b4d7b21db9d248bd800e7 Mon Sep 17 00:00:00 2001 From: dis Date: Wed, 10 Aug 2016 17:22:33 +0300 Subject: [PATCH 064/695] Fix resolvconf executable discovery If resolvconf was installed and then removed, the file /etc/resolvconf/resolv.conf.d/head remains in the filesystem - change discovery of 'resolvconf' executable to check if it can be located with 'which resolvconf' command or not. --- roles/dnsmasq/tasks/main.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index 62fe084af..526e162ae 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -59,13 +59,14 @@ - name: check resolvconf - stat: path=/etc/resolvconf/resolv.conf.d/head + shell: which resolvconf register: resolvconf + ignore_errors: yes - name: target resolv.conf file set_fact: resolvconffile: >- - {%- if resolvconf.stat.exists == True -%}/etc/resolvconf/resolv.conf.d/head{%- else -%}/etc/resolv.conf{%- endif -%} + {%- if resolvconf.rc == 0 -%}/etc/resolvconf/resolv.conf.d/head{%- else -%}/etc/resolv.conf{%- endif -%} - name: Add search resolv.conf lineinfile: @@ -109,6 +110,6 @@ - name: update resolvconf command: resolvconf -u changed_when: False - when: resolvconf.stat.exists == True + when: resolvconf.rc == 0 - meta: flush_handlers From 4268996680df4f3c5c2550515679cbc587164fb3 Mon Sep 17 00:00:00 2001 From: Ihor Dvoretskyi Date: Thu, 11 Aug 2016 12:33:29 +0300 Subject: [PATCH 065/695] OpenStack minor fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1c9f0c1a..10d135565 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ To deploy the cluster you can use : * [CoreOS bootstrap](docs/coreos.md) * [Ansible variables](docs/ansible.md) * [Cloud providers](docs/cloud.md) -* [Openstack](docs/openstack.md) +* [OpenStack](docs/openstack.md) * [Network plugins](#network-plugins) * [Roadmap](docs/roadmap.md) From 298ab8e89e2d9094abf1cc929d2b70d2aeeb59fd Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Fri, 12 Aug 2016 10:06:31 -0400 Subject: [PATCH 066/695] force fact check of all nodes first thing --- cluster.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cluster.yml b/cluster.yml index f87c39579..862267098 100644 --- a/cluster.yml +++ b/cluster.yml @@ -1,4 +1,7 @@ --- +- hosts: all + gather_facts: true + - hosts: etcd roles: - { role: kubernetes/preinstall, tags: preinstall } From 0c953101ff17e66fc9c5844a6a13c3d525c1628f Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Mon, 15 Aug 2016 12:25:35 +0300 Subject: [PATCH 067/695] Fix init scripts for etcd. Fixes #383 Fixes Ubuntu 14.04 deployment of etcd. --- Vagrantfile | 2 +- roles/etcd/templates/deb-etcd-docker.initd.j2 | 11 +++++++---- roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 | 11 +++++++---- roles/kubernetes/node/templates/deb-kubelet.initd.j2 | 4 +++- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index ac8b91827..e7efdda57 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -76,7 +76,7 @@ Vagrant.configure("2") do |config| ip = "#{$subnet}.#{i+100}" host_vars[vm_name] = { "ip" => ip, - "access_ip" => ip, + #"access_ip" => ip, "flannel_interface" => ip, "flannel_backend_type" => "host-gw", "local_release_dir" => "/vagrant/temp", diff --git a/roles/etcd/templates/deb-etcd-docker.initd.j2 b/roles/etcd/templates/deb-etcd-docker.initd.j2 index d2528b034..a83aae184 100644 --- a/roles/etcd/templates/deb-etcd-docker.initd.j2 +++ b/roles/etcd/templates/deb-etcd-docker.initd.j2 @@ -16,7 +16,8 @@ PATH=/sbin:/usr/sbin:/bin/:/usr/bin DESC="etcd k/v store" NAME=etcd DAEMON={{ docker_bin_dir | default("/usr/bin") }}/docker -DAEMON_ARGS='--restart=always --env-file=/etc/etcd.env \ +DAEMON_EXEC=`basename $DAEMON` +DAEMON_ARGS="run --restart=always --env-file=/etc/etcd.env \ --net=host \ -v /usr/share/ca-certificates/:/etc/ssl/certs:ro \ -v /var/lib/etcd:/var/lib/etcd:rw \ @@ -24,10 +25,10 @@ DAEMON_ARGS='--restart=always --env-file=/etc/etcd.env \ {{ etcd_image_repo }}:{{ etcd_image_tag }} \ {% if etcd_after_v3 %} {{ etcd_container_bin_dir }}etcd -{% endif %}' +{% endif %}" SCRIPTNAME=/etc/init.d/$NAME -DAEMON_USER=etcd +DAEMON_USER=root STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" PID=/var/run/etcd.pid @@ -48,6 +49,8 @@ do_status() # do_start() { + {{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_member_name | default("etcd-proxy") }} &>/dev/null || true + sleep 1 start-stop-daemon --background --start --quiet --make-pidfile --pidfile $PID --user $DAEMON_USER --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 @@ -58,7 +61,7 @@ do_start() # do_stop() { - start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $NAME + start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $DAEMON_EXEC RETVAL="$?" sleep 1 diff --git a/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 b/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 index 592361351..ad0338a09 100644 --- a/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 +++ b/roles/etcd/templates/deb-etcd-proxy-docker.initd.j2 @@ -16,7 +16,8 @@ PATH=/sbin:/usr/sbin:/bin/:/usr/bin DESC="etcd-proxy" NAME=etcd-proxy DAEMON={{ docker_bin_dir | default("/usr/bin") }}/docker -DAEMON_ARGS='--restart=always --env-file=/etc/etcd-proxy.env \ +DAEMON_EXEC=`basename $DAEMON` +DAEMON_ARGS="run --restart=always --env-file=/etc/etcd-proxy.env \ --net=host \ --stop-signal=SIGKILL \ -v /usr/share/ca-certificates/:/etc/ssl/certs:ro \ @@ -24,11 +25,11 @@ DAEMON_ARGS='--restart=always --env-file=/etc/etcd-proxy.env \ {{ etcd_image_repo }}:{{ etcd_image_tag }} \ {% if etcd_after_v3 %} {{ etcd_container_bin_dir }}etcd -{% endif %}' +{% endif %}" SCRIPTNAME=/etc/init.d/$NAME -DAEMON_USER=etcd +DAEMON_USER=root STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" PID=/var/run/etcd-proxy.pid @@ -49,6 +50,8 @@ do_status() # do_start() { + {{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_proxy_member_name | default("etcd-proxy") }} &>/dev/null || true + sleep 1 start-stop-daemon --background --start --quiet --make-pidfile --pidfile $PID --user $DAEMON_USER --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 @@ -59,7 +62,7 @@ do_start() # do_stop() { - start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $NAME + start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $DAEMON_EXEC RETVAL="$?" sleep 1 diff --git a/roles/kubernetes/node/templates/deb-kubelet.initd.j2 b/roles/kubernetes/node/templates/deb-kubelet.initd.j2 index 65fd537f0..5d5184efe 100644 --- a/roles/kubernetes/node/templates/deb-kubelet.initd.j2 +++ b/roles/kubernetes/node/templates/deb-kubelet.initd.j2 @@ -1,7 +1,7 @@ #!/bin/bash # ### BEGIN INIT INFO -# Provides: kubelet +# Provides: kubelet # Required-Start: $local_fs $network $syslog # Required-Stop: # Default-Start: 2 3 4 5 @@ -39,6 +39,8 @@ DAEMON_USER=root # do_start() { + /usr/bin/docker rm -f kubelet &>/dev/null || true + sleep 1 # Return # 0 if daemon has been started # 1 if daemon was already running From 5fbfa1481e2905edb135fe31a05f7afc0ea6f28e Mon Sep 17 00:00:00 2001 From: Smana Date: Tue, 9 Aug 2016 21:06:04 +0200 Subject: [PATCH 068/695] files needed to move kargo to k8s --- CONTRIBUTING.md | 10 ++++++++ OWNERS | 6 +++++ RELEASE.md | 9 +++++++ code-of-conduct.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 CONTRIBUTING.md create mode 100644 OWNERS create mode 100644 RELEASE.md create mode 100644 code-of-conduct.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..1d3b9340d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,10 @@ +# Contributing guidelines + +## How to become a contributor and submit your own code + +### Contributing A Patch + +1. Submit an issue describing your proposed change to the repo in question. +2. The [repo owners](OWNERS) will respond to your issue promptly. +3. Fork the desired repo, develop and test your code changes. +4. Submit a pull request. diff --git a/OWNERS b/OWNERS new file mode 100644 index 000000000..583a0314b --- /dev/null +++ b/OWNERS @@ -0,0 +1,6 @@ +# See the OWNERS file documentation: +# https://github.com/kubernetes/kubernetes/blob/master/docs/devel/owners.md + +owners: + - Smana + - ant31 diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 000000000..900fffb39 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,9 @@ +# Release Process + +The Kargo Project is released on an as-needed basis. The process is as follows: + +1. An issue is proposing a new release with a changelog since the last release +2. At least on of the [OWNERS](OWNERS) must LGTM this release +3. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION` +4. The release issue is closed +5. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] kargo $VERSION is released` diff --git a/code-of-conduct.md b/code-of-conduct.md new file mode 100644 index 000000000..60270914a --- /dev/null +++ b/code-of-conduct.md @@ -0,0 +1,59 @@ +## Kubernetes Community Code of Conduct + +### Contributor Code of Conduct + +As contributors and maintainers of this project, and in the interest of fostering +an open and welcoming community, we pledge to respect all people who contribute +through reporting issues, posting feature requests, updating documentation, +submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free experience for +everyone, regardless of level of experience, gender, gender identity and expression, +sexual orientation, disability, personal appearance, body size, race, ethnicity, age, +religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, such as physical or electronic addresses, + without explicit permission +* Other unethical or unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are not +aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers +commit themselves to fairly and consistently applying these principles to every aspect +of managing this project. Project maintainers who do not follow or enforce the Code of +Conduct may be permanently removed from the project team. + +This code of conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by +opening an issue or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the Contributor Covenant +(http://contributor-covenant.org), version 1.2.0, available at +http://contributor-covenant.org/version/1/2/0/ + +### Kubernetes Events Code of Conduct + +Kubernetes events are working conferences intended for professional networking and collaboration in the +Kubernetes community. Attendees are expected to behave according to professional standards and in accordance +with their employer's policies on appropriate workplace behavior. + +While at Kubernetes events or related social networking opportunities, attendees should not engage in +discriminatory or offensive speech or actions regarding gender, sexuality, race, or religion. Speakers should +be especially aware of these concerns. + +The Kubernetes team does not condone any statements by speakers contrary to these standards. The Kubernetes +team reserves the right to deny entrance and/or eject from an event (without refund) any individual found to +be engaging in discriminatory or offensive speech or actions. + +Please bring any concerns to to the immediate attention of Kubernetes event staff + + +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/code-of-conduct.md?pixel)]() From d591b59205388296d30050b742735d36b17ac2fe Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Thu, 11 Aug 2016 23:14:11 +0400 Subject: [PATCH 069/695] Fix etcd play to only run on non-k8s-cluster nodes This decreases the time required to deploy a cluster with 3 nodes, but none are standalone etcd roles. --- cluster.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cluster.yml b/cluster.yml index 862267098..aa79ff5a5 100644 --- a/cluster.yml +++ b/cluster.yml @@ -2,11 +2,11 @@ - hosts: all gather_facts: true -- hosts: etcd +- hosts: etcd:!k8s-cluster roles: - { role: kubernetes/preinstall, tags: preinstall } - - { role: etcd, tags: etcd } - { role: docker, tags: docker } + - { role: etcd, tags: etcd } - hosts: k8s-cluster roles: From 6f07da9f4138fe6f150a9f1c717a0e5709f55bf9 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Thu, 18 Aug 2016 19:00:05 +0300 Subject: [PATCH 070/695] Restart kubelet if launcher changed Fixes #409 --- roles/kubernetes/node/tasks/install.yml | 3 +-- roles/kubernetes/node/tasks/main.yml | 5 ----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/roles/kubernetes/node/tasks/install.yml b/roles/kubernetes/node/tasks/install.yml index 23e482bc7..6b5fe5bb4 100644 --- a/roles/kubernetes/node/tasks/install.yml +++ b/roles/kubernetes/node/tasks/install.yml @@ -16,5 +16,4 @@ - name: install | Install kubelet launch script template: src=kubelet-container.j2 dest="{{ bin_dir }}/kubelet" owner=kube mode=0755 backup=yes - register: kubelet_launcher - changed_when: false + notify: restart kubelet diff --git a/roles/kubernetes/node/tasks/main.yml b/roles/kubernetes/node/tasks/main.yml index 0aa1957ea..9c14e7a4c 100644 --- a/roles/kubernetes/node/tasks/main.yml +++ b/roles/kubernetes/node/tasks/main.yml @@ -23,11 +23,6 @@ src: manifests/kube-proxy.manifest.j2 dest: "{{ kube_manifest_dir }}/kube-proxy.manifest" -- name: Restart kubelet if binary changed - command: /bin/true - notify: restart kubelet - when: kubelet_launcher.changed - # reload-systemd - meta: flush_handlers From 977f82c32c3e92155538af87842e6b4fb3a59141 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Thu, 18 Aug 2016 17:14:52 +0200 Subject: [PATCH 071/695] Fix resolv.conf search/nameserver Rename nodnsupdate hook the resolvconf hook to be sourced always before it. Ensure dhclient restarted via network restart to apply the nodnsupdate hook. Ensure additional nameserver/search, if defined as vars. Signed-off-by: Bogdan Dobrelya --- roles/dnsmasq/defaults/main.yml | 12 ++++++++++++ roles/dnsmasq/handlers/main.yml | 10 ++++++++++ roles/dnsmasq/tasks/main.yml | 19 +++++++++++++++---- 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 roles/dnsmasq/defaults/main.yml create mode 100644 roles/dnsmasq/handlers/main.yml diff --git a/roles/dnsmasq/defaults/main.yml b/roles/dnsmasq/defaults/main.yml new file mode 100644 index 000000000..48b52c121 --- /dev/null +++ b/roles/dnsmasq/defaults/main.yml @@ -0,0 +1,12 @@ +--- +# Existing search/nameserver resolvconf entries will be purged and +# ensured by this additional data: + +# Max of 4 names is allowed and no more than 256 - 17 chars total +# (a 2 is reserved for the 'default.svc.' and'svc.') +#searchdomains: +# - foo.bar.lc + +# Max of 2 is allowed here (a 1 is reserved for the dns_server) +#nameservers: +# - 127.0.0.1 diff --git a/roles/dnsmasq/handlers/main.yml b/roles/dnsmasq/handlers/main.yml new file mode 100644 index 000000000..95cd80cfc --- /dev/null +++ b/roles/dnsmasq/handlers/main.yml @@ -0,0 +1,10 @@ +- name: Dnsmasq | restart network + service: + name: >- + {% if ansible_os_family == "RedHat" -%} + network + {%- elif ansible_os_family == "Debian" -%} + networking + {%- endif %} + state: restarted + when: ansible_os_family != "CoreOS" diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index 526e162ae..e8dc78aa8 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -68,9 +68,17 @@ resolvconffile: >- {%- if resolvconf.rc == 0 -%}/etc/resolvconf/resolv.conf.d/head{%- else -%}/etc/resolv.conf{%- endif -%} +- name: generate search domains to resolvconf + set_fact: + searchentries="{{ ([ 'default.svc.' + dns_domain, 'svc.' + dns_domain ] + searchdomains|default([])) | join(' ') }}" + +- name: generate nameservers to resolvconf + set_fact: + nameserverentries="{{ nameservers|default([]) + [ dns_server ] }}" + - name: Add search resolv.conf lineinfile: - line: "search {{ [ 'default.svc.' + dns_domain, 'svc.' + dns_domain, dns_domain ] | join(' ') }}" + line: "search {{searchentries}}" dest: "{{resolvconffile}}" state: present insertbefore: BOF @@ -79,12 +87,13 @@ - name: Add local dnsmasq to resolv.conf lineinfile: - line: "nameserver {{dns_server}}" + line: "nameserver {{item}}" dest: "{{resolvconffile}}" state: present insertafter: "^search.*$" backup: yes follow: yes + with_items: "{{nameserverentries}}" - name: Add options to resolv.conf lineinfile: @@ -100,11 +109,13 @@ - attempts:2 - name: disable resolv.conf modification by dhclient - copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate mode=0755 backup=yes + copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/znodnsupdate mode=0755 backup=yes + notify: Dnsmasq | restart network when: ansible_os_family == "Debian" - name: disable resolv.conf modification by dhclient - copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/nodnsupdate mode=u+x backup=yes + copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/znodnsupdate mode=u+x backup=yes + notify: Dnsmasq | restart network when: ansible_os_family == "RedHat" - name: update resolvconf From 234608433e1a6210d78562c877628903b98ac3b1 Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Mon, 22 Aug 2016 16:09:33 -0400 Subject: [PATCH 072/695] remove host ca-certs, as they aren't necessary --- .../templates/manifests/kube-controller-manager.manifest.j2 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 index f22f49de8..32eeca0b4 100644 --- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 @@ -32,9 +32,6 @@ spec: - mountPath: {{ kube_cert_dir }} name: ssl-certs-kubernetes readOnly: true - - mountPath: /etc/ssl/certs - name: ssl-certs-host - readOnly: true {% if cloud_provider is defined and cloud_provider == "openstack" %} - mountPath: {{ kube_config_dir }}/cloud_config name: cloudconfig @@ -44,9 +41,6 @@ spec: - hostPath: path: {{ kube_cert_dir }} name: ssl-certs-kubernetes - - hostPath: - path: /etc/ssl/certs/ - name: ssl-certs-host {% if cloud_provider is defined and cloud_provider == "openstack" %} - hostPath: path: {{ kube_config_dir }}/cloud_config From f61071312aadf176f0548e1c7fac8ff8f20f65d7 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Tue, 23 Aug 2016 10:15:30 +0200 Subject: [PATCH 073/695] Fix gen-gitinfos.sh Fix the error gen-gitinfos.sh: 57: [: foo: unexpected operator Signed-off-by: Bogdan Dobrelya --- roles/kubernetes/preinstall/gen-gitinfos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/preinstall/gen-gitinfos.sh b/roles/kubernetes/preinstall/gen-gitinfos.sh index 34b977f7e..bfab5a4be 100755 --- a/roles/kubernetes/preinstall/gen-gitinfos.sh +++ b/roles/kubernetes/preinstall/gen-gitinfos.sh @@ -54,7 +54,7 @@ EOF printf "unstaged changes=\"/etc/.git-ansible.diff\"" fi - if [ ${current_commit} == ${latest_tag_commit} ]; then + if [ "${current_commit}" = "${latest_tag_commit}" ]; then printf "\ncurrent_commit_tag=\"${latest_tag}\"" else printf "\nlast tag was "$(git describe --tags | awk -F- '{print $2}')" commits ago =\"" From 47b424261397defae8aed2ec091bb61714c99671 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Mon, 22 Aug 2016 14:45:42 +0200 Subject: [PATCH 074/695] Adjust collect-info playbook Cleanup collected artifacts, drop unrelated files/commands. Always install gitinfos script to binaries for external use. Signed-off-by: Bogdan Dobrelya --- roles/kubernetes/preinstall/tasks/main.yml | 6 ++++++ scripts/collect-info.yaml | 19 +++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index dcc925627..2a93129b1 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -1,4 +1,10 @@ --- +- name: 'GIT | Install script for collecting git info' + template: + src: "{{ role_path }}/gen-gitinfos.sh" + dest: "{{ bin_dir }}/gen-gitinfos.sh" + mode: a+rwx + - include: gitinfos.yml when: run_gitinfos diff --git a/scripts/collect-info.yaml b/scripts/collect-info.yaml index 95eb7a9d8..67d4c8b35 100644 --- a/scripts/collect-info.yaml +++ b/scripts/collect-info.yaml @@ -7,11 +7,9 @@ debug: false commands: - name: git_info - cmd: cat {kargo,.}/.git/logs/HEAD + cmd: find . -type d -name .git -execdir sh -c 'gen-gitinfos.sh global|head -12' \; - name: timedate_info cmd: timedatectl status - - name: boots_info - cmd: journalctl --list-boots --utc --no-pager - name: space_info cmd: df -h - name: kernel_info @@ -28,10 +26,10 @@ cmd: ps auxf | grep -v ]$ - name: systemctl_info cmd: systemctl status + - name: systemctl_failed_info + cmd: systemctl --state=failed --no-pager - name: k8s_info cmd: kubectl get all --all-namespaces -o wide - - name: k8s_dump_info - cmd: kubectl get all --all-namespaces -o yaml - name: errors_info cmd: journalctl -p err --utc --no-pager @@ -43,10 +41,6 @@ - /var/log/kern.log - inventory/inventory.ini - cluster.yml - - kargo/kargo_default_ubuntu.yaml - - kargo/kargo_default_debian.yaml - - kargo/kargo_default_common.yaml - - kargo/inventory/inventory.cfg tasks: - name: Storing commands output @@ -68,4 +62,9 @@ with_items: "{{logs}}" - name: Pack results and logs - local_action: shell GZIP=-9 tar cvzf logs.tar.gz -C /tmp collect-info + local_action: shell GZIP=-9 tar --remove-files -cvzf logs.tar.gz -C /tmp collect-info + run_once: true + + - name: Clean up collected command outputs + file: path={{ item.name }} state=absent + with_items: "{{commands}}" From f35e5e864fe4b6f3cdd0400eff0721a8c231ed1d Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Tue, 23 Aug 2016 12:42:22 -0400 Subject: [PATCH 075/695] pass cloud provider flag in all cases, not just openstack --- .../master/templates/manifests/kube-apiserver.manifest.j2 | 2 ++ .../templates/manifests/kube-controller-manager.manifest.j2 | 6 ++++-- roles/kubernetes/node/templates/kubelet.j2 | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 index 7961ac36f..1df850dbf 100644 --- a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 @@ -35,6 +35,8 @@ spec: {% if cloud_provider is defined and cloud_provider == "openstack" %} - --cloud-provider={{ cloud_provider }} - --cloud-config={{ kube_config_dir }}/cloud_config +{% elif cloud_provider is defined %} + - --cloud-provider={{ cloud_provider }} {% endif %} - 2>&1 >> {{ kube_log_dir }}/kube-apiserver.log volumeMounts: diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 index 32eeca0b4..0195e5eab 100644 --- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 @@ -17,9 +17,11 @@ spec: - --root-ca-file={{ kube_cert_dir }}/ca.pem - --enable-hostpath-provisioner={{ kube_hostpath_dynamic_provisioner }} - --v={{ kube_log_level | default('2') }} -{% if cloud_provider is defined and cloud_provider == "openstack" %} - - --cloud-provider=openstack +{% if cloud_provider is defined and cloud_provider == "openstack"%} + - --cloud-provider={{cloud_provider}} - --cloud-config={{ kube_config_dir }}/cloud_config +{% elif cloud_provider is defined %} + - --cloud-provider={{cloud_provider}} {% endif %} livenessProbe: httpGet: diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index bab27305e..7eb76de2d 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -33,8 +33,9 @@ DOCKER_SOCKET="--docker-endpoint=unix:/var/run/weave/weave.sock" KUBE_ALLOW_PRIV="--allow-privileged=true" {% if cloud_provider is defined and cloud_provider == "openstack" %} KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }} --cloud-config={{ kube_config_dir }}/cloud_config" +{% elif cloud_provider is defined %} +KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }}" {% else %} -{# TODO: gce and aws don't need the cloud provider to be set? #} KUBELET_CLOUDPROVIDER="" {% endif %} {% if ansible_service_mgr in ["sysvinit","upstart"] %} From 643b28f9d3524cb213dcd186be7bfebdfda4c5bb Mon Sep 17 00:00:00 2001 From: Smana Date: Wed, 24 Aug 2016 12:36:25 +0200 Subject: [PATCH 076/695] Revert "Fix resolv.conf search/nameserver" This reverts commit 977f82c32c3e92155538af87842e6b4fb3a59141. --- roles/dnsmasq/defaults/main.yml | 12 ------------ roles/dnsmasq/handlers/main.yml | 10 ---------- roles/dnsmasq/tasks/main.yml | 19 ++++--------------- 3 files changed, 4 insertions(+), 37 deletions(-) delete mode 100644 roles/dnsmasq/defaults/main.yml delete mode 100644 roles/dnsmasq/handlers/main.yml diff --git a/roles/dnsmasq/defaults/main.yml b/roles/dnsmasq/defaults/main.yml deleted file mode 100644 index 48b52c121..000000000 --- a/roles/dnsmasq/defaults/main.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -# Existing search/nameserver resolvconf entries will be purged and -# ensured by this additional data: - -# Max of 4 names is allowed and no more than 256 - 17 chars total -# (a 2 is reserved for the 'default.svc.' and'svc.') -#searchdomains: -# - foo.bar.lc - -# Max of 2 is allowed here (a 1 is reserved for the dns_server) -#nameservers: -# - 127.0.0.1 diff --git a/roles/dnsmasq/handlers/main.yml b/roles/dnsmasq/handlers/main.yml deleted file mode 100644 index 95cd80cfc..000000000 --- a/roles/dnsmasq/handlers/main.yml +++ /dev/null @@ -1,10 +0,0 @@ -- name: Dnsmasq | restart network - service: - name: >- - {% if ansible_os_family == "RedHat" -%} - network - {%- elif ansible_os_family == "Debian" -%} - networking - {%- endif %} - state: restarted - when: ansible_os_family != "CoreOS" diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index e8dc78aa8..526e162ae 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -68,17 +68,9 @@ resolvconffile: >- {%- if resolvconf.rc == 0 -%}/etc/resolvconf/resolv.conf.d/head{%- else -%}/etc/resolv.conf{%- endif -%} -- name: generate search domains to resolvconf - set_fact: - searchentries="{{ ([ 'default.svc.' + dns_domain, 'svc.' + dns_domain ] + searchdomains|default([])) | join(' ') }}" - -- name: generate nameservers to resolvconf - set_fact: - nameserverentries="{{ nameservers|default([]) + [ dns_server ] }}" - - name: Add search resolv.conf lineinfile: - line: "search {{searchentries}}" + line: "search {{ [ 'default.svc.' + dns_domain, 'svc.' + dns_domain, dns_domain ] | join(' ') }}" dest: "{{resolvconffile}}" state: present insertbefore: BOF @@ -87,13 +79,12 @@ - name: Add local dnsmasq to resolv.conf lineinfile: - line: "nameserver {{item}}" + line: "nameserver {{dns_server}}" dest: "{{resolvconffile}}" state: present insertafter: "^search.*$" backup: yes follow: yes - with_items: "{{nameserverentries}}" - name: Add options to resolv.conf lineinfile: @@ -109,13 +100,11 @@ - attempts:2 - name: disable resolv.conf modification by dhclient - copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/znodnsupdate mode=0755 backup=yes - notify: Dnsmasq | restart network + copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate mode=0755 backup=yes when: ansible_os_family == "Debian" - name: disable resolv.conf modification by dhclient - copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/znodnsupdate mode=u+x backup=yes - notify: Dnsmasq | restart network + copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/nodnsupdate mode=u+x backup=yes when: ansible_os_family == "RedHat" - name: update resolvconf From 346eca574881ce675525e8a2f5def5761ffef8a2 Mon Sep 17 00:00:00 2001 From: Smana Date: Wed, 24 Aug 2016 14:32:54 +0200 Subject: [PATCH 077/695] Revert "pass cloud provider flag in all cases, not just openstack" This reverts commit f35e5e864fe4b6f3cdd0400eff0721a8c231ed1d. --- .../master/templates/manifests/kube-apiserver.manifest.j2 | 2 -- .../templates/manifests/kube-controller-manager.manifest.j2 | 6 ++---- roles/kubernetes/node/templates/kubelet.j2 | 3 +-- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 index 1df850dbf..7961ac36f 100644 --- a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 @@ -35,8 +35,6 @@ spec: {% if cloud_provider is defined and cloud_provider == "openstack" %} - --cloud-provider={{ cloud_provider }} - --cloud-config={{ kube_config_dir }}/cloud_config -{% elif cloud_provider is defined %} - - --cloud-provider={{ cloud_provider }} {% endif %} - 2>&1 >> {{ kube_log_dir }}/kube-apiserver.log volumeMounts: diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 index 0195e5eab..32eeca0b4 100644 --- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 @@ -17,11 +17,9 @@ spec: - --root-ca-file={{ kube_cert_dir }}/ca.pem - --enable-hostpath-provisioner={{ kube_hostpath_dynamic_provisioner }} - --v={{ kube_log_level | default('2') }} -{% if cloud_provider is defined and cloud_provider == "openstack"%} - - --cloud-provider={{cloud_provider}} +{% if cloud_provider is defined and cloud_provider == "openstack" %} + - --cloud-provider=openstack - --cloud-config={{ kube_config_dir }}/cloud_config -{% elif cloud_provider is defined %} - - --cloud-provider={{cloud_provider}} {% endif %} livenessProbe: httpGet: diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index 7eb76de2d..bab27305e 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -33,9 +33,8 @@ DOCKER_SOCKET="--docker-endpoint=unix:/var/run/weave/weave.sock" KUBE_ALLOW_PRIV="--allow-privileged=true" {% if cloud_provider is defined and cloud_provider == "openstack" %} KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }} --cloud-config={{ kube_config_dir }}/cloud_config" -{% elif cloud_provider is defined %} -KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }}" {% else %} +{# TODO: gce and aws don't need the cloud provider to be set? #} KUBELET_CLOUDPROVIDER="" {% endif %} {% if ansible_service_mgr in ["sysvinit","upstart"] %} From ea57ce751471a8cb9177e0f03cfedc1d58a60744 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Thu, 18 Aug 2016 17:14:52 +0200 Subject: [PATCH 078/695] Fix resolv.conf search/nameserver * Ensure additional nameserver/search, if defined as vars. * Don't backup changed dhclient hooks as they are going to be executed by dhclient as well, which is not what we want. * For debian OS family only: - Rename nodnsupdate hook the resolvconf hook to be sourced always before it. - Ensure dhclient restarted via network restart to apply the nodnsupdate hook. * For rhel OS family, the fix TBD, it doesn't work the same way. Signed-off-by: Bogdan Dobrelya --- roles/dnsmasq/defaults/main.yml | 12 ++++++++++++ roles/dnsmasq/handlers/main.yml | 10 ++++++++++ roles/dnsmasq/tasks/main.yml | 18 ++++++++++++++---- 3 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 roles/dnsmasq/defaults/main.yml create mode 100644 roles/dnsmasq/handlers/main.yml diff --git a/roles/dnsmasq/defaults/main.yml b/roles/dnsmasq/defaults/main.yml new file mode 100644 index 000000000..48b52c121 --- /dev/null +++ b/roles/dnsmasq/defaults/main.yml @@ -0,0 +1,12 @@ +--- +# Existing search/nameserver resolvconf entries will be purged and +# ensured by this additional data: + +# Max of 4 names is allowed and no more than 256 - 17 chars total +# (a 2 is reserved for the 'default.svc.' and'svc.') +#searchdomains: +# - foo.bar.lc + +# Max of 2 is allowed here (a 1 is reserved for the dns_server) +#nameservers: +# - 127.0.0.1 diff --git a/roles/dnsmasq/handlers/main.yml b/roles/dnsmasq/handlers/main.yml new file mode 100644 index 000000000..95cd80cfc --- /dev/null +++ b/roles/dnsmasq/handlers/main.yml @@ -0,0 +1,10 @@ +- name: Dnsmasq | restart network + service: + name: >- + {% if ansible_os_family == "RedHat" -%} + network + {%- elif ansible_os_family == "Debian" -%} + networking + {%- endif %} + state: restarted + when: ansible_os_family != "CoreOS" diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index 526e162ae..51f02aa9e 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -68,9 +68,17 @@ resolvconffile: >- {%- if resolvconf.rc == 0 -%}/etc/resolvconf/resolv.conf.d/head{%- else -%}/etc/resolv.conf{%- endif -%} +- name: generate search domains to resolvconf + set_fact: + searchentries="{{ ([ 'default.svc.' + dns_domain, 'svc.' + dns_domain ] + searchdomains|default([])) | join(' ') }}" + +- name: generate nameservers to resolvconf + set_fact: + nameserverentries="{{ nameservers|default([]) + [ dns_server ] }}" + - name: Add search resolv.conf lineinfile: - line: "search {{ [ 'default.svc.' + dns_domain, 'svc.' + dns_domain, dns_domain ] | join(' ') }}" + line: "search {{searchentries}}" dest: "{{resolvconffile}}" state: present insertbefore: BOF @@ -79,12 +87,13 @@ - name: Add local dnsmasq to resolv.conf lineinfile: - line: "nameserver {{dns_server}}" + line: "nameserver {{item}}" dest: "{{resolvconffile}}" state: present insertafter: "^search.*$" backup: yes follow: yes + with_items: "{{nameserverentries}}" - name: Add options to resolv.conf lineinfile: @@ -100,11 +109,12 @@ - attempts:2 - name: disable resolv.conf modification by dhclient - copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate mode=0755 backup=yes + copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/znodnsupdate mode=0755 + notify: Dnsmasq | restart network when: ansible_os_family == "Debian" - name: disable resolv.conf modification by dhclient - copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/nodnsupdate mode=u+x backup=yes + copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/nodnsupdate mode=u+x when: ansible_os_family == "RedHat" - name: update resolvconf From 60f263b6299bfe09ed50a918c2b126558701a5b6 Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Wed, 24 Aug 2016 09:48:32 -0400 Subject: [PATCH 079/695] updated to no longer handle gce as cloud-provider. provided aws setup doc --- docs/aws.md | 10 ++++++++++ .../templates/manifests/kube-apiserver.manifest.j2 | 2 +- .../manifests/kube-controller-manager.manifest.j2 | 2 +- roles/kubernetes/node/templates/kubelet.j2 | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 docs/aws.md diff --git a/docs/aws.md b/docs/aws.md new file mode 100644 index 000000000..e2bab6f15 --- /dev/null +++ b/docs/aws.md @@ -0,0 +1,10 @@ +OpenStack +=============== + +To deploy kubespray on [AWS](https://www.openstack.org/) uncomment the `cloud_provider` option in `group_vars/all.yml` and set it to `'aws'`. + +Prior to creating your instances, you **must** ensure that you have created IAM roles and policies for both "kubernetes-master" and "kubernetes-node". You can find the IAM policies [here](https://github.com/kubernetes/kubernetes/tree/master/cluster/aws/templates/iam). See the [IAM Documentation](https://aws.amazon.com/documentation/iam/) if guidance is needed on how to set these up. When you bring your instances online, associate them with the respective IAM role. Nodes that are only to be used for Etcd do not need a role. + +The next step is to make sure the hostnames in your `inventory` file are identical to your internal hostnames in AWS. This may look something like `ip-111-222-333-444.us-west-2.compute.internal`. You can then specify how Ansible connects to these instances with `ansible_ssh_host` and `ansible_ssh_user`. + +You can now create your cluster! diff --git a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 index 1df850dbf..2f69666d8 100644 --- a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 @@ -35,7 +35,7 @@ spec: {% if cloud_provider is defined and cloud_provider == "openstack" %} - --cloud-provider={{ cloud_provider }} - --cloud-config={{ kube_config_dir }}/cloud_config -{% elif cloud_provider is defined %} +{% elif cloud_provider is defined and cloud_provider == "aws" %} - --cloud-provider={{ cloud_provider }} {% endif %} - 2>&1 >> {{ kube_log_dir }}/kube-apiserver.log diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 index 0195e5eab..dbce2bfbf 100644 --- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 @@ -20,7 +20,7 @@ spec: {% if cloud_provider is defined and cloud_provider == "openstack"%} - --cloud-provider={{cloud_provider}} - --cloud-config={{ kube_config_dir }}/cloud_config -{% elif cloud_provider is defined %} +{% elif cloud_provider is defined and cloud_provider == "aws" %} - --cloud-provider={{cloud_provider}} {% endif %} livenessProbe: diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index 7eb76de2d..c7d20c420 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -33,7 +33,7 @@ DOCKER_SOCKET="--docker-endpoint=unix:/var/run/weave/weave.sock" KUBE_ALLOW_PRIV="--allow-privileged=true" {% if cloud_provider is defined and cloud_provider == "openstack" %} KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }} --cloud-config={{ kube_config_dir }}/cloud_config" -{% elif cloud_provider is defined %} +{% elif cloud_provider is defined and cloud_provider == "aws" %} KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }}" {% else %} KUBELET_CLOUDPROVIDER="" From caa8efbf8620a0281d9ed725a178a6b793dc80a0 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Thu, 25 Aug 2016 09:12:25 +0200 Subject: [PATCH 080/695] Fix handler triggering for kubelet restart Signed-off-by: Bogdan Dobrelya --- roles/kubernetes/master/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml index 9140ef36c..4d0933550 100644 --- a/roles/kubernetes/master/tasks/main.yml +++ b/roles/kubernetes/master/tasks/main.yml @@ -12,8 +12,6 @@ changed_when: false register: kubectl_launcher -- meta: flush_handlers - - name: Write kube-apiserver manifest template: src: manifests/kube-apiserver.manifest.j2 @@ -60,3 +58,5 @@ src: manifests/kube-scheduler.manifest.j2 dest: "{{ kube_manifest_dir }}/kube-scheduler.manifest" notify: wait for kube-scheduler + +- meta: flush_handlers From 8168689caa53421ff53e0009716f92fd0ce81f64 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Thu, 25 Aug 2016 11:16:14 +0200 Subject: [PATCH 081/695] Refactor roles and hosts Shorten deployment time with: - Remove redundand roles if duplicated by a dependency and vice versa - When a member of k8s-cluster, always install docker as a dependency of the etcd role and drop the docker role from cluster.yaml. - Drop etcd and node role dependencies from master role as they are covered by the node role in k8s-cluster group as well. Copy defaults for master from node role. - Decouple master, node, secrets roles handlers and vars to be used w/o cross references. Signed-off-by: Bogdan Dobrelya --- cluster.yml | 3 +-- roles/etcd/meta/main.yml | 3 +-- roles/kubernetes/master/defaults/main.yml | 15 +++++++++++++++ roles/kubernetes/master/handlers/main.yml | 4 ++-- roles/kubernetes/master/meta/main.yml | 2 -- roles/kubernetes/node/defaults/main.yml | 10 ---------- roles/kubernetes/secrets/defaults/main.yml | 8 ++++++++ roles/network_plugin/meta/main.yml | 1 - 8 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 roles/kubernetes/master/defaults/main.yml create mode 100644 roles/kubernetes/secrets/defaults/main.yml diff --git a/cluster.yml b/cluster.yml index aa79ff5a5..45d4183b9 100644 --- a/cluster.yml +++ b/cluster.yml @@ -5,19 +5,18 @@ - hosts: etcd:!k8s-cluster roles: - { role: kubernetes/preinstall, tags: preinstall } - - { role: docker, tags: docker } - { role: etcd, tags: etcd } - hosts: k8s-cluster roles: - { role: kubernetes/preinstall, tags: preinstall } - - { role: docker, tags: docker } - { role: etcd, tags: etcd } - { role: kubernetes/node, tags: node } - { role: network_plugin, tags: network } - hosts: kube-master roles: + - { role: kubernetes/preinstall, tags: preinstall } - { role: kubernetes/master, tags: master } - hosts: k8s-cluster diff --git a/roles/etcd/meta/main.yml b/roles/etcd/meta/main.yml index de3461e70..8e4cb5846 100644 --- a/roles/etcd/meta/main.yml +++ b/roles/etcd/meta/main.yml @@ -7,5 +7,4 @@ dependencies: file: "{{ downloads.etcd }}" when: etcd_deployment_type == "host" - role: docker - when: (ansible_os_family != "CoreOS" and etcd_deployment_type == "docker") - - role: "kubernetes/preinstall" + when: (ansible_os_family != "CoreOS" and etcd_deployment_type == "docker" or inventory_hostname in groups['k8s-cluster']) diff --git a/roles/kubernetes/master/defaults/main.yml b/roles/kubernetes/master/defaults/main.yml new file mode 100644 index 000000000..ac23c0ada --- /dev/null +++ b/roles/kubernetes/master/defaults/main.yml @@ -0,0 +1,15 @@ +# This is where all the cert scripts and certs will be located +kube_cert_dir: "{{ kube_config_dir }}/ssl" + +# This is where all of the bearer tokens will be stored +kube_token_dir: "{{ kube_config_dir }}/tokens" + +# This is where to save basic auth file +kube_users_dir: "{{ kube_config_dir }}/users" + +# An experimental dev/test only dynamic volumes provisioner, +# for PetSets. Works for kube>=v1.3 only. +kube_hostpath_dynamic_provisioner: "false" + +hyperkube_image_repo: "quay.io/coreos/hyperkube" +hyperkube_image_tag: "{{ kube_version }}_coreos.0" diff --git a/roles/kubernetes/master/handlers/main.yml b/roles/kubernetes/master/handlers/main.yml index 87e3adc69..d1787be2d 100644 --- a/roles/kubernetes/master/handlers/main.yml +++ b/roles/kubernetes/master/handlers/main.yml @@ -2,8 +2,8 @@ - name: Master | restart kubelet command: /bin/true notify: - - Kubelet | reload systemd - - Kubelet | reload kubelet + - Master | reload systemd + - Master | reload kubelet - name: wait for master static pods command: /bin/true diff --git a/roles/kubernetes/master/meta/main.yml b/roles/kubernetes/master/meta/main.yml index 0eb0b867e..021c01de4 100644 --- a/roles/kubernetes/master/meta/main.yml +++ b/roles/kubernetes/master/meta/main.yml @@ -2,5 +2,3 @@ dependencies: - role: download # For kube_version variable file: "{{ downloads.nothing }}" - - { role: etcd } - - { role: kubernetes/node } diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 1ae008e93..96b941a5e 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -1,12 +1,6 @@ # This is where all the cert scripts and certs will be located kube_cert_dir: "{{ kube_config_dir }}/ssl" -# This is where all of the bearer tokens will be stored -kube_token_dir: "{{ kube_config_dir }}/tokens" - -# This is where to save basic auth file -kube_users_dir: "{{ kube_config_dir }}/users" - dns_domain: "{{ cluster_name }}" # resolv.conf to base dns config @@ -14,10 +8,6 @@ kube_resolv_conf: "/etc/resolv.conf" kube_proxy_mode: iptables -# An experimental dev/test only dynamic volumes provisioner, -# for PetSets. Works for kube>=v1.3 only. -kube_hostpath_dynamic_provisioner: "false" - hyperkube_image_repo: "quay.io/coreos/hyperkube" hyperkube_image_tag: "{{ kube_version }}_coreos.0" diff --git a/roles/kubernetes/secrets/defaults/main.yml b/roles/kubernetes/secrets/defaults/main.yml new file mode 100644 index 000000000..a5b88d7ac --- /dev/null +++ b/roles/kubernetes/secrets/defaults/main.yml @@ -0,0 +1,8 @@ +# This is where all the cert scripts and certs will be located +kube_cert_dir: "{{ kube_config_dir }}/ssl" + +# This is where all of the bearer tokens will be stored +kube_token_dir: "{{ kube_config_dir }}/tokens" + +# This is where to save basic auth file +kube_users_dir: "{{ kube_config_dir }}/users" diff --git a/roles/network_plugin/meta/main.yml b/roles/network_plugin/meta/main.yml index 0dd36511b..736262ab0 100644 --- a/roles/network_plugin/meta/main.yml +++ b/roles/network_plugin/meta/main.yml @@ -6,4 +6,3 @@ dependencies: when: kube_network_plugin == 'flannel' - role: network_plugin/weave when: kube_network_plugin == 'weave' - - role: docker From 82076f90a347328fa8295fe7cf099c263d7adcb4 Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Fri, 26 Aug 2016 13:24:47 -0400 Subject: [PATCH 082/695] ensure bin dir for coreos before anything else --- roles/kubernetes/preinstall/tasks/main.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index 2a93129b1..ec1bd64c0 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -1,4 +1,10 @@ --- +- name: Force binaries directory for CoreOS + set_fact: + bin_dir: "/opt/bin" + when: ansible_os_family == "CoreOS" + + - name: 'GIT | Install script for collecting git info' template: src: "{{ role_path }}/gen-gitinfos.sh" @@ -24,11 +30,6 @@ - ../vars skip: true -- name: Force binaries directory for CoreOS - set_fact: - bin_dir: "/opt/bin" - when: ansible_os_family == "CoreOS" - - name: Create kubernetes config directory file: path: "{{ kube_config_dir }}" From b92404fd0a9696e1797a448917a442b418955cbb Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Sat, 27 Aug 2016 15:08:25 +0400 Subject: [PATCH 083/695] Enable customization of calico-node docker image New vars: calico_node_image_repo and claico_node_image_tag Defaults: calico/node and {{ calico_version }}, respectively --- roles/network_plugin/calico/defaults/main.yml | 4 ++++ roles/network_plugin/calico/templates/calico-node.service.j2 | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/roles/network_plugin/calico/defaults/main.yml b/roles/network_plugin/calico/defaults/main.yml index 8d0759ffb..0f59b21d5 100644 --- a/roles/network_plugin/calico/defaults/main.yml +++ b/roles/network_plugin/calico/defaults/main.yml @@ -7,9 +7,13 @@ ipip: false # cloud_provider can only be set to 'gce' or 'aws' # cloud_provider: + calicoctl_image_repo: calico/ctl calicoctl_image_tag: "{{ calico_version }}" +calico_node_image_repo: calico/node +calico_node_image_tag: "{{ calico_version }}" + # Set to true if your Hyperkube has all required components to run # calico. This is required in order to run canalized calico. use_hyperkube_cni: false diff --git a/roles/network_plugin/calico/templates/calico-node.service.j2 b/roles/network_plugin/calico/templates/calico-node.service.j2 index cd4f28679..a7f7e4bab 100644 --- a/roles/network_plugin/calico/templates/calico-node.service.j2 +++ b/roles/network_plugin/calico/templates/calico-node.service.j2 @@ -8,9 +8,9 @@ Wants=docker.socket etcd-proxy.service User=root PermissionsStartOnly=true {% if inventory_hostname in groups['kube-node'] and peer_with_router|default(false)%} -ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4.address) }} --as={{ local_as }} --detach=false +ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4.address) }} --as={{ local_as }} --detach=false --node-image={{ calico_node_image_repo }}:{{ calico_node_image_tag }} {% else %} -ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4.address) }} --detach=false +ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4.address) }} --detach=false --node-image={{ calico_node_image_repo }}:{{ calico_node_image_tag }} {% endif %} Restart=always RestartSec=10s From d4193bbd22a67d8eb915980a3692f6adb527b34d Mon Sep 17 00:00:00 2001 From: Smana Date: Sat, 27 Aug 2016 16:04:06 +0200 Subject: [PATCH 084/695] upgrade weave version to 1.6.1 --- README.md | 2 +- roles/download/defaults/main.yml | 4 ++-- roles/uploads/defaults/main.yml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cbbd2b8c6..48da75f7f 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Versions [etcd](https://github.com/coreos/etcd/releases) v3.0.1
[calicoctl](https://github.com/projectcalico/calico-docker/releases) v0.20.0
[flanneld](https://github.com/coreos/flannel/releases) v0.5.5
-[weave](http://weave.works/) v1.5.0
+[weave](http://weave.works/) v1.6.1
[docker](https://www.docker.com/) v1.10.3
diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index edb3a3b3d..288c3f4bd 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -12,7 +12,7 @@ etcd_version: v3.0.1 # after migration to container download calico_version: v0.20.0 calico_cni_version: v1.3.1 -weave_version: v1.5.0 +weave_version: v1.6.1 # Download URL's etcd_download_url: "https://storage.googleapis.com/kargo/{{etcd_version}}_etcd" @@ -23,7 +23,7 @@ weave_download_url: "https://storage.googleapis.com/kargo/{{weave_version}}_weav # Checksums calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" -weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" +weave_checksum: "9bf9d6e5a839e7bcbb28cc00c7acae9d09284faa3e7a3720ca9c2b9e93c68580" etcd_checksum: "7e5d8db2b8a7cec7a93e531c8ae0f3108c66c7d896a2fb6d8768c067923ce0aa" downloads: diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index a61d334d0..50786ac0a 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -7,7 +7,7 @@ include_vars: kube_versions.yml etcd_version: v3.0.1 calico_version: v0.20.0 calico_cni_version: v1.3.1 -weave_version: v1.5.0 +weave_version: v1.6.1 # Download URL's etcd_download_url: "https://github.com/coreos/etcd/releases/download/{{ etcd_version }}/etcd-{{ etcd_version }}-linux-amd64.tar.gz" @@ -18,7 +18,7 @@ weave_download_url: "https://github.com/weaveworks/weave/releases/download/{{wea # Checksums calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" -weave_checksum: "28d2c4e2b1ad8600da69882501eba697679aea10a5e61c769aa3a9ee72b0d89a" +weave_checksum: "9bf9d6e5a839e7bcbb28cc00c7acae9d09284faa3e7a3720ca9c2b9e93c68580" etcd_checksum: "7e5d8db2b8a7cec7a93e531c8ae0f3108c66c7d896a2fb6d8768c067923ce0aa" downloads: From 1345dd07f73bf6e4da63360e379408d7b415cb47 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Mon, 29 Aug 2016 12:50:45 +0300 Subject: [PATCH 085/695] Add --no-sync to etcdctl member list Fixes #447 --- roles/etcd/tasks/configure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/etcd/tasks/configure.yml b/roles/etcd/tasks/configure.yml index b665acceb..56b01da3f 100644 --- a/roles/etcd/tasks/configure.yml +++ b/roles/etcd/tasks/configure.yml @@ -1,6 +1,6 @@ --- - name: Configure | Check if member is in cluster - shell: "etcdctl --peers={{ etcd_access_addresses }} member list | grep -q {{ etcd_access_address }}" + shell: "etcdctl --no-sync --peers={{ etcd_access_addresses }} member list | grep -q {{ etcd_access_address }}" register: etcd_member_in_cluster ignore_errors: true changed_when: false From c50c6672f3ba231603bc2bf467c3e4dc06889ad5 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Mon, 29 Aug 2016 14:20:28 +0300 Subject: [PATCH 086/695] Remove SecurityContextDeny API plugin This is no longer recommended for use since K8s 1.2: http://kubernetes.io/docs/admin/admission-controllers/#is-there-a-recommended-set-of-plug-ins-to-use --- .../master/templates/manifests/kube-apiserver.manifest.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 index 2f69666d8..cd6d77715 100644 --- a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 +++ b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 @@ -15,7 +15,7 @@ spec: - --etcd-servers={{ etcd_access_endpoint }} - --insecure-bind-address={{ kube_apiserver_insecure_bind_address }} - --apiserver-count={{ kube_apiserver_count }} - - --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota + - --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,ServiceAccount,ResourceQuota - --service-cluster-ip-range={{ kube_service_addresses }} - --client-ca-file={{ kube_cert_dir }}/ca.pem - --basic-auth-file={{ kube_users_dir }}/known_users.csv From 256a4e1f29e9c4a0826480245c8921caceb8b65a Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Mon, 29 Aug 2016 15:30:34 +0300 Subject: [PATCH 087/695] Rebase etcd to v3.0.6 Fixes #450 --- roles/download/defaults/main.yml | 2 +- roles/etcd/defaults/main.yml | 2 +- roles/uploads/defaults/main.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 288c3f4bd..924eb7625 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -7,7 +7,7 @@ download_run_once: False # Versions include_vars: kube_versions.yml -etcd_version: v3.0.1 +etcd_version: v3.0.6 #TODO(mattymo): Move calico versions to roles/network_plugins/calico/defaults # after migration to container download calico_version: v0.20.0 diff --git a/roles/etcd/defaults/main.yml b/roles/etcd/defaults/main.yml index e4234179f..585f75a40 100644 --- a/roles/etcd/defaults/main.yml +++ b/roles/etcd/defaults/main.yml @@ -1,5 +1,5 @@ --- -etcd_version: v3.0.1 +etcd_version: v3.0.6 etcd_bin_dir: "{{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64/" # Possible values: host, docker diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index 50786ac0a..5536bc88c 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -4,7 +4,7 @@ local_release_dir: /tmp # Versions include_vars: kube_versions.yml -etcd_version: v3.0.1 +etcd_version: v3.0.6 calico_version: v0.20.0 calico_cni_version: v1.3.1 weave_version: v1.6.1 From 28fbfbbbe7768ebd48d21876207d254a18297631 Mon Sep 17 00:00:00 2001 From: Smana Date: Mon, 29 Aug 2016 19:09:08 +0200 Subject: [PATCH 088/695] fix etcd checksum --- roles/download/defaults/main.yml | 2 +- roles/uploads/defaults/main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 924eb7625..610fb5b7a 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -24,7 +24,7 @@ weave_download_url: "https://storage.googleapis.com/kargo/{{weave_version}}_weav calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "9bf9d6e5a839e7bcbb28cc00c7acae9d09284faa3e7a3720ca9c2b9e93c68580" -etcd_checksum: "7e5d8db2b8a7cec7a93e531c8ae0f3108c66c7d896a2fb6d8768c067923ce0aa" +etcd_checksum: "385afd518f93e3005510b7aaa04d38ee4a39f06f5152cd33bb86d4f0c94c7485" downloads: calico_cni_plugin: diff --git a/roles/uploads/defaults/main.yml b/roles/uploads/defaults/main.yml index 5536bc88c..ad6865da2 100644 --- a/roles/uploads/defaults/main.yml +++ b/roles/uploads/defaults/main.yml @@ -19,7 +19,7 @@ weave_download_url: "https://github.com/weaveworks/weave/releases/download/{{wea calico_cni_checksum: "ac05cb9254b5aaa5822cf10325983431bd25489147f2edf9dec7e43d99c43e77" calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db7cd25097273" weave_checksum: "9bf9d6e5a839e7bcbb28cc00c7acae9d09284faa3e7a3720ca9c2b9e93c68580" -etcd_checksum: "7e5d8db2b8a7cec7a93e531c8ae0f3108c66c7d896a2fb6d8768c067923ce0aa" +etcd_checksum: "385afd518f93e3005510b7aaa04d38ee4a39f06f5152cd33bb86d4f0c94c7485" downloads: - name: calico-cni-plugin From 33c8d0a1a7155030a041688703567f12a4ef8352 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Tue, 30 Aug 2016 13:00:19 +0300 Subject: [PATCH 089/695] Remove search and nameserver entries from resolvconf base These items conflict when they are provided also in head file Fixes: #456 --- roles/dnsmasq/tasks/main.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index 51f02aa9e..194214684 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -108,6 +108,18 @@ - timeout:2 - attempts:2 +- name: Remove search and nameserver options from resolvconf base + lineinfile: + dest: /etc/resolvconf/resolv.conf.d/base + state: absent + regexp: "^{{ item }}.*$" + backup: yes + follow: yes + with_items: + - search + - nameserver + when: resolvconf.rc == 0 + - name: disable resolv.conf modification by dhclient copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/znodnsupdate mode=0755 notify: Dnsmasq | restart network From 9339903a85fabc1cee6c0384d18a96c877e37e68 Mon Sep 17 00:00:00 2001 From: Andrey Sokolov Date: Fri, 19 Aug 2016 20:45:18 +0600 Subject: [PATCH 090/695] Fix vagrant custom instance name prefix --- Vagrantfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index e7efdda57..44f80db8c 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -100,11 +100,11 @@ Vagrant.configure("2") do |config| #ansible.tags = ['download'] ansible.groups = { # The first three nodes should be etcd servers - "etcd" => ["k8s-0[1:3]"], + "etcd" => ["#{$instance_name_prefix}-0[1:3]"], # The first two nodes should be masters - "kube-master" => ["k8s-0[1:2]"], + "kube-master" => ["#{$instance_name_prefix}-0[1:2]"], # all nodes should be kube nodes - "kube-node" => ["k8s-0[1:#{$num_instances}]"], + "kube-node" => ["#{$instance_name_prefix}-0[1:#{$num_instances}]"], "k8s-cluster:children" => ["kube-master", "kube-node"], } end From b74c2f89f05558b49745e45740a6f6ae2c3903af Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Tue, 30 Aug 2016 09:17:41 -0700 Subject: [PATCH 091/695] lay down a systemd dropin instead of the /run/flannel_docker_opts.env symlink --- roles/network_plugin/flannel/tasks/main.yml | 12 +++++++----- .../network_plugin/flannel/templates/docker-systemd | 2 ++ 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 roles/network_plugin/flannel/templates/docker-systemd diff --git a/roles/network_plugin/flannel/tasks/main.yml b/roles/network_plugin/flannel/tasks/main.yml index 9588559f6..1dea800be 100644 --- a/roles/network_plugin/flannel/tasks/main.yml +++ b/roles/network_plugin/flannel/tasks/main.yml @@ -42,12 +42,14 @@ mode: 0644 notify: - restart docker + when: ansible_os_family != "CoreOS" -- name: Flannel | Create docker config symlink for CoreOS - file: - src: "/etc/default/docker" - dest: "/run/flannel_docker_opts.env" - state: link +- name: Flannel | Create docker dropin for CoreOS + template: + src: docker-dropin + dest: "/etc/systemd/system/docker.service.d/flannel-options.conf" + notify: + - restart docker when: ansible_os_family == "CoreOS" - meta: flush_handlers diff --git a/roles/network_plugin/flannel/templates/docker-systemd b/roles/network_plugin/flannel/templates/docker-systemd new file mode 100644 index 000000000..8d7d6ad83 --- /dev/null +++ b/roles/network_plugin/flannel/templates/docker-systemd @@ -0,0 +1,2 @@ +[Service] +Environment="DOCKER_OPTS=--bip={{ flannel_subnet }} --mtu={{ flannel_mtu }} {% if docker_options is defined %}{{ docker_options }}{% endif %}" From 0fc5e70c185f2005bf93f52d1fa36140721204ae Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Tue, 30 Aug 2016 09:26:14 -0700 Subject: [PATCH 092/695] incorrect file name --- roles/network_plugin/flannel/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/network_plugin/flannel/tasks/main.yml b/roles/network_plugin/flannel/tasks/main.yml index 1dea800be..531038d1a 100644 --- a/roles/network_plugin/flannel/tasks/main.yml +++ b/roles/network_plugin/flannel/tasks/main.yml @@ -46,7 +46,7 @@ - name: Flannel | Create docker dropin for CoreOS template: - src: docker-dropin + src: docker-systemd dest: "/etc/systemd/system/docker.service.d/flannel-options.conf" notify: - restart docker From a746d63177d5b5ddd5b660eff293ebe50d56a85c Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Tue, 30 Aug 2016 09:34:34 -0700 Subject: [PATCH 093/695] ensure docker.service.d exists --- roles/network_plugin/flannel/tasks/main.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/roles/network_plugin/flannel/tasks/main.yml b/roles/network_plugin/flannel/tasks/main.yml index 531038d1a..a6fa183ef 100644 --- a/roles/network_plugin/flannel/tasks/main.yml +++ b/roles/network_plugin/flannel/tasks/main.yml @@ -44,6 +44,10 @@ - restart docker when: ansible_os_family != "CoreOS" +- name: Flannel | Create docker service path for CoreOS + file: path=/etc/systemd/system/docker.service.d state=directory + when: ansible_os_family == "CoreOS" + - name: Flannel | Create docker dropin for CoreOS template: src: docker-systemd From 26a04066694e8e1e1084f3c17b63497d5feb8cdd Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Wed, 31 Aug 2016 12:53:33 +0300 Subject: [PATCH 094/695] Disable calicoctl from creating a default pool Sometimes invoking calicoctl to create a pool also creates a default pool, which causes errors in deploy. --- roles/network_plugin/calico/tasks/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index c421300ee..abe0f690d 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -73,6 +73,8 @@ - name: Calico | Configure calico network pool {{ pool_task_name|default('') }} command: "{{ bin_dir}}/calicoctl pool add {{ kube_pods_subnet }} {{ ipip_arg|default('') }} {{ nat_arg|default('') }}" + environment: + NO_DEFAULT_POOLS: true run_once: true when: calico_conf.status == 404 From d240073f65583ff894b046a23200471ee4269c07 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Mon, 29 Aug 2016 16:39:55 +0200 Subject: [PATCH 095/695] Fix updating resolvconf Move updating resolvconf to the network restart handler to ensure changes applied to the /etc/resolv.conf. Signed-off-by: Bogdan Dobrelya --- roles/dnsmasq/handlers/main.yml | 13 ++++++++++++- roles/dnsmasq/tasks/main.yml | 8 +------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/roles/dnsmasq/handlers/main.yml b/roles/dnsmasq/handlers/main.yml index 95cd80cfc..5e24890e7 100644 --- a/roles/dnsmasq/handlers/main.yml +++ b/roles/dnsmasq/handlers/main.yml @@ -1,4 +1,11 @@ - name: Dnsmasq | restart network + command: /bin/true + notify: + - Dnsmasq | reload network + - Dnsmasq | update resolvconf + when: ansible_os_family != "CoreOS" + +- name: Dnsmasq | reload network service: name: >- {% if ansible_os_family == "RedHat" -%} @@ -7,4 +14,8 @@ networking {%- endif %} state: restarted - when: ansible_os_family != "CoreOS" + when: ansible_os_family != "RedHat" and ansible_os_family != "CoreOS" + +- name: Dnsmasq | update resolvconf + command: /sbin/resolvconf -u + ignore_errors: true diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index 194214684..f98afd6bd 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -127,11 +127,5 @@ - name: disable resolv.conf modification by dhclient copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/nodnsupdate mode=u+x + notify: Dnsmasq | restart network when: ansible_os_family == "RedHat" - -- name: update resolvconf - command: resolvconf -u - changed_when: False - when: resolvconf.rc == 0 - -- meta: flush_handlers From 8b91a43576db8e67ec8cd949cfe76f9925479de0 Mon Sep 17 00:00:00 2001 From: Spencer Smith Date: Thu, 1 Sep 2016 10:01:15 -0700 Subject: [PATCH 096/695] remove dependency on kpm for kubedns --- roles/kubernetes-apps/defaults/main.yaml | 4 - roles/kubernetes-apps/library/kube.py | 318 ++++++++++++++++++ roles/kubernetes-apps/tasks/main.yaml | 42 +-- .../kubernetes-apps/templates/kubedns-rc.yml | 99 ++++++ .../kubernetes-apps/templates/kubedns-svc.yml | 20 ++ 5 files changed, 455 insertions(+), 28 deletions(-) delete mode 100644 roles/kubernetes-apps/defaults/main.yaml create mode 100644 roles/kubernetes-apps/library/kube.py create mode 100644 roles/kubernetes-apps/templates/kubedns-rc.yml create mode 100644 roles/kubernetes-apps/templates/kubedns-svc.yml diff --git a/roles/kubernetes-apps/defaults/main.yaml b/roles/kubernetes-apps/defaults/main.yaml deleted file mode 100644 index d95001316..000000000 --- a/roles/kubernetes-apps/defaults/main.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -kpm_registry: "https://api.kpm.sh" -kpm_namespace: "default" -kpm_packages: [] \ No newline at end of file diff --git a/roles/kubernetes-apps/library/kube.py b/roles/kubernetes-apps/library/kube.py new file mode 100644 index 000000000..aab92a733 --- /dev/null +++ b/roles/kubernetes-apps/library/kube.py @@ -0,0 +1,318 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +DOCUMENTATION = """ +--- +module: kube +short_description: Manage Kubernetes Cluster +description: + - Create, replace, remove, and stop resources within a Kubernetes Cluster +version_added: "2.0" +options: + name: + required: false + default: null + description: + - The name associated with resource + filename: + required: false + default: null + description: + - The path and filename of the resource(s) definition file. + kubectl: + required: false + default: null + description: + - The path to the kubectl bin + namespace: + required: false + default: null + description: + - The namespace associated with the resource(s) + resource: + required: false + default: null + description: + - The resource to perform an action on. pods (po), replicationControllers (rc), services (svc) + label: + required: false + default: null + description: + - The labels used to filter specific resources. + server: + required: false + default: null + description: + - The url for the API server that commands are executed against. + api_version: + required: false + choices: ['v1', 'v1beta3'] + default: v1 + description: + - The API version associated with cluster. + force: + required: false + default: false + description: + - A flag to indicate to force delete, replace, or stop. + all: + required: false + default: false + description: + - A flag to indicate delete all, stop all, or all namespaces when checking exists. + log_level: + required: false + default: 0 + description: + - Indicates the level of verbosity of logging by kubectl. + state: + required: false + choices: ['present', 'absent', 'latest', 'reloaded', 'stopped'] + default: present + description: + - present handles checking existence or creating if definition file provided, + absent handles deleting resource(s) based on other options, + latest handles creating ore updating based on existence, + reloaded handles updating resource(s) definition using definition file, + stopped handles stopping resource(s) based on other options. +requirements: + - kubectl +author: "Kenny Jones (@kenjones-cisco)" +""" + +EXAMPLES = """ +- name: test nginx is present + kube: name=nginx resource=rc state=present + +- name: test nginx is stopped + kube: name=nginx resource=rc state=stopped + +- name: test nginx is absent + kube: name=nginx resource=rc state=absent + +- name: test nginx is present + kube: filename=/tmp/nginx.yml +""" + + +class KubeManager(object): + + def __init__(self, module): + + self.module = module + + self.kubectl = module.params.get('kubectl') + if self.kubectl is None: + self.kubectl = module.get_bin_path('kubectl', True) + self.base_cmd = [self.kubectl] + self.api_version = module.params.get('api_version') + + if self.api_version: + self.base_cmd.append('--api-version=' + self.api_version) + + if module.params.get('server'): + self.base_cmd.append('--server=' + module.params.get('server')) + + if module.params.get('log_level'): + self.base_cmd.append('--v=' + str(module.params.get('log_level'))) + + if module.params.get('namespace'): + self.base_cmd.append('--namespace=' + module.params.get('namespace')) + + self.all = module.params.get('all') + self.force = module.params.get('force') + self.name = module.params.get('name') + self.filename = module.params.get('filename') + self.resource = module.params.get('resource') + self.label = module.params.get('label') + + def _execute(self, cmd): + args = self.base_cmd + cmd + try: + rc, out, err = self.module.run_command(args) + if rc != 0: + self.module.fail_json( + msg='error running kubectl (%s) command (rc=%d): %s' % (' '.join(args), rc, out or err)) + except Exception as exc: + self.module.fail_json( + msg='error running kubectl (%s) command: %s' % (' '.join(args), str(exc))) + return out.splitlines() + + def _execute_nofail(self, cmd): + args = self.base_cmd + cmd + rc, out, err = self.module.run_command(args) + if rc != 0: + return None + return out.splitlines() + + def create(self, check=True): + if check and self.exists(): + return [] + + cmd = ['create'] + + if not self.filename: + self.module.fail_json(msg='filename required to create') + + cmd.append('--filename=' + self.filename) + + return self._execute(cmd) + + def replace(self): + + if not self.force and not self.exists(): + return [] + + cmd = ['replace'] + if self.api_version != 'v1': + cmd = ['update'] + + if self.force: + cmd.append('--force') + + if not self.filename: + self.module.fail_json(msg='filename required to reload') + + cmd.append('--filename=' + self.filename) + + return self._execute(cmd) + + def delete(self): + + if not self.force and not self.exists(): + return [] + + cmd = ['delete'] + + if self.filename: + cmd.append('--filename=' + self.filename) + else: + if not self.resource: + self.module.fail_json(msg='resource required to delete without filename') + + cmd.append(self.resource) + + if self.name: + cmd.append(self.name) + + if self.label: + cmd.append('--selector=' + self.label) + + if self.all: + cmd.append('--all') + + if self.force: + cmd.append('--ignore-not-found') + + return self._execute(cmd) + + def exists(self): + cmd = ['get'] + + if not self.resource: + return False + + cmd.append(self.resource) + + if self.name: + cmd.append(self.name) + + cmd.append('--no-headers') + + if self.label: + cmd.append('--selector=' + self.label) + + if self.all: + cmd.append('--all-namespaces') + + result = self._execute_nofail(cmd) + if not result: + return False + return True + + def stop(self): + + if not self.force and not self.exists(): + return [] + + cmd = ['stop'] + + if self.filename: + cmd.append('--filename=' + self.filename) + else: + if not self.resource: + self.module.fail_json(msg='resource required to stop without filename') + + cmd.append(self.resource) + + if self.name: + cmd.append(self.name) + + if self.label: + cmd.append('--selector=' + self.label) + + if self.all: + cmd.append('--all') + + if self.force: + cmd.append('--ignore-not-found') + + return self._execute(cmd) + + +def main(): + + module = AnsibleModule( + argument_spec=dict( + name=dict(), + filename=dict(), + namespace=dict(), + resource=dict(), + label=dict(), + server=dict(), + kubectl=dict(), + api_version=dict(default='v1', choices=['v1', 'v1beta3']), + force=dict(default=False, type='bool'), + all=dict(default=False, type='bool'), + log_level=dict(default=0, type='int'), + state=dict(default='present', choices=['present', 'absent', 'latest', 'reloaded', 'stopped']), + ) + ) + + changed = False + + manager = KubeManager(module) + state = module.params.get('state') + + if state == 'present': + result = manager.create() + + elif state == 'absent': + result = manager.delete() + + elif state == 'reloaded': + result = manager.replace() + + elif state == 'stopped': + result = manager.stop() + + elif state == 'latest': + if manager.exists(): + manager.force = True + result = manager.replace() + else: + result = manager.create(check=False) + + else: + module.fail_json(msg='Unrecognized state %s.' % state) + + if result: + changed = True + module.exit_json(changed=changed, + msg='success: %s' % (' '.join(result)) + ) + + +from ansible.module_utils.basic import * # noqa +if __name__ == '__main__': + main() diff --git a/roles/kubernetes-apps/tasks/main.yaml b/roles/kubernetes-apps/tasks/main.yaml index c30a73d24..d5694c669 100644 --- a/roles/kubernetes-apps/tasks/main.yaml +++ b/roles/kubernetes-apps/tasks/main.yaml @@ -1,25 +1,19 @@ -- name: Install pip - action: - module: "{{ ansible_pkg_mgr }}" - name: "python-pip" - state: latest - when: ansible_os_family != "CoreOS" and kpm_packages | length > 0 +--- +- name: Kubernetes Apps | Lay Down KubeDNS Template + template: src={{item.file}} dest=/etc/kubernetes/{{item.file}} + with_items: + - {file: kubedns-rc.yml, type: rc} + - {file: kubedns-svc.yml, type: svc} + register: manifests + when: inventory_hostname == groups['kube-master'][0] -- name: install kpm - pip: - name: "kpm" - state: "latest" - when: kpm_packages | length > 0 - -- name: manage kubernetes applications - kpm: - namespace: "{{item.namespace | default(kpm_namespace | default('default'))}}" - registry: "{{item.registry | default(kpm_registry | default('https://api.kpm.sh'))}}" - state: "{{item.state | default(omit)}}" - version: "{{item.version | default(omit)}}" - variables: "{{item.variables | default(omit)}}" - name: "{{item.name}}" - with_items: "{{kpm_packages}}" - register: kpmresults - environment: - PATH: "{{ ansible_env.PATH }}:{{ bin_dir }}" +- name: Kubernetes Apps | Start Resources + kube: + name: KubeDNS + namespace: kube-system + kubectl: "{{bin_dir}}/kubectl" + resource: "{{item.item.type}}" + filename: /etc/kubernetes/{{item.item.file}} + state: "{{item.changed | ternary('latest','present') }}" + with_items: "{{ manifests.results }}" + when: inventory_hostname == groups['kube-master'][0] diff --git a/roles/kubernetes-apps/templates/kubedns-rc.yml b/roles/kubernetes-apps/templates/kubedns-rc.yml new file mode 100644 index 000000000..2daaf044e --- /dev/null +++ b/roles/kubernetes-apps/templates/kubedns-rc.yml @@ -0,0 +1,99 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + name: kube-dns-v19 + namespace: kube-system + labels: + k8s-app: kube-dns + version: v19 + kubernetes.io/cluster-service: "true" +spec: + replicas: 1 + selector: + k8s-app: kube-dns + version: v19 + template: + metadata: + labels: + k8s-app: kube-dns + version: v19 + kubernetes.io/cluster-service: "true" + spec: + containers: + - name: kubedns + image: gcr.io/google_containers/kubedns-amd64:1.6 + resources: + # TODO: Set memory limits when we've profiled the container for large + # clusters, then set request = limit to keep this container in + # guaranteed class. Currently, this container falls into the + # "burstable" category so the kubelet doesn't backoff from restarting it. + limits: + cpu: 100m + memory: 170Mi + requests: + cpu: 100m + memory: 70Mi + livenessProbe: + httpGet: + path: /healthz + port: 8080 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + readinessProbe: + httpGet: + path: /readiness + port: 8081 + scheme: HTTP + # we poll on pod startup for the Kubernetes master service and + # only setup the /readiness HTTP server once that's available. + initialDelaySeconds: 30 + timeoutSeconds: 5 + args: + # command = "/kube-dns" + - --domain={{ cluster_name }}. + - --dns-port=10053 + ports: + - containerPort: 10053 + name: dns-local + protocol: UDP + - containerPort: 10053 + name: dns-tcp-local + protocol: TCP + - name: dnsmasq + image: gcr.io/google_containers/kube-dnsmasq-amd64:1.3 + args: + - --cache-size=1000 + - --no-resolv + - --server=127.0.0.1#10053 + ports: + - containerPort: 53 + name: dns + protocol: UDP + - containerPort: 53 + name: dns-tcp + protocol: TCP + - name: healthz + image: gcr.io/google_containers/exechealthz-amd64:1.1 + resources: + # keep request = limit to keep this container in guaranteed class + limits: + cpu: 10m + memory: 50Mi + requests: + cpu: 10m + # Note that this container shouldn't really need 50Mi of memory. The + # limits are set higher than expected pending investigation on #29688. + # The extra memory was stolen from the kubedns container to keep the + # net memory requested by the pod constant. + memory: 50Mi + args: + - -cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null && nslookup kubernetes.default.svc.cluster.local 127.0.0.1:10053 >/dev/null + - -port=8080 + - -quiet + ports: + - containerPort: 8080 + protocol: TCP + dnsPolicy: Default # Don't use cluster DNS. diff --git a/roles/kubernetes-apps/templates/kubedns-svc.yml b/roles/kubernetes-apps/templates/kubedns-svc.yml new file mode 100644 index 000000000..4820525c5 --- /dev/null +++ b/roles/kubernetes-apps/templates/kubedns-svc.yml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: Service +metadata: + name: kube-dns + namespace: kube-system + labels: + k8s-app: kube-dns + kubernetes.io/cluster-service: "true" + kubernetes.io/name: "KubeDNS" +spec: + selector: + k8s-app: kube-dns + clusterIP: {{ skydns_server }} + ports: + - name: dns + port: 53 + protocol: UDP + - name: dns-tcp + port: 53 + protocol: TCP From b58512bbda4ece839cff9408ab0bf090ad4a9cf0 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Fri, 2 Sep 2016 15:09:38 +0400 Subject: [PATCH 097/695] Rename kube-dns back to kubedns kubedns should stay named the same so that services which depend on this name are not broken. --- roles/kubernetes-apps/templates/kubedns-rc.yml | 2 +- roles/kubernetes-apps/templates/kubedns-svc.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/kubernetes-apps/templates/kubedns-rc.yml b/roles/kubernetes-apps/templates/kubedns-rc.yml index 2daaf044e..4c8779eb1 100644 --- a/roles/kubernetes-apps/templates/kubedns-rc.yml +++ b/roles/kubernetes-apps/templates/kubedns-rc.yml @@ -4,7 +4,7 @@ metadata: name: kube-dns-v19 namespace: kube-system labels: - k8s-app: kube-dns + k8s-app: kubedns version: v19 kubernetes.io/cluster-service: "true" spec: diff --git a/roles/kubernetes-apps/templates/kubedns-svc.yml b/roles/kubernetes-apps/templates/kubedns-svc.yml index 4820525c5..2e21bc9e6 100644 --- a/roles/kubernetes-apps/templates/kubedns-svc.yml +++ b/roles/kubernetes-apps/templates/kubedns-svc.yml @@ -1,15 +1,15 @@ apiVersion: v1 kind: Service metadata: - name: kube-dns + name: kubedns namespace: kube-system labels: - k8s-app: kube-dns + k8s-app: kubedns kubernetes.io/cluster-service: "true" - kubernetes.io/name: "KubeDNS" + kubernetes.io/name: "kubedns" spec: selector: - k8s-app: kube-dns + k8s-app: kubedns clusterIP: {{ skydns_server }} ports: - name: dns From b62de1dcb194066fc7c240eafb8fda508cf5c2cd Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Tue, 6 Sep 2016 16:43:17 +0300 Subject: [PATCH 098/695] Reset replicacluster name of kube-dns-v19 back to kubedns This broke upgraded clusters --- roles/kubernetes-apps/templates/kubedns-rc.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/kubernetes-apps/templates/kubedns-rc.yml b/roles/kubernetes-apps/templates/kubedns-rc.yml index 4c8779eb1..8e6000167 100644 --- a/roles/kubernetes-apps/templates/kubedns-rc.yml +++ b/roles/kubernetes-apps/templates/kubedns-rc.yml @@ -1,7 +1,7 @@ apiVersion: v1 kind: ReplicationController metadata: - name: kube-dns-v19 + name: kubedns namespace: kube-system labels: k8s-app: kubedns @@ -10,12 +10,12 @@ metadata: spec: replicas: 1 selector: - k8s-app: kube-dns + k8s-app: kubedns version: v19 template: metadata: labels: - k8s-app: kube-dns + k8s-app: kubedns version: v19 kubernetes.io/cluster-service: "true" spec: From 2606e8e1c8a18b6b813f12d1ea5c8c5a6d2f2aa0 Mon Sep 17 00:00:00 2001 From: "Brandon B. Jozsa" Date: Tue, 6 Sep 2016 10:04:41 -0400 Subject: [PATCH 099/695] combine bootstrap options, add xenial support --- cluster.yml | 11 ++++++++++- coreos-bootstrap.yml | 5 ----- inventory/group_vars/all.yml | 3 +++ .../defaults/main.yml | 0 .../files/bootstrap.sh | 0 .../files/get-pip.py | 0 .../files/runner | 0 .../tasks/bootstrap-coreos.yml} | 18 +++++++++++------- .../tasks/bootstrap-ubuntu-xenial.yml | 4 ++++ roles/bootstrap-os/tasks/main.yml | 3 +++ .../templates/python_shim.j2 | 0 11 files changed, 31 insertions(+), 13 deletions(-) delete mode 100644 coreos-bootstrap.yml rename roles/{coreos-bootstrap => bootstrap-os}/defaults/main.yml (100%) rename roles/{coreos-bootstrap => bootstrap-os}/files/bootstrap.sh (100%) rename roles/{coreos-bootstrap => bootstrap-os}/files/get-pip.py (100%) rename roles/{coreos-bootstrap => bootstrap-os}/files/runner (100%) rename roles/{coreos-bootstrap/tasks/main.yml => bootstrap-os/tasks/bootstrap-coreos.yml} (66%) create mode 100644 roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml create mode 100644 roles/bootstrap-os/tasks/main.yml rename roles/{coreos-bootstrap => bootstrap-os}/templates/python_shim.j2 (100%) diff --git a/cluster.yml b/cluster.yml index 45d4183b9..0518ef28e 100644 --- a/cluster.yml +++ b/cluster.yml @@ -1,13 +1,19 @@ --- - hosts: all - gather_facts: true + gather_facts: false + roles: + - bootstrap-os + tags: + - bootstrap-os - hosts: etcd:!k8s-cluster + gather_facts: true roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: etcd, tags: etcd } - hosts: k8s-cluster + gather_facts: true roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: etcd, tags: etcd } @@ -15,14 +21,17 @@ - { role: network_plugin, tags: network } - hosts: kube-master + gather_facts: true roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: kubernetes/master, tags: master } - hosts: k8s-cluster + gather_facts: true roles: - { role: dnsmasq, tags: dnsmasq } - hosts: kube-master[0] + gather_facts: true roles: - {role: kubernetes-apps, tags: apps} diff --git a/coreos-bootstrap.yml b/coreos-bootstrap.yml deleted file mode 100644 index 88fcb888f..000000000 --- a/coreos-bootstrap.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: all - gather_facts: False - roles: - - coreos-bootstrap diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 547a9d612..32f34c310 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -1,3 +1,6 @@ +# Valid bootstrap options (required): xenial, coreos, none +bootstrap_os: none + # Directory where the binaries will be installed bin_dir: /usr/local/bin diff --git a/roles/coreos-bootstrap/defaults/main.yml b/roles/bootstrap-os/defaults/main.yml similarity index 100% rename from roles/coreos-bootstrap/defaults/main.yml rename to roles/bootstrap-os/defaults/main.yml diff --git a/roles/coreos-bootstrap/files/bootstrap.sh b/roles/bootstrap-os/files/bootstrap.sh similarity index 100% rename from roles/coreos-bootstrap/files/bootstrap.sh rename to roles/bootstrap-os/files/bootstrap.sh diff --git a/roles/coreos-bootstrap/files/get-pip.py b/roles/bootstrap-os/files/get-pip.py similarity index 100% rename from roles/coreos-bootstrap/files/get-pip.py rename to roles/bootstrap-os/files/get-pip.py diff --git a/roles/coreos-bootstrap/files/runner b/roles/bootstrap-os/files/runner similarity index 100% rename from roles/coreos-bootstrap/files/runner rename to roles/bootstrap-os/files/runner diff --git a/roles/coreos-bootstrap/tasks/main.yml b/roles/bootstrap-os/tasks/bootstrap-coreos.yml similarity index 66% rename from roles/coreos-bootstrap/tasks/main.yml rename to roles/bootstrap-os/tasks/bootstrap-coreos.yml index 4d9e11ea6..ebeced7d6 100644 --- a/roles/coreos-bootstrap/tasks/main.yml +++ b/roles/bootstrap-os/tasks/bootstrap-coreos.yml @@ -3,46 +3,50 @@ raw: stat /opt/bin/.bootstrapped register: need_bootstrap ignore_errors: True + when: bootstrap_os == "coreos" - name: Bootstrap | Run bootstrap.sh script: bootstrap.sh - when: need_bootstrap | failed + when: (bootstrap_os == "coreos" and need_bootstrap | failed) - set_fact: ansible_python_interpreter: "/opt/bin/python" + when: bootstrap_os == "coreos" - name: Bootstrap | Check if we need to install pip shell: "{{ansible_python_interpreter}} -m pip --version" register: need_pip ignore_errors: True changed_when: false - when: need_bootstrap | failed + when: (bootstrap_os == "coreos" and need_bootstrap | failed) - name: Bootstrap | Copy get-pip.py copy: src=get-pip.py dest=~/get-pip.py - when: need_pip | failed + when: (bootstrap_os == "coreos" and need_pip | failed) - name: Bootstrap | Install pip shell: "{{ansible_python_interpreter}} ~/get-pip.py" - when: need_pip | failed + when: (bootstrap_os == "coreos" and need_pip | failed) - name: Bootstrap | Remove get-pip.py file: path=~/get-pip.py state=absent - when: need_pip | failed + when: (bootstrap_os == "coreos" and need_pip | failed) - name: Bootstrap | Install pip launcher copy: src=runner dest=/opt/bin/pip mode=0755 - when: need_pip | failed + when: (bootstrap_os == "coreos" and need_pip | failed) - name: Install required python modules pip: name: "{{ item }}" with_items: "{{pip_python_modules}}" + when: bootstrap_os == "coreos" - name: Check configured hostname shell: hostname register: configured_hostname + when: bootstrap_os == "coreos" - name: Assign inventory name to unconfigured hostnames shell: sh -c "echo \"{{inventory_hostname}}\" > /etc/hostname; hostname \"{{inventory_hostname}}\"" - when: configured_hostname.stdout == 'localhost' + when: (bootstrap_os == "coreos" and configured_hostname.stdout == 'localhost') diff --git a/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml b/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml new file mode 100644 index 000000000..70a65a596 --- /dev/null +++ b/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml @@ -0,0 +1,4 @@ +--- +- name: Bootstrap Xenial target hosts for ansible use + raw: apt-get install -y python-minimal + when: bootstrap_os == "xenial" diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml new file mode 100644 index 000000000..6e35e9b38 --- /dev/null +++ b/roles/bootstrap-os/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- include: bootstrap-ubuntu-xenial.yml +- include: bootstrap-coreos.yml diff --git a/roles/coreos-bootstrap/templates/python_shim.j2 b/roles/bootstrap-os/templates/python_shim.j2 similarity index 100% rename from roles/coreos-bootstrap/templates/python_shim.j2 rename to roles/bootstrap-os/templates/python_shim.j2 From df2b2d74177b9af23d6623418976f365230bf804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96zg=C3=BCr=20Caner?= Date: Mon, 5 Sep 2016 10:45:27 +0200 Subject: [PATCH 100/695] Added bootstrap script for Ubuntu 16.04 LTS and later --- roles/ubuntu-bootstrap/defaults/main.yml | 2 ++ roles/ubuntu-bootstrap/tasks/main.yml | 14 ++++++++++++++ ubuntu-bootstrap.yml | 5 +++++ 3 files changed, 21 insertions(+) create mode 100644 roles/ubuntu-bootstrap/defaults/main.yml create mode 100644 roles/ubuntu-bootstrap/tasks/main.yml create mode 100644 ubuntu-bootstrap.yml diff --git a/roles/ubuntu-bootstrap/defaults/main.yml b/roles/ubuntu-bootstrap/defaults/main.yml new file mode 100644 index 000000000..0de237cfa --- /dev/null +++ b/roles/ubuntu-bootstrap/defaults/main.yml @@ -0,0 +1,2 @@ +--- +bootstrap_versions: Ubuntu 1[6-9]\|2[0-9]\. \ No newline at end of file diff --git a/roles/ubuntu-bootstrap/tasks/main.yml b/roles/ubuntu-bootstrap/tasks/main.yml new file mode 100644 index 000000000..317243773 --- /dev/null +++ b/roles/ubuntu-bootstrap/tasks/main.yml @@ -0,0 +1,14 @@ +--- +# raw: cat /etc/issue.net | grep '{{ bootstrap_versions }}' + +- name: Bootstrap | Check if bootstrap is needed + raw: which python + register: need_bootstrap + ignore_errors: True + +- name: Bootstrap | Install python 2.x + raw: DEBIAN_FRONTEND=noninteractive apt install -y python-minimal + when: need_bootstrap | failed + +- set_fact: + ansible_python_interpreter: "/usr/bin/python" \ No newline at end of file diff --git a/ubuntu-bootstrap.yml b/ubuntu-bootstrap.yml new file mode 100644 index 000000000..b6adf783d --- /dev/null +++ b/ubuntu-bootstrap.yml @@ -0,0 +1,5 @@ +--- +- hosts: all + gather_facts: False + roles: + - ubuntu-bootstrap From da8a604c4cc7733c8e6b9b70f047b306be2d3df0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96zg=C3=BCr=20Caner?= Date: Mon, 5 Sep 2016 11:51:22 +0200 Subject: [PATCH 101/695] Changed apt to apt-get --- roles/ubuntu-bootstrap/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ubuntu-bootstrap/tasks/main.yml b/roles/ubuntu-bootstrap/tasks/main.yml index 317243773..2d3becd44 100644 --- a/roles/ubuntu-bootstrap/tasks/main.yml +++ b/roles/ubuntu-bootstrap/tasks/main.yml @@ -7,8 +7,8 @@ ignore_errors: True - name: Bootstrap | Install python 2.x - raw: DEBIAN_FRONTEND=noninteractive apt install -y python-minimal + raw: DEBIAN_FRONTEND=noninteractive apt-get install -y python-minimal when: need_bootstrap | failed - set_fact: - ansible_python_interpreter: "/usr/bin/python" \ No newline at end of file + ansible_python_interpreter: "/usr/bin/python" From 6084e05a6bca218d513d28f2f1eede3350296a54 Mon Sep 17 00:00:00 2001 From: Antoine Legrand <2t.antoine@gmail.com> Date: Wed, 7 Sep 2016 20:19:46 +0200 Subject: [PATCH 102/695] Bootstrap os --- roles/bootstrap-os/tasks/bootstrap-coreos.yml | 19 ++++++++----------- .../tasks/bootstrap-ubuntu-xenial.yml | 4 ---- .../tasks/bootstrap-ubuntu.yml} | 0 roles/bootstrap-os/tasks/main.yml | 5 ++++- roles/ubuntu-bootstrap/defaults/main.yml | 2 -- 5 files changed, 12 insertions(+), 18 deletions(-) delete mode 100644 roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml rename roles/{ubuntu-bootstrap/tasks/main.yml => bootstrap-os/tasks/bootstrap-ubuntu.yml} (100%) delete mode 100644 roles/ubuntu-bootstrap/defaults/main.yml diff --git a/roles/bootstrap-os/tasks/bootstrap-coreos.yml b/roles/bootstrap-os/tasks/bootstrap-coreos.yml index ebeced7d6..a638ad82b 100644 --- a/roles/bootstrap-os/tasks/bootstrap-coreos.yml +++ b/roles/bootstrap-os/tasks/bootstrap-coreos.yml @@ -3,50 +3,47 @@ raw: stat /opt/bin/.bootstrapped register: need_bootstrap ignore_errors: True - when: bootstrap_os == "coreos" + - name: Bootstrap | Run bootstrap.sh script: bootstrap.sh - when: (bootstrap_os == "coreos" and need_bootstrap | failed) + when: (need_bootstrap | failed) - set_fact: ansible_python_interpreter: "/opt/bin/python" - when: bootstrap_os == "coreos" - name: Bootstrap | Check if we need to install pip shell: "{{ansible_python_interpreter}} -m pip --version" register: need_pip ignore_errors: True changed_when: false - when: (bootstrap_os == "coreos" and need_bootstrap | failed) + when: (need_bootstrap | failed) - name: Bootstrap | Copy get-pip.py copy: src=get-pip.py dest=~/get-pip.py - when: (bootstrap_os == "coreos" and need_pip | failed) + when: (need_pip | failed) - name: Bootstrap | Install pip shell: "{{ansible_python_interpreter}} ~/get-pip.py" - when: (bootstrap_os == "coreos" and need_pip | failed) + when: (need_pip | failed) - name: Bootstrap | Remove get-pip.py file: path=~/get-pip.py state=absent - when: (bootstrap_os == "coreos" and need_pip | failed) + when: (need_pip | failed) - name: Bootstrap | Install pip launcher copy: src=runner dest=/opt/bin/pip mode=0755 - when: (bootstrap_os == "coreos" and need_pip | failed) + when: (need_pip | failed) - name: Install required python modules pip: name: "{{ item }}" with_items: "{{pip_python_modules}}" - when: bootstrap_os == "coreos" - name: Check configured hostname shell: hostname register: configured_hostname - when: bootstrap_os == "coreos" - name: Assign inventory name to unconfigured hostnames shell: sh -c "echo \"{{inventory_hostname}}\" > /etc/hostname; hostname \"{{inventory_hostname}}\"" - when: (bootstrap_os == "coreos" and configured_hostname.stdout == 'localhost') + when: (configured_hostname.stdout == 'localhost') diff --git a/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml b/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml deleted file mode 100644 index 70a65a596..000000000 --- a/roles/bootstrap-os/tasks/bootstrap-ubuntu-xenial.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -- name: Bootstrap Xenial target hosts for ansible use - raw: apt-get install -y python-minimal - when: bootstrap_os == "xenial" diff --git a/roles/ubuntu-bootstrap/tasks/main.yml b/roles/bootstrap-os/tasks/bootstrap-ubuntu.yml similarity index 100% rename from roles/ubuntu-bootstrap/tasks/main.yml rename to roles/bootstrap-os/tasks/bootstrap-ubuntu.yml diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml index 6e35e9b38..5d084ec74 100644 --- a/roles/bootstrap-os/tasks/main.yml +++ b/roles/bootstrap-os/tasks/main.yml @@ -1,3 +1,6 @@ --- -- include: bootstrap-ubuntu-xenial.yml +- include: bootstrap-ubuntu.yml + when: bootstrap_os == "ubuntu" + - include: bootstrap-coreos.yml + when: bootstrap_os == "coreos" \ No newline at end of file diff --git a/roles/ubuntu-bootstrap/defaults/main.yml b/roles/ubuntu-bootstrap/defaults/main.yml deleted file mode 100644 index 0de237cfa..000000000 --- a/roles/ubuntu-bootstrap/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -bootstrap_versions: Ubuntu 1[6-9]\|2[0-9]\. \ No newline at end of file From ccbb2ee3aed8ae4b71e84f818c5261b91a4a65a1 Mon Sep 17 00:00:00 2001 From: Antoine Legrand <2t.antoine@gmail.com> Date: Wed, 7 Sep 2016 20:02:06 +0200 Subject: [PATCH 103/695] App deployer plugins --- cluster.yml | 2 +- inventory/group_vars/all.yml | 6 +----- .../{ => ansible}/library/kube.py | 0 .../{ => ansible}/tasks/main.yaml | 0 .../{ => ansible}/templates/kubedns-rc.yml | 0 .../{ => ansible}/templates/kubedns-svc.yml | 0 roles/kubernetes-apps/helm/.gitkeep | 0 roles/kubernetes-apps/helm/tasks/main.yml | 2 ++ .../kubernetes-apps/kpm/library}/kpm.py | 0 roles/kubernetes-apps/kpm/tasks/main.yaml | 20 +++++++++++++++++++ roles/kubernetes-apps/meta/main.yaml | 3 +++ 11 files changed, 27 insertions(+), 6 deletions(-) rename roles/kubernetes-apps/{ => ansible}/library/kube.py (100%) rename roles/kubernetes-apps/{ => ansible}/tasks/main.yaml (100%) rename roles/kubernetes-apps/{ => ansible}/templates/kubedns-rc.yml (100%) rename roles/kubernetes-apps/{ => ansible}/templates/kubedns-svc.yml (100%) create mode 100644 roles/kubernetes-apps/helm/.gitkeep create mode 100644 roles/kubernetes-apps/helm/tasks/main.yml rename {library => roles/kubernetes-apps/kpm/library}/kpm.py (100%) create mode 100644 roles/kubernetes-apps/kpm/tasks/main.yaml create mode 100644 roles/kubernetes-apps/meta/main.yaml diff --git a/cluster.yml b/cluster.yml index 45d4183b9..091bdc103 100644 --- a/cluster.yml +++ b/cluster.yml @@ -25,4 +25,4 @@ - hosts: kube-master[0] roles: - - {role: kubernetes-apps, tags: apps} + - { role: kubernetes-apps, tags: apps } \ No newline at end of file diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 547a9d612..59c572198 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -130,9 +130,5 @@ dns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(2)|ipaddr('address') docker_options: "--insecure-registry={{ kube_service_addresses }}" # default packages to install within the cluster -kpm_packages: - - name: kube-system/kubedns - namespace: kube-system - variables: - cluster_ip: "{{skydns_server}}" +kpm_packages: [] # - name: kube-system/grafana diff --git a/roles/kubernetes-apps/library/kube.py b/roles/kubernetes-apps/ansible/library/kube.py similarity index 100% rename from roles/kubernetes-apps/library/kube.py rename to roles/kubernetes-apps/ansible/library/kube.py diff --git a/roles/kubernetes-apps/tasks/main.yaml b/roles/kubernetes-apps/ansible/tasks/main.yaml similarity index 100% rename from roles/kubernetes-apps/tasks/main.yaml rename to roles/kubernetes-apps/ansible/tasks/main.yaml diff --git a/roles/kubernetes-apps/templates/kubedns-rc.yml b/roles/kubernetes-apps/ansible/templates/kubedns-rc.yml similarity index 100% rename from roles/kubernetes-apps/templates/kubedns-rc.yml rename to roles/kubernetes-apps/ansible/templates/kubedns-rc.yml diff --git a/roles/kubernetes-apps/templates/kubedns-svc.yml b/roles/kubernetes-apps/ansible/templates/kubedns-svc.yml similarity index 100% rename from roles/kubernetes-apps/templates/kubedns-svc.yml rename to roles/kubernetes-apps/ansible/templates/kubedns-svc.yml diff --git a/roles/kubernetes-apps/helm/.gitkeep b/roles/kubernetes-apps/helm/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/roles/kubernetes-apps/helm/tasks/main.yml b/roles/kubernetes-apps/helm/tasks/main.yml new file mode 100644 index 000000000..9fd691ddd --- /dev/null +++ b/roles/kubernetes-apps/helm/tasks/main.yml @@ -0,0 +1,2 @@ +--- +- debug: msg="No helm charts" diff --git a/library/kpm.py b/roles/kubernetes-apps/kpm/library/kpm.py similarity index 100% rename from library/kpm.py rename to roles/kubernetes-apps/kpm/library/kpm.py diff --git a/roles/kubernetes-apps/kpm/tasks/main.yaml b/roles/kubernetes-apps/kpm/tasks/main.yaml new file mode 100644 index 000000000..7e88cc30d --- /dev/null +++ b/roles/kubernetes-apps/kpm/tasks/main.yaml @@ -0,0 +1,20 @@ +--- +- name: install kpm + pip: + name: "kpm" + state: "present" + version: "0.16.1" + when: kpm_packages | length > 0 + +- name: manage kubernetes applications + kpm: + namespace: "{{item.namespace | default(kpm_namespace | default('default'))}}" + registry: "{{item.registry | default(kpm_registry | default('https://api.kpm.sh'))}}" + state: "{{item.state | default(omit)}}" + version: "{{item.version | default(omit)}}" + variables: "{{item.variables | default(omit)}}" + name: "{{item.name}}" + with_items: "{{kpm_packages}}" + register: kpmresults + environment: + PATH: "{{ ansible_env.PATH }}:{{ bin_dir }}" diff --git a/roles/kubernetes-apps/meta/main.yaml b/roles/kubernetes-apps/meta/main.yaml new file mode 100644 index 000000000..496517d72 --- /dev/null +++ b/roles/kubernetes-apps/meta/main.yaml @@ -0,0 +1,3 @@ +dependencies: + - {role: kubernetes-apps/ansible, tags: apps} + - {role: kubernetes-apps/kpm, tags: [apps, kpm]} From 739cf5995361e69ab1ce378cf1d5ceaf8691d0cc Mon Sep 17 00:00:00 2001 From: Anthony Haussmann Date: Tue, 13 Sep 2016 14:58:29 +0200 Subject: [PATCH 104/695] Determine hyperkube cni to use Starting from version 1.3.4 of hyperkube, calico is "canalized" which requires flannel and hostonly cni plugins.So we let hyperkube ship necessary cni --- roles/network_plugin/calico/tasks/main.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index abe0f690d..75cf2d4a2 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -22,6 +22,17 @@ changed_when: false notify: restart calico-node +- name: Calico | Determine hyperkube cni to use depending of the version of kube + set_fact: + use_hyperkube_cni: > + {%- if kube_version | version_compare('v1.3.4','>=') -%} + true + {%- elif kube_version | version_compare('v1.3.4','<') -%} + false + {%- else -%} + {{ ErrorCannotRecognizeVersion }} + {%- endif -%} + - name: Calico | Install calico cni bin command: rsync -piu "{{ local_release_dir }}/calico/bin/calico" "/opt/cni/bin/calico" changed_when: false From d47a2d03b46d2b1dcd771385bbccc16f6c894ab1 Mon Sep 17 00:00:00 2001 From: Anthony Haussmann Date: Tue, 13 Sep 2016 14:59:50 +0200 Subject: [PATCH 105/695] Delete default variable use_hyperkube_cni The variable is now set via a task depending of the version of kube --- roles/network_plugin/calico/defaults/main.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/roles/network_plugin/calico/defaults/main.yml b/roles/network_plugin/calico/defaults/main.yml index 0f59b21d5..3cdf5b492 100644 --- a/roles/network_plugin/calico/defaults/main.yml +++ b/roles/network_plugin/calico/defaults/main.yml @@ -13,8 +13,3 @@ calicoctl_image_tag: "{{ calico_version }}" calico_node_image_repo: calico/node calico_node_image_tag: "{{ calico_version }}" - -# Set to true if your Hyperkube has all required components to run -# calico. This is required in order to run canalized calico. -use_hyperkube_cni: false - From 6fdcaa1a634aa00dd22766d36290f7dcce4115b2 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Tue, 13 Sep 2016 14:36:01 +0200 Subject: [PATCH 106/695] Add retries for copying binaries from containers Closes issue: https://github.com/kubespray/kargo/issues/479 Signed-off-by: Bogdan Dobrelya --- roles/etcd/tasks/install.yml | 4 ++++ roles/kubernetes/master/tasks/main.yml | 5 ++++- roles/network_plugin/calico/tasks/main.yml | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/roles/etcd/tasks/install.yml b/roles/etcd/tasks/install.yml index 26271943a..959133c29 100644 --- a/roles/etcd/tasks/install.yml +++ b/roles/etcd/tasks/install.yml @@ -17,6 +17,10 @@ /usr/bin/docker cp etcdctl-binarycopy:{{ etcd_container_bin_dir }}etcdctl {{ bin_dir }}/etcdctl && /usr/bin/docker rm -f etcdctl-binarycopy" when: etcd_deployment_type == "docker" + register: etcd_task_result + until: etcd_task_result.rc == 0 + retries: 4 + delay: "{{ 20 | random + 3 }}" changed_when: false #Plan B: looks nicer, but requires docker-py on all hosts: diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml index 4d0933550..e8dfe08fc 100644 --- a/roles/kubernetes/master/tasks/main.yml +++ b/roles/kubernetes/master/tasks/main.yml @@ -9,8 +9,11 @@ - name: Copy kubectl from hyperkube container command: "/usr/bin/docker run --rm -v {{ bin_dir }}:/systembindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp /hyperkube /systembindir/kubectl" + register: kube_task_result + until: kube_task_result.rc == 0 + retries: 4 + delay: "{{ 20 | random + 3 }}" changed_when: false - register: kubectl_launcher - name: Write kube-apiserver manifest template: diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index abe0f690d..09c3b47d5 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -34,6 +34,10 @@ - name: Calico | Copy cni plugins from hyperkube command: "/usr/bin/docker run --rm -v /opt/cni/bin:/cnibindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp -r /opt/cni/bin/. /cnibindir/" + register: cni_task_result + until: cni_task_result.rc == 0 + retries: 4 + delay: "{{ 20 | random + 3 }}" changed_when: false when: use_hyperkube_cni From ef43b2159739678e3d0cc2c3df5ceeae6914e2a1 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Tue, 13 Sep 2016 16:48:07 +0300 Subject: [PATCH 107/695] Fix kubedns idempotency Removed api-version from kube.py because it is deprecated. Updating both kube.py because dnsmasq one is actually used. Fixed name back to kubedns for checking its resource. --- roles/dnsmasq/library/kube.py | 13 ------------- roles/kubernetes-apps/ansible/library/kube.py | 13 ------------- roles/kubernetes-apps/ansible/tasks/main.yaml | 2 +- 3 files changed, 1 insertion(+), 27 deletions(-) diff --git a/roles/dnsmasq/library/kube.py b/roles/dnsmasq/library/kube.py index aab92a733..2922c6212 100644 --- a/roles/dnsmasq/library/kube.py +++ b/roles/dnsmasq/library/kube.py @@ -44,12 +44,6 @@ options: default: null description: - The url for the API server that commands are executed against. - api_version: - required: false - choices: ['v1', 'v1beta3'] - default: v1 - description: - - The API version associated with cluster. force: required: false default: false @@ -105,10 +99,6 @@ class KubeManager(object): if self.kubectl is None: self.kubectl = module.get_bin_path('kubectl', True) self.base_cmd = [self.kubectl] - self.api_version = module.params.get('api_version') - - if self.api_version: - self.base_cmd.append('--api-version=' + self.api_version) if module.params.get('server'): self.base_cmd.append('--server=' + module.params.get('server')) @@ -164,8 +154,6 @@ class KubeManager(object): return [] cmd = ['replace'] - if self.api_version != 'v1': - cmd = ['update'] if self.force: cmd.append('--force') @@ -271,7 +259,6 @@ def main(): label=dict(), server=dict(), kubectl=dict(), - api_version=dict(default='v1', choices=['v1', 'v1beta3']), force=dict(default=False, type='bool'), all=dict(default=False, type='bool'), log_level=dict(default=0, type='int'), diff --git a/roles/kubernetes-apps/ansible/library/kube.py b/roles/kubernetes-apps/ansible/library/kube.py index aab92a733..2922c6212 100644 --- a/roles/kubernetes-apps/ansible/library/kube.py +++ b/roles/kubernetes-apps/ansible/library/kube.py @@ -44,12 +44,6 @@ options: default: null description: - The url for the API server that commands are executed against. - api_version: - required: false - choices: ['v1', 'v1beta3'] - default: v1 - description: - - The API version associated with cluster. force: required: false default: false @@ -105,10 +99,6 @@ class KubeManager(object): if self.kubectl is None: self.kubectl = module.get_bin_path('kubectl', True) self.base_cmd = [self.kubectl] - self.api_version = module.params.get('api_version') - - if self.api_version: - self.base_cmd.append('--api-version=' + self.api_version) if module.params.get('server'): self.base_cmd.append('--server=' + module.params.get('server')) @@ -164,8 +154,6 @@ class KubeManager(object): return [] cmd = ['replace'] - if self.api_version != 'v1': - cmd = ['update'] if self.force: cmd.append('--force') @@ -271,7 +259,6 @@ def main(): label=dict(), server=dict(), kubectl=dict(), - api_version=dict(default='v1', choices=['v1', 'v1beta3']), force=dict(default=False, type='bool'), all=dict(default=False, type='bool'), log_level=dict(default=0, type='int'), diff --git a/roles/kubernetes-apps/ansible/tasks/main.yaml b/roles/kubernetes-apps/ansible/tasks/main.yaml index d5694c669..aadd9c1a5 100644 --- a/roles/kubernetes-apps/ansible/tasks/main.yaml +++ b/roles/kubernetes-apps/ansible/tasks/main.yaml @@ -9,7 +9,7 @@ - name: Kubernetes Apps | Start Resources kube: - name: KubeDNS + name: kubedns namespace: kube-system kubectl: "{{bin_dir}}/kubectl" resource: "{{item.item.type}}" From 783871a2539392a5cd0cb0deb93c05ca8a502252 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Tue, 13 Sep 2016 15:29:22 +0200 Subject: [PATCH 108/695] Add retries for packages installation Signed-off-by: Bogdan Dobrelya --- roles/docker/tasks/main.yml | 8 ++++++++ roles/kubernetes/preinstall/tasks/main.yml | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 6d71c4980..826e16978 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -27,6 +27,10 @@ id: "{{item}}" keyserver: "{{docker_repo_key_info.keyserver}}" state: present + register: keyserver_task_result + until: keyserver_task_result|success + retries: 4 + delay: "{{ 20 | random + 3 }}" with_items: "{{ docker_repo_key_info.repo_keys }}" when: ansible_os_family != "CoreOS" @@ -51,6 +55,10 @@ pkg: "{{item.name}}" force: "{{item.force|default(omit)}}" state: present + register: docker_task_result + until: docker_task_result|success + retries: 4 + delay: "{{ 20 | random + 3 }}" with_items: "{{ docker_package_info.pkgs }}" when: (ansible_os_family != "CoreOS") and (docker_package_info.pkgs|length > 0) diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index ec1bd64c0..8c22b73bf 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -101,6 +101,10 @@ module: "{{ ansible_pkg_mgr }}" name: "{{ item }}" state: latest + register: pkgs_task_result + until: pkgs_task_result|success + retries: 4 + delay: "{{ 20 | random + 3 }}" with_items: "{{required_pkgs | default([]) | union(common_required_pkgs|default([]))}}" when: ansible_os_family != "CoreOS" From 3ae29d763e43e5801cee0436f2c1ccb5879ab8f4 Mon Sep 17 00:00:00 2001 From: Adrian Ursu Date: Wed, 14 Sep 2016 10:34:47 +0100 Subject: [PATCH 109/695] Added IntelliJ IDEA Project folder to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1f9359992..86dec6fb4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.retry inventory/vagrant_ansible_inventory temp +.idea From e3ebabc3b00260a63bfb2dcf6266f98315ada4e2 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Wed, 14 Sep 2016 18:14:26 +0300 Subject: [PATCH 110/695] switch /etc/hosts to use blockinfile --- roles/kubernetes/preinstall/tasks/etchosts.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/roles/kubernetes/preinstall/tasks/etchosts.yml b/roles/kubernetes/preinstall/tasks/etchosts.yml index dd8562b8c..6f21ffa8f 100644 --- a/roles/kubernetes/preinstall/tasks/etchosts.yml +++ b/roles/kubernetes/preinstall/tasks/etchosts.yml @@ -1,14 +1,15 @@ --- - name: Hosts | populate inventory into hosts file - lineinfile: + blockinfile: dest: /etc/hosts - regexp: "^{{ hostvars[item]['access_ip'] | default(hostvars[item]['ip'] | default(hostvars[item].ansible_default_ipv4.address)) }} {{ item }}$" - line: "{{ hostvars[item]['access_ip'] | default(hostvars[item]['ip'] | default(hostvars[item].ansible_default_ipv4.address)) }} {{ item }}" + block: |- + {% for item in groups['all'] -%} + {{ hostvars[item]['access_ip'] | default(hostvars[item]['ip'] | default(hostvars[item].ansible_default_ipv4.address)) }} {{ item }} + {% endfor %} state: present create: yes backup: yes - when: hostvars[item].ansible_default_ipv4.address is defined - with_items: "{{ groups['all'] }}" + marker: "# Ansible inventory hosts {mark}" - name: Hosts | populate kubernetes loadbalancer address into hosts file lineinfile: From 0db441b28fba42c5153542912e19f490289bbdb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Ole=C5=9B?= Date: Wed, 14 Sep 2016 21:27:33 +0200 Subject: [PATCH 111/695] Add socat do required pkgs It's required for port forwarding. --- roles/kubernetes/preinstall/defaults/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml index f419a091c..343ba5707 100644 --- a/roles/kubernetes/preinstall/defaults/main.yml +++ b/roles/kubernetes/preinstall/defaults/main.yml @@ -28,6 +28,7 @@ common_required_pkgs: - curl - rsync - bash-completion + - socat # Set to true if your network does not support IPv6 # This maybe necessary for pulling Docker images from From b69d5f6e6e25c50666c8b9ce9c187f115a04a053 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Thu, 15 Sep 2016 16:09:40 +0300 Subject: [PATCH 112/695] Fix logic handling for use_hyperkube_cni --- roles/network_plugin/calico/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index eef15816a..1ce6c79d3 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -36,12 +36,12 @@ - name: Calico | Install calico cni bin command: rsync -piu "{{ local_release_dir }}/calico/bin/calico" "/opt/cni/bin/calico" changed_when: false - when: not use_hyperkube_cni + when: use_hyperkube_cni|bool == false - name: Calico | Install calico-ipam cni bin command: rsync -piu "{{ local_release_dir }}/calico/bin/calico" "/opt/cni/bin/calico-ipam" changed_when: false - when: not use_hyperkube_cni + when: use_hyperkube_cni|bool == false - name: Calico | Copy cni plugins from hyperkube command: "/usr/bin/docker run --rm -v /opt/cni/bin:/cnibindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp -r /opt/cni/bin/. /cnibindir/" From 422428908a09003ab650357530677859eb11af5c Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Wed, 14 Sep 2016 14:30:57 +0200 Subject: [PATCH 113/695] Download containers and save all Move version/repo vars to download role. Add container to download params, which overrides url/source_url, if enabled. Fix networking plugins download depending on kube_network_plugin. Signed-off-by: Bogdan Dobrelya --- roles/download/defaults/main.yml | 53 ++++++++++++++++++- roles/download/tasks/main.yml | 34 ++++++++++-- roles/etcd/defaults/main.yml | 8 --- roles/etcd/meta/main.yml | 5 +- roles/kubernetes/master/defaults/main.yml | 3 -- roles/kubernetes/master/meta/main.yml | 4 +- roles/kubernetes/node/defaults/main.yml | 3 -- roles/kubernetes/node/meta/main.yml | 4 +- roles/network_plugin/calico/defaults/main.yml | 6 --- roles/network_plugin/calico/meta/main.yml | 6 +++ .../network_plugin/flannel/defaults/main.yml | 7 --- roles/network_plugin/flannel/meta/main.yml | 6 +++ 12 files changed, 98 insertions(+), 41 deletions(-) create mode 100644 roles/network_plugin/flannel/meta/main.yml diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 610fb5b7a..51f0b02fd 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -13,6 +13,8 @@ etcd_version: v3.0.6 calico_version: v0.20.0 calico_cni_version: v1.3.1 weave_version: v1.6.1 +flannel_version: 0.5.5 +flannel_server_helper_version: 0.1 # Download URL's etcd_download_url: "https://storage.googleapis.com/kargo/{{etcd_version}}_etcd" @@ -26,6 +28,22 @@ calico_cni_ipam_checksum: "3df6951a30749c279229e7e318e74ac4e41263996125be65257db weave_checksum: "9bf9d6e5a839e7bcbb28cc00c7acae9d09284faa3e7a3720ca9c2b9e93c68580" etcd_checksum: "385afd518f93e3005510b7aaa04d38ee4a39f06f5152cd33bb86d4f0c94c7485" +# Containers +# Possible values: host, docker +etcd_deployment_type: "docker" +etcd_image_repo: "quay.io/coreos/etcd" +etcd_image_tag: "{{ etcd_version }}" +flannel_server_helper_image_repo: "gcr.io/google_containers/flannel-server-helper" +flannel_server_helper_image_tag: "{{ flannel_server_helper_version }}" +flannel_image_repo: "quay.io/coreos/flannel" +flannel_image_tag: "{{ flannel_version }}" +calicoctl_image_repo: "calico/ctl" +calicoctl_image_tag: "{{ calico_version }}" +calico_node_image_repo: "calico/node" +calico_node_image_tag: "{{ calico_version }}" +hyperkube_image_repo: "quay.io/coreos/hyperkube" +hyperkube_image_tag: "{{ kube_version }}_coreos.0" + downloads: calico_cni_plugin: dest: calico/bin/calico @@ -35,6 +53,7 @@ downloads: url: "{{ calico_cni_download_url }}" owner: "root" mode: "0755" + enabled: "{{ kube_network_plugin == 'calico' }}" calico_cni_plugin_ipam: dest: calico/bin/calico-ipam version: "{{calico_cni_version}}" @@ -43,6 +62,7 @@ downloads: url: "{{ calico_cni_ipam_download_url }}" owner: "root" mode: "0755" + enabled: "{{ kube_network_plugin == 'calico' }}" weave: dest: weave/bin/weave version: "{{weave_version}}" @@ -51,6 +71,7 @@ downloads: sha256: "{{ weave_checksum }}" owner: "root" mode: "0755" + enabled: "{{ kube_network_plugin == 'weave' }}" etcd: version: "{{etcd_version}}" dest: "etcd/etcd-{{ etcd_version }}-linux-amd64.tar.gz" @@ -60,10 +81,38 @@ downloads: unarchive: true owner: "etcd" mode: "0755" - nothing: - enabled: false + container: "{{ etcd_deployment_type == 'docker' }}" + repo: "{{ etcd_image_repo }}" + tag: "{{ etcd_image_tag }}" + hyperkube: + container: true + repo: "{{ hyperkube_image_repo }}" + tag: "{{ hyperkube_image_tag }}" + flannel: + container: true + repo: "{{ flannel_image_repo }}" + tag: "{{ flannel_image_tag }}" + enabled: "{{ kube_network_plugin == 'flannel' }}" + flannel_server_helper: + container: true + repo: "{{ flannel_server_helper_image_repo }}" + tag: "{{ flannel_server_helper_image_tag }}" + enabled: "{{ kube_network_plugin == 'flannel' }}" + calicoctl: + container: true + repo: "{{ calicoctl_image_repo }}" + tag: "{{ calicoctl_image_tag }}" + enabled: "{{ kube_network_plugin == 'calico' }}" + calico_node: + container: true + repo: "{{ calico_node_image_repo }}" + tag: "{{ calico_node_image_tag }}" + enabled: "{{ kube_network_plugin == 'calico' }}" download: + container: "{{ file.container|default('false') }}" + repo: "{{ file.repo|default(None) }}" + tag: "{{ file.tag|default(None) }}" enabled: "{{ file.enabled|default('true') }}" dest: "{{ file.dest|default(None) }}" version: "{{ file.version|default(None) }}" diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml index 40c52f5ea..8d9c351a3 100644 --- a/roles/download/tasks/main.yml +++ b/roles/download/tasks/main.yml @@ -4,11 +4,11 @@ - name: downloading... debug: msg: "{{ download.url }}" - when: "{{ download.enabled|bool }}" + when: "{{ download.enabled|bool and not download.container|bool }}" - name: Create dest directories file: path={{local_release_dir}}/{{download.dest|dirname}} state=directory recurse=yes - when: "{{ download.enabled|bool }}" + when: "{{ download.enabled|bool and not download.container|bool }}" run_once: "{{ download_run_once|bool }}" - name: Download items @@ -18,7 +18,11 @@ sha256sum: "{{download.sha256 | default(omit)}}" owner: "{{ download.owner|default(omit) }}" mode: "{{ download.mode|default(omit) }}" - when: "{{ download.enabled|bool }}" + register: get_url_result + until: "'OK' in get_url_result.msg or 'file already exists' in get_url_result.msg" + retries: 4 + delay: "{{ 20 | random + 3 }}" + when: "{{ download.enabled|bool and not download.container|bool }}" run_once: "{{ download_run_once|bool }}" - name: Extract archives @@ -28,7 +32,7 @@ owner: "{{ download.owner|default(omit) }}" mode: "{{ download.mode|default(omit) }}" copy: no - when: "{{ download.enabled|bool }} and ({{download.unarchive is defined and download.unarchive == True}})" + when: "{{ download.enabled|bool and not download.container|bool and download.unarchive is defined and download.unarchive == True }}" run_once: "{{ download_run_once|bool }}" - name: Fix permissions @@ -37,5 +41,25 @@ path: "{{local_release_dir}}/{{download.dest}}" owner: "{{ download.owner|default(omit) }}" mode: "{{ download.mode|default(omit) }}" - when: "{{ download.enabled|bool }} and ({{download.unarchive is not defined or download.unarchive == False}})" + when: "{{ download.enabled|bool and not download.container|bool and (download.unarchive is not defined or download.unarchive == False) }}" + run_once: "{{ download_run_once|bool }}" + +- name: pulling... + debug: + msg: "{{ download.repo }}:{{ download.tag }}" + when: "{{ download.enabled|bool and download.container|bool }}" + +- name: Create dest directory for container images to be saved + file: path="{{local_release_dir}}/containers" state=directory recurse=yes + when: "{{ download.enabled|bool and download.container|bool }}" + run_once: "{{ download_run_once|bool }}" + +#NOTE(bogdando) this brings no docker-py deps for nodes +- name: Download containers + command: "/usr/bin/docker pull {{ download.repo }}:{{ download.tag }}" + register: pull_task_result + until: pull_task_result.rc == 0 + retries: 4 + delay: "{{ 20 | random + 3 }}" + when: "{{ download.enabled|bool and download.container|bool }}" run_once: "{{ download_run_once|bool }}" diff --git a/roles/etcd/defaults/main.yml b/roles/etcd/defaults/main.yml index 585f75a40..02234a2fe 100644 --- a/roles/etcd/defaults/main.yml +++ b/roles/etcd/defaults/main.yml @@ -1,10 +1,2 @@ --- -etcd_version: v3.0.6 etcd_bin_dir: "{{ local_release_dir }}/etcd/etcd-{{ etcd_version }}-linux-amd64/" - -# Possible values: host, docker -etcd_deployment_type: "docker" - - -etcd_image_repo: "quay.io/coreos/etcd" -etcd_image_tag: "{{ etcd_version }}" diff --git a/roles/etcd/meta/main.yml b/roles/etcd/meta/main.yml index 8e4cb5846..b55966a99 100644 --- a/roles/etcd/meta/main.yml +++ b/roles/etcd/meta/main.yml @@ -3,8 +3,7 @@ dependencies: - role: adduser user: "{{ addusers.etcd }}" when: ansible_os_family != 'CoreOS' - - role: download - file: "{{ downloads.etcd }}" - when: etcd_deployment_type == "host" - role: docker when: (ansible_os_family != "CoreOS" and etcd_deployment_type == "docker" or inventory_hostname in groups['k8s-cluster']) + - role: download + file: "{{ downloads.etcd }}" diff --git a/roles/kubernetes/master/defaults/main.yml b/roles/kubernetes/master/defaults/main.yml index ac23c0ada..d0be14d64 100644 --- a/roles/kubernetes/master/defaults/main.yml +++ b/roles/kubernetes/master/defaults/main.yml @@ -10,6 +10,3 @@ kube_users_dir: "{{ kube_config_dir }}/users" # An experimental dev/test only dynamic volumes provisioner, # for PetSets. Works for kube>=v1.3 only. kube_hostpath_dynamic_provisioner: "false" - -hyperkube_image_repo: "quay.io/coreos/hyperkube" -hyperkube_image_tag: "{{ kube_version }}_coreos.0" diff --git a/roles/kubernetes/master/meta/main.yml b/roles/kubernetes/master/meta/main.yml index 021c01de4..f4da42e39 100644 --- a/roles/kubernetes/master/meta/main.yml +++ b/roles/kubernetes/master/meta/main.yml @@ -1,4 +1,4 @@ --- dependencies: - - role: download # For kube_version variable - file: "{{ downloads.nothing }}" + - role: download + file: "{{ downloads.hyperkube }}" diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 96b941a5e..7dc7d1183 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -8,9 +8,6 @@ kube_resolv_conf: "/etc/resolv.conf" kube_proxy_mode: iptables -hyperkube_image_repo: "quay.io/coreos/hyperkube" -hyperkube_image_tag: "{{ kube_version }}_coreos.0" - # IP address of the DNS server. # Kubernetes will create a pod with several containers, serving as the DNS # server and expose it under this IP address. The IP address must be from diff --git a/roles/kubernetes/node/meta/main.yml b/roles/kubernetes/node/meta/main.yml index c65c68393..b9cbbd9ff 100644 --- a/roles/kubernetes/node/meta/main.yml +++ b/roles/kubernetes/node/meta/main.yml @@ -1,5 +1,5 @@ --- dependencies: - - role: download #For kube_version - file: "{{ downloads.nothing }}" + - role: download + file: "{{ downloads.hyperkube }}" - role: kubernetes/secrets diff --git a/roles/network_plugin/calico/defaults/main.yml b/roles/network_plugin/calico/defaults/main.yml index 3cdf5b492..b5b275e04 100644 --- a/roles/network_plugin/calico/defaults/main.yml +++ b/roles/network_plugin/calico/defaults/main.yml @@ -7,9 +7,3 @@ ipip: false # cloud_provider can only be set to 'gce' or 'aws' # cloud_provider: - -calicoctl_image_repo: calico/ctl -calicoctl_image_tag: "{{ calico_version }}" - -calico_node_image_repo: calico/node -calico_node_image_tag: "{{ calico_version }}" diff --git a/roles/network_plugin/calico/meta/main.yml b/roles/network_plugin/calico/meta/main.yml index 92ab5391b..c13e976d3 100644 --- a/roles/network_plugin/calico/meta/main.yml +++ b/roles/network_plugin/calico/meta/main.yml @@ -4,3 +4,9 @@ dependencies: file: "{{ downloads.calico_cni_plugin }}" - role: download file: "{{ downloads.calico_cni_plugin_ipam }}" + - role: download + file: "{{ downloads.calico_node }}" + - role: download + file: "{{ downloads.calicoctl }}" + - role: download + file: "{{ downloads.hyperkube }}" diff --git a/roles/network_plugin/flannel/defaults/main.yml b/roles/network_plugin/flannel/defaults/main.yml index 8ff48cdb0..ce00090ec 100644 --- a/roles/network_plugin/flannel/defaults/main.yml +++ b/roles/network_plugin/flannel/defaults/main.yml @@ -10,10 +10,3 @@ flannel_public_ip: "{{ access_ip|default(ip|default(ansible_default_ipv4.address # You can choose what type of flannel backend to use # please refer to flannel's docs : https://github.com/coreos/flannel/blob/master/README.md flannel_backend_type: "vxlan" - - -flannel_server_helper_image_repo: "gcr.io/google_containers/flannel-server-helper" -flannel_server_helper_image_tag: "0.1" - -flannel_image_repo: "quay.io/coreos/flannel" -flannel_image_tag: "0.5.5" diff --git a/roles/network_plugin/flannel/meta/main.yml b/roles/network_plugin/flannel/meta/main.yml new file mode 100644 index 000000000..935d9c3bb --- /dev/null +++ b/roles/network_plugin/flannel/meta/main.yml @@ -0,0 +1,6 @@ +--- +dependencies: + - role: download + file: "{{ downloads.flannel_server_helper }}" + - role: download + file: "{{ downloads.flannel }}" From 9926395e5b4f3f35d00b33fd7a4d130977f70df7 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Wed, 14 Sep 2016 18:20:10 +0200 Subject: [PATCH 114/695] Distribute downloaded artifacts Signed-off-by: Bogdan Dobrelya --- roles/download/tasks/main.yml | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml index 8d9c351a3..73622f06d 100644 --- a/roles/download/tasks/main.yml +++ b/roles/download/tasks/main.yml @@ -9,6 +9,7 @@ - name: Create dest directories file: path={{local_release_dir}}/{{download.dest|dirname}} state=directory recurse=yes when: "{{ download.enabled|bool and not download.container|bool }}" + delegate_to: "{{ groups['kube-master'][0] if download_run_once|bool else omit }}" run_once: "{{ download_run_once|bool }}" - name: Download items @@ -23,6 +24,7 @@ retries: 4 delay: "{{ 20 | random + 3 }}" when: "{{ download.enabled|bool and not download.container|bool }}" + delegate_to: "{{ groups['kube-master'][0] if download_run_once|bool else omit }}" run_once: "{{ download_run_once|bool }}" - name: Extract archives @@ -33,6 +35,7 @@ mode: "{{ download.mode|default(omit) }}" copy: no when: "{{ download.enabled|bool and not download.container|bool and download.unarchive is defined and download.unarchive == True }}" + delegate_to: "{{ groups['kube-master'][0] if download_run_once|bool else omit }}" run_once: "{{ download_run_once|bool }}" - name: Fix permissions @@ -42,6 +45,7 @@ owner: "{{ download.owner|default(omit) }}" mode: "{{ download.mode|default(omit) }}" when: "{{ download.enabled|bool and not download.container|bool and (download.unarchive is not defined or download.unarchive == False) }}" + delegate_to: "{{ groups['kube-master'][0] if download_run_once|bool else omit }}" run_once: "{{ download_run_once|bool }}" - name: pulling... @@ -49,10 +53,9 @@ msg: "{{ download.repo }}:{{ download.tag }}" when: "{{ download.enabled|bool and download.container|bool }}" -- name: Create dest directory for container images to be saved +- name: Create dest directory for saved/loaded container images file: path="{{local_release_dir}}/containers" state=directory recurse=yes when: "{{ download.enabled|bool and download.container|bool }}" - run_once: "{{ download_run_once|bool }}" #NOTE(bogdando) this brings no docker-py deps for nodes - name: Download containers @@ -62,4 +65,29 @@ retries: 4 delay: "{{ 20 | random + 3 }}" when: "{{ download.enabled|bool and download.container|bool }}" + delegate_to: "{{ groups['kube-master'][0] if download_run_once|bool else omit }}" run_once: "{{ download_run_once|bool }}" + +- set_fact: + fname: "{{local_release_dir}}/containers/{{download.repo|regex_replace('/|\0|:', '_')}}:{{download.tag|regex_replace('/|\0|:', '_')}}.tar" + +- name: Download | save container images + shell: docker save "{{ download.repo }}:{{ download.tag }}" > "{{ fname }}" + delegate_to: "{{groups['kube-master'][0]}}" + run_once: true + when: ansible_os_family != "CoreOS" and download_run_once|bool + +- name: Download | get container images + synchronize: + src: "{{ fname }}" + dest: "{{local_release_dir}}/containers" + mode: push + register: get_task + until: get_task|success + retries: 4 + delay: "{{ 20 | random + 3 }}" + when: ansible_os_family != "CoreOS" and inventory_hostname != groups['kube-master'][0] and download_run_once|bool + +- name: Download | load container images + shell: docker load < "{{ fname }}" + when: ansible_os_family != "CoreOS" and inventory_hostname != groups['kube-master'][0] and download_run_once|bool From 390764c2b4e5777c74ef52ab5e4199ea34151e69 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Thu, 15 Sep 2016 11:23:27 +0200 Subject: [PATCH 115/695] Add retry_stagger var for failed download/pushes. * Add the retry_stagger var to tweak push and retry time strategies. * Add large deployments related docs. Signed-off-by: Bogdan Dobrelya --- docs/large-deploymets.md | 19 +++++++++++++++++++ inventory/group_vars/all.yml | 2 ++ roles/docker/tasks/main.yml | 4 ++-- roles/download/tasks/main.yml | 6 +++--- roles/etcd/tasks/install.yml | 2 +- roles/kubernetes/master/tasks/main.yml | 2 +- roles/kubernetes/preinstall/tasks/main.yml | 2 +- roles/network_plugin/calico/tasks/main.yml | 2 +- 8 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 docs/large-deploymets.md diff --git a/docs/large-deploymets.md b/docs/large-deploymets.md new file mode 100644 index 000000000..2a36c3ebc --- /dev/null +++ b/docs/large-deploymets.md @@ -0,0 +1,19 @@ +Large deployments of K8s +======================== + +For a large scaled deployments, consider the following configuration changes: + +* Tune [ansible settings](http://docs.ansible.com/ansible/intro_configuration.html) + for `forks` and `timeout` vars to fit large numbers of nodes being deployed. + +* Override containers' `foo_image_repo` vars to point to intranet registry. + +* Override the ``download_run_once: true`` to download binaries and container + images only once then push to nodes in batches. + +* Adjust the `retry_stagger` global var as appropriate. It should provide sane + load on a delegate (the first K8s master node) then retrying failed + push or download operations. + +For example, when deploying 200 nodes, you may want to run ansible with +``--forks=50``, ``--timeout=600`` and define the ``retry_stagger: 60``. diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 91fab4c06..2de01828c 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -7,6 +7,8 @@ bin_dir: /usr/local/bin # Where the binaries will be downloaded. # Note: ensure that you've enough disk space (about 1G) local_release_dir: "/tmp/releases" +# Random shifts for retrying failed ops like pushing/downloading +retry_stagger: 5 # Uncomment this line for CoreOS only. # Directory where python binary is installed diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 826e16978..1d237f5e9 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -30,7 +30,7 @@ register: keyserver_task_result until: keyserver_task_result|success retries: 4 - delay: "{{ 20 | random + 3 }}" + delay: "{{ retry_stagger | random + 3 }}" with_items: "{{ docker_repo_key_info.repo_keys }}" when: ansible_os_family != "CoreOS" @@ -58,7 +58,7 @@ register: docker_task_result until: docker_task_result|success retries: 4 - delay: "{{ 20 | random + 3 }}" + delay: "{{ retry_stagger | random + 3 }}" with_items: "{{ docker_package_info.pkgs }}" when: (ansible_os_family != "CoreOS") and (docker_package_info.pkgs|length > 0) diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml index 73622f06d..6329a1108 100644 --- a/roles/download/tasks/main.yml +++ b/roles/download/tasks/main.yml @@ -22,7 +22,7 @@ register: get_url_result until: "'OK' in get_url_result.msg or 'file already exists' in get_url_result.msg" retries: 4 - delay: "{{ 20 | random + 3 }}" + delay: "{{ retry_stagger | random + 3 }}" when: "{{ download.enabled|bool and not download.container|bool }}" delegate_to: "{{ groups['kube-master'][0] if download_run_once|bool else omit }}" run_once: "{{ download_run_once|bool }}" @@ -63,7 +63,7 @@ register: pull_task_result until: pull_task_result.rc == 0 retries: 4 - delay: "{{ 20 | random + 3 }}" + delay: "{{ retry_stagger | random + 3 }}" when: "{{ download.enabled|bool and download.container|bool }}" delegate_to: "{{ groups['kube-master'][0] if download_run_once|bool else omit }}" run_once: "{{ download_run_once|bool }}" @@ -85,7 +85,7 @@ register: get_task until: get_task|success retries: 4 - delay: "{{ 20 | random + 3 }}" + delay: "{{ retry_stagger | random + 3 }}" when: ansible_os_family != "CoreOS" and inventory_hostname != groups['kube-master'][0] and download_run_once|bool - name: Download | load container images diff --git a/roles/etcd/tasks/install.yml b/roles/etcd/tasks/install.yml index 959133c29..aa7f32ca3 100644 --- a/roles/etcd/tasks/install.yml +++ b/roles/etcd/tasks/install.yml @@ -20,7 +20,7 @@ register: etcd_task_result until: etcd_task_result.rc == 0 retries: 4 - delay: "{{ 20 | random + 3 }}" + delay: "{{ retry_stagger | random + 3 }}" changed_when: false #Plan B: looks nicer, but requires docker-py on all hosts: diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml index e8dfe08fc..ff6abcb13 100644 --- a/roles/kubernetes/master/tasks/main.yml +++ b/roles/kubernetes/master/tasks/main.yml @@ -12,7 +12,7 @@ register: kube_task_result until: kube_task_result.rc == 0 retries: 4 - delay: "{{ 20 | random + 3 }}" + delay: "{{ retry_stagger | random + 3 }}" changed_when: false - name: Write kube-apiserver manifest diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index 8c22b73bf..8c2aecec5 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -104,7 +104,7 @@ register: pkgs_task_result until: pkgs_task_result|success retries: 4 - delay: "{{ 20 | random + 3 }}" + delay: "{{ retry_stagger | random + 3 }}" with_items: "{{required_pkgs | default([]) | union(common_required_pkgs|default([]))}}" when: ansible_os_family != "CoreOS" diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index 1ce6c79d3..ff7bc32ae 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -48,7 +48,7 @@ register: cni_task_result until: cni_task_result.rc == 0 retries: 4 - delay: "{{ 20 | random + 3 }}" + delay: "{{ retry_stagger | random + 3 }}" changed_when: false when: use_hyperkube_cni From 5ed3916f8239cb32ae5655b5aaffb6c55312ee8f Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Fri, 16 Sep 2016 12:45:40 +0200 Subject: [PATCH 116/695] Fix use_hyperkube_cni logic Signed-off-by: Bogdan Dobrelya --- roles/network_plugin/calico/tasks/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index ff7bc32ae..69f91949a 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -36,12 +36,12 @@ - name: Calico | Install calico cni bin command: rsync -piu "{{ local_release_dir }}/calico/bin/calico" "/opt/cni/bin/calico" changed_when: false - when: use_hyperkube_cni|bool == false + when: "{{ not use_hyperkube_cni|bool }}" - name: Calico | Install calico-ipam cni bin command: rsync -piu "{{ local_release_dir }}/calico/bin/calico" "/opt/cni/bin/calico-ipam" changed_when: false - when: use_hyperkube_cni|bool == false + when: "{{ not use_hyperkube_cni|bool }}" - name: Calico | Copy cni plugins from hyperkube command: "/usr/bin/docker run --rm -v /opt/cni/bin:/cnibindir {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} /bin/cp -r /opt/cni/bin/. /cnibindir/" @@ -50,7 +50,7 @@ retries: 4 delay: "{{ retry_stagger | random + 3 }}" changed_when: false - when: use_hyperkube_cni + when: "{{ use_hyperkube_cni|bool }}" - name: Calico | wait for etcd uri: url=http://localhost:2379/health From 341ea5a6eacf08dedcdaaad5deba64a28d3f252e Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Sun, 18 Sep 2016 19:57:36 +0400 Subject: [PATCH 117/695] always bind etcd_proxy to localhost --- roles/kubernetes/preinstall/tasks/set_facts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/preinstall/tasks/set_facts.yml b/roles/kubernetes/preinstall/tasks/set_facts.yml index 527c29b32..e3f4757a7 100644 --- a/roles/kubernetes/preinstall/tasks/set_facts.yml +++ b/roles/kubernetes/preinstall/tasks/set_facts.yml @@ -25,7 +25,7 @@ - set_fact: etcd_access_address="{{ access_ip | default(etcd_address) }}" - set_fact: etcd_peer_url="http://{{ etcd_access_address }}:2380" - set_fact: etcd_client_url="http://{{ etcd_access_address }}:2379" -- set_fact: etcd_authority="{{ access_ip|default('127.0.0.1') }}:2379" +- set_fact: etcd_authority="127.0.0.1:2379" - set_fact: etcd_endpoint="http://{{ etcd_authority }}" - set_fact: etcd_access_addresses: |- From 13874f46106474288f9e9211298732bbae0b48ca Mon Sep 17 00:00:00 2001 From: Ivan Shvedunov Date: Fri, 16 Sep 2016 21:01:37 +0300 Subject: [PATCH 118/695] Fix reverse DNS lookups of service IPs. This fixes "DNS should provide DNS for services [Conformance]" e2e test in k8s. --- roles/dnsmasq/templates/01-kube-dns.conf.j2 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/roles/dnsmasq/templates/01-kube-dns.conf.j2 b/roles/dnsmasq/templates/01-kube-dns.conf.j2 index 5ade101ce..a9ef6200e 100644 --- a/roles/dnsmasq/templates/01-kube-dns.conf.j2 +++ b/roles/dnsmasq/templates/01-kube-dns.conf.j2 @@ -4,8 +4,6 @@ listen-address=0.0.0.0 addn-hosts=/etc/hosts -bogus-priv - #Set upstream dns servers {% if upstream_dns_servers is defined %} {% for srv in upstream_dns_servers %} @@ -18,3 +16,6 @@ server={{ srv }} # Forward k8s domain to kube-dns server=/{{ dns_domain }}/{{ skydns_server }} + +# Forward reverse lookups for k8s service addresses to kube-dns +rev-server={{ kube_service_addresses }},{{ skydns_server }} From a93639650f469bbfa6e7996b3944afe12a5f4da1 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Fri, 16 Sep 2016 09:59:13 +0400 Subject: [PATCH 119/695] Allow calico to configure pool if tree exists, but no pools defined --- roles/network_plugin/calico/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index 69f91949a..d2cbd9685 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -91,7 +91,7 @@ environment: NO_DEFAULT_POOLS: true run_once: true - when: calico_conf.status == 404 + when: calico_conf.status == 404 or "nodes" not in calico_conf.content - name: Calico | Get calico configuration from etcd uri: From 42a5055d3c71fb167d7c92b307d5c52b3b5cc410 Mon Sep 17 00:00:00 2001 From: "Sean M. Collins" Date: Mon, 19 Sep 2016 11:51:37 -0400 Subject: [PATCH 120/695] Rename large-deploymets.md to large-deployments.md Filename was a typo --- docs/{large-deploymets.md => large-deployments.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{large-deploymets.md => large-deployments.md} (100%) diff --git a/docs/large-deploymets.md b/docs/large-deployments.md similarity index 100% rename from docs/large-deploymets.md rename to docs/large-deployments.md From 1a05b5980fe4dd6bd41b1ede7b73e23e22596dc6 Mon Sep 17 00:00:00 2001 From: Anthony Howell Date: Mon, 19 Sep 2016 14:12:42 -0500 Subject: [PATCH 121/695] restored gather facts on all hosts --- cluster.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/cluster.yml b/cluster.yml index e349c7d1b..208382354 100644 --- a/cluster.yml +++ b/cluster.yml @@ -6,14 +6,16 @@ tags: - bootstrap-os -- hosts: etcd:!k8s-cluster + +- hosts: all gather_facts: true + +- hosts: etcd:!k8s-cluster roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: etcd, tags: etcd } - hosts: k8s-cluster - gather_facts: true roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: etcd, tags: etcd } @@ -21,17 +23,14 @@ - { role: network_plugin, tags: network } - hosts: kube-master - gather_facts: true roles: - { role: kubernetes/preinstall, tags: preinstall } - { role: kubernetes/master, tags: master } - hosts: k8s-cluster - gather_facts: true roles: - { role: dnsmasq, tags: dnsmasq } - hosts: kube-master[0] - gather_facts: true roles: - - { role: kubernetes-apps, tags: apps } \ No newline at end of file + - { role: kubernetes-apps, tags: apps } From 123532d2a47018cb87b8a1f04761c13380481216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96zg=C3=BCr=20Caner?= Date: Tue, 20 Sep 2016 10:32:05 +0200 Subject: [PATCH 122/695] Changed ImagePullPolicy from Always to IfNotPresent to avoid download issue when DNS is not working --- roles/dnsmasq/templates/dnsmasq-ds.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/dnsmasq/templates/dnsmasq-ds.yml b/roles/dnsmasq/templates/dnsmasq-ds.yml index 44c046f18..7e5d3dffa 100644 --- a/roles/dnsmasq/templates/dnsmasq-ds.yml +++ b/roles/dnsmasq/templates/dnsmasq-ds.yml @@ -25,7 +25,7 @@ spec: capabilities: add: - NET_ADMIN - imagePullPolicy: Always + imagePullPolicy: IfNotPresent resources: limits: cpu: 100m From d313be44207d52dfd4bb2826256c34d1aba051be Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Thu, 22 Sep 2016 17:38:01 +0300 Subject: [PATCH 123/695] Improve management of nameservers in resolv.conf Changing nameservers now will clean up previous entries --- roles/dnsmasq/tasks/main.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index f98afd6bd..f633485d2 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -86,14 +86,17 @@ follow: yes - name: Add local dnsmasq to resolv.conf - lineinfile: - line: "nameserver {{item}}" + blockinfile: dest: "{{resolvconffile}}" + block: |- + {% for item in nameserverentries -%} + nameserver {{ item }} + {% endfor %} state: present - insertafter: "^search.*$" + create: yes backup: yes follow: yes - with_items: "{{nameserverentries}}" + marker: "# Ansible nameservers {mark}" - name: Add options to resolv.conf lineinfile: From 82ee60fe8b6e3251ff69f92bafe19f4bd5f67389 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Thu, 22 Sep 2016 19:14:51 +0200 Subject: [PATCH 124/695] Make dnsmasq daemon set optional Change additional dnsmasq opts: - Adjust caching size and TTL - Disable resolve conf to not create loops - Change dnsPolicy to default (similarly to kubedns's dnsmasq). The ClusterFirst should not be used to not create loops - Disable negative NXDOMAIN replies to be cached - Make its very installation as optional step (enabled by default). If you don't want more than 3 DNS servers, including 1 for K8s, disable it. - Add docs and a drawing to clarify DNS setup. - Fix stdout logs for dnsmasq/kubedns app configs - Add missed notifies to resolvconf -u handler - Fix idempotency of resolvconf head file changes Signed-off-by: Bogdan Dobrelya --- docs/dns-stack.md | 21 +++ docs/figures/dns.png | Bin 0 -> 139103 bytes inventory/group_vars/all.yml | 2 + roles/dnsmasq/tasks/dnsmasq.yml | 58 ++++++++ roles/dnsmasq/tasks/main.yml | 135 +----------------- roles/dnsmasq/tasks/resolvconf.yml | 100 +++++++++++++ roles/dnsmasq/templates/01-kube-dns.conf.j2 | 15 +- roles/dnsmasq/templates/dnsmasq-ds.yml | 1 + .../ansible/templates/kubedns-rc.yml | 1 + roles/kubernetes/node/defaults/main.yml | 7 - roles/kubernetes/node/templates/kubelet.j2 | 4 +- 11 files changed, 199 insertions(+), 145 deletions(-) create mode 100644 docs/dns-stack.md create mode 100644 docs/figures/dns.png create mode 100644 roles/dnsmasq/tasks/dnsmasq.yml create mode 100644 roles/dnsmasq/tasks/resolvconf.yml diff --git a/docs/dns-stack.md b/docs/dns-stack.md new file mode 100644 index 000000000..e56ee2fda --- /dev/null +++ b/docs/dns-stack.md @@ -0,0 +1,21 @@ +K8s DNS stack by Kargo +====================== + +Here is an approximate picture of how DNS things working and +being configured by Kargo ansible playbooks: + +![Image](figures/dns.png?raw=true) + +Note that an additional dnsmasq daemon set is installed by Kargo +by default. Kubelet will configure DNS base of all pods to use that +dnsmasq cluster IP. You can disable it with the ``skip_dnsmasq`` +var. This may be the case, if you're fine with Linux limit of max 3 +nameservers in the ``/etc/resolv.conf``. When skipped and bypassed +directly to Kubedns's dnsmasq cluster IP, it greatly simplifies things +by the price of limited nameservers though. + +Nameservers are configured in the hosts' ``/etc/resolv.conf`` files +from the ``nameservers`` (see also ``searchdomains``) vars. While the +``upstream_dns_servers`` will define additional DNS servers for the +dnsmasq daemon set running on all hosts (unless bypassed with +``skip_dnsmasq``). diff --git a/docs/figures/dns.png b/docs/figures/dns.png new file mode 100644 index 0000000000000000000000000000000000000000..dbdb0c07125fa05b33cc6c2db1fc98d6739fe48a GIT binary patch literal 139103 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 xqdB^J2iAJ3K+|S(&UdW@FvX!<8yrIoVL5B{ z=Ri#>*`+aea>)^T4x?3QKi_5_)DTUmPpJDo)TK8pi+}oHiJ^a0+pFyxA!Iw-!|^(| z^Ku%-LHRw6w`oIHg^W&M-f{L*q$60?;Y<324~o4^^)m|VB(Qh$gWW>}cH6tYMG-I| zp-#+Me}grH8U)(@T-jRum2s|VLrVM7{Kn^Oj6 z7x9E1;j#>PMB&{{*xIXC`b6PrEEVem7kze9VlrPQFZ=_IHdOmYImGn(bQsV(Omxpz zKe;~HPr}?9A2RCo+LO%hWZ6tu=&5~An%aqLn0me=&b^c9+f=;&>y=+{chrKf{nT}^ zLB_abHfC7($hf^jl02O+x}m9NH&I_Tz-frxdFd*Ee8y?5!|Ql|rl7Prk|MesVy9g; zWJ!rJ9}>4xE0xNcv|nC)e5NAd1DoVk6oY{kY$3EZcjg4zN>ScPf7J}J#PCppIRRi_fs^x88kY~c@p504sa4w zr0p^W6qn_oNUY!!tCpk(TV4k$9U@Kb0ak>!??%R2ncD5*282 zZw7a`l)KvDUhVsL#SFs%hGM- zXTLMeN4r!KXcu5j9O%|vV;7Aj^hbWACHA{iFR^bTdx&) z$Ae$iY=rHU^ot9WAX{e&ZOFu;)}}cWIqQkKO6l=RFB$a%L}QF}r=lxDCA)R-$kr?R z)XwyUp#JkIyp}?jJ7E4I=#s))X5*7z$)n z-Kek=U(o4jj1S4ievLmIn9?9S`|g2ls3^qF;Wnke*mve=cg3VR!RH!@!g@D1h+R#F zsTzb<%?<2&|Lm~_SAl>cs=TpB^z`1`lPZ(Xb4=Y%CIgTA#lE1(s*Kc)HUr@P3UE=? zc_~HqF?C>GClV_b&3TkllZCq}$0W=8REET+m2d(XE!XY^3ZGi4xmu5gJ>sebxQl+g zcNKp4PzhIGu{~IWRi{_!fm!?a1GFxAvM=e}wa8hjImmau%|>(mZr0I~U+gkgU2bXfS*A&h5 z&HA(wnr@pDVg!sXAmSCfWIvOPqM164QaXyCQLp8UIznt1i!Q|~{p_JG;#LE#O8MO| zaG^7>EP+tbMobos)YrLOxZ$C(C`ld2Wc%j8l&`z^MT63G9Iv|CRnQL zd1zb)9dgQYt~oFbu7}Qk(^;0_Sj{V{venh7YL`)z4?Eq>r0mhk_*)jxv8NGV0&CQU z=TpSZgcbS9(#>GHzuifP%pVwrrQ53ON7fg0Y|ta;HoIk`Cw>+E4@cJ>5B2}YKlY}t zO;)Lt9oaLIl}%E%?Cp%~O;IRhggYZMWUq`!LN*zPJM*kVj>Dbf_v!cVJwBiJ=RIEU z_xp9P*X#Lw4$=btPtR`X#zhbN@b$3SotrRwayKn|WBw?z zOA(?{=TAFbH_uaX-w?Hr$f7i)ctg0!a_G3}d+x?(Fqng3FqBSQ z%m9?X$?n3OOCawwR}hS-5yR3cNG{5)@JP4Jse&FW*Pg&p;hBoG)eJytJW8YQngYkD zA=a5MmFzy}*Al0yv2~xv5V|61fkt&f)qF6cDf!i4$>B~t&G!dC>Z9}WIjm-NZK_az z5RqkGPp;>MjC;kRe>X)Us*~we(zL^}6LrbTD{^KvH+@&G$TyojWaVW%KWO~1P(Nn>2{WponM4=;RY{Xty}wXMuJ5tf zgYlcd!ezYlnk_Pc!nSZ%XPqw^#@X8T>^A)V5HWbvw=KlaNA5SpOi)+{ehj&?4A-xH zW&O%yMqBgMw`x^Iji-Mvtn0WOv{R|7hO5jX?>+CA)w+PzMDAVgso{sURweuKC)^(! zXZh-QX)Qm!yp1=_M=N}p>xz8@-(t`0ZV5!YyN!`x;Vz6@= zF*2}wrROH9d-a;&i`+jD_$X4kALkdrWe1>mS_WdLZm%q7j=r}%y*%_z(pwnQzuPY- z7KObhc#{KhJW2uLvUWlq<4I(Smu$jMm)je6y~O;kVmAB9W~eqMtjx^*eEuV+Q^aQB@_yGxc-u)l?<(> zsI=0?>E>eY{JHS)7n<;N*UxtOFJ4qpq*x4mc{r>Wh06w!F<+v%$7E#?DmOb;Ko0Bc zJ_(ON^w>7{s71>|!Tvi|Lwx=U#%8pzzst2HJpK z$#s99;mTU4LrqL!_ti{wwHe>Q7l(BHk5q=dAgqAN{9fqa$5nb`ZS16~%}Z|+rN83u zN_@BKPl}{$e1YQ-QnoQIBzD0OeUJ0HHo`{N1|pKwypV3$O`NLmck35aQ$R|$+@)8I zi=#NI!BZV9nS4y6A{Z#{RWsM5zD|AiftLg6)+i*r_L10yKVLB^i3h1gq3$|C@@1mP zPR6VkEk7nQ>I=0thk&?^VtUHG)M2b{l28TuznVr6#>d46m^%xkua;1$etOxvZq%ba zFu$_+T8?s|;;!`koSUgrkT=DP_#tVM@n0k{hy3b&jmMfl>0mrHZ!r!emW%b2e65`H zFul$CPmT1d1PAxt7Wx9rQ-ggZvo?w$&k?KEDepj@FyFyw0G{CSOZ zT>9+_E!SXbvG$CsKyyXaW5*Bc(&6-NuZWPM9&(CHogE$TPU)}B{p`8DE&Rulj$)j= zVO7B$3}aXzE@P7wylbymM<2Q^Mw61y2i_jye-9=GN-JJjCoDF~#0*7V){i z0;C9<0$`nkf!sN1WlFvtgHlSqLYThCW-2nTbp>AeORP5#1V=6=bm!vG2VB<_e+DA1 zV-nHymTG6TM)A}zI*=f$`${$Dpi?7@FaY0to4oL(P%Yb&6d6e0QRLHmWqV=vwEZTL z^S>(4DWh=eY1>4ZV$Q#HT%$C-!G8Q>ju^8`BU)0x{L%>NCP+_DPh}L{Fef-IH$nu9 z-c&oeXXxhrO7dr4*c0aKQdbaMJ7K->GR0w5LR%50%T`!~b98W)m%bAZLE=`h~EpXk}+%47o~ zZ+vx65Wmsv#iZs5ltCIOltCVu$Hg#uHB;nGN)cf3IvXU4wAbV-!oLUPxlVwQ_+Z%v ztzQjgQKdAp6;0}q$!eVa-ikA($tCIG7Jez?%iO)DdL!?;k@jm7bP&p!{H!CgpgTO_ zT$rTwSC;(BJyBnu^SoMi89Ld5d_y;otFX23jkqtf&#QvtdLD_7w`CFgn{q->XJCMb z`N`JPDBZfXp|2`L0#xRG+d~Y^c%Zbwfe6os*>p%3yF3#? za$i?VJF-!G=blm_m8civHTdg=yUK^6q}JylgX~wWhsr1Sy?-!tTVq`_@UZJDQIM{l zwxXouNue)XKEwir|6T%LxK>CsjD3Z59C0RL^A-0d-N&4lf)6{yC7HBeLq6|iF}ssV zJj$5RGj7OVEC*OVbn0?u52U!eN2h&Kzo~Xd)XjUD@=j(uyiJfz3z)VaP@c)KD{S{#(vqM!NE`e(DyYm8rgTTnfXomD zi@LAkL*Ol)Id+J|gJtThL@D+Hfh)J@dv0&^#s#RZ&jrZPvM81NNI4nb!#3dy$|N#~ z0eb53yx79YVM45eL~#bXxTDoy=q|1$V$OJp$48j!uK z${#mm0y>t?R1`B$j);+rd$$7ezLLZfYVhtqNy$+t1|)w^gvC1$lFGYRqHMX+JHkN! z#604T2uaH3fcl0cDUzAQZqbC#_X}=9H$cTibUeNszlPXX^fcYxA^ZO11{H5sX| zVyND(4LDOluY*(XL#^P--2FW&r2AL*%1xF1kb;a_=eGmFq0-+)~#Bd6@U{EPVg$G}cDRr&-`1?ES}@o*mRJ_29;IX;0eR%3NIi-;7qw+)Kz{cn zqoG@tXKdO#lG9DQ7O*UZ`FPuF?7wGVydi?^}Vin2AugjTNat~a)Tv~cZC-+Yi07f0sZyxI4|6B;RVf4x)ckD$&=M3N#Eq7DGq z5V+reDr>Bbr9WX2T=QGTe#=M}?1?R`XQ-YxPre_~+D>grN<`h`3>{N8yy-tLaQER_ zI9x_O{y5ZZ-AyOfvb&Q*n&{QB7#wS5MrS@-zsjlr+s?T{=~zukRDTpL<8)S+P=99Xo5A=#8Uqm`xUM<*o*pYXAJ7b!)Cypfl zOCkD`LNF|qXz2lCuL-RABLn153FekaNa5K^(%wtw-}I5;pfHOfY@DUN->T@7zwOu7 z3H+hMXLWsX7a1RI=|^-j^xvYrIC92hR_^)yzVED%DCa&IJeh|nxsGn24GQdNcDi{F z`F*ZVVIeqkCxayR3&{3%lFan_@YHZ*PKb)N*TJcuN(<4MXqB?~tvOsQeD4{3Z5Ms= zz)O~upRKPJ#p`OYo&GuKBWzNnK}o-PlsX8iJBzLY$>GeFRb}4BA2Q2cW;ZN3=vWJ? zqGx2iw=(kvj@K_>&7(n24}KjqUveDGJbODI3WXRyCjo)Q_z2x@TLU@quVXnm-MiZH zS9W7d4nx)lBO+rzl$OQZW!Yb}qvB7m|FKN4D-yZ${$!`a_R(zj3`L{=8ilCn1*>rT zp%RhpFwd^=t?)Ybf9BZW0TKf;yefF$hq?#WB5@DwXFnWsB-bnuaNO+lx4`#19AAF^ z5jya8QNrWqup7cXO?EUV7xLM1h~@=nve!kBoBN#)#5~9z*wWIen6E8NfT`hEYKZuQ zQ<3D@xObtJn+4uNh9(qr&-Hdd()5LJ2)N^{@oS>Dcbk02W>9kjO^pBMJy>FC#`(S3ZDtib|vDo7b0ZM4pA_j1(HZ~nl@9Hppz<^Aj%VsQzfo0m1hkAOfL zE;@h6&GQ{yO3HoF_jC-3K>y_J?Yx3^;;8~kbTJnZZ)a>DKXBmuv8%$~TOgsICo>sA zVNh1Hk+5HLIf6x3Mifv3T(HkUyU^-Vb zMlTrv<-PQ}u74FjpbFUMkgt&RB)oNEj=IpnhHV0^ zq-r|*j4wzQ%h#_2SoH6xQEdE(Pb`>Q;WyK#o%{vq_mY3G#Ney0ZkuFnKJV`4Ip7xB zFZRO7g2Zz6S6wUfIQgZ$k)05V?ZHcXzek9E?7h+(pz#QtoF0 zy$9Ey=;GMddJg6c8*Ii=oG29xjq(RcoVIRD_hoG4^-ri~xKtsuB%Bb|Nh!!*+fgfC z9Fp^te(P%rZDccrY<1(-21RhBUHSM$VW3@xFEY;VCH-Wf+f*>pc`8YOe66SXWaQ1m zRjj&I^(%DS(T$5BU;7>+n)2Hvf7w3YC?VR}7@Hp`^6trzH}1@8J&Vx_4{8;!K|r%L zc-;4t^gWvJ!P?-YKwsj0?_;IrX0s*?iX`ekTE=fPMtR||&fOeaY*v@cM_CTF1qn}+ zgrCP7F|=Ner$!)=)#j>f(Ij8Fow`ROYi<1O#VI|Cmjbz^8;*OE0+1)Ar?2e4$}k90 z2qQn1rr7nWGM!Die|=5XbN-p;*uaDLHsr7CpgoO3e3HyXcxuf&^7KBrb>yu#n^OJ*-bYP-Dm@^FDLIf(~t@i_T`g z>aAr5F=`%}K-g?7WPVYdpRJ(9nQPvgbjSH8QbDOO4> z+X9`g{!hO`s6f{g%N?uL%|G2;Pk8h2`x=g=7Q=+ou4~g{BTKCcZzLn!is^(mL6oI# z5{zKQHb>~i_xZU@8uY9DkhBb@ga~9rA&JXsl2AErvu-LTjqkopzE00&$JSo~vV7jo zB84L!P2LWhLrYvk^z7gIZuoNgqStRDvPLt+Ziz5|J|B>k-r6^DFFcp5)kkI9wP|a- z?zxb`?71@kFrKILL&S%R{YA8(raHd(4Lm*{*Lta}T?TxBPajtwJIBU&&Pv_g^oo2g zb#*1#BBZwcX@G}CF>C1#ysQ!Y)L1=vsKMA<{Z==H?ok=tNan4*tc#kUQb%)ziJ$3~ zceE&S>uo&4`^kHP=vq+`lU9j0j?=dUR;B~@M>W`hP@AJHu~Y7>9EkmRHObQ<(rs1# zUzgLhNe-hTNQsO1qH-*GO@LQ0qR)3*AmA6iZ01Z#)e0n{#uWql{wSIQAN%ne+@H#* zT@=pgaWt}qHz+LkzukV&q7dbNoW2iP*1~C9p#@g%pfC2>bW5j+yYDK!EQuTA?gZcZ53cM~CLE#DAR2m><6T1L^9ief+d z@}s4k5JbKlf*aXPxFtBKszPO^=XV=WDryiH-sVj;+Ht-v>}e$~nime}I4A;LC(uDyG!m6i$9ZR7-vy z)C*O~t~5b@B-|o49XIIJMt{rgbP^up0687EhY9tVy`HQW@|@ZcyCEnw8!hmq;rqzs?gKtFq*|@!ma5=8R*lW>3i8Om9a%8AFxnU{bH~HVA+ZrzbK~} zpkCj4OcA+~jbesD{jIQJ5$h+Och1L3Y|_Ya*OjJh?omfJUVV6+GKT&C2Xt@3XNIqo zBu|Axx+1<~;CTI%Ff`Nbs-P)OyQP?@GOnVL{NIROD1Ja+{CFyI&Qj@6J7u5v``tJC zQ3*f9twT$Tm)Gl);8JfCXJ;=+Z(>`UnVhPg8e=fq?`u1qFTIx+m`G~A5L>0S_VHyV znKl}guRefSGXI<2fyF)dkoR3bCU?zgzaf&%1`tpK!8=F2fIMbKN4?J7tzLi-`%H2VzYQ@@y z550-@nic+PHGI*NN2<@Gmg=r<^g_ffv4?)~(w_piVB#J6<(cfr8=@%rTPb`j=tn-( z;|7(nSP@q698-B@Ns2QpRDOqc7XG$|xp>|6Jg_%VkEVI}Du=t;g~r(9N_&j|Ba2O_ z5q#1h#&vhbcmYS4a(m(q7seOgFu zKTo5h!1YfgBaw@9%{U5dcXu#Cy6S|I zHo4M;L%(a=&ay2uW^8O*0`pz@)n}I3Xq}~%X`;(D`kS>gV$9k)`>538VkqeXXRBsk z>R9nCQ>+^#e-FFM zQmY+5TR^HG1MZ~pX@@A@k{S~H6XZw#QKiUdLf`L={{&uMht+)KMhnchWocUTKAJWD z$`)fBw0I3$e@*6(!BOfO)4{V^cb#J)#r;WiYI8&JkyEs?{azD1T$V_%vL&E77bKX~ z+^fDe+sQ<7<>tKiqi6Z?GNF>Zd?1hgM~(fk_M7gnk1`9z`44_Lamo@^;1)8&-##@9 z80-fUbb%m#Up!mbg-&SH*bM-uofuA~!dzqQQpEqa#=?d1IxAG8+12u>H87N7d6x?e zPc-#no;-&eggh6aH1wYSgRZfq7_VcB?NU%yMYkOu(wh6IT(_pT45Pfd={NaL{tIdo zWBB6xq}VH3g~XlT=$enC{Ae@BUd$hB3&&nBr05AI{FBZ3z+r@?u19u+%fx@cak|$% zxkBgzpP876XV9W7l>^v%8_xMS{Q;2QamdN)I40xUVV}7{Rcke}El@~HBsi|Yt9Gn-Se>U2-PS?{U1G=l?<>zY2#EoM5QTgNQm0xW@Zu z6IwtPz|kUN@BW@BWZfP7sKh)zCR?2i={BsDTa^v9mJ@n=(P2}l`uXoXG4 zT~7C#7q!sHzUzdJ@sG*Sa7B9Bl*b9}@BI(5;iBtLg3*vt$JRgKU zRJ|N+!6y)mfu)JnHbbZPv9=axD29`a*wtHp-EZWycH%aqvv-3}E!HV;!ahAB3pHJE z-iX?6g_DBXt^0d}{a;qyXJ^+F=?7>XTt}VH*913I$@sn^lH+aUuO!(lkyAHtg~6wk zE776b0!=|);T;E+3t6v4;#&Oi>KMXhYNyTW$-N8wlaXdK?p|J@D2tAxdnEp$4!gQP za9UWYlTN%@4r7fkq0-2lnh=pZx52u+ji0{9~g5VF29q7t*}EY6oqI{OJyDJ@a=J*%qk&7}nq&dygqfw1B-)!Qahu zZWifNm}zd-f4CjoC8yPSG5CTCrfOvPID5!BdW<+~Ho~|$x2X~Ok}c=9c(GnSv#ybg z-wTjAnW8ByX6;9l?4djCDaE9pM$>0AVqgb-jfKobB3~y{kgGAVX8oH_Tq%$=Dgw7^ za!%|@4VD@Ev#>J-w&`9~0q?kSIbh}k?B&G^8%fJ7B8nRz?Om<|Sng*kVLQH=3_UqR zz0-~nzqRF-8~4NYmR2m+z}Bb(Y@>}ke3ly0UWWD+TY^an7x~f#pb2 zHh^AUm$N;7^GQ=O;lFZeOy{TeSD6)~u0x>|d?_@?TfhtP{+P!t|0>f6!}-WkGNhW*Jz-?;rla z_OaC}vP8YA;3*B5i%~yW^qt8FtSkPF?(KcEZP{EHG832}uzBJv+9hjlF(aDq2DB*6 zP6r!83(6YF2_@2Yms6al*FozDx~~||6#IuKkNqPttaDvf+;4!QsxZw+Q^w_XRp)KC zuJcqC$+5^$_i>p2kNb?O4x>_F8(-KSs#N4dmlQ9Yc}71;u1MkOV32m1)R!)lTC4Oz zfg!<~)n7hnMwk<~3##)@#*9KE?F}E8enzckKGuM9hoUn}Su9Mw}MsL}@6dg?s!&#fZ0Klos?o|LQJR+g)IRy{n}S zijADvwohd8e(748GwGPtc?Y<9P0xYOtHSU@agFb#MWzcN+-4iDOEiJX(aDE zC0eZe5ig_`@cN>SrO-^snsAT&BFP+ZQL4DPJ1!p4aYx-g=`-L?4PN(>%Bdrb`buk_yiJS5~cun?QV)@=MF-*%JC zgkb>>l*OlY3Llkq%Z@(SL^tAh2UICdv~%D^$QU9ukNvolzJf+^b0O~x)~y+e_a2Nn*d+v{YPeFVSpgbLf54Sj(5MOHAGhXv~RaSj2w3`#jeod>p!hKY1wx zuKYlbs?Hsy{qZ-^i^eT96zGSRu`(~H~P zt%&l~KzwaD=PNW;s>$h<<^XXdQ2s8iv|ER_d*~g&0?^N|jB{u2|2`0U8EnJ%_tJYM z&@4B?#`$H$oo={fcZW3LZ3OZ!V+(Io3Jp#>;^CWN=&)DERfmOb$H48{&I1CptF*#> z#YO4*@*v`zd=}3$ZcZlerf{pBkj{;#h#c;otd!|oZGAuy7RusRz#B&3hSA;jBtya0 zk)ZFR`j{-W?e6^k997&#cd5m?l+;y2u0hiB`+EWaOd6!vG5icY&I@>H<{8=e{0lT= zz2(7pi`J5zIHyG5O0Zsf65$qHK!*mWUx?<(R7^x5xXr@!j<=1dZb*;&27WmHXdum9 z$zx`=83c(=kDW72b3~qApq{hkvCmbNLk{j|33#-Gr;Lwd1#2rN_E?neXn^=zuv%9& z9y7N8HiG)y2S{{;o`s4l=eEI|j@}Ev9?#Ky)gTNyh15^;BLlr~=D6(L51#Z&nl8$4 zi}=}T4<}!jQn@NNB0(PtdB1?ByQ=veeL@+RBb@80@7oU5j4!zqMSXh2+Us|Czu-l= zqMTS-I)xstWH_Np@Xhjxo*}3j;KN5&$0tjs?7yK1Im-fH(Le6SknO`mbr1&6Q4{wZc zSFUd%(D;*-w_`kAS==VxL|;a_xFlHlRH9Zfz&QolcfCuuMTNF|3x-atDdulhs5;|P zVuSLR|Lt4xJh?}46KH)a#?S{+Jp!gv(aGnIgc6OCTE1|~Y8^e|E9a}F+QU~7h$`X5 zi|6%A!!hW6^H(X2whFT~WXbz(|1l@;NpBE9Fvh^_9C$)v zTJadfr1RB~upJK*o5D3G4}CVVWr9=qmtJfIH5dek29Nh zc5$6$^wywU_P^`xoh$%m!T~nSlFR`P zG-jV$Owa0`F}NKFsl=T0P4-4%HZQW{~T=9WEeeTHshvDC@*Lai~n(ut8VbRVM5{~2fw34Z`ZtvsDV5o zmI>~H$g2iEY;pGroznXB4l^srCaadoAkS+tb;1t{8K8$?R9~g2s|+P42~m?Jhbb7t8UC5eK-96ZgzSHch{eFen;~nbhnfM5t(M zSkxj!S_ifDLslJjs6Ozt>{w(j~GiOt>wFi zUqty%HtfzAs!9B)IC`(Ikg+dt}7>>>+i1QM`gV>XvzM9>V@@6`s>*a!nU`2i>~?o6svbL zZSwwC_{0?o;_39$+rt-<=^HKa^8-%|E@-7Ik|0jjV-k^iIW)Da;UmenXU}THM(~>m zQLBJl%fFD<@_22hf{0D%kC8cQmp?+T{s|xkWpRxj={WHF5SaEeK0FeDwsoYfbDvl& zTVP}3-owqVV~?O?7$_c^YIGTS`PKb;NSFu}&Ezj^f58-ad8`(Nq7+<7Dzz~Bk;hr+ z7aSsz$Fq3O$1$AF0x9)N`pd}fUFwMAh`K1d0)+ER>pt@XDLq~5Zq-2&~ObHD43Nycw5baC&ors9^a_-Y?n z1%fmU;!tlDRqj{#xUOXL`=^$^E<7DRMbU_MTRi#ugK`4xPS;nPuZX?iD<0;>(>XVE z#d*r-=-I6Unu~*wExFM5v(rHoGPkaEbd?n8iF*vN>%l;Dmu2K94aG)W3ayI5v>OET8dGoQT%iB>ip)oktnsHKs4as+M5=Cj=#%T5+{!`!GubmUC%}x zC)$9WW21htc@7cl^lZAJwkP#=1ZzfRI2==WO~sTdUO(c~?akm#FSenbW1tR@IO{~S{C&LtRn6!i=*cIW{=mzr#FZnwOy8rv>5m7x##5ua7oBF(R|7+P}&3a0VW9der=)^^95gP0(WNbkLG=f%VrR;##}a zreX8h_vh(#1_=g|8Jse^0y!1@w@QjNIPuE=!HD-rW#xM445-=LBN=d|4RYctFCNFl zHNk7iCk;me0||oibhS9^yVvRuiDPrN#o=iV=zy4H;^}D`n-FjkO6gdm(W2C1jF{&? zqmhpzy*Y#FbPwdJXuG*{&^0?5hPO?rzO2ms!auncJ?qtnt~-^4dli4MMP(amAQG+D z!^g1=Hw-*!Ji@gTlf&jNzwi^eAu2u}qayoI80Clbg4BWatc?=0Pu;Pdkpj!7A@8q* zr9Agr%B*E`+Yc!d9lCczZg}Kgd3a#!p09ipKN#-0_(VNjQ_!7TcwtJq>SnFEUCq&s zDARG$ejuyAHcMqXv#A;S1;L>b5h^Dh;rCdirnmdxVISUY1aGAgtbXdz|^Ak>~O;{ zs*oBeGV@gAa9 zva0!H%KSJUddst-1d!eF*kV7&(}EnUP&l@!c%*b_W3p8=^aCv_94GqoSa45Q?Qu;j z@ue~1#Bgi(fL9$6P~CnI-0hqy@W%Bt!uER7roui;*eqdy#;WyiBHlSg&QLCqY%3Wt z7OD|NZF^A31~FNkq~MgC6%`;0;%5zc%b&kzRMJGiXrZIJW9^GwXZGYBpf_p(rmE7 zQz)+1S4}&Udk&1|Trg3gFze%!9c&6X;H0kIDWS+&&y7Ryt!!-fZnK)K{|yf#U*6!I zpm3wZS5p@aGeUAt3qM5PDn~{fF>3_3DG@#Y~a|$TjM}j6tofCLTL99g$j=zEL=-dX=MYN$IoW z)7v;j4VjLSVW#C+(6%rAX)cxVbIG@DbU|@!1qXam#P=YjWUk>o4QLab0ZL_fuo3oW zbZzWhSoEY#VnuQHedDGQ2(kUzt&XG?68)~>ZqsNyLL4W+O9Z1Bn=4qS3omT%kA%* zTE@H`atL{i-MkHYPu4-yrnIZX>kaA}n58K}0dyRLW!QfejeK0%7{qmutN;X9Q2RGF zF)4{{zr?GXqV|3M1Iw`gHdpm!1+?4e2Vb45V}9?bStZ8=CQU^7qvHjXrmS~k4Eq_P zahuNVBbW>4PSryRj4~7UOp>8-=?6Mt%tq2Qht%4H)wRRds&J@wa$vg@cWl>cZZQ`P zNU{DtN0bQ?Rn~|ejMZ+NLwFmCLhiy&NJf9KP?X~i#<|MDc&ZIQBC(RCd=xEKGb8p& zZ|avjtywpoZGbUIb|gt<u z^fPvXxNxK~5%@Y^2p9SiS1!wFZn_dM+0@r9oxk=h4S6$vG9J#G%TdKy#R!*ryk6OL0^pJyLv+$5$>zvaE zwW>>@sV(2#aC3iXEWpD5Rr}vRCRptaok%7KJr~Z-3?Eazs8*9@oR7=IIC_lzhyF|$Z z6AraL?*P&83#{^|t_bdgS*8Y0s>JY7-{@lef~jOnQa(2A573jsouyE>o+N0kkYTaB zy@#?>-3)-CyJx1+W4h%+ws@MJGn!Mb>x`eh%vm^|uiui)$3A@dB0yh*j!YeTKJgzn zzTos*&H8!zg_JOf=jxN}|3ZF0`}BJ;f|AqiQ^o8u=VKA-Wp6sI#?FskE%wb)RNtW3 zziiPxMOy?af?~-KzPk1yJnX+B7SLn{>N%u1Vo|3W8j%0oBq zsh<(f4G2SSs1zE*057LdqW&wBAh#kghHQ%?vN!v3vK@ZO`P+5qt}n57{SKC!mnocTWMaoghttGTKreE zs>LkWbb$v6ocZGTXv3VMk|)Gr1}4Z!wPekT0|YG-ow>rHv8Gp~+nXQUqDAWz93(;P zl{;yNbu>1IT44BP{ALA>`Hh`sY^Nt$v!KJ}d+lB?o^h$!_q#jKBWv?jg5tE7e9+e2 z`Vm6U+L`Bskn31Iw1fJ<*Z2r`B6XY+Mz?iW%`~r9KT`nWI(bv%VxI{{{QAbVzI#xX zw!aoc%`EAcVKF`ZzhaCy({!HgTy>k4uo6_B_tOVc7&dhF8&eq>*^4PU`Y!#ssY+%D z!g~k89@&dpCFcX{1u_!bmHRThXV zt9}e}%4hHvDMwgNP?13CVA=jft;o2lx;{*Iq{3V4*2y%pP4&++&$Zb;=6*FG%1yk+ zlBvQAzW9%fp0SeF*GKKpH`6$u7Sxs=3FoX;9yyR1WBXvgB?DNlYefe z|Ir%e@D>d%sx%Je^C<4EpU0H}J|@P#&jY+nDilXZrf-W-0JAreiE|)pw^2WX-X1n~ zgxi9Uajt7V(^RWdm<&)Sc<1k6+j1>W!tU(O)WGC<0NOC}IRj9WNKCR$ra6p8A=i?& zA??T90w9CJ1C>XPEymuY4e4rJXh+h_>61

7hCA&f(4QuQRC9T|wl!HB3*+^SvD7FyG46OxT1Ej>+8sqMXv&^raM)f{5M2pHkE#o*6stAQhC{?p^(E=dT9HxMt4VtI0+v?i) z>^U2d>&v5Gr`>?B3w+0btGo8Ev!dd`xDd&fI~1_zzbu`kD#L?cH(>HpBX=<#s5l{AMv~tYx_VA zj5Jw2*y&AHMhiYiK)%xgxe+PgXGOxzlAaiX-gS>&C;hI?$hT{$Nz*T&8IIt9TZmv5 zdqqYPdzVG21o1p?;^{0ES69F#TPsSFcN>e=k9x-rjK63YA|#uWMz2Xv zHkddn@UU;n<`N07N@YE}*t|c3`WE<%259x<)fN&wXjA!0r3dCW;`?QLs6Y;v#@MHy z$rH+VFA9#Xthg#g%}S0I)}wgC(C3HTm3l-lr5#Fx__$Jdu%S(JbPzGnKCd|`-h?3& zs5RkoiPkQc4;uWXXh{rC?4JqM`#hyJe;B2kr3^DY|MWcYXH*5LX3$T~UsZM~(xN`u zU5G^$^eI4v?lqMl=^X<4(PVJ6>hfb|?fPVZE0Dr`r!unb38=Nj~^d`&l}zBo!2xGkmtM`>%bopjSKIBzUG5 z&jnAi)=$DL^(ggxN4gZi{*C4fug`p%Pz{jzvLQE&qRQPG?7MBiCruGXr@bNQ8iA~> z_dE|PO}_&j2Y^cahb~@spL@x&Gc48-rz0K8VEah@t!qKsiH{y1&R_F`Qv`2!FMc_E zlw@yRr86}G@y7Z6{p$b1F@(W{8Fn9>TK`;A_nqig9Ulv>#;0xES7-8xRe96Dr~q?t zUPHS|QXB5Xm35#wMA?5b06|(LGyHf>e0b3;G4oYv|J@L{>37^IoHfIP$2nLh^38w2 zvlM;3*@qrTBJiIGwa z&y#Y6|LfFUrph}rH?W~CJ;y+8-yTUZme{O{womhV7tOyYCFzR_oL|wQ`*TtNiN72X zf4`$ocTc4|Jnw<$^(Kj@m+RalK;AIo21qz_`rH!_rVTG_pqB4Rh-zf&v7pu>AYR(0z&S;$r9Rc7x ztPI{?R6=}`rE=Ch0cml~^k5QtNd$=O3T+TgS--{|Nj@jH!i9nEgDQtboy6C1W(7k) z)wXNu3stg4=0wlwaG%d$2PGh@DXtp6t#aR<0epJuiXw_pBGJI3Nh_fg=po?1tTN<6h9m&6vAp*)i*xs8q|6ml>NdNrm{La6S@5`paXHkL}!nhjXW22^y zg|`-UnnE|t$|1{UKu?7|(T>x@3h0%5Vf^^c7^nsTm>#Z}hy_aYn3(~sD#mRU-`952 z2rEU~nEan#vzY-TquNxyCtml9WlD2o7kB}}@`Rbq7-14YT)^TRv2A=EM-8I#2L6Vz zwtFdG_7Ob^pl>v7vtU~I@4u>!ix7B3me)6gJr^0$r|crkdy_XZ1OBtSYDTH^%V`9e zz7m>Ry%>{ly>C-Ml*6E!kt5-Dg`p#wvQe4|^h}~K2IT8^%qkmM0spDeooQj_+Yc*E zy#hB*v}M24R=>lvg6Z|!ki4hclG>CS?uG9_V~4G#)E~c$3JwQg5H+(h#!`@KYiBp( z+%gyiacI@ zxg|3xV7klinWXo0cLW;z40mQj*gWulyzMx4mBy;Zro8rVfBa5K2Q!B94w9BvcCx3H z`p(AhLTWwhbMR8$$)S~9AQA2jLknC-w?dWBd(Q6!?`nU*aAm+tvs<1vX)` zav;j&m-uC8o8h)fG#4mv?@J8idP-WVgy*5@W+T~0sVEshupS_r#S4?j;9UoAycAHS z%aDb57@NXixln#ffh^mQzkz)dU#l^c| zY8Gy)_V78XHE}F;UNddy2}SG~={^pzi1146>pc-9A^>7obw1 zp@v0NE<@sGFV}N0JqV=yTayvK?-f?JBd+Ilai_TC52ve!fJo1qmOvD>AX)jm+X&bn zB5-SSJrqzw{GKNPTH6f!w?XIJo$BNn-%fio`f_r)5$xuZOyH!+`{Xwl+(i-Gr?M-z zqGA<+Mb_`GlFK9=;%p!RQ2As~rJsWx&jW6-!8{+vf1hu8=(8XkxIk*rn#@WBWSrzz znibZ3q}|X=2jjRs_XUXNAVQ_51^`TSne+nzXN|ZQ zjjXxg?FyvGQH=v98!w~4<8_!{*0T#tBTX$CUY^pnkpho!`c?A}ZE=mbZX5L}#6=sn zn)35FdDv4TWOjN~*-Q-BfM_bR(dyr|j^h~&)l3EedYt||P#wibA%ewKI?dGQ__%qNZdi0q9H+7$d&+i=CPU zGq16{J3h*}MFT`7ty5R-Kj5$?2Fh;8qFF1HXHL^j834mf;h_$?60k;x(rDtP^l_Qg z|J$@2IrUDU`tEvq@h?o(OrxVji~85{2L@;e{N(l#`0x8#W)VvoC@80(2ei@z`{d3e zkHI_So_ZIRe#dwEjjZk|u;xbaWgG&G_IorPv*p;^-2PDyxe_MWg?>zxt%;=%m)rwdhY?|&FH)j#aDqddmJyQ!;&VtnCM53FJFR0yObNK*}xzoml?dSFmt0-r%haj}aJPCSn(Pi@fodxSKY+U&XCxL_cp-*k1`uCn^^QVM;Bju|o+ zs-08;z&Pce?LN#E$_Mt}312(D9iBHo{-9Piziw4tP5L1o3px59PhTDn_4ob%8cViN zgd$0a5X!!rNTn=e&z`K=H6hy=3YD^i>}$3eTlRe^B)c+0*0E2<7Gob~elPFO_woD3 zA0Drnx%a;AJ@=gFd7kIV%=rvjuAgXpg=U@rY&wg_hrN=`ZO-NNsv}K||KS!WmbIE!yzu%;w7@8fXwXbS6Pd4`FHR6zQ|S8ksg<%{MSLvb#6*mT5G@V!Pn z`%;-S#0G8&qnAs(1vJ4UNom@w(4W4UU484W2&Ltg-?(=tBug9OK37r3*{&qxU#wvx zJ9kLO%W;D=Wd{vB;xEnVITOLJ*QEOWx})Y2Xd2X!{ZvkRk*8lDQ8` zZ9L$9)_|ffP0^QT<{wlLS(M)PIH zE12Ql>$~W{3{f8`4(L^F>^YMH;3-7pl;@)PViwcjBYr&mE|6I_pXvdc&kj;V4*85L zIBeT}Doz;{84VX@A@pA9oAI>2BG*T8U#X_nBI6}PR8p8sIUHsvJy{Fav+Q{Nt#V|C z$D{}ATr+Tvp}vF7zD%@5C(Wgw4;Sp?_WNqPe=1x5BITB^7yH|+5ecgn%jJ=1v4l^v zM(PGUsV-h3lm|>X;*xae6Xnx0{+NLlB^lJ_EK)nxg~}|bAvBj~bL8-Zbaj_vtmpJk)ovOHt?_X!tRNJetY-M&OzA_|w@~k-=4t-wME6v?` zJuFQ*oFe)CRrqmZ=)9!lK34W`(=_Hx-?75-vcEgMnJgXJq^^wEosvTOW2?G{=bmsZ zQ-)?FkICOzmy?M}O6lIt;`+mQrm!4aXc%TF9e(nmH@z7&uCvd4nI4w1E)-emp5X{1tBKnq;hxJ^{>5qQ`#KXQS#ht8JZKXfigQuGKu&M>hVf>$CPA z6~4&nNRlbRvZFF5SxckrXW)ASB!@aR@22dFe?H~>^38`c>pC2$!gX@rt>KN)2G2n& zl&=}FCn0y25UH1se_-G(l2~XEN}#LU+oCs8N~b&B6J5NHi1tKkJV#c+O=t}^zv6We z7O3g9>j_pT{vK$?592RuW_GBy@_le|DDb@EAHCBrTg~Qo(V3IBNQH~_7S}T3s2=eu zy>SH0FU{_cid%n-QetP+ZBsryw9bl$LA}aFM-7RZ14>;;fvv67JIh&w_`tDW%?fwn7dOL#( zrw$=zUDTpR+C%3?tJ$?BJ$2BK$!KNiqO~+~oUmvk%9eE@(@j>R@~N!O8da%7ye1j6 zm{--yZWBT`dpqv*qJ@0E-Qb~_VC?*FEH{>M@ju13GDiv_s4GvaU-)=+!p}a+{Nln> zHUR%fq>S(%8&hN6O=ii-zFbY~ZZSeCzE_^9*pyRr{6CZSmr?Cr{tK{qwtHIm7i+wh zRi;Ivix&1Y`|`Zz?HM%ak__o&Pq0i1pIFaGfma+O3sTP9yPWV3&d>XpSFk*^2Njx1 zdBVMC?BAj}S1@>q0CK9}%umLgR3Dh}OyDokY?#VGbu4QD3~MwNrEw4yX389qVz;9E zFk3)l`#%#H&wpHfZbDbJyJ=|G>+V}np5Gx$;z^>p?Jtyid6Zep88j`EK@YsI8YqmY zt>4DK2K^@yUTq=8wfSB>4kp-*pb^`>9MWoYiSaUH>CqE}yy)Un@o(8@g*F3+F6CmA zrTprj#s^0)e!$;!?dV)b>(yKr4-uzQlVF6o7r9aQf&VgC-^^%wo50L0{kC?ELyF%}6Z{8GaEUTRhwtr8hJJe<0AiiH|ZLcu!?)75o0skmnP_=`K#pSaR|0 zV)%07X8(5DnfFXYsf;uuvYvXi8M*4+q*!kr9X9UpV-}b6?3p8IM7Ue#bS?drFB z^)T=kT>Dx%>OBmZn%ey&Z7f@DXsXNrKlRDwq z@Uq<30`iH&KO+jb1$rpI)a&W?l%U{yEgC5h+4Z3(A8{L_KEKJ+WHQjtFpuF86JZ9{ z3+Q^!Sh*9%{ynLam)|$vJ7|ee6*7N>egtlj$T{P-JJqbf@2w-X_zM1&bGhjg~Y`@XEv^r41WcMq`5e zHSLzKpl@nV1;EsOV;igN-_jr-Gtw5?T#0y`LW!Hb@ahJR7Cf5JFQgA~Xv{!!0iWrL zG04?YOuU__4Tjc;+fy62AhT5ViQWv4PG*e|x~o7WJ@|X>UsKw4WQLo~j0rRFHj_^A z*Te$0g3L^YKj0wG3DPNMj6{G1)k66*~aMLhz(G)@zPJhZZ=m0Zml&@OK8G0M; zyKXxhZcFHs1sg|rpL$%qgWD_qWgQZr2u0yfuE+^KG-cb9!RR?}c4No6-IHXHJ|}Ia zZ;bAD3Ru57@&>i4_7#Fm$PdWOI7&hQHRL z!z;#RAlR*k#v2*U_ZEb}CXwp%pV(^r;=HG7YA}2@A_T_EM zNO%ofo=baw<4q99Fs0sY$L1t~TJan18XZ4_3h0>bfnkayMYxpOlJ9g9k6->m4J)JS zxXmR-=r5ae&3MN4f**y|erdKuk!P0*=+asbn{KG_EbTL|EbXHV1_bw`2F6{eF#?rh zniSL8j5{aC`w4sof-`o4TrN?M-O>^{t4pVs5qTMBXx%+RBuWoj57uAy2EJx*j*y+9 z(qFOrL8TA1!aX>B|9);F>Q&gauh$Z;?k+a~r(Wcge(UAD!JwPWVuc=R>G6Qq@e7O8 ztUmX-y^gyKU86I>qaJEI@g%+GZu4ceRl3@)6w(phZ0q4k?s~ta|6Ac086rZ+JCZ+N z)duJGh1`E8Y~i6rdgV`3tb6f9?GZ7hE*MU{STTlWs@@zsu1Md%jA(K=v~!qoddv7z zbPKPLm_q_X|H|RZFp?kKPye;BGypufxQHhV5JC72Y&QPmE@8yQyZkO#cK{@;-z2{7 zr1eeUcGDV`lcU2|Oom%&A<~+x{uW3-iAUZSeKK~a!5k&s4{B`1`oR4M4kHRNR{Qt{U0u;U0xKUi%aM0_#qk^tGRff4(U5 zp@k$y9Agi(G9`zo%xLnDiJ`QhT8N(Sj^yqND&2>O7|6$dSWIA1A zTK2IW;bz7#jKwY4niakf%lw@8Mk&78BMs1*Wi|n#F$4*y+_aqSHNWMSkQEuG#*@A~ zC627xAIX{JF6)ZOkeDv}gz<<{jX3kA0zVcaK|P6@d%A{H@ggObi1=&)*m87Do7&Ci zQFgkQ(H<6U+3sW3lPf2`+k296Kge*s?X+NKMC>}_gcx&kEiG=oFBVufU0J~Jl?^Eu zLZv|C2F2gl@JcZM<(!>4$)Wz{%43omc|lh1>O*W-fd@xkMC2Y${HMFOH~>sv@8Ey= zz&}*fh1>i{qxJ-?+cGc!vFz^;?hbt&Fh3ufqUwhu)opkDZry)!61Lvoy#6w7eH$Ok z9RA71>Xl+>zF%9v+tAMpRqYl+ZPx~ui^Yjb$Puj?4Reclu!sBPJAYgiRH=(>wFkev zLaOUH-?1CISHYzMp4Dvl+KvTT+M>2x+ADIzwUh`aX8O$>*UUDz`Cq$>zV#-kSm)`^oFM5L8B$|4o@g6r$bw{*XdW z_W!;C2RbJIE`7&{f$C(PH=$b7*tkw-Q;vB`FLJt&ww!-YnY@}xGvTv>rY$lH-|LFY zYcxV@pUfS-xeX0;6GtYWOGJAEf6oTCmS}QRwfi@zWa&;J&i~BIYa3-@1BC}uOqm-K z=JwPn%d47VPU>pPZ+Z zndI#a{?Vn#9DVc9r*%oJ9qFd8IUS$-Y_BLRK5Q(uejC857G^BluF=C>y}v#*I!Zn{ z#YLPiWe2;x6~Vc-_5s5T#sw9REQ1mW+Rvn{ z_)qNFo&<&)^Je6N>ettl0#*K6&d#aRE#@}JoV-p?KYO6$%FI&p;^le&TS{4aZWcQg zJ9&1T^5;>N85Qw7l)M|>c;oCJ8}PNf8E^sBcYJ2|lQtwFXcnT){TVJQ3{TushjIcK zzJLA~{uwgy5!ByS#JesYAG^+84zwPAK;YPkGuNV0a0MM>bpZi$BI0!rQD7Y4sgX#jC}RE(ctTyPxT5 z@HNAs+=}brqkiILp6t&xnv~A{e7DIpuk74f6&Yv^|L#v^@&vDVnI9J*G_rL81lQah8Z0mSOKF2XymP4tzMY*btFmwNv5z3sm@Rce80b%*YTD*)9diSXIH>@1i=g7xZQ$C0PiN0F#IYT$+Lp2=g3b~@c*?cqZ2KeJ5a z%~D8*l*jTn>7>;X5|B~@o7d^~pOZJO7b^-5-+iBb>;5aN@W!Nq*q^~l*wRY-6yBS1~}RQ2X(eM?jg`EJDkar)0wg^SVJl z%Opy6r{;8quY|Nx5K1e`VB?{e37ZN1fzHK4_P=h1vConZxC{hf4q(%RQhgcdZlU(b zN~JW+_?=(Y;C8XTr=lFH|6^*Yqim=9Q7nS$H2)G0=3ksYnr!I>z4u@k@CmUm+5nR; zJEz{xMw(Gp>T~7KlAT%L?0zWua*Jk|Jmzv^zSN|Yaz+&Pu`xkExh{Y_*Ny)*lRzbL zviZZ2+JCl*Ar%75WeAw2m`5@i(FB9u5P8PSN}UaexFzUNxD)%x$D9@zK17tu$)RY{ z>H;8~IJ>q`#(xRzMHp&LaT%0JZJg>6?4kJ7`H@EUpr( zpIpnm^EvAA5;0d+hAy%Q72+yqdx%)kCqLY^-n(T#G$YR5w~r8{^28Y~cegJWW)|wz5xd%_xlhccES8 zwkADrIhOo;>{ze1lxNa6d-R;oh?*Re#kBmrX(lksL`tnC@FDA44jIfAY1c7)ecOYIpqP>Vr-Pd64xG@q5)Kg2Udmg@sXM`&3Z)-d{3^9A__mpfCCZ4k0 znYAh9-!MR&?98x`r z%{$(_V*9IgRrn+?{BR^9f!o~i@Pun-6NNd}*1-6XtG*@H4lGUXVnP3I+C)mX-|lcf zEp?1Dz-munaVX_*+Iv>v*f%Ype9o1u{BcdnQ}nLV_mD!i1Yx6lcTIG zAE_Ig(?YwQ+lB5HMmT^fD?x~J2iSGfc*mI`=_lF)!2zJ>4D{as*!|-j;qp~*<~%hBj@UI)vTS?Z_PDuhbH_YhX8QTuXD(Z zx0nREDI{vmo=N3=?NY0!hS9jqFA+eolNEZB6)6HMee(1s#CG%kWC3MQ;>B~BwLg=! z4Ss6OFgn_DQOCLO{H3@ng%Bs*FFl8C z_gT{|t}bbGN93cp>raN|_PBTUqpXu25=jIYrF`S7h}J2w zN>UsBxjuA<8!ga+sqG3g;mvHj>CbFTg{ko8ZIu6f>~`whX!W={UySdK4>we-@k>veP&y20Iz! zlWm?)zLXE*9J(&qj;N|;d+DF=KH~m%KuS^cbl^rHL-Z+0 zomk>~9lCq;yQV+#$UD&^i}Kv3Vx?6&x#e(&1{k*A%raS6Hx>nIw()EN%Cy7x$@2yV zDUXT)XZ{Q!BT*R#8%O+Yl^am(BOQhUgF1^}h?n{9@MV08Qo3rk%{Dih2BiA>OA&*P zh!~&SP>vW7kWnn`jE^P$=HKu|jDaKpTR8xjVX^7mdCr_|?aOi(T?#U-iSJg1 z*eS9BVgisaEJ%NUJNLG8SK z7>Z1-b80Y8LkYJ4tLnOXOkZpCbFd97@&mM2Wa=Uc1DpJnA;Y{>m-w|%_gD9|5dc>C zI{1_+$O-WnGI0#1I3|Ot&yA1vyl;uq0{S#Xyabyu8O@oQTmzvGlHg4Q_(nseI%t+v zXuTfTAGEgBUpT$C7#YM?uPg}@zh)}(p|#bZ_W>X-qe)vHObgXHL~itDot>uhG9|U` z+_CcpLv(!epk|}8)5VkUTHBWORlYkJ?XuU4Tqhyf@2q{%Qs7UhTx?{WozdD|k-Zmu zQQXXu5g4ZRz1VWx^4T5KD~L(aJx$cBD?P|qJbKfh52Wj=Q$=i0x6jQR{Fk9-1hS=q z*WGGLTx9|obYn99dpt~OcdU{OX2Eh{)sa{oo0mx?ZwOw>E8 zJSFe_X&^t5X9T|QaVCN36V4=%xrPO$8?5~}2><_CNd;*y5)4T&1d3|gv~e-(^9GhL z!3X1b56zr7T(CLECGk`MnMJydO)%s)cl+*X9c1@-|0Q?Mq-QhE0F=kQSaG#P-3J@7 zU8Tzibo$OGEK|$n5RXnD#P<9P=E1?s50~ui-F*Km`Z@_N~tv1*oVs58Qti-pA;8NFv^p;;-k+jo z~Ze#P+AAe}`w=I$CqQJlAwVO_06Qz%e2mbg>+XC=$NzLAwd4rXO4_)~H@Npwb zt(4QB!)3jT!`Ipbr8>=N-r{zB^8z3*^?av~1zdu%2a%gquPy+V-HzU<$hj$TaZM2X zbQUo?Y}HzgONRROJTwOW`F%QE#8wguWRR=BdT&N-Qn&lKSnm%(5R<{Qm6ugoSHAY!-qYy|{zebYjS!p9Pky;> zl$A;017FO~9>zfK>|U&dIZZv{K_>WeCjW6I9Ubq*t-J?klG}0MVDHRc+ilV%iRA+p z-QIxzi-6*!h8g5<4D2MaQ8 zEa$kmtxt&t$-4{kvHf+BeU+k6u4!re#6$h(GGOx{vO;jW`~El3BLgoWfcuvOjzhMT zr%K14gW#B^8Z@7K9jS!V-xPeC32uFdhh5JT0b`|q)fa)OXwXKTqIw>_?revF?6o~< z=17p&I#st0gZRE}UsA+-MrdJyMB^MtcEL%txcKh25a}5JT?gwTYi9Ztj;gukoYPL} zLOG@h_IHHA&2u)zGzL6}&ax*QrUEc-Tqd$k0V*K*seSU2tV1#|%)u57wi}hi zWPPSW9-TV{tDl|HI8KOy?pz?P=+9ls@t797-!PObL0n+>x2+ScGft|De>yE^^F{eqbV3B4&@o-)D1RXXHk{47|clK&d8%(;HWO8LF60wC>+6C*kA zjR8o-zc+v3P9!LJ%IZ=UYLdA^f=Aa=A4G3#@4urW>x>QXk&;a zP8RAQqcSVl9?>|jy zymu2BO%6jEW)*z%{q&f zK#M2(tIJ&0-e?~9)XeJ$mUfT%%#>a4{u%-}k^Z6lx;V%{Jt(9gDRl#ttAIvd7mLlCChErH?gH6HsEuc1OW2@_fIt# zpIL^38wM2m05ic78D3zRIsw*B0A6o$hm9CT7>oIR_)*<%H3h;F+t!_E1cMFL=OG!+(F7Ni@$~ zlh*=yL#H@?ramGw*u9?*KQxjxtyWc)61twMUPdM8A(w6));#?0ykd^ZBnj}fl{U9}CysTEo zX9Cc@2~6>-8v*r`JP(NpB+O5;N2;e7*9 zB*R7E<&RSz9vt7_5||en`_^(*dXl=YI=4s-O$*lIbCSIW$~0u}zKkB3P?xgU>74xacc?SD z0HWv?D6{&!OG{N(<&}Vk98KG;TQ#;RH2G(1+E}+QReW>74!tu$Q$bzVB8y`BP3eI3 z#Kx1Z92bH7#&ErQH6tO>f_hRcTE&MzWWdRZ?xV8gd5XUFdUVt6p`J4gDR z$V$mt7OD*T3`lc>CZ)P{XrX)nwi=XFV)6T6sBenY+`m!<@K#y<+FWo^cfAS~xz~Nj zprPNc*>zQXF8Tek1G(X{f}kheFqFhk2#nZ;K$SkUz=y+K+lv&KVGfL{Gr2z=P1$xy zZgLHC&=mc14u5X;RK(QY=c20Vs8`gGy&1NO+2~N4swm^uwHw52m$yeCck=BiTtsL% zL66)Yc&^pfVk{W#Vw4?Ns{v6}g&Tyl2{E#TJ(A~O(jN2RN*0v9#C_Gf>Ch;uAU1hB zg%(!$`rPh7Y%pjhiBrE#GI|vpzucEU4~kc}uXBam;#~~^)_+)v_%%uKHO>FiqBiv1 zcJ9;iG|NUCYTusXYuC|wdsG}b7r>s|dVC0$|MXRGfbnTLr`uwJ=p+F0bbBpE2}4}r zu29k71I%@33y*_wfzfJ?XuyM@8HPK+)SEX2;8`7(mm2%Tco)>N*usx~QmrlZa`e{9 zb{CKa@3YardD1wANX~gPrRAv3;Mn(uD1qdr`3A$3S>ASIcXiBqu0cnaP;?sr;~J+- z%wf$&NcU)pGD!WPO>91eglRX(I zm`1LX`4cj_k8*dbxNs7b{f-{SBW&WXI79()kZQ@GxuQq3UVSlo2ucyk+21Q$9SU} z$Uwfvu?7xzM+gd_55Ov)Tz>R1*i#o7Re#Tc58^_aamDY6#&F%(_f)^~tS(8IGqk{# z&QgiDVAJ$#&tSTXVYbyXW0d0h87_6;!Vw52RuzGctu{eis!jmnqI3X36OSfpLo!|k zZx$rWE>)drKl+F2W~rBbr*yeM?bSxwlyn$_qRi;B?*6Nztd>)b`A&Ar zDMp)hlTi)0sc_NAngO5A zB={VFW%+26wq6s}u{Qu0VwN{m+l7O@D4ukcb6)qW|0LHD6uR+VXDCh~%m{#_Y3A1w zb6B`Qu2uTfref`u|nxWjW6G|G6 zTBD;kfL#6>^{8d)lxcl=Jwc>ZYxeR0pMD zbEdNK?^)(3Xzw1L=yPjAT;^Gd%}3f5jyl&(^GC;Rst`Wd6#CMj?OsKWg=*v1H)u?j3Y%auxuT1~ zDj)7a2zv+KGI1H33nT9jYs7`TX$pa8oaebbD*3M|th=`Lhz!=lMTp^TM-pdQ1~PO`48u=cK<{Rb)50d5m_}h(dJ+55SHz0#ul&zfB$Qy11fe zFSM_y8zQx>f)FAAuMoEI>=GUF(I9G~%67UlJ?Zqv!oPpJh0E+;54)`--Qt2w1@GE- zldSxKp8MZ&cumR4`sbl+oZc9$52f|LC_iGY+>Eff-_!P zG(}D;4JXEsU1--eRzSQ9*IhE+4eV>F8%AtX*K?_nS6Gu?kQTDYUVEG59=;Fc13koM zvgS)^OC^VyhZZd^rmn2auhj~uuoCrVjb2?#U`u*{zz!_3w(1z?&pFBoBs8GYMgL*@U9d2V~ycz&dtv9r8ssUSKnF0&6 zSso}RP>7Qc20>!fXiUiVm$jIXqc7#8I=-?ce8`TITI%tEUP#+t<%iUThWqj08vK^z zV$rlC2L9lTOKsY&ksM@(b2r_26zpNTZC6T)0E+}yGZ-=8n8eHA4(6bJpf>{7fil7&k&FrW9fG4NQlt1}ly9a39Nk%@kqGECJxp{k0ue?$M1%%e%Y(NHafwB`BvYr6!#*lYdHKJ5}7$JmdEoY5v2t6!D@wPMc zTW=kZdhKOsq>Irk%fsCjK@j>Ya|jhSr-7#RT+;`41sLib$MX$3l#LjEH*8U$!dS$v zP@_vsaGl2MlY-u$PT>hX?90&`Ho*K1_$7lNx01J)a@$@!5GW;nQ6uReb*r7st)2ea zPH)GEOWx1`g&~)r?s*Y3MfE5CxgjLQyI$CMglru){W;8-%PAa+{(5%n0}r_+wl%?+-;Pj(6XHwkX}YMk@`05Uwz2 z;jIsD=b8c4I|8e&NlL7MH7L=;1di(+Q!Bvzw>#vB^v)Sj@P7{$V~|K}>4oc1C3x6;Uzs(*U|1ivAK&zFPN(4#M~pAI{LuX@zO&TYrv z>R!8Z5WsTiWWf2un9B&CL(VYBh@cQ~w=&xl6tyWrA@X8}(pohubk9H9QrbncB=_7WidH0HUywUt3OphQ%Bby-yCo_WbyUQ|(A*KvEVx)`P ze*TvJ$Bb>Msl+VZb#_oC^2K=-_=mi;_o0Wk486}{-T{eT5GekT>)j7&hG8+ummy8r zMn^v{KL=d+At*I%8xfd8MN#~f%_Tpkh!w7t6k?_>?K=)COlOA4g*@ZvihcB^@9G;P zhI}8T%J!k-H0AxN)hMBYm@7;J-DRXGQ5_u~aAdr6MJjb|e;7L~ATLwY@ZH9wUbe}5Pvd`@?e{r(i^g+ zMsDzTCmthG4y||$TsZKza4e)|M3b{T3R_TU5+Jy702pWWQIuC!vl{2o7;&x3nl{j? zSEgU-nSfbDo=00{=*hKV$bTs{utVWvCgTk9udI{5xuj$e0Z~;_p5`-q-cj2~YI?U4 zGZAIMy-m25)p+~2wAaj@%;9PXiLZC{n2XZVwuQR~YM>gUi|dCpV({Ow4Zh?*hFs4d zO?g8IH-D=hsg||4r}`d?KG+o=miA-Ip2)ZprCHP6zAnhIId(9mQ#O;5y1v#Mn7Jqv zZTY;#DsA#y;$b3^l2muq_EidLoh?`!fTp5Xm; z=fB@ABU@^84d3=vaUvZlwUHJ=Zk5+jl4efo;>M(Rujo;ady_2#9$P6tsSRC1C1&P~ z6{}gKs%kH1MEy7dP?K3<=)UgStrU0GS?-Oi&>AH^PVMJhftB!E%=5azZ9-1U`(h4a zP@aT9)-kzbOrw zIHAz)gCjjkIF3wNl%YsbzS|sKZotWJzp9vQ%#)B+BJP?n!0?BApIhXP!2ZBt6eRiF zFpQTK=1zbA)r6{{-%)HF9N(2vvzU#|2e7T5Q@*fOM#syj8)a(<$YakLQyH5tQk*v3 z?F7t5n_HivG~aG>f2ey|^W%wdz3AYJf-{30+bc5@c8Ecz*L4p3osHoKnUo8+#@<;Y5Jm=RaTgLP4fDxjMVCWyn$4FeBz}`=PzB_8p6{8z5jZ~uGC404+)BluGn*# z6pF5neDXMs>xtb}c6yO5qNAM-3Lll&t(ouD?hc(WQDRy)ZAfHR%6{m=nI96_kG4f{ zCI!t7n{w0h3Wg(Y#r>bnI7z=G0Q9}rv_@m@S>Fl~Kbc-!c-0`Fz@B$4DN^@tRxFpP zwOfX7&x;23_kXxTW-6N4V0J>?>m_a#-F4SC!|}VfUmD@M9q6-{pNs{se)ps`TK%o} z5rE#}%2L&;?juj*9>|^{42~774E$Xr9O189?G^F`?M+LDm09y$xrT6jHcx}`nDNGi z90e}#@!g5B}WH1H3HY{8$nyrg% zn}!o8Oe*YF_+a|);p4s#9A%z4NMrgzPVRwyG$hW z9WSVI5>eWY|0r;*Q?IxE1(g5MWO%3Zm)#+SSl zOKs-ghIi6!JM7!PwjKPv1XFb;<<+3vPL_mUi>1+w^#9ETEU)Dj%x;WAbdDV5cIkdg z%Fx&2ZglxR2fuqofi%sKp#9@0)3qr+K2x!-+)`EUFUpMBTJ7gx>FWYkl{WV@2isAh zwO()493SWH>AU8R*lThO%6b9YSYJU61GNp+U@NQ7w%O4-ortH(v`G3A5_yVo_gBxF z*pMXf>g&cKSNYHn#hH~d%e_)M`?%E>pCw#aAL6aXyP{{(!%hm&j14RMP??!BVr0-^64aJHQacIStx1%s!$fwS4-%H$u_C$o&+6prGu z>a(1NI_md^Q7$%PrBfc}7kn0u>#5KZUd{C3?+8+@i^k@iBQ`CQp)WqFED@9>xSHr?PywcRk{Vv2KWVN@&Y((EN-w7RrL#!Y<@6zDCbnRoi(C!)7Yg4o1lHVDep?9m zeBq};BOuo@NBPc=biS9oLzYib9rMjXPTWEC^*6i5D3hkh9ERd2SS%McR`)9D{L;?5 zB-LN~ZEx2-Cko^<2Y+_nVChvFEd3&YZ=^5UP5*O8|4fna1Y_a^0DNowYh#(Iqp2Lc zceIevZLRDNpN^^!;E*FTTkR2xGTt7=0!M`9SiaiH2!RKa(7+}BOezd5iPlT?9FF;? zOiQ@N8S2RC*)wXM3KGekRXz9mg|ZvP3H}GS?r6+gr@ZLd+H1C};$}4}QPEh!>?aCk z6C^+OS1!5!)Oo-+@-gUFQ+I##ZZ#8Wqw`pCQepg`R@XVa=;cB1x@d z@63F^?S+fco1vmB;d$d*s^?7yS3WD6UNWbDV8tqa-Kf4D4l+U(7Kb#sle5p`6_S@29s2^;?ddn>Dns5!s*7JVhZ=C9c*QjOBKl&inPtCn@HxQcJAO06m#+kd zQ_?Crk6f@Hn@4r7q<4#zas{-iNO2rLJ-(VfItJfKUQt{v;y0#(X}DRYtUWfFo`0s( z?_vTkQlnm|Yp-@+i{d9#sp@7>>Z-3HHU-PKGlpLECZ^6G6soXC$1A>X9zwmV`{1KN z^H)1V6(V(~PrYb{4X>)+{gHa?F4X-DL%b?7fVlCiXJ>|S_rmH8}yB>nL}>tlZAiJ+ufV?ouy(5Kao@wK{`C+`VPjJzm9e zByYRvnUGP4Z=eh2-M_SJrS?+djt?v8x&(_jV3h7R%}RO}?y`_;a2@FGi09HXH;(o< z=eLwwMWNoxxM+M*<6|$wu5`x!)+lNawR#%yT32=oqqB~zR;n9$aC`RV0KG{FT`%*vrORY)fV9c z4JEkUy*VfiYek99fhNIs3ZD zv24W!8LDARU;a!+Sr+_xGj)Q0O#SYr3{6<6Ck^J29qBcv?mCWS!~~^A^&m^CpzN&Y z0p!+2V06}M-(Fo(7`Y6pHn`pEA1Sq+u6(czRY&h$D1G;Bq+;&zS0%|;y;Ra%yoUMT z@1iPRfraOzZ{q9`fXqFi_<+7^tl4qOfj+9|wlIt+%+JxUt`2goOM~HXW;Dwn0@ zZ)ILClV>uhW-rR?csg=Kzn+lnoT3JbxKZZv095B-H0es6CiGG%ptyv)C(-_YseS}=Mu@`eDBzb0~p&bUNR>oP3> zEA65-DFS2`r@zE|FaL;WtZheM(fO^Z)=Iev4bsh!z_B z^>ZP(qr?nQ=aEOmQ|~UzCUZct?qpnW9`#hCMZZd4;D|%QM({j|)ofH`Y(e(n*v+*1kM%an z8YH_RKc0rR!H2D{dtbF)ffmd&(pYZ|cL&?MOr?oYHhhfI$f*_TuzMS`Cv#s9P& zL@?yWh~9>Nd{V!a_4FlmEOTG}Ex`)K2j;Iiwy3fy0Nk96rWa-qpa)N6eiHK$lvu~wbkd@`|~seH$H zwB@lYi)i{x;5%zpRO`plw;f>tn>=SBKsJU+n)KZmB8vIUJzQIHRWBW4V5wUe{Um!} zzmOo;f%Li!j~-zD-8X*s}R@)G&qslgitA6*Qs%i_}6d$%Be5ZS2S+w}u)&mH2n;$p~3#T8TB@T|# zCzBd8B|&(gszj}RXuloB6>J@BDOxySVBB4m9>|-zq@Am|U}bG{3H5>sTph24Hd6cq zP{bvxh3Q%vf5`)G9u5(iM!$R7Iv;H?X+uMZ5kB&}kb}f6i7CWV6=mJe(BYS&x@qYb z4IduKFe>2fV%Oy8YYu{K+lyT)^>2+I5?;+)YtZyWo4vg&Rx{)iwUKI^b8~BrM?P2c z)B0wyUHlriRMoA{75M~}-A@_ZA>Xqu_QmPYR>g_fP2MUwu=JKU@*QJ-La13lRn4WY z^H|7cxS{aEX|0i+BbnFw4=3!OnuKq(I@vsgVyP^<4>VCC^hMYH)~Kux!!z%kX!{rk z*S#S0k8v3kdTQY=r7e{tt5k`cAsp!_4>boePyaBd5huW_+7AUCZKqLP))l(Di4OKA zn%Gb?4s{JG!o6wNu}gO5KPcygcRwWF3BGZM%nF)K+iD()#S{m`rK@X|xby93XGDlW z#=!O74o`}M231!6;!iV+D@yOoUMVkQr=`WA7Irrpv zpZEM1_v5l<$*2F1sjq&Bs{6hkN(pHRk&qA+1`v@>X%y)WDd`r5kQC`I>F(}EN{2>r zn4yszX^|LU82DbF&kyhW2h5#&?>YDEwbx#IueO}ici5;>(@%?3hIgJ1PnPD>8XaDz zwXF?}Us}?K$-QYiVD5K)?EIy{Dl5|ufr@h{l|^p*?N@N2dPE10?{R-O)$niMXi&2~ zy1&=%vXN99X|)NMbj91rp_K!j@N$QoRdZTC?m0eu7F}wYD#bJGg2tPysf%68#T1Z= zS2V35Cc6fCW4f3e{LWc0FV2l;ABr1YGZxp_lcg@T~UNzLV11hQncL$F9pK%dFccR}E4MCf*P9NblcemRH+^UOMu7^L776GkK^ zLH{y|?1z1GDuuH~_7`D;E=I!jg!~(1S_0Qjw<(*lVkROD;@tK+>+Jc4+lasB7lcYZ zsPe8@MfsBqUBtk8rYIxSB(9k*WU)TgbE1)CIQJTfRU)_jtfyXZfy zcrdo9w4`7_mT+qpBlV@^re{;d*3W2C%f>EJbQbZP(<|}uCyN_+PH-!1qN^0WTqff5 z>e;i+DJ@=EO5S|xxzDQU$iX<`6@=5otyB1WtRRU$SLm`YU=mKg7%a{Sb~m+wu|FUO zF?~wArXY=E{I~|{3}&vM+BG)ksg7=d12Y}x*M%8JOoTpQ<3d;86cgyVkZ}Bw zC9fRI_ZL2!JgRb&$ex*HYn1V$uahF|HAROMDT5{CVS|+1@JCO3IF0&>;B!l?4%LO? zSfkI4grjt<`KmaO?sr%^ixaDALKcDLQV&=!hGqn+n8+<8sneyUQ~+**vo}v(vaK{f zK-MzeD0NC;`-`*`vNQ5IwfcGbOV>RgBkW4I!57>?tr7@&G0f;n-B`@O_;9(=oh-L} z*?V3x)GmUposLYiDQelwUG;qwcaR7B&<)>w>Yl8GU*2Ot&E?|IY^R~O(fv07JBY9; zMSah@aVX8{*~EHhbK~c>$7FnR_zaH&=Y!ZNsSV!pVw#~qYNiDscF`E|Qh;sfmjG>7Cb6x42t?aQhxk?k)9tfVci1kj2 zyiFHC7m>5(zggZ^%_lu4%B`EajbtVPeBa5i&P`CV;8_so=vCEeZA97R`#|wxh0Mtn zL%&X(DsyuEr))uwIqglxru5(HG3ZK%Q$Hbi4ubhj1-Q>ralw+S_D^zox(+YPK56js z-HKWZShiDx*%T^0)sBP>p}c2y_VluvZ-V4O+cb>#n%ED-amLfxWr=RtzrS@wzNdR<*gZST zafsMj;$_u$+uRmg3tf}vXN4s(($rkKj-2_es8R|Pj6JbXAv2!pofWa_JRT^B&U|xw805Ti1*Bu0Rdw$o7n~@P z;wYZ{J$k)?wewEB)7rdadsTJ`jO~jwDRWBwf%6-qymbqOc8Fg#enuWnRy~fC-{jKD zXndP>hI6i-TG%)M^ItvogD{BdUWXH$#mAj?sj6by(a|qQy9yq#VI>~xQ+7xlXYAe2 z#cRvG#`AAU)3T|_7X281cyIKPQEw05ljFq#hrP89(B+cg zPAbnACTl4Sf`ym@6VDjjHroQr6hM_fn)Hx3ZYy_tV`UmX*wt7uKYytn&e1Fdpa_bc zFYAHuE!6z9l3}>U_l|_8XvM<3D?-4U_oI|HO%8dFZ6McFkJX0Z_Y)S34PA$+(FV|i zW*^cb`4sqITI%7Yq{>C_^W=T(3}n-;41ey_2QAihJFz^s#{uPs&GVWk>2p$Qw&jdy zEKB)lI5KfN7F(NRs22lm?GBI!^#l?Gc%zpzDb zee?@3sNOQ-3!%D1^ZqT6c^4v#|B=Wf&THp`gk`7a7g>)f+yTKe6hd+Yx>q!GwRuC4qTw!~IC1IE@S<97yejneC5G8rik@cXes%gx)I9H#d~6umMn1N7 zbo5x6e}kk%AY`>fAuc++<-+-!B%tYc`R2XUX!@gBpt7CT&l@tkCaoe5DBjD3DBfU4 z69mz{rq>SI`;VSS5){2@KazEyA}IDu_r(Q)F5XBh{RC^3ap)m7ukLy~b{A>-mvh*d zl+E~yKVpIGBV#u4fmHL0a5-r1*T%UIXDwP+1^9C!hXgt7=b)f_mYYR}{V*!cQ$eoE z#y|H!whwoG1OM{+4EdqWe}3YeujjqkT)gRSxMlgiJB_;9@G7w@$g!|IbpO_;!22ShB1bqQR_1SPf;1uMS40D!akVXHmQ7*|k(54= zFBOJg4CRv2l&>`FY*Z{w1=vd3?V|%QhjqR;Vt4)$t5SaYS%Jn)y5;Nf4yW=zRyO(> zACq4L-y!rL4Fznb7OeU}$8WQZwP^2;uShABut3re*b+sZtJPl$M1xm>43gYDmtf~Y zS*PoadqnORU5i07JU>}f> z|Hm-Kn}U2TMj&^8W60lB=4kxh5z-W3sKRzmgpX<>&bu)Og<1VI>@w| ze7b#D;d|HFc|Wb;H1NV01NcgeH=1Rndutd6&~&XS7RJ#;>*z_(A>THllYD2A;jOcA zGxtX5{9jxcA6Any zE_reDAGYRk8Ev{ut3`TABe7i!74PE?;$vj-kmEtEFyKRP&JA>P_}(Y?J6T>Xk0?u?R#=8_BgK zWjQf-0y~Fk1=iYTR$hB?z!}P<*hCPt)W()+PWOL4{^2z^lC_`9RcshdY*CEuIMH9Bf6a@ev#{DHOskzMyHPdLg^V{+*&lQ?w^wBNT#Sg6kjSNYgo+?4 z-G5bZ*v&$r21V~;)~G8}C%o=v6e$4+aWYKLafQfmmEg@(RFq)A!Km6ERA@*^+ zLq?`yDSW1neihYg0`=dAy6B@n~M7ycPn69iJHW9a>8^gF$z2g8EB*Iv|?%l%w9Pfd90 zMDg83hf59`zK-j$tieqP&2=!l(d~{zX4X<|I`s=aYgc&Sze%$ogZB4O(QnV7?G;YP zz0N&w5rcpmWDr*@#vZkvk)0%8O`)SbS{y~(?^)v$PmDyvfwLn$eIs5|tl!Xn-n;y* z3}>n+$blJq4>*W6WC-h7d4NLeMyHF(RR#Hzf4e%xiiRhj*=>?aec;m@xpKCpW!lVw z(`|zCNKu8_-6iAbUMP4-e~vn=0Xa%3^z?HQUlq3TxIia4BEpGD?-}tSYMnChT%wjW zpK!yzj#8{fY??Tyia`S*zwNazecjZop=jd1;;_X>DBi`|q}b*xOe=~z)-Ol1e_INK z00(W0BJ7k+fMb10qrN7!&5GMcQa@5yXo6a|{onmP<*SleFNG48v)J2VX%HDH_g`7y z!Xgb!Z67k*YyUO&*(jx6*zz-UBs*zu>KBNb;u9VsN6RXqAE|XYvgF&h+LiIdJVXKgT>tM1#!Zz)S0+M@ztxehU`wHktvuwrOHT7yCClE{mFf^wE; zU3?YSrQd?+d~0FuM{;wJuKXKkrjvo<^8vM=T?*j8+0Cpd*;CpK{~;;vK5I@m3ui_& z)&@YdW&}k&e%_Z#j=%u|~1a4Nof zQpx-1a+9WvAkNg!8#CgXNOP_*#wcXlbHts>AY4^t{#@{w&Q6YjgZ;fWL8NDc z#rw(US)R$JL)bbtg-pW!g$Gdf9pgyODkDTu_Q%fO`c+P9z9}6F3uvRZ!~9#7pPx7K zsJWG@y(>es!FwP=ef)9`N_!kLUt?pS=yARagf6r8$NK{2Kc;_4xQUnJYKDBn1_fz4 zE>Xd9CkaKA&3apf0W!^4J*U~OI_~RQM>1WP3vGLtuOk8+V$q=LaSSn|#)g5#R#8to ze;XIPY`@Fn_*m;3tD67b&rvqSAuIHm@W|+#*Qnrwl(`jN>S4;J>|uwT%Q&lvIsU3( z2d=Vg_9+(y^2v~%usR-#JSiaPv1?d*Zd3chi8VK(BqGZ7y+F8E|58K>WdKAkttZz> zI2%>XvLO70RoTuGFaUQ33VQkb0~=IToRMsO@9neOgOpY=!pgj72Lnr~AKIRFJd~CM zK+qEM|KT5L*43AAiho7NphjB<y1yd6Axz?(n zt!q{+4oXBa2_3$jz|}%q^>l)kg;SaqS3Bs?j8dN47&WOpevd1=r{fXX9dHB)%2#J9 zUAu|T*VXDKJd!(-dU#k3<}*sB$(v!v0JkL0rXpKI9V*zw2V5oHMM^Ydg(K-Y!HwPw z$MKt1gXDSV(GnTI*D*8tePL@{^6Z)D)9I%mkYiN4vn4RDTU~-eK!F3oCI0W%UMsUO z!g2tGMbTjOWoGw^9!Gg!AIx>23>tZs1aG%@=gt%8#8f}<1V;cvyR-5w_fO3DB z!EK9!l?rlrFLr2pZ(a{|?(sUUB=?GYtq0z1O&XBvxU`?+JZ#$P4D?Aw=lb2mJ`ZD2 z934UQCJ&2;1b~1`0eqaUl9f3TNS&CXsa~?CWdN$FqP>j#h3|uqU{D^PO+P$EsdmBW zq$U3)#t-*rk-SnYd}Q9tw*aKA!)T=? z{|Q5)j8RxeNG7NhkY61ZS{D4pYg=I3k^JII*TJ+m_QF98?bpV7Aq)AP5vHHV!)rm! z!s#~rYu+36`vV_f5qmB+DA;kXsjId9dhUGhI0PH*M3v#2uUdFYA$0Zq@C zAo~?e1vf}a5Wf3m|8_rKPbS_VF~&RX$$uNiGZMPYm8Cu!F#Q(haNoF0ali$|NEAAl-SwO}UlI|LeF|8jlNy7`xk^+$@1{)3`vfq~XGCIvzsU zVNG}IR=oq_<15me{P6;3dls22xw+~qwv?wQxRT~K)bgg;eYL~GXL~hSnh8GCh1~u6 zE$mp*&_Nv0fL?d?7$=7ow-#1VsmaT=6mq^J9SVX>^180sB$6il0Ql|VVaQsi{iz!X z_`l`x=UyFy{+gkVk%f@t;s3hr#cz#7`t?}K+h%PW|A!ss^d}_!^%+!&(TFv`YIvcc8%x;&qMIYymZ;Glwym^yS6_rHZhyMD3e!^0yDj#+gN zr<@^hmanDZmcOD=YM-u-&}HDiSlII)G<<5&AfEqj-lRyrYL%|HAvv&tj;cY)sMP-R z_|b9I+SP>6aDb5Z_h71k187B-J2AJk{fTlMKvQE?)?A#w%^m9w^c^Qn50x(66-Fm# zJB$<7GQ-O&BAaxVQiDVVi1ycVk&;$x!eWDZZP$J*ajiN2c2EKKN?zh|d-%s)rpU^> z$R^$k<4#A}rurC?$jeSslmvqI)6tk0anbdcV@XjlXRmou!*r=AS31wvr%wtk7_b$; zw=w06%V1Yh=~plZ=>Vzjz&<}k&Fd5TFPCK?P(4R8mG(H1B9vVZOfO~;q)){@;l})0 zQ!Qa}kcq~1%UCu5z|qgJb0ZWbX?Ar-+(VDnT3)q0$k_+_N^srdlN}tBw5|7^TdoGs zIDO9W%8N80u6uHbq-1NMvO-*1x~pb8JPc+1UEU+$zSp+hYzF{YNV#O1uW7;Bbv5B^ z9}tu~-H(f$zOUo>S?$UL2s$~P)pZ4B9;yYF`;}g=Tgr@e?(~Cu5(_SGjQUr~lmS-a z?P>J+M&9VMsHbc?@VQ@&Nz47DHUCNVa0O%dg!1IghO~X#PVp~4N%NoGVG}&HLWm7* zj-QQp2!Sf1w0ZZ?(IwP@7q_)6g7$vxv{949w&;%t471$w{=Ey1TmmK2m1Iw4QVb7Y zK*79(r!{qI{U`U(lg|dNzt0Q+^IR^EyITFdsLJcL0tdDU0pr*H#Ye0U#f0S)B__Kg zF!iQ}l?OGvBT)7QfLk-=EwFJDK+aZc=iFMjBwkh7hByoJ9?FNB}e^Ak$K5K+MB%g{E6LouU z20$^t@0q@i({JAywRAQp+Dvp0=5lGTwi-|uh~-{`I|u83(eV-P@xUtuh*SDk*4){j zRv5%Z?%k>;(*`=K`Ny&qu5O_=IHmY+y(_IIs5?3bFzY-x``9;&Fl_`0>PuCpM0r zTv12%lns#Vm2kH55}=V2MwT#DMcT@opK1`)6Eu@q=cp&8 zmhU|!P^*i-=;S?c4(A27H&zA-%eB;uc5$taj$i%bl>OI17E0qEvqu25R3d^gFP&It zOsjT_eTkZm`n{&v695e;U!`60b{yQgPyV%7bINrUB6Uy)mGVDkE3gKoKL5C)C@n!K zx_jnQ`rQcKov_S%*E@A19XZAW@_6TPm86) zu{x8y(DNMmoryx-2q+Xn$Kyl?W9|0g+x5^6k4JvL^}p4YoR%W+SHk@go>55M|13$p zNQy3q`Ff{OpQ63D_em*MTI=ec2q6vkKRE`TS%xjbA3Dp zzJ~nHV-1y&eh#+fFuyow+=)gDI1h5 zzICEDQ-yYneNepT9LV7@xFlb+aJ5zKv@T^B%hmvW*P55{BO+L0CzAv-?RGXV-xYS{ z3r!3&9}$gL&J9=tQWZMZ;J%XXel_|_HN^RyaA~=3Y%8bYv_SK-r3;vHV(6K$`cXqa z( zXpJsqryrXsTtTb|m)9gAIU7mloI52OxIALtLj@?bR)b%82L5g@HoNO{=VdL!Py)Z% zi+0+Jns7E)Zm+hQ)X`Sc+EnvkN6_NcCdwIG(*CY1l4uq?@Di7Bb`*z!D^ei4Lyh>H za)p9I4Ik{`UbEn)4#Xo7t7$9Ta&ABA@B+ABIzAL|V{dPD zxu4abqQ;ryo;(M{bH}f$0(Y`OAYXPhxzIgUo~0T9!9MsPL)FFPDKsK49=r8V1o|c7 zdME5)tG>oYUD6|R?sw;-EDmdPyvk7Jg#$Z;R|%AcGlZriSvxy-i8O+8m}#WyIZ^8T?hBdKb z3SyWNiYSMe3V&T7Jd@P%CgY1`Rf%e0UO z5#*&D)`{RGAKVo7NeC0C7&SVnXfcp!ymFd7Hc15Mowo2`I21;H{1%ua_N()h-|ikr zUqux%t_5a>LkFe5;w8q$zKNw@VKKp-6(?7NYBoIEW}UtucQB0vrnoWUSCYNU-IvrR z6uWo%vM>G}o+O1-h|jMt4v#tqnfL{)jtD{Z{>>3lZ(jfwSs}?G8b({Mx>W(77%5kt zI4C9M^9WGqa-^0-l!O;qQKwc`jI^mUG}7K@3av$}e?89?V}E-TGK#LdB@f2W6bMBwO03FZ?xT4_AxSc(7`9gXbOa6>k>&#KbYb89;{BB5wejs4P6q6mv zzOhR^eWE^6Yvg;d(dzP@C5w%z-=g6*Lf&n7Tk7XEcJNT*$<{zJ9DulT#;C*I?K`;# zO?=!H6<=!h*-I68Ry^Oo$YU~IQL*i*xxmRw80~rlG9&WHCU{9?3=+O)IDwlC{nTan z1dzrsCB12=uibQKNiD^<8&XbmjkDS#KLJ#4XJ-D_yUB8QdBk%T-Ng6{9}{d|oyYuC z-bUW{!fd~n?q-~cG2$RNBg$0+1#yED*u%Co0sEv&N&1G%wQZK&J?kWcf(df~%;Kc4(s<%u}Scx8#XX88A|4v^anD)^AJHbHcYfdo`9 zviS9DJJ5kI_i2JHsTj|Wx09^B$w-* zZ5uPBpcuRQtKjEvY57cFb$7hh7CB(CH`7hVjof~MP2l))^%|T}W{_uD@SZ=nTa+nc z|5ndb@@X8TW#^?b_c0)*p>CKaT}@-Z2j~QXYIte~C;CQ-NI-jGkC`4+UE}a(dWdW9 zFRGOsd`-x@4e=5`2+B2Rc{9-6tMI$M?4LTkF)u{Jx6Fm^;g6Z9QkMKhAFQ8a^p8OK z%E_kPQ{Ts#Kzkrl1lOC^KkSTq0Sy*&!_}R7@ekmo^?4`4usbqMt|-VH!c8sjoA=)r zcWDV=ebS?Bg)k-xmlPnUFNx&hlXMu{NokP;_3aSx>P7UOQ-CU?(DFH?QdF`=dCT0; z2JiVp^b%EVJt#!>LNO2Tm5lvBy@j2|vX(f$r|OtNpn$@BQhd2!;=`ZD89k*EY6K8G zP(7SV{och;l}Fg6z{t{%d1hOyoT?4w#I7Sv-)Lr5`q)DJfPyVYFMd>V8OUc;>3g zQ$|j=sn$+V=A#g;^2zzb{W{kt9y8C-UiMp0CPUvl2ym)=2l$5b<0u(#TxYp zn}UXoitY6u|G12uS};S)grXeqRa3wZSp=%ws`aa}`j`iqmZcmbVm|}NMQmPZ19K_c zt0LYmK3@Ww77iKZq9e*XlQM6DgY3cRGPsp#_wm)diBtW*tB^|)y`b&~)mPz#JzgRw zy38!vELa>66`&wqeKI9SA=_TwZ84xpuC`LFLCS-`f8Uk6^vY1YW%&NA&pcx}j-gx* zT@1kav|ev`ZR)?v62$@qefbsrb%=Hr_h_?Vf^nnJd{;Zf;d5*s?mH+(I)ScQqb-g~ zt!CgK0Z^t!fufakJfwH>=^pcm^>1TeXhqp5OQtSL+5P?Q^{sif04ZxISF!>EdA|77 zb)=^c1@)CC3kkKd9$gd5+U!`l>0F9G;q2%8$+Z%X=O?_xA_%XDC^PlHO6imsPp?G^ zcCqn|@in4`qT6c1y>7A`t_>tb*_&O6S0>{g9qeN2#(oSL0wJh7f8{dd-)R}-z5M41 z)YDN|@LnajzPgG@piyoN9GGv6*n4&2D6VzRuCr<&Nt?xOcf{L1@Vvi&XAoL8?+`B0=NgeR;8u%sJ^8d=6Ow&*N*l z8B-s{6lmw36jZ!hJZoOK{8S(2Wm!wrSzgdx6I;yW-n?roN;Bqs~)P>Qz{V8=NlVg*fQ*_*+$|Y8pVnyo>w;bJs z4?RH#`X9@0mi6QXcy_z>AA59!i43tXxXrLjVnOnEKtF=rq()ku0?if?|Ek5XXk2D0 z5G~D<2+wn|zXN`2U?TY?{SW&#D!+w^UUuhu(WEz)|1@%Ko%`N)EHWWsW0a%Cd)c|r z^S&Q)ZvnFCkUGQ=-~6;Jg}?OZv^Kd--KFBr{kWwlVAJS}nupnzHKb@rn+eMyRPxO4Yadch7`3rW?+`PL? z72PaV75CWp=^clEo3M@j+l+nA_sT8!SD#4Tu^~6|(m?KNDfjeUj(;TGsc7zBw#4Hr zCsb9&zYeNj`N1PlvvX`$aPx!j&$nDZK_vXhG}e~si%NbB8>l;tC9%1f&!ND7mj}+9 z&8Efh!E`N4)*Hq)I|jz_;s`su(ag5?xaaXM?_UaRS35=3&hoUkI+!249o=0Lz%XE2g*T@#eD|1u#)_R~wtZ;=9$aX!{(xIc^}lH*oL*nN5jY`*{4R`nON5`+kRN z*9V^%8*#ccedD3`HXF~2+-jeq%O)&L?u?9#O802jx&ak-XtL)DWK4p99tn^4HC{4+ zby1ghk*Sv)K@7+=a2`gL)vI|r`O^`S{z4}t;jR)%Og8x2INDXXH)A7|YphPieNyha zr%}dbmbxobzPVogqT9;YmM+ynl|zfg`Eh40ow@G6z5IvxYwNi3!^G)YB^3W#OKG-T zf*!vNHnA7d{JCy<0&~N_;T|zwqAdqw1(*~qqJ@CYzH-;7?MFw8#TZMRpZckb5bvTs(;@7ph@JF4fxE@g8bsQ6&D9LGo;r3(=lSDCn0 z6T~2tU;B{og*!j~4$y7d!Epp#)$6OI>b%f*YY_C-Ccaz~kmesvhDDcOW7@dL%ax=d zG=a(!E`I1C>p8=@b53QJfUJkcibECo2hgk>bouvhMMoET4H`16#yw+ZD)_n-@M^znnr{F%5F;A zI@)d@D^t!oGHpn3k1CNSUWeVx)sL~C>3WWy6kz*o9~Hp+#h**yp(-n zC@H$@`@n?v`7^bT`2pgBRn#4TtN0Tc=bjCUus_)9CTz^H$5&6q@26Pz% zzP*WrtoL&38;4KKy{szmSq`=No&8B;p0j;I*fkb1N=e~N3CJJ^jfc8ZmyWn6Eu>uB zvc2V!8c{PZZ$EH|cKK&&A!^m#l&~OqlN#LZ?S6|WgWT2FA}z7pMN;i=<`;3|E?v#b zL<9lyJU4vQ<)03IKk7Y4{eZ0AMc$q4pS}>+LpTd3e%rqsZ0NtY{RnSx0FtCcoO4y{ zTSI#y$}Q~aSjn4zp(6a583at?esA`dN0$QR>Ma8={abCZi~ZQ#GGCJIYiDQ1D;2rJ zM}dAVCJ7v_#1eOTZ4nbl4lzKm$THWMi-4+@7PsPF9=8x9c8{T;15*w|S$A+w%=yC{q zJ+%qr>3;6Vth+eqGVq8l-XA@%7+5_Rth<_i4G6=33-2^wSKcPfj*QkysT03VEpxev zye2@b`c70WS=v`J;LO$73{n8@qbx_5+LDlV9ItYgpzh5v zTF%Lm$6pA|Sm`(m_XajwDHX2%5EwJqFqhL1Q9^7Rf#)ipCb(X zGM0=&?U9Vps&4>|$^-Zs}Oyam6{Bvh~+wA+leHruZ23WG#ngrkIkqGVF?mxKh$Pa0T# zpC%2Z{#2i=V_&@aBB#xLb2t{w;&Ng&Hhl^{8g2hWii0FESgB^s_Y^0xK9O^yN#@&5 zeA%&SGzsncGxS~&ilx_n7TY0N_t>d~{*8T7y3X_~wudp;+qvF*94T9~+-;MU4r|zz zOKNnzeQn=YfE-vGxBH)9#83|t#<992CR*!g+jMBQzt(wufAFS1H}6Z_DVW20VQ+aQ zt<6+wU-{R{+_jF>mZfGBPSQR!f2R}{5s^ND)d}4=9k8fC?A9u zd0=HU)-m~NNi-2fG5fwdxFf0k2+4prX+D-TxfJl%l8kdYte05$9h^kU=}&8pPDV% zMhZ7Fj7|cs*?i`C@-Aw|ZvT2-SZ?FO2CUFD<2{wLLPXnyQkDIKF_{Y0#G| z#xTuWk9MW!$tOW~c|^3HO`sJKwtbPju-jT*czh6h5fac*Ou1GIKm4detru9WRY1`E z=FF>FFF#d(OpCiP_q_=zmmv(6;DPmvOiBEB(Xe1*;75mgJK3e=b%oT4nA+@qbEKOp z)ADcAKyhQeCoQQRZ_F6%qP4lc+o$;(_3~M9LNEv$OWz!oUy^bZ72T{yXs_cf@*k>2 z(~*FK?yrdYLX9=BP2{;%CIc-ld-;83xasNj**qC3Z6-9jjoYAI`C~;?Bw-|hjq3fN zl^FqnRvAc*YRwB9c@cC&`Muhi4*m6+LFeu^c8SMJ;0w2nt?n20c2P--T zmbkDETVFlucpcYGJQ!Wa@sFJcDnDe3Kp<%!i|TW0Yvyux?MK={(1%2&`Z}_w4J`Jb z_-EWSxSAu9k?wC~vFJnWR;X`Ky6J}M#;OmkD&AsuhtC(MsiEO?9t)X*Yq6_Q#TI;@ zeqRhzz9XvE4=-I0raVF`%5S29mzy%A8d4oC^K2x}p}?M_1*#tEf2J(vma%oF9BK8& z*i=~b19{ulOrX94td*GnudiU5r|j!Rk3Ixps-FWdD0Gsk3f0;5p|jNal=pCd^`|7f zBw)=JYi>1}%JXfCmc@ynuJLjqI>6$Ec7S`OwPBS?sQs=rD}uChMc=U&fjbd5sp? zROBu7-hzzp@BYlK-3{q9zoM#|L6hOw6#0_BnyGvhEo(mj@AP0a(&fsmHL%7o*SH-W zwgx&+`v=yCB0Y?#lX`^ndPKZ4f6gUKq*M^@n|FA9Ujp=@6(i~~0{QLgMxWox=~QFC z-i#`l4ZcmW#*kFm1koQ+fBf>)0d^)T5k$s(94^Z?H@|JceeTHG1P-coS7j)BDKMv` zx&Em*MCOXE^t~HN_-9X;5yLSTbXfaEVwRe44pA(yHXJUsz85%C1$f$ADTe)8)o(15 zM3w)tN2(dp5G{uF5P70&zj}XLa$8%IlRgx7Xfz=x=eNlo@7ie{^ROkk(x3%_=;R(n zzjmtNJi7B65F-Jk6_sz^o>77`vEXLTv6=77#$@(>4zquYcux=LP3G||GS)uOFYei< zMGJICoW)x1w_kK%+m~T)z8~u71prXRs&~CEgI6uxx)YMVeXETKT0)c zr~Ppg?DuR)pjj$S`_A}R)+EwDQX2dY%U;)e&JkGN7tHdKhJ z2+cymd7 zyAn&SZV`iTCAX#gU!%Fy5C~|VhIh4f2VT7UQ-!GFpNu=XE|5bwch4IbZY#a&l8uLy zq*h@uo@jI%Xwy#yS}YrXHhQT~HYsI($YQLrph=|IuQ`s%kT{JRXruO_&1zFZC8nG7dW-(C?~HqRg#DIUbo0GnE22;B26?p?M+ z4%hIAg*;JpyC&d)5@~>6Ou^;csL&PhJBKz&9E(0TD8ZgvTM7uVT{2-@xt%ihsxuEB z4S5~zmC_{taCGAr2*A?0RU2eCNcYShr~@b5-;=yfBzlbq9yU=Yor7qp`9GcL4TXY@ zLPpm(76ghJmoI*cZO4Kk6`Qf;uys&sPNYhs?oG1 zHk-cDGle0loE5YC@!_X`Ep$2^CBQ(+T1;h?jm~g;VoIM zwJ@1HwP$}j;ztXW_R6+ldK))J>B7jl5s_u1lzTEN$8Cr*B|v<=NlN-f_VQZKFSJzeZlaH$1)Fg*iiLn0IJ{JtU?pSvCUMGuRQX?ne0 zC8kFb`tb#q!hFU$@=h`>`dwpNpK;~y9sJ1&{>wJeeZ6OSK+om0kt-%J#t81=KJJ;3 zel)f^B)OYKY^*-;G+<=$^snQm3;w{pi;cgOYU5K)CmeOTcezZrJG>YUHAzgj=>-0O+!4ybHiDB8EIml zEC}m_o+8#q+j>brD#Q93>?HSL?nG3pi9P|7E+_=g=8Ch(z;ccGpj#oxQ@Ouk>fCiZ zSL`I{lzlbbnod@&hWvkFb?TY3^wOtTG5FGe}@p`t|L4!&$FQC@BoXfe}?H+qB+q%FlvX_UCim zrNA#h`47w1ZqQP#sZaNW0v9+w9Da1;2kTewaIgBImlnj#9B=s0qhMT)LEc{-R+E(K zVu=Wknryb6ebM6|>9pmaPIA+Qu^_bbz^J&gA0y4!$eDu2_deI;uwu8LXNCKk9`*V| zHdYn8@>MV7H{gfiYnR(h4U-4)HwSkcR6Kc@3@PEj(!86{UfPF3HCa8A*e$~)s~l1G z<`0F?3apbu<1kj!{v<#th&ps%Cs!XB?V_PQo(*=JBKF^m?q|Tk-t&Zqio%8WfuIy5 z`v;hXvet~f*QHpNr}Y@5u2UUtF@OitHPe6#WD%72xW7Xf^I)Q=+ zszHsSiBmOeb@KM+?rKC0V{})ic5t&Lg~7QSioekd+-Az{y)iNM1-8IY^HfHgvL^ci z?YsU0r@g1D+yvzme|Ns*W%~_1B0U?bZS6$B9+94ly*cVG+k>`v=K<591k8z63+2N3 zHW3X(<)VJr%8^(g5XnH7BFCK~hjYWFE8l|mKZ_}x)=LPCqgk_&EpWebJ; zCt%$%!g9+dd-A8c&-Mw+BMl;KMFn?Z2HDgE<+795e%8A3Zw%7M?mBe+_>_x1I-Yt+ zBRU3Q9iAKDn=b3QLq50bP}rBpnfWeJ1Nw+L9U`(#Z1O(6UitF`j{H&oc0Pj@QCi#p zu@`7JE7gyCmW-P)!aO(&%rMdr>wFV9>P~IYH)VH!c$eA>W1{Nin|(dzxK6~b5O!UAB&2X?+waDjuf1elc+?wH@uEkuYIbhrL6E^afVy5 zO{eWL<_q%0d}BwIpRmNwz)1jC{E2Umr%`r$c#Iav`L~N)bT_|EU~j956WwK8uK@iC zY-+M|p0Z734K{JY`7~=i*HbLAyfWbVR=hpwuU5rJveENS5SI#rhy`@xIOkV6duMt3 zCd6HaRC@|-RC-apd{`+Xi#@Ne0#GV-?)=MmLnC#CTIIi;M>w6|(q_6oOUb3{g=RhR z=qaERyQgZ>VNudWEOA`KqB+^Ft#Ap}D&;H~(Avnw28g<($u%j4@qt-j)z_8@ThPp= zf>`-U;t?gg5c`!YBthwog`Mq5OC*ucqYn-CG-1kS1vG~B9q2A=@*kSGldJclmAcbY z@Xq@#lfxs*OYaViT%&0hNWtS)So1{q)YqbX+o@|x{%5gL%28c^(&X=8;E=Oi$|PBDHq!tuDxWJ4KS4x2b#BpUmY{%s2s1L)B+^Y$;uBv z+7wyOEWhNHfn`X7L+H~rs9Ih_;r@|04v{T_trcoZtu+7nSw`g;Bdbluov)d~N3>TZi)_uBi)q=j=bWtJbpL<|vErR=C z1CTWL75Mm~f&=O$4|6B*@X$6p6H=_yoS;`RxshtRSXumLSonCC7SPneL21kuN8lOF zr?nfSQ#LKZ-G@3vz)V)0BkJ$x_m_+M$huDiYXsR za%CExoW0kU$oN*{c@J>@dD%Qy7;>L^Zlt8=`mbHQeHeFQx|Q1)dzxr@BGwT)w*R82V9%&E?<5g`sriIA8);I%9~xxX z?`z9xgKWugTBNapelT0WbZe@O$>#=@N-E9Y&R;cp*0uTzi~L`E-}w(`)U`W=2!e!Y z(L#hojTF6w=tha&qemINGfEOf1VN&A(R(kWMUAL2qYg%m=-pt<%(*?!`Mu{)IA31h zF!!Fl_TKku`&!r1wRA(d68QwBrL7ynz8C?!qbD0(q~NYm;dc2TPgIufo0C|TR={{&@QnP+h(`+YW z88BXH*LB5XgP&s`A`itERlJa>GVBU~0Ap>MGJ&9*fJdW*BK5S`G# z!%JuN?>$NG{3I1Gw-%*;XSTKMEq7R$v}&MgLNtr%0K4(I`rh%$pF#Bm#lCA^f*V*9 z-rhI)Kq8B}4rcSlDpfbRPisJD>NP~_6n&Po6}(lFpEYNZ#U@9`*zBc*Y?BN-1EMz~#vHMvj;U zN$*thYOD6NmXnPZ{0)FK3*jsl7E_n9*hkn3Y0UmU%`Lt7*EyeJkKcXt;r<=>jjYtu zgh2M3y@)WQ-oPDkOcB$Gr{$zs=#gk8AH@nxG;i^u_Am-wt4WT}O|#uQw;dUI=@o#3Sn zi>PpLbZ-i=rSjwNukY7PiApJbbK8HFtVHd7a)U!rM53c?%bvx!R8tw*K>m9_&{dV~ zUvX`weMqC{r8W}2*wf|uBlrg!eS=xC%(n&(i0#;%dAa7xG4o6+*4Kz+Hp^3Dm|`U7 zAG%1BRNiPz2R5;^lJiJ3K6fDoS=jpus> zUI*H-6K;mr+|sL5W~hzzLQ`cPZ=S#FFK?ZQ2H93Ucc*h$Aw#_x_~rUz=R?NPI;rW6 z4Ya}lCKxGD9Nng{sk=~Q=nKw3shOS6sdnb~+ljd>x4OHVXtbQ5kfYeKj3d~T@(oS4 zbD&!Nn@g%~^irdzW^1f?*4bz9T0K93UNWSLJ+vG^#IMf+Wii+J&Isulnh#wVD=7Kv z^$u5ns%k~`&&#r0<~thKo6|pUW&xWU2{$46+qtS zx?kLP*ehm{fRzA%&dYV{VugvG0(T2cqt$lJGgEAHo69QeDv3*h4hml`YP_{i0`Eqe z{T!Fl;P%{<@SZrEw^wVBXAIM{YNnKg+U}UT7S7dK({)26#@Pz8FIG-}dq?zJ~3lr(?w#tb1e!yLGiCTpR9Bw9l%%wW}G{)iW*qyZg%6V949?ctWc!im3 za{aFyJ?){JhVNM){7j@(_iodx32vaPaZQy3$u|6{yz<{`=g@K>@6&G#Sz=BU-Jmqn zNlCTZRzkJx><3NN%{>zmvK;F4w#r$otaWdK48EfDkb)SeZBS9_~WG^P?ww(d4>-Xl2|}_jdV{u@@`BO7ZwU8@7KC;@oWU5 z6;a1&jCpS`TSZ3TEz;tO_p6GfBLj9&C-&WLnUT@$#WBP07ESP8KJvm3ve1)}(t?^w zD*ih#sO8qlpoxyaW)hw3!daq|kLQ-6jLELN)Y@^cghA((=CxJ>ENtn)C?gPD1e12I zK(jPDaG7gAq4>Rh-PJ`E!ri~*-vJW@isZ7{G-{4|8QbGo{q_NHW#cv02#{6(N^f*+J*Cf(vt^#k$iP$XC*Kmwe#q&t~L+1QJ|z z!YozB?o-c^?X*Dq#t+dlAl*;#Mm~e^PeW~ujoYc~Gij9|E}$+um8q#N5ddZbM&9|%v7EZ`v82%@ zO@9rpK3n|mPpJHP>CUuY=%SyEyX-*8ylDP+16Y4@UXD>S6pNG2T}E^!vm^aXVD(@D zaFCvt&B0_MKb3&oWRH5;YLshMzNZT^xEAJFS*|m^kUAUO}JE5I_*}L0vXe%KwmvfUI&k?XTJIB~fDtJ0hMNcyR?w|Ld+mqi&)2ZY8_?NV}Rd9q5zdv*vs2?(Q3^ zV4drxu-d82|B&QXsLAxO=%!LhV_cLHl(1cWY!}nunsaV8shhJYZsm%kkh%k5 z6m2dkKTwja^^)~9d~cAGlUexZT>Wi-t5UEKz##sAS?O3m7+&26BU z{n<5Urb{(M<*d|nZ<%KV-3b~_z1I8Sa1oJ(xZo|#D~%dCDDLQCmQ%4y2tb+XNpQLq zz~J88s~JN}-OyM1u`r%tPK9{UABcXwQr3FV8GUP=D#$N4rw#z1kFpB>cfioW#Jvje zz!|=z;gxcp08rHFj6NS;vuiY?2@y%PCMUE**$H{5n8W`sYQon?u5mOc>yL}7W#=6?5=>yae+oP_9i4>5{K?4ibjhQC7=E) zA@=01?&Mj2Eo*j*vjZ#RlqAE)>D?m4t2*19pbzA8-$A> zW#ln4;)un`4BZ!lznTWLj8&x$ngBqEaJ58`2eRJthRa#=L3%0?y57oxzy1AuF#wMm_H-`%gAbjX*cTk5CM zTRRy68_c62ZRU;u0ujVRk>~Kd26A>MfZZlD03A{<2ztFjrY_87BiA51qB87J4(|_s z&=td0+CMmX>gNIllGM4vz=Jsn57JoKsG^FiHHbq`Yxcuyj7AwGpEaM#OJR;h0C70*W_;1*LIX* z_7E=+X>*@-g~j3;4lvgYRLzI-dgljQg@S~o{)b7vB)|yFNs%cj=&A55=iOU2q24^8 z@)+8@dK3KcgCBA)9oA2#6`#lPr;_RdXOL$8JeTaNBoMWLC^h2WIpX8K?A#&T)&)I| zqP2^#o6VzQr!7Uum@S_OZ`UbJ%eb#b^0*zH?sHNBSIyTY4^%Vyeap!}` zum6zd9Lo3~eiVP-?g4CZ>VR~6D=UzQ1O}sBTm)ZLG;Dq@d*L#n$osNvZ*q!ywAF*-uk785@+x&n?BkJ32GO8{Szn2w&5>baywM+BB1Bb3&~FUG z*&J2h<;lqi#TXATwsS

    *y?rk~u4@K$!K(tUZ5KCn(|zuHkQQ#^y8#XprisIQe4 zIy<4CKY2J#Sc*kob4>zvm`PirT2T2v=gEX!NtA{C*(;i6Dh2nnBXK7{j;4+>Qcq{gGbyRcUOl1KH-&{+mb$`25rfJ->{1_mYH=&Ce zm*q4sb^7jThI8L15jFly^n5!DV%Bt#Gh;eu#8hCJWw&KqEL0o2|Li#Fec=DfSzPY%@iVCb=M1PqIy?9$HX*MSP@DA?2)O*0CX zY9=)3DKlp?@`2IsX*D+Jih+afc*7^EL6mk|C#vV#fBG5?w4wN{*egohJiz;75sT!? z&+`Fw@$u0?jb_YVO|nMc@)b2UVp=0DY%(&j(r&XKwaD}Z^ju<<5LNhsrFE9wVE(6; z>!HvyuSMB;Ct9AK{Ie;o*jCQCu{2;`0FjYiGjcd)CtUhhJ=WG>SDV@^FR-+7pH=;A7(WycQs(m*hn$Y%fwcWl^Q{O)`1K0ysYk+3F8vNg5WM1B! z2;A72VhD1WT|ZvAObn%EKDe<*X#Q?IXQFG&w+^)+h?~qO%_|T zw!i3!aXBpx4f93!f0TH~@INM4=H z6aa8N^hsJE=s?b?y?o{R4Nn#Teg9*OSg$D`zW9+OMiTL-j#mp3o?5H~mmcmW_# zFyKKTKAT)q&t0^glmUpK-k9vUFmU{uw$DRV#q?ox(Y`^5G$}VBkET z*K}_JB`#Vxh;=r=vkdI4d^Ks2fk>kN4!q0>0Du4%B~>u^fLG=tASs*GYh5{8V60wG zcYti1aI0>bjjDvgke+um`m}_S2KY4S>Bd4nRc8e7>5YxbKyfnC;*eD=6`sNouoMrj zshYVH#2;=_l~W7?uq4ofWLIBJ9M8&=E*xo8@&2OB#SjAE%8+HgrsC+0!Cwr;rF6>q zJA2fg*d-ZdCyWCrU68&%`rleM(7%EC-^KB#V&AbfnLIn-?<@Yn{=%>(IjHJiug4?* zb>glaJa7!~&n_~c2SsEbcitOb;I~7`PD!Q_V#M^ulLi7?F>n<;5RG-ZqyoOWr&`4> z!FhWD^1-=|@u5z`$X+9|4NR2Yc_!bvdNz&yt-o0Fd}H3)d!d7eiqvh1VYAr&?UJ*@ z+dw~QnTrNgCua_B%i>U~!(PL6@8#ND5C|yG>9^*;37KHKKm*lcyHQMdfG98}TJFWv zif*|kq%-f@a&IYlG|k@rs?W@r8u+L8=F857zh}tc5%dD?3|0XZoN@L{x3gunMUOwf zRj#GE_CaCHpOqUKWVb`|1(hWg*Xby+k#PX{=d$oSKh?M~HF+hsiU9!dU=HP<3;^3! zhkKEK?FyB~U;_lYhs8Nc8sEV6b1QBC6`G8Rp_R>i7oJh+F%nRMk$im01tG3ShY$3y zK})j%kFv#PBStR(R+7BFNlsV@kV*XQdHJ`nj9-iYx;;SP-Bah+6tBE264ta0rsaW4 zGft||fXXPth;EFlz0C2^Yq~j5@-{wRePfUNACG$a0XcOEd{(uC3u8Er4 z4eZ2=TxpL9Nn78WdJM=Wk(1c&SMkY^bG(@@6?{*?*pd37zL(G`N4HQ{;aDE+zi2+; zqEgh$k=+FfrLT%p12YGfz-)PjuL+`hV}PEV_Z`;ma|q$)shUXUgM_wdY?_(VR? zNuB5uKf0QC0tQ93pHkN)BjvN?uP=3kaSng`WpagiVuZ68(mmt~(m8b^byd%*7q^O? zyhj{^KRr`XY?!9WO$0U|-m5P8ho+Y7(}jiCW%SznQl+2mwIPzxNQ)PrzC)FN{LKeq zP3Dis1{-GXt06}#qhXE?(GC z+hRri>$9OBA6<&L;A`!FoE~z(%f|mTr4Zgl&NkHO*pTRY#Qy%ifY7Py>Z{Q@(Iulb zF<_Nemw^}n9SKiIUOVWEA%~Ze?eyAXiinBD4UhtRNbmEuxkle48=e5}QAzSN z!`+-I8qw@e)}4!16b6E={jTkAv-=3ftRUI)FvxsS!lS}!r_&?I=M?iW!_ z7C9fvQ*`Ninvf&l*6aTgn))1RP(}G0D(=zU)s;``0Gw%1wT^NB{(Z?2b1lBT^e~7T zn*3t;!ICcIjp%{;EpEx^m;g$hRr-D-X97@{eltM$x6EoWQB^C2%kSpL;$z<-XL!!xtb>GCzwR$lcD6kEm?5jpefZh!>YT6H- zEc?VPl%Gqu_W!O)^DO(C;)sktPyyycC%ybF9OJ%BvwP`AGa0`%D9)+|y2^3&CR?jNe>H)mL&bvzl*awYbNk)Z$? zDQNrPoC*HDrOg}FNv}0lh|oF-N_na}l5TO)&0TX7C_A553B#-~98ZA8djDj;Sjnn4 zqprKWYyGR28SxrL`vwy7a|MXH+WzZ~<3j>{Z*MCn2@sv%;$vT%;Z)Y*K&vwCo)}Zv zS)e;o8(x1|`}(n$nn;kNT9F9jbCZ4fkt}c4nTjS{k%PA<)#DLnzqT!#P#!&wGfur+8Y-MJjIz>C?R)UrhF zP=G-Q2PK?Qf@D&{lU0NW2p~TdvYeBb0^0-d>#OhDPr+aO%C`r8thaQOZ!9u-l`R$0 zgIcOOnA$Ms^|&46zJ;mgs?8gVV63IB5=+}?e->M11DY+7Nt!fN%KN=lCNXipY+jkW zpAoUaEWdAqV3|$29sk&=trTQC`}E}MRD!Z=F!*BILR~j^uO!j__$?(U3x;M|q+I$5 z?io@Qc}1{s>zTdJkT%BEzXwxA=9($y(MK?L)pbYGyo?OvYd=l+`GaCORJb+X+UQZpeu8X86K0%NI^*O}(jfmXXESLJ;3JM2nWPi@<>v=<0c)$y!reNrq_`vy$XUdK4$6 zwmKf&0NT^as@Bf!ZTaxotGpQUbSWTFrMbNn&a=af+Oig-+$BZ$KSsp}5~p8;UL`s& znDLsG9eAkMw((B#nP_&zz`H#*AKvVCzdhwYHd^HXe4VUPcF5_)k^!m>g%hRQ!mNMj ztMu38N&M%b>=0zyE=I7YEZv`X^JQ`ZHwhS2FR1y77z&L1YuS1tm@Hw)U&2BbB*CqQ)Chk0fzPwaq>TOz}B9RZ*h7b_xcc2vT2 zj=`DpMD0hS8s9VJ18|`EuqZa4#RreUG$vdP7uso(?FE*U6RL1SNGcUtTh)2$m38@q za&qRqMPL1MDP#J@I{q+YVct>6X{)X$zxRVQeY8}-BgZsJvw6du ztee4lJ;w#TcE*#2v`JtYPo%3RZR;Z~gIUkRc>UDB$jqBHt8SSpH7*zPiLZ(M-eyCu zf-jCI;YDM(E!Wa3{MK(ca6$}zEIK&1lJ!@uU8#C9F_01FC~@5%nU~GsiMo8|AK*06 z|N2rwJA99H;MMZQi?7abZ>el?Nx2!#oLJ2(NwnQo07&+H3-%M{ntdNuir-2{M@wXC z@o2g+)+MOb2M&`EjLRn!&A)ki_)7(0qM7vDCN^WQ;kBKj>dA4jO{e9C@YpwcnaFpccW- zi@uXMvx`m~yd!QSWsKM|?{Ou2HkBMT?b1z(L^h{Ec#qXlAsLpf$d189;!h%%He0Tm znuABa3FXm5ze1*|dYP0aI45EaU5xW&rPNfPJe$v{&fGk>Q4{a0PWTc#GQX1**GY^{ zduRG_prn;}iO9hKN7Z>TKK;WwOL8(Z&8cbRw(U)~9{u+p^L2AkQ6If9n6Ll*zY*ad zp9o$gjXk)0LVl?M&YAkTQn=hs!e0dm=rkI_e3w?6v}7up4eXnq_bm8ZYsp5?MFj|Q z^%r|Nz`2EiPz}g~1J@kr5A}gXcgwd6&WO_w59Zc_SF(F26j3ddPlWooM{ek{JYF|L z5dNV7TK}-(RbIc+#aJ~)kfqeU$c$lnzwuO=Ur1w*#asV)~Q)*O9y*f zgzGF_hW;HSe%Bs2Qp_Hj7O}xocDmQFi7V+2CiKp5wh#8LR>irdRoJ%#;`RKDPLl*g zB&wwnon=ORhWZX4M$Y2YX^I_)9ocv`rUu0V1t*Rj_Uxlrl_Le8*4*rRcyWEoC*gUx zI!KL|B;s-($c|OMT*T#OJ)75X&O$#8;Qdf7v)8dG19HuAu-h_$`4xQE@Sn5~P!fPT z*G4atTDG*2Z?##rT)o$`MLxT|E=23(V7vUUE8yr*ik=^tC?Mf9qq*6*fi$~+qk&4# zcGEs(anRSDc2DrhFxGRCaJ-aT1@S_l)9dalTJ>KuB;eJR0l9R;;@aC|JqBjmZGW8Z zEm8D-?(g6nn%EiwG;XK}ETo7)>-GfKtmlVn3#sp;i1v|1LH#J7)M761-$IpfNRrL3 z#0tH}SpQn73lF`=+zIgLpbT5d?2p{->5JbU@2WM;+cswlF_gV^ewYCR&6hA~=9ve6 z!M*pUo|}u_XtjNg_|@jQ!bPC7@6c_^ox~T6 zTBQQ~#4_;i?SXLeg?dX=QR1I9WTHfhOTZom%?VqExP)6bayNdr zgW*vhH@ag4NY^JeR00>j&*`onNNOsY`j{IEFH| zRYr-~XQeLAAICF3*?4uzify9%bwjdo3;-hQUkI3;A444Pf9)tC z$8$=eDwscFiQK=N{X@1M7_gk7q&T(UU0yDjFbN9g{t?o+REwbU9pmNm4;GUi+AMbTMJIA?8qyX! zH|xNQ)`rd1U@`)QV9PAFnaV2x=O-mk9}{urQzD;}jU*ap@`l~#^~EH7HT{_En}D%m zaPehcX(P*xb6J00zW7d}^5O!6C?g2<#Qcwv*;d2tjDp8Fgs_aB#Dz?2a#`$ zyT&$EybFw`J~Mm9Cg?=)V_$fQ_)cdbkt2#nXF!UQ)uqL8Kc1#I|9Lh(?yD?CE`D+e zWNKvQZETP&?YoIT*c_@t3BvUAr-rgbW4B%gtiBwvb$k3It$!OFwP+*{dplP>T%TLv zS=|1VVtsG7$a$=kT{tyjm8Li`BE>$lkMpASCjXF&$&^7uhK%cMAzdJWsUfOArd-@q zciWcEGGzRyjf{syQVLA1asNzPeCa&zAQ*!D?z_R@J-?^$7`0rUusbX4tSMc6nY-JT zOyqd0$)wN!*GdHX^dYyFy*+LxE&;&KVi@R%LV3%0HQ|nk)<8Uc=fzVewI5SaaGMJS zvp)g7JXL>~svJD#RQ#ZX4f@=yYTyK>-bazt#SZE2?Sa9kpLZS7kd}0#$+9s* zzZ!wYEvK^1s*S>W!;7j%FCc2=*v}wSMQ`rG_=HN|uaWeAV@}TKhQ=b-%QTTQuiQ?tcw?+ z0>-BQ^K7rZfA-xHd8S+ z_{OUGqeH!MPY_xA*$G@|5}xeIxRywhnILOs=RW%Yc5@(QyMYuD6f_ouG_VYrK*}SZ zlL~HBrbNKGQfFvr%bPutUmUeeU>$PlJC+u!G4fEbbqY#3WT^A+P zD~lNkpW29vbVvV&+28+KxG*j}D9va?uu^-+t6;KVXgp)s*~E2+uHgxDHu$L3nx?qs zPkeC1DQUJPtvMGzefWl|*`C@^jC_-ePFZ(HnYsILt3YxvPK{ghxSt+GwO8lbnSB*> zda@ZgSfHV$@dGES=x7GLT%TssUnkl+{-Jy7!4JuG@(R?T@hNCw&``nX9eFEuQ^ zQ3AZ|%h>7JZ389ev1-eZ@*d#zpU9xyoWH|fKjswQuhtW>i=sP2HLgn?pPe>DD3~}R zZc9BVHC>hpdH7?C#s7vu(P&W`0*bV6C z{7s`S>Abw`!9&z?xS|jMSaXZ1KPGX(8y4J~8)4;bC9bQDGesVItJf&6dBLpffnQ8c zHy@f89QFv2>SkFZ3)8nj@7B7rI%2~De*3T`%JMH9#@;yBq~!B;By6DL7Ey(XjYzZ^ zOndi_J(WIs{$n+%zoyg*UEfILNSg-ee_Of4$?vg7t)`b3@Yh?9c;#b&_gfDkf1_Rs zcesz=E($qH#$UiUIx(8rR<)SPf#%@)OiwSFed+?rNel===nN=g*_+R|@rN>0kF=4jAshSH8!F96=XBMa z4i`M59O=?;em#^kJuV%SWpCmsWABISLx2*XA9NrPh(bX!IaE(lc{k=)9Xiv4kF73=k-;V zw*^4r{^&yotjlRV7AUEYC~CtUqp*9ODmjaK$QNg~9VNK*YUh8sAd!O9#UT3n5$gLp z=_o_$x3rv(($oW(U-W*23t7{#NYHKiprx|IH;9al4{OvLEve4{u7c|XiRAQh3+zHv zQuFN#KXlwIGmYiXU5-UBZVx?_kr)4|H{SuSg*ecoo1w>?U$Y~zdwBSo_Yfrt z<;hxCIkb*>&N6gLO%dna9Q2(RgkCD!zX=(HXX9{G71JeDo!DeN7O}P|bGd>4i~rX> z#!~Wru>eG`cOM;RAKCiIB0YL#*|Q~XAp-8Qo^OyvUf}7IAj#Ib?|*73zWq+z+yNJC zHZ3u@$jc=RS5#eiYizg8^l^j8v}4rkBBhHtZ=piS9$`WI2Z7NM9Il{A_A(!my4?N`7=v+)Bc)=bfgGIJSBS!c<6 zl^@N5T=9g>)zSvLW*>+gLr&V$#PumhB?Q>)t@ba2t~%w-)^09~`5OjwT2Gr)xiZhu z^z`iDkI_7OT9oF8jCrL!xLYKRFmbC3HI_R0AwB-=PVr;cPA4+Z#^I#z2j8-N1F&AP z4Ced=mi@`);bw@pYDQ&N%he7=xTfSJ7 zx=E6x78gzAXe7Rkt}e>X9iy#J{@b=6r_+B-9GZwo)PkNJVr(PVHuE%o*$IklvZEP3 zsN@iuE)VFp;MF$yQ2rvbFSHFvY~Tl`3Mm4~zCz~qL*Ei8P6GvN(IxL+Pvov5HbA0a zLIcW8)(xo4j|KF?*BeVb*Q>TYZr1s_Dr#@#>#M5vj_Cm_uLyMU{j4%M&$0A`pQ(+T zbSX%pB{H6vMMWVY`T>)2w4SU}I%X{30c0 ze&Yg0y2qR>x{tApzcP3HMCeBA{k~q_7fUU5*cuH<(HV$lvE5Dg90V3)xWlka7pGze>`F;I<|H1W>*gU;itP z&Bd{Wdg?rncboBE94`{xL2i01t=l3(C+Z?qDmne=A~j7CL3pD%kEi*DNrKO^pqZDv-(F*yes;f75cGSSPs$bkMaxn}t#v#Jeb0li z%Uc^2Ji3=xCbQEKBp@k$-$@x@-BeJp!vUYZ2N&oU^#<%yB2xCb?Z^P;ETCIsk}S(! zmTTG#E846`8JG>BxAy}@#(f-%eVK*L5WieVG(&9W7rM~rFGHJNZH9Dc&Sh1}c{atj zrMcZdgRO*+3DVfe$UtPKl^$)G#0 zgw(A1jotwqkR6H}o%^iRYo{?>A8@mg}s^lc`XqBxIO8p{?f06R!kybK40qdAqIsg+E1oN(4v|+V3=+3tt)DHa!xkjP6$G{Pv~z zJ<(QvMv=qQddk+P7G5TRaP!J1IsQL!$nuXd-D#H3?kS21GM!4&uu`w{mGIS#}~%8`*D} z&?l*ICwv|P`0(!V-W6G{p();cN(0@t@+2eWanTdsjL2aL4Sa_`sX=SP*EE1Mhn8A4 z@9xDE;w<%Ln+1H8pSn1`I(s;CcTTs5vc`waI`xF1Sen>R-al_kJFz%XYmZ~`$$1)9%w^QmJZAFL=`9EOpp^lYbjp?|Bqonh*a0!{jN~vF7>Z}ZN;*r zlIOw8sY%dm58cMXUxwYULV>Mw1nSU31F~lJ`%TV<`%ALvhd{AM**L1@Ua1WmAJmq> zC6bfJ6~e%I=aF^`aY7MD^1U?p>&(kA@mpgH^W1~pQj}EswpC@>aSJGTZol2E2XYNt zr~-3OC~s0_6^i(T*Ff*{c&WYb5DpVpm$n9Su}4Chk!drZ`amw4S+6U0s27*!15bJ_ zvtDOPNHuc|>VR1Lo}Lti{&2dEi$p~L$8!QaQ>6;#?gq0B#qK9lg=mHESr_tD2h)&5TdM-MR@QIl5L`qr@uV#!|uD3jI*C~ zhaKx&w3XHRrZajL)@I=V6tQPTPCSg+w@x_wdOmm6QV9tkyo>ZIgMfB9LRpEa6GTkk zh~vKHJ~Y3nHB_BFUK`S^SS{dB*7cAvTB)kk#iVj4;=^Ie+7sD0Cd7NvQQLo4TYQ?& z;&!P=i^&9CQwX~9Q;Ad%PDWAoRE;sf76d#7FP?bcly^}RKWHP{aOt0wHkq?;o5(r9 z2pEzq#jmUAsz_Jz^lQrl;Fd(1)jEU4l$P0SxO>P*Fw!R)8ijHPH4B}B`%V<|vt&#;xYW4!UpNzW zvHUL6*1J1lmq46zda{fOre_tR3DR`?lcr2{Rxd$!MC<_74 zkleeN@jq3N^|i|5As3JF4q&|St95zzb;#9+|Jz?iI z@mhc`>m)*e%dBjB8`z^3f2hg!FTqB&h1yJTY~;+=mcGUH-*d_s0g! z5MP4)&>V{}GbDQ4<`(eeXb?TY5*R5?KD`kcTXlS{zH%?Lj*}p1*_M#o=g=TEfN7xk zTXEE6A@w2}FZE5m9lM|RLj*LRRA?>}@M%6lt+))iWWco&Ef~nYaG;eGbq(WLSz~eL3;ueAA#@U-i@Uz@%RjsLdhg zkA4^}4OtDWQ-C_Mj||?(8B=O;KFru;7g2nI0V1|;0_-$XzTe`W#aR-H57|M(EGX4Fp6M-P8 zwe@}7lEO|4_(HIe?~HH4ACMag80r}vcDEl^Glv*~fC6aTde`2Xoa!6*HO%l^gkxIk zByNulre5sTxk&6#$+Nq~db(0mauZu81T$v2y39Ly_dVW0HH+3;Sal=LYe5IibEV9u zlrVF3q^=irWV{Z`?XCqPRx_TqqiD-C(->OM(^Y-yX!k%a803q}1bASKAyQ0>;#a}? z!bB5y5D7O7-8^|yuFXikex7DjD5CBVtw>ig}YAD?!4CTp%|Cp@$#Sml*a$w zZ(=^7R{_H@$6oL1Y7FlH7zxljo$w8R_LX_^jeqSlG~WlLg_o~-o}}IY>I4AHN}1P8 z?ZjGR)6=OSX}mn`ZFc~40s_qgTn6thKP85-Vp8Z9heVIB|M@ dpsgQ&qnF|P+Yd~V+1FE0QP6l@DfjmM{{b7$11|so literal 0 HcmV?d00001 diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 2de01828c..90e0196c5 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -103,6 +103,8 @@ kube_apiserver_insecure_port: 8080 # (http) # You still must manually configure all your containers to use this DNS server, # Kubernetes won't do this for you (yet). +# Do not install additional dnsmasq +skip_dnsmasq: false # Upstream dns servers used by dnsmasq upstream_dns_servers: - 8.8.8.8 diff --git a/roles/dnsmasq/tasks/dnsmasq.yml b/roles/dnsmasq/tasks/dnsmasq.yml new file mode 100644 index 000000000..bc37580de --- /dev/null +++ b/roles/dnsmasq/tasks/dnsmasq.yml @@ -0,0 +1,58 @@ +--- +- name: ensure dnsmasq.d directory exists + file: + path: /etc/dnsmasq.d + state: directory + +- name: ensure dnsmasq.d-available directory exists + file: + path: /etc/dnsmasq.d-available + state: directory + +- name: Write dnsmasq configuration + template: + src: 01-kube-dns.conf.j2 + dest: /etc/dnsmasq.d-available/01-kube-dns.conf + mode: 0755 + backup: yes + +- name: Stat dnsmasq configuration + stat: path=/etc/dnsmasq.d/01-kube-dns.conf + register: sym + +- name: Move previous configuration + command: mv /etc/dnsmasq.d/01-kube-dns.conf /etc/dnsmasq.d-available/01-kube-dns.conf.bak + changed_when: False + when: sym.stat.islnk is defined and sym.stat.islnk == False + +- name: Enable dnsmasq configuration + file: + src: /etc/dnsmasq.d-available/01-kube-dns.conf + dest: /etc/dnsmasq.d/01-kube-dns.conf + state: link + +- name: Create dnsmasq manifests + template: src={{item.file}} dest=/etc/kubernetes/{{item.file}} + with_items: + - {file: dnsmasq-ds.yml, type: ds} + - {file: dnsmasq-svc.yml, type: svc} + register: manifests + when: inventory_hostname == groups['kube-master'][0] + +- name: Start Resources + kube: + name: dnsmasq + namespace: kube-system + kubectl: "{{bin_dir}}/kubectl" + resource: "{{item.item.type}}" + filename: /etc/kubernetes/{{item.item.file}} + state: "{{item.changed | ternary('latest','present') }}" + with_items: "{{ manifests.results }}" + when: inventory_hostname == groups['kube-master'][0] + +- name: Check for dnsmasq port (pulling image and running container) + wait_for: + host: "{{dns_server}}" + port: 53 + delay: 5 + when: inventory_hostname == groups['kube-node'][0] diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml index f633485d2..46c1604f6 100644 --- a/roles/dnsmasq/tasks/main.yml +++ b/roles/dnsmasq/tasks/main.yml @@ -1,134 +1,5 @@ --- -- name: ensure dnsmasq.d directory exists - file: - path: /etc/dnsmasq.d - state: directory +- include: dnsmasq.yml + when: "{{ not skip_dnsmasq|bool }}" -- name: ensure dnsmasq.d-available directory exists - file: - path: /etc/dnsmasq.d-available - state: directory - -- name: Write dnsmasq configuration - template: - src: 01-kube-dns.conf.j2 - dest: /etc/dnsmasq.d-available/01-kube-dns.conf - mode: 0755 - backup: yes - -- name: Stat dnsmasq configuration - stat: path=/etc/dnsmasq.d/01-kube-dns.conf - register: sym - -- name: Move previous configuration - command: mv /etc/dnsmasq.d/01-kube-dns.conf /etc/dnsmasq.d-available/01-kube-dns.conf.bak - changed_when: False - when: sym.stat.islnk is defined and sym.stat.islnk == False - -- name: Enable dnsmasq configuration - file: - src: /etc/dnsmasq.d-available/01-kube-dns.conf - dest: /etc/dnsmasq.d/01-kube-dns.conf - state: link - -- name: Create dnsmasq manifests - template: src={{item.file}} dest=/etc/kubernetes/{{item.file}} - with_items: - - {file: dnsmasq-ds.yml, type: ds} - - {file: dnsmasq-svc.yml, type: svc} - register: manifests - when: inventory_hostname == groups['kube-master'][0] - -- name: Start Resources - kube: - name: dnsmasq - namespace: kube-system - kubectl: "{{bin_dir}}/kubectl" - resource: "{{item.item.type}}" - filename: /etc/kubernetes/{{item.item.file}} - state: "{{item.changed | ternary('latest','present') }}" - with_items: "{{ manifests.results }}" - when: inventory_hostname == groups['kube-master'][0] - -- name: Check for dnsmasq port (pulling image and running container) - wait_for: - host: "{{dns_server}}" - port: 53 - delay: 5 - when: inventory_hostname == groups['kube-node'][0] - - -- name: check resolvconf - shell: which resolvconf - register: resolvconf - ignore_errors: yes - -- name: target resolv.conf file - set_fact: - resolvconffile: >- - {%- if resolvconf.rc == 0 -%}/etc/resolvconf/resolv.conf.d/head{%- else -%}/etc/resolv.conf{%- endif -%} - -- name: generate search domains to resolvconf - set_fact: - searchentries="{{ ([ 'default.svc.' + dns_domain, 'svc.' + dns_domain ] + searchdomains|default([])) | join(' ') }}" - -- name: generate nameservers to resolvconf - set_fact: - nameserverentries="{{ nameservers|default([]) + [ dns_server ] }}" - -- name: Add search resolv.conf - lineinfile: - line: "search {{searchentries}}" - dest: "{{resolvconffile}}" - state: present - insertbefore: BOF - backup: yes - follow: yes - -- name: Add local dnsmasq to resolv.conf - blockinfile: - dest: "{{resolvconffile}}" - block: |- - {% for item in nameserverentries -%} - nameserver {{ item }} - {% endfor %} - state: present - create: yes - backup: yes - follow: yes - marker: "# Ansible nameservers {mark}" - -- name: Add options to resolv.conf - lineinfile: - line: options {{ item }} - dest: "{{resolvconffile}}" - state: present - regexp: "^options.*{{ item }}$" - insertafter: EOF - backup: yes - follow: yes - with_items: - - timeout:2 - - attempts:2 - -- name: Remove search and nameserver options from resolvconf base - lineinfile: - dest: /etc/resolvconf/resolv.conf.d/base - state: absent - regexp: "^{{ item }}.*$" - backup: yes - follow: yes - with_items: - - search - - nameserver - when: resolvconf.rc == 0 - -- name: disable resolv.conf modification by dhclient - copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/znodnsupdate mode=0755 - notify: Dnsmasq | restart network - when: ansible_os_family == "Debian" - -- name: disable resolv.conf modification by dhclient - copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/nodnsupdate mode=u+x - notify: Dnsmasq | restart network - when: ansible_os_family == "RedHat" +- include: resolvconf.yml diff --git a/roles/dnsmasq/tasks/resolvconf.yml b/roles/dnsmasq/tasks/resolvconf.yml new file mode 100644 index 000000000..22c135262 --- /dev/null +++ b/roles/dnsmasq/tasks/resolvconf.yml @@ -0,0 +1,100 @@ +--- +- name: check resolvconf + shell: which resolvconf + register: resolvconf + ignore_errors: yes + +- name: target resolv.conf file + set_fact: + resolvconffile: >- + {%- if resolvconf.rc == 0 -%}/etc/resolvconf/resolv.conf.d/head{%- else -%}/etc/resolv.conf{%- endif -%} + +- name: generate search domains to resolvconf + set_fact: + searchentries: + "{{ ([ 'default.svc.' + dns_domain, 'svc.' + dns_domain ] + searchdomains|default([])) | join(' ') }}" + +- name: pick dnsmasq cluster IP + set_fact: + dnsmasq_server: >- + {%- if skip_dnsmasq|bool -%}{{ [ skydns_server ] + upstream_dns_servers|default([]) }}{%- else -%}{{ [ dns_server ] }}{%- endif -%} + +- name: generate nameservers to resolvconf + set_fact: + nameserverentries: + "{{ nameservers|default([]) + dnsmasq_server|default([]) }}" + +- name: Remove search and nameserver options from resolvconf head + lineinfile: + dest: /etc/resolvconf/resolv.conf.d/head + state: absent + regexp: "^{{ item }}.*$" + backup: yes + follow: yes + with_items: + - search + - nameserver + when: resolvconf.rc == 0 + notify: Dnsmasq | update resolvconf + +- name: Add search resolv.conf + lineinfile: + line: "search {{searchentries}}" + dest: "{{resolvconffile}}" + state: present + insertbefore: BOF + backup: yes + follow: yes + notify: Dnsmasq | update resolvconf + +- name: Add local dnsmasq to resolv.conf + blockinfile: + dest: "{{resolvconffile}}" + block: |- + {% for item in nameserverentries -%} + nameserver {{ item }} + {% endfor %} + state: present + insertafter: "^search.*$" + create: yes + backup: yes + follow: yes + marker: "# Ansible nameservers {mark}" + notify: Dnsmasq | update resolvconf + +- name: Add options to resolv.conf + lineinfile: + line: options {{ item }} + dest: "{{resolvconffile}}" + state: present + regexp: "^options.*{{ item }}$" + insertafter: EOF + backup: yes + follow: yes + with_items: + - timeout:2 + - attempts:2 + notify: Dnsmasq | update resolvconf + +- name: Remove search and nameserver options from resolvconf base + lineinfile: + dest: /etc/resolvconf/resolv.conf.d/base + state: absent + regexp: "^{{ item }}.*$" + backup: yes + follow: yes + with_items: + - search + - nameserver + when: resolvconf.rc == 0 + notify: Dnsmasq | update resolvconf + +- name: disable resolv.conf modification by dhclient + copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/znodnsupdate mode=0755 + notify: Dnsmasq | restart network + when: ansible_os_family == "Debian" + +- name: disable resolv.conf modification by dhclient + copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/nodnsupdate mode=u+x + notify: Dnsmasq | restart network + when: ansible_os_family == "RedHat" diff --git a/roles/dnsmasq/templates/01-kube-dns.conf.j2 b/roles/dnsmasq/templates/01-kube-dns.conf.j2 index a9ef6200e..7d5b77f1e 100644 --- a/roles/dnsmasq/templates/01-kube-dns.conf.j2 +++ b/roles/dnsmasq/templates/01-kube-dns.conf.j2 @@ -4,6 +4,10 @@ listen-address=0.0.0.0 addn-hosts=/etc/hosts +strict-order +# Forward k8s domain to kube-dns +server=/{{ dns_domain }}/{{ skydns_server }} + #Set upstream dns servers {% if upstream_dns_servers is defined %} {% for srv in upstream_dns_servers %} @@ -14,8 +18,9 @@ server={{ srv }} server=8.8.4.4 {% endif %} -# Forward k8s domain to kube-dns -server=/{{ dns_domain }}/{{ skydns_server }} - -# Forward reverse lookups for k8s service addresses to kube-dns -rev-server={{ kube_service_addresses }},{{ skydns_server }} +no-resolv +no-negcache +cache-size=1000 +max-cache-ttl=10 +max-ttl=20 +log-facility=- diff --git a/roles/dnsmasq/templates/dnsmasq-ds.yml b/roles/dnsmasq/templates/dnsmasq-ds.yml index 7e5d3dffa..f1f622bbd 100644 --- a/roles/dnsmasq/templates/dnsmasq-ds.yml +++ b/roles/dnsmasq/templates/dnsmasq-ds.yml @@ -50,3 +50,4 @@ spec: - name: etcdnsmasqdavailable hostPath: path: /etc/dnsmasq.d-available + dnsPolicy: Default # Don't use cluster DNS. diff --git a/roles/kubernetes-apps/ansible/templates/kubedns-rc.yml b/roles/kubernetes-apps/ansible/templates/kubedns-rc.yml index 8e6000167..e58639deb 100644 --- a/roles/kubernetes-apps/ansible/templates/kubedns-rc.yml +++ b/roles/kubernetes-apps/ansible/templates/kubedns-rc.yml @@ -65,6 +65,7 @@ spec: - name: dnsmasq image: gcr.io/google_containers/kube-dnsmasq-amd64:1.3 args: + - --log-facility=- - --cache-size=1000 - --no-resolv - --server=127.0.0.1#10053 diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 7dc7d1183..94da756be 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -8,13 +8,6 @@ kube_resolv_conf: "/etc/resolv.conf" kube_proxy_mode: iptables -# IP address of the DNS server. -# Kubernetes will create a pod with several containers, serving as the DNS -# server and expose it under this IP address. The IP address must be from -# the range specified as kube_service_addresses. This magic will actually -# pick the 10th ip address in the kube_service_addresses range and use that. -dns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(253)|ipaddr('address') }}" - # kube_api_runtime_config: # - extensions/v1beta1/daemonsets=true # - extensions/v1beta1/deployments=true diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index c7d20c420..f55feefa9 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -19,7 +19,9 @@ KUBELET_HOSTNAME="--hostname-override={{ inventory_hostname }}" KUBELET_REGISTER_NODE="--register-node=false" {% endif %} # location of the api-server -{% if dns_setup %} +{% if dns_setup|bool and skip_dnsmasq|bool %} +KUBELET_ARGS="--cluster_dns={{ skydns_server }} --cluster_domain={{ dns_domain }} --kubeconfig={{ kube_config_dir}}/node-kubeconfig.yaml --config={{ kube_manifest_dir }} --resolv-conf={{ kube_resolv_conf }}" +{% elif dns_setup|bool %} KUBELET_ARGS="--cluster_dns={{ dns_server }} --cluster_domain={{ dns_domain }} --kubeconfig={{ kube_config_dir}}/node-kubeconfig.yaml --config={{ kube_manifest_dir }} --resolv-conf={{ kube_resolv_conf }}" {% else %} KUBELET_ARGS="--kubeconfig={{ kube_config_dir}}/kubelet.kubeconfig --config={{ kube_manifest_dir }}" From dfb9063b3f9e1fc162f621985f719923b26472ff Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Thu, 22 Sep 2016 19:14:51 +0200 Subject: [PATCH 125/695] Fix docs and dns servers placement order - Update docs and a drawing to clarify DNS setup. - Change order of nameservers placement to match changes in https://github.com/kubespray/kargo/pull/501 Signed-off-by: Bogdan Dobrelya --- docs/dns-stack.md | 50 ++++++++++++++++++++++------- docs/figures/dns.jpeg | Bin 0 -> 606428 bytes docs/figures/dns.png | Bin 139103 -> 0 bytes roles/dnsmasq/tasks/resolvconf.yml | 6 ++-- 4 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 docs/figures/dns.jpeg delete mode 100644 docs/figures/dns.png diff --git a/docs/dns-stack.md b/docs/dns-stack.md index e56ee2fda..ae631a44b 100644 --- a/docs/dns-stack.md +++ b/docs/dns-stack.md @@ -4,18 +4,44 @@ K8s DNS stack by Kargo Here is an approximate picture of how DNS things working and being configured by Kargo ansible playbooks: -![Image](figures/dns.png?raw=true) +![Image](figures/dns.jpeg?raw=true) Note that an additional dnsmasq daemon set is installed by Kargo -by default. Kubelet will configure DNS base of all pods to use that -dnsmasq cluster IP. You can disable it with the ``skip_dnsmasq`` -var. This may be the case, if you're fine with Linux limit of max 3 -nameservers in the ``/etc/resolv.conf``. When skipped and bypassed -directly to Kubedns's dnsmasq cluster IP, it greatly simplifies things -by the price of limited nameservers though. +by default. Kubelet will configure DNS base of all pods to use the +given dnsmasq cluster IP, which is defined via the ``dns_server`` var. +The dnsmasq forwards requests for a given cluster ``dns_domain`` to +Kubedns's SkyDns service. The SkyDns server is configured to be an +authoritative DNS server for the given cluser domain (and its subdomains +up to ``ndots:5`` depth). Note: you should scale its replication controller +up, if SkyDns chokes. These two layered DNS forwarders provide HA for the +DNS cluster IP endpoint, which is a critical moving part for Kubernetes apps. -Nameservers are configured in the hosts' ``/etc/resolv.conf`` files -from the ``nameservers`` (see also ``searchdomains``) vars. While the -``upstream_dns_servers`` will define additional DNS servers for the -dnsmasq daemon set running on all hosts (unless bypassed with -``skip_dnsmasq``). +Nameservers are as well configured in the hosts' ``/etc/resolv.conf`` files, +as the given DNS cluster IP merged with ``nameservers`` values. While the +DNS cluster IP merged with the ``upstream_dns_servers`` defines additional +nameservers for the aforementioned nsmasq daemon set running on all hosts. +This mitigates existing Linux limitation of max 3 nameservers in the +``/etc/resolv.conf`` and also brings an additional caching layer for the +clustered DNS services. + +You can skip the dnsmasq daemon set install steps by setting the +``skip_dnsmasq: true``. This may be the case, if you're fine with +the nameservers limitation. Sadly, there is no way to work around the +search domain limitations of a 256 chars and 6 domains. Thus, you can +use the ``searchdomains`` var to define no more than a three custom domains. +Remaining three slots are reserved for K8s cluster default subdomains. + +When dnsmasq skipped, Kargo redefines the DNS cluster IP to point directly +to SkyDns cluster IP ``skydns_server`` and configures Kubelet's +``--dns_cluster`` to use that IP as well. While this greatly simplifies +things, it comes by the price of limited nameservers though. As you know now, +the DNS cluster IP takes a slot in the ``/etc/resolv.conf``, thus you can +specify no more than a two nameservers for infra and/or external use. +Those may be specified either in ``nameservers`` or ``upstream_dns_servers`` +and will be merged together with the ``skydns_server`` IP into the hots' +``/etc/resolv.conf``. + +Kargo has yet ways to configure Kubedns addon to forward requests SkyDns can +not answer with authority to arbitrary recursive resolvers. This task is left +for future. See [official SkyDns docs](https://github.com/skynetservices/skydns) +for details. diff --git a/docs/figures/dns.jpeg b/docs/figures/dns.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f61f2f1dc50ae838a559ecf160925ec89c4ad547 GIT binary patch literal 606428 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

    }vLF?L2t!t}f8R4w+vjJ3fs3$} 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%0D!6-Q5r~ZTYEvn*__Dm8McBjyd`HqyV`o zH2zggWA5_+2igK-pfJ1|GB9C7({j+(tw{NotG%73b{OEY?+_Dp;&*fPF4i@BR02w4 zwfy4RZ!NiuS+n^1q^!4%DN?O_=0hA*ksH2&>W z%5F_f$RcQtqnn;@h0Kji1@b1T&B4cH6OCRtllv9mp+By>Ru&i77ucE^;**g4`DYdo zgGSEyKLhZbEeIGR7Y<2vVVp%u7^b*jE0CXC-%+p{i{14d#o{Qhi8=>5clvAqo z7{0eH9pdF$lxonLAdTn{%WmSViht00)TNm>4jDs>?I}!Qo;CA?4C07cTvq&$Yp{Oq zB>W26|2?sMr$O+c!EAd7}Q;PjtqAKI)=o15@LkgT~#u5j7@Ms1~p4-iaf! zWy?7rI@L}pcAbSMQ4gbe9xXP&S@9A!BeMr;DY`A~E8LN>y^g&;y6pIo-SxwJVP?_( zM`kN!ksUW4qQhGFNjMjyEi(-WA+pB42)K=fCFL8a3vuDfWoV-{?Q@{r~^gOCz%? zFZywU4;YO;f_CdS8iQcpCWuQV)!+`W-0l3ECFarpawUIoyLSFZhj-VSiZtTDcq}J) zEEOS8XP?U{cRN?EJ4Rm`0Y<+C7QD8OoS1W0CGugDa20J*QfmP7fHE0t^QtF(Q*mPv zaXi}dPbPC~H?vzDf&%UL(maoX!Dp0dsD#gLaAb{k#Qluy4{L}6CuNnP&Z$+lUUvvP z_zy0wON80v6Wu+AIb!q06i`oKbbK$4z$clozVE|sM<^x69j8s{rD6QcB> zX5MdA8XZ&yg&iDD%EA}c^3n)Hl;k(HKD~XwQlpeY;@U4;OJG3AKsnshH)-q6`%zL*K-6HBI{8Q_3 zc`fzYHZDFo2jp}8l`=VLm~p{9jbA5&h=(G{^P+@`|lC@ zS$;Rx{~F&=Q&x*9A%x_P%UY@|n*>Whg85QVI=Mt#szLEoWa0_%@Ysf^XShK38;W{9 zY}T>vWD7QwRgOS%(`tdm@J___HnD|xHrj~CZZT-LaSDmrTF(E=Py7C^64UM$IGmv!Gv7IXCZ0@Lb05I?2pSS^bXyykfn&#IuUD0*1~G%y%ilpCQc^w0 zD-WXohzQMQwGSvx{A|8;oG_&md@T2E`Hw*OQ4=9gn&MA_m=ClcggWV`icD;c58tV! zJ!qxaMW*wk?%s0c;E`M*u*cvlm*qJm4`7)L%0A&Ae8|uFf`Gb-k5O-Zt2UiUrP-zt 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

    <=|G!+4+|!i8&9W>Z6$u`G$v%8AK8EBO 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 XFle&d$e-6K(9-&A#Y5KoP;C%i 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 literal 0 HcmV?d00001 diff --git a/docs/figures/dns.png b/docs/figures/dns.png deleted file mode 100644 index dbdb0c07125fa05b33cc6c2db1fc98d6739fe48a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139103 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 xqdB^J2iAJ3K+|S(&UdW@FvX!<8yrIoVL5B{ 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 diff --git a/roles/dnsmasq/tasks/resolvconf.yml b/roles/dnsmasq/tasks/resolvconf.yml index 22c135262..db6f5ec02 100644 --- a/roles/dnsmasq/tasks/resolvconf.yml +++ b/roles/dnsmasq/tasks/resolvconf.yml @@ -22,7 +22,7 @@ - name: generate nameservers to resolvconf set_fact: nameserverentries: - "{{ nameservers|default([]) + dnsmasq_server|default([]) }}" + "{{ dnsmasq_server|default([]) + nameservers|default([]) }}" - name: Remove search and nameserver options from resolvconf head lineinfile: @@ -37,7 +37,7 @@ when: resolvconf.rc == 0 notify: Dnsmasq | update resolvconf -- name: Add search resolv.conf +- name: Add search domains to resolv.conf lineinfile: line: "search {{searchentries}}" dest: "{{resolvconffile}}" @@ -47,7 +47,7 @@ follow: yes notify: Dnsmasq | update resolvconf -- name: Add local dnsmasq to resolv.conf +- name: Add nameservers to resolv.conf blockinfile: dest: "{{resolvconffile}}" block: |- From ec0317e0e4ab9667e02749543f3f0fe7ec8a10b4 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Fri, 23 Sep 2016 17:11:07 +0200 Subject: [PATCH 126/695] Adjust DNS picture Reflect changes made to DNS setup Signed-off-by: Bogdan Dobrelya --- docs/figures/dns.jpeg | Bin 606428 -> 669382 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/figures/dns.jpeg b/docs/figures/dns.jpeg index f61f2f1dc50ae838a559ecf160925ec89c4ad547..56986252d59f1275639121d59ac6f1f2aa5949bf 100644 GIT binary patch literal 669382 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�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

      DMDELo=h-^I7gNBa(UzEhQ8En1SDXOBa`n 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≫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ⅅs=n3-ydkMZ9!*Ily+ZYOz`{u2u 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�I}U@kk}7thuuK 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

      (;vulgC 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 XI!r&OuwEyYi@h(ld*J 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 z
      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�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

      w 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

    4d`uT}&5^}TI1Cqeec^H_u@Nzj$XXj<| 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�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�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�%iq;Jl7os4IV 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%0Dpq)mAO^$w!=pDT zEZ;JdL}mm zT+c2hw?qyAVWg)7UEq5@*An?6INu!=nD8{$h2an^_JV5Yr#R%x`_z?@6{+nDkt6 zDo$0SWThMkfN$sfp}eYSH!+EvFg60-m(_)s|J6=-JTzzS^yl%s*E8N-CnScsUZOY* zi|fcG-we0!=OI!|@@GTy5TE>?p6QU|(E#^uuQ6FugTjAqjF6q!h1Qp1(}6aO zJMta=RNprTrKBM!DiOvLE)=&!u)g;n%gc8aZY4K7Sqfp!c9ht4tZclNHuD5zw059K z5c&u+z$ZC*tGE?dxiQ_QTuQ@QACQ%3AhA_cEizMygEcrDc}cS5Hh+ zX2T6>ZeyxOVfW75AN-HA{QK59x2_CcP#u}4e;H#~{<9sTiY_i!Uo{Ne9sw0K|%Teqk=E{*41Uqm9F<#C@1cLFxarm=~&zQ(fxWayks2Zj7>m?S&f`Yukuv9 zzkU=WnKTYE7p8XOiRtl%5+FxslGBzL&VqqqLb`Reh+0wwlUq$m^4)#sF{3o0x;d z>CprK!sC(;8#R?#V+z*(*R(8GLGsf?;w*MMSYJx|p$nFWE^7+YS)ASa&g-0f^H&Sy zHteUv_z+zEaKBDe+e4PyI#lUZQMIAjLD{X_g2IOV+rENWNN2Myz6KFhV+L69X=l0_3vEAwZ6sr~a>f6i6Um6Am z@3TH*`@EobM%&vMxTqSL5MRmuHu0y$>wBT3XNFP;1$JyP@jg`;fWWuD-Tk}!>dGU@9%eA2J~k;3mbWPkwcDxp?0eXm29E6`a#*& zuNH&W&f7-KJSkDO&bRYtM;kk&70a6noBVL=&KAcDSOc*JvmQ0CkiYgo+2;br>%|p;#WC_sH!bm;_0*F zLIfIaRT}R+kz_sjoc}>VoaTI6#8y`^!1pl~i3ij;n1mp2WC7?95=rXPu0zT9Con@} zYhxK<4|Uk}ozi~8>&1Fyy5PI;8uAzf5(G7SzK&?JHUgcmG+OjRz}>Q~g<@dBLbv8C z3>9HEBl52fmZlhkA99%(-TgT1{N?>?CXRxirX$)mQbGdj!@bacxe!CelIAu%a z`SP=x`VW>LAU36)M3wq1FW20U!e^!`pRHSsk7r5u5|LDyxE^8|Jks2TW&V75g@E2( zAl!-*5BJ#_6MAcO@2}2o9IeYYM5GF+YD@FdtQwogfs$~OBhrk$m_8A6qh2SpZxir~ zE(oTYIkfIO0@}JX6|k{=DNAmQ7dPeZcX@qiI(u}++ucM*+pioPp8h*|Lux#fVU@)t zy8qqY`h#HAA8B3Ig+pPKr0IE#cz&A)9mEGnu?sF7G9gZ`1=sNtw1W6lRtEfatRN`j5 za$i*JR;0YEy!BfQ@qsC`w7 z{M9*jqH5lh(Ffs+KlOLrY3kss7afZ$e6xU$-dD7_KJh!LW|3OMW}R`|O8=XSylK9s zl0Qn}qVJX3E(d3`ns=&9dmexRWsWFN23DlDH1G14Z-a-Pk zD5sBk*kX@!XR(a!Q0nS(%y_A??g7hBh*15*W0`|XmuXiu1{k)cmU;+o7eWyMTc)Gr zX=1exCKa*$8~}jarH~6+mIpqSClnj$QIjGj3e$z~a^D|UMQOma-3;2KJ#>%NO;DUX znPQ;MFrmLjQ%BT@IFoWCc;__vrJ?(0b#Lp zw}J0JUQo0?pjCR*+hx2$MirVvW^DPgc5Qj2_Zae3&!IckXN6vq6CqYfz>vgX6LYLa zI#0bu?YeGRVSj!)#@Me8at{mQ?TmFRS{@T9xwPM=CQwErH-Y>2K%|9j;!x)E-m9S+ zL+T=iKC#7p5CyWQh7*2Pl2Q#-zSZBgZx!3V!ON)1##9 z4niBd;*rNX;le6fW5!BXo!k!SRyjeuul_f(vc5g|quIiYXCJhF+{J(6koerThW^M# zjVu(}t12PsbZ&X-+R*e@pUJD6KV^}FLxbq3(0!Ii&qAtZd?kK*#bF#dK9qf7Mx3%U zEC(zX3)vZI+G;`*W;CbPpSs~FW4mffJrZxbO9mi1zuv>u)>w;?nA>l4(h`e3mLoma zO*9bCzjOW`R4`HZQNxv?{)e952pdqR_iC^YW|Igp8h4K8&wGZ@Q%g^5$0Wg3aHPB% zCTZb7iDI&KbDTGs$rI$FL%KN@SY@yT{HKNeX~7VR@RoFdU9} zR@hXDlBrFz^(solhV|#i?}P8^b*6r?0b`rT6kov7A-?rP`KAB%|t9_>1R+%PiyEh@skN z$MGe0TnC@dZ#5={#^ZPCMWhi?Jo_%+#*Nc%3ZF_Ew^7XWbqF;DP)-?Dx_U|Ox`KBL z)D9+SXcn(+Ur8aLeLsx6UVZ!bW$w~c&8f`z3&KGqp`jzS4l#XH^BEn9D@X(??+7iq zd_an#%ixp{T08q2iW@_#)iUW=9)q3~4u`e9Fd8;jb@_56Ryg_PBin_Q^7n)OZR2N+ z&yUKC1bWbOGlbgw+Xv#W+sUVQKjvJ>@Pm4g`j1nVr{PJ3IH$c;GSKoHN6S}3oA^bE zH)G^2?V!~!#Jl<^T&K_VQ~sQ*jpx}Cw3AbzABqvFC!`e*kYNKe%$S|4J>Y`jejt0% zcfiQ5fQJwN;`Xte76sh@jbrQl{{5DT`BFZaU6}kV@XEPq`^(4;im~Dx=g%DRxc@xV zzt&Em9VG(&A|+oqB6bHA>^Ostxk|sD#%D+VikXn^ki}S9#4mOvQDQSgBB2l0wYL60 z&fWv6sq9@J#&Im8;tV39w3(rZBp?G4FhIZ&0@4jh2!y6|5{h&P#c>p*m@t3=X+dg8 zLJ}#V2S$+Iqy(fY9YXI&n}6=T-^~4e>;AvHzI(H>*4`^w=j^@DKIiOrzwh%tPkpoJ zNb0@Ag3Or#fnss#!L%~G@YG*?a_yft*7ee%l?oPV7BEO#m(Yj>2)yl>i*Gvt1)bEU z4Avec&T7$Hvqbz|nBn&4>BuECHS0nS{5QUA_j~`|*KeK&e;miUsnQ>1=chfGu5#J_ z1(5?1D$yNL9~OwM|2{mSN}F{w`&I5~T+}&u>hj!TV7^nL_T@TjW_#-h19gY89d9T2 zWpEJ8BW%SZ?M?5Ehk+D+u_}iaT>S{KpEpM#tJU+vqJ+8dx2$@Nx1Od{bqb%G(BoA#yhzFk5( zv$PLhK|lrjH?w{T9S^yM{q-|>NEk@#Jbn^#q48a&6vqSpK~cR!8L!kKzpI|rpe;FX z?@S@*rF0fya~D&W^)x6NsWQho2`pZX6ol> zqe^a9RJA4m!)@1?UZ?L&+Qu%;;kn5LeX~5Fs;M``&(}$dCgPhdR^NIt@-j&s-0KpQ;8Zt@aNkU8HwR4Y$@E_+y;%Kk^Q<3fcp2-Ivs&$8JJMwmXnB_q6RoduI zY-S~vG$earF!Ssuy6I+#v3kAAc+;%=EE7TKa7gYo(npE`*j|N{2bM!h9qoFp8F)V! z0hL2bqv);TWUI|C+xFT9Xy~Zq%x1dpEMgpDF9uxQDOTr5cM;vVn#t9M?l~64H}0hO zv2RfZh36EmS5yCACUVl6fmO zq2l#C5iLA@!{Ar@TH`BGi}2+E`dzr%A!F*JfYjuV6 zma-~C3GsnvHpb3Nf+(M-sD;s4LWuk1V8w``71NXbr^gqR@3!4}`U8GyrD3lCOo|_H zwA_jNF>NuFjhN=ZP_u#`Hy|P)>-?7ntX)E$ zJ6#`lc0TMPlWRt0bCX>{MMVdi+Xrb$uMx9?L+`G3G{oP3=jk~HX*!61oX;NiF}j-K zw!-l=kejDl<;4D|Dl1v82P!dMC9Vv-niT@y|BEj;&QoHGQuCPgXf&vSUIvW%eC6v| zCD(%AqewZzPz{#{KRc*ugT>Wbqceb22?ApCk_v(A!F{&K{;tQ}j2kDZv%y^o7Amce zNE#DYPUq=*y`~Ay0XhhrUwWbO)1?Tc|Ln}|0eRwDsrVNgWGynBe&rA4KW*UaViB{Zs{#>@Mo2l) z%jFo{+Cjjm=psj*eZ&f=#kYMM1QK*O}Ry(B5BEuRM7m=9++ag z9{h;4EH;8cl4$X?@s7n74ZZ_#*Y2F7a^#Js|`^2N>? zCy%Jw-Ezq#=_4Kx1Ny(3=YY}kbal{?VqRg~?jOUoh(Kh<>V?mbI9-xusw+uT+rHKe z)dDcRkXf-)lu&e`Rw_&Iv+~!l%^4yt#8=AZ2fIq{9Chg|55-aw6dCn)+W)Fb*}CIS zXEu|P*d-0Eb>%mx~ zSqAP#U3}tQS18s6YcuzC3$Z?9s`cGMzW)*KNQZe4s-O3!xxXatc8<>(*-2$f%z>i= z5GKJjtQ5cM?F)kS8A�RE;aFwCMOtB%z9M1{lhi7F@@#bLJV=`$|8&(aZ$e?zgIm zJOOf7;}@TyMzmZ&)(2S_sCxX;2HMg3L}##QnNVo~d>r#x7I-tE?JvG>$qv8$ZHfrx z-p>iwo7(xNN~5{OCcXV2r@AUOYYLNW)vd>}`FGe2(5qi;saZe6X)UG;o%+~#T}@s_$7mfRwLJ@ zr{6=yJuPZxt8;on%lpP|0i`T4a+qw7cb!c;JeCrRD&ZN*d&7XO1|u&KDmT45Q^q3A z-eq>7yj*&>g&n-gRijD?zL>ls{9$08boFAxWs}lt8^}*f8DkFBCf4r@4@)vh&fIGs z;u@`IGzzM-qR4Cr?85ibfX-E3#Tse_TOGXtLPFy062o*6d7^;Z1aWFbS*j8gfw+*lf=qGz&R=}k;`Xl^2VWDxjQwKB#iqwC%XjHH=|48hzrGe{ zE2vqG0bFo_zrU#M+xjVbkUSQBPJP>`;aXJr{)+DSTpnsZ=%DRN4s}@HR=rUr;|UFJ zEtwC!ztJ+hxo>ey{`uo8#j}kn^AZIg*5%Pd@m3UpuryImpxh*eNvpPu=0VR|`Ny?A#H z^MuAd2t+*H0P-aN9NLA)e%fM=RxMfQglDy-eyK>0s=*G_*n|e`|Mt&=9K0rcenmBQ zsfejpLP$fu1jCR5*Ezn-@5aNm&Pj${U6I2L9vgPwzN4NqZ4$3H< z`dRcC&d_{8Jr*pXk_R8W&2lzttB@V~nqDF^gKRCHT6<+#bX<#9IKymFhgrUmOX@KB zmdo}D~Zt)U&b?*BQX-cq%qT#xxMbRDo{{(IuknP#;yjEpy8tG{!u zc@9KK5aB?1YXVi$p9S|F$V4{gjIRn-LQ32S*1w@wkSZXQbpSMJ*dZ~W^}S(=vU<>i zW~joQbkVc{?^&i;O%kT@5vTrwLbrX1e3J3%SJm(Q3JS~MHaC=;&IGV_U|J$CQtAFC z6bHQz{${!eR8?&bglTP^GkQ4YvK+9PBsMycfTpAEjf>0o!rN9jAmu(K8V6WA5;A=8 zW~j}e{y9av@Eto6<2S|xpz5XxO{2Zh|IAPbMZQc4y&&hnV@w6!zCuogw`gr{Yu((e z^_iv0ic#qtPR}Lr63k_yb=mZ#rdz)lF6s6f82vH2kPd3lW1%{ojpGsFh7hr}Aqh6H zkJ6x)|H%HDcnLSWU!_S6p34(iVOf9;_+{oUoWJ6}FqjsQmdq-aL3CghRI!N-**z(Wl2%KcB~( zg)NVaKWwWWtof-L0j`ZGr${+2p4{qvYOv8&_MjCF)ys6}ijV6*NoK6(Bmqp_jjkApOu*sLh4ZvyROt+`*7?BsSw zo8}|l9Op_f(qflvF~#tQ1C5d`(n8-CCKR(7P#$a6EEGC>7qMdozrk9@LOvW>6b-WB z0pHAS*)#TlBM+-=O-I^mY)y>m4os?40b-x*)lO+(e4YZHEZSx9z(Ms}^QU^nZw+h3 zxJiKQ&*B}sik*p-v(RV5nn^|=ClUtK0qpIu*qYZD%K!-oW((XkZTUHHD}7{Ftq67G z7hvs>-#Tpdjd`2U$k3&o@;xOxQoxn&xNnOMhpHGBRH^=KYe`9<{rK{Pah;gzp=y?n zXSyt5{NbSrO4_&20G&|v*lGMSwwCqOP~#=fle7mWn@o8pI0ywDD{Y(}y-Go_E|ir8 z9tvJN*N{=X5&#KnZ_DLkXf93!Y;Q-)t!S#KSNBira|0_M?pSQ!)5D5r6W zSbl&DtR^~Sz8=^BJx+-2QHA1@Al3tWQs_aJ=wK|`&G(0fiW#AVIaei5Efm)r;gh2s-AQUY;8@w-l>AvxX(73qx-XqKK zk@pYVG2`yB;~dkr;KU0S%_C{eWC`{aj6$S6N7FnjO62l>;w-)%BcgCag77B*Fw(2}wMQGHhyKm+}k19IM4@O^Q z8Z6A>se=bW9_}08tbBApjZ=buonWe_=CfvTF+!mB^6Y4ulw{SwuNN(2DILNKC&?S5 z`D-{bdmLNWy7Ls1hAh~t1jS*$-pro~N`Ha3er-7})18)vm&A&Gdz++dnbnbxq6rA$ z(%YFv!AmYHD$2G`M_rtA1Hn1j^s0}#OXj;yCe(st@Zz-Zdf}(BeJfF-V5to?rv2wm z+kEdkx7RmWPH2AS$j?b7H@rA%hC$`JQ8^;SsO#f`HzcKf|6EguH;_ttv4oO@NW`A2 zXwA@bjPPi?vVyX=*v!3OWbf_D&b`sng2G<$R4_rOv1- zifNoVqs5aA*L?y4dR?obf7`b)-V5(IJ&j?uT`S;;2YhFQD(-6WD)pwt8VGOF$^jF?V zRiO>j3Q)}?&tf;&ig-|lFzn+J%zJJ6zz?#g4J@Evxhp`i|FJh_Rc@rM>RbT znIowL_NteH_m)4^N~oo!&803gR7Ss)-uuTKx}@qHV_CYaxAS~v+a2lFs<3mdeE}J~ z^-~&%mqNj#>#!5%2v?=@`2{^n4;VN781NV0?f2f5SNFniwaJ8i_lM4tyalJ%+?_o7 z1I^h4ij>&GjKdv@&@vMF;BY(oKSw{f6>iv{$wTW@arK_!r(Os6e!aRQTvK#asY~|4 zYLvPwNNiOA^JDe3TzVPMiBThx{wLlx?mRPo`8T#mZ4PpnG2G&CF5Zn`R~L zjYOTL8qJt;x@v55OGOuZutkK0swWB$g5g_`V)DM;ao!v5RGMeJm2`|_GT^4s9bryM zTW6x|g5Ox=c0^BNcg^b1a)Fk|hZ9c2_2_Yz&j+-u6M7|&h4ssSUf%y09oC4EQm&vROK`gX?jq>WloKj?R~wm`ol52*^N`IN*{0!gvMwT zk$Uy$RBx@!00lcC!HS4uD?Yy(qcAsriUwgBgn;dwyzhWHxWe%6{xSoXqpyJ? zg%89Wg$-1sJ+98IS^_>YQ5!V2TZ5ZV6fQuj%68hb!sW*WWtmOUp*z}MX@Ycts_NXl z{XyuRT+74~>a!Rto~rT<^8tg@lZzhH7>Qz=LF7TR#pR~c!;}@6Q_IXZ!dd(IZ>@PvwQW@ zyv!B&&W!VMr;O7-mg^m%p3=D+BpHSjpi=gdPhZ?n8Fs-eynSi;wiIbNk^lRS7d1yO zyqmc3RrAFC>ct2Air)`*i4I77k|>%SzLHywET_#Xz|&R*a7ZZ}Rq;Yx!`>=ScH&<@ zAhAYEm2@-fArd!27EcCzKA__Y@@C_b=g!>e%WK2@Oe-LYXW-z;U zLnt}6;0s}TR$i&dzIppEzC7mFAv`H=WI7=&C@(ca=V6OK%ge8S^e0@zqF7VrQFuF# zX!xA|sgCc|hNjFIcMfky^0GFMtIKawtzVR@r$xH%+KpNi_bE~Vk}d1|+51PvwPt(g zi&E^=g!X|R6mO_)RYeM5oB7^trOQ(~>-OeP;^zmt+7_-6RCNcsY@3!r0wB9Gr0`kw zVi*L;qY5!zTer-=&+)!7UO!bAAd&pI>SlmNw`O$=I+^+%cxTE0*1wr0^GqP(sUj&g z`1Zmz6)ui#+`aj#ui*A3{CzJrCuP;*4#VkK@Mo{GQtV-9uim|C$Gp3o#DdJsOH5}G z6WjjH00fVYeVcu6zF}!E_Jo`Fz(31ayx`OFQvXVum*+R?!Z-+qAy#Lq9bi1j9P_xY z|9p@~Bq4gQ>_##9(x~nZiY(pxj{iEH|HJx)ewt~7Y}G3r87JFc z#;y<(AJ7^AMTFnYrtn?%eO3;2-e;TSD`#H<3YI*Q+lTtWoy&9&y1o<<-v3fJI&RBH z)j@4x^A)-`K{qpnUE`A@o@7Je@T0-vNgngc#LKd{_! z3V6uwm;(g)mxd*gsJ|(_>DtuH5@XHySbJH_+1{Eg@)U1R*k<`JN(oHZd}IsswoU~5 zA;D0n&P~4mx3=4l%}NQy#m&tux~Tx~D>(CVflr%1Ru!_Ttjg;18JIB@8VfXya9!rp zhFsDwif-PaN+HLB5N5jb+suuuw|uAf=RtTBxHUS4M~&}vPn+D0!{L&p1Afs5!b0@e zg){T>V@K~%21w2_=V4d>Zf!+w<LG+JHtI1CL0WW`Kc&>hi{xJf$l__6LPVp#+xrtRjifV4N+m$5S zn9K@x>Ck@r=WaPisw+<$)`9yLB}kF;Vz%0Mj*>w_HuWE3Lj~^qhu$OcNd>TEG=!QaP@hhcs8+t^D|)d7#|bVXarWN}T6E2@78jVrC6(5!RCC2?`GnAh z8?j0%levf0a^wb3R;b#0%k($u8-B+t0Yl?=@r>4> ze#2TGw90j{_exd2cH>s&M@nNt$Gj8|6qFeG8W{K~`0aqnz0zEw`pxAba{Z29`@~;- z>9qQJ`IyiKlPY4scGI1cH!hV@rMD_{kB6z+oPWU*{c{!me^!{HWt~w)T?3~E8cHRo5-1hx!yJTESw-ZWNke2tb5z3YcDrwPCqx~uu9%H z!{(7s@*1*Q)?hg^X&Ev9=0>OQVI?kH4)0j5+EOlYWWfuM5*;l%6XRdR&Kil|S0mws zx}X-!iMV#fi73QxfvG8Nkl1;03dld896YZ1Lu=;k2X<@WwYbBQtsd=NUD@gRJMX(s z3)>RhGBcCPA@Q|YKi)__J0VMQ^!D(`a^w3+{?C6O?l+o4kl_Bz>PLU^QEwKGVG4`t zhK0_hn>;vp`L$1qNcs2yIXz}K69xNxJ$~dFkAcnN^QP=+T>FvHZf5l3%4AQUj@6_- zm*N40wcH}zw~iv0O-W2Mn8gQM4$t#EpQP1=AVZDFDcd21mWAdqj~|@W>(l!zCyQ_` z`X+r}x!kdgfRKlJgoK5Of*r76KAXqx)P7aJ;m}1LSf~-<#o+D==)AFEa(4U!TUU$x z%eJrnVAR`t)ys}RHXR;g>dsG0-rcLF1s>nA^!r|*z5UWj3$8=ymEE)}t0n#+D7>H` z@(&%Afp(T{Wmy@ zE)No;gC8B}T4#UwG6?ia@_4H8-ZxYxRH)+C##ORY^4e`gI507j(jF3zUzruoN1xnX z3R1m;-rlmU(3uSSt;MV4GvE&PA_aIm*`1QbAKtBghLVd@2M34FAQlRz2cfRju?);9 zS+l97(g)1jtd>8V1>vgp3b&2lwZC5F(RMHp>Ex}Jo-wqi630`0FibC9z3-^}xnwa1 zY}roLXIAkX7`X`q-7s@W0HAnbNLH>rNQWRAHenj+Zt(|VCCl#+9$QUH8IfB8x_SDq zRJE1>GYEyTzh=>*QzKkh9US8KPqL;YZBK&L8lp>w(z{mw&YyNgKxHB}SoN`bNKsSu+C| z2-#%l4bg@o5l~$ucxzHI@48+6l0+VcR5BvxcacZ{;3_9;c@iKuXtcS^O-^ge=1?oi zsFDlSwLFij#(v4gYbf)w&AihD7A8qKAyb|T`8jNH|$SoIZjEH0e*|}$Gf4AYQHuIbP(f4XC0l*8z z+_O?>R-jGn?-z-e+M66RFBR#lQE1}~T{|HfPqJ9}W3&=}ePvI12)w(5w_hbz(Lv4S zLkb!SaOq2=1ZgzE1+lQ`O_XK#Tx{_QxnC3<qlA% zC*8VVp9StLg^jw8;y2{FsyR3;HQt16MAxD zb4cfUR4!-rcVZ=j3OMW#OY+>V zVdIup_R*xP?svw#C}*Qhq?i5JiYH~LnBF@Frkkb!iDKf~|18DLPQzy|1LJLcHIga| zD&Te53vmrK`5GXt9XkQ79UX2ghEZ7XX3%-d)_=4B%kYmL1uW4RwhzZ{LdeCknZLSO zjv|^4A^U0BA!ZpSj!)H}SoKx%STyV-YMs)G!yMELCN&nbpI(TbXHPh->e|25LQDR| z=aKbIi*V`=3^QBHFG`0CXr~2owB$dZb)z2Bs)((l5frMnyhnj1f%_S-+5{ohtZ zlHK!gNXn%LI~PrqJW>VjdiU+(a82HGR+dy!%;M%x#x0G4&Q`Ay2kIZ(aG?^}S^=a* z)Pq-tqZb~$^8#mggM_| z-(&3hVs37mo7CQGGQ;VWe?YtRU@00jw-mNI+f zWH~Xppe&6K_D=mn#xI2fM%lRcqADVmHutlSa=MN@i*JI4iY~<5&CKZ-ruNn8nV03-f}UJ7 zZ#(P|9&ZbiF{9{>cn#EU?ADE$ad*s2?;gvV{V7%-6t`N6o+wire`6~}kKbul=w_TT z4JB7{L5O9_#u_&a6XqNsLJ&r9mUrvUTeTn(?a5f{&jfCnjjUhc2f5mLa1EvtNiD3k z?yqRWF7}$mu{QmY_PWLevz2CfO65m|*L>!F?Y7PM8e4Tm2) zRE?8;YIj%t&E@FJHc0OGc!I6S@pojEyF5MxetjJS=SUd5nkiJO&CyVlYw3v8W_(n< z!LOSi2ENUH=x6`{fUoTF3y!XC3=fV3Ab4=>I{N$~aT26MpB%yp1Ghvbwa zrrg-n*-$*ZUhWt!53zTjC?wIgRBO%NOFlr`4xJzhv`zX2-Bw} z$J&CqUoK?7+_&|h{g8Me#oah%gc<<#7>Z-t-Uq|?9_HaAKc`x~hfIpdTkEb3XzT;gYRJ#QnK8;Oe_$VIcH# zsnhDz?NCrr<~Zz0)~C)mk+7tsUz1OUf2;rfuy^P6ZgV^PRh_rC{#>v}%PNOnT>}_3 z^GCAX?wt)U{JTTvQ9=`h!7Xg~!4e(|jbg-I&o&}XWKVb~^}&IoB9QI`yy;pfIy!?& zOAru3q{VN|PtLzBOHUlCSS09#RQ5S|m3H~J$+=O*FRrTiZ{08MrzMdDFt*0C_6R+u zVQwYj^5UXug}Ybf7oM4~m*V`#gwKaGOb|+)gh4nZ_{>SAYFyu4kBw_*2}aI;eC1{L zvxXAO3Eza_Aq6DR^AN|S-_>Il1=_Z#1hsoHd$fH(e2ne$A4V)b7F7#mBjAn}^3$@3 zMtFdQnfX`Buy86+vn^vU*H+5CN;k+KQ_paxw|FLi+sM7C?69_$|t~7@N~hfvac(-Ul{S zW{_Tn;=Z>|8+cIKKcu>Nj>YLmRzq=v$|5PMfbvfEQHvsANb1w6S-?6WF%99-%R-d^-$c{eMJ>EZkI`7d!0gB~B6?#~L6UWo zQH4|{U90M7v>uq{v0&}$kpt{nWBt}JBi@rMg&KtHLECaH4+?v|o#KLywfQ-*MMp4c zn8W&^aN?7buaXdw`T^tfZE&2^Q0DvKXAbF}RTJdg<`p&TYj;dP!R|(3 z)B3e?@&!WXOaW4^5o7lUra3m^m)`|Pd(_CV8QPvhqgMmmc3U{symU=dhP|mQ>837a zFL&Q8<`&lDtzeox(PDoX_k+*~4iu;oUN-^DC_y8M=VGOc2E?=vPIwR7R~tLptE zI-6xo>`>R~odbk;28nB7A;E{XbvFa+k^XbN98fLH26g3)9P=duKwlnff(b6{Ex=9%I8N|LEr?Kkf;=T z(cxs|tmJygk;B#jbv&p+#ldjs4fWRcodFx5;V(;3 zZ!r?TnmM)5BT(h2?jiNNVZ&Be!*T^swTVjXBu>kM3>YVIV*Vh?W~G z2{4|Dn_c@$iQIwjFJyL3?#k=PHZ1vzN|M9)1H#Lny>hiT8`Nd_lE6#G`Gl} zuUm`2#lH>qQY4RnVt~^yHNp>W-8G1%eV@Yd8Y24{ z%B|2`Ype`wLYnH&loj-dy~_o7c?PscXv;aTHrdyAJm}xPV(``RhM=gJr(SV19t-1b zkhgWVQ4YmI4$Pql`i^l=?C6jRQ4>7Oph)C7V})KC)rXY^fnk=zG)liG3nf0Xc4i8Pm?)dy}l z;jf0y)Q-t?M9|x(NBAz>{4Z%a|1|aAS5Bc=s-$qiA#1O^haYx_nI+(zS9lHIRZ;V9 zK@RFQ5xnDj+?0_|CDRL{$_arcXLLQ2<*wJVmVJE*(0v}iQd$(#{YX9O`QY>s2xv*_ z|5YmGg|m(TF2w$Kun@Z5kN98>JMt0|P9>WtpVI=;pV_=#PAMHXB~11*wTYrNK8Hk% z>@XY}9iOkv^-rh9dPuKPjRHF>vhph5UdW#e@Mf|+(!b5F`Zxd^ zXn_SSMFnSyj&`-@!;`B7c=xb*;eNDdF1l>bzua?fq5DT$A}l|=V8z-*|1{Srr|RKX z4@ajc>8)!dy&o(coC8lvy@TqYkMJ3jg z{^O<=529m4t0#7uw=xa-%I}?Ozts4lvLkWH0g_3DFRJm}DmX zy*I)Wkx7rI)zlU9;seNWIX)k_+0z?}7wEoiSw4NVDEr^-hG$Hyzcp7)o`zm!SORhj z@e-}Fjy9`>JcO+Fh*ksC^g`6nZ)5PZi&-xJTvZvxFdnQ!VNw5+GFy9XsrT zaPmSr!TcLVsyb$w7gj?9!%lVCUprP$5+7Af_;THZ=ih&MqguzKfN=gAs)TegGzV|< z%KN)j7G)vY8c!Uxm-y(<-~?v-iSGjq_@NM8Ok6|hOHfzP_%O_%_0&l)E7uJ4(rb9` zooCI}QoDjC#UPBE>w|^-tWh`j`CXbHabZHeS_a=ey-9qya?)33r%=B#dcJSy&q36v zCq0c@$hJj&$8n+T)yrM6k{D#Jq6hY`te=j%`ssG%K6;g~RXAuXSLLD}YGs1*E?~w; zTe_ARshH>5YkK0~19}TN&@JmmA`je;O=wE%Jzn=}45(i5WVr?Y(dSTYlhCrAKQCS0 zgPPTiWrnq>c*kmkmn}-}iZIvK0JIPbf0a{hpGB5~eqzsy*vcfgJYjlRq$fToD`OI` z(^NDiw{zA5E?ywySDuNwMJz_hkcf0EONO3yo42^hERWQX12*f9`jcV0o@C$pCO_*2tQ0Pg;bochit7Lz`4B=ulH67neQ^!jSb_^e((&YU&&4V^&6!% zv%NOdM8aQulMovok;9js-(X`^$dSMGVtPkd&^Z5*3K6)mu5N(d7rrp{zsL4p%Dxf> z*ZxaJ4~sv`DN%Cr#J;`K^hU0i=^y|b14g6Z+S;*qT|pS%X9s+IXR``%H3bK-ZCUP1V&Aa#`BkM6&xlZoH4N?Pa15K@ zPAK9;a81i9uyir%yEI2!NQ%qVb{n zyB(BKF)htX8S$i?7@NCi+0@iP;&1Jf$FwM~zvyYap7?<%jBp z!Ar8qXjYc7B90u~t6}lj0G8pnZBjW_)a6790NqIxR@DboWW&r0&MeQ`7n#-nHh%B# zR+WT?qhvg&iBYq!(Q*KXX~vDE9A4A`Y>H;^4EDH#dmYbD?}z{Xbd>(`tKpAF(`P7Y zi+O1pF}?HXq|DKx@{5s<3fmRuX!%i?m&*Dqyk)`|wOmd(%PipD#GijR!gpb>uI7V9 zSDnqRyr)KtJpe#eb~Ph0WDIwdjod$oc>OL?bK^$qHBIcL#%W9yXYWGX^8_skV^4g2 z%gW^w8OdqP)Z--*Gom@`*&A;_&$}{zWb?5SC`@$s1JyChyG-d0iHgniFq_o^oG?CT zw_2Jr_Ct_bp4V&P5B6$?Hw|An0CurFP-v~}BG#klsbyzHtHgli55zE8p16lrQJr{XPC4Tfjw_s_uVdyhVmeUdKjwM%fmDZkW(+ zmkbWOU(rX{P?n|=ldn4X?u5~Oi`jDHA$D!tvu+ZiGP`Ywqd&8!Q({Hw)nr;5EvL|F zy{&H+TW!~5!Mu!32)5(xs!osn-4fsR8ZFqXnL9(~pOk^l-B_m%6I*d{8$b1ACnS`B zaG(~CvEcb*iq2ne-23MkKE9^0%~viRJ{7}jH-t)luUpAe>v#CR8O5-rJYGWj)u=&YaL^KTHO0_}y6MteAp5bp!<33rU%_q?k=#QHsScfZ^Rkx=^LUoU7W8 z_23vYP1>-?ti2>J+qRv7Um6C_hKod!Wn8bTKdB@@vPzlV1vqkgjqkNz-=Odf8;Z*{ zUcsyu8^67^4Zbsm>;EytyBwZJ#Jix(Tl=9W!fl3})3`dYA(cYZQ(n3^xLGgJ`qJ6h zvtG2t6J*9;xC+u7(S_7DrYb3j3PGa!Y##e)Sqw;+bfi`9}6S~!RA&1ov2?; z=f8Sjk9UIVW=vmuBau&Iu4T;JxD74P_=|6Z11c#PHE$lJh(C62a<^`*P7LH!i4hI~ zZI7Y)QXH5_G$9CPtOtGR01lHUcPLpyR&Ui5r-)pqqCa;gf?$vzF5h(bl8anoM&JH9 z(WA#y`BLbaVtY@uxaVX{Ip7v0--+m_Si2ns79e0H{e~#E4Uz%=s^|^1UR#6Sm7Y%( zv*U!bIZYqA_O{7P4MIc9xdVyHM#skgPcieW0mFonTq-ulM*XvtTqmU#}YxOPH?Lx$-;jk-9#)sWz5H0O-m zEOWAIN}Kmd9EFLL^(I#4u|lx1=+9F&$|P5BAMcjI21{usn2wu^Xn>p<@ec z=t7$OdKGTa@Fdd=3q!ro-GM8~!^{M~kW|~m@D`AGQ}i6u84BIG2iE_BgB#^8S^YrS~jrz{9<6$DO~&7pF9uqa)8B9 z{3j2r1wSCwQ^w^;&U2q3z!kkYP5J=JNn_lj`Jo;=vRI2UOH2#~CE zdz8qrzUph83=k5qzC zAtQmV4_K#W4)r412Vt-=_q?1+a~-4^z(*Rc7w_0VL$_-`r>%Ka8|&qKe1v%VOO6_T zZ4HRpElvCMbJqO@UvXgdp}Ni5s((@ytPhBhQx`0_Td-hiH3uj@HdyN0_G~V;!&93kP7w_+v} zs%#HoUUJHCndp5li*S>wLAVxyN@(LRE(Yd9QvuRW7k=WSUJ;s2x4%GKP(wfnst@c0JYlYkg;y zx*^XTldJcrG-@IJ$**^aA+yM33^-&qLR(1nm%mpA(D=Phw{>}~`PYL|Hm@I2n?#rr z9vvg95h(!4qa@<~4|5zPKy~4oIxU==T)n0FM}I31IKH!EqPTA!S|6lS=OSw3ox*QB z&|ycI>fbWbfgM`|LyKi6!&+)qV=@ia_lRvv@15iWtpmZXIqyauJ#bt2$yrl=o+R?` zD!WI>2w-~}uz1_f`dWQ0JFf>RP^~fV?b2-Cd3-0mYkw5`eUZNISmxG|QfY+;RU zoZtTL`@fVx<12M>A^p11(d`A>)cTq7fgtbo^p*{tb71(2!p(J$eq++|$I@KF(Uy^v z;E`K?f}&rK`Y)WPMEz0=?DK@C3}@|m)JosI{}svCe{|#wX6*8hf&F6*&#l)Bqzy-+ z!hdRJ;jEPp3-=@=bn$!Qi{laA@|2nCkp;!T5gK%mNW2=5pnhZOY3`?)N%&uUNnA_k zH(xu}nz}#*fk<(c?tSF^4Nq`^h$lARr#y{~&h-Qs%nfBw^-~ph->MkTzVk z{g$#j9W)Vl3=Z>@`&p)5n`yFsAN~cZ5c1 z9NY+LVr#ZW%o_QBhKjJ8+~1HF9|f_(%UT5&xI!x3ZP^M-jkZ_bPgb|sO+AK4aZiU%W zD=Xy{hpp##$RuWpd8y=|6Xf_ej*d%=wRj5>#<4Vu8S#bByzHm{%W(hgr&Dl0<`1zLOQz{-U#2Fyy)Dbk0P=rG zd+(?wv%c?_8OzLI8$>{=GZazkAOxg4O6Z*wI!cvXR2`DlBx?gZf}&4i4hGCK~tRkZUW5{m^S@Xy^fL`VW=MOovUUu+8gC zlm&|E4>9ic39f6Tz2vxnRzu-t?lA-NiTFZCf)GKhgB%W_h>nHB^O#Qvk?aAp>%;Ik zl-CYa!#GdG_ukEwV%w?l4t4tI67CzzND7zQ)oPpY@#tR(D$uphwyQg0oYE-G>Q52y zzKOxEzroMdhj9DRIfQg@sPWEL%SC{$@fg%#i5C= z;KhFXU3h-Kjw_t>$B!TvMboyr2`T=J#Q1uO&Q%*TmE1_emNMemLNn-ge?eKE&2DK2yNa3m$AjAmz5Ol_$rY|g%lz!rl>qMYGNevS9as1CBf6N)RkF@& zJuMRH<(RHl{|iPI0>4%&}!+W>_@p zl6K7G(z58ECac?qOw8xern;S7tVw>Kg~$fFX~RQBz%86nGe`gNF}CIdq={QZ|Dg@rHi5Sx~+G1o#%l|aH`Xw$Y_&+QlzJy`zP}DBY=bfR3g8#ZW00a2i6%> zat~AegYBEQd8Sw;u=QyBc)b3&1ur7@=A;w8(@Lha{g0fOIQLU?dz~j_C8ujz#XJr+ zx>_=Ui?p!)jI8o)Krp86Rj>JKA!Fko{B#Q)4LYH}g-zXQIa_bp zEcKO&j$-uieXJKO&Jl|&dE*`)0)`w^5w@3>OM~t69C&TmnUs5b zLe=KYv~*e|viCFr%rKLn7Rpsyeq8J%Y$NcEJNa?@vHrb--?^xPvFd+cGH7u6;vL5% zsvd6N^%F3e-wLrFQ_7e81sp=9FBXTryjn8P<5)le^Y)kH=iv~gPg;+5#+Pwf(Q-pX z`61d}s(WJRYK`Zx%G;N9&}Ruknne1DY{4)FAGFmZLkhiu+47!av?~*UnAd;e5+R@tVp2Iwz`5}5snycmIgj6ff{`JLJ+~nSD*_| z)Oo@(b?%fo1PQ0LsuD}nSXpo&)Wu?LXm8wJNKL7RF=ULVU0wnC%OleaX=k5d;K|Ja z(xe&`!~F8r!mGN^aY9)+5^R-VBI}%-yOgkwe|Yq2eY5P9&d$DH#D$5nqhV0 zi;U0v z_MO+`^a04(!8nX~!170t$+q>-B>$KC509fg^voU7%QH7=_7&KyV{XG{}a?L@`^;r?PL3`1F2SBen*vID0;u;(jF zHQNTA0{U0;!9mr1Z=4BLGTw6(S6|GxeNhvM$T8D507q1s`73={zRvl1brwAJ9`k<9 z_^N|N|B)>42I#%X-(v)^&OD@ng|=j%>F)8gWJ*M3nlRr<+wu0_(b0}7B45ZP>sek@4|k_!Zj^!}c(Md7ip4*npdUA~B6H?+Lc@0Nr7?5jq+ zU)d#Vty+g!4rqbi!@OIbbjF>pYHtIdw%W{3BoW3;{tD|JV7RdQ9SUaT9jtp7il0PS zR~U94hp_Ag8-UJWcMy;rAEd&q{Z?3aBpS!I$B5qQo@rRRz`lTP?u($%yg0^4M8G*7 z)Pg5XXf8s6XS4C$%Fs~2i~g2Dd3}WTn93(SJQX(2Em0iH?t<5!xNzukIqzS%?MMgbkeXOAc<1~Zh3Gn>6E z?!-^ob87C6^Z!c0MwI2ohrRp;h)7LY_9H&6EAuuRkuALIlW7MoeQ!BzI_Ga{mV2wu zo~o}_1Lo<~Ly)0=fhYGy_OFCZh>12L-%nL!3VKSxOq_r(IU}Ha=6mwCOr2T_iy`G< z%CWr%Io*k0pouh*Z*J!BIA2exdfT$hLQ6U*}hNc&V$TVOxZB zE^is+5WPhfc=HEyW^xMqI3F`W)Nb3Ewsx(Zr3lmw-(#973+Iualm&V(Mcg+o>sU1G zx=Aw{CIa=o)@GYAzmDopE{F0~ct|c-BpoOV@)Ru05!eb-G+t;pZi|{g<&Y0l}Qrk89mYkI_%D|>e;%1U2D|*T*90;}u=X>Zs*!OFN1Vq_U?aE-G zY%k*CTu`m@ltS$dGxT4=X*iAIxay~j9{6~#BL~3@leNioF7a@A{Xm5fFeOW!{2O+r zF2(A3lx#Ek80!(VgCEcO^Jzlm%BxkxMpubBU)VlnHsc{P%>PNqsdqO%M*rhLhYXxsj8}2*$%1ujduH@k(<`TRI~T?%JJ$abz5Ln;-nbX41STH1_2yJV#7f<5o1BSb2uve97T!>}67;=h)tOmGH$t zjFM;AmAca_n10vtMA_HXARTT>zAgY2DueV{V}YU3{=YEOtxhePoLef&ruFtBk#=7tP$Y3jm z9H@@hnB8mLb^r!_9%?M98&yy;xe+uxgtE7t20ZMX`=+v2$0?=G++1&HT_Wvn%DdJq zgx4Mgf5&O$ONXD3B9Ei+zN2Qs9~4k8BId7B|{orm@&_kW5oDxofTWm$K@}Yq+~N&KU3zA!ZcY5xx-yYC`1x2vz(NfeBTm&B7;7AbeiUkDyJ z_*qy1u37j}Lknhv(j#&!DI=P?jRpWSQgK46gJ~ur@H3JHDOO+mg4_7oQmVF*d0LvY zxNpC5vfS4BUrSP}!pK)g9ZiI*MOK6oY{&AGL{G&q#%B9bm-_B15u)D`8Mdp?wzuuy zA(wqQZe8QiBcIZ&>N22tgg7#Bk>l{NMz2QnJ?kS&Xpc0mnj66u)3OTrBF57}MvJCM zFdOY~{Wf;*-m^d3qdh=&%Y|Om!hXM4^dCfd2Ix-qw_&#@#)LxjskSOSRKWXg;nEi>Hx*ZwP-}DigeHr$$N9WP1 z4Y~SHz@tL@U4wRxCk?{Jnf{wuaT*)>5~S!rIpYia_?*$#U^+>?)~GVYcqq`yy9{O<3`9OGhzikkK3zv zuVUnY}mW1DLj)}?SZF7uygBs2U48)(UmCj5cM{d!zKuopcaFVwS88Q zbTl!w6O8=xJ6FK%{*#MiXN8aX|FS+Y+$$~}eDo;nGYP7(KQI94Gx8>zSsxkV-F#BR z`)0(E^bzq2*jepjqY=RXP;5rtzEC>kE88XBG$vCLbxB-*Y3^l6z{uq)j>nSLgxTPT zCP$>@1Ho=)DDSx6U-@jC`S3FV63Yk?SJYvk&l|whn3c;p*loLTi;C0GcN&zLWVdLc z_{@}6?jHF{iAm2mTeb~z?dG0!ErjyTS*k3k+VO5w`w34c-4Lv^_d?54?6$DMr^H4%kI%J^mqwA%D<*N=?j`~GS z$`?}Ko1A}RJ_HOx0A=m>G+zTEvD}HA+}v`kj_Pc=(B=#|d8(G+sM;0V@&p%%Ube`7 z5>!FpD6fc7=@dSp1%jPWO>dAjpqvN->FGOML3`wD4^b<+K_RUc7QnDh{1bdPjt6#^ zC1|}9n6r$NM11N6d(3RAz3a6LL*SdZO~~5iZVu!j?LZ1l3EfQZ|C{sA=lmm;KQ#rQY-MVs(nGsRwPv~K}ATkj$kv8S?Ml5SpOi!P^ zI$!sgX3*)}2)7r&;UlaoZcK%{mAPObwTmyh%s&6~mdV_JjhTt$8-@`>T9ilfjp2GYn5QM9 zDOk=VVAFd1!WB9U=94ecz{Gjl$|$PX?wTz99*aTj!qlxeVp#j8z1ez%#3pb1+wtkw zp7QTT`FxF;(oM`NJT()9GR`@n=8erE#1+MSc213lK*z8GJR&K)w#D>WkJWgD(s+YqTa{Odteqy^y%tFZYSBNFir{g*jdHmmQ-BRt#*}BJRz%^Of2a7$J#;&@_tgF7YiMUpGd8ElWh~Ms{fh$RX4wLN5sy z4k5w**1wzi+r=0p9Nc#0aU&xJrS_JgPb;&e5W1stv=OSlM5@i-v01~KX!;0+u!llD zokA_MmFj)G47~&Jzf@soGj@VA(rjul^*t}N4sXN6C5mJV_Gwf2MVS{#L($Vu#j+pg z)RnvE78S*N0?dlZ&TF*;5NjPEjKZ^y6ezBdoEM$cs>fjELATvOAP&h%px^i}oWr@n z70BnBLh7=c!me|_tc7BRHR2V z8k7Ay-#c7xm}Bj3^ZEZOakqTfJR0JniZTfN&gEe#y$TJrzm(NeL`?@IPWuhYCdu1L zO|jbE)mt-kLjP%3#W-i_=1M>?WU%%^%v#f_u83KA%%MEsJ6FL@?9sz3<5&M$_RR1x zj{7UXYSguMVagnu)pDosjdeKL`Xfspq!SEN>e277FQpeb^|gg*yS#Ab)jgrq>&_p$ zoaJ2lCC*Rw!7l$Pzx?wR9f4G5X}7t=mm^VFTzTZpLUV+E2O*P(H`7`3ckB9}NcOW0 zwBDiBA|HxR4*1H;^zoV~`qkY(luJ=jpkBAs&-!vz2HoH^4KLY9*~C1L#aDVPy+tZQ*b&VeVYxKlXh1rm=ejW@{T{5olr~TCSAfZc z-@$*1*xlqn(257sJ;tCgtsm^N0zP7Ius9*;sq^ z&iRD?W;N{zvao;3*Bb_{5uP?I)T(r5n0rL7?Y`oz^W_y_`P1tn$ce)&I;rz{J*@8YEzYA>m7i(w8_vL+nn^aLBITrczVh-1;TX)php&c-N$okG zllCJ=&VhysG!dG1QwwnFXBRy@+3TmCJ5S2+4)%3$GF4ILqIzoka0L;fQK-``DvVh+ zP$#kfsXe+zyVC5ZdgzegUFTxCikiH{lBpPxjoJYRw0G>NccuY^&O~r@rC!KZq2Vk0 z&rw#j-?@aRglt(gCZ(zwwmy82#@Z{@gt_$JJwQmPG_{%_)K2EyYhabuctsB*0fT*> zYUIGm{9kv9cqy|QGpJT=K2o-L8G0IF*pCWIB|k}hoFAv*EGSOsN2SLVJF){@IAo&r z?_BdOCqb9w%bD5zW|D&r&J{2PUki_p^`MO*2PYN(U^7<}VRtvz7xC5FlM29pnMFcF zf0>AXe~Xv)&TH(77=S`IC5kzdgjbOsYBplO}x`b%)3uIe1nl-}NIdWbL96_ox%dQ<^ zU`RSXv1={WGQ4&ur98G!T-~oCB#+P6C*M1U2Gf0S41yqC7i5la zD7>;yYh9GVf|8-)>OzU}O;{}q#(HfD;>Fj@r}1pfxOQ@l0?>BKLd~0nV$+0%yU$4{ z;XMuGcOvtJ9cf1NT}0D%SB&auX;}Lk@2gU;W`|)gz}wnEDaVQz6b7@<`5{%oLpqIj4?V5Z!QR9!`MUotBY*GIu%H#L?it9Yq$E>Q<@xypRLCW?wxD5)c-Z|ti6L0Xx zLAlR242i>Towp!h~AMgsabkhQGL{LaN}_O4`lP?mes zN^b1u*&mq@wX4#qvxM^>vw)?6g{{JLb+M^Z{oS@(GDGY)076v5-tX8O_UD?3?>)k_ zFAwjuudIky%dYbMQLU?pS8*-Q>&>eF8@n9=edWplZ=9c|MK3-P`r%yx2l2JLo z(AYEMaUpm7OYeLUZGbi`NeF-gUrre5=A>aA30^_62Y;RD&2?DYp@{lU1KKJ=O1kIE z>xs&c=BEWIfncH02~?UObV5&WZA|^)ohfaxlrIN%?(d(9>+p<54($el^xqKK zsbHRM$^fSLsJ|y-mje#r+;AVZ`>gMkKi%I?@i_DPmG{3XF>;!Ju6&kfcZB&S3x#7@ z&365R{hKSwy3@ZOGpu+VPSeCgfHocV@=(9fEs zP2FR8fVj61jzy#CwA0Tdf7pUeV)E=Yp+V}JQlACDsrHyE0nWWhdG4j^tJi)P;UJgL ze=n$yyD@w4bHcj*I!!0`1_-oT)^0gTcFJ3r>>O}&Z#DDWZ30sL#tXf3hNa86e%M(0 z@6Y>RukbWeVHx%w@y+(?_Vt7`jZ0C{nYK-lgEERA;&F!)L<^t|f{uvP5q@0JrAQVt z6TK1b4`MGW7TXRTP`W>gM-36j15i%;Kb12ya`UV=AJ-eF4q9tw>+iz0MKuCh!`nl< zC#5bH;bBzzGsw!Uo05y0f9y9-?YF)Nhwf9pRChp$xwOV!O=%U`weV7Naf@Q=XZIwI zO7{3~Q2av|B$x~PQ7UwrVIpA~x6(R!#;wSmX!iJ5rP1!3<6T#U^&qg2bMT?S109nS; zg!Q1Y*+&ebR5h$HeGHabJ7VmK|1u&G9^`l0+7i@ufNf=HX50DcFjN;WBr`oLg}jDS zl4EVqJzL!jN32r!o=b6l9yQwTz+x+Bile5@aJI5owyPyTDWGU>UUT{%pYqf~|13afTCLX113O&$eT@~UnoHq>_L?)D9xtU#(9f~vdvuK~@D zD5yOlFdKOgULBQ_w6Tl8{;~-gQ2EJ_WIdulWGUv`L{uV%tR7jSccNX^*Ma7JpyRts z!<9NsL9?}?hKk{BYk*LQsFW#L(Kt^?eK1AsTbI~$7g94wx!;N>rtjw!ai?$VQ5I1CKF|Lj%gBE^`>UbLWhv{@ zZuSZJvk_N{Reiw&$#pAI-x&JLQ*9E4A$vO9z6jDqI|$uVQ#2XhNmP?41_zqQbE%I{ z*7$ATn?k4irGVu^UU!@;Lv8xj4%-}a_J?_I`vNp{jGD&lX`WFjK|UY@S|@s4#2D&( zo{?C2eMRBx<2H@=LZ;e#6w=wGX(7Pm#+u>DtMp#ybr>Rfd3}ZD$aTSc^Vj}U;E37# zsoHhp&FQi&p+;nL*wa%Iw_h1h({XoOI`U=#fG-S+Xt`>kFjIRRvf8dPEzeZ-HZuzU z`0n*`lj@A5PjO3?II`LLb2CdeEH#l4X^#_EuXHPhQNM7huaKazzse6SXU4p=s1;WD z>EeUh4X0{h64b!K?7UBE8lf0TgsNq_+29gn^XWSqb3nhIMo|pRZ171#2vggBd}dV$D@SosljfS9U)KNq5g7hywT`~jgwHbxR^e5~ zi4N@P4O7%Pt~QYK@@V(-3knl4%-})(iOkAyVXJpFQ}@E}2tK7(!CyVP>kz@=KE&_! zNaTGA&FXZR{Jd-*R!|tT4Yg#PT#G!OEv{X@jp5Mj^i*bK-&J-J+`H~p@{L^l#J0OE z|9W+!c}rp($%2Dj*gKkUxww;P$VM+}g2$KDQ2l2MBh2?A17i-*bMUt>?)YY`>Pw{e zrQ&xuxrzf*SVghKs8Ex)c~#}djm)X?Cpp-G`@L73Bu9?c{mNdCj@Go#xhNP3OBUwM zAJsK}Y2f1ii`vt;;uhS(GdVmm=G(A%pK*Q6?_ly{$Y5(^y$mhF8cL~v4}J~=ixJnp z%pv5Sjyx6g<7;vHx^RHj#n~zc-7@nLxajDAwa&u~M{#QKzxpc8x)Wt?UkML~3rz!h z!Kt6&CP!RNEfD5_nX^%hIrN4)=DxqeaT1J+5p3TT*cH^M)FGEKH5fo0Rk#6q zvr9(14-C?h{cSRZ3Micgc#O0*gS)0q{@q-)4}T;4X#cUph4!75bm;{09}tbyb(|dz zCbT3OOc<{rYJ8`q$lB35 z=DWlV7h6T$mlh=WBq3yb!cx$0T(Xdzy{O4PJEfD?ztXd>4<+;C{BE{w@^rS-QSgDg zj(yR@ZH{~;wTY@GZ4H>9km9ROT{j=M`KGiZdzzwV?7Oj|DRhmu?Z>?t~PV}NKcA(rKx%|eO;z8;-2CKLHXnLSs zLvIDqS*?B&P&jCIo{=2;sS%=fF0@U%=!dTNM{p<7`r1(6USb*08(zF6EdIHdKdrbi z2f42uy|Dd^OJtw+w2mFp(wMw$uR2-EA8ptQF!mgtB&IukeT&X}*SGC%j&t{VH02obE z3$$H`wc$vqYdOh9_DPdAYn71^!_i-#D)8mHY_hJ%j9eC918jAfl2?gwnQPgTuVCU( zKr{SFX+Dl;QV~f69Rs_$tS^x&575&AfDiJ=W*t6)K#*9gf-5EXMy<+vU<9OE!@OR- z2~nv}D4DI6740yl=cN>ncLa}#nH7&DlcM#8;92rk5093k(dkUMyLnWdy0t0*30{KF zfe^)3j!pP1xgRdC&Ytg8>F~*mehveYhfh##aC>7G6x3$<9&aN3NUO78L7gYDSHlt4 z;s4_5vg-71px~x7gBC;k=G^nb{eU1}N2sqKXc?EWl6S1>^hr|I9k1CB|V(aMELual`NHd@cHa@WK?j8>>^pMBK;qf4DWD z3{Uf3mJs>tXS(W(r#)NTcdXO2FzNEe*wRXfTFTQbKIh(8FGZSwY~K}sjAxx)ja;jN ziiOpxJq}U#A(Qnf)7o*S7SP<|n`r2cOsx`1xMc(Jb}av-FD(y4Am{xa{Fo3H`PktT zlNzIFk1ZZ<`A0_R_?5e0Fo2z9j;h*pIzBY}LP>H2|ak@^<*931(+14u`7TbGqXexQ_&;M(_c0qEw z>u|FE*&@|1?TyM3bFIBB9hOHsOu$-fH#du5-dB-eUbMq( zZ%~a5>*Us2gqIOkP;cz-ppb=@Tc|$Em2^jDwRDf&SnB*yg(+3G z@|fwDVOv>8Zw#hS{xyn|y~CObQXaGrJujbjR{|lCvq#~>GxR_pkag8+y*W9FzcbWD z>*i$ZjV5=VR}Q zVxaJ!j7!5VenF|H%5kFu)sqPG(ya*;GOA9|;%C~`Sgf}EVyRa1Evf)6WG#S!>|GFY zQ_UW&S=130lhTm0sgv$aqlUi)F9=9K3_++(WjSXl6>3dCxNvJ@d~o7B*9H3iPd52q z4=-x-t=x}xsxu*0!}NzgEPyKWx#`0t$um9s`Si%HZAC7w2ggh%*?DnqJ9YE%u;K_l-|?9Ypo1P;@S&iQ8wl>cC%DqOc_GT`HH6YOU1{kU{U-lfqb zqJimM;zPuwE*gOaQu~8!ZgSbH5EHW5zNZpKf{f zkIBmI{yH*5wZB~_i7H$*5~~dL++eVrySn<{T)5J&&Ee)&&A53pho87NxaOLf$q&Hn z;S7=5K&ugha2&4Gt~eF#?i0(it7suBl1K#3U-lGi@*P+fOLGV+QXW$%pANny{5G-6 zx~Acf`iSA)% zra`*SufJM>mqDshtqC*xVslGDC`90tGa8D`Tx@>3bk)kLMV8d#6Uwh?LcS#Tc8Ezn zZw`&rmb2`WH&s}g`5j)c>{c*bl-8v@Wm&|2CbDC zUy}hx=FZVj+fkoh@MbPAL$}ZcdQ9E%IFC|0=O>j%$LW@H)YhWTiU!6P^=<>dw?NnG ztgB^Y=x#YR`)|1Qot#fIiHARa^2`wvE*~X2Unz702{gsf#EtWV-R~So8P55n7UwUs zX~~G_wTCh%`XMilC!eLvwe#luDF07gV?9!#>-Wzp>jqWH5xW*5sX(Vc^+p%m#HO;z zB1If9x^=x@htK$I!V3B7PDldZ6=x3c%M-`9)8?&%@a(3!^~&j{-w^C7;uYsb%O z?enwQ*+F(9JGpUQ+*Sjw8GLMeSr1{S?&}aGHj+MMo-;dt`g3Jq!Lnp1u!GBb?S=P( zZvsna0k7w5;6PtwzXbdVyVjw%XYR^v$fLZ2i^&SjD`Y7V;8OQl52sT;oUpS zc9z=n4Pg{2H`*;Be4NXwIEyew$VrT@R~8yQ34p0}*`wm^B>M3QBN`ipT@DHp`s}*n zibHJ$>{GLSo1Nx0=)$akDfh_Yu*2hd`kTIU;epcwL<0?=YcK#z0)?9RJwBJ`-$phF zKOPzs4e8k1&s_Gri>)4HI4K?igqS3OpqKuDH{tNUJcgcO`a989_iWsWgq3P^x3b-i zbZpqvLV(k+^j+RxDXzK?pf$qvMs`-03#~CVWh#jFIm951ZwVRc$XOJmf@v4HEZ6AX zWer_;s!7Y_#X$#T?{_Zm_m3>nzjEeO@@+$bpZ4WsZ(aKQ*%!2FI34~u>KUb~rL+@$ zQW>F{KXhd5DD2m$GgRTP&|q;+n&uT^U^z}S-RAKKWK5QrXMorhq1^akij`1({13(_ z=A6<6sAdw)+)NS!1bnV;SP!AV-?gvq^2$}ZTbB$PnD^b&2M#qSl9qvbP(_^ov%TT^ z>(#1rUHOnKmV051cu9hE##9MHF(_1PyYEx?^E=#Bd#l+BbyZWz~(IsOtq_EsY&)?B38-#6}#_oukP7aAw- z_zqf_`5_0a2u@bALc~}2fS8G>TkCDPfNi!n*m$cjY zX(Qa{fh+FZi-7B#AO9pL!iC>Fb46c*p!42eLVeijx6Yjx%=5$C75TS0s5yt|Y0=ER zav8~eJLN?^IHQVoT`$%&O73a-UceA%tg?iM^aA__XZ%B%zCNbqeX`5V*}l~>IdeYB zrR^FEU+RFM6hb^zq*Zq)s!J(>U2_QPU>!xCu-z~7xI7py|Iq6)rCRp;0Y zW;nihvFDMzD!uQwTxF2bh;rzFd!+r4B-Qd>#EI&*^rKvQCC8HWI_kQov<$mw0XB>gQom{_6>6N zPT>#+4Zd^T**mT}i@i`8*n6F_Hn$LaU{O;aU3pPWtkY)Y_$|webW=vD_@OkBUZ@fwle2J8w(H3N0rODYq-r{fo{=3IDPK4s0UT@2(PBO)1 zC8fxL9+jk4+fU|T(3vAU~tc^4+iwFo2=u5VVHJP4aA_Iacd2nxHQakf)>3 znSKYkt@|@7JZfD)Erpx`nFLa(?kx%0c(>`|*HC zfYi$leY(BSoq;>9{vUK?2&{i?3seS!!7etp{(8bMuifFj*%WiZ{nz6G<1>DvITy0T z$hY}3Nsg7Bhv&-kbM1{