Skip to content
This repository was archived by the owner on Jul 30, 2021. It is now read-only.

Commit 93d9d9a

Browse files
author
Diego Pontoriero
committed
Enable TLS for single-node and mult-node quickstart.
1 parent 4615f6d commit 93d9d9a

File tree

5 files changed

+47
-6
lines changed

5 files changed

+47
-6
lines changed

hack/multi-node/Vagrantfile

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ CONTROLLER_USER_DATA_PATH = File.expand_path("./cluster/user-data-controller")
2222
WORKER_USER_DATA_PATH = File.expand_path("./cluster/user-data-worker")
2323
KUBECONFIG_PATH = File.expand_path("cluster/auth/kubeconfig")
2424
CA_CERT_PATH = File.expand_path("cluster/tls/ca.crt")
25+
ETCD_CERT_GLOB = File.expand_path("cluster/tls/etcd-*")
2526

2627
def etcdIP(num)
2728
return "172.17.4.#{num+50}"
@@ -41,7 +42,7 @@ if !$self_host_etcd
4142
$etcd_vm_memory = 512
4243
ETCD_CLOUD_CONFIG_PATH = File.expand_path("./etcd-cloud-config.yaml")
4344
etcdIPs = [*1..$etcd_count].map{ |i| etcdIP(i) }
44-
initial_etcd_cluster = etcdIPs.map.with_index{ |ip, i| "e#{i+1}=http://#{ip}:2380" }.join(",")
45+
initial_etcd_cluster = etcdIPs.map.with_index{ |ip, i| "e#{i+1}=https://#{ip}:2380" }.join(",")
4546
end
4647

4748
Vagrant.configure("2") do |config|
@@ -109,6 +110,14 @@ Vagrant.configure("2") do |config|
109110

110111
etcd.vm.provision :file, source: etcd_config_file.path, destination: "/tmp/vagrantfile-user-data"
111112
etcd.vm.provision :shell, inline: "mv /tmp/vagrantfile-user-data /var/lib/coreos-vagrant/", privileged: true
113+
114+
etcd.vm.provision :shell, :inline => "mkdir -p /etc/etcd/tls", :privileged => true
115+
Dir.glob(ETCD_CERT_GLOB) do |etcd_cert_file|
116+
etcd.vm.provision :file, :source => etcd_cert_file, :destination => "/tmp/#{File.basename(etcd_cert_file)}"
117+
etcd.vm.provision :shell, :inline => "mv /tmp/#{File.basename(etcd_cert_file)} /etc/etcd/tls/", :privileged => true
118+
end
119+
etcd.vm.provision :shell, :inline => "chown -R etcd:etcd /etc/etcd", :privileged => true
120+
etcd.vm.provision :shell, :inline => "chmod -R u=rX,g=,o= /etc/etcd", :privileged => true
112121
end
113122
end
114123
end

hack/multi-node/bootkube-up

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ if [ ${SELF_HOST_ETCD} = "true" ]; then
1414
echo "WARNING: THIS IS NOT YET FULLY WORKING - merely here to make ongoing testing easier"
1515
etcd_render_flags="--experimental-self-hosted-etcd"
1616
else
17-
etcd_render_flags="--etcd-servers=http://172.17.4.51:2379"
17+
# Note: if you increase the number of etcd servers in the Vagrantfile you must also add them here.
18+
etcd_render_flags="--etcd-servers=https://172.17.4.51:2379"
1819
fi
1920

2021
# Render assets

