Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions quickstarts/whereami/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
FROM python:3.13.5-slim
FROM python:3.13.11-slim

#MAINTAINER Alex Mattson "[email protected]"

RUN apt-get update && apt-get install -y --no-install-recommends \
wget && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
wget -O /bin/curl https://github.com/moparisthebest/static-curl/releases/download/v8.11.0/curl-amd64 && \
wget -O /bin/curl https://github.com/moparisthebest/static-curl/releases/download/v8.17.0/curl-amd64 && \
chmod +x /bin/curl
COPY ./requirements.txt /app/requirements.txt

Expand Down
6 changes: 3 additions & 3 deletions quickstarts/whereami/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Prometheus metrics are exposed from `whereami` at `x.x.x.x/metrics` in both Flas
`whereami` is a single-container app, designed and packaged to run on Kubernetes. In its simplest form it can be deployed in a single line with only a few parameters.

```bash
$ kubectl run --image=us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.25 --expose --port 8080 whereami
$ kubectl run --image=us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.26 --expose --port 8080 whereami
```

The `whereami` pod listens on port `8080` and returns a very simple JSON response that indicates who is responding and where they live. This example assumes you're executing the `curl` command from a pod in the same K8s cluster & namespace (although the following examples show how to access from external clients):
Expand Down Expand Up @@ -99,7 +99,7 @@ spec:
serviceAccountName: whereami
containers:
- name: whereami
image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.25
image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.26
resources:
requests:
memory: "512Mi"
Expand Down Expand Up @@ -564,7 +564,7 @@ If you'd like to deploy `whereami` via its Helm chart, you could leverage the fo
Deploy the default setup of `whereami` (HTTP frontend):
```sh
helm install whereami oci://us-docker.pkg.dev/google-samples/charts/whereami \
--version 1.2.25
--version 1.2.26
```

Deploy `whereami` as HTTP backend by running the previous `helm install` command with the following parameters:
Expand Down
25 changes: 24 additions & 1 deletion quickstarts/whereami/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,29 @@ def GetPayload(self, request, context):
payload = whereami_payload.build_payload(None)
return whereami_pb2.WhereamiReply(**payload)

# Custom gRPC server interceptor for request logging
class RequestLoggingInterceptor(grpc.ServerInterceptor):
def __init__(self):
self._logger = logging.getLogger(__name__)

def intercept_service(self, continuation, handler_call_details):
handler = continuation(handler_call_details)

# This interceptor only supports unary-unary RPCs
if not handler or not handler.unary_unary:
return handler

def logging_wrapper(request, context):
if handler_call_details.method != f'/{health.SERVICE_NAME}/Check':
self._logger.info(
f"gRPC request received: Method='{handler_call_details.method}', Peer='{context.peer()}'")
return handler.unary_unary(request, context)

return grpc.unary_unary_rpc_method_handler(
logging_wrapper,
request_deserializer=handler.request_deserializer,
response_serializer=handler.response_serializer)


# if selected will serve gRPC endpoint on port 9090
# see https://github.com/grpc/grpc/blob/master/examples/python/xds/server.py
Expand All @@ -138,7 +161,7 @@ def grpc_serve():
# working on a proper workaround
server = grpc.server(
futures.ThreadPoolExecutor(max_workers=multiprocessing.cpu_count()+5),
interceptors=(PromServerInterceptor(),)) # interceptor for metrics
interceptors=(PromServerInterceptor(), RequestLoggingInterceptor(),)) # interceptor for metrics and logging

# Add the application servicer to the server.
whereami_pb2_grpc.add_WhereamiServicer_to_server(WhereamigRPC(), server)
Expand Down
26 changes: 13 additions & 13 deletions quickstarts/whereami/cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,21 @@ steps:
- '-t'
- 'gcr.io/google-samples/whereami:v1'
- '-t'
- 'gcr.io/google-samples/whereami:v1.2.25'
- 'gcr.io/google-samples/whereami:v1.2.26'
- '-t'
- 'gcr.io/google-samples/whereami:sample-public-image-v1.2.25-${SHORT_SHA}'
- 'gcr.io/google-samples/whereami:sample-public-image-v1.2.26-${SHORT_SHA}'
- '-t'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:v1'
- '-t'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.25'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.26'
- '-t'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:sample-public-image-v1.2.25-${SHORT_SHA}'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:sample-public-image-v1.2.26-${SHORT_SHA}'
- '-t'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:v1'
- '-t'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.25'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.26'
- '-t'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:sample-public-image-v1.2.25-${SHORT_SHA}'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:sample-public-image-v1.2.26-${SHORT_SHA}'
- '.'
dir: 'quickstarts/whereami'
- name: ubuntu
Expand All @@ -47,15 +47,15 @@ steps:
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
cd quickstarts/whereami/helm-chart
helm package . # This creates a file similar to whereami-X.Y.Z.tgz
helm push whereami-1.2.25.tgz oci://us-docker.pkg.dev/google-samples/charts
helm push whereami-1.2.26.tgz oci://us-docker.pkg.dev/google-samples/charts

images:
- 'gcr.io/google-samples/whereami:v1'
- 'gcr.io/google-samples/whereami:v1.2.25'
- 'gcr.io/google-samples/whereami:sample-public-image-v1.2.25-${SHORT_SHA}'
- 'gcr.io/google-samples/whereami:v1.2.26'
- 'gcr.io/google-samples/whereami:sample-public-image-v1.2.26-${SHORT_SHA}'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:v1'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.25'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:sample-public-image-v1.2.25-${SHORT_SHA}'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.26'
- 'us-docker.pkg.dev/google-samples/containers/gke/whereami:sample-public-image-v1.2.26-${SHORT_SHA}'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:v1'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.25'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:sample-public-image-v1.2.25-${SHORT_SHA}'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.26'
- 'europe-docker.pkg.dev/google-samples/containers/gke/whereami:sample-public-image-v1.2.26-${SHORT_SHA}'
4 changes: 2 additions & 2 deletions quickstarts/whereami/helm-chart/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.2.25
version: 1.2.26

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "v1.2.25"
appVersion: "v1.2.26"
2 changes: 1 addition & 1 deletion quickstarts/whereami/k8s-grpc/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ spec:
- all
privileged: false
readOnlyRootFilesystem: true
image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.25
image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.26
resources:
requests:
memory: "512Mi"
Expand Down
2 changes: 1 addition & 1 deletion quickstarts/whereami/k8s/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ spec:
- all
privileged: false
readOnlyRootFilesystem: true
image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.25
image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1.2.26
resources:
requests:
memory: "512Mi"
Expand Down
Loading