From 03ae4b54a3637bc059b0347440015082e00ed38d Mon Sep 17 00:00:00 2001 From: David Oppenheimer Date: Tue, 11 Nov 2014 11:52:26 -0800 Subject: [PATCH] Change update example to use a trivial webserver instead of nginx (issue #1803). --- .../for-demos/test-webserver}/Dockerfile | 13 ++--- contrib/for-demos/test-webserver/Makefile | 13 +++++ .../test-webserver/test-webserver.go | 48 +++++++++++++++++++ examples/update-demo/0-build-images.sh | 1 - examples/update-demo/images/base/default | 37 -------------- examples/update-demo/images/kitten/Dockerfile | 3 +- .../update-demo/images/nautilus/Dockerfile | 3 +- hack/e2e-suite/update.sh | 2 - 8 files changed, 70 insertions(+), 50 deletions(-) rename {examples/update-demo/images/base => contrib/for-demos/test-webserver}/Dockerfile (77%) create mode 100644 contrib/for-demos/test-webserver/Makefile create mode 100644 contrib/for-demos/test-webserver/test-webserver.go delete mode 100644 examples/update-demo/images/base/default diff --git a/examples/update-demo/images/base/Dockerfile b/contrib/for-demos/test-webserver/Dockerfile similarity index 77% rename from examples/update-demo/images/base/Dockerfile rename to contrib/for-demos/test-webserver/Dockerfile index 428a708a54e..275b710de92 100644 --- a/examples/update-demo/images/base/Dockerfile +++ b/contrib/for-demos/test-webserver/Dockerfile @@ -12,11 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM dockerfile/nginx - -ADD default /etc/nginx/sites-available/default - -ONBUILD ADD html /usr/share/nginx/html -ONBUILD RUN chmod -R a+r /usr/share/nginx/html - -CMD ["nginx"] +FROM scratch +MAINTAINER David Oppenheimer +ADD test-webserver test-webserver +EXPOSE 80 +ENTRYPOINT ["/test-webserver"] diff --git a/contrib/for-demos/test-webserver/Makefile b/contrib/for-demos/test-webserver/Makefile new file mode 100644 index 00000000000..84345d107d7 --- /dev/null +++ b/contrib/for-demos/test-webserver/Makefile @@ -0,0 +1,13 @@ +all: push + +test-webserver: test-webserver.go + CGO_ENABLED=0 GOOS=linux go build -a -tags netgo -ldflags '-w' ./test-webserver.go + +container: test-webserver + sudo docker build -t kubernetes/test-webserver . + +push: container + sudo docker push kubernetes/test-webserver + +clean: + rm -f test-webserver diff --git a/contrib/for-demos/test-webserver/test-webserver.go b/contrib/for-demos/test-webserver/test-webserver.go new file mode 100644 index 00000000000..b6e9573394a --- /dev/null +++ b/contrib/for-demos/test-webserver/test-webserver.go @@ -0,0 +1,48 @@ +/* +Copyright 2014 Google Inc. All rights reserved. + +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 tiny web server that serves a static file. +package main + +import ( + "flag" + "fmt" + "log" + "net/http" +) + +var ( + port = flag.Int("port", 80, "Port number.") +) + +func main() { + flag.Parse() + + fs := http.StripPrefix("/", http.FileServer(http.Dir("/"))) + + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "private") + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Access-Control-Allow-Credentials", "true") + w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS") + w.Header().Set("Access-Control-Allow-Headers", "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type") + fs.ServeHTTP(w, r) + }) + + go log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", *port), nil)) + + select {} +} diff --git a/examples/update-demo/0-build-images.sh b/examples/update-demo/0-build-images.sh index d6e7e946ca0..c07a3acaae1 100755 --- a/examples/update-demo/0-build-images.sh +++ b/examples/update-demo/0-build-images.sh @@ -27,7 +27,6 @@ fi set -x -docker build -t update-demo-base images/base docker build -t "${DOCKER_HUB_USER}/update-demo:kitten" images/kitten docker build -t "${DOCKER_HUB_USER}/update-demo:nautilus" images/nautilus diff --git a/examples/update-demo/images/base/default b/examples/update-demo/images/base/default deleted file mode 100644 index 03b952faef2..00000000000 --- a/examples/update-demo/images/base/default +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 2014 Google Inc. All rights reserved. -# -# 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. - -server { - listen 80 default_server; - listen [::]:80 default_server ipv6only=on; - - root /usr/share/nginx/html; - index index.html index.htm; - - # Make site accessible from http://localhost/ - server_name localhost; - - location / { - try_files $uri $uri/ =404; - expires 0; - add_header Cache-Control private; - - if ($request_method = 'GET') { - add_header 'Access-Control-Allow-Origin' '*'; - add_header 'Access-Control-Allow-Credentials' 'true'; - add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; - add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; - } - } -} diff --git a/examples/update-demo/images/kitten/Dockerfile b/examples/update-demo/images/kitten/Dockerfile index f6de6de1a29..ea142cbc196 100644 --- a/examples/update-demo/images/kitten/Dockerfile +++ b/examples/update-demo/images/kitten/Dockerfile @@ -12,4 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM update-demo-base +FROM kubernetes/test-webserver +ADD html/data.json html/kitten.jpg / diff --git a/examples/update-demo/images/nautilus/Dockerfile b/examples/update-demo/images/nautilus/Dockerfile index f6de6de1a29..eb7115d0e2b 100644 --- a/examples/update-demo/images/nautilus/Dockerfile +++ b/examples/update-demo/images/nautilus/Dockerfile @@ -12,4 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM update-demo-base +FROM kubernetes/test-webserver +ADD html/data.json html/nautilus.jpg / diff --git a/hack/e2e-suite/update.sh b/hack/e2e-suite/update.sh index 9930dbc4e15..7d6728d776f 100755 --- a/hack/e2e-suite/update.sh +++ b/hack/e2e-suite/update.sh @@ -102,8 +102,6 @@ function validate() { return 0 } -export DOCKER_HUB_USER=jbeda - # Launch a container ${KUBE_ROOT}/examples/update-demo/2-create-replication-controller.sh