diff --git a/NOTICE b/NOTICE
index 8171e7c98384c59116d09661034a7f9059d9230c..e3ff5b59becb8ab9864cc11327cf83e2e8ba14d3 100644
--- a/NOTICE
+++ b/NOTICE
@@ -57,7 +57,7 @@ The following software have components provided under the terms of this license:
 - Byte Buddy (without dependencies) (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy)
 - Byte Buddy agent (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy-agent)
 - ClassMate (from http://github.com/cowtowncoder/java-classmate)
-- Cloud Storage JSON API v1-rev20210127-1.31.5 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage)
+- Cloud Storage JSON API v1-rev20210914-1.32.1 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage)
 - Converter: Jackson (from https://repo1.maven.org/maven2/com/squareup/retrofit2/converter-jackson)
 - Core functionality for the Reactor Netty library (from https://github.com/reactor/reactor-netty)
 - Elastic JNA Distribution (from https://github.com/java-native-access/jna)
@@ -95,8 +95,8 @@ The following software have components provided under the terms of this license:
 - IBM COS Java SDK for COS KMS (from https://github.com/ibm/ibm-cos-sdk-java)
 - IBM COS SDK For Java (from https://github.com/ibm/ibm-cos-sdk-java)
 - IBM COS SDK for Java - Core (from https://github.com/ibm/ibm-cos-sdk-java)
-- Identity and Access Management (IAM) API v1-rev20210226-1.31.0 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-iam)
-- Identity and Access Management (IAM) API v1-rev20210226-1.31.0 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-iam)
+- Identity and Access Management (IAM) API v1-rev284-1.25.0 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-iam)
+- Identity and Access Management (IAM) API v1-rev284-1.25.0 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-iam)
 - J2ObjC Annotations (from https://github.com/google/j2objc/)
 - JBoss Logging 3 (from http://www.jboss.org)
 - JBoss Threads (from https://repo1.maven.org/maven2/org/jboss/threads/jboss-threads)
@@ -114,7 +114,6 @@ The following software have components provided under the terms of this license:
 - Jackson datatype: jdk8 (from https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8)
 - Jackson extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson)
 - Jackson module: Afterburner (from https://github.com/FasterXML/jackson-modules-base)
-- Jackson module: JAXB Annotations (from https://github.com/FasterXML/jackson-modules-base)
 - Jackson-annotations (from http://github.com/FasterXML/jackson)
 - Jackson-core (from https://github.com/FasterXML/jackson-core)
 - Jackson-core (from https://github.com/FasterXML/jackson-core)
@@ -122,6 +121,7 @@ The following software have components provided under the terms of this license:
 - Jackson-dataformat-XML (from http://wiki.fasterxml.com/JacksonExtensionXmlDataBinding)
 - Jackson-dataformat-YAML (from https://github.com/FasterXML/jackson-dataformats-text)
 - Jackson-datatype-JODA (from http://wiki.fasterxml.com/JacksonModuleJoda)
+- Jackson-module-JAXB-annotations (from http://wiki.fasterxml.com/JacksonJAXBAnnotations)
 - Jackson-module-parameter-names (from https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-parameter-names)
 - Jakarta Bean Validation API (from https://beanvalidation.org)
 - Jakarta Expression Language Implementation (from https://projects.eclipse.org/projects/ee4j.el)
@@ -150,8 +150,8 @@ The following software have components provided under the terms of this license:
 - Lucene Grouping (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-grouping)
 - Lucene Highlighter (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-highlighter)
 - Lucene Join (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-join)
-- Lucene Memory (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-memory)
 - Lucene Memory (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-backward-codecs)
+- Lucene Memory (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-memory)
 - Lucene Miscellaneous (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-misc)
 - Lucene Queries (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-queries)
 - Lucene QueryParsers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-queryparser)
@@ -198,13 +198,11 @@ The following software have components provided under the terms of this license:
 - Nimbus JOSE+JWT (from https://bitbucket.org/connect2id/nimbus-jose-jwt)
 - Nimbus LangTag (from https://bitbucket.org/connect2id/nimbus-language-tags)
 - Nimbus LangTag (from https://bitbucket.org/connect2id/nimbus-language-tags)
-- Non-Blocking Reactive Foundation for the JVM (from https://github.com/reactor/reactor)
+- Non-Blocking Reactive Foundation for the JVM (from https://github.com/reactor/reactor-core)
 - OAuth 2.0 SDK with OpenID Connect extensions (from https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions)
 - OAuth 2.0 SDK with OpenID Connect extensions (from https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions)
 - Objenesis (from http://objenesis.org)
 - OkHttp Logging Interceptor (from https://repo1.maven.org/maven2/com/squareup/okhttp3/logging-interceptor)
-- Okio (from https://repo1.maven.org/maven2/com/squareup/okio/okio)
-- Okio (from https://repo1.maven.org/maven2/com/squareup/okio/okio)
 - OpenCensus (from https://github.com/census-instrumentation/opencensus-java)
 - OpenCensus (from https://github.com/census-instrumentation/opencensus-java)
 - OpenCensus (from https://github.com/census-instrumentation/opencensus-java)
@@ -214,14 +212,14 @@ The following software have components provided under the terms of this license:
 - Protocol Buffer extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-protobuf)
 - Proton-J (from https://repo1.maven.org/maven2/org/apache/qpid/proton-j)
 - QpidJMS Client (from )
-- Reactive Streams Netty driver (from https://github.com/reactor/reactor-netty)
-- Retrofit (from https://github.com/square/retrofit)
+- Reactor Netty with all modules (from https://github.com/reactor/reactor-netty)
+- Retrofit (from https://repo1.maven.org/maven2/com/squareup/retrofit2/retrofit)
 - SnakeYAML (from http://www.snakeyaml.org)
 - Spring AOP (from https://github.com/spring-projects/spring-framework)
 - Spring Beans (from https://github.com/spring-projects/spring-framework)
-- Spring Boot Tomcat Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-tomcat)
-- Spring Boot Undertow Starter (from http://projects.spring.io/spring-boot/)
-- Spring Boot Undertow Starter (from http://projects.spring.io/spring-boot/)
+- Spring Boot Log4j 2 Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-log4j2)
+- Spring Boot Undertow Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-undertow)
+- Spring Boot Undertow Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-undertow)
 - Spring Commons Logging Bridge (from https://github.com/spring-projects/spring-framework)
 - Spring Context (from https://github.com/spring-projects/spring-framework)
 - Spring Core (from https://github.com/spring-projects/spring-framework)
@@ -251,17 +249,18 @@ The following software have components provided under the terms of this license:
 - XNIO API (from http://www.jboss.org/xnio)
 - XNIO NIO Implementation (from https://repo1.maven.org/maven2/org/jboss/xnio/xnio-nio)
 - XNIO NIO Implementation (from https://repo1.maven.org/maven2/org/jboss/xnio/xnio-nio)
+- Zipkin Core Library (from https://repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin)
 - Zipkin Reporter Brave (from https://repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter-brave)
 - Zipkin Reporter: Core (from https://repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter)
-- Zipkin v2 (from https://repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin)
 - aalto-xml (from )
 - aggs-matrix-stats (from https://github.com/elastic/elasticsearch)
 - asm (from http://asm.ow2.io/)
-- cli (from https://github.com/elastic/elasticsearch)
 - compiler (from http://github.com/spullara/mustache.java)
-- core (from https://github.com/elastic/elasticsearch)
-- core (from https://github.com/elastic/elasticsearch)
 - datastore-v1-proto-client (from https://repo1.maven.org/maven2/com/google/cloud/datastore/datastore-v1-proto-client)
+- elasticsearch-cli (from https://github.com/elastic/elasticsearch)
+- elasticsearch-core (from https://github.com/elastic/elasticsearch)
+- elasticsearch-secure-sm (from https://github.com/elastic/elasticsearch)
+- elasticsearch-x-content (from https://github.com/elastic/elasticsearch)
 - error-prone annotations (from https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations)
 - error-prone annotations (from https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations)
 - grpc-google-cloud-pubsub-v1 (from https://repo1.maven.org/maven2/com/google/api/grpc/grpc-google-cloud-pubsub-v1)
@@ -291,7 +290,7 @@ The following software have components provided under the terms of this license:
 - javax.inject (from http://code.google.com/p/atinject/)
 - jose4j (from https://bitbucket.org/b_c/jose4j/)
 - lang-mustache (from https://github.com/elastic/elasticsearch)
-- lettuce (from http://github.com/mp911de/lettuce/wiki)
+- lettuce (from https://github.com/lettuce-io/lettuce-core/wiki)
 - micrometer-core (from https://github.com/micrometer-metrics/micrometer)
 - micrometer-registry-azure-monitor (from https://github.com/micrometer-metrics/micrometer)
 - mockito-core (from https://github.com/mockito/mockito)
@@ -301,6 +300,8 @@ The following software have components provided under the terms of this license:
 - okhttp (from https://square.github.io/okhttp/)
 - okhttp-urlconnection (from https://github.com/square/okhttp)
 - okhttp-urlconnection (from https://github.com/square/okhttp)
+- okio (from https://github.com/square/okio/)
+- okio (from https://github.com/square/okio/)
 - org.apiguardian:apiguardian-api (from https://github.com/apiguardian-team/apiguardian)
 - org.conscrypt:conscrypt-openjdk-uber (from https://conscrypt.org/)
 - org.opentest4j:opentest4j (from https://github.com/ota4j-team/opentest4j)
@@ -332,7 +333,7 @@ The following software have components provided under the terms of this license:
 - rest (from https://github.com/elastic/elasticsearch)
 - rest-high-level (from https://github.com/elastic/elasticsearch)
 - rxjava (from https://github.com/ReactiveX/RxJava)
-- secure-sm (from https://github.com/elastic/elasticsearch)
+- server (from https://github.com/elastic/elasticsearch)
 - spring-boot (from https://spring.io/projects/spring-boot)
 - spring-boot-actuator (from https://spring.io/projects/spring-boot)
 - spring-boot-actuator-autoconfigure (from https://spring.io/projects/spring-boot)
@@ -342,11 +343,11 @@ The following software have components provided under the terms of this license:
 - spring-boot-starter-actuator (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-aop (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-json (from https://spring.io/projects/spring-boot)
-- spring-boot-starter-log4j2 (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-logging (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-reactor-netty (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-security (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-test (from https://spring.io/projects/spring-boot)
+- spring-boot-starter-tomcat (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-validation (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-validation (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-web (from https://spring.io/projects/spring-boot)
@@ -376,7 +377,6 @@ The following software have components provided under the terms of this license:
 - tomcat-embed-el (from https://tomcat.apache.org/)
 - tomcat-embed-websocket (from http://tomcat.apache.org/)
 - wildfly-common (from )
-- x-content (from https://github.com/elastic/elasticsearch)
 
 ========================================================================
 BSD-2-Clause
diff --git a/devops/gcp/configmap/Chart.yaml b/devops/gcp/configmap/Chart.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..601fcf729aeb8cd65be3bc6aec5a08d15c4a8dc0
--- /dev/null
+++ b/devops/gcp/configmap/Chart.yaml
@@ -0,0 +1,24 @@
+apiVersion: v2
+name: gcp-notification-configmap
+description: A Helm chart for Kubernetes
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
+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: 0.1.0
+
+# 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: "1.16.0"
diff --git a/devops/gcp/configmap/templates/notification-configmap.yaml b/devops/gcp/configmap/templates/notification-configmap.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1c1ce1b79705a62cb36a1ab3db469f0b7e2347fc
--- /dev/null
+++ b/devops/gcp/configmap/templates/notification-configmap.yaml
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  labels:
+    app: "{{ .Values.conf.app_name }}"
+  name: "{{ .Values.conf.configmap }}"
+  namespace: "{{ .Release.Namespace }}"
+data:
+  LOG_LEVEL: "{{ .Values.data.log_level }}"
+  APP_PROJECT: "{{ .Values.data.app_project }}"
+  APP_ENTITLEMENTS: "{{ .Values.data.app_entitlements }}"
+  APP_REGISTER: "{{ .Values.data.app_register }}"
+  APP_GOOGLEAUDIENCE: "{{ .Values.data.app_googleaudience }}"
+  PARTITION_API: "{{ .Values.data.partition_api }}"
+  GOOGLE_AUDIENCES: "{{ .Values.data.google_audiences }}"
diff --git a/devops/gcp/configmap/values.yaml b/devops/gcp/configmap/values.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..36510b00e6b14022d3a4b1daf3b376c700bb9752
--- /dev/null
+++ b/devops/gcp/configmap/values.yaml
@@ -0,0 +1,11 @@
+data:
+  log_level: "INFO"
+  app_project: ""
+  app_entitlements: "http://entitlements/api/entitlements/v2/"
+  app_register: "http://register/api/register/v1"
+  app_googleaudience: ""
+  partition_api: "http://partition/api/partition/v1/"
+  google_audiences: ""
+conf:
+  configmap: "notification-config"
+  app_name: "notification"
diff --git a/devops/gcp/deploy/Chart.yaml b/devops/gcp/deploy/Chart.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ef8338da0cf56eaadbf1aaee05d2a3fdcff24f1c
--- /dev/null
+++ b/devops/gcp/deploy/Chart.yaml
@@ -0,0 +1,24 @@
+apiVersion: v2
+name: gcp-notification-deploy
+description: A Helm chart for Kubernetes
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
+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: 0.1.0
+
+# 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: "1.16.0"
diff --git a/devops/gcp/deploy/templates/deployment.yaml b/devops/gcp/deploy/templates/deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b3d3b4cc336c616f9d904da01f2a45dd99bf6105
--- /dev/null
+++ b/devops/gcp/deploy/templates/deployment.yaml
@@ -0,0 +1,38 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: "{{ .Values.conf.app_name }}"
+  name: "{{ .Values.conf.app_name }}"
+  namespace: "{{ .Release.Namespace }}"
+spec:
+  selector:
+    matchLabels:
+      app: "{{ .Values.conf.app_name }}"
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: "{{ .Values.conf.app_name }}"
+      annotations:
+        rollme: {{ randAlphaNum 5 | quote }}
+    spec:
+      containers:
+        - name: "{{ .Values.conf.app_name }}"
+          image: "{{ .Values.data.image }}"
+          envFrom:
+          - configMapRef:
+              name: "{{ .Values.conf.configmap }}"
+          securityContext:
+            allowPrivilegeEscalation: false
+            runAsUser: 0
+          ports:
+            - containerPort: 8080
+          resources:
+            requests:
+              cpu: "{{ .Values.data.requests_cpu }}"
+              memory: "{{ .Values.data.requests_memory }}"
+            limits:
+              cpu: "{{ .Values.data.limits_cpu }}"
+              memory: "{{ .Values.data.limits_memory }}"
+      serviceAccountName: "{{ .Values.data.serviceAccountName }}"
diff --git a/devops/gcp/deploy/templates/service.yaml b/devops/gcp/deploy/templates/service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d92e1b6fb4b7890067aaf4d6b46c8310162d4d6e
--- /dev/null
+++ b/devops/gcp/deploy/templates/service.yaml
@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: "{{ .Values.conf.app_name }}"
+  annotations:
+    cloud.google.com/neg: '{"ingress": true}'
+  namespace: "{{ .Release.Namespace }}"
+  labels:
+    app: "{{ .Values.conf.app_name }}"
+    service: "{{ .Values.conf.app_name }}"
+spec:
+  ports:
+    - protocol: TCP
+      port: 80
+      targetPort: 8080
+      name: http
+  selector:
+    app: "{{ .Values.conf.app_name }}"
diff --git a/devops/gcp/deploy/templates/virtual-service.yaml b/devops/gcp/deploy/templates/virtual-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ba166b2c2e6511f89b1bd16d296944a32d656f24
--- /dev/null
+++ b/devops/gcp/deploy/templates/virtual-service.yaml
@@ -0,0 +1,19 @@
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+  name: "{{ .Values.conf.app_name }}"
+  namespace: "{{ .Release.Namespace }}"
+spec:
+  hosts:
+    - "*"
+  gateways:
+    - service-gateway
+  http:
+    - match:
+        - uri:
+            prefix: "/api/notification"
+      route:
+        - destination:
+            port:
+              number: 80
+            host: "{{ .Values.conf.app_name }}.{{ .Release.Namespace }}.svc.cluster.local"
diff --git a/devops/gcp/deploy/values.yaml b/devops/gcp/deploy/values.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..85ec3f779968f9308d3b5435e3c4788ae3b20036
--- /dev/null
+++ b/devops/gcp/deploy/values.yaml
@@ -0,0 +1,11 @@
+data:
+  requests_cpu: "0.25"
+  requests_memory: "256M"
+  limits_cpu: "1"
+  limits_memory: "1G"
+  serviceAccountName: ""
+  image: ""
+
+conf:
+  configmap: "notification-config"
+  app_name: "notification"