Switch to github.com/golang/dep for vendoring
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
This commit is contained in:
parent
d6ab91be27
commit
8e5b17cf13
15431 changed files with 3971413 additions and 8881 deletions
39
vendor/k8s.io/kubernetes/examples/https-nginx/BUILD
generated
vendored
Normal file
39
vendor/k8s.io/kubernetes/examples/https-nginx/BUILD
generated
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
load(
|
||||
"@io_bazel_rules_go//go:def.bzl",
|
||||
"go_binary",
|
||||
"go_library",
|
||||
)
|
||||
|
||||
go_binary(
|
||||
name = "https-nginx",
|
||||
library = ":go_default_library",
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["make_secret.go"],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/install:go_default_library",
|
||||
"//vendor:k8s.io/apimachinery/pkg/runtime",
|
||||
],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
)
|
24
vendor/k8s.io/kubernetes/examples/https-nginx/Dockerfile
generated
vendored
Normal file
24
vendor/k8s.io/kubernetes/examples/https-nginx/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
# Copyright 2016 The Kubernetes Authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM nginx
|
||||
|
||||
|
||||
COPY index2.html /usr/share/nginx/html/index2.html
|
||||
RUN chmod +r /usr/share/nginx/html/index2.html
|
||||
COPY auto-reload-nginx.sh /home/auto-reload-nginx.sh
|
||||
RUN chmod +x /home/auto-reload-nginx.sh
|
||||
|
||||
# install inotify
|
||||
RUN apt-get update && apt-get install -y inotify-tools
|
38
vendor/k8s.io/kubernetes/examples/https-nginx/Makefile
generated
vendored
Normal file
38
vendor/k8s.io/kubernetes/examples/https-nginx/Makefile
generated
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
# Copyright 2016 The Kubernetes Authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
all:
|
||||
|
||||
TAG = 1.0
|
||||
PREFIX = bprashanth/nginxhttps
|
||||
KEY = /tmp/nginx.key
|
||||
CERT = /tmp/nginx.crt
|
||||
SECRET = /tmp/secret.json
|
||||
|
||||
keys:
|
||||
# The CName used here is specific to the service specified in nginx-app.yaml.
|
||||
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout $(KEY) -out $(CERT) -subj "/CN=nginxsvc/O=nginxsvc"
|
||||
|
||||
secret:
|
||||
go run make_secret.go -crt $(CERT) -key $(KEY) > $(SECRET)
|
||||
|
||||
container:
|
||||
docker build --pull -t $(PREFIX):$(TAG) .
|
||||
|
||||
push: container
|
||||
docker push $(PREFIX):$(TAG)
|
||||
|
||||
clean:
|
||||
rm $(KEY)
|
||||
rm $(CERT)
|
129
vendor/k8s.io/kubernetes/examples/https-nginx/README.md
generated
vendored
Normal file
129
vendor/k8s.io/kubernetes/examples/https-nginx/README.md
generated
vendored
Normal file
|
@ -0,0 +1,129 @@
|
|||
|
||||
# Nginx https service
|
||||
|
||||
This example creates a basic nginx https service useful in verifying proof of concept, keys, secrets, configmap, and end-to-end https service creation in kubernetes.
|
||||
It uses an [nginx server block](http://wiki.nginx.org/ServerBlockExample) to serve the index page over both http and https. It will detect changes to nginx's configuration file, default.conf, mounted as a configmap volume and reload nginx automatically.
|
||||
|
||||
### Generate certificates
|
||||
|
||||
First generate a self signed rsa key and certificate that the server can use for TLS. This step invokes the make_secret.go script in the same directory, which uses the kubernetes api to generate a secret json config in /tmp/secret.json.
|
||||
|
||||
```sh
|
||||
$ make keys secret KEY=/tmp/nginx.key CERT=/tmp/nginx.crt SECRET=/tmp/secret.json
|
||||
```
|
||||
|
||||
### Create a https nginx application running in a kubernetes cluster
|
||||
|
||||
You need a [running kubernetes cluster](../../docs/getting-started-guides/) for this to work.
|
||||
|
||||
Create a secret and a configmap.
|
||||
|
||||
```sh
|
||||
$ kubectl create -f /tmp/secret.json
|
||||
secret "nginxsecret" created
|
||||
|
||||
$ kubectl create configmap nginxconfigmap --from-file=examples/https-nginx/default.conf
|
||||
configmap "nginxconfigmap" created
|
||||
```
|
||||
|
||||
Create a service and a replication controller using the configuration in nginx-app.yaml.
|
||||
|
||||
```sh
|
||||
$ kubectl create -f examples/https-nginx/nginx-app.yaml
|
||||
You have exposed your service on an external port on all nodes in your
|
||||
cluster. If you want to expose this service to the external internet, you may
|
||||
need to set up firewall rules for the service port(s) (tcp:32211,tcp:30028) to serve traffic.
|
||||
...
|
||||
service "nginxsvc" created
|
||||
replicationcontroller "my-nginx" created
|
||||
```
|
||||
|
||||
Then, find the node port that Kubernetes is using for http and https traffic.
|
||||
|
||||
```sh
|
||||
$ kubectl get service nginxsvc -o json
|
||||
...
|
||||
{
|
||||
"name": "http",
|
||||
"protocol": "TCP",
|
||||
"port": 80,
|
||||
"targetPort": 80,
|
||||
"nodePort": 32211
|
||||
},
|
||||
{
|
||||
"name": "https",
|
||||
"protocol": "TCP",
|
||||
"port": 443,
|
||||
"targetPort": 443,
|
||||
"nodePort": 30028
|
||||
}
|
||||
...
|
||||
```
|
||||
|
||||
If you are using Kubernetes on a cloud provider, you may need to create cloud firewall rules to serve traffic.
|
||||
If you are using GCE or GKE, you can use the following commands to add firewall rules.
|
||||
|
||||
```sh
|
||||
$ gcloud compute firewall-rules create allow-nginx-http --allow tcp:32211 --description "Incoming http allowed."
|
||||
Created [https://www.googleapis.com/compute/v1/projects/hello-world-job/global/firewalls/allow-nginx-http].
|
||||
NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS
|
||||
allow-nginx-http default 0.0.0.0/0 tcp:32211
|
||||
|
||||
$ gcloud compute firewall-rules create allow-nginx-https --allow tcp:30028 --description "Incoming https allowed."
|
||||
Created [https://www.googleapis.com/compute/v1/projects/hello-world-job/global/firewalls/allow-nginx-https].
|
||||
NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS
|
||||
allow-nginx-https default 0.0.0.0/0 tcp:30028
|
||||
```
|
||||
|
||||
Find your nodes' IPs.
|
||||
|
||||
```sh
|
||||
$ kubectl get nodes -o json | grep ExternalIP -A 2
|
||||
"type": "ExternalIP",
|
||||
"address": "104.198.1.26"
|
||||
}
|
||||
--
|
||||
"type": "ExternalIP",
|
||||
"address": "104.198.12.158"
|
||||
}
|
||||
--
|
||||
"type": "ExternalIP",
|
||||
"address": "104.198.11.137"
|
||||
}
|
||||
```
|
||||
|
||||
Now your service is up. You can either use your browser or type the following commands.
|
||||
|
||||
```sh
|
||||
$ curl https://<your-node-ip>:<your-port> -k
|
||||
|
||||
$ curl https://104.198.1.26:30028 -k
|
||||
...
|
||||
<title>Welcome to nginx!</title>
|
||||
...
|
||||
```
|
||||
|
||||
Then we will update the configmap by changing `index.html` to `index2.html`.
|
||||
|
||||
```sh
|
||||
kubectl create configmap nginxconfigmap --from-file=examples/https-nginx/default.conf -o yaml --dry-run\
|
||||
| sed 's/index.html/index2.html/g' | kubectl apply -f -
|
||||
configmap "nginxconfigmap" configured
|
||||
```
|
||||
|
||||
Wait a few seconds to let the change propagate. Now you should be able to either use your browser or type the following commands to verify Nginx has been reloaded with new configuration.
|
||||
|
||||
```sh
|
||||
$ curl https://<your-node-ip>:<your-port> -k
|
||||
|
||||
$ curl https://104.198.1.26:30028 -k
|
||||
...
|
||||
<title>Nginx reloaded!</title>
|
||||
...
|
||||
```
|
||||
|
||||
For more information on how to run this in a kubernetes cluster, please see the [user-guide](../../docs/user-guide/connecting-applications.md).
|
||||
|
||||
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
|
||||
[]()
|
||||
<!-- END MUNGE: GENERATED_ANALYTICS -->
|
30
vendor/k8s.io/kubernetes/examples/https-nginx/auto-reload-nginx.sh
generated
vendored
Executable file
30
vendor/k8s.io/kubernetes/examples/https-nginx/auto-reload-nginx.sh
generated
vendored
Executable file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
nginx "$@"
|
||||
oldcksum=`cksum /etc/nginx/conf.d/default.conf`
|
||||
|
||||
inotifywait -e modify,move,create,delete -mr --timefmt '%d/%m/%y %H:%M' --format '%T' \
|
||||
/etc/nginx/conf.d/ | while read date time; do
|
||||
|
||||
newcksum=`cksum /etc/nginx/conf.d/default.conf`
|
||||
if [ "$newcksum" != "$oldcksum" ]; then
|
||||
echo "At ${time} on ${date}, config file update detected."
|
||||
oldcksum=$newcksum
|
||||
nginx -s reload
|
||||
fi
|
||||
|
||||
done
|
17
vendor/k8s.io/kubernetes/examples/https-nginx/default.conf
generated
vendored
Normal file
17
vendor/k8s.io/kubernetes/examples/https-nginx/default.conf
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server ipv6only=on;
|
||||
|
||||
listen 443 ssl;
|
||||
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
server_name localhost;
|
||||
ssl_certificate /etc/nginx/ssl/nginx.crt;
|
||||
ssl_certificate_key /etc/nginx/ssl/nginx.key;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
}
|
28
vendor/k8s.io/kubernetes/examples/https-nginx/index2.html
generated
vendored
Normal file
28
vendor/k8s.io/kubernetes/examples/https-nginx/index2.html
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Nginx reloaded!</title>
|
||||
<style>
|
||||
body {
|
||||
width: 35em;
|
||||
margin: 0 auto;
|
||||
font-family: Tahoma, Verdana, Arial, sans-serif;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Nginx has been reloaded!</h1>
|
||||
<p>If you see this page, the nginx web server has been automaticly reloaded, since the config file has been updated using <a href="https://github.com/kubernetes/kubernetes">Kubernetes</a>.</p>
|
||||
|
||||
|
||||
<p>For online documentation and support please refer to
|
||||
<a href="http://kubernetes.io/">kubernetes.io</a>.<br/></p>
|
||||
|
||||
<p>For online documentation and support please refer to
|
||||
<a href="http://nginx.org/">nginx.org</a>.<br/>
|
||||
Commercial support is available at
|
||||
<a href="http://nginx.com/">nginx.com</a>.</p>
|
||||
|
||||
<p><em>Thank you for using nginx.</em></p>
|
||||
</body>
|
||||
</html>
|
69
vendor/k8s.io/kubernetes/examples/https-nginx/make_secret.go
generated
vendored
Normal file
69
vendor/k8s.io/kubernetes/examples/https-nginx/make_secret.go
generated
vendored
Normal file
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
Copyright 2015 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// A small script that converts the given open ssl public/private keys to
|
||||
// a secret that it writes to stdout as json. Most common use case is to
|
||||
// create a secret from self signed certificates used to authenticate with
|
||||
// a devserver. Usage: go run make_secret.go -crt ca.crt -key priv.key > secret.json
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
|
||||
// This installs the legacy v1 API
|
||||
_ "k8s.io/kubernetes/pkg/api/install"
|
||||
)
|
||||
|
||||
// TODO:
|
||||
// Add a -o flag that writes to the specified destination file.
|
||||
// Teach the script to create crt and key if -crt and -key aren't specified.
|
||||
var (
|
||||
crt = flag.String("crt", "", "path to nginx certificates.")
|
||||
key = flag.String("key", "", "path to nginx private key.")
|
||||
)
|
||||
|
||||
func read(file string) []byte {
|
||||
b, err := ioutil.ReadFile(file)
|
||||
if err != nil {
|
||||
log.Fatalf("Cannot read file %v, %v", file, err)
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
if *crt == "" || *key == "" {
|
||||
log.Fatalf("Need to specify -crt -key and -template")
|
||||
}
|
||||
nginxCrt := read(*crt)
|
||||
nginxKey := read(*key)
|
||||
secret := &api.Secret{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: "nginxsecret",
|
||||
},
|
||||
Data: map[string][]byte{
|
||||
"nginx.crt": nginxCrt,
|
||||
"nginx.key": nginxKey,
|
||||
},
|
||||
}
|
||||
fmt.Printf(runtime.EncodeOrDie(api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), secret))
|
||||
}
|
54
vendor/k8s.io/kubernetes/examples/https-nginx/nginx-app.yaml
generated
vendored
Normal file
54
vendor/k8s.io/kubernetes/examples/https-nginx/nginx-app.yaml
generated
vendored
Normal file
|
@ -0,0 +1,54 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nginxsvc
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- port: 80
|
||||
protocol: TCP
|
||||
name: http
|
||||
- port: 443
|
||||
protocol: TCP
|
||||
name: https
|
||||
selector:
|
||||
app: nginx
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: my-nginx
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
volumes:
|
||||
- name: secret-volume
|
||||
secret:
|
||||
secretName: nginxsecret
|
||||
- name: configmap-volume
|
||||
configMap:
|
||||
name: nginxconfigmap
|
||||
containers:
|
||||
- name: nginxhttps
|
||||
image: ymqytw/nginxhttps:1.5
|
||||
command: ["/home/auto-reload-nginx.sh"]
|
||||
ports:
|
||||
- containerPort: 443
|
||||
- containerPort: 80
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /index.html
|
||||
port: 80
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 1
|
||||
volumeMounts:
|
||||
- mountPath: /etc/nginx/ssl
|
||||
name: secret-volume
|
||||
- mountPath: /etc/nginx/conf.d
|
||||
name: configmap-volume
|
Loading…
Add table
Add a link
Reference in a new issue