parent
dc515e5ac5
commit
ef47a73382
12 changed files with 1495 additions and 6 deletions
|
@ -61,6 +61,7 @@ before_script:
|
|||
KUBELET_DEPLOYMENT: "host"
|
||||
VAULT_DEPLOYMENT: "docker"
|
||||
WEAVE_CPU_LIMIT: "100m"
|
||||
EXTRA_SETTINGS: "{}"
|
||||
MAGIC: "ci check this"
|
||||
|
||||
.gce: &gce
|
||||
|
@ -132,6 +133,7 @@ before_script:
|
|||
-e weave_cpu_requests=${WEAVE_CPU_LIMIT}
|
||||
-e weave_cpu_limit=${WEAVE_CPU_LIMIT}
|
||||
-e "{kubeadm_enabled: ${KUBEADM_ENABLED}}"
|
||||
-e "${EXTRA_SETTINGS}"
|
||||
--limit "all:!fake_hosts"
|
||||
cluster.yml
|
||||
|
||||
|
@ -161,6 +163,7 @@ before_script:
|
|||
-e weave_cpu_requests=${WEAVE_CPU_LIMIT}
|
||||
-e weave_cpu_limit=${WEAVE_CPU_LIMIT}
|
||||
-e "{kubeadm_enabled: ${KUBEADM_ENABLED}}"
|
||||
-e "${EXTRA_SETTINGS}"
|
||||
--limit "all:!fake_hosts"
|
||||
$PLAYBOOK;
|
||||
fi
|
||||
|
@ -198,6 +201,7 @@ before_script:
|
|||
-e "{kubeadm_enabled: ${KUBEADM_ENABLED}}"
|
||||
-e weave_cpu_requests=${WEAVE_CPU_LIMIT}
|
||||
-e weave_cpu_limit=${WEAVE_CPU_LIMIT}
|
||||
-e "${EXTRA_SETTINGS}"
|
||||
--limit "all:!fake_hosts"
|
||||
cluster.yml;
|
||||
fi
|
||||
|
@ -246,6 +250,7 @@ before_script:
|
|||
-e "{kubeadm_enabled: ${KUBEADM_ENABLED}}"
|
||||
-e weave_cpu_requests=${WEAVE_CPU_LIMIT}
|
||||
-e weave_cpu_limit=${WEAVE_CPU_LIMIT}
|
||||
-e "${EXTRA_SETTINGS}"
|
||||
--limit "all:!fake_hosts"
|
||||
cluster.yml;
|
||||
fi
|
||||
|
@ -323,13 +328,17 @@ before_script:
|
|||
CLUSTER_MODE: default
|
||||
STARTUP_SCRIPT: ""
|
||||
|
||||
.centos7_flannel_variables: ¢os7_flannel_variables
|
||||
.centos7_flannel_addons_variables: ¢os7_flannel_addons_variables
|
||||
# stage: deploy-gce-part2
|
||||
KUBE_NETWORK_PLUGIN: flannel
|
||||
CLOUD_IMAGE: centos-7
|
||||
CLOUD_REGION: us-west1-a
|
||||
CLOUD_MACHINE_TYPE: "n1-standard-1"
|
||||
CLUSTER_MODE: default
|
||||
EXTRA_SETTINGS: >-
|
||||
{ helm_enabled: true,
|
||||
istio_enabled: true,
|
||||
efk_enabled: true }
|
||||
STARTUP_SCRIPT: ""
|
||||
|
||||
.debian8_calico_variables: &debian8_calico_variables
|
||||
|
@ -440,24 +449,24 @@ coreos-calico-sep-triggers:
|
|||
when: on_success
|
||||
only: ['triggers']
|
||||
|
||||
centos7-flannel:
|
||||
centos7-flannel-addons:
|
||||
stage: deploy-gce-part2
|
||||
<<: *job
|
||||
<<: *gce
|
||||
variables:
|
||||
<<: *gce_variables
|
||||
<<: *centos7_flannel_variables
|
||||
<<: *centos7_flannel_addons_variables
|
||||
when: on_success
|
||||
except: ['triggers']
|
||||
only: [/^pr-.*$/]
|
||||
|
||||
centos7-flannel-triggers:
|
||||
centos7-flannel-addons-triggers:
|
||||
stage: deploy-gce-part1
|
||||
<<: *job
|
||||
<<: *gce
|
||||
variables:
|
||||
<<: *gce_variables
|
||||
<<: *centos7_flannel_variables
|
||||
<<: *centos7_flannel_addons_variables
|
||||
when: on_success
|
||||
only: ['triggers']
|
||||
|
||||
|
|
|
@ -151,6 +151,9 @@ efk_enabled: false
|
|||
# Helm deployment
|
||||
helm_enabled: false
|
||||
|
||||
# Istio depoyment
|
||||
istio_enabled: false
|
||||
|
||||
# Make a copy of kubeconfig on the host that runs Ansible in GITDIR/artifacts
|
||||
# kubeconfig_localhost: false
|
||||
# Download kubectl onto the host that runs Ansible in GITDIR/artifacts
|
||||
|
|
|
@ -38,6 +38,11 @@ kubeadm_download_url: "https://storage.googleapis.com/kubernetes-release/release
|
|||
# Checksums
|
||||
kubeadm_checksum: "9f4b9cf255d5ef45481d5a1b20bfe84c1d633d67cd50eeaa5c8712fb8fc1bd5b"
|
||||
|
||||
istio_version: "0.2.6"
|
||||
|
||||
istioctl_download_url: "https://storage.googleapis.com/istio-release/releases/{{ istio_version }}/istioctl/istioctl-linux"
|
||||
istioctl_checksum: fd703063c540b8c0ab943f478c05ab257d88ae27224c746a27d0526ddbf7c370
|
||||
|
||||
# Containers
|
||||
etcd_image_repo: "quay.io/coreos/etcd"
|
||||
etcd_image_tag: "{{ etcd_version }}"
|
||||
|
@ -132,6 +137,15 @@ downloads:
|
|||
unarchive: false
|
||||
owner: "root"
|
||||
mode: "0755"
|
||||
istioctl:
|
||||
version: "{{ istio_version }}"
|
||||
dest: "istio/istioctl"
|
||||
sha256: "{{ istioctl_checksum }}"
|
||||
source_url: "{{ istioctl_download_url }}"
|
||||
url: "{{ istioctl_download_url }}"
|
||||
unarchive: false
|
||||
owner: "root"
|
||||
mode: "0755"
|
||||
hyperkube:
|
||||
container: true
|
||||
repo: "{{ hyperkube_image_repo }}"
|
||||
|
|
32
roles/kubernetes-apps/istio/defaults/main.yml
Normal file
32
roles/kubernetes-apps/istio/defaults/main.yml
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
istio_enabled: false
|
||||
|
||||
istio_namespace: istio-system
|
||||
istio_version: "0.2.6"
|
||||
|
||||
istioctl_download_url: "https://storage.googleapis.com/istio-release/releases/{{ istio_version }}/istioctl/istioctl-linux"
|
||||
istioctl_checksum: fd703063c540b8c0ab943f478c05ab257d88ae27224c746a27d0526ddbf7c370
|
||||
|
||||
istio_proxy_image_repo: docker.io/istio/proxy
|
||||
istio_proxy_image_tag: "{{ istio_version }}"
|
||||
|
||||
istio_proxy_init_image_repo: docker.io/istio/proxy_init
|
||||
istio_proxy_init_image_tag: "{{ istio_version }}"
|
||||
|
||||
istio_ca_image_repo: docker.io/istio/istio-ca
|
||||
istio_ca_image_tag: "{{ istio_version }}"
|
||||
|
||||
istio_mixer_image_repo: docker.io/istio/mixer
|
||||
istio_mixer_image_tag: "{{ istio_version }}"
|
||||
|
||||
istio_pilot_image_repo: docker.io/istio/pilot
|
||||
istio_pilot_image_tag: "{{ istio_version }}"
|
||||
|
||||
istio_proxy_debug_image_repo: docker.io/istio/proxy_debug
|
||||
istio_proxy_debug_image_tag: "{{ istio_version }}"
|
||||
|
||||
istio_sidecar_initializer_image_repo: docker.io/istio/sidecar_initializer
|
||||
istio_sidecar_initializer_image_tag: "{{ istio_version }}"
|
||||
|
||||
istio_statsd_image_repo: prom/statsd-exporter
|
||||
istio_statsd_image_tag: latest
|
4
roles/kubernetes-apps/istio/meta/main.yml
Normal file
4
roles/kubernetes-apps/istio/meta/main.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
dependencies:
|
||||
- role: download
|
||||
file: "{{ downloads.istioctl }}"
|
45
roles/kubernetes-apps/istio/tasks/main.yml
Normal file
45
roles/kubernetes-apps/istio/tasks/main.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
- name: istio | Create addon dir
|
||||
file:
|
||||
path: "{{ kube_config_dir }}/addons/istio"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
recurse: yes
|
||||
|
||||
- name: istio | Lay out manifests
|
||||
template:
|
||||
src: "{{item.file}}.j2"
|
||||
dest: "{{kube_config_dir}}/addons/istio/{{item.file}}"
|
||||
with_items:
|
||||
- {name: istio-mixer, file: istio.yml, type: deployment }
|
||||
- {name: istio-initializer, file: istio-initializer.yml, type: deployment }
|
||||
register: manifests
|
||||
when: inventory_hostname == groups['kube-master'][0]
|
||||
|
||||
- name: istio | Copy istioctl binary from download dir
|
||||
command: rsync -piu "{{ local_release_dir }}/istio/istioctl" "{{ bin_dir }}/istioctl"
|
||||
changed_when: false
|
||||
|
||||
- name: istio | Set up bash completion
|
||||
shell: "{{ bin_dir }}/istioctl completion >/etc/bash_completion.d/istioctl.sh"
|
||||
when: ansible_os_family in ["Debian","RedHat"]
|
||||
|
||||
- name: istio | Set bash completion file
|
||||
file:
|
||||
path: /etc/bash_completion.d/istioctl.sh
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
when: ansible_os_family in ["Debian","RedHat"]
|
||||
|
||||
- name: istio | apply manifests
|
||||
kube:
|
||||
name: "{{item.item.name}}"
|
||||
namespace: "{{ istio_namespace }}"
|
||||
kubectl: "{{bin_dir}}/kubectl"
|
||||
resource: "{{item.item.type}}"
|
||||
filename: "{{kube_config_dir}}/addons/istio/{{item.item.file}}"
|
||||
state: "latest"
|
||||
with_items: "{{ manifests.results }}"
|
||||
when: inventory_hostname == groups['kube-master'][0]
|
|
@ -0,0 +1,84 @@
|
|||
# GENERATED FILE. Use with Kubernetes 1.7+
|
||||
# TO UPDATE, modify files in install/kubernetes/templates and run install/updateVersion.sh
|
||||
################################
|
||||
# Istio initializer
|
||||
################################
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: istio-inject
|
||||
namespace: {{ istio_namespace }}
|
||||
data:
|
||||
config: |-
|
||||
policy: "enabled"
|
||||
namespaces: [""] # everything, aka v1.NamepsaceAll, aka cluster-wide
|
||||
initializerName: "sidecar.initializer.istio.io"
|
||||
params:
|
||||
initImage: {{ istio_proxy_init_image_repo }}:{{ istio_proxy_init_image_tag }}
|
||||
proxyImage: {{ istio_proxy_image_repo }}:{{ istio_proxy_image_tag }}
|
||||
verbosity: 2
|
||||
version: 0.2.6
|
||||
meshConfigMapName: istio
|
||||
imagePullPolicy: IfNotPresent
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: istio-initializer-service-account
|
||||
namespace: {{ istio_namespace }}
|
||||
---
|
||||
apiVersion: apps/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: istio-initializer
|
||||
namespace: {{ istio_namespace }}
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
initializers:
|
||||
pending: []
|
||||
labels:
|
||||
istio: istio-initializer
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
name: istio-initializer
|
||||
labels:
|
||||
istio: initializer
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
spec:
|
||||
serviceAccountName: istio-initializer-service-account
|
||||
containers:
|
||||
- name: initializer
|
||||
image: {{ istio_sidecar_initializer_image_repo }}:{{ istio_sidecar_initializer_image_tag }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- --port=8083
|
||||
- --namespace={{ istio_namespace }}
|
||||
- -v=2
|
||||
volumeMounts:
|
||||
- name: config-volume
|
||||
mountPath: /etc/istio/config
|
||||
volumes:
|
||||
- name: config-volume
|
||||
configMap:
|
||||
name: istio
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1alpha1
|
||||
kind: InitializerConfiguration
|
||||
metadata:
|
||||
name: istio-sidecar
|
||||
initializers:
|
||||
- name: sidecar.initializer.istio.io
|
||||
rules:
|
||||
- apiGroups:
|
||||
- "*"
|
||||
apiVersions:
|
||||
- "*"
|
||||
resources:
|
||||
- deployments
|
||||
- statefulsets
|
||||
- jobs
|
||||
- daemonsets
|
||||
---
|
1285
roles/kubernetes-apps/istio/templates/istio.yml.j2
Normal file
1285
roles/kubernetes-apps/istio/templates/istio.yml.j2
Normal file
File diff suppressed because it is too large
Load diff
|
@ -34,3 +34,8 @@ dependencies:
|
|||
tags:
|
||||
- apps
|
||||
- helm
|
||||
- role: kubernetes-apps/istio
|
||||
when: istio_enabled
|
||||
tags:
|
||||
- apps
|
||||
- istio
|
||||
|
|
|
@ -44,6 +44,12 @@ kube_apiserver_admission_control:
|
|||
- ServiceAccount
|
||||
- DefaultStorageClass
|
||||
- ResourceQuota
|
||||
- Initializers
|
||||
- GenericAdmissionWebhook
|
||||
|
||||
# extra runtime config
|
||||
kube_api_runtime_config:
|
||||
- admissionregistration.k8s.io/v1alpha1
|
||||
|
||||
## Enable/Disable Kube API Server Authentication Methods
|
||||
kube_basic_auth: true
|
||||
|
|
|
@ -45,6 +45,8 @@ spec:
|
|||
{% endif %}
|
||||
- --tls-cert-file={{ kube_cert_dir }}/apiserver.pem
|
||||
- --tls-private-key-file={{ kube_cert_dir }}/apiserver-key.pem
|
||||
- --proxy-client-cert-file={{ kube_cert_dir }}/apiserver.pem
|
||||
- --proxy-client-key-file={{ kube_cert_dir }}/apiserver-key.pem
|
||||
{% if kube_token_auth|default(true) %}
|
||||
- --token-auth-file={{ kube_token_dir }}/known_tokens.csv
|
||||
{% endif %}
|
||||
|
|
|
@ -153,7 +153,7 @@ rbac_enabled: "{{ 'RBAC' in authorization_modes or kubeadm_enabled }}"
|
|||
|
||||
## List of key=value pairs that describe feature gates for
|
||||
## the k8s cluster.
|
||||
kube_feature_gates: []
|
||||
kube_feature_gates: ['Initializers=true']
|
||||
|
||||
# Vault data dirs.
|
||||
vault_base_dir: /etc/vault
|
||||
|
|
Loading…
Reference in a new issue