bloomberg/kubernetes-cluster-cookbook

View on GitHub
recipes/network.rb

Summary

Maintainability
A
0 mins
Test Coverage
#
# Cookbook: kubernetes-cluster
# License: Apache 2.0
#
# Copyright 2015-2016, Bloomberg Finance L.P.
#

if node['kubernetes']['secure']['enabled'] == 'true'
  etcdcmd = "etcdctl --peers=https://127.0.0.1:2379 --cert-file=#{node['kubernetes']['secure']['directory']}/client.srv.crt --key-file=#{node['kubernetes']['secure']['directory']}/client.srv.key --ca-file=#{node['kubernetes']['secure']['directory']}/client.ca.crt"
elsif node['kubernetes']['secure']['enabled'] == 'false'
  etcdcmd = 'etcdctl'
end

execute 'getnetwork' do
  command "#{etcdcmd} get coreos.com/network/config | sed '/^$/d' > /etc/sysconfig/flannel-network"
  only_if { flannel_network? }
  action :nothing
end.run_action(:run)

execute 'setnetwork' do
  command "#{etcdcmd} set coreos.com/network/config < /etc/sysconfig/flannel-network"
  action :nothing
end

template '/etc/sysconfig/flannel-network' do
  mode '0640'
  source 'flannel-network.erb'
  variables(
    flannel_network: node['kubernetes']['master']['flannel-network'],
    flannel_netlength: node['kubernetes']['master']['flannel-netlength']
  )
  notifies :run, 'execute[setnetwork]', :immediately
end