def upgrade_node(upd, with_testing, env, *args, **kwargs):
# 00076_update.py
upd.print_log('Add kernel parameters to make pod isolation work...')
run('sed -i "/net.bridge.bridge-nf-call-ip6\?tables/d" {0}'.format(CONF))
run("echo net.bridge.bridge-nf-call-iptables = 1 >> {0}".format(CONF))
run("echo net.bridge.bridge-nf-call-ip6tables = 1 >> {0}".format(CONF))
run("sysctl -w net.bridge.bridge-nf-call-iptables=1")
run("sysctl -w net.bridge.bridge-nf-call-ip6tables=1")
# 00079_update.py
upd.print_log('Copy Elasticsearch config maker...')
upd.print_log(put('/var/opt/kuberdock/make_elastic_config.py',
'/var/lib/elasticsearch',
mode=0755))
upd.print_log('Update logging pod...')
ki = User.filter_by(username=KUBERDOCK_INTERNAL_USER).first()
pod_name = get_kuberdock_logs_pod_name(env.host_string)
for pod in PodCollection(ki).get(as_json=False):
if pod['name'] == pod_name:
break
else:
return
PodCollection(ki).delete(pod['id'], force=True)
logs_config = get_kuberdock_logs_config(
env.host_string,
pod_name,
pod['kube_type'],
pod['containers'][0]['kubes'],
pod['containers'][1]['kubes'],
MASTER_IP,
ki.get_token(),
)
check_internal_pod_data(logs_config, user=ki)
logs_pod = PodCollection(ki).add(logs_config, skip_check=True)
run('docker pull kuberdock/elasticsearch:1.5')
PodCollection(ki).update(logs_pod['id'], {'command': 'start'})
# 00082_update.py
upd.print_log('Upgrading nodes with docker-cleaner.sh')
run("cat > /var/lib/kuberdock/scripts/docker-cleaner.sh << 'EOF' {0}" .format(DOCKERCLEANER))
run("""chmod +x /var/lib/kuberdock/scripts/docker-cleaner.sh""")
run("""crontab -l | { cat; echo "0 */6 * * * /var/lib/kuberdock/scripts/docker-cleaner.sh"; } | crontab - """)
评论列表
文章目录