Merge pull request #1 from GoogleCloudPlatform/master

sync to upstream
This commit is contained in:
Kalyana Chadalavada 2019-04-04 11:58:15 -07:00 committed by GitHub
commit c1e79c55df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 143 additions and 236 deletions

View file

@ -93,13 +93,14 @@ We offer three installation methods:
- kubectl (can be installed via `gcloud components install kubectl`) - kubectl (can be installed via `gcloud components install kubectl`)
- Docker for Desktop (Mac/Windows): It provides Kubernetes support as [noted - Docker for Desktop (Mac/Windows): It provides Kubernetes support as [noted
here](https://docs.docker.com/docker-for-mac/kubernetes/). here](https://docs.docker.com/docker-for-mac/kubernetes/).
- [skaffold](https://github.com/GoogleContainerTools/skaffold/#installation) - [skaffold](https://skaffold.dev/docs/getting-started/#installing-skaffold)
(ensure version ≥v0.20) (ensure version ≥v0.20)
1. Launch “Docker for Desktop”. Go to Preferences: 1. Launch “Docker for Desktop”. Go to Preferences:
- choose “Enable Kubernetes”, - choose “Enable Kubernetes”,
- set CPUs to at least 3, and Memory to at least 6.0 GiB - set CPUs to at least 3, and Memory to at least 6.0 GiB
- on the "Disk" tab, set at least 32 GB disk space
1. Run `kubectl get nodes` to verify you're connected to “Kubernetes on Docker”. 1. Run `kubectl get nodes` to verify you're connected to “Kubernetes on Docker”.
@ -253,6 +254,15 @@ by deploying the [release manifest](./release) directly to an existing cluster.
curl -v "http://$INGRESS_HOST" curl -v "http://$INGRESS_HOST"
``` ```
### Cleanup
If you've deployed the application with `skaffold run` command, you can run
`skaffold delete` to clean up the deployed resources.
If you've deployed the application with `kubectl apply -f [...]`, you can
run `kubectl delete -f [...]` with the same argument to clean up the deployed
resources.
## Conferences featuring Hipster Shop ## Conferences featuring Hipster Shop
- [Google Cloud Next'18 London Keynote](https://youtu.be/nIq2pkNcfEI?t=3071) - [Google Cloud Next'18 London Keynote](https://youtu.be/nIq2pkNcfEI?t=3071)

View file

@ -5,7 +5,7 @@
### Minimal configuration ### Minimal configuration
Running the demo locally or on GCP should not require minimal to no Running the demo locally or on GCP should require minimal to no
configuration unless absolutely necessary to run critical parts of the demo. configuration unless absolutely necessary to run critical parts of the demo.
Configuration that takes multiple steps, especially such as creating service Configuration that takes multiple steps, especially such as creating service

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Before After
Before After

View file

@ -11,18 +11,3 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: currency-provider-external
spec:
hosts:
- www.ecb.europa.eu
ports:
- number: 80
name: http
protocol: HTTP
- number: 443
name: https
protocol: HTTPS

View file

@ -27,12 +27,35 @@ TAG="${TAG:?TAG env variable must be specified}"
REPO_PREFIX="${REPO_PREFIX:?REPO_PREFIX env variable must be specified}" REPO_PREFIX="${REPO_PREFIX:?REPO_PREFIX env variable must be specified}"
OUT_DIR="${OUT_DIR:-${SCRIPTDIR}/../release}" OUT_DIR="${OUT_DIR:-${SCRIPTDIR}/../release}"
print_license_header() {
cat "${SCRIPTDIR}/license_header.txt"
echo
}
print_autogenerated_warning() {
cat<<EOF
# ----------------------------------------------------------
# WARNING: This file is autogenerated. Do not manually edit.
# ----------------------------------------------------------
EOF
}
# define gsed as a function on Linux for compatibility
[ "$(uname -s)" == "Linux" ] && gsed() {
sed "$@"
}
read_manifests() { read_manifests() {
local dir local dir
dir="$1" dir="$1"
while IFS= read -d $'\0' -r file; do while IFS= read -d $'\0' -r file; do
cat "${file}" # strip license headers (pattern "^# ")
awk '
/^[^# ]/ { found = 1 }
found { print }' "${file}"
echo "---" echo "---"
done < <(find "${dir}" -name '*.yaml' -type f -print0) done < <(find "${dir}" -name '*.yaml' -type f -print0)
} }
@ -50,10 +73,15 @@ mk_kubernetes_manifests() {
replace="\1image: $image\3" replace="\1image: $image\3"
out_manifest="$(gsed -r "s|$pattern|$replace|g" <(echo "${out_manifest}") )" out_manifest="$(gsed -r "s|$pattern|$replace|g" <(echo "${out_manifest}") )"
done done
print_license_header
print_autogenerated_warning
echo "${out_manifest}" echo "${out_manifest}"
} }
mk_istio_manifests() { mk_istio_manifests() {
print_license_header
print_autogenerated_warning
read_manifests "${SCRIPTDIR}/../istio-manifests" read_manifests "${SCRIPTDIR}/../istio-manifests"
} }

View file

@ -18,9 +18,6 @@ metadata:
name: whitelist-egress-googleapis name: whitelist-egress-googleapis
spec: spec:
hosts: hosts:
- "169.254.169.254" # GCE metadata server
- "metadata.google" # GCE metadata server
- "metadata.google.internal" # GCE metadata server
- "accounts.google.com" # Used to get token - "accounts.google.com" # Used to get token
- "*.googleapis.com" - "*.googleapis.com"
ports: ports:
@ -30,3 +27,20 @@ spec:
- number: 443 - number: 443
protocol: HTTPS protocol: HTTPS
name: https name: https
---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: whitelist-egress-google-metadata
spec:
hosts:
- metadata.google.internal
addresses:
- 169.254.169.254 # GCE metadata server
ports:
- number: 80
name: http
protocol: HTTP
- number: 443
name: https
protocol: HTTPS

View file

@ -0,0 +1,8 @@
# ./kubernetes-manifests
:warning: Kubernetes manifests provided in this directory are not directly
deployable to a cluster. They are meant to be used with `skaffold` command to
insert the correct `image:` tags.
Use the manifests in [/release](/release) directory which are configured with
pre-built public images.

View file

@ -12,6 +12,10 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# ----------------------------------------------------------
# WARNING: This file is autogenerated. Do not manually edit.
# ----------------------------------------------------------
apiVersion: networking.istio.io/v1alpha3 apiVersion: networking.istio.io/v1alpha3
kind: Gateway kind: Gateway
metadata: metadata:
@ -43,20 +47,6 @@ spec:
port: port:
number: 80 number: 80
--- ---
# Copyright 2018 Google LLC
#
# 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.
apiVersion: networking.istio.io/v1alpha3 apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry kind: ServiceEntry
metadata: metadata:
@ -72,20 +62,6 @@ spec:
name: https name: https
protocol: HTTPS protocol: HTTPS
--- ---
# Copyright 2018 Google LLC
#
# 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.
apiVersion: networking.istio.io/v1alpha3 apiVersion: networking.istio.io/v1alpha3
kind: VirtualService kind: VirtualService
metadata: metadata:
@ -100,29 +76,12 @@ spec:
port: port:
number: 80 number: 80
--- ---
# Copyright 2018 Google LLC
#
# 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.
apiVersion: networking.istio.io/v1alpha3 apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry kind: ServiceEntry
metadata: metadata:
name: whitelist-egress-googleapis name: whitelist-egress-googleapis
spec: spec:
hosts: hosts:
- "169.254.169.254" # GCE metadata server
- "metadata.google" # GCE metadata server
- "metadata.google.internal" # GCE metadata server
- "accounts.google.com" # Used to get token - "accounts.google.com" # Used to get token
- "*.googleapis.com" - "*.googleapis.com"
ports: ports:
@ -133,3 +92,20 @@ spec:
protocol: HTTPS protocol: HTTPS
name: https name: https
--- ---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: whitelist-egress-google-metadata
spec:
hosts:
- metadata.google.internal
addresses:
- 169.254.169.254 # GCE metadata server
ports:
- number: 80
name: http
protocol: HTTP
- number: 443
name: https
protocol: HTTPS
---

View file

@ -12,11 +12,18 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
apiVersion: extensions/v1beta1 # ----------------------------------------------------------
# WARNING: This file is autogenerated. Do not manually edit.
# ----------------------------------------------------------
apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: emailservice name: emailservice
spec: spec:
selector:
matchLabels:
app: emailservice
template: template:
metadata: metadata:
labels: labels:
@ -57,25 +64,14 @@ spec:
port: 5000 port: 5000
targetPort: 8080 targetPort: 8080
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: checkoutservice name: checkoutservice
spec: spec:
selector:
matchLabels:
app: checkoutservice
template: template:
metadata: metadata:
labels: labels:
@ -128,25 +124,14 @@ spec:
port: 5050 port: 5050
targetPort: 5050 targetPort: 5050
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: recommendationservice name: recommendationservice
spec: spec:
selector:
matchLabels:
app: recommendationservice
template: template:
metadata: metadata:
labels: labels:
@ -190,25 +175,14 @@ spec:
port: 8080 port: 8080
targetPort: 8080 targetPort: 8080
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: frontend name: frontend
spec: spec:
selector:
matchLabels:
app: frontend
template: template:
metadata: metadata:
labels: labels:
@ -286,25 +260,14 @@ spec:
port: 80 port: 80
targetPort: 8080 targetPort: 8080
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: paymentservice name: paymentservice
spec: spec:
selector:
matchLabels:
app: paymentservice
template: template:
metadata: metadata:
labels: labels:
@ -343,25 +306,14 @@ spec:
port: 50051 port: 50051
targetPort: 50051 targetPort: 50051
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: productcatalogservice name: productcatalogservice
spec: spec:
selector:
matchLabels:
app: productcatalogservice
template: template:
metadata: metadata:
labels: labels:
@ -403,25 +355,14 @@ spec:
port: 3550 port: 3550
targetPort: 3550 targetPort: 3550
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: cartservice name: cartservice
spec: spec:
selector:
matchLabels:
app: cartservice
template: template:
metadata: metadata:
labels: labels:
@ -470,25 +411,14 @@ spec:
port: 7070 port: 7070
targetPort: 7070 targetPort: 7070
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: loadgenerator name: loadgenerator
spec: spec:
selector:
matchLabels:
app: loadgenerator
replicas: 1 replicas: 1
template: template:
metadata: metadata:
@ -524,25 +454,14 @@ spec:
cpu: 500m cpu: 500m
memory: 512Mi memory: 512Mi
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: currencyservice name: currencyservice
spec: spec:
selector:
matchLabels:
app: currencyservice
template: template:
metadata: metadata:
labels: labels:
@ -582,25 +501,14 @@ spec:
port: 7000 port: 7000
targetPort: 7000 targetPort: 7000
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: shippingservice name: shippingservice
spec: spec:
selector:
matchLabels:
app: shippingservice
template: template:
metadata: metadata:
labels: labels:
@ -642,25 +550,14 @@ spec:
port: 50051 port: 50051
targetPort: 50051 targetPort: 50051
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: redis-cart name: redis-cart
spec: spec:
selector:
matchLabels:
app: redis-cart
template: template:
metadata: metadata:
labels: labels:
@ -706,25 +603,14 @@ spec:
port: 6379 port: 6379
targetPort: 6379 targetPort: 6379
--- ---
# Copyright 2018 Google LLC apiVersion: apps/v1
#
# 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.
apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
name: adservice name: adservice
spec: spec:
selector:
matchLabels:
app: adservice
template: template:
metadata: metadata:
labels: labels:

View file

@ -1,4 +1,4 @@
FROM golang:1.10-alpine as builder FROM golang:1.12-alpine as builder
RUN apk add --no-cache ca-certificates git && \ RUN apk add --no-cache ca-certificates git && \
wget -qO/go/bin/dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 && \ wget -qO/go/bin/dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 && \
chmod +x /go/bin/dep chmod +x /go/bin/dep

View file

@ -1,4 +1,4 @@
FROM golang:1.10-alpine as builder FROM golang:1.12-alpine as builder
RUN apk add --no-cache ca-certificates git && \ RUN apk add --no-cache ca-certificates git && \
wget -qO/go/bin/dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 && \ wget -qO/go/bin/dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 && \
chmod +x /go/bin/dep chmod +x /go/bin/dep

View file

@ -1,4 +1,4 @@
FROM golang:1.10-alpine AS builder FROM golang:1.12-alpine AS builder
RUN apk add --no-cache ca-certificates git && \ RUN apk add --no-cache ca-certificates git && \
wget -qO/go/bin/dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 && \ wget -qO/go/bin/dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 && \
chmod +x /go/bin/dep chmod +x /go/bin/dep

View file

@ -1,4 +1,4 @@
FROM golang:1.10-alpine as builder FROM golang:1.12-alpine as builder
RUN apk add --no-cache ca-certificates git && \ RUN apk add --no-cache ca-certificates git && \
wget -qO/go/bin/dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 && \ wget -qO/go/bin/dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 && \
chmod +x /go/bin/dep chmod +x /go/bin/dep