Skip to content

Commit 35fc7d4

Browse files
committed
portal network functioning
1 parent 621d721 commit 35fc7d4

17 files changed

+44
-137
lines changed

LICENSE

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
Copyright (c) 2015 Kelsey Hightower
2+
Copyright (c) 2015 Paul Czarkowski
3+
Copyright (c) 2016 Paul Czarkowski
24

35
Permission is hereby granted, free of charge, to any person obtaining a copy of
46
this software and associated documentation files (the "Software"), to deal in

README.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Provision a Kubernetes cluster with [Terraform](https://www.terraform.io) on Ope
88

99
Ready for testing. Over the next couple of weeks the repo should be generic enough for reuse with complete documentation.
1010

11+
Will install a single controller node and two compute nodes by default, can increase or decrease compute nodes using the Terraform variable `compute_count`.
12+
1113
## Prep
1214

1315
- [Install Terraform](https://www.terraform.io/intro/getting-started/install.html)
@@ -31,7 +33,7 @@ $ ssh-add ~/.ssh/id_rsa
3133
Ensure that you have your Openstack credentials loaded into environment variables. Likely via a command similar to:
3234

3335
```
34-
$ $ source ~/.stackrc
36+
$ source ~/.stackrc
3537
```
3638

3739
### Provision the Kubernetes Cluster
@@ -124,6 +126,7 @@ replicationcontroller "my-nginx" created
124126
125127
$ kubectl expose rc my-nginx --port=80 --type=LoadBalancer
126128
service "my-nginx" exposed
129+
127130
$ kubectl get svc my-nginx
128131
NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR AGE
129132
my-nginx 10.200.43.104 80/TCP run=my-nginx 6s
@@ -132,17 +135,31 @@ $ kubectl get pods
132135
NAME READY STATUS RESTARTS AGE
133136
my-nginx-k1zoe 1/1 Running 0 1m
134137
138+
$ curl 10.200.43.104
139+
<!DOCTYPE html>
140+
<html>
141+
<head>
142+
<title>Welcome to nginx!</title>
143+
144+
135145
$ kubectl delete rc my-nginx
136146
replicationcontroller "my-nginx" deleted
147+
137148
$ kubectl delete svc my-nginx
138149
service "my-nginx" deleted
139150
```
140151

141152
### Install some addons
142153

143154
```
144-
/opt/bin/kubectl create -f /etc/kubernetes/addons/kube-dns-rc.yaml --namespace=kube-system
145-
/opt/bin/kubectl create -f /etc/kubernetes/addons/kube-dns-svc.yaml --namespace=kube-system
155+
$ kubectl create -f /etc/kubernetes/addons/kube-ui-rc.yaml \
156+
--namespace=kube-system
157+
$ kubectl create -f /etc/kubernetes/addons/kube-ui-svc.yaml \
158+
--namespace=kube-system
159+
$ kubectl create -f /etc/kubernetes/addons/kube-dns-rc.yaml \
160+
--namespace=kube-system
161+
$ kubectl create -f /etc/kubernetes/addons/kube-dns-svc.yaml \
162+
--namespace=kube-system
146163
```
147164

148165

_securitygroups.tf

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,21 @@ resource "openstack_compute_secgroup_v2" "kubernetes_controller" {
88
to_port = "443"
99
cidr = "${var.whitelist_network}"
1010
}
11+
rule {
12+
ip_protocol = "icmp"
13+
from_port = "-1"
14+
to_port = "-1"
15+
cidr = "${var.whitelist_network}"
16+
}
1117
}
1218

1319
resource "openstack_compute_secgroup_v2" "kubernetes_compute" {
1420
name = "${var.project}_kubernetes_compute"
1521
description = "kubernetes Compute Security Group"
1622
rule {
17-
ip_protocol = "tcp"
18-
from_port = "443"
19-
to_port = "443"
20-
cidr = "${var.whitelist_network}"
21-
}
22-
rule {
23-
ip_protocol = "tcp"
24-
from_port = "80"
25-
to_port = "80"
23+
ip_protocol = "icmp"
24+
from_port = "-1"
25+
to_port = "-1"
2626
cidr = "${var.whitelist_network}"
2727
}
2828
}
@@ -36,12 +36,6 @@ resource "openstack_compute_secgroup_v2" "kubernetes_base" {
3636
to_port = "22"
3737
cidr = "${var.whitelist_network}"
3838
}
39-
rule {
40-
ip_protocol = "icmp"
41-
from_port = "-1"
42-
to_port = "-1"
43-
cidr = "${var.whitelist_network}"
44-
}
4539
rule {
4640
ip_protocol = "icmp"
4741
from_port = "-1"

files/compute/kube-proxy.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ spec:
77
hostNetwork: true
88
containers:
99
- name: kube-proxy
10-
image: gcr.io/google_containers/hyperkube:v1.1.2
10+
image: gcr.io/google_containers/hyperkube:HYPERKUBE_VERSION
1111
command:
1212
- /hyperkube
1313
- proxy
1414
- --master=https://CONTROLLER_HOST
1515
- --kubeconfig=/etc/kubernetes/compute-kubeconfig.yaml
16-
- --proxy-mode=iptables
16+
- --v=2
1717
securityContext:
1818
privileged: true
1919
volumeMounts:

files/controller/kube-apiserver.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ spec:
77
hostNetwork: true
88
containers:
99
- name: kube-apiserver
10-
image: gcr.io/google_containers/hyperkube:v1.1.2
10+
image: gcr.io/google_containers/hyperkube:HYPERKUBE_VERSION
1111
command:
1212
- /hyperkube
1313
- apiserver

files/controller/kube-controller-manager.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ spec:
77
hostNetwork: true
88
containers:
99
- name: kube-controller-manager
10-
image: gcr.io/google_containers/hyperkube:v1.1.2
10+
image: gcr.io/google_containers/hyperkube:HYPERKUBE_VERSION
1111
command:
1212
- /hyperkube
1313
- controller-manager

files/controller/kube-kubelet.service

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,3 @@ RestartSec=10
1717

1818
[Install]
1919
WantedBy=multi-user.target
20-

files/controller/kube-proxy.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ spec:
77
hostNetwork: true
88
containers:
99
- name: kube-proxy
10-
image: gcr.io/google_containers/hyperkube:v1.1.2
10+
image: gcr.io/google_containers/hyperkube:HYPERKUBE_VERSION
1111
command:
1212
- /hyperkube
1313
- proxy
1414
- --master=http://127.0.0.1:8080
15-
- --proxy-mode=iptables
15+
- --v=2
1616
securityContext:
1717
privileged: true
1818
volumeMounts:

files/controller/kube-scheduler.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ spec:
77
hostNetwork: true
88
containers:
99
- name: kube-scheduler
10-
image: gcr.io/google_containers/hyperkube:v1.1.2
10+
image: gcr.io/google_containers/hyperkube:HYPERKUBE_VERSION
1111
command:
1212
- /hyperkube
1313
- scheduler

files/ssl/admin-key.pem

Lines changed: 0 additions & 27 deletions
This file was deleted.

files/ssl/admin.csr

Lines changed: 0 additions & 17 deletions
This file was deleted.

files/ssl/admin.pem

Lines changed: 0 additions & 17 deletions
This file was deleted.

files/ssl/ca-key.pem

Lines changed: 0 additions & 27 deletions
This file was deleted.

files/ssl/ca.pem

Lines changed: 0 additions & 19 deletions
This file was deleted.

files/ssl/ca.srl

Lines changed: 0 additions & 1 deletion
This file was deleted.

kubernetes.tf

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ resource "openstack_compute_instance_v2" "controller" {
102102
"sed -i 's/ADVERTISE_IP/${element(openstack_networking_floatingip_v2.controller.*.address, count.index)}/' /tmp/stage/*/*",
103103
"sed -i 's|PORTAL_NET|${var.portal_net}|' /tmp/stage/*/*",
104104
"sed -i 's|CLUSTER_DNS|${cidrhost(var.portal_net, 200)}|' /tmp/stage/*/*",
105+
"sed -i 's|HYPERKUBE_VERSION|${var.hyperkube_version}|' /tmp/stage/*/*",
105106
"sudo mkdir -p /etc/kubernetes/manifests",
106107
"sudo mv /tmp/stage/controller/*.yaml /etc/kubernetes/manifests/",
107108
"sudo mv /tmp/stage/controller/*.service /etc/systemd/system/",
@@ -199,9 +200,6 @@ resource "null_resource" "controller" {
199200
" --client-certificate=/etc/kubernetes/ssl/admin.pem",
200201
"/opt/bin/kubectl config set-context ${var.kubernetes_user} --cluster=${var.cluster_name} --user=${var.kubernetes_user}",
201202
"/opt/bin/kubectl config set-context kubernetes --cluster=${var.cluster_name} --user=${var.kubernetes_user}",
202-
"/opt/bin/kubectl config use-context kubernetes",
203-
"/opt/bin/kubectl create -f /etc/kubernetes/addons/kube-ui-rc.yaml --namespace=kube-system",
204-
"/opt/bin/kubectl create -f /etc/kubernetes/addons/kube-ui-svc.yaml --namespace=kube-system",
205203
]
206204
connection {
207205
user = "core"

variables.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ variable "kubectl_version" {
7575
default = "v1.1.2"
7676
}
7777

78+
variable "hyperkube_version" {
79+
description = "Version of the hypercube container to use"
80+
default = "v1.1.2"
81+
}
82+
7883
variable "generate_ssl" {
7984
descripion = "set to 1 to regenerate SSL certificates/keys"
8085
default = 1

0 commit comments

Comments
 (0)