Add opencontrail networking provisioning support in kubernetes salt based provisioning
OpenContrail is an open-source based networking software which provides virtualization support for the cloud. This change-set adds ability to install and provision opencontrail software for networking in kubernetes based cloud environment. There are basically 3 components o kube-network-manager -- plugin between contrail components and kubernets components o provision_master.sh -- OpenContrail software installer and provisioner in master node o provision_minion.sh -- OpenContrail software installer and provisioner in minion node(s) These are driven via salt configuration files One can provision opencontrail by just setting "export NETWORK_PROVIDER=opencontrail" Optionally, OPENCONTRAIL_TAG, and OPENCONTRAIL_KUBERNETES_TAG can be used to specify opencontrail and contrail-kubernetes software versions to install and provision. Public-IP Subnet provided by contrail can be configured via OPENCONTRAIL_PUBLIC_SUBNET environment variable At this moment, plan is to add support for aws, gce and vagrant based platforms For more information on contrail-kubernetes, please visit https://github.com/juniper/contrail-kubernetes For more information on opencontrail, please visit http://www.opencontrail.org
This commit is contained in:
@@ -107,5 +107,10 @@
|
||||
{% set test_args=pillar['kubelet_test_args'] %}
|
||||
{% endif -%}
|
||||
|
||||
{% set network_plugin = "" -%}
|
||||
{% if pillar.get('network_provider', '').lower() == 'opencontrail' %}
|
||||
{% set network_plugin = "--network-plugin=opencontrail" %}
|
||||
{% endif -%}
|
||||
|
||||
# test_args has to be kept at the end, so they'll overwrite any prior configuration
|
||||
DAEMON_ARGS="{{daemon_args}} {{api_servers_with_port}} {{debugging_handlers}} {{hostname_override}} {{cloud_provider}} {{config}} {{manifest_url}} --allow-privileged={{pillar['allow_privileged']}} {{pillar['log_level']}} {{cluster_dns}} {{cluster_domain}} {{docker_root}} {{kubelet_root}} {{configure_cbr0}} {{cgroup_root}} {{system_container}} {{pod_cidr}} {{cpu_cfs_quota}} {{test_args}}"
|
||||
DAEMON_ARGS="{{daemon_args}} {{api_servers_with_port}} {{debugging_handlers}} {{hostname_override}} {{cloud_provider}} {{config}} {{manifest_url}} --allow-privileged={{pillar['allow_privileged']}} {{pillar['log_level']}} {{cluster_dns}} {{cluster_domain}} {{docker_root}} {{kubelet_root}} {{configure_cbr0}} {{cgroup_root}} {{system_container}} {{pod_cidr}} {{cpu_cfs_quota}} {{network_plugin}} {{test_args}}"
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
opencontrail-networking-master:
|
||||
cmd.script:
|
||||
- unless: test -f /var/log/contrail/provision_master.log
|
||||
- env:
|
||||
- 'OPENCONTRAIL_TAG': '{{ pillar.get('opencontrail_tag') }}'
|
||||
- 'OPENCONTRAIL_KUBERNETES_TAG': '{{ pillar.get('opencontrail_kubernetes_tag') }}'
|
||||
- 'OPENCONTRAIL_PUBLIC_SUBNET': '{{ pillar.get('opencontrail_public_subnet') }}'
|
||||
- 'SERVICE_CLUSTER_IP_RANGE': '{{ pillar.get('service_cluster_ip_range') }}'
|
||||
- source: https://raw.githubusercontent.com/juniper/contrail-kubernetes/{{ pillar.get('opencontrail_kubernetes_tag') }}/cluster/provision_master.sh
|
||||
- source_hash: https://raw.githubusercontent.com/juniper/contrail-kubernetes/{{ pillar.get('opencontrail_kubernetes_tag') }}/cluster/manifests.hash
|
||||
- cwd: /
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 755
|
||||
- shell: /bin/bash
|
||||
@@ -0,0 +1,15 @@
|
||||
opencontrail-networking-minion:
|
||||
cmd.script:
|
||||
- unless: test -f /var/log/contrail/provision_minion.log
|
||||
- env:
|
||||
- 'OPENCONTRAIL_TAG': '{{ pillar.get('opencontrail_tag') }}'
|
||||
- 'OPENCONTRAIL_KUBERNETES_TAG': '{{ pillar.get('opencontrail_kubernetes_tag') }}'
|
||||
- 'OPENCONTRAIL_PUBLIC_SUBNET': '{{ pillar.get('opencontrail_public_subnet') }}'
|
||||
- 'SERVICE_CLUSTER_IP_RANGE': '{{ pillar.get('service_cluster_ip_range') }}'
|
||||
- source: https://raw.githubusercontent.com/juniper/contrail-kubernetes/{{ pillar.get('opencontrail_kubernetes_tag') }}/cluster/provision_minion.sh
|
||||
- source_hash: https://raw.githubusercontent.com/juniper/contrail-kubernetes/{{ pillar.get('opencontrail_kubernetes_tag') }}/cluster/manifests.hash
|
||||
- cwd: /
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 755
|
||||
- shell: /bin/bash
|
||||
@@ -17,7 +17,11 @@ base:
|
||||
- cadvisor
|
||||
- kube-client-tools
|
||||
- kubelet
|
||||
{% if pillar.get('network_provider', '').lower() == 'opencontrail' %}
|
||||
- opencontrail-networking-minion
|
||||
{% else %}
|
||||
- kube-proxy
|
||||
{% endif %}
|
||||
{% if pillar.get('enable_node_logging', '').lower() == 'true' and pillar['logging_destination'] is defined %}
|
||||
{% if pillar['logging_destination'] == 'elasticsearch' %}
|
||||
- fluentd-es
|
||||
@@ -72,6 +76,9 @@ base:
|
||||
- docker
|
||||
- kubelet
|
||||
{% endif %}
|
||||
{% if pillar.get('network_provider', '').lower() == 'opencontrail' %}
|
||||
- opencontrail-networking-master
|
||||
{% endif %}
|
||||
|
||||
'roles:kubernetes-pool-vsphere':
|
||||
- match: grain
|
||||
|
||||
Reference in New Issue
Block a user