diff --git a/kubernetes-manifests/cartservice.yaml b/kubernetes-manifests/cartservice.yaml index 0f2e711..196953e 100644 --- a/kubernetes-manifests/cartservice.yaml +++ b/kubernetes-manifests/cartservice.yaml @@ -50,12 +50,12 @@ spec: readinessProbe: initialDelaySeconds: 15 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] livenessProbe: initialDelaySeconds: 15 periodSeconds: 10 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] --- apiVersion: v1 kind: Service diff --git a/release/kubernetes-manifests.yaml b/release/kubernetes-manifests.yaml index 7ecedfb..e06d53b 100644 --- a/release/kubernetes-manifests.yaml +++ b/release/kubernetes-manifests.yaml @@ -32,7 +32,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/emailservice:v0.1.1 + image: gcr.io/google-samples/microservices-demo/emailservice:v0.1.2 ports: - containerPort: 8080 env: @@ -85,7 +85,7 @@ spec: spec: containers: - name: server - image: gcr.io/google-samples/microservices-demo/checkoutservice:v0.1.1 + image: gcr.io/google-samples/microservices-demo/checkoutservice:v0.1.2 ports: - containerPort: 5050 readinessProbe: @@ -148,7 +148,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/recommendationservice:v0.1.1 + image: gcr.io/google-samples/microservices-demo/recommendationservice:v0.1.2 ports: - containerPort: 8080 readinessProbe: @@ -202,7 +202,7 @@ spec: spec: containers: - name: server - image: gcr.io/google-samples/microservices-demo/frontend:v0.1.1 + image: gcr.io/google-samples/microservices-demo/frontend:v0.1.2 ports: - containerPort: 8080 readinessProbe: @@ -290,7 +290,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/paymentservice:v0.1.1 + image: gcr.io/google-samples/microservices-demo/paymentservice:v0.1.2 ports: - containerPort: 50051 env: @@ -339,7 +339,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/productcatalogservice:v0.1.1 + image: gcr.io/google-samples/microservices-demo/productcatalogservice:v0.1.2 ports: - containerPort: 3550 env: @@ -391,7 +391,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/cartservice:v0.1.1 + image: gcr.io/google-samples/microservices-demo/cartservice:v0.1.2 ports: - containerPort: 7070 env: @@ -411,12 +411,12 @@ spec: readinessProbe: initialDelaySeconds: 15 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] livenessProbe: initialDelaySeconds: 15 periodSeconds: 10 exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] + command: ["/bin/grpc_health_probe", "-addr=:7070", "-rpc-timeout=5s"] --- apiVersion: v1 kind: Service @@ -450,9 +450,9 @@ spec: initContainers: - name: wait-frontend image: alpine:3.6 - command: ['sh', '-c', 'set -x; apk add --no-cache curl && - until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do - echo "waiting for http://${FRONTEND_ADDR}"; + command: ['sh', '-c', 'set -x; apk add --no-cache curl && + until timeout -t 2 curl -f "http://${FRONTEND_ADDR}"; do + echo "waiting for http://${FRONTEND_ADDR}"; sleep 2; done;'] env: @@ -460,7 +460,7 @@ spec: value: "frontend:80" containers: - name: main - image: gcr.io/google-samples/microservices-demo/loadgenerator:v0.1.1 + image: gcr.io/google-samples/microservices-demo/loadgenerator:v0.1.2 env: - name: FRONTEND_ADDR value: "frontend:80" @@ -490,7 +490,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/currencyservice:v0.1.1 + image: gcr.io/google-samples/microservices-demo/currencyservice:v0.1.2 ports: - name: grpc containerPort: 7000 @@ -539,7 +539,7 @@ spec: spec: containers: - name: server - image: gcr.io/google-samples/microservices-demo/shippingservice:v0.1.1 + image: gcr.io/google-samples/microservices-demo/shippingservice:v0.1.2 ports: - containerPort: 50051 env: @@ -645,7 +645,7 @@ spec: terminationGracePeriodSeconds: 5 containers: - name: server - image: gcr.io/google-samples/microservices-demo/adservice:v0.1.1 + image: gcr.io/google-samples/microservices-demo/adservice:v0.1.2 ports: - containerPort: 9555 env: @@ -683,4 +683,4 @@ spec: - name: grpc port: 9555 targetPort: 9555 ---- \ No newline at end of file +--- diff --git a/src/cartservice/HealthImpl.cs b/src/cartservice/HealthImpl.cs index f231c7c..44290d1 100644 --- a/src/cartservice/HealthImpl.cs +++ b/src/cartservice/HealthImpl.cs @@ -15,7 +15,6 @@ namespace cartservice { public override Task Check(HealthCheckRequest request, ServerCallContext context){ Console.WriteLine ("Checking CartService Health"); - return Task.FromResult(new HealthCheckResponse { Status = dependency.Ping() ? HealthCheckResponse.Types.ServingStatus.Serving : HealthCheckResponse.Types.ServingStatus.NotServing }); diff --git a/src/cartservice/cartservice.csproj b/src/cartservice/cartservice.csproj index 3fea4a1..4c1e378 100644 --- a/src/cartservice/cartservice.csproj +++ b/src/cartservice/cartservice.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/cartservice/cartstore/RedisCartStore.cs b/src/cartservice/cartstore/RedisCartStore.cs index bc7b7e8..30dc955 100644 --- a/src/cartservice/cartstore/RedisCartStore.cs +++ b/src/cartservice/cartstore/RedisCartStore.cs @@ -45,13 +45,13 @@ namespace cartservice.cartstore var cart = new Hipstershop.Cart(); emptyCartBytes = cart.ToByteArray(); connectionString = $"{redisAddress},ssl=false,allowAdmin=true,connectRetry=5"; - + redisConnectionOptions = ConfigurationOptions.Parse(connectionString); // Try to reconnect if first retry failed (up to 5 times with exponential backoff) redisConnectionOptions.ConnectRetry = REDIS_RETRY_NUM; redisConnectionOptions.ReconnectRetryPolicy = new ExponentialRetry(100); - + redisConnectionOptions.KeepAlive = 180; } @@ -78,11 +78,11 @@ namespace cartservice.cartstore Console.WriteLine("Connecting to Redis: " + connectionString); redis = ConnectionMultiplexer.Connect(redisConnectionOptions); - + if (redis == null || !redis.IsConnected) { Console.WriteLine("Wasn't able to connect to redis"); - + // We weren't able to connect to redis despite 5 retries with exponential backoff throw new ApplicationException("Wasn't able to connect to redis"); } @@ -96,14 +96,14 @@ namespace cartservice.cartstore Console.WriteLine($"Small test result: {res}"); redis.InternalError += (o, e) => { Console.WriteLine(e.Exception); }; - redis.ConnectionRestored += (o, e) => + redis.ConnectionRestored += (o, e) => { isRedisConnectionOpened = true; - Console.WriteLine("Connection to redis was retored successfully"); + Console.WriteLine("Connection to redis was retored successfully"); }; - redis.ConnectionFailed += (o, e) => + redis.ConnectionFailed += (o, e) => { - Console.WriteLine("Connection failed. Disposing the object"); + Console.WriteLine("Connection failed. Disposing the object"); isRedisConnectionOpened = false; }; @@ -118,9 +118,9 @@ namespace cartservice.cartstore try { EnsureRedisConnected(); - + var db = redis.GetDatabase(); - + // Access the cart from the cache var value = await db.HashGetAsync(userId, CART_FIELD_NAME); @@ -202,7 +202,6 @@ namespace cartservice.cartstore { try { - var redis = ConnectionMultiplexer.Connect(redisConnectionOptions); var cache = redis.GetDatabase(); var res = cache.Ping(); return res != TimeSpan.Zero; diff --git a/src/cartservice/generate_protos.bat b/src/cartservice/genproto.bat similarity index 100% rename from src/cartservice/generate_protos.bat rename to src/cartservice/genproto.bat diff --git a/src/cartservice/genproto.sh b/src/cartservice/genproto.sh new file mode 100755 index 0000000..f1a8588 --- /dev/null +++ b/src/cartservice/genproto.sh @@ -0,0 +1,26 @@ +#!/bin/bash -eu +# +# 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. + +# Generate the C# code for .proto files +set -e + +PROTODIR=../../pb + +# enter this directory +CWD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +protoc --csharp_out=$CWD/grpc_generated -I $PROTODIR $PROTODIR/demo.proto + diff --git a/src/emailservice/Dockerfile b/src/emailservice/Dockerfile index b56a11d..725ea9d 100644 --- a/src/emailservice/Dockerfile +++ b/src/emailservice/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3-slim as base +FROM python:3.7-slim as base FROM base as builder diff --git a/src/emailservice/logger.py b/src/emailservice/logger.py index a7fb527..578595e 100644 --- a/src/emailservice/logger.py +++ b/src/emailservice/logger.py @@ -37,4 +37,5 @@ def getJSONLogger(name): handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(logging.INFO) + logger.propagate = False return logger diff --git a/src/paymentservice/Gopkg.lock b/src/paymentservice/Gopkg.lock deleted file mode 100644 index bef2d00..0000000 --- a/src/paymentservice/Gopkg.lock +++ /dev/null @@ -1,9 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - inputs-digest = "ab4fef131ee828e96ba67d31a7d690bd5f2f42040c6766b1b12fe856f87e0ff7" - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/src/paymentservice/Gopkg.toml b/src/paymentservice/Gopkg.toml deleted file mode 100644 index d7072c2..0000000 --- a/src/paymentservice/Gopkg.toml +++ /dev/null @@ -1,30 +0,0 @@ -# Gopkg.toml example -# -# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html -# for detailed Gopkg.toml documentation. -# -# required = ["github.com/user/thing/cmd/thing"] -# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] -# -# [[constraint]] -# name = "github.com/user/project" -# version = "1.0.0" -# -# [[constraint]] -# name = "github.com/user/project2" -# branch = "dev" -# source = "github.com/myfork/project2" -# -# [[override]] -# name = "github.com/x/y" -# version = "2.4.0" -# -# [prune] -# non-go = false -# go-tests = true -# unused-packages = true - - -[prune] - go-tests = true - unused-packages = true diff --git a/src/recommendationservice/logger.py b/src/recommendationservice/logger.py index a7fb527..578595e 100644 --- a/src/recommendationservice/logger.py +++ b/src/recommendationservice/logger.py @@ -37,4 +37,5 @@ def getJSONLogger(name): handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(logging.INFO) + logger.propagate = False return logger