hack/multi-node/etcd-cloud-config.yaml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,16 @@ coreos:
1515
[Service]
1616
Environment="ETCD_IMAGE_TAG=v3.1.0"
1717
Environment="ETCD_NAME={{ETCD_NODE_NAME}}"
18-
Environment="ETCD_ADVERTISE_CLIENT_URLS=http://$private_ipv4:2379"
19-
Environment="ETCD_INITIAL_ADVERTISE_PEER_URLS=http://$private_ipv4:2380"
20-
Environment="ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379"
21-
Environment="ETCD_LISTEN_PEER_URLS=http://$private_ipv4:2380"
18+
Environment="ETCD_ADVERTISE_CLIENT_URLS=https://$private_ipv4:2379"
19+
Environment="ETCD_INITIAL_ADVERTISE_PEER_URLS=https://$private_ipv4:2380"
20+
Environment="ETCD_LISTEN_CLIENT_URLS=https://0.0.0.0:2379"
21+
Environment="ETCD_LISTEN_PEER_URLS=https://$private_ipv4:2380"
2222
Environment="ETCD_INITIAL_CLUSTER={{ETCD_INITIAL_CLUSTER}}"
23+
Environment="ETCD_SSL_DIR=/etc/etcd/tls"
24+
Environment="ETCD_TRUSTED_CA_FILE=/etc/ssl/certs/etcd-ca.crt"
25+
Environment="ETCD_CERT_FILE=/etc/ssl/certs/etcd-client.crt"
26+
Environment="ETCD_KEY_FILE=/etc/ssl/certs/etcd-client.key"
27+
Environment="ETCD_CLIENT_CERT_AUTH=true"
28+
Environment="ETCD_PEER_TRUSTED_CA_FILE=/etc/ssl/certs/etcd-ca.crt"
29+
Environment="ETCD_PEER_CERT_FILE=/etc/ssl/certs/etcd-peer.crt"
30+
Environment="ETCD_PEER_KEY_FILE=/etc/ssl/certs/etcd-peer.key"

hack/single-node/Vagrantfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ NODE_IP = "172.17.4.100"
1414
USER_DATA_PATH = File.expand_path("cluster/user-data")
1515
KUBECONFIG_PATH = File.expand_path("cluster/auth/kubeconfig")
1616
CA_CERT_PATH = File.expand_path("cluster/tls/ca.crt")
17+
ETCD_CERT_GLOB = File.expand_path("cluster/tls/etcd-*")
1718

1819
Vagrant.configure("2") do |config|
1920
# always use Vagrant's insecure key
@@ -61,4 +62,12 @@ Vagrant.configure("2") do |config|
6162

6263
config.vm.provision :file, :source => CA_CERT_PATH, :destination => "/tmp/ca.crt"
6364
config.vm.provision :shell, :inline => "mv /tmp/ca.crt /etc/kubernetes/ca.crt", :privileged => true
65+
66+
config.vm.provision :shell, :inline => "mkdir -p /etc/etcd/tls", :privileged => true
67+
Dir.glob(ETCD_CERT_GLOB) do |etcd_cert_file|
68+
config.vm.provision :file, :source => etcd_cert_file, :destination => "/tmp/#{File.basename(etcd_cert_file)}"
69+
config.vm.provision :shell, :inline => "mv /tmp/#{File.basename(etcd_cert_file)} /etc/etcd/tls/", :privileged => true
70+
end
71+
config.vm.provision :shell, :inline => "chown -R etcd:etcd /etc/etcd", :privileged => true
72+
config.vm.provision :shell, :inline => "chmod -R u=rX,g=,o= /etc/etcd", :privileged => true
6473
end

hack/single-node/user-data-etcd.sample

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,18 @@
55
content: |
66
[Service]
77
Environment="ETCD_IMAGE_TAG=v3.1.0"
8+
Environment="ETCD_NAME=default"
9+
Environment="ETCD_INITIAL_CLUSTER=default=https://127.0.0.1:2380"
10+
Environment="ETCD_INITIAL_ADVERTISE_PEER_URLS=https://127.0.0.1:2380"
11+
Environment="ETCD_ADVERTISE_CLIENT_URLS=https://127.0.0.1:2379"
12+
Environment="ETCD_LISTEN_CLIENT_URLS=https://0.0.0.0:2379"
13+
Environment="ETCD_LISTEN_PEER_URLS=https://0.0.0.0:2380"
14+
Environment="ETCD_SSL_DIR=/etc/etcd/tls"
15+
Environment="ETCD_TRUSTED_CA_FILE=/etc/ssl/certs/etcd-ca.crt"
16+
Environment="ETCD_CERT_FILE=/etc/ssl/certs/etcd-client.crt"
17+
Environment="ETCD_KEY_FILE=/etc/ssl/certs/etcd-client.key"
18+
Environment="ETCD_CLIENT_CERT_AUTH=true"
19+
Environment="ETCD_PEER_TRUSTED_CA_FILE=/etc/ssl/certs/etcd-ca.crt"
20+
Environment="ETCD_PEER_CERT_FILE=/etc/ssl/certs/etcd-peer.crt"
21+
Environment="ETCD_PEER_KEY_FILE=/etc/ssl/certs/etcd-peer.key"
822
command: start

0 commit comments

Comments
 (0)