Skip to content

Commit

Permalink
choose between gce and aws cloud providers
Browse files Browse the repository at this point in the history
  • Loading branch information
Smaine Kahlouch committed Mar 23, 2016
1 parent f499264 commit 68fafd0
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 13 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ script:
-e cloud_region=${CLOUD_REGION}
# Create cluster
- "$HOME/.local/bin/ansible-playbook -i inventory/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} cluster.yml"
- "$HOME/.local/bin/ansible-playbook -i inventory/inventory.ini -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root -e cloud_provider=gce $LOG_LEVEL -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} cluster.yml"
# Tests Cases
## Test Master API
- $HOME/.local/bin/ansible-playbook -i inventory/inventory.ini tests/testcases/010_check-apiserver.yml $LOG_LEVEL
Expand Down
5 changes: 5 additions & 0 deletions inventory/group_vars/all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,11 @@ dns_domain: "{{ cluster_name }}"
skydns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(3)|ipaddr('address') }}"
dns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(2)|ipaddr('address') }}"

# There are some changes specific to the cloud providers
# for instance we need to encapsulate packets with some network plugins
# If set the possible values are either 'gce' or 'aws'
# 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
Expand Down
10 changes: 3 additions & 7 deletions requirements.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
---
- src: https://gitlab.com/kubespray-ansibl8s/k8s-common.git
- src: https://gitlab.com/kubespray-ansibl8s/k8s-dashboard.git
path: roles/apps
scm: git

- src: https://gitlab.com/kubespray-ansibl8s/k8s-kubedns.git
path: roles/apps
scm: git

- src: https://gitlab.com/kubespray-ansibl8s/k8s-kube-ui.git
- src: https://gitlab.com/kubespray-ansibl8s/k8s-common.git
path: roles/apps
scm: git

- src: https://gitlab.com/kubespray-ansibl8s/k8s-fabric8.git
- src: https://gitlab.com/kubespray-ansibl8s/k8s-kubedns.git
path: roles/apps
scm: git

Expand Down
5 changes: 5 additions & 0 deletions roles/kubernetes/preinstall/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@
owner: kube
when: ansible_service_mgr in ["sysvinit","upstart"]

- name: check cloud_provider value
fail:
msg: "If set the 'cloud_provider' var must be set eithe to 'gce' or 'aws'"
when: cloud_provider is defined and cloud_provider not in ['gce', 'aws']

- name: Create cni directories
file:
path: "{{ item }}"
Expand Down
4 changes: 3 additions & 1 deletion roles/network_plugin/calico/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
---
# Enables Internet connectivity from containers
nat_outgoing: true
# cloud_provider: no

# cloud_provider can only be set to 'gce' or 'aws'
# cloud_provider:
6 changes: 3 additions & 3 deletions roles/network_plugin/calico/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,19 @@
- name: Calico | Configure calico network pool
command: "{{ bin_dir }}/calicoctl pool add {{ kube_pods_subnet }}"
run_once: true
when: calico_conf.status == 404 and (cloud_provider is not defined or cloud_provider != 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))

- name: Calico | Configure calico network pool for cloud
command: "{{ bin_dir }}/calicoctl pool add {{ kube_pods_subnet }} --ipip --nat-outgoing"
run_once: true
when: calico_conf.status == 404 and cloud_provider is defined and cloud_provider == True
when: calico_conf.status == 404 and cloud_provider is defined

- name: Calico | Configure calico network pool with nat outgoing
command: "{{ bin_dir}}/calicoctl pool add {{ kube_pods_subnet }} --nat-outgoing"
run_once: true
when: calico_conf.status == 404 and (cloud_provider is not defined or cloud_provider != True)
when: calico_conf.status == 404 and cloud_provider is not defined
and nat_outgoing|default(false) and not peer_with_router|default(false)

- name: Calico | Get calico configuration from etcd
Expand Down
2 changes: 1 addition & 1 deletion tests/support/aws.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def install_cluster(inventory_path, credentialsId, network_plugin) {
extraVars: [
kube_network_plugin: network_plugin
],
extras: "-e '{\"cloud_provider\": true}'",
extras: "-e cloud_provider=aws",
colorized: true
)
}
Expand Down

0 comments on commit 68fafd0

Please sign in to comment.