Repository: apache/airavata-custos (language: python)

Issue:
Merge staging to production



Discussion / hints:

Fix patch:
diff --git a/custos-client-sdks/custos-java-clients/agent-management-client/pom.xml b/custos-client-sdks/custos-java-clients/agent-management-client/pom.xml
index 5150d5b0e..2e99e332c 100644
--- a/custos-client-sdks/custos-java-clients/agent-management-client/pom.xml
+++ b/custos-client-sdks/custos-java-clients/agent-management-client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-java-clients</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-client-sdks/custos-java-clients/custos-clients-core/pom.xml b/custos-client-sdks/custos-java-clients/custos-clients-core/pom.xml
index 386ac476f..506d2f020 100644
--- a/custos-client-sdks/custos-java-clients/custos-clients-core/pom.xml
+++ b/custos-client-sdks/custos-java-clients/custos-clients-core/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-java-clients</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-client-sdks/custos-java-clients/group-management-client/pom.xml b/custos-client-sdks/custos-java-clients/group-management-client/pom.xml
index 7f4d75ebb..e3111c62c 100644
--- a/custos-client-sdks/custos-java-clients/group-management-client/pom.xml
+++ b/custos-client-sdks/custos-java-clients/group-management-client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-java-clients</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-client-sdks/custos-java-clients/identity-management-client/pom.xml b/custos-client-sdks/custos-java-clients/identity-management-client/pom.xml
index ead65197b..39c6a9fb3 100644
--- a/custos-client-sdks/custos-java-clients/identity-management-client/pom.xml
+++ b/custos-client-sdks/custos-java-clients/identity-management-client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-java-clients</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-client-sdks/custos-java-clients/pom.xml b/custos-client-sdks/custos-java-clients/pom.xml
index 452608d95..aa0cfb9c4 100644
--- a/custos-client-sdks/custos-java-clients/pom.xml
+++ b/custos-client-sdks/custos-java-clients/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-client-sdks</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>custos-java-clients</artifactId>
diff --git a/custos-client-sdks/custos-java-clients/resource-secret-management-client/pom.xml b/custos-client-sdks/custos-java-clients/resource-secret-management-client/pom.xml
index eb1b339ff..c9cbf4138 100644
--- a/custos-client-sdks/custos-java-clients/resource-secret-management-client/pom.xml
+++ b/custos-client-sdks/custos-java-clients/resource-secret-management-client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-java-clients</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-client-sdks/custos-java-clients/sharing-management-client/pom.xml b/custos-client-sdks/custos-java-clients/sharing-management-client/pom.xml
index 07c38a75d..6e46f3b2f 100644
--- a/custos-client-sdks/custos-java-clients/sharing-management-client/pom.xml
+++ b/custos-client-sdks/custos-java-clients/sharing-management-client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-java-clients</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-client-sdks/custos-java-clients/tenant-management-client/pom.xml b/custos-client-sdks/custos-java-clients/tenant-management-client/pom.xml
index c86437af2..95013e48d 100644
--- a/custos-client-sdks/custos-java-clients/tenant-management-client/pom.xml
+++ b/custos-client-sdks/custos-java-clients/tenant-management-client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-java-clients</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-client-sdks/custos-java-clients/user-management-client/pom.xml b/custos-client-sdks/custos-java-clients/user-management-client/pom.xml
index 68d5fd537..69b548263 100644
--- a/custos-client-sdks/custos-java-clients/user-management-client/pom.xml
+++ b/custos-client-sdks/custos-java-clients/user-management-client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-java-clients</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-client-sdks/custos-java-sdk/pom.xml b/custos-client-sdks/custos-java-sdk/pom.xml
index ad3478dde..a9ece4bd8 100644
--- a/custos-client-sdks/custos-java-sdk/pom.xml
+++ b/custos-client-sdks/custos-java-sdk/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-client-sdks</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-client-sdks/custos-python-sdk/custos/clients/resource_secret_management_client.py b/custos-client-sdks/custos-python-sdk/custos/clients/resource_secret_management_client.py
index 06cc6a36f..b942399df 100644
--- a/custos-client-sdks/custos-python-sdk/custos/clients/resource_secret_management_client.py
+++ b/custos-client-sdks/custos-python-sdk/custos/clients/resource_secret_management_client.py
@@ -20,6 +20,7 @@
 import json
 import custos.clients.utils.utilities as utl
 
+from build.lib.custos.clients.utils.exceptions.CustosExceptions import KeyDoesNotExist
 from custos.transport.settings import CustosServerClientSettings
 
 from custos.server.integration.ResourceSecretManagementService_pb2_grpc import ResourceSecretManagementServiceStub
@@ -33,7 +34,7 @@
     KeyDoesNotExist
 
 logger = logging.getLogger(__name__)
-logger.setLevel(logging.DEBUG)
+logger.setLevel(logging.INFO)
 
 
 class ResourceSecretManagementClient(object):
@@ -171,7 +172,7 @@ def set_kv_credential(self, key, value, client_id=None, token=None, user_token=N
 
             return json.loads(MessageToJson(msg))
         except Exception as e:
-            logger.exception("Error occurred while setting KV credential", e)
+            # logger.exception("Error occurred while setting KV credential", e)
             raise CustosException("Error occurred while setting KV credential")
 
     def create_kv_credential(self, key, value, client_id=None, token=None, user_token=None, user_name=None):
@@ -185,15 +186,17 @@ def create_kv_credential(self, key, value, client_id=None, token=None, user_toke
                 metadata = (('authorization', token), ('owner_id', user_name),)
             else:
                 metadata = (('authorization', token), ('user_token', user_token),)
+
             secret_metadata = SecretMetadata(client_id=client_id)
             request = KVCredential(key=key, value=value, metadata=secret_metadata)
             msg = self.resource_sec_client.addKVCredential(request=request, metadata=metadata)
             return json.loads(MessageToJson(msg))
         except Exception as e:
-            logger.exception("Error occurred while creating KV credential", e)
+            # logger.exception("Error occurred while creating KV credential", e)
             raise KeyAlreadyExist("Error occurred while creating KV credential, provided key already exist")
 
     def update_kv_credential(self, client_id, key, value, token=None, user_token=None, user_name=None):
+
         try:
             if token is None:
                 token = utl.get_token(self.custos_settings)
@@ -209,9 +212,10 @@ def update_kv_credential(self, client_id, key, value, token=None, user_token=Non
 
             msg = self.resource_sec_client.updateKVCredential(request=request, metadata=metadata)
             return json.loads(MessageToJson(msg))
+
         except Exception as e:
-            logger.exception("Error occurred while updating KV credential", e)
-            raise KeyDoesNotExist("Error occurred while updating KV credential, provided key does not exist")
+            # logger.exception("Error occurred while updating KV credential", e)
+            raise KeyDoesNotExist("Error occurred while updating KV credential, provided key does not exist", e)
 
     def delete_kv_credential(self, client_id, key, token=None, user_token=None, user_name=None):
         try:
@@ -224,6 +228,7 @@ def delete_kv_credential(self, client_id, key, token=None, user_token=None, user
                 metadata = (('authorization', token), ('owner_id', user_name),)
             else:
                 metadata = (('authorization', token), ('user_token', user_token),)
+
             secret_metadata = SecretMetadata(client_id=client_id)
             request = KVCredential(key=key, metadata=secret_metadata)
 
@@ -231,8 +236,8 @@ def delete_kv_credential(self, client_id, key, token=None, user_token=None, user
             return json.loads(MessageToJson(msg))
 
         except Exception as e:
-            logger.exception("Error occurred while deleting KV credential", e)
-            raise KeyDoesNotExist("Error occurred while deleting KV credential, provided key does not exist")
+            # logger.exception("Error occurred while deleting KV credential", e)
+            raise KeyDoesNotExist("Error occurred while deleting KV credential, provided key does not exist", e)
 
     def get_kv_credential(self, key, client_id=None, token=None, user_token=None, user_name=None):
         try:
@@ -245,11 +250,11 @@ def get_kv_credential(self, key, client_id=None, token=None, user_token=None, us
                 metadata = (('authorization', token), ('owner_id', user_name),)
             else:
                 metadata = (('authorization', token), ('user_token', user_token),)
+
             secret_metadata = SecretMetadata(client_id=client_id)
             request = KVCredential(key=key, metadata=secret_metadata)
             msg = self.resource_sec_client.getKVCredential(request=request, metadata=metadata)
             return json.loads(MessageToJson(msg))
-
         except Exception as e:
-            logger.exception("Error occurred while get KV credential", e)
-            raise KeyDoesNotExist("Error occurred while get KV credential, provided key does not exist")
+            # logger.exception("Error occurred while getting KV credential", e)
+            raise KeyDoesNotExist("Error occurred while get KV credential, provided key does not exist", e)
diff --git a/custos-client-sdks/custos-python-sdk/custos/samples/resource_secert_management.py b/custos-client-sdks/custos-python-sdk/custos/samples/resource_secert_management.py
index f2568cbf4..9344785a7 100644
--- a/custos-client-sdks/custos-python-sdk/custos/samples/resource_secert_management.py
+++ b/custos-client-sdks/custos-python-sdk/custos/samples/resource_secert_management.py
@@ -78,3 +78,5 @@ def deleteKVCredential():
     resp = resource_secret_client.delete_KV_credential(token=token, user_token=token,
                                                        client_id='CHANGE_ME', key='Your key')
     print(resp)
+
+
diff --git a/custos-client-sdks/custos-python-sdk/custos_sdk.egg-info/PKG-INFO b/custos-client-sdks/custos-python-sdk/custos_sdk.egg-info/PKG-INFO
index e6618e7c2..27835f03a 100644
--- a/custos-client-sdks/custos-python-sdk/custos_sdk.egg-info/PKG-INFO
+++ b/custos-client-sdks/custos-python-sdk/custos_sdk.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: custos-sdk
-Version: 1.0.17
+Version: 1.0.21
 Summary: Apache Custos Python  SDK
 Home-page: http://custos.com
 Author: Custos Developers
diff --git a/custos-client-sdks/custos-python-sdk/setup.py b/custos-client-sdks/custos-python-sdk/setup.py
index d52fc92a9..4cb84a916 100644
--- a/custos-client-sdks/custos-python-sdk/setup.py
+++ b/custos-client-sdks/custos-python-sdk/setup.py
@@ -10,7 +10,7 @@ def read(fname):
 
 setup(
     name='custos-sdk',
-    version='1.0.17',
+    version='1.0.21',
     packages=find_packages(),
     package_data={'': ['*.pem']},
     include_package_data=True,
diff --git a/custos-client-sdks/pom.xml b/custos-client-sdks/pom.xml
index 47e4b62fc..5e41c1eaa 100644
--- a/custos-client-sdks/pom.xml
+++ b/custos-client-sdks/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/agent-profile-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/agent-profile-core-service-client-stub/pom.xml
index 07a07eb8d..ce0f20860 100644
--- a/custos-core-services-client-stubs/agent-profile-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/agent-profile-core-service-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/cluster-management-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/cluster-management-core-service-client-stub/pom.xml
index 9ecc78cf5..a4589d543 100644
--- a/custos-core-services-client-stubs/cluster-management-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/cluster-management-core-service-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/credential-store-core-service-client-stubs/pom.xml b/custos-core-services-client-stubs/credential-store-core-service-client-stubs/pom.xml
index ce3e7dbb2..5504fba04 100644
--- a/custos-core-services-client-stubs/credential-store-core-service-client-stubs/pom.xml
+++ b/custos-core-services-client-stubs/credential-store-core-service-client-stubs/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/custos-logging-client-stub/pom.xml b/custos-core-services-client-stubs/custos-logging-client-stub/pom.xml
index d7a1bf8e3..ddaadcc0c 100644
--- a/custos-core-services-client-stubs/custos-logging-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/custos-logging-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/federated-authentication-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/federated-authentication-core-service-client-stub/pom.xml
index 36b015cd9..199bde32c 100644
--- a/custos-core-services-client-stubs/federated-authentication-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/federated-authentication-core-service-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/iam-admin-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/iam-admin-core-service-client-stub/pom.xml
index 35428e40e..1d19d2e09 100644
--- a/custos-core-services-client-stubs/iam-admin-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/iam-admin-core-service-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/identity-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/identity-core-service-client-stub/pom.xml
index b0d62c3ca..a23b6f82f 100644
--- a/custos-core-services-client-stubs/identity-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/identity-core-service-client-stub/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/messaging-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/messaging-core-service-client-stub/pom.xml
index 5e7680c76..153396185 100644
--- a/custos-core-services-client-stubs/messaging-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/messaging-core-service-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/pom.xml b/custos-core-services-client-stubs/pom.xml
index 68498dffc..09ff6a536 100644
--- a/custos-core-services-client-stubs/pom.xml
+++ b/custos-core-services-client-stubs/pom.xml
@@ -23,7 +23,8 @@
     <parent>
         <artifactId>custos</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>pom</packaging>
diff --git a/custos-core-services-client-stubs/resource-secret-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/resource-secret-core-service-client-stub/pom.xml
index 8cce88a3a..03f83b867 100644
--- a/custos-core-services-client-stubs/resource-secret-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/resource-secret-core-service-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/sharing-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/sharing-core-service-client-stub/pom.xml
index 975c2a6d7..1631ce335 100644
--- a/custos-core-services-client-stubs/sharing-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/sharing-core-service-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/tenant-profile-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/tenant-profile-core-service-client-stub/pom.xml
index 977edb08c..d2d690702 100644
--- a/custos-core-services-client-stubs/tenant-profile-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/tenant-profile-core-service-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services-client-stubs/user-profile-core-service-client-stub/pom.xml b/custos-core-services-client-stubs/user-profile-core-service-client-stub/pom.xml
index bce420fc3..3561e991b 100644
--- a/custos-core-services-client-stubs/user-profile-core-service-client-stub/pom.xml
+++ b/custos-core-services-client-stubs/user-profile-core-service-client-stub/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services-client-stubs</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/agent-profile-core-service/pom.xml b/custos-core-services/agent-profile-core-service/pom.xml
index cf04aedc7..e2f25b06f 100644
--- a/custos-core-services/agent-profile-core-service/pom.xml
+++ b/custos-core-services/agent-profile-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/agent-profile-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/agent-profile-core-service/src/main/helm/templates/deployment.yaml
index 6cfa7d2da..1c856b30b 100644
--- a/custos-core-services/agent-profile-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/agent-profile-core-service/src/main/helm/templates/deployment.yaml
@@ -66,7 +66,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/agent-profile-core-service/src/main/helm/values.yaml b/custos-core-services/agent-profile-core-service/src/main/helm/values.yaml
index c174a9b38..3214df30e 100644
--- a/custos-core-services/agent-profile-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/agent-profile-core-service/src/main/helm/values.yaml
@@ -62,8 +62,8 @@ resources:
   #   cpu: 100m
   #          memory: 150Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/cluster-management-core-service/pom.xml b/custos-core-services/cluster-management-core-service/pom.xml
index a545d8d30..dd1c121db 100644
--- a/custos-core-services/cluster-management-core-service/pom.xml
+++ b/custos-core-services/cluster-management-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/cluster-management-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/cluster-management-core-service/src/main/helm/templates/deployment.yaml
index 81add33ef..b69f42fd9 100644
--- a/custos-core-services/cluster-management-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/cluster-management-core-service/src/main/helm/templates/deployment.yaml
@@ -61,7 +61,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/cluster-management-core-service/src/main/helm/values.yaml b/custos-core-services/cluster-management-core-service/src/main/helm/values.yaml
index 622d1fc50..2d949582b 100644
--- a/custos-core-services/cluster-management-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/cluster-management-core-service/src/main/helm/values.yaml
@@ -62,8 +62,8 @@ resources:
   #   cpu: 100m
   #    memory: 150Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/credential-store-core-service/pom.xml b/custos-core-services/credential-store-core-service/pom.xml
index 6cc6d6ee0..265aa8c77 100644
--- a/custos-core-services/credential-store-core-service/pom.xml
+++ b/custos-core-services/credential-store-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/credential-store-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/credential-store-core-service/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/credential-store-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/credential-store-core-service/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/credential-store-core-service/src/main/helm/values.yaml b/custos-core-services/credential-store-core-service/src/main/helm/values.yaml
index 519282c07..7d88ee810 100644
--- a/custos-core-services/credential-store-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/credential-store-core-service/src/main/helm/values.yaml
@@ -62,8 +62,8 @@ resources:
   #   cpu: 100m
     #     memory: 300Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/credential-store-core-service/src/main/java/org/apache/custos/credential/store/service/CredentialStoreService.java b/custos-core-services/credential-store-core-service/src/main/java/org/apache/custos/credential/store/service/CredentialStoreService.java
index ee4d32e1b..683e6a9dc 100644
--- a/custos-core-services/credential-store-core-service/src/main/java/org/apache/custos/credential/store/service/CredentialStoreService.java
+++ b/custos-core-services/credential-store-core-service/src/main/java/org/apache/custos/credential/store/service/CredentialStoreService.java
@@ -343,7 +343,8 @@ public void getOwnerIdFromToken(TokenRequest request, StreamObserver<GetOwnerIdR
             Credential credential = credentialManager.decodeToken(token);
 
             if (credential == null || credential.getId() == null) {
-                LOGGER.error("Invalid access token");
+                LOGGER.error("" +
+                        "Invalid access token");
                 responseObserver.onError(Status.NOT_FOUND.asRuntimeException());
                 return;
             }
@@ -377,7 +378,8 @@ public void getCustosCredentialFromToken(TokenRequest request, StreamObserver<Cr
             Credential credential = credentialManager.decodeToken(token);
 
             if (credential == null || credential.getId() == null) {
-                LOGGER.error("Invalid access token");
+                LOGGER.error("" +
+                        "Invalid access token");
                 responseObserver.onError(Status.NOT_FOUND.asRuntimeException());
                 return;
             }
diff --git a/custos-core-services/custos-core-services-commons/pom.xml b/custos-core-services/custos-core-services-commons/pom.xml
index 91cebcf66..0cb48603f 100644
--- a/custos-core-services/custos-core-services-commons/pom.xml
+++ b/custos-core-services/custos-core-services-commons/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/custos-logging/pom.xml b/custos-core-services/custos-logging/pom.xml
index 9b6e78a5c..786be4fa0 100644
--- a/custos-core-services/custos-logging/pom.xml
+++ b/custos-core-services/custos-logging/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/custos-logging/src/main/helm/templates/deployment.yaml b/custos-core-services/custos-logging/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/custos-logging/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/custos-logging/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/custos-logging/src/main/helm/values.yaml b/custos-core-services/custos-logging/src/main/helm/values.yaml
index 319d3bf1e..19446d54c 100644
--- a/custos-core-services/custos-logging/src/main/helm/values.yaml
+++ b/custos-core-services/custos-logging/src/main/helm/values.yaml
@@ -62,8 +62,8 @@ resources:
   #   cpu: 100m
   #       memory: 150Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/custos-messaging-core-service/Dockerfile b/custos-core-services/custos-messaging-core-service/Dockerfile
index e50511ae7..230103e68 100644
--- a/custos-core-services/custos-messaging-core-service/Dockerfile
+++ b/custos-core-services/custos-messaging-core-service/Dockerfile
@@ -2,4 +2,4 @@ FROM openjdk:11.0.5-jdk-slim
 VOLUME /tmp
 ARG JAR_FILE
 ADD ${JAR_FILE} app.jar
-ENTRYPOINT ["java","-Xms130m", "-Xmx130m", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
\ No newline at end of file
+ENTRYPOINT ["java","-Xms250m", "-Xmx250m", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
\ No newline at end of file
diff --git a/custos-core-services/custos-messaging-core-service/pom.xml b/custos-core-services/custos-messaging-core-service/pom.xml
index 5e1ad6d71..425a2352d 100644
--- a/custos-core-services/custos-messaging-core-service/pom.xml
+++ b/custos-core-services/custos-messaging-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -112,7 +113,7 @@
         <dependency>
             <groupId>org.apache.custos</groupId>
             <artifactId>user-profile-core-service-client-stub</artifactId>
-            <version>1.1-SNAPSHOT</version>
+            <version>${project.version}</version>
         </dependency>
 
         <dependency>
diff --git a/custos-core-services/custos-messaging-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/custos-messaging-core-service/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/custos-messaging-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/custos-messaging-core-service/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/custos-messaging-core-service/src/main/helm/values.yaml b/custos-core-services/custos-messaging-core-service/src/main/helm/values.yaml
index dfacda709..b30e16fa0 100644
--- a/custos-core-services/custos-messaging-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/custos-messaging-core-service/src/main/helm/values.yaml
@@ -7,7 +7,7 @@ replicaCount: 1
 image:
   repository: apachecustos/${artifactId}
   tag: "${project.version}"
-  pullPolicy: Always
+  pullPolicy: IfNotPresent
 
 imagePullSecrets: []
 nameOverride: ""
@@ -57,13 +57,13 @@ resources:
   # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
    limits:
   #   cpu: 100m
-   #    memory: 150Mi
+       memory: 250Mi
    requests:
   #   cpu: 100m
-  #     memory: 150Mi
+       memory: 250Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/custos-messaging-core-service/src/main/java/org/apache/custos/messaging/service/EmailService.java b/custos-core-services/custos-messaging-core-service/src/main/java/org/apache/custos/messaging/service/EmailService.java
index a71ab6c38..43a48cc48 100644
--- a/custos-core-services/custos-messaging-core-service/src/main/java/org/apache/custos/messaging/service/EmailService.java
+++ b/custos-core-services/custos-messaging-core-service/src/main/java/org/apache/custos/messaging/service/EmailService.java
@@ -77,6 +77,8 @@ public class EmailService extends EmailServiceGrpc.EmailServiceImplBase {
     @Value("${mail.sender.password}")
     private String senderPassword;
 
+    private String mailTLSProtocol = "TLSv1.2";
+
 
     @Override
     public void send(EmailMessageSendingRequest request, StreamObserver<Status> responseObserver) {
@@ -106,7 +108,9 @@ public void send(EmailMessageSendingRequest request, StreamObserver<Status> resp
                 properties.put("mail.smtp.starttls.enable", mailSmtpStarttlsEnable);
                 properties.put("mail.smtp.host", mailSmtpHost);
                 properties.put("mail.smtp.port", mailSmtpPort);
-                properties.put("mail.smtp.ssl.trust", mailSmtpSslTrust);
+                properties.put("mail.smtp.ssl.trust", "*");
+                properties.put("mail.smtp.ssl.protocols", mailTLSProtocol);
+                properties.put("mail.transport.protocol","smpts");
 
 
                 Set<EmailReceivers> emailReceivers = emailTemplate.get().getEmailReceivers();
diff --git a/custos-core-services/custos-messaging-core-service/src/main/resources/bootstrap.properties b/custos-core-services/custos-messaging-core-service/src/main/resources/bootstrap.properties
index c6576723e..ef827e269 100644
--- a/custos-core-services/custos-messaging-core-service/src/main/resources/bootstrap.properties
+++ b/custos-core-services/custos-messaging-core-service/src/main/resources/bootstrap.properties
@@ -17,6 +17,5 @@
 #  under the License.
 #
 
-
 spring.cloud.config.uri=http://custos-configuration-service.custos.svc.cluster.local:9000
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active:@spring.profiles.active@
\ No newline at end of file
diff --git a/custos-core-services/federated-authentication-core-service/pom.xml b/custos-core-services/federated-authentication-core-service/pom.xml
index 2f0e4e127..097eb670b 100644
--- a/custos-core-services/federated-authentication-core-service/pom.xml
+++ b/custos-core-services/federated-authentication-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/federated-authentication-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/federated-authentication-core-service/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/federated-authentication-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/federated-authentication-core-service/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/federated-authentication-core-service/src/main/helm/values.yaml b/custos-core-services/federated-authentication-core-service/src/main/helm/values.yaml
index 8310c4b51..afbb212ef 100644
--- a/custos-core-services/federated-authentication-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/federated-authentication-core-service/src/main/helm/values.yaml
@@ -62,8 +62,8 @@ resources:
   #   cpu: 100m
    #    memory: 250Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/federated-authentication-core-service/src/main/resources/application.properties b/custos-core-services/federated-authentication-core-service/src/main/resources/application.properties
index dc145b795..090b501ce 100644
--- a/custos-core-services/federated-authentication-core-service/src/main/resources/application.properties
+++ b/custos-core-services/federated-authentication-core-service/src/main/resources/application.properties
@@ -39,4 +39,5 @@ spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDial
 
 # Hibernate ddl auto (create, create-drop, validate, update)
 spring.jpa.hibernate.ddl-auto = update
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active=@spring.profiles.active@
+logging.level.root=WARN
\ No newline at end of file
diff --git a/custos-core-services/iam-admin-core-service/Dockerfile b/custos-core-services/iam-admin-core-service/Dockerfile
index edca8b893..afabd00ae 100644
--- a/custos-core-services/iam-admin-core-service/Dockerfile
+++ b/custos-core-services/iam-admin-core-service/Dockerfile
@@ -3,4 +3,4 @@ COPY src/main/resources/keycloak-client-truststore.pkcs12 /home/ubuntu/keystore/
 VOLUME /tmp
 ARG JAR_FILE
 ADD ${JAR_FILE} app.jar
-ENTRYPOINT ["java","-Xms300m", "-Xmx300m" , "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
\ No newline at end of file
+ENTRYPOINT ["java","-Xms450m", "-Xmx450m" , "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
\ No newline at end of file
diff --git a/custos-core-services/iam-admin-core-service/pom.xml b/custos-core-services/iam-admin-core-service/pom.xml
index 34de9b1b1..f40590364 100644
--- a/custos-core-services/iam-admin-core-service/pom.xml
+++ b/custos-core-services/iam-admin-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/iam-admin-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/iam-admin-core-service/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/iam-admin-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/iam-admin-core-service/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/iam-admin-core-service/src/main/helm/values.yaml b/custos-core-services/iam-admin-core-service/src/main/helm/values.yaml
index abd5b36b3..1f0c6deaf 100644
--- a/custos-core-services/iam-admin-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/iam-admin-core-service/src/main/helm/values.yaml
@@ -57,13 +57,13 @@ resources:
   # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
   limits:
   #   cpu: 100m
-   #   memory: 350Mi
+      memory: 500Mi
   requests:
   #   cpu: 100m
-   #      memory: 350Mi
+         memory: 500Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/identity-core-service/pom.xml b/custos-core-services/identity-core-service/pom.xml
index 6e5c720b8..677c2aaf3 100644
--- a/custos-core-services/identity-core-service/pom.xml
+++ b/custos-core-services/identity-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/identity-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/identity-core-service/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/identity-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/identity-core-service/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/identity-core-service/src/main/helm/values.yaml b/custos-core-services/identity-core-service/src/main/helm/values.yaml
index b6f3e5545..e194a6714 100644
--- a/custos-core-services/identity-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/identity-core-service/src/main/helm/values.yaml
@@ -62,8 +62,8 @@ resources:
   #   cpu: 100m
    #      memory: 350Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/pom.xml b/custos-core-services/pom.xml
index 0c89ec488..f8231b031 100644
--- a/custos-core-services/pom.xml
+++ b/custos-core-services/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/custos-core-services/resource-secret-core-service/pom.xml b/custos-core-services/resource-secret-core-service/pom.xml
index dba9d962f..a965f71ba 100644
--- a/custos-core-services/resource-secret-core-service/pom.xml
+++ b/custos-core-services/resource-secret-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/resource-secret-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/resource-secret-core-service/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/resource-secret-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/resource-secret-core-service/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/resource-secret-core-service/src/main/helm/values.yaml b/custos-core-services/resource-secret-core-service/src/main/helm/values.yaml
index 2d38008a5..e2ee8ed9f 100644
--- a/custos-core-services/resource-secret-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/resource-secret-core-service/src/main/helm/values.yaml
@@ -62,8 +62,8 @@ resources:
   #   cpu: 100m
     #     memory: 300Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/sharing-core-service/Dockerfile b/custos-core-services/sharing-core-service/Dockerfile
index e50511ae7..230103e68 100644
--- a/custos-core-services/sharing-core-service/Dockerfile
+++ b/custos-core-services/sharing-core-service/Dockerfile
@@ -2,4 +2,4 @@ FROM openjdk:11.0.5-jdk-slim
 VOLUME /tmp
 ARG JAR_FILE
 ADD ${JAR_FILE} app.jar
-ENTRYPOINT ["java","-Xms130m", "-Xmx130m", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
\ No newline at end of file
+ENTRYPOINT ["java","-Xms250m", "-Xmx250m", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
\ No newline at end of file
diff --git a/custos-core-services/sharing-core-service/pom.xml b/custos-core-services/sharing-core-service/pom.xml
index 72b82f90d..fb45473b7 100644
--- a/custos-core-services/sharing-core-service/pom.xml
+++ b/custos-core-services/sharing-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/sharing-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/sharing-core-service/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/sharing-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/sharing-core-service/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/sharing-core-service/src/main/helm/values.yaml b/custos-core-services/sharing-core-service/src/main/helm/values.yaml
index bfaea8263..899b6e9bd 100644
--- a/custos-core-services/sharing-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/sharing-core-service/src/main/helm/values.yaml
@@ -57,13 +57,13 @@ resources:
   # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
   limits:
   #   cpu: 100m
-   #   memory: 150Mi
+   #   memory: 300Mi
   requests:
   #   cpu: 100m
-   #      memory: 150Mi
+    #  memory: 300Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/tenant-profile-core-service/pom.xml b/custos-core-services/tenant-profile-core-service/pom.xml
index 571bbc20a..e3f77ec32 100644
--- a/custos-core-services/tenant-profile-core-service/pom.xml
+++ b/custos-core-services/tenant-profile-core-service/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/custos-core-services/tenant-profile-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/tenant-profile-core-service/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/tenant-profile-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/tenant-profile-core-service/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/tenant-profile-core-service/src/main/helm/values.yaml b/custos-core-services/tenant-profile-core-service/src/main/helm/values.yaml
index 934d56038..2ec5f496b 100644
--- a/custos-core-services/tenant-profile-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/tenant-profile-core-service/src/main/helm/values.yaml
@@ -62,8 +62,8 @@ resources:
   #   cpu: 100m
    #    memory: 150Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/user-profile-core-service/Dockerfile b/custos-core-services/user-profile-core-service/Dockerfile
index e5bbd85be..effe982d8 100644
--- a/custos-core-services/user-profile-core-service/Dockerfile
+++ b/custos-core-services/user-profile-core-service/Dockerfile
@@ -2,4 +2,4 @@ FROM openjdk:11-jre-slim
 VOLUME /tmp
 ARG JAR_FILE
 ADD ${JAR_FILE} app.jar
-ENTRYPOINT ["java","-Xms130m", "-Xmx130m", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
\ No newline at end of file
+ENTRYPOINT ["java","-Xms250m", "-Xmx250m", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
\ No newline at end of file
diff --git a/custos-core-services/user-profile-core-service/pom.xml b/custos-core-services/user-profile-core-service/pom.xml
index 2e9d4dcef..e362d78d2 100644
--- a/custos-core-services/user-profile-core-service/pom.xml
+++ b/custos-core-services/user-profile-core-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-core-services/user-profile-core-service/src/main/helm/templates/deployment.yaml b/custos-core-services/user-profile-core-service/src/main/helm/templates/deployment.yaml
index 31cd2bdcd..55b3fb552 100644
--- a/custos-core-services/user-profile-core-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/user-profile-core-service/src/main/helm/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/user-profile-core-service/src/main/helm/values.yaml b/custos-core-services/user-profile-core-service/src/main/helm/values.yaml
index bfaea8263..899b6e9bd 100644
--- a/custos-core-services/user-profile-core-service/src/main/helm/values.yaml
+++ b/custos-core-services/user-profile-core-service/src/main/helm/values.yaml
@@ -57,13 +57,13 @@ resources:
   # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
   limits:
   #   cpu: 100m
-   #   memory: 150Mi
+   #   memory: 300Mi
   requests:
   #   cpu: 100m
-   #      memory: 150Mi
+    #  memory: 300Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/utility-services/custos-configuration-service/pom.xml b/custos-core-services/utility-services/custos-configuration-service/pom.xml
index 2610e1ce4..212721f57 100644
--- a/custos-core-services/utility-services/custos-configuration-service/pom.xml
+++ b/custos-core-services/utility-services/custos-configuration-service/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-core-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
@@ -80,7 +80,7 @@
 <!--                             passphrase="isjarana" trust="true">-->
 <!--                        </scp>-->
 <!--                    </target>-->
-                    <skip>false</skip>
+                    <skip>true</skip>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/helm/templates/deployment.yaml b/custos-core-services/utility-services/custos-configuration-service/src/main/helm/templates/deployment.yaml
index 0aed1f543..b5440d0ea 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/helm/templates/deployment.yaml
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/helm/templates/deployment.yaml
@@ -49,7 +49,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/helm/values.yaml b/custos-core-services/utility-services/custos-configuration-service/src/main/helm/values.yaml
index 840c8da7c..08d6c301f 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/helm/values.yaml
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/helm/values.yaml
@@ -61,8 +61,8 @@ resources:
   #   cpu: 100m
    #   memory: 350Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/agentManagementService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/agentManagementService-production.properties
index 3107484f5..1a8fcce22 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/agentManagementService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/agentManagementService-production.properties
@@ -27,7 +27,7 @@ agent.profile.core.service.dns.name=agent-profile-core-service.custos.svc.cluste
 agent.profile.core.service.port=7000
 iam.admin.service.dns.name=iam-admin-core-service.custos.svc.cluster.local
 iam.admin.service.port=7000
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 federated.authentication.service.dns.name=federeted-authentication-core-service.custos.svc.cluster.local
 federated.authentication.service.port=7000
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
@@ -37,4 +37,6 @@ cluster.management.core.service.port=7000
 resource.secret.service.dns.name=resource-secret-core-service.custos.svc.cluster.local
 resource.secret.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
-user.profile.core.service.port=7000
\ No newline at end of file
+user.profile.core.service.port=7000
+messaging.core.service.dns.name=custos-messaging-core-service.custos.svc.cluster.local
+messaging.core.service.port=7000
\ No newline at end of file
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/agentManagementService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/agentManagementService-staging.properties
index b49f9d61b..2b468ae62 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/agentManagementService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/agentManagementService-staging.properties
@@ -27,7 +27,7 @@ agent.profile.core.service.dns.name=agent-profile-core-service.custos.svc.cluste
 agent.profile.core.service.port=7000
 iam.admin.service.dns.name=iam-admin-core-service.custos.svc.cluster.local
 iam.admin.service.port=7000
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 federated.authentication.service.dns.name=federeted-authentication-core-service.custos.svc.cluster.local
 federated.authentication.service.port=7000
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
@@ -37,4 +37,6 @@ cluster.management.core.service.port=7000
 resource.secret.service.dns.name=resource-secret-core-service.custos.svc.cluster.local
 resource.secret.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
-user.profile.core.service.port=7000
\ No newline at end of file
+user.profile.core.service.port=7000
+messaging.core.service.dns.name=custos-messaging-core-service.custos.svc.cluster.local
+messaging.core.service.port=7000
\ No newline at end of file
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/groupManagementService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/groupManagementService-production.properties
index e34bf7a9e..051518714 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/groupManagementService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/groupManagementService-production.properties
@@ -27,7 +27,7 @@ user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.
 user.profile.core.service.port=7000
 iam.admin.service.dns.name=iam-admin-core-service.custos.svc.cluster.local
 iam.admin.service.port=7000
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
 custos.logging.core.service.port=7000
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/groupManagementService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/groupManagementService-staging.properties
index f5ac6c2ed..e96ea44cb 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/groupManagementService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/groupManagementService-staging.properties
@@ -27,7 +27,7 @@ user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.
 user.profile.core.service.port=7000
 iam.admin.service.dns.name=iam-admin-core-service.custos.svc.cluster.local
 iam.admin.service.port=7000
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
 custos.logging.core.service.port=7000
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/iamAdminCoreService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/iamAdminCoreService-production.properties
index 49554a744..227b53d73 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/iamAdminCoreService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/iamAdminCoreService-production.properties
@@ -1,7 +1,7 @@
 iam.server.client.id=admin-cli
 iam.server.truststore.path=/home/ubuntu/keystore/keycloak-client-truststore.pkcs12
 iam.server.truststore.password=keycloak
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 iam.server.admin.username=${iam.production.username}
 iam.server.admin.password=${iam.production.password}
 iam.server.super.admin.realm.id=master
@@ -10,14 +10,14 @@ iam.federated.cilogon.token.endpoint=https://cilogon.org/oauth2/token
 iam.federated.cilogon.token.userinfo.endpoint=https://cilogon.org/oauth2/userinfo
 iam.federated.cilogon.issuer=https://cilogon.org
 iam.federated.cilogon.jwksUri=https://cilogon.org/oauth2/certs
-introspection.endpoint=https://services.usecustos.org/identity-management/v1.0.0/token/introspect
-issuer=https://services.usecustos.org/
-authorization.endpoint=https://services.usecustos.org/apiserver/identity-management/v1.0.0/authorize
-token.endpoint=https://services.usecustos.org/apiserver/identity-management/v1.0.0/token
-end.session.endpoint=https://services.usecustos.org/apiserver/identity-management/v1.0.0/logout
-user.info.endpoint=https://services.usecustos.org/apiserver/user-management/v1.0.0/userinfo
-jwks_uri=https://services.usecustos.org/apiserver/identity-management/v1.0.0/certs
-registration.endpoint=https://services.usecustos.org/apiserver/tenant-management/v1.0.0/oauth2/tenant
+introspection.endpoint=https://prod.custos.usecustos.org/identity-management/v1.0.0/token/introspect
+issuer=https://prod.custos.usecustos.org/
+authorization.endpoint=https://prod.custos.usecustos.org/apiserver/identity-management/v1.0.0/authorize
+token.endpoint=https://prod.custos.usecustos.org/apiserver/identity-management/v1.0.0/token
+end.session.endpoint=https://prod.custos.usecustos.org/apiserver/identity-management/v1.0.0/logout
+user.info.endpoint=https://prod.custos.usecustos.org/apiserver/user-management/v1.0.0/userinfo
+jwks_uri=https://prod.custos.usecustos.org/apiserver/identity-management/v1.0.0/certs
+registration.endpoint=https://prod.custos.usecustos.org/apiserver/tenant-management/v1.0.0/oauth2/tenant
 ciLogon.admin.client.id=${cilogon.production.id}
 ciLogon.admin.client.secret=${cilogon.production.sec}
 ciLogon.admin.auth.endpoint=https://test.cilogon.org/oauth2/oidc-cm
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/iamAdminCoreService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/iamAdminCoreService-staging.properties
index c6d22a4ed..1da5a9f59 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/iamAdminCoreService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/iamAdminCoreService-staging.properties
@@ -1,7 +1,7 @@
 iam.server.client.id=admin-cli
 iam.server.truststore.path=/home/ubuntu/keystore/keycloak-client-truststore.pkcs12
 iam.server.truststore.password=keycloak
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 iam.server.admin.username=${iam.staging.username}
 iam.server.admin.password=${iam.staging.password}
 iam.server.super.admin.realm.id=master
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityCoreService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityCoreService-production.properties
index f02fc0ea7..052f91b4d 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityCoreService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityCoreService-production.properties
@@ -19,17 +19,17 @@
 
 custos.identity.auth.cache.enabled=true
 custos.identity.auth.cache.size=1024
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 iam.server.truststore.path=/home/ubuntu/keystore/keycloak-client-truststore.pkcs12
 iam.server.truststore.password=keycloak
-introspection.endpoint=https://services.usecustos.org/apiserver/identity-management/v1.0.0/token/introspect
+introspection.endpoint=https://prod.custos.usecustos.org/apiserver/identity-management/v1.0.0/token/introspect
 issuer=https://custos.scigap.org/
-authorization.endpoint=https://services.usecustos.org/apiserver/identity-management/v1.0.0/authorize
-token.endpoint=https://services.usecustos.org/apiserver/identity-management/v1.0.0/token
-end.session.endpoint=https://services.usecustos.org/apiserver/identity-management/v1.0.0/logout
-user.info.endpoint=https://services.usecustos.org/apiserver/user-management/v1.0.0/userinfo
-jwks_uri=https://services.usecustos.org/apiserver/identity-management/v1.0.0/certs
-registration.endpoint=https://services.usecustos.org/apiserver/tenant-management/v1.0.0/oauth2/tenant
+authorization.endpoint=https://prod.custos.usecustos.org/apiserver/identity-management/v1.0.0/authorize
+token.endpoint=https://prod.custos.usecustos.org/apiserver/identity-management/v1.0.0/token
+end.session.endpoint=https://prod.custos.usecustos.org/apiserver/identity-management/v1.0.0/logout
+user.info.endpoint=https://prod.custos.usecustos.org/apiserver/user-management/v1.0.0/userinfo
+jwks_uri=https://prod.custos.usecustos.org/apiserver/identity-management/v1.0.0/certs
+registration.endpoint=https://prod.custos.usecustos.org/apiserver/tenant-management/v1.0.0/oauth2/tenant
 iam.server.client.id=admin-cli
 iam.server.admin.username=${iam.production.username}
 iam.server.admin.password=${iam.production.password}
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityCoreService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityCoreService-staging.properties
index a3dc94a59..9cfc99d7f 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityCoreService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityCoreService-staging.properties
@@ -19,7 +19,7 @@
 
 custos.identity.auth.cache.enabled=true
 custos.identity.auth.cache.size=1024
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 iam.server.truststore.path=/home/ubuntu/keystore/keycloak-client-truststore.pkcs12
 iam.server.truststore.password=keycloak
 introspection.endpoint=https://service.staging.usecustos.org/apiserver/identity-management/v1.0.0/token/introspect
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityManagementService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityManagementService-production.properties
index a5fc996ef..b46b90ef8 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityManagementService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityManagementService-production.properties
@@ -23,7 +23,7 @@ tenant.profile.core.service.dns.name=tenant-profile-core-service.custos.svc.clus
 tenant.profile.core.service.port=7000
 credential.store.service.dns.name=credential-store-core-service.custos.svc.cluster.local
 credential.store.service.port=7000
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
 iam.admin.service.dns.name=iam-admin-core-service.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityManagementService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityManagementService-staging.properties
index ad9bc71f4..4209726b4 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityManagementService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/identityManagementService-staging.properties
@@ -23,7 +23,7 @@ tenant.profile.core.service.dns.name=tenant-profile-core-service.custos.svc.clus
 tenant.profile.core.service.port=7000
 credential.store.service.dns.name=credential-store-core-service.custos.svc.cluster.local
 credential.store.service.port=7000
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
 iam.admin.service.dns.name=iam-admin-core-service.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/logManagementService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/logManagementService-production.properties
index b5442fd36..a3a01a88a 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/logManagementService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/logManagementService-production.properties
@@ -29,7 +29,7 @@ identity.service.dns.name=identity-core-service.custos.svc.cluster.local
 identity.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
 custos.logging.core.service.port=7000
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/logManagementService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/logManagementService-staging.properties
index 7f601c466..1a89db5a3 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/logManagementService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/logManagementService-staging.properties
@@ -29,7 +29,7 @@ identity.service.dns.name=identity-core-service.custos.svc.cluster.local
 identity.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
 custos.logging.core.service.port=7000
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/resourceSecretManagementService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/resourceSecretManagementService-production.properties
index 413270681..dc88c36b6 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/resourceSecretManagementService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/resourceSecretManagementService-production.properties
@@ -29,7 +29,7 @@ identity.service.dns.name=identity-core-service.custos.svc.cluster.local
 identity.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
 cluster.management.core.service.port=7000
 resource.secret.service.dns.name=resource-secret-core-service.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/resourceSecretManagementService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/resourceSecretManagementService-staging.properties
index 7ef9103d9..1c895e8c6 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/resourceSecretManagementService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/resourceSecretManagementService-staging.properties
@@ -29,7 +29,7 @@ identity.service.dns.name=identity-core-service.custos.svc.cluster.local
 identity.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
 cluster.management.core.service.port=7000
 resource.secret.service.dns.name=resource-secret-core-service.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/scimService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/scimService-production.properties
index a40e22569..aa908fe82 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/scimService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/scimService-production.properties
@@ -17,8 +17,8 @@
 #  under the License.
 #
 
-scim.resource.user.endpoint=https://services.usecustos.org/apiserver/scim/v2/Users
-scim.resource.group.endpoint=https://services.usecustos.org/apiserver/scim/v2/Groups
+scim.resource.user.endpoint=https://prod.custos.usecustos.org/apiserver/scim/v2/Users
+scim.resource.group.endpoint=https://prod.custos.usecustos.org/apiserver/scim/v2/Groups
 iam.admin.service.dns.name=iam-admin-core-service.custos.svc.cluster.local
 iam.admin.service.port=7000
 credential.store.service.dns.name=credential-store-core-service.custos.svc.cluster.local
@@ -29,7 +29,7 @@ identity.service.dns.name=identity-core-service.custos.svc.cluster.local
 identity.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
-iam.server.url=https://services.usecustos.org/apiserver/auth/
+iam.server.url=https://prod.custos.usecustos.org/apiserver/auth/
 tenant.profile.core.service.dns.name=tenant-profile-core-service.custos.svc.cluster.local
 tenant.profile.core.service.port=7000
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/sharingManagementService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/sharingManagementService-production.properties
index 8eb98b1fe..6a75b10ea 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/sharingManagementService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/sharingManagementService-production.properties
@@ -29,7 +29,7 @@ identity.service.dns.name=identity-core-service.custos.svc.cluster.local
 identity.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 sharing.core.service.dns.name=sharing-core-service.custos.svc.cluster.local
 sharing.core.service.port=7000
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/sharingManagementService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/sharingManagementService-staging.properties
index 84d483579..d25415f34 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/sharingManagementService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/sharingManagementService-staging.properties
@@ -29,7 +29,7 @@ identity.service.dns.name=identity-core-service.custos.svc.cluster.local
 identity.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 sharing.core.service.dns.name=sharing-core-service.custos.svc.cluster.local
 sharing.core.service.port=7000
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/tenantManagementService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/tenantManagementService-production.properties
index d560fc48c..1300b9513 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/tenantManagementService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/tenantManagementService-production.properties
@@ -10,7 +10,7 @@ identity.service.dns.name=identity-core-service.custos.svc.cluster.local
 identity.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
 custos.logging.core.service.port=7000
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
@@ -19,4 +19,6 @@ resource.secret.service.dns.name=resource-secret-core-service.custos.svc.cluster
 resource.secret.service.port=7000
 tenant.base.uri=https://service.staging.usecustos.org/apiserver/tenant-management/v1.0.0/oauth2/tenant
 messaging.core.service.dns.name=custos-messaging-core-service.custos.svc.cluster.local
-messaging.core.service.port=7000
\ No newline at end of file
+messaging.core.service.port=7000
+sharing.core.service.dns.name=sharing-core-service.custos.svc.cluster.local
+sharing.core.service.port=7000
\ No newline at end of file
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/tenantManagementService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/tenantManagementService-staging.properties
index bec2fc96c..c6e3284ae 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/tenantManagementService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/tenantManagementService-staging.properties
@@ -10,7 +10,7 @@ identity.service.dns.name=identity-core-service.custos.svc.cluster.local
 identity.service.port=7000
 user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.local
 user.profile.core.service.port=7000
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
 custos.logging.core.service.port=7000
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
@@ -19,4 +19,6 @@ resource.secret.service.dns.name=resource-secret-core-service.custos.svc.cluster
 resource.secret.service.port=7000
 tenant.base.uri=https://service.staging.usecustos.org/apiserver/tenant-management/v1.0.0/oauth2/tenant
 messaging.core.service.dns.name=custos-messaging-core-service.custos.svc.cluster.local
-messaging.core.service.port=7000
\ No newline at end of file
+messaging.core.service.port=7000
+sharing.core.service.dns.name=sharing-core-service.custos.svc.cluster.local
+sharing.core.service.port=7000
\ No newline at end of file
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/userManagementService-production.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/userManagementService-production.properties
index d7d43a284..503dd25fa 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/userManagementService-production.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/userManagementService-production.properties
@@ -27,7 +27,7 @@ user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.
 user.profile.core.service.port=7000
 iam.admin.service.dns.name=iam-admin-core-service.custos.svc.cluster.local
 iam.admin.service.port=7000
-iam.server.url=https://keycloak.usecustos.org:31161/auth/
+iam.server.url=https://prod.keycloak.usecustos.org/auth/
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
 custos.logging.core.service.port=7000
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
diff --git a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/userManagementService-staging.properties b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/userManagementService-staging.properties
index 1d4ba4f1d..51774063a 100644
--- a/custos-core-services/utility-services/custos-configuration-service/src/main/resources/userManagementService-staging.properties
+++ b/custos-core-services/utility-services/custos-configuration-service/src/main/resources/userManagementService-staging.properties
@@ -27,7 +27,7 @@ user.profile.core.service.dns.name=user-profile-core-service.custos.svc.cluster.
 user.profile.core.service.port=7000
 iam.admin.service.dns.name=iam-admin-core-service.custos.svc.cluster.local
 iam.admin.service.port=7000
-iam.server.url=https://service.staging.usecustos.org:30170/auth/
+iam.server.url=https://keycloak.staging.usecustos.org:30170/auth/
 custos.logging.core.service.dns.name=custos-logging.custos.svc.cluster.local
 custos.logging.core.service.port=7000
 cluster.management.core.service.dns.name=cluster-management-core-service.custos.svc.cluster.local
diff --git a/custos-external-services-distributions/custos-grpc-web-proxy/pom.xml b/custos-external-services-distributions/custos-grpc-web-proxy/pom.xml
index 7cd8681ef..83c34abc6 100644
--- a/custos-external-services-distributions/custos-grpc-web-proxy/pom.xml
+++ b/custos-external-services-distributions/custos-grpc-web-proxy/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <artifactId>custos-external-services-distributions</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-external-services-distributions/custos-grpc-web-proxy/src/main/helm/templates/deployment.yaml b/custos-external-services-distributions/custos-grpc-web-proxy/src/main/helm/templates/deployment.yaml
index 735844da4..a335367e3 100644
--- a/custos-external-services-distributions/custos-grpc-web-proxy/src/main/helm/templates/deployment.yaml
+++ b/custos-external-services-distributions/custos-grpc-web-proxy/src/main/helm/templates/deployment.yaml
@@ -48,7 +48,7 @@ spec:
           secret:
              secretName: tls-services-secret
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-external-services-distributions/custos-grpc-web-proxy/src/main/helm/values.yaml b/custos-external-services-distributions/custos-grpc-web-proxy/src/main/helm/values.yaml
index 94a8c5550..02eaf67ed 100644
--- a/custos-external-services-distributions/custos-grpc-web-proxy/src/main/helm/values.yaml
+++ b/custos-external-services-distributions/custos-grpc-web-proxy/src/main/helm/values.yaml
@@ -62,8 +62,8 @@ resources:
     #   cpu: 100m
     memory: 150Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
diff --git a/custos-external-services-distributions/custos-keycloak/pom.xml b/custos-external-services-distributions/custos-keycloak/pom.xml
index cc3239cbc..67d5dcd4c 100644
--- a/custos-external-services-distributions/custos-keycloak/pom.xml
+++ b/custos-external-services-distributions/custos-keycloak/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <artifactId>custos-external-services-distributions</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/email/messages/messages_en.properties b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/email/messages/messages_en.properties
index 1028c4bd1..87f1e88b4 100644
--- a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/email/messages/messages_en.properties
+++ b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/email/messages/messages_en.properties
@@ -1,6 +1,6 @@
 emailVerificationSubject=Verify email
-emailVerificationBody=Someone has created a {2} account with this email address. If this was you, click the link below to verify your email address\n\n{0}\n\nThis link will expire within {3}.\n\nIf you didn''t create this account, just ignore this message.
-emailVerificationBodyHtml=<p>Someone has created a {2} account with this email address. If this was you, click the link below to verify your email address</p><p><a href="{0}">Link to e-mail address verification</a></p><p>This link will expire within {3}.</p><p>If you didn''t create this account, just ignore this message.</p>
+emailVerificationBody=Someone has created an {2} account with this email address. If this was you, click the link below to verify your email address\n\n{0}\n\nThis link will expire within {3}.\n\nIf you didn''t create this account, please ignore this message.
+emailVerificationBodyHtml=<p>Someone has created an {2} account with this email address. If this was you, click the link below to verify your email address</p><p><a href="{0}">Link to e-mail address verification</a></p><p>This link will expire within {3}.</p><p>If you didn''t create this account, please ignore this message.</p>
 emailTestSubject=[KEYCLOAK] - SMTP test message
 emailTestBody=This is a test message
 emailTestBodyHtml=<p>This is a test message</p>
diff --git a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-idp-link-email.ftl b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-idp-link-email.ftl
index dd4284c80..5b521d19a 100644
--- a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-idp-link-email.ftl
+++ b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-idp-link-email.ftl
@@ -1,25 +1,5 @@
 <#import "template.ftl" as layout>
 <@layout.registrationLayout; section>
-    <style>
-        #kc-link-confirm {
-            position: relative;
-            z-index: 1;
-            background: #ffffff;
-            max-width: 460px;
-            margin: 0 auto 10px;
-            padding: 45px;
-            border-radius: 2px;
-            box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
-            color: #ff6f01;
-        }
-
-        #kc-link-confirm-header > p {
-            font-weight: bold;
-            font-size: 1.4rem;
-            border-bottom: #dddddd 1px solid;
-            padding-bottom: 5px;
-        }
-    </style>
     <#if section = "header">
 <#--        ${msg("emailLinkIdpTitle", idpAlias)}-->
     <#elseif section = "form">
diff --git a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-update-profile.ftl b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-update-profile.ftl
new file mode 100644
index 000000000..b7769698c
--- /dev/null
+++ b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-update-profile.ftl
@@ -0,0 +1,74 @@
+<#import "template.ftl" as layout>
+<@layout.registrationLayout; section>
+    <#if section = "header">
+        <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
+        <div class="welcome">
+            <div class="welcome-text">
+                <p>Please Verify and Update Your Account Information</p>
+            </div>
+        </div>
+    <#elseif section = "form">
+        <div class="login update-info">
+            <div class="login-form">
+                <h3><span class="htrc-text">Account Information</span></h3>
+        <form id="kc-update-profile-form" class="form" action="${url.loginAction}" method="post">
+            <#if user.editUsernameAllowed>
+                <div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('username',properties.kcFormGroupErrorClass!)}">
+                    <div class="${properties.kcLabelWrapperClass!}">
+                        <label for="username" class="${properties.kcLabelClass!}" hidden>${msg("username")}</label>
+                    </div>
+                    <div class="${properties.kcInputWrapperClass!}">
+                        <input type="text" id="username" name="username" value="${(user.username!'')}" class="login-field" hidden/>
+                    </div>
+                </div>
+            </#if>
+            <div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('email',properties.kcFormGroupErrorClass!)}">
+                <div class="${properties.kcLabelWrapperClass!}">
+                    <label for="email" class="${properties.kcLabelClass!}">${msg("email")}</label>
+                </div>
+                <div class="${properties.kcInputWrapperClass!}">
+                    <input type="text" id="email" name="email" value="${(user.email!'')}" class="login-field" placeholder="Please enter your institutional email"/>
+                </div>
+            </div>
+
+            <div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('firstName',properties.kcFormGroupErrorClass!)}">
+                <div class="${properties.kcLabelWrapperClass!}">
+                    <label for="firstName" class="${properties.kcLabelClass!}">${msg("firstName")}</label>
+                </div>
+                <div class="${properties.kcInputWrapperClass!}">
+                    <input type="text" id="firstName" name="firstName" value="${(user.firstName!'')}" class="login-field" />
+                </div>
+            </div>
+
+            <div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('lastName',properties.kcFormGroupErrorClass!)}">
+                <div class="${properties.kcLabelWrapperClass!}">
+                    <label for="lastName" class="${properties.kcLabelClass!}">${msg("lastName")}</label>
+                </div>
+                <div class="${properties.kcInputWrapperClass!}">
+                    <input type="text" id="lastName" name="lastName" value="${(user.lastName!'')}" class="login-field" />
+                </div>
+            </div>
+
+            <div class="${properties.kcFormGroupClass!}">
+                <div id="kc-form-options" class="${properties.kcFormOptionsClass!}">
+                    <div class="${properties.kcFormOptionsWrapperClass!}">
+                    </div>
+                </div>
+
+                <div id="kc-form-buttons" class="${properties.kcFormButtonsClass!}">
+                    <input class="htrc-btn-confirm btn-update-info" type="submit" value="${msg("doSubmit")}" onclick="replaceUserNameValueFromEmail()" />
+                </div>
+            </div>
+        </form>
+            </div>
+        </div>
+    </#if>
+
+    <script>
+        function replaceUserNameValueFromEmail() {
+            var userName = document.getElementById("username");
+            var email = document.getElementById("email");
+            userName.value = email.value;
+        }
+    </script>
+</@layout.registrationLayout>
diff --git a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-verify-email.ftl b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-verify-email.ftl
new file mode 100644
index 000000000..db72ee18f
--- /dev/null
+++ b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login-verify-email.ftl
@@ -0,0 +1,18 @@
+<#import "template.ftl" as layout>
+<@layout.registrationLayout; section>
+    <#if section = "header">
+
+    <#elseif section = "form">
+        <div id="kc-link-confirm">
+            <div id="kc-link-confirm-header">
+                <p>${msg("emailVerifyTitle")}</p>
+            </div>
+            <p class="htrc-inst-text">
+                ${msg("emailVerifyInstruction1")}
+            </p>
+            <p class="htrc-inst-text">
+                ${msg("emailVerifyInstruction2")} <a href="${url.loginAction}">${msg("doClickHere")}</a> ${msg("emailVerifyInstruction3")}
+            </p>
+        </div>
+    </#if>
+</@layout.registrationLayout>
\ No newline at end of file
diff --git a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login.ftl b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login.ftl
index 0e97d4e25..1d3207d55 100644
--- a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login.ftl
+++ b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/login.ftl
@@ -49,6 +49,9 @@
                 <div class="link-group">
                     <a id="passwordRecoverLink" href="${client.baseUrl}\passwordresetrequestpage">Forgot Password?</a> | <a id="usernameRecoverLink" href="${client.baseUrl}\useridrequestpage">Forgot Username?</a> | <a id="userSignUpLink" href="${client.baseUrl}\signuppage">Create Account</a>
                 </div>
+                <div class="link-group">
+                    Have more questions? See our <a id="faqLink" href="${client.baseUrl}\faq">FAQ</a> page
+                </div>
             </div>
         </#if>
         <#if social.providers??>
diff --git a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/resources/css/styles.css b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/resources/css/styles.css
index 8baee86b0..c0a8d4b15 100644
--- a/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/resources/css/styles.css
+++ b/custos-external-services-distributions/custos-keycloak/src/main/resources/themes/htrc/login/resources/css/styles.css
@@ -116,13 +116,13 @@ a:focus {
   color: #fff;
 }
 
-.login-form > form > input {
+.login-form > form > input, .login-field {
   font-family: "Roboto", sans-serif;
   outline: 0;
   background: #f2f2f2;
   width: 100%;
   border: 0;
-  margin: 0 0 15px;
+  margin: 5px 0 15px;
   padding: 15px;
   box-sizing: border-box;
   font-size: 14px;
@@ -152,6 +152,41 @@ a:focus {
 }
 
 .link-group {
+  padding: 4px;
   font-size: 14px;
   text-align: center;
 }
+
+.update-info {
+  font-family: "Roboto", sans-serif;
+}
+
+.btn-update-info {
+  margin-top: 20px;
+}
+
+#kc-link-confirm {
+  position: relative;
+  z-index: 1;
+  background: #ffffff;
+  max-width: 460px;
+  margin: 0 auto 10px;
+  padding: 45px;
+  border-radius: 2px;
+  box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
+  color: #ff6f01;
+}
+
+#kc-link-confirm-header > p {
+  font-weight: bold;
+  font-size: 1.4rem;
+  border-bottom: #dddddd 1px solid;
+  padding-bottom: 5px;
+}
+
+.htrc-inst-text {
+  color: #333333;
+  font-family: "Roboto", sans-serif;
+  font-size: 16px;
+  line-height: 24px;
+}
\ No newline at end of file
diff --git a/custos-external-services-distributions/pom.xml b/custos-external-services-distributions/pom.xml
index 85966c997..61f79446f 100644
--- a/custos-external-services-distributions/pom.xml
+++ b/custos-external-services-distributions/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <artifactId>custos</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-federated-services-clients/pom.xml b/custos-federated-services-clients/pom.xml
index dae7148dc..5170d39e3 100644
--- a/custos-federated-services-clients/pom.xml
+++ b/custos-federated-services-clients/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -82,7 +83,7 @@
         <dependency>
             <groupId>org.apache.custos</groupId>
             <artifactId>cluster-management-core-service-client-stub</artifactId>
-            <version>1.1-SNAPSHOT</version>
+            <version>${project.version}</version>
             <scope>compile</scope>
         </dependency>
     </dependencies>
diff --git a/custos-federated-services-clients/src/main/java/org/apache/custos/federated/services/clients/keycloak/KeycloakClient.java b/custos-federated-services-clients/src/main/java/org/apache/custos/federated/services/clients/keycloak/KeycloakClient.java
index 3d61a5fc6..8598d6846 100644
--- a/custos-federated-services-clients/src/main/java/org/apache/custos/federated/services/clients/keycloak/KeycloakClient.java
+++ b/custos-federated-services-clients/src/main/java/org/apache/custos/federated/services/clients/keycloak/KeycloakClient.java
@@ -866,7 +866,6 @@ public boolean deleteRealm(String realmId) {
         Keycloak client = null;
         try {
             // get client
-            LOGGER.info("IAM server URL " + iamServerURL);
             client = getClient(iamServerURL, superAdminRealmID, superAdminUserName, superAdminPassword);
 
             RealmResource realmResource = client.realm(realmId);
diff --git a/custos-integration-core/pom.xml b/custos-integration-core/pom.xml
index 5867dd638..97b544a37 100644
--- a/custos-integration-core/pom.xml
+++ b/custos-integration-core/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/agent-management-service-parent/agent-management-service-sidecar/pom.xml b/custos-integration-services/agent-management-service-parent/agent-management-service-sidecar/pom.xml
index 0556c8b8c..9b301506e 100644
--- a/custos-integration-services/agent-management-service-parent/agent-management-service-sidecar/pom.xml
+++ b/custos-integration-services/agent-management-service-parent/agent-management-service-sidecar/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>agent-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/agent-management-service-parent/agent-management-service/pom.xml b/custos-integration-services/agent-management-service-parent/agent-management-service/pom.xml
index 366a6b4ad..91996bc40 100644
--- a/custos-integration-services/agent-management-service-parent/agent-management-service/pom.xml
+++ b/custos-integration-services/agent-management-service-parent/agent-management-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>agent-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/deployment.yaml b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/deployment.yaml
index 1a92ebea1..668c290e3 100644
--- a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/deployment.yaml
@@ -66,7 +66,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/ingress-grpc.yaml b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/ingress-grpc.yaml
index d55dcd8ab..2ed31650b 100644
--- a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/ingress-grpc.yaml
+++ b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/ingress-grpc.yaml
@@ -4,7 +4,7 @@ metadata:
   annotations:
     kubernetes.io/ingress.class: "nginx"
     nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
   name: ${artifactId}-ingress-grpc
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
        http:
         paths:
           - path: /org.apache.custos.agent.management.service.AgentManagementService(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: agent-management-service
-              servicePort: grpc
+              service:
+                  name: agent-management-service
+                  port:
+                     name: grpc
 
   tls:
     - hosts:
diff --git a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/ingress.yaml b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/ingress.yaml
index 6a0effb24..b801233cc 100644
--- a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/templates/ingress.yaml
@@ -4,7 +4,7 @@ metadata:
   name: ${artifactId}-ingress
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /agent-management/$2
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
       http:
         paths:
           - path: /agent-management(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: agent-management-service
-              servicePort: envoyhttp
+              service:
+                  name: agent-management-service
+                  port:
+                     name: envoyhttp
 
   tls:
     - hosts:
diff --git a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/values.yaml b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/values.yaml
index 39ac7e1ee..1b96aff40 100644
--- a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/values.yaml
+++ b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/helm/values.yaml
@@ -62,7 +62,8 @@ resources:
     #   cpu: 100m
    # memory: 150Mi
 
-nodeSelector: {}
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -85,4 +86,5 @@ readinessProbe:
   successThreshold: 1
 
 deployment:
-  host: custos.scigap.org
\ No newline at end of file
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
\ No newline at end of file
diff --git a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/resources/application.properties b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/resources/application.properties
index 502049251..4a698b75b 100644
--- a/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/resources/application.properties
+++ b/custos-integration-services/agent-management-service-parent/agent-management-service/src/main/resources/application.properties
@@ -25,4 +25,5 @@ management.security.enabled=false
 management.endpoints.web.exposure.include=*
 management.endpoint.metrics.enabled=true
 spring.main.allow-bean-definition-overriding=true
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active=@spring.profiles.active@
+logging.level.root=WARN
\ No newline at end of file
diff --git a/custos-integration-services/agent-management-service-parent/pom.xml b/custos-integration-services/agent-management-service-parent/pom.xml
index 25be36417..2944ec4e5 100644
--- a/custos-integration-services/agent-management-service-parent/pom.xml
+++ b/custos-integration-services/agent-management-service-parent/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/custos-integration-services-commons/pom.xml b/custos-integration-services/custos-integration-services-commons/pom.xml
index 8ee33af0f..cfde8fcb5 100644
--- a/custos-integration-services/custos-integration-services-commons/pom.xml
+++ b/custos-integration-services/custos-integration-services-commons/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/custos-integration-services-swagger/pom.xml b/custos-integration-services/custos-integration-services-swagger/pom.xml
index 8083f9904..79098fea5 100644
--- a/custos-integration-services/custos-integration-services-swagger/pom.xml
+++ b/custos-integration-services/custos-integration-services-swagger/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/custos-integration-services-swagger/src/main/helm/templates/deployment.yaml b/custos-integration-services/custos-integration-services-swagger/src/main/helm/templates/deployment.yaml
index bfa300a1a..3c30739fc 100644
--- a/custos-integration-services/custos-integration-services-swagger/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/custos-integration-services-swagger/src/main/helm/templates/deployment.yaml
@@ -48,7 +48,7 @@ spec:
           resources:
               {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/custos-integration-services-swagger/src/main/helm/templates/ingress.yaml b/custos-integration-services/custos-integration-services-swagger/src/main/helm/templates/ingress.yaml
index aeb06a7cc..1018dd61a 100644
--- a/custos-integration-services/custos-integration-services-swagger/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/custos-integration-services-swagger/src/main/helm/templates/ingress.yaml
@@ -4,17 +4,20 @@ metadata:
   name: ${artifactId}-ingress
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /$2
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
-    - host: custos.scigap.org
+    - host: "${host}"
       http:
         paths:
           - path: /services(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: custos-integration-services-swagger
-              servicePort: http
+              service:
+                 name: custos-integration-services-swagger
+                 port:
+                    name: http
 
   tls:
     - hosts:
diff --git a/custos-integration-services/custos-integration-services-swagger/src/main/helm/values.yaml b/custos-integration-services/custos-integration-services-swagger/src/main/helm/values.yaml
index ef04e988d..f1b38c003 100644
--- a/custos-integration-services/custos-integration-services-swagger/src/main/helm/values.yaml
+++ b/custos-integration-services/custos-integration-services-swagger/src/main/helm/values.yaml
@@ -61,8 +61,8 @@ resources:
     #   cpu: 100m
    # memory: 150Mi
 
-nodeSelector: {}
-    #custosServiceWorker: "enabled"
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -81,3 +81,7 @@ readinessProbe:
   initialDelaySeconds: 5
   periodSeconds: 1
   successThreshold: 1
+
+deployment:
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
diff --git a/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos/IamAdminService.proto b/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos/IamAdminService.proto
index 42aef71e5..77fe2bb28 100644
--- a/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos/IamAdminService.proto
+++ b/custos-integration-services/custos-integration-services-swagger/src/main/resources/protos/IamAdminService.proto
@@ -429,6 +429,12 @@ message GetExternalIDPsResponse {
   repeated   ExternalIDPLink idp_links = 1;
 }
 
+message AddExternalIDPLinksRequest {
+   repeated ExternalIDPLink idp_links = 1;
+   int64 tenant_id= 2;
+   string client_id = 3;
+}
+
 service IamAdminService {
 
     rpc setUPTenant (SetUpTenantRequest) returns (SetUpTenantResponse);
@@ -453,6 +459,7 @@ service IamAdminService {
     rpc removeAdminPrivilege (UserSearchRequest) returns (OperationStatus);
     rpc deleteExternalIDPLinksOfUsers(DeleteExternalIDPsRequest) returns (OperationStatus);
     rpc getExternalIDPLinksOfUsers(GetExternalIDPsRequest) returns (GetExternalIDPsResponse);
+    rpc addExternalIDPLinksOfUsers(AddExternalIDPLinksRequest) returns (OperationStatus);
 
     rpc registerAndEnableUsers (RegisterUsersRequest) returns (RegisterUsersResponse);
     rpc addUserAttributes (AddUserAttributesRequest) returns (OperationStatus);
diff --git a/custos-integration-services/group-management-service-parent/group-management-service-sidecar/pom.xml b/custos-integration-services/group-management-service-parent/group-management-service-sidecar/pom.xml
index 1c3035a4a..37329b0db 100644
--- a/custos-integration-services/group-management-service-parent/group-management-service-sidecar/pom.xml
+++ b/custos-integration-services/group-management-service-parent/group-management-service-sidecar/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>group-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/group-management-service-parent/group-management-service/pom.xml b/custos-integration-services/group-management-service-parent/group-management-service/pom.xml
index ea191f99c..f191a1736 100644
--- a/custos-integration-services/group-management-service-parent/group-management-service/pom.xml
+++ b/custos-integration-services/group-management-service-parent/group-management-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>group-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/deployment.yaml b/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/deployment.yaml
index 1a92ebea1..668c290e3 100644
--- a/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/deployment.yaml
@@ -66,7 +66,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/ingress-grpc.yaml b/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/ingress-grpc.yaml
index 8cfecc0e5..118a84d81 100644
--- a/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/ingress-grpc.yaml
+++ b/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/ingress-grpc.yaml
@@ -4,7 +4,7 @@ metadata:
   annotations:
     kubernetes.io/ingress.class: "nginx"
     nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
   name: ${artifactId}-ingress-grpc
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
       http:
         paths:
           - path: /org.apache.custos.group.management.service.GroupManagementService(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: group-management-service
-              servicePort: grpc
+              service:
+                  name: group-management-service
+                  port:
+                     name: grpc
 
   tls:
     - hosts:
diff --git a/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/ingress.yaml b/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/ingress.yaml
index 24d7191dc..2afbcd521 100644
--- a/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/templates/ingress.yaml
@@ -4,7 +4,7 @@ metadata:
   name: ${artifactId}-ingress
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /group-management/$2
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
       http:
         paths:
           - path: /group-management(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: group-management-service
-              servicePort: envoyhttp
+              service:
+                  name: group-management-service
+                  port:
+                    name: envoyhttp
 
   tls:
     - hosts:
diff --git a/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/values.yaml b/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/values.yaml
index c0ba28b8c..25e9f8f0a 100644
--- a/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/values.yaml
+++ b/custos-integration-services/group-management-service-parent/group-management-service/src/main/helm/values.yaml
@@ -62,7 +62,8 @@ resources: {}
   #   cpu: 100m
   #   memory: 128Mi
 
-nodeSelector: {}
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -84,4 +85,5 @@ readinessProbe:
   successThreshold: 1
 
 deployment:
-  host: custos.scigap.org
\ No newline at end of file
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
\ No newline at end of file
diff --git a/custos-integration-services/group-management-service-parent/group-management-service/src/main/resources/application.properties b/custos-integration-services/group-management-service-parent/group-management-service/src/main/resources/application.properties
index 3767f76e2..6b687ae8e 100644
--- a/custos-integration-services/group-management-service-parent/group-management-service/src/main/resources/application.properties
+++ b/custos-integration-services/group-management-service-parent/group-management-service/src/main/resources/application.properties
@@ -26,4 +26,5 @@ management.security.enabled=false
 management.endpoints.web.exposure.include=*
 management.endpoint.metrics.enabled=true
 spring.main.allow-bean-definition-overriding=true
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active=@spring.profiles.active@
+logging.level.root=WARN
\ No newline at end of file
diff --git a/custos-integration-services/group-management-service-parent/pom.xml b/custos-integration-services/group-management-service-parent/pom.xml
index 0a5848dcf..13d31f97c 100644
--- a/custos-integration-services/group-management-service-parent/pom.xml
+++ b/custos-integration-services/group-management-service-parent/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/identity-management-service-parent/identity-management-service-sidecar/pom.xml b/custos-integration-services/identity-management-service-parent/identity-management-service-sidecar/pom.xml
index b109a8b8e..3bc1ddb31 100644
--- a/custos-integration-services/identity-management-service-parent/identity-management-service-sidecar/pom.xml
+++ b/custos-integration-services/identity-management-service-parent/identity-management-service-sidecar/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>identity-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/identity-management-service-parent/identity-management-service/pom.xml b/custos-integration-services/identity-management-service-parent/identity-management-service/pom.xml
index 58eab8477..f994ad753 100644
--- a/custos-integration-services/identity-management-service-parent/identity-management-service/pom.xml
+++ b/custos-integration-services/identity-management-service-parent/identity-management-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>identity-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/deployment.yaml b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/deployment.yaml
index 488d4487e..4ba779eeb 100644
--- a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/deployment.yaml
@@ -66,7 +66,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/ingress-grpc.yaml b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/ingress-grpc.yaml
index d146c0189..737fe8986 100644
--- a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/ingress-grpc.yaml
+++ b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/ingress-grpc.yaml
@@ -4,7 +4,7 @@ metadata:
   annotations:
     kubernetes.io/ingress.class: "nginx"
     nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
   name: ${artifactId}-ingress-grpc
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
        http:
         paths:
          - path: /org.apache.custos.identity.management.service.IdentityManagementService(/|$)(.*)
+           pathType: "Prefix"
            backend:
-              serviceName: identity-management-service
-              servicePort: grpc
+              service:
+                 name: identity-management-service
+                 port:
+                    name: grpc
 
   tls:
     - hosts:
diff --git a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/ingress.yaml b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/ingress.yaml
index 866f23425..4a56ecdd7 100644
--- a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/templates/ingress.yaml
@@ -4,7 +4,7 @@ metadata:
   name: ${artifactId}-ingress
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /identity-management/$2
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
       http:
         paths:
           - path: /identity-management(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: identity-management-service
-              servicePort: envoyhttp
+              service:
+                 name: identity-management-service
+                 port:
+                    name: envoyhttp
 
   tls:
     - hosts:
diff --git a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/values.yaml b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/values.yaml
index a87461400..eb81e6148 100644
--- a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/values.yaml
+++ b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/helm/values.yaml
@@ -62,7 +62,8 @@ resources: {}
   #   cpu: 100m
   #   memory: 128Mi
 
-nodeSelector: {}
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -85,4 +86,5 @@ readinessProbe:
   successThreshold: 1
 
 deployment:
-  host: custos.scigap.org
\ No newline at end of file
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
\ No newline at end of file
diff --git a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/java/org/apache/custos/identity/management/service/IdentityManagementService.java b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/java/org/apache/custos/identity/management/service/IdentityManagementService.java
index 2e45e7f7b..78b6e97c7 100644
--- a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/java/org/apache/custos/identity/management/service/IdentityManagementService.java
+++ b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/java/org/apache/custos/identity/management/service/IdentityManagementService.java
@@ -244,7 +244,7 @@ public void token(GetTokenRequest request, StreamObserver<Struct> responseObserv
                     values.put("param:email", user.getEmailAddress());
                     values.put("param:tenant_id", request.getClientId());
 
-                    if (exsistingProfile == null || exsistingProfile.getUsername().trim().isEmpty()) {
+//                    if (exsistingProfile == null || exsistingProfile.getUsername().trim().isEmpty()) {
                         userProfileClient.createUserProfile(req);
                         org.apache.custos.tenant.profile.service.GetTenantRequest tenantReq =
                                 org.apache.custos.tenant.profile.service.GetTenantRequest
@@ -254,7 +254,7 @@ public void token(GetTokenRequest request, StreamObserver<Struct> responseObserv
                                 tenantProfileClient.getTenant(tenantReq);
                         values.put("param:tenant_name", tenantResponse.getTenant().getClientName());
                         emailSender.sendEmail(tenantId, CustosEvent.NEW_USER_SIGNUP, values);
-                    }
+//                    }
                 }
             });
             responseObserver.onNext(response);
diff --git a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/resources/application.properties b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/resources/application.properties
index 882a9bdd4..65d4b8ebb 100644
--- a/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/resources/application.properties
+++ b/custos-integration-services/identity-management-service-parent/identity-management-service/src/main/resources/application.properties
@@ -25,4 +25,5 @@ management.security.enabled=false
 management.endpoints.web.exposure.include=*
 management.endpoint.metrics.enabled=true
 spring.main.allow-bean-definition-overriding=true
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active=@spring.profiles.active@
+logging.level.root=WARN
\ No newline at end of file
diff --git a/custos-integration-services/identity-management-service-parent/pom.xml b/custos-integration-services/identity-management-service-parent/pom.xml
index 6ab832c81..f83b31ca1 100644
--- a/custos-integration-services/identity-management-service-parent/pom.xml
+++ b/custos-integration-services/identity-management-service-parent/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/log-management-service-parent/log-management-service-sidecar/pom.xml b/custos-integration-services/log-management-service-parent/log-management-service-sidecar/pom.xml
index 42ee88da0..7730d2cc5 100644
--- a/custos-integration-services/log-management-service-parent/log-management-service-sidecar/pom.xml
+++ b/custos-integration-services/log-management-service-parent/log-management-service-sidecar/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>log-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/log-management-service-parent/log-management-service/pom.xml b/custos-integration-services/log-management-service-parent/log-management-service/pom.xml
index da29219f9..7d5f7037c 100644
--- a/custos-integration-services/log-management-service-parent/log-management-service/pom.xml
+++ b/custos-integration-services/log-management-service-parent/log-management-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>log-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -141,7 +142,7 @@
         <dependency>
             <groupId>org.apache.custos</groupId>
             <artifactId>custos-logging-client-stub</artifactId>
-            <version>1.1-SNAPSHOT</version>
+            <version>${project.version}</version>
             <scope>compile</scope>
         </dependency>
 
diff --git a/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/deployment.yaml b/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/deployment.yaml
index 1a92ebea1..668c290e3 100644
--- a/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/deployment.yaml
@@ -66,7 +66,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/ingress-grpc.yaml b/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/ingress-grpc.yaml
index 278cb9bbe..c3776c951 100644
--- a/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/ingress-grpc.yaml
+++ b/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/ingress-grpc.yaml
@@ -4,7 +4,7 @@ metadata:
   annotations:
     kubernetes.io/ingress.class: "nginx"
     nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
   name: ${artifactId}-ingress-grpc
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
        http:
         paths:
           - path: /org.apache.custos.log.management.service.LogManagementService(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: log-management-service
-              servicePort: grpc
+              service:
+                 name: log-management-service
+                 port:
+                   name: grpc
 
   tls:
     - hosts:
diff --git a/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/ingress.yaml b/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/ingress.yaml
index d35c3711e..87af83f68 100644
--- a/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/templates/ingress.yaml
@@ -4,7 +4,7 @@ metadata:
   name: ${artifactId}-ingress
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /log-management/$2
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
       http:
         paths:
           - path: /log-management(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: log-management-service
-              servicePort: envoyhttp
+              service:
+                 name: log-management-service
+                 port:
+                    name: envoyhttp
 
   tls:
     - hosts:
diff --git a/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/values.yaml b/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/values.yaml
index ef87192d1..b81030170 100644
--- a/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/values.yaml
+++ b/custos-integration-services/log-management-service-parent/log-management-service/src/main/helm/values.yaml
@@ -62,7 +62,8 @@ resources: {}
   #   cpu: 100m
   #   memory: 128Mi
 
-nodeSelector: {}
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -91,4 +92,5 @@ readinessProbe:
   successThreshold: 1
 
 deployment:
-  host: custos.scigap.org
\ No newline at end of file
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
\ No newline at end of file
diff --git a/custos-integration-services/log-management-service-parent/log-management-service/src/main/resources/application.properties b/custos-integration-services/log-management-service-parent/log-management-service/src/main/resources/application.properties
index 8111e5fbf..0a49502b4 100644
--- a/custos-integration-services/log-management-service-parent/log-management-service/src/main/resources/application.properties
+++ b/custos-integration-services/log-management-service-parent/log-management-service/src/main/resources/application.properties
@@ -25,4 +25,5 @@ management.security.enabled=false
 management.endpoints.web.exposure.include=*
 management.endpoint.metrics.enabled=true
 spring.main.allow-bean-definition-overriding=true
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active=@spring.profiles.active@
+logging.level.root=WARN
\ No newline at end of file
diff --git a/custos-integration-services/log-management-service-parent/pom.xml b/custos-integration-services/log-management-service-parent/pom.xml
index 994165202..cba7a6810 100644
--- a/custos-integration-services/log-management-service-parent/pom.xml
+++ b/custos-integration-services/log-management-service-parent/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/pom.xml b/custos-integration-services/pom.xml
index 33e1a7c73..a607ece14 100644
--- a/custos-integration-services/pom.xml
+++ b/custos-integration-services/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>custos-integration-services</artifactId>
diff --git a/custos-integration-services/resource-secret-management-service-parent/pom.xml b/custos-integration-services/resource-secret-management-service-parent/pom.xml
index da644b988..499a67d04 100644
--- a/custos-integration-services/resource-secret-management-service-parent/pom.xml
+++ b/custos-integration-services/resource-secret-management-service-parent/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service-sidecar/pom.xml b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service-sidecar/pom.xml
index 34ca03e5f..f72b07dbe 100644
--- a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service-sidecar/pom.xml
+++ b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service-sidecar/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>resource-secret-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/pom.xml b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/pom.xml
index 8d4e7b758..b36d01867 100644
--- a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/pom.xml
+++ b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>resource-secret-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/deployment.yaml b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/deployment.yaml
index 1a92ebea1..668c290e3 100644
--- a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/deployment.yaml
@@ -66,7 +66,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/ingress-grpc.yaml b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/ingress-grpc.yaml
index 94f136c9a..ec7e0794d 100644
--- a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/ingress-grpc.yaml
+++ b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/ingress-grpc.yaml
@@ -4,7 +4,7 @@ metadata:
   annotations:
     kubernetes.io/ingress.class: "nginx"
     nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
   name: ${artifactId}-ingress-grpc
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
        http:
         paths:
           - path: /org.apache.custos.resource.secret.management.service.ResourceSecretManagementService(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: resource-secret-management-service
-              servicePort: grpc
+              service:
+                  name: resource-secret-management-service
+                  port:
+                     name: grpc
 
   tls:
     - hosts:
diff --git a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/ingress.yaml b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/ingress.yaml
index 1412fd24b..5a803e6d1 100644
--- a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/templates/ingress.yaml
@@ -4,7 +4,7 @@ metadata:
   name: ${artifactId}-ingress
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /resource-secret-management/$2
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
       http:
         paths:
           - path: /resource-secret-management(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: resource-secret-management-service
-              servicePort: envoyhttp
+              service:
+                   name: resource-secret-management-service
+                   port:
+                      name: envoyhttp
 
   tls:
     - hosts:
diff --git a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/values.yaml b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/values.yaml
index fa00e1648..4dcbc552f 100644
--- a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/values.yaml
+++ b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/helm/values.yaml
@@ -62,7 +62,8 @@ resources: {}
   #   cpu: 100m
   #   memory: 128Mi
 
-nodeSelector: {}
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -90,4 +91,5 @@ readinessProbe:
   successThreshold: 1
 
 deployment:
-  host: custos.scigap.org
\ No newline at end of file
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
\ No newline at end of file
diff --git a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/resources/application.properties b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/resources/application.properties
index 33d266df0..cfad67ee7 100644
--- a/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/resources/application.properties
+++ b/custos-integration-services/resource-secret-management-service-parent/resource-secret-management-service/src/main/resources/application.properties
@@ -25,4 +25,5 @@ management.security.enabled=false
 management.endpoints.web.exposure.include=*
 management.endpoint.metrics.enabled=true
 spring.main.allow-bean-definition-overriding=true
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active=@spring.profiles.active@
+logging.level.root=WARN
\ No newline at end of file
diff --git a/custos-integration-services/scim-service/pom.xml b/custos-integration-services/scim-service/pom.xml
index a0af4fb40..f97677447 100644
--- a/custos-integration-services/scim-service/pom.xml
+++ b/custos-integration-services/scim-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/scim-service/src/main/helm/templates/deployment.yaml b/custos-integration-services/scim-service/src/main/helm/templates/deployment.yaml
index 0c9cb91a9..202764018 100644
--- a/custos-integration-services/scim-service/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/scim-service/src/main/helm/templates/deployment.yaml
@@ -50,7 +50,7 @@ spec:
           resources:
               {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/scim-service/src/main/helm/templates/ingress.yaml b/custos-integration-services/scim-service/src/main/helm/templates/ingress.yaml
index 3666ec6f5..7a8f94e8f 100644
--- a/custos-integration-services/scim-service/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/scim-service/src/main/helm/templates/ingress.yaml
@@ -5,16 +5,19 @@ metadata:
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /$2
     kubernetes.io/ingress.class: "nginx"
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
 spec:
   rules:
     - host: {{ .Values.deployment.host }}
       http:
         paths:
           - path: /scim(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: scim-service
-              servicePort: http
+              service:
+                name: scim-service
+                port:
+                   name: http
 
   tls:
     - hosts:
diff --git a/custos-integration-services/scim-service/src/main/helm/values.yaml b/custos-integration-services/scim-service/src/main/helm/values.yaml
index 281aaa554..7520b360d 100644
--- a/custos-integration-services/scim-service/src/main/helm/values.yaml
+++ b/custos-integration-services/scim-service/src/main/helm/values.yaml
@@ -62,7 +62,8 @@ resources: {}
   #   cpu: 100m
   #   memory: 128Mi
 
-nodeSelector: {}
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -79,5 +80,5 @@ readinessProbe:
 
 
 deployment:
-  host: custos.scigap.org
-
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
diff --git a/custos-integration-services/sharing-management-service-parent/pom.xml b/custos-integration-services/sharing-management-service-parent/pom.xml
index 1f2fc99ba..e9f493656 100644
--- a/custos-integration-services/sharing-management-service-parent/pom.xml
+++ b/custos-integration-services/sharing-management-service-parent/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/sharing-management-service-parent/sharing-management-service-sidecar/pom.xml b/custos-integration-services/sharing-management-service-parent/sharing-management-service-sidecar/pom.xml
index 63d8378d7..9b65d19d1 100644
--- a/custos-integration-services/sharing-management-service-parent/sharing-management-service-sidecar/pom.xml
+++ b/custos-integration-services/sharing-management-service-parent/sharing-management-service-sidecar/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>sharing-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/sharing-management-service-parent/sharing-management-service/pom.xml b/custos-integration-services/sharing-management-service-parent/sharing-management-service/pom.xml
index dfeb962d7..48161dced 100644
--- a/custos-integration-services/sharing-management-service-parent/sharing-management-service/pom.xml
+++ b/custos-integration-services/sharing-management-service-parent/sharing-management-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>sharing-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/deployment.yaml b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/deployment.yaml
index 15b18bbd3..9fe298c77 100644
--- a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/deployment.yaml
@@ -66,7 +66,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/ingress-grpc.yaml b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/ingress-grpc.yaml
index 5f40447d1..9f64b2d27 100644
--- a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/ingress-grpc.yaml
+++ b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/ingress-grpc.yaml
@@ -4,7 +4,7 @@ metadata:
   annotations:
     kubernetes.io/ingress.class: "nginx"
     nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
   name: ${artifactId}-ingress-grpc
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
        http:
         paths:
           - path: /org.apache.custos.sharing.management.service.SharingManagementService(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: sharing-management-service
-              servicePort: grpc
+              service:
+                name: sharing-management-service
+                port:
+                   name: grpc
 
   tls:
     - hosts:
diff --git a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/ingress.yaml b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/ingress.yaml
index ff3cb0473..67842e8b3 100644
--- a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/templates/ingress.yaml
@@ -4,7 +4,7 @@ metadata:
   name: ${artifactId}-ingress
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /sharing-management/$2
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
       http:
         paths:
           - path: /sharing-management(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: sharing-management-service
-              servicePort: envoyhttp
+              service:
+                  name: sharing-management-service
+                  port:
+                     name: envoyhttp
 
   tls:
     - hosts:
diff --git a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/values.yaml b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/values.yaml
index f2787396e..3ce15fd7c 100644
--- a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/values.yaml
+++ b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/helm/values.yaml
@@ -62,7 +62,8 @@ resources: {}
   #   cpu: 100m
   #   memory: 128Mi
 
-nodeSelector: {}
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -84,4 +85,5 @@ readinessProbe:
   successThreshold: 1
 
 deployment:
-  host: custos.scigap.org
\ No newline at end of file
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
\ No newline at end of file
diff --git a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/resources/application.properties b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/resources/application.properties
index be1dafa29..93c6e2772 100644
--- a/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/resources/application.properties
+++ b/custos-integration-services/sharing-management-service-parent/sharing-management-service/src/main/resources/application.properties
@@ -25,4 +25,5 @@ management.security.enabled=false
 management.endpoints.web.exposure.include=*
 management.endpoint.metrics.enabled=true
 spring.main.allow-bean-definition-overriding=true
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active=@spring.profiles.active@
+logging.level.root=WARN
\ No newline at end of file
diff --git a/custos-integration-services/tenant-management-service-parent/pom.xml b/custos-integration-services/tenant-management-service-parent/pom.xml
index 3a37a58bc..4d59908a6 100644
--- a/custos-integration-services/tenant-management-service-parent/pom.xml
+++ b/custos-integration-services/tenant-management-service-parent/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/tenant-management-service-parent/tenant-management-service-sidecar/pom.xml b/custos-integration-services/tenant-management-service-parent/tenant-management-service-sidecar/pom.xml
index a6596b2b9..afd66a839 100644
--- a/custos-integration-services/tenant-management-service-parent/tenant-management-service-sidecar/pom.xml
+++ b/custos-integration-services/tenant-management-service-parent/tenant-management-service-sidecar/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>tenant-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/tenant-management-service-parent/tenant-management-service/pom.xml b/custos-integration-services/tenant-management-service-parent/tenant-management-service/pom.xml
index 27ab6317d..ebb4dd3d5 100644
--- a/custos-integration-services/tenant-management-service-parent/tenant-management-service/pom.xml
+++ b/custos-integration-services/tenant-management-service-parent/tenant-management-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>tenant-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -134,13 +135,13 @@
         <dependency>
             <groupId>org.apache.custos</groupId>
             <artifactId>messaging-core-service-client-stub</artifactId>
-            <version>1.1-SNAPSHOT</version>
+            <version>${project.version}</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.custos</groupId>
             <artifactId>sharing-core-service-client-stub</artifactId>
-            <version>1.1-SNAPSHOT</version>
+            <version>${project.version}</version>
             <scope>compile</scope>
         </dependency>
     </dependencies>
diff --git a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/deployment.yaml b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/deployment.yaml
index 15b18bbd3..9fe298c77 100644
--- a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/deployment.yaml
@@ -66,7 +66,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/ingress-grpc.yaml b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/ingress-grpc.yaml
index 99e3f99e7..74903734e 100644
--- a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/ingress-grpc.yaml
+++ b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/ingress-grpc.yaml
@@ -4,7 +4,7 @@ metadata:
   annotations:
     kubernetes.io/ingress.class: "nginx"
     nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
   name: ${artifactId}-ingress-grpc
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
        http:
         paths:
           - path: /org.apache.custos.tenant.management.service.TenantManagementService(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: tenant-management-service
-              servicePort: grpc
+              service:
+                name: tenant-management-service
+                port:
+                  name: grpc
 
   tls:
     - hosts:
diff --git a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/ingress.yaml b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/ingress.yaml
index e01b26fb0..864dae1a2 100644
--- a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/templates/ingress.yaml
@@ -4,7 +4,7 @@ metadata:
   name: ${artifactId}-ingress
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /tenant-management/$2
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
       http:
         paths:
           - path: /tenant-management(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: tenant-management-service
-              servicePort: envoyhttp
+              service:
+                name: tenant-management-service
+                port:
+                  name: envoyhttp
 
   tls:
     - hosts:
diff --git a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/values.yaml b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/values.yaml
index 031d35331..721c8589a 100644
--- a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/values.yaml
+++ b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/helm/values.yaml
@@ -62,7 +62,8 @@ resources: {}
   #   cpu: 100m
   #   memory: 128Mi
 
-nodeSelector: {}
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -84,4 +85,5 @@ readinessProbe:
   successThreshold: 1
 
 deployment:
-  host: custos.scigap.org
\ No newline at end of file
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
diff --git a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/resources/application.properties b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/resources/application.properties
index 7bfb302e7..21e18baa6 100644
--- a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/resources/application.properties
+++ b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/resources/application.properties
@@ -25,4 +25,5 @@ management.security.enabled=false
 management.endpoints.web.exposure.include=*
 management.endpoint.metrics.enabled=true
 spring.main.allow-bean-definition-overriding=true
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active=@spring.profiles.active@
+logging.level.root=WARN
\ No newline at end of file
diff --git a/custos-integration-services/user-management-service-parent/pom.xml b/custos-integration-services/user-management-service-parent/pom.xml
index a134822cc..7d5a3ee52 100644
--- a/custos-integration-services/user-management-service-parent/pom.xml
+++ b/custos-integration-services/user-management-service-parent/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos-integration-services</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/user-management-service-parent/user-management-service-sidecar/pom.xml b/custos-integration-services/user-management-service-parent/user-management-service-sidecar/pom.xml
index 1989e0be5..cd215d1e2 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service-sidecar/pom.xml
+++ b/custos-integration-services/user-management-service-parent/user-management-service-sidecar/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>user-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/user-management-service-parent/user-management-service/pom.xml b/custos-integration-services/user-management-service-parent/user-management-service/pom.xml
index dbbb92067..a0cd5b2e2 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service/pom.xml
+++ b/custos-integration-services/user-management-service-parent/user-management-service/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>user-management-service-parent</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/deployment.yaml b/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/deployment.yaml
index 6bf197d34..8aef4640c 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/deployment.yaml
+++ b/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/deployment.yaml
@@ -74,7 +74,7 @@ spec:
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
       {{- with .Values.nodeSelector }}
-      nodeSelector: {}
+      nodeSelector:
         {{- toYaml . | nindent 8 }}
       {{- end }}
     {{- with .Values.affinity }}
diff --git a/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/ingress-grpc.yaml b/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/ingress-grpc.yaml
index 9143cc384..59e5b524d 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/ingress-grpc.yaml
+++ b/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/ingress-grpc.yaml
@@ -4,7 +4,7 @@ metadata:
   annotations:
     kubernetes.io/ingress.class: "nginx"
     nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
   name: ${artifactId}-ingress-grpc
 spec:
   rules:
@@ -12,9 +12,13 @@ spec:
       http:
         paths:
           - path: /org.apache.custos.user.management.service.UserManagementService(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: user-management-service
-              servicePort: grpc
+                service:
+                  name: user-management-service
+                  port:
+                    name: grpc
+
 
   tls:
     - hosts:
diff --git a/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/ingress.yaml b/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/ingress.yaml
index ce66dbbfd..2dd0a15e5 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/ingress.yaml
+++ b/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/templates/ingress.yaml
@@ -4,7 +4,7 @@ metadata:
   name: ${artifactId}-ingress
   annotations:
     nginx.ingress.kubernetes.io/rewrite-target: /user-management/$2
-    cert-manager.io/cluster-issuer: letsencrypt-prod
+    cert-manager.io/cluster-issuer: {{ .Values.deployment.clusterIssuer }}
     kubernetes.io/ingress.class: nginx
 spec:
   rules:
@@ -12,9 +12,12 @@ spec:
       http:
         paths:
           - path: /user-management(/|$)(.*)
+            pathType: "Prefix"
             backend:
-              serviceName: user-management-service
-              servicePort: envoyhttp
+              service:
+                name: user-management-service
+                port:
+                  name: envoyhttp
 
   tls:
     - hosts:
diff --git a/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/values.yaml b/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/values.yaml
index cdd3d70b5..564c70149 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/values.yaml
+++ b/custos-integration-services/user-management-service-parent/user-management-service/src/main/helm/values.yaml
@@ -62,7 +62,8 @@ resources: {}
   #   cpu: 100m
   #   memory: 128Mi
 
-nodeSelector: {}
+nodeSelector:
+    custosServiceWorker: "enabled"
 
 tolerations: []
 
@@ -84,4 +85,5 @@ readinessProbe:
   successThreshold: 1
 
 deployment:
-  host: custos.scigap.org
\ No newline at end of file
+  host: "${host}"
+  clusterIssuer: "${clusterIssuer}"
\ No newline at end of file
diff --git a/custos-integration-services/user-management-service-parent/user-management-service/src/main/resources/application.properties b/custos-integration-services/user-management-service-parent/user-management-service/src/main/resources/application.properties
index 9a39c36b3..e8719da60 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service/src/main/resources/application.properties
+++ b/custos-integration-services/user-management-service-parent/user-management-service/src/main/resources/application.properties
@@ -26,4 +26,5 @@ management.security.enabled=false
 management.endpoints.web.exposure.include=*
 management.endpoint.metrics.enabled=true
 spring.main.allow-bean-definition-overriding=true
-spring.profiles.active=@spring.profiles.active@
\ No newline at end of file
+spring.profiles.active=@spring.profiles.active@
+logging.level.root=WARN
\ No newline at end of file
diff --git a/custos-utilities/deployment-scripts/README.MD b/custos-utilities/deployment-scripts/README.MD
new file mode 100644
index 000000000..3a8fff1e4
--- /dev/null
+++ b/custos-utilities/deployment-scripts/README.MD
@@ -0,0 +1,33 @@
+### Custos Services Deployment Scripts
+
+#### Prerequisites
+
+- You should have a Kubernetes Cluster with at least one mater and three worker nodes. (Rancher or Kubespray can be 
+  used to bootstrap K8 Cluster)
+  
+#### Rancher Installation Steps (Optional)
+ 
+  - Install Rancher 2.5.5 or above on one of the VMs
+  -  Spin Up a VM on JS2
+  -  use https://github.com/CloudVE/cloudman-boot to boostrap a K8 cluster for rancher
+  -  Login to that node
+  -  helm repo add rancher https://releases.rancher.com/server-charts/stable
+  -  kubectl create namespace cattle-system
+  -  helm repo update
+  -  helm install -n cattle-system rancher rancher/rancher --set hostname=HOSTNAME 
+     --set ingress.tls.source=letsEncrypt --set letsEncrypt.email="admin@cloudve.org" 
+     --set letsEncrypt.environment="production" --set letsEncrypt.ingress.class=nginx  
+     --version=2.5.5
+     
+
+#### Install Services
+
+- Install dependencies in the following order. Each folder contains installation stpes
+- Login to the cluster master node.
+- Install helm3  (/https://helm.sh/docs/intro/install/)
+
+   - Cert-Manager
+   - Keycloak
+   - Vault
+   - Custos Services 
+ 
\ No newline at end of file
diff --git a/custos-utilities/deployment-scripts/cert-manager/README.MD b/custos-utilities/deployment-scripts/cert-manager/README.MD
new file mode 100644
index 000000000..603887c0c
--- /dev/null
+++ b/custos-utilities/deployment-scripts/cert-manager/README.MD
@@ -0,0 +1,9 @@
+### Deploy cert-manager
+ -  (/https://cert-manager.io/docs/installation/kubernetes/)
+    
+ - Create ClusterIssuer
+
+     - kubectl apply -f  letsencrypt-prod-cluster-issuer.yaml 
+    
+
+ 
\ No newline at end of file
diff --git a/custos-utilities/deployment-scripts/cert-manager/letsencrypt-prod-cluster-issuer.yaml b/custos-utilities/deployment-scripts/cert-manager/letsencrypt-prod-cluster-issuer.yaml
new file mode 100644
index 000000000..614749aa6
--- /dev/null
+++ b/custos-utilities/deployment-scripts/cert-manager/letsencrypt-prod-cluster-issuer.yaml
@@ -0,0 +1,19 @@
+apiVersion: cert-manager.io/v1
+kind: ClusterIssuer
+metadata:
+  name: letsencrypt-prod
+spec:
+  acme:
+    # You must replace this email address with your own.
+    # Let's Encrypt will use this to contact you about expiring
+    # certificates, and issues related to your account.
+    email: email@iu.edu
+    server: https://acme-v02.api.letsencrypt.org/directory
+    privateKeySecretRef:
+      # Secret resource that will be used to store the account's private key.
+      name: acme-prod-private-key
+    # Add a single challenge solver, HTTP01 using nginx
+    solvers:
+    - http01:
+        ingress:
+          class: nginx
diff --git a/custos-utilities/deployment-scripts/custos/README.MD b/custos-utilities/deployment-scripts/custos/README.MD
new file mode 100644
index 000000000..76aa82498
--- /dev/null
+++ b/custos-utilities/deployment-scripts/custos/README.MD
@@ -0,0 +1,22 @@
+### Deploy Mysql
+ Database server need to be installed.
+####  Create PVs
+
+Create three PVs for each mount point   /bitnami/mysql
+ -  `kubectl apply -f pv.yaml`   
+
+Then deploy mysql 
+
+- `helm install mysql  bitnami/mysql -f values.yaml -n custos --version 8.8.8`
+
+### Deploy Custos services
+ 
+- Checkout Custos develop branch
+-   `mvn clean install -P container`
+-   `mvn antrun: run -P scp-to-remote`
+
+You need to change  the remote  host and relevant parameters as necessary.
+
+
+
+ 
\ No newline at end of file
diff --git a/custos-utilities/deployment-scripts/custos/mysql/pv.yaml b/custos-utilities/deployment-scripts/custos/mysql/pv.yaml
new file mode 100644
index 000000000..d418e0c41
--- /dev/null
+++ b/custos-utilities/deployment-scripts/custos/mysql/pv.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: mysql1
+  labels:
+    type: local
+spec:
+  storageClassName: ""
+  capacity:
+    storage: 28Gi
+  accessModes:
+    - ReadWriteOnce
+  hostPath:
+    path: "/bitnami/mysql"
diff --git a/custos-utilities/deployment-scripts/custos/mysql/pv1.yaml b/custos-utilities/deployment-scripts/custos/mysql/pv1.yaml
new file mode 100644
index 000000000..7f9484834
--- /dev/null
+++ b/custos-utilities/deployment-scripts/custos/mysql/pv1.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: mysql3
+  labels:
+    type: local
+spec:
+  storageClassName: ""
+  capacity:
+    storage: 28Gi
+  accessModes:
+    - ReadWriteOnce
+  hostPath:
+    path: "/bitnami/mysql"
diff --git a/custos-utilities/deployment-scripts/custos/mysql/pv2.yaml b/custos-utilities/deployment-scripts/custos/mysql/pv2.yaml
new file mode 100644
index 000000000..575f11659
--- /dev/null
+++ b/custos-utilities/deployment-scripts/custos/mysql/pv2.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: mysql2
+  labels:
+    type: local
+spec:
+  storageClassName: ""
+  capacity:
+    storage: 28Gi
+  accessModes:
+    - ReadWriteOnce
+  hostPath:
+    path: "/bitnami/mysql"
diff --git a/custos-utilities/deployment-scripts/custos/mysql/values.yaml b/custos-utilities/deployment-scripts/custos/mysql/values.yaml
new file mode 100644
index 000000000..c3b6266f0
--- /dev/null
+++ b/custos-utilities/deployment-scripts/custos/mysql/values.yaml
@@ -0,0 +1,842 @@
+## Global Dockeir image parameters
+## Please, note that this will override the image parameters, including dependencies, configured to use the global value
+## Current available global Docker image parameters: imageRegistry and imagePullSecrets
+##
+# global:
+#   imageRegistry: myRegistryName
+#   imagePullSecrets:
+#     - myRegistryKeySecretName
+#   storageClass: myStorageClass
+
+## Bitnami MySQL image
+## ref: https://hub.docker.com/r/bitnami/mysql/tags/
+##
+image:
+  registry: docker.io
+  repository: bitnami/mysql
+  tag: 8.0.22-debian-10-r23
+  ## Specify a imagePullPolicy
+  ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
+  ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
+  ##
+  pullPolicy: IfNotPresent
+  ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+  ## Example:
+  ## pullSecrets:
+  ##   - myRegistryKeySecretName
+  ##
+  pullSecrets: []
+  ## Set to true if you would like to see extra information on logs
+  ## It turns BASH and NAMI debugging in minideb
+  ## ref:  https://github.com/bitnami/minideb-extras/#turn-on-bash-debugging
+  debug: false
+
+## String to partially override common.names.fullname template (will maintain the release name)
+##
+# nameOverride:
+
+## String to fully override common.names..fullname template
+##
+# fullnameOverride:
+
+## Cluster domain
+##
+clusterDomain: cluster.local
+
+## Common annotations to add to all MySQL resources (sub-charts are not considered). Evaluated as a template
+##
+commonAnnotations: {}
+
+## Common labels to add to all MySQL resources (sub-charts are not considered). Evaluated as a template
+##
+commonLabels: {}
+
+## Use an alternate scheduler, e.g. "stork".
+## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
+##
+# schedulerName:
+
+## MySQL architecture. Allowed values: standalone or replication
+##
+architecture: replication
+
+## MySQL Authentication parameters
+##
+auth:
+  ## MySQL root password
+  ## ref: https://github.com/bitnami/bitnami-docker-mysql#setting-the-root-password-on-first-run
+  ##
+  rootPassword: CHANGE_ME
+  ## MySQL custom user and database
+  ## ref: https://github.com/bitnami/bitnami-docker-mysql/blob/master/README.md#creating-a-database-on-first-run
+  ## ref: https://github.com/bitnami/bitnami-docker-mysql/blob/master/README.md#creating-a-database-user-on-first-run
+  ##
+  database: custos_metadata
+  username: CHANGE_ME
+  password: CHANGE_ME
+  ## MySQL replication user and password
+  ## ref: https://github.com/bitnami/bitnami-docker-mysql#setting-up-a-replication-cluster
+  ##
+  replicationUser: custos_replicator
+  replicationPassword: CHANGE_ME
+  ## Existing secret with MySQL credentials
+  ## NOTE: When it's set the previous parameters are ignored.
+  ##
+  # existingSecret: name-of-existing-secret
+  ## Force users to specify required passwords
+  ##
+  forcePassword: true
+  ## Mount credentials as a files instead of using an environment variable
+  ##
+  usePasswordFiles: true
+
+## initdb scripts
+## Specify dictionary of scripts to be run at first boot
+## Example:
+## initdbScripts:
+##   my_init_script.sh: |
+##      #!/bin/bash
+##      echo "Do something."
+##
+initdbScripts: {}
+
+## Existing ConfigMap with custom init scripts
+##
+# initdbScriptsConfigMap:
+
+## MySQL Primary parameters
+##
+primary:
+  ## Command and args for running the container (set to default if not set). Use array form
+  ##
+  command: []
+  args: []
+
+  ## Configure MySQL Primary with a custom my.cnf file
+  ## ref: https://mysql.com/kb/en/mysql/configuring-mysql-with-mycnf/#example-of-configuration-file
+  ##
+  configuration: |-
+    [mysqld]
+    default_authentication_plugin=mysql_native_password
+    skip-name-resolve
+    explicit_defaults_for_timestamp
+    basedir=/opt/bitnami/mysql
+    plugin_dir=/opt/bitnami/mysql/plugin
+    port=3306
+    socket=/opt/bitnami/mysql/tmp/mysql.sock
+    datadir=/bitnami/mysql/data
+    tmpdir=/opt/bitnami/mysql/tmp
+    max_allowed_packet=16M
+    bind-address=0.0.0.0
+    pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
+    log-error=/opt/bitnami/mysql/logs/mysqld.log
+    character-set-server=UTF8
+    collation-server=utf8_general_ci
+    max_connections=1000
+    [client]
+    port=3306
+    socket=/opt/bitnami/mysql/tmp/mysql.sock
+    default-character-set=UTF8
+    plugin_dir=/opt/bitnami/mysql/plugin
+    [manager]
+    port=3306
+    socket=/opt/bitnami/mysql/tmp/mysql.sock
+    pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
+  ## Name of existing ConfigMap with MySQL Primary configuration.
+  ## NOTE: When it's set the 'configuration' parameter is ignored
+  ##
+  # existingConfiguration:
+
+  ## updateStrategy for MySQL Primary statefulset
+  ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
+  ##
+  updateStrategy: RollingUpdate
+
+  ## Partition update strategy for MySQL Primary statefulset
+  ## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions
+  ##
+  # rollingUpdatePartition:
+
+  ## MySQL Primary pod annotations
+  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
+  ##
+  podAnnotations: {}
+
+  ## MySQL Primary pod affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+  ## Allowed values: soft, hard
+  ##
+  podAffinityPreset: ""
+
+  ## MySQL Primary pod anti-affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+  ## Allowed values: soft, hard
+  ##
+  podAntiAffinityPreset: soft
+
+  ## MySQL Primary node affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
+  ## Allowed values: soft, hard
+  ##
+  nodeAffinityPreset:
+    ## Node affinity type
+    ## Allowed values: soft, hard
+    type: soft
+    ## Node label key to match
+    ## E.g.
+    ## key: "kubernetes.io/e2e-az-name"
+    ##
+    key: custos.mysql.role
+    ## Node label values to match
+    ## E.g.
+    ## values:
+    ##   - e2e-az1
+    ##   - e2e-az2
+    ##
+    values:
+        - primary     
+
+  ## Affinity for MySQL primary pods assignment
+  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
+  ## Note: podAffinityPreset, podAntiAffinityPreset, and  nodeAffinityPreset will be ignored when it's set
+  ##
+  affinity: {}
+
+  ## Node labels for MySQL primary pods assignment
+  ## ref: https://kubernetes.io/docs/user-guide/node-selection/
+  ##
+  nodeSelector: {}
+
+  ## Tolerations for MySQL primary pods assignment
+  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+  ##
+  tolerations: []
+
+  ## MySQL primary Pod security context
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
+  ##
+  podSecurityContext:
+    enabled: true
+    fsGroup: 1001
+
+  ## MySQL primary container security context
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
+  ##
+  containerSecurityContext:
+    enabled: true
+    runAsUser: 1001
+
+  ## MySQL primary container's resource requests and limits
+  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
+  ##
+  resources:
+    # We usually recommend not to specify default resources and to leave this as a conscious
+    # choice for the user. This also increases chances charts run on environments with little
+    # resources, such as Minikube. If you do want to specify resources, uncomment the following
+    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+    limits: {}
+    #   memory: 256Mi
+    #   cpu: 250m
+    requests: {}
+    #   memory: 256Mi
+    #   cpu: 250m
+
+  ## MySQL primary container's liveness and readiness probes
+  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
+  ##
+  livenessProbe:
+    enabled: true
+    initialDelaySeconds: 120
+    periodSeconds: 10
+    timeoutSeconds: 1
+    failureThreshold: 3
+    successThreshold: 1
+  readinessProbe:
+    enabled: true
+    initialDelaySeconds: 30
+    periodSeconds: 10
+    timeoutSeconds: 1
+    failureThreshold: 3
+    successThreshold: 1
+
+  ## MySQL primary custom liveness probe
+  ##
+  customLivenessProbe: {}
+
+  ## MySQL primary custom rediness probe
+  ##
+  customReadinessProbe: {}
+
+  ## MySQL primary additional command line flags
+  ## Can be used to specify command line flags, for example:
+  ## E.g.
+  ## extraFlags: "--max-connect-errors=1000 --max_connections=155"
+  ##
+  extraFlags: ""
+
+  ## An array to add extra environment variables on MySQL primary containers
+  ## E.g.
+  ## extraEnvVars:
+  ##  - name: TZ
+  ##    value: "Europe/Paris"
+  ##
+  extraEnvVars: []
+
+  ## ConfigMap with extra env vars for MySQL primary containers:
+  ##
+  extraEnvVarsCM: ""
+
+  ## Secret with extra env vars for MySQL primary containers:
+  ##
+  extraEnvVarsSecret: ""
+
+  ## Enable persistence using Persistent Volume Claims
+  ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
+  ##
+  persistence:
+    ## If true, use a Persistent Volume Claim, If false, use emptyDir
+    ##
+    enabled: true
+    mountPath: /bitnami/mysql
+    ## Name of existing PVC to hold MySQL Primary data
+    ## NOTE: When it's set the rest of persistence parameters are ignored
+    ##
+    # existingClaim:
+    ## Persistent Volume Storage Class
+    ## If defined, storageClassName: <storageClass>
+    ## If set to "-", storageClassName: "", which disables dynamic provisioning
+    ## If undefined (the default) or set to null, no storageClassName spec is
+    ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
+    ##   GKE, AWS & OpenStack)
+    ##
+    # storageClass: "-"
+    ## Persistent Volume Claim annotations
+    ##
+    annotations: {}
+    ## Persistent Volume Access Mode
+    ##
+    accessModes:
+      - ReadWriteOnce
+    ## Persistent Volume size
+    ##
+    size: 8Gi
+    ## selector can be used to match an existing PersistentVolume
+    ## selector:
+    ##   matchLabels:
+    ##     app: my-app
+    selector: {}
+
+  ## Extra volumes to add to the MySQL Primary pod(s)
+  ##
+  extraVolumes: []
+
+  ## Extra volume mounts to add to the MySQL Primary container(s)
+  ##
+  extraVolumeMounts: []
+
+  ## Extra init containers to add to the MySQL Primary pod(s)
+  ##
+  initContainers: []
+
+  ## Extra sidecar containers to add to the MySQL Primary pod(s)
+  ##
+  sidecars: []
+
+  ## MySQL Primary Service paramaters
+  ##
+  service:
+    ## Service type
+    ##
+    type: ClusterIP
+    ## Service port
+    ##
+    port: 3306
+    ## Specify the nodePort value for the LoadBalancer and NodePort service types.
+    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
+    ##
+    nodePort: ""
+    ## Service clusterIP
+    ##
+    # clusterIP: None
+    clusterIP: ""
+    ## Set the LoadBalancer service type to internal only.
+    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
+    ##
+    loadBalancerIP: ""
+    ## Load Balancer sources
+    ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
+    ## E.g.
+    ## loadBalancerSourceRanges:
+    ##   - 10.10.10.0/24
+    ##
+    loadBalancerSourceRanges: []
+    ## Provide any additional annotations which may be required
+    ##
+    annotations: {}
+
+  ## MySQL primary Pod Disruption Budget configuration
+  ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
+  ##
+  pdb:
+    create: false
+    ## Min number of pods that must still be available after the eviction
+    ##
+    minAvailable: 1
+    ## Max number of pods that can be unavailable after the eviction
+    ##
+    # maxUnavailable: 1
+
+## MySQL Secondary parameters
+##
+secondary:
+  ## Number of MySQL Secondary replicas to deploy
+  ##
+  replicaCount: 2
+
+  ## Command and args for running the container (set to default if not set). Use array form
+  ##
+  command: []
+  args: []
+
+  ## Configure MySQL Secondary with a custom my.cnf file
+  ## ref: https://mysql.com/kb/en/mysql/configuring-mysql-with-mycnf/#example-of-configuration-file
+  ##
+  configuration: |-
+    [mysqld]
+    default_authentication_plugin=mysql_native_password
+    skip-name-resolve
+    explicit_defaults_for_timestamp
+    basedir=/opt/bitnami/mysql
+    port=3306
+    socket=/opt/bitnami/mysql/tmp/mysql.sock
+    datadir=/bitnami/mysql/data
+    tmpdir=/opt/bitnami/mysql/tmp
+    max_allowed_packet=16M
+    bind-address=0.0.0.0
+    pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
+    log-error=/opt/bitnami/mysql/logs/mysqld.log
+    character-set-server=UTF8
+    collation-server=utf8_general_ci
+    max_connections=1000
+    slave-skip-errors=1062
+    [client]
+    port=3306
+    socket=/opt/bitnami/mysql/tmp/mysql.sock
+    default-character-set=UTF8
+    [manager]
+    port=3306
+    socket=/opt/bitnami/mysql/tmp/mysql.sock
+    pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
+  ## Name of existing ConfigMap with MySQL Secondary configuration.
+  ## NOTE: When it's set the 'configuration' parameter is ignored
+  ##
+  # existingConfiguration:
+
+  ## updateStrategy for MySQL Secondary statefulset
+  ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
+  ##
+  updateStrategy: RollingUpdate
+
+  ## Partition update strategy for MySQL Secondary statefulset
+  ## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions
+  ##
+  # rollingUpdatePartition:
+
+  ## MySQL Secondary pod annotations
+  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
+  ##
+  podAnnotations: {}
+
+  ## MySQL Secondary pod affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+  ## Allowed values: soft, hard
+  ##
+  podAffinityPreset: ""
+
+  ## MySQL Secondary pod anti-affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+  ## Allowed values: soft, hard
+  ##
+  podAntiAffinityPreset: soft
+
+  ## MySQL Secondary node affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
+  ## Allowed values: soft, hard
+  ##
+  nodeAffinityPreset:
+    ## Node affinity type
+    ## Allowed values: soft, hard
+    type: soft
+    ## Node label key to match
+    ## E.g.
+    ## key: "kubernetes.io/e2e-az-name"
+    ##
+    key: custos.mysql.role
+    ## Node label values to match
+    ## E.g.
+    ## values:
+    ##   - e2e-az1
+    ##   - e2e-az2
+    ##
+    values:
+         - secondary
+
+  ## Affinity for MySQL secondary pods assignment
+  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
+  ## Note: podAffinityPreset, podAntiAffinityPreset, and  nodeAffinityPreset will be ignored when it's set
+  ##
+  affinity: {}
+
+  ## Node labels for MySQL secondary pods assignment
+  ## ref: https://kubernetes.io/docs/user-guide/node-selection/
+  ##
+  nodeSelector: {}
+
+  ## Tolerations for MySQL secondary pods assignment
+  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+  ##
+  tolerations: []
+
+  ## MySQL secondary Pod security context
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
+  ##
+  podSecurityContext:
+    enabled: true
+    fsGroup: 1001
+
+  ## MySQL secondary container security context
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
+  ##
+  containerSecurityContext:
+    enabled: true
+    runAsUser: 1001
+
+  ## MySQL secondary container's resource requests and limits
+  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
+  ##
+  resources:
+    # We usually recommend not to specify default resources and to leave this as a conscious
+    # choice for the user. This also increases chances charts run on environments with little
+    # resources, such as Minikube. If you do want to specify resources, uncomment the following
+    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+    limits: {}
+    #   memory: 256Mi
+    #   cpu: 250m
+    requests: {}
+    #   memory: 256Mi
+    #   cpu: 250m
+
+  ## MySQL secondary container's liveness and readiness probes
+  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
+  ##
+  livenessProbe:
+    enabled: true
+    initialDelaySeconds: 120
+    periodSeconds: 10
+    timeoutSeconds: 1
+    failureThreshold: 3
+    successThreshold: 1
+  readinessProbe:
+    enabled: true
+    initialDelaySeconds: 30
+    periodSeconds: 10
+    timeoutSeconds: 1
+    failureThreshold: 3
+    successThreshold: 1
+
+  ## MySQL secondary custom liveness probe
+  ##
+  customLivenessProbe: {}
+
+  ## MySQL secondary custom rediness probe
+  ##
+  customReadinessProbe: {}
+
+  ## MySQL secondary additional command line flags
+  ## Can be used to specify command line flags, for example:
+  ## E.g.
+  ## extraFlags: "--max-connect-errors=1000 --max_connections=155"
+  ##
+  extraFlags: ""
+
+  ## An array to add extra environment variables on MySQL secondary containers
+  ## E.g.
+  ## extraEnvVars:
+  ##  - name: TZ
+  ##    value: "Europe/Paris"
+  ##
+  extraEnvVars: []
+
+  ## ConfigMap with extra env vars for MySQL secondary containers:
+  ##
+  extraEnvVarsCM: ""
+
+  ## Secret with extra env vars for MySQL secondary containers:
+  ##
+  extraEnvVarsSecret: ""
+
+  ## Enable persistence using Persistent Volume Claims
+  ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
+  ##
+  persistence:
+    ## If true, use a Persistent Volume Claim, If false, use emptyDir
+    ##
+    enabled: true
+    mountPath : /bitnami/mysql
+    ## Persistent Volume Storage Class
+    ## If defined, storageClassName: <storageClass>
+    ## If set to "-", storageClassName: "", which disables dynamic provisioning
+    ## If undefined (the default) or set to null, no storageClassName spec is
+    ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
+    ##   GKE, AWS & OpenStack)
+    ##
+    # storageClass: "-"
+    ## Persistent Volume Claim annotations
+    ##
+    annotations: {}
+    ## Persistent Volume Access Mode
+    ##
+    accessModes:
+      - ReadWriteOnce
+    ## Persistent Volume size
+    ##
+    size: 8Gi
+    ## selector can be used to match an existing PersistentVolume
+    ## selector:
+    ##   matchLabels:
+    ##     app: my-app
+    selector: {}
+
+  ## Extra volumes to add to the MySQL Secondary pod(s)
+  ##
+  extraVolumes: []
+
+  ## Extra volume mounts to add to the MySQL Secondary container(s)
+  ##
+  extraVolumeMounts: []
+
+  ## Extra init containers to add to the MySQL Secondary pod(s)
+  ##
+  initContainers: []
+
+  ## Extra sidecar containers to add to the MySQL Secondary pod(s)
+  ##
+  sidecars: []
+
+  ## MySQL Secondary Service paramaters
+  ##
+  service:
+    ## Service type
+    ##
+    type: ClusterIP
+    ## Service port
+    ##
+    port: 3306
+    ## Specify the nodePort value for the LoadBalancer and NodePort service types.
+    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
+    ##
+    nodePort: ""
+    ## Service clusterIP
+    ##
+    # clusterIP: None
+    clusterIP: ""
+    ## Set the LoadBalancer service type to internal only.
+    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
+    ##
+    loadBalancerIP: ""
+    ## Load Balancer sources
+    ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
+    ## E.g.
+    ## loadBalancerSourceRanges:
+    ##   - 10.10.10.0/24
+    ##
+    loadBalancerSourceRanges: []
+    ## Provide any additional annotations which may be required
+    ##
+    annotations: {}
+
+  ## MySQL secondary Pod Disruption Budget configuration
+  ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
+  ##
+  pdb:
+    create: false
+    ## Min number of pods that must still be available after the eviction
+    ##
+    minAvailable: 1
+    ## Max number of pods that can be unavailable after the eviction
+    ##
+    # maxUnavailable: 1
+
+## MySQL pods ServiceAccount
+## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
+##
+serviceAccount:
+  ## Specifies whether a ServiceAccount should be created
+  ##
+  create: true
+  ## The name of the ServiceAccount to use.
+  ## If not set and create is true, a name is generated using the mysql.fullname template
+  ##
+  # name:
+  ## Annotations to add to the service account (evaluated as a template)
+  ##
+  annotations: {}
+
+## Role Based Access
+## ref: https://kubernetes.io/docs/admin/authorization/rbac/
+##
+rbac:
+  ## Specifies whether RBAC rules should be created
+  ##
+  create: false
+
+## Init containers parameters:
+## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
+##
+volumePermissions:
+  enabled: true
+  image:
+    registry: docker.io
+    repository: bitnami/minideb
+    tag: stretch
+    pullPolicy: Always
+    ## Optionally specify an array of imagePullSecrets.
+    ## Secrets must be manually created in the namespace.
+    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+    ##
+    # pullSecrets:
+    #   - myRegistryKeySecretName
+  resources: {}
+
+## Mysqld Prometheus exporter paramters
+##
+metrics:
+  enabled: true
+  image:
+    registry: docker.io
+    repository: bitnami/mysqld-exporter
+    tag: 0.12.1-debian-10-r264
+    pullPolicy: IfNotPresent
+    ## Optionally specify an array of imagePullSecrets.
+    ## Secrets must be manually created in the namespace.
+    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+    ##
+    # pullSecrets:
+    #   - myRegistryKeySecretName
+
+  ## MySQL Prometheus exporter service parameters
+  ## Mysqld Prometheus exporter liveness and readiness probes
+  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes  ##
+  service:
+    type: ClusterIP
+    port: 9104
+    annotations:
+      prometheus.io/scrape: "true"
+      prometheus.io/port: "{{ .Values.metrics.service.port }}"
+
+  ## Extra args to be passed to mysqld_exporter
+  ## ref: https://github.com/prometheus/mysqld_exporter/
+  ## E.g.
+  ## - --collect.auto_increment.columns
+  ## - --collect.binlog_size
+  ## - --collect.engine_innodb_status
+  ## - --collect.engine_tokudb_status
+  ## - --collect.global_status
+  ## - --collect.global_variables
+  ## - --collect.info_schema.clientstats
+  ## - --collect.info_schema.innodb_metrics
+  ## - --collect.info_schema.innodb_tablespaces
+  ## - --collect.info_schema.innodb_cmp
+  ## - --collect.info_schema.innodb_cmpmem
+  ## - --collect.info_schema.processlist
+  ## - --collect.info_schema.processlist.min_time
+  ## - --collect.info_schema.query_response_time
+  ## - --collect.info_schema.tables
+  ## - --collect.info_schema.tables.databases
+  ## - --collect.info_schema.tablestats
+  ## - --collect.info_schema.userstats
+  ## - --collect.perf_schema.eventsstatements
+  ## - --collect.perf_schema.eventsstatements.digest_text_limit
+  ## - --collect.perf_schema.eventsstatements.limit
+  ## - --collect.perf_schema.eventsstatements.timelimit
+  ## - --collect.perf_schema.eventswaits
+  ## - --collect.perf_schema.file_events
+  ## - --collect.perf_schema.file_instances
+  ## - --collect.perf_schema.indexiowaits
+  ## - --collect.perf_schema.tableiowaits
+  ## - --collect.perf_schema.tablelocks
+  ## - --collect.perf_schema.replication_group_member_stats
+  ## - --collect.slave_status
+  ## - --collect.slave_hosts
+  ## - --collect.heartbeat
+  ## - --collect.heartbeat.database
+  ## - --collect.heartbeat.table
+  ##
+  extraArgs:
+    primary: []
+    secondary: []
+
+  ## Mysqld Prometheus exporter resource requests and limits
+  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
+  ##
+  resources:
+    # We usually recommend not to specify default resources and to leave this as a conscious
+    # choice for the user. This also increases chances charts run on environments with little
+    # resources, such as Minikube. If you do want to specify resources, uncomment the following
+    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+    limits: {}
+    #   memory: 256Mi
+    #   cpu: 100m
+    requests: {}
+    #   memory: 256Mi
+    #   cpu: 100m
+
+  ## Mysqld Prometheus exporter liveness and readiness probes
+  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
+  ##
+  livenessProbe:
+    enabled: true
+    initialDelaySeconds: 120
+    periodSeconds: 10
+    timeoutSeconds: 1
+    successThreshold: 1
+    failureThreshold: 3
+  readinessProbe:
+    enabled: true
+    initialDelaySeconds: 30
+    periodSeconds: 10
+    timeoutSeconds: 1
+    successThreshold: 1
+    failureThreshold: 3
+
+  ## Prometheus Service Monitor
+  ## ref: https://github.com/coreos/prometheus-operator
+  ##
+  serviceMonitor:
+    ## If the operator is installed in your cluster, set to true to create a Service Monitor Entry
+    ##
+    enabled: false
+    ## Specify the namespace in which the serviceMonitor resource will be created
+    ##
+    # namespace: ""
+    ## Specify the interval at which metrics should be scraped
+    ##
+    interval: 30s
+    ## Specify the timeout after which the scrape is ended
+    ##
+    # scrapeTimeout: 30s
+    ## Specify Metric Relabellings to add to the scrape endpoint
+    ##
+    # relabellings:
+    ## Specify honorLabels parameter to add the scrape endpoint
+    ##
+    honorLabels: false
+    ## Specify the release for ServiceMonitor. Sometimes it should be custom for prometheus operator to work
+    ##
+    # release: ""
+    ## Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with
+    ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
+    ##
+    additionalLabels: {}
+
diff --git a/custos-utilities/deployment-scripts/keycloak/README.MD b/custos-utilities/deployment-scripts/keycloak/README.MD
new file mode 100644
index 000000000..297fcb2f4
--- /dev/null
+++ b/custos-utilities/deployment-scripts/keycloak/README.MD
@@ -0,0 +1,38 @@
+### Deploy Postgresql
+ Database server need to be installed.
+####  Create PVs
+
+Create three PVs for each mount point   /bitnami/postgresql
+ -  `kubectl apply -f pv.yaml`   
+
+Then deploy postgresql 
+
+- `helm install keycloak-db-postgresql bitnami/postgresql -f postgresql-values.yaml -n keycloak --version 10.12.3`
+
+### Deploy Keycloak
+ 
+Deploy Keycloak
+
+  - Deploy OLM
+    - https://operatorhub.io/how-to-install-an-operator
+    - https://github.com/operator-framework/operator-lifecycle-manager/issues/854
+      
+  - Deploy keycloak operator 
+    -  Download the keycloak-operator and copy operator.yaml file to deploy/ folder
+    - make cluster/prepare
+    - `kubectl apply -f deploy/operator.yaml -n keycloak`
+     
+    You might need to edit roles to add apiGroup networking.k8s.io and give permissions to ingresses 
+    -  `kubectl edit roles keycloak-operator  -n keycloak ` 
+        
+  - Deploy keycloak
+    `kubectl apply -f keycloak-db-secret.yaml -n keycloak`
+    `kubectl apply -f custos-keycloak.yaml -n keycloak`
+    
+  - Deploy ingress controller in ingress-nginx namespace
+    `kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.44.0/deploy/static/provider/baremetal/deploy.yaml`
+
+
+    
+
+ 
\ No newline at end of file
diff --git a/custos-utilities/deployment-scripts/keycloak/custos-keycloak.yaml b/custos-utilities/deployment-scripts/keycloak/custos-keycloak.yaml
new file mode 100644
index 000000000..591ddd5e2
--- /dev/null
+++ b/custos-utilities/deployment-scripts/keycloak/custos-keycloak.yaml
@@ -0,0 +1,13 @@
+apiVersion: keycloak.org/v1alpha1
+kind: Keycloak
+metadata:
+  name: custos-keycloak
+  labels:
+   app: custos-keycloak
+spec:
+  externalDatabase:
+    enabled: True     
+  instances: 1
+  externalAccess:
+    enabled: False
+
diff --git a/custos-utilities/deployment-scripts/keycloak/ingress.yaml b/custos-utilities/deployment-scripts/keycloak/ingress.yaml
new file mode 100644
index 000000000..bdc449433
--- /dev/null
+++ b/custos-utilities/deployment-scripts/keycloak/ingress.yaml
@@ -0,0 +1,23 @@
+apiVersion: networking.k8s.io/v1beta1
+kind: Ingress
+metadata:
+  name: keycloak-ingress
+  annotations:
+    nginx.ingress.kubernetes.io/rewrite-target: /auth/$2
+    kubernetes.io/ingress.class: "nginx"
+    cert-manager.io/cluster-issuer: letsencrypt-prod
+spec:
+  tls:
+   - hosts:
+     - keycloak.usecustos.org
+     secretName: tls-keycloak-secret
+
+  rules:
+   - host: keycloak.usecustos.org
+     http:
+      paths:
+       - path: /auth(/|$)(.*)    
+         backend:
+          serviceName: keycloak-discovery
+          servicePort: 8080
+
diff --git a/custos-utilities/deployment-scripts/keycloak/keycloak-db-secret.yaml b/custos-utilities/deployment-scripts/keycloak/keycloak-db-secret.yaml
new file mode 100644
index 000000000..0a434ee23
--- /dev/null
+++ b/custos-utilities/deployment-scripts/keycloak/keycloak-db-secret.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Secret
+metadata:
+    name: keycloak-db-secret
+    namespace: keycloak
+stringData:
+    POSTGRES_DATABASE: postgresDB
+    POSTGRES_EXTERNAL_ADDRESS: keycloak-db-postgresql.keycloak.svc.cluster.local
+    POSTGRES_EXTERNAL_PORT: "5432"
+    POSTGRES_PASSWORD: CHANGE_ME
+    POSTGRES_SUPERUSER: "true"
+    POSTGRES_USERNAME: CHANGE_ME
+type: Opaque
diff --git a/custos-utilities/deployment-scripts/keycloak/operator.yaml b/custos-utilities/deployment-scripts/keycloak/operator.yaml
new file mode 100644
index 000000000..921c3dc15
--- /dev/null
+++ b/custos-utilities/deployment-scripts/keycloak/operator.yaml
@@ -0,0 +1,33 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: keycloak-operator
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      name: keycloak-operator
+  template:
+    metadata:
+      labels:
+        name: keycloak-operator
+    spec:
+      serviceAccountName: keycloak-operator
+      containers:
+        - name: keycloak-operator
+          # Replace this with the built image name
+          image: quay.io/keycloak/keycloak-operator:master
+          command:
+          - keycloak-operator
+          imagePullPolicy: Always
+          env:
+            - name: WATCH_NAMESPACE
+              value: "keycloak"
+            - name: POD_NAME
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.name
+            - name: OPERATOR_NAME
+              value: "keycloak-operator"
+            - name: RELATED_IMAGE_KEYCLOAK
+              value: "apachecustos/custos-keycloak:1.0"  
diff --git a/custos-utilities/deployment-scripts/keycloak/postgresql/postgresql-values.yaml b/custos-utilities/deployment-scripts/keycloak/postgresql/postgresql-values.yaml
new file mode 100644
index 000000000..53fffcad3
--- /dev/null
+++ b/custos-utilities/deployment-scripts/keycloak/postgresql/postgresql-values.yaml
@@ -0,0 +1,827 @@
+# Global Docker image parameters
+## Please, note that this will override the image parameters, including dependencies, configured to use the global value
+## Current available global Docker image parameters: imageRegistry and imagePullSecrets
+##
+global:
+  postgresql: {}
+#   imageRegistry: myRegistryName
+#   imagePullSecrets:
+#     - myRegistryKeySecretName
+#   storageClass: myStorageClass
+
+## Bitnami PostgreSQL image version
+## ref: https://hub.docker.com/r/bitnami/postgresql/tags/
+##
+image:
+  registry: docker.io
+  repository: bitnami/postgresql
+  tag: 11.11.0-debian-10-r50
+  ## Specify a imagePullPolicy
+  ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
+  ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
+  ##
+  pullPolicy: IfNotPresent
+  ## Optionally specify an array of imagePullSecrets.
+  ## Secrets must be manually created in the namespace.
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+  ##
+  # pullSecrets:
+  #   - myRegistryKeySecretName
+
+  ## Set to true if you would like to see extra information on logs
+  ## It turns BASH and/or NAMI debugging in the image
+  ##
+  debug: false
+
+## String to partially override common.names.fullname template (will maintain the release name)
+##
+# nameOverride:
+
+## String to fully override common.names.fullname template
+##
+# fullnameOverride:
+
+##
+## Init containers parameters:
+## volumePermissions: Change the owner of the persist volume mountpoint to RunAsUser:fsGroup
+##
+volumePermissions:
+  enabled: true
+  image:
+    registry: docker.io
+    repository: bitnami/bitnami-shell
+    tag: "10"
+    ## Specify a imagePullPolicy
+    ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
+    ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
+    ##
+    pullPolicy: Always
+    ## Optionally specify an array of imagePullSecrets.
+    ## Secrets must be manually created in the namespace.
+    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+    ##
+    # pullSecrets:
+    #   - myRegistryKeySecretName
+  ## Init container Security Context
+  ## Note: the chown of the data folder is done to securityContext.runAsUser
+  ## and not the below volumePermissions.securityContext.runAsUser
+  ## When runAsUser is set to special value "auto", init container will try to chwon the
+  ## data folder to autodetermined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
+  ## "auto" is especially useful for OpenShift which has scc with dynamic userids (and 0 is not allowed).
+  ## You may want to use this volumePermissions.securityContext.runAsUser="auto" in combination with
+  ## pod securityContext.enabled=false and shmVolume.chmod.enabled=false
+  ##
+  securityContext:
+    runAsUser: 0
+
+## Use an alternate scheduler, e.g. "stork".
+## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
+##
+# schedulerName:
+
+## Pod Security Context
+## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+##
+securityContext:
+  enabled: true
+  fsGroup: 1001
+
+## Container Security Context
+## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+##
+containerSecurityContext:
+  enabled: true
+  runAsUser: 1001
+
+## Pod Service Account
+## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
+##
+serviceAccount:
+  enabled: false
+  ## Name of an already existing service account. Setting this value disables the automatic service account creation.
+  # name:
+
+## Pod Security Policy
+## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
+##
+psp:
+  create: false
+
+## Creates role for ServiceAccount
+## Required for PSP
+##
+rbac:
+  create: false
+
+replication:
+  enabled: true
+  user: postgres
+  password: postgres
+  readReplicas: 2
+  ## Set synchronous commit mode: on, off, remote_apply, remote_write and local
+  ## ref: https://www.postgresql.org/docs/9.6/runtime-config-wal.html#GUC-WAL-LEVEL
+  synchronousCommit: 'on'
+  ## From the number of `readReplicas` defined above, set the number of those that will have synchronous replication
+  ## NOTE: It cannot be > readReplicas
+  numSynchronousReplicas: 2
+  ## Replication Cluster application name. Useful for defining multiple replication policies
+  ##
+  applicationName: postgres_application
+
+## PostgreSQL admin password (used when `postgresqlUsername` is not `postgres`)
+## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#creating-a-database-user-on-first-run (see note!)
+# postgresqlPostgresPassword:
+
+## PostgreSQL user (has superuser privileges if username is `postgres`)
+## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#setting-the-root-password-on-first-run
+##
+postgresqlUsername: CHANGE_ME
+
+## PostgreSQL password
+## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#setting-the-root-password-on-first-run
+##
+postgresqlPassword: CHANGE_ME
+
+## PostgreSQL password using existing secret
+## existingSecret: secret
+##
+
+## Mount PostgreSQL secret as a file instead of passing environment variable
+# usePasswordFile: false
+
+## Create a database
+## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#creating-a-database-on-first-run
+##
+postgresqlDatabase: postgresDB
+
+## PostgreSQL data dir
+## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md
+##
+postgresqlDataDir: /bitnami/postgresql/data
+
+## An array to add extra environment variables
+## For example:
+## extraEnv:
+##   - name: FOO
+##     value: "bar"
+##
+# extraEnv:
+extraEnv: []
+
+## Name of a ConfigMap containing extra env vars
+##
+# extraEnvVarsCM:
+
+## Specify extra initdb args
+## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md
+##
+# postgresqlInitdbArgs:
+
+## Specify a custom location for the PostgreSQL transaction log
+## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md
+##
+# postgresqlInitdbWalDir:
+
+## PostgreSQL configuration
+## Specify runtime configuration parameters as a dict, using camelCase, e.g.
+## {"sharedBuffers": "500MB"}
+## Alternatively, you can put your postgresql.conf under the files/ directory
+## ref: https://www.postgresql.org/docs/current/static/runtime-config.html
+##
+# postgresqlConfiguration:
+
+## PostgreSQL extended configuration
+## As above, but _appended_ to the main configuration
+## Alternatively, you can put your *.conf under the files/conf.d/ directory
+## https://github.com/bitnami/bitnami-docker-postgresql#allow-settings-to-be-loaded-from-files-other-than-the-default-postgresqlconf
+##
+# postgresqlExtendedConf:
+
+## Configure current cluster's primary server to be the standby server in other cluster.
+## This will allow cross cluster replication and provide cross cluster high availability.
+## You will need to configure pgHbaConfiguration if you want to enable this feature with local cluster replication enabled.
+##
+primaryAsStandBy:
+  enabled: false
+  #  primaryHost:
+  #  primaryPort:
+
+## PostgreSQL client authentication configuration
+## Specify content for pg_hba.conf
+## Default: do not create pg_hba.conf
+## Alternatively, you can put your pg_hba.conf under the files/ directory
+# pgHbaConfiguration: |-
+#   local all all trust
+#   host all all localhost trust
+#   host mydatabase mysuser 192.168.0.0/24 md5
+
+## ConfigMap with PostgreSQL configuration
+## NOTE: This will override postgresqlConfiguration and pgHbaConfiguration
+# configurationConfigMap:
+
+## ConfigMap with PostgreSQL extended configuration
+# extendedConfConfigMap:
+
+## initdb scripts
+## Specify dictionary of scripts to be run at first boot
+## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory
+##
+# initdbScripts:
+#   my_init_script.sh: |
+#      #!/bin/sh
+#      echo "Do something."
+
+## ConfigMap with scripts to be run at first boot
+## NOTE: This will override initdbScripts
+# initdbScriptsConfigMap:
+
+## Secret with scripts to be run at first boot (in case it contains sensitive information)
+## NOTE: This can work along initdbScripts or initdbScriptsConfigMap
+# initdbScriptsSecret:
+
+## Specify the PostgreSQL username and password to execute the initdb scripts
+# initdbUser:
+# initdbPassword:
+
+## Audit settings
+## https://github.com/bitnami/bitnami-docker-postgresql#auditing
+##
+audit:
+  ## Log client hostnames
+  ##
+  logHostname: false
+  ## Log connections to the server
+  ##
+  logConnections: false
+  ## Log disconnections
+  ##
+  logDisconnections: false
+  ## Operation to audit using pgAudit (default if not set)
+  ##
+  pgAuditLog: ""
+  ## Log catalog using pgAudit
+  ##
+  pgAuditLogCatalog: "off"
+  ## Log level for clients
+  ##
+  clientMinMessages: error
+  ## Template for log line prefix (default if not set)
+  ##
+  logLinePrefix: ""
+  ## Log timezone
+  ##
+  logTimezone: ""
+
+## Shared preload libraries
+##
+postgresqlSharedPreloadLibraries: "pgaudit"
+
+## Maximum total connections
+##
+postgresqlMaxConnections:
+
+## Maximum connections for the postgres user
+##
+postgresqlPostgresConnectionLimit:
+
+## Maximum connections for the created user
+##
+postgresqlDbUserConnectionLimit:
+
+## TCP keepalives interval
+##
+postgresqlTcpKeepalivesInterval:
+
+## TCP keepalives idle
+##
+postgresqlTcpKeepalivesIdle:
+
+## TCP keepalives count
+##
+postgresqlTcpKeepalivesCount:
+
+## Statement timeout
+##
+postgresqlStatementTimeout:
+
+## Remove pg_hba.conf lines with the following comma-separated patterns
+## (cannot be used with custom pg_hba.conf)
+##
+postgresqlPghbaRemoveFilters:
+
+## Optional duration in seconds the pod needs to terminate gracefully.
+## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
+##
+# terminationGracePeriodSeconds: 30
+
+## LDAP configuration
+##
+ldap:
+  enabled: false
+  url: ''
+  server: ''
+  port: ''
+  prefix: ''
+  suffix: ''
+  baseDN: ''
+  bindDN: ''
+  bind_password:
+  search_attr: ''
+  search_filter: ''
+  scheme: ''
+  tls: ''
+
+## PostgreSQL service configuration
+##
+service:
+  ## PosgresSQL service type
+  ##
+  type: ClusterIP
+  # clusterIP: None
+  port: 5432
+
+  ## Specify the nodePort value for the LoadBalancer and NodePort service types.
+  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
+  ##
+  # nodePort:
+
+  ## Provide any additional annotations which may be required. Evaluated as a template.
+  ##
+  annotations: {}
+  ## Set the LoadBalancer service type to internal only.
+  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
+  ##
+  # loadBalancerIP:
+  ## Load Balancer sources. Evaluated as a template.
+  ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
+  ##
+  # loadBalancerSourceRanges:
+  # - 10.10.10.0/24
+
+## Start primary and read(s) pod(s) without limitations on shm memory.
+## By default docker and containerd (and possibly other container runtimes)
+## limit `/dev/shm` to `64M` (see e.g. the
+## [docker issue](https://github.com/docker-library/postgres/issues/416) and the
+## [containerd issue](https://github.com/containerd/containerd/issues/3654),
+## which could be not enough if PostgreSQL uses parallel workers heavily.
+##
+shmVolume:
+  ## Set `shmVolume.enabled` to `true` to mount a new tmpfs volume to remove
+  ## this limitation.
+  ##
+  enabled: true
+  ## Set to `true` to `chmod 777 /dev/shm` on a initContainer.
+  ## This option is ignored if `volumePermissions.enabled` is `false`
+  ##
+  chmod:
+    enabled: true
+
+## PostgreSQL data Persistent Volume Storage Class
+## If defined, storageClassName: <storageClass>
+## If set to "-", storageClassName: "", which disables dynamic provisioning
+## If undefined (the default) or set to null, no storageClassName spec is
+##   set, choosing the default provisioner.  (gp2 on AWS, standard on
+##   GKE, AWS & OpenStack)
+##
+persistence:
+  enabled: true
+  ## A manually managed Persistent Volume and Claim
+  ## If defined, PVC must be created manually before volume will be bound
+  ## The value is evaluated as a template, so, for example, the name can depend on .Release or .Chart
+  ##
+  # existingClaim:
+
+  ## The path the volume will be mounted at, useful when using different
+  ## PostgreSQL images.
+  ##
+  mountPath: /bitnami/postgresql
+
+  ## The subdirectory of the volume to mount to, useful in dev environments
+  ## and one PV for multiple services.
+  ##
+  subPath: ''
+
+  storageClass: manual
+  accessModes:
+    - ReadWriteOnce
+  size: 8Gi
+  annotations: {}
+  ## selector can be used to match an existing PersistentVolume
+  ## selector:
+  ##   matchLabels:
+  ##     app: my-app
+  selector: {}
+
+## updateStrategy for PostgreSQL StatefulSet and its reads StatefulSets
+## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
+##
+updateStrategy:
+  type: RollingUpdate
+
+##
+## PostgreSQL Primary parameters
+##
+primary:
+  ## PostgreSQL Primary pod affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+  ## Allowed values: soft, hard
+  ##
+  podAffinityPreset: ""
+
+  ## PostgreSQL Primary pod anti-affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+  ## Allowed values: soft, hard
+  ##
+  podAntiAffinityPreset: soft
+
+  ## PostgreSQL Primary node affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
+  ## Allowed values: soft, hard
+  ##
+  nodeAffinityPreset:
+    ## Node affinity type
+    ## Allowed values: soft, hard
+    type: soft
+    ## Node label key to match
+    ## E.g.
+    ## key: "kubernetes.io/e2e-az-name"
+    ##
+    key: "postgresql.role"
+    ## Node label values to match
+    ## E.g.
+    ## values:
+    ##   - e2e-az1
+    ##   - e2e-az2
+    ##
+    values:
+        - primary
+
+  ## Affinity for PostgreSQL primary pods assignment
+  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
+  ## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set
+  ##
+  affinity: {}
+
+  ## Node labels for PostgreSQL primary pods assignment
+  ## ref: https://kubernetes.io/docs/user-guide/node-selection/
+  ##
+  nodeSelector: {}
+
+  ## Tolerations for PostgreSQL primary pods assignment
+  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+  ##
+  tolerations: []
+
+  labels: {}
+  annotations: {}
+  podLabels: {}
+  podAnnotations: {}
+  priorityClassName: ''
+  ## Extra init containers
+  ## Example
+  ##
+  ## extraInitContainers:
+  ##   - name: do-something
+  ##     image: busybox
+  ##     command: ['do', 'something']
+  ##
+  extraInitContainers: []
+
+  ## Additional PostgreSQL primary Volume mounts
+  ##
+  extraVolumeMounts: []
+  ## Additional PostgreSQL primary Volumes
+  ##
+  extraVolumes: []
+  ## Add sidecars to the pod
+  ##
+  ## For example:
+  ## sidecars:
+  ##   - name: your-image-name
+  ##     image: your-image
+  ##     imagePullPolicy: Always
+  ##     ports:
+  ##       - name: portname
+  ##         containerPort: 1234
+  ##
+  sidecars: []
+
+  ## Override the service configuration for primary
+  ##
+  service: {}
+  # type:
+  # nodePort:
+  # clusterIP:
+
+##
+## PostgreSQL read only replica parameters
+##
+readReplicas:
+  ## PostgreSQL read only pod affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+  ## Allowed values: soft, hard
+  ##
+  podAffinityPreset: ""
+
+  ## PostgreSQL read only pod anti-affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+  ## Allowed values: soft, hard
+  ##
+  podAntiAffinityPreset: soft
+
+  ## PostgreSQL read only node affinity preset
+  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
+  ## Allowed values: soft, hard
+  ##
+  nodeAffinityPreset:
+    ## Node affinity type
+    ## Allowed values: soft, hard
+    type: soft
+    ## Node label key to match
+    ## E.g.
+    ## key: "kubernetes.io/e2e-az-name"
+    ##
+    key: "postgresql.role"
+    ## Node label values to match
+    ## E.g.
+    ## values:
+    ##   - e2e-az1
+    ##   - e2e-az2
+    ##
+    values: 
+        - slave
+
+  ## Affinity for PostgreSQL read only pods assignment
+  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
+  ## Note: readReplicas.podAffinityPreset, readReplicas.podAntiAffinityPreset, and readReplicas.nodeAffinityPreset will be ignored when it's set
+  ##
+  affinity: {}
+
+  ## Node labels for PostgreSQL read only  pods assignment
+  ## ref: https://kubernetes.io/docs/user-guide/node-selection/
+  ##
+  nodeSelector: {}
+
+  ## Tolerations for PostgreSQL read only  pods assignment
+  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+  ##
+  tolerations: []
+  labels: {}
+  annotations: {}
+  podLabels: {}
+  podAnnotations: {}
+  priorityClassName: ''
+
+  ## Extra init containers
+  ## Example
+  ##
+  ## extraInitContainers:
+  ##   - name: do-something
+  ##     image: busybox
+  ##     command: ['do', 'something']
+  ##
+  extraInitContainers: []
+
+  ## Additional PostgreSQL read replicas Volume mounts
+  ##
+  extraVolumeMounts: []
+
+  ## Additional PostgreSQL read replicas Volumes
+  ##
+  extraVolumes: []
+
+  ## Add sidecars to the pod
+  ##
+  ## For example:
+  ## sidecars:
+  ##   - name: your-image-name
+  ##     image: your-image
+  ##     imagePullPolicy: Always
+  ##     ports:
+  ##       - name: portname
+  ##         containerPort: 1234
+  ##
+  sidecars: []
+
+  ## Override the service configuration for read
+  ##
+  service: {}
+  # type:
+  # nodePort:
+  # clusterIP:
+
+  ## Whether to enable PostgreSQL read replicas data Persistent
+  ##
+  persistence:
+    enabled: true
+
+  # Override the resource configuration for read replicas
+  resources: {} 
+  # requests:
+  #   memory: 256Mi
+  #    cpu: 250m
+
+## Configure resource requests and limits
+## ref: http://kubernetes.io/docs/user-guide/compute-resources/
+##
+resources:
+  requests:
+   memory: 512Mi
+   cpu: 250m
+
+## Add annotations to all the deployed resources
+##
+commonAnnotations: {}
+
+networkPolicy:
+  ## Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now.
+  ##
+  enabled: false
+
+  ## The Policy model to apply. When set to false, only pods with the correct
+  ## client label will have network access to the port PostgreSQL is listening
+  ## on. When true, PostgreSQL will accept connections from any source
+  ## (with the correct destination port).
+  ##
+  allowExternal: true
+
+  ## if explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace
+  ## and that match other criteria, the ones that have the good label, can reach the DB.
+  ## But sometimes, we want the DB to be accessible to clients from other namespaces, in this case, we can use this
+  ## LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added.
+  ##
+  ## Example:
+  ## explicitNamespacesSelector:
+  ##   matchLabels:
+  ##     role: frontend
+  ##   matchExpressions:
+  ##    - {key: role, operator: In, values: [frontend]}
+  ##
+  explicitNamespacesSelector: {}
+
+## Configure extra options for startup, liveness and readiness probes
+## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
+##
+startupProbe:
+  enabled: false
+  initialDelaySeconds: 30
+  periodSeconds: 15
+  timeoutSeconds: 5
+  failureThreshold: 10
+  successThreshold: 1
+
+livenessProbe:
+  enabled: true
+  initialDelaySeconds: 30
+  periodSeconds: 10
+  timeoutSeconds: 5
+  failureThreshold: 6
+  successThreshold: 1
+
+readinessProbe:
+  enabled: true
+  initialDelaySeconds: 5
+  periodSeconds: 10
+  timeoutSeconds: 5
+  failureThreshold: 6
+  successThreshold: 1
+
+## Custom Startup probe
+##
+customStartupProbe: {}
+
+## Custom Liveness probe
+##
+customLivenessProbe: {}
+
+## Custom Rediness probe
+##
+customReadinessProbe: {}
+
+##
+## TLS configuration
+##
+tls:
+  # Enable TLS traffic
+  enabled: false
+  #
+  # Whether to use the server's TLS cipher preferences rather than the client's.
+  preferServerCiphers: true
+  #
+  # Name of the Secret that contains the certificates
+  certificatesSecret: ''
+  #
+  # Certificate filename
+  certFilename: ''
+  #
+  # Certificate Key filename
+  certKeyFilename: ''
+  #
+  # CA Certificate filename
+  # If provided, PostgreSQL will authenticate TLS/SSL clients by requesting them a certificate
+  # ref: https://www.postgresql.org/docs/9.6/auth-methods.html
+  certCAFilename:
+  #
+  # File containing a Certificate Revocation List
+  crlFilename:
+
+## Configure metrics exporter
+##
+metrics:
+  enabled: false
+  # resources: {}
+  service:
+    type: ClusterIP
+    annotations:
+      prometheus.io/scrape: 'true'
+      prometheus.io/port: '9187'
+    loadBalancerIP:
+  serviceMonitor:
+    enabled: false
+    additionalLabels: {}
+    # namespace: monitoring
+    # interval: 30s
+    # scrapeTimeout: 10s
+  ## Custom PrometheusRule to be defined
+  ## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart
+  ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
+  ##
+  prometheusRule:
+    enabled: false
+    additionalLabels: {}
+    namespace: ''
+    ## These are just examples rules, please adapt them to your needs.
+    ## Make sure to constraint the rules to the current postgresql service.
+    ## rules:
+    ##   - alert: HugeReplicationLag
+    ##     expr: pg_replication_lag{service="{{ template "common.names.fullname" . }}-metrics"} / 3600 > 1
+    ##     for: 1m
+    ##     labels:
+    ##       severity: critical
+    ##     annotations:
+    ##       description: replication for {{ template "common.names.fullname" . }} PostgreSQL is lagging by {{ "{{ $value }}" }} hour(s).
+    ##       summary: PostgreSQL replication is lagging by {{ "{{ $value }}" }} hour(s).
+    ##
+    rules: []
+
+  image:
+    registry: docker.io
+    repository: bitnami/postgres-exporter
+    tag: 0.9.0-debian-10-r23
+    pullPolicy: IfNotPresent
+    ## Optionally specify an array of imagePullSecrets.
+    ## Secrets must be manually created in the namespace.
+    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+    ##
+    # pullSecrets:
+    #   - myRegistryKeySecretName
+  ## Define additional custom metrics
+  ## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file
+  # customMetrics:
+  #   pg_database:
+  #     query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size_bytes FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')"
+  #     metrics:
+  #       - name:
+  #           usage: "LABEL"
+  #           description: "Name of the database"
+  #       - size_bytes:
+  #           usage: "GAUGE"
+  #           description: "Size of the database in bytes"
+  #
+  ## An array to add extra env vars to configure postgres-exporter
+  ## see: https://github.com/wrouesnel/postgres_exporter#environment-variables
+  ## For example:
+  #  extraEnvVars:
+  #  - name: PG_EXPORTER_DISABLE_DEFAULT_METRICS
+  #    value: "true"
+  extraEnvVars: []
+
+  ## Pod Security Context
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+  ##
+  securityContext:
+    enabled: false
+    runAsUser: 1001
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
+  ## Configure extra options for liveness and readiness probes
+  ##
+  livenessProbe:
+    enabled: true
+    initialDelaySeconds: 5
+    periodSeconds: 10
+    timeoutSeconds: 5
+    failureThreshold: 6
+    successThreshold: 1
+
+  readinessProbe:
+    enabled: true
+    initialDelaySeconds: 5
+    periodSeconds: 10
+    timeoutSeconds: 5
+    failureThreshold: 6
+    successThreshold: 1
+
+## Array with extra yaml to deploy with the chart. Evaluated as a template
+##
+extraDeploy: []
+
diff --git a/custos-utilities/deployment-scripts/keycloak/postgresql/pv.yaml b/custos-utilities/deployment-scripts/keycloak/postgresql/pv.yaml
new file mode 100644
index 000000000..db9c26140
--- /dev/null
+++ b/custos-utilities/deployment-scripts/keycloak/postgresql/pv.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: task-pv-volume1
+  labels:
+    type: local
+spec:
+  storageClassName: manual
+  capacity:
+    storage: 28Gi
+  accessModes:
+    - ReadWriteOnce
+  hostPath:
+    path: "/bitnami/postgresql"
diff --git a/custos-utilities/deployment-scripts/keycloak/postgresql/pv1.yaml b/custos-utilities/deployment-scripts/keycloak/postgresql/pv1.yaml
new file mode 100644
index 000000000..c6b49a70e
--- /dev/null
+++ b/custos-utilities/deployment-scripts/keycloak/postgresql/pv1.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: task-pv-volume2
+  labels:
+    type: local
+spec:
+  storageClassName: manual
+  capacity:
+    storage: 28Gi
+  accessModes:
+    - ReadWriteOnce
+  hostPath:
+    path: "/bitnami/postgresql"
diff --git a/custos-utilities/deployment-scripts/keycloak/postgresql/pv2.yaml b/custos-utilities/deployment-scripts/keycloak/postgresql/pv2.yaml
new file mode 100644
index 000000000..2de842e99
--- /dev/null
+++ b/custos-utilities/deployment-scripts/keycloak/postgresql/pv2.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: task-pv-volume3
+  labels:
+    type: local
+spec:
+  storageClassName: manual
+  capacity:
+    storage: 28Gi
+  accessModes:
+    - ReadWriteOnce
+  hostPath:
+    path: "/bitnami/postgresql"
diff --git a/custos-utilities/deployment-scripts/olm/install.sh b/custos-utilities/deployment-scripts/olm/install.sh
new file mode 100644
index 000000000..8d592a9ed
--- /dev/null
+++ b/custos-utilities/deployment-scripts/olm/install.sh
@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+
+
+# This script is for installing OLM from a GitHub release
+
+set -e
+
+default_base_url=https://github.com/operator-framework/operator-lifecycle-manager/releases/download
+
+if [[ ${#@} -lt 1 || ${#@} -gt 2 ]]; then
+    echo "Usage: $0 version [base_url]"
+    echo "* version: the github release version"
+    echo "* base_url: the github base URL (Default: $default_base_url)"
+    exit 1
+fi
+
+if kubectl get deployment olm-operator -n openshift-operator-lifecycle-manager > /dev/null 2>&1; then
+    echo "OLM is already installed in a different configuration. This is common if you are not running a vanilla Kubernetes cluster. Exiting..."
+    exit 1
+fi
+
+release="$1"
+base_url="${2:-${default_base_url}}"
+url="${base_url}/${release}"
+namespace=olm
+
+if kubectl get deployment olm-operator -n ${namespace} > /dev/null 2>&1; then
+    echo "OLM is already installed in ${namespace} namespace. Exiting..."
+    exit 1
+fi
+
+kubectl apply -f "${url}/crds.yaml"
+kubectl wait --for=condition=Established -f "${url}/crds.yaml"
+kubectl apply -f "${url}/olm.yaml"
+
+# wait for deployments to be ready
+kubectl rollout status -w deployment/olm-operator --namespace="${namespace}"
+kubectl rollout status -w deployment/catalog-operator --namespace="${namespace}"
+
+retries=30
+until [[ $retries == 0 ]]; do
+    new_csv_phase=$(kubectl get csv -n "${namespace}" packageserver -o jsonpath='{.status.phase}' 2>/dev/null || echo "Waiting for CSV to appear")
+    if [[ $new_csv_phase != "$csv_phase" ]]; then
+        csv_phase=$new_csv_phase
+        echo "Package server phase: $csv_phase"
+    fi
+    if [[ "$new_csv_phase" == "Succeeded" ]]; then
+	break
+    fi
+    sleep 10
+    retries=$((retries - 1))
+done
+
+if [ $retries == 0 ]; then
+    echo "CSV \"packageserver\" failed to reach phase succeeded"
+    exit 1
+fi
+
+kubectl rollout status -w deployment/packageserver --namespace="${namespace}"
diff --git a/custos-utilities/deployment-scripts/vault/README.MD b/custos-utilities/deployment-scripts/vault/README.MD
new file mode 100644
index 000000000..85f5fb71f
--- /dev/null
+++ b/custos-utilities/deployment-scripts/vault/README.MD
@@ -0,0 +1,26 @@
+### Deploy HashiCorp Consul
+Consul is the storage for vault.
+####  Create PVs
+
+Create three PVs for each mount point   /hashicorp/consul
+ -  `kubectl apply -f pv.yaml`   
+
+Create storage
+- `kubectl apply -f storage.yaml`
+
+Deploy consule
+- `helm install consul hashicorp/consul --version 0.31.1 -n vault`
+
+
+#### Deploy Vault
+
+`helm install vault hashicorp/vault     --namespace vault     -f vaules.yaml     --version 0.10.0`
+
+#### Deploy Ingress
+
+`kubectl apply -f ingress.yaml -n vault`
+
+
+    
+
+ 
\ No newline at end of file
diff --git a/custos-utilities/deployment-scripts/vault/consul/pv.yaml b/custos-utilities/deployment-scripts/vault/consul/pv.yaml
new file mode 100644
index 000000000..bedda2b77
--- /dev/null
+++ b/custos-utilities/deployment-scripts/vault/consul/pv.yaml
@@ -0,0 +1,26 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: data-consul-pv0
+  labels:
+    type: local
+spec:
+  nodeAffinity:
+    required:
+      nodeSelectorTerms:
+      - matchExpressions:
+        - key: vaultAffinity
+          operator: In
+          values:
+          - node-worker3      
+  storageClassName: local-storage
+  capacity:
+    storage: 10Gi
+  accessModes:
+    - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Recycle
+  claimRef:
+    namespace: vault
+    name: data-vault-consul-server-0
+  hostPath:
+    path: "/harshicorp/consul"
diff --git a/custos-utilities/deployment-scripts/vault/consul/pv1.yaml b/custos-utilities/deployment-scripts/vault/consul/pv1.yaml
new file mode 100644
index 000000000..84a120a86
--- /dev/null
+++ b/custos-utilities/deployment-scripts/vault/consul/pv1.yaml
@@ -0,0 +1,26 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: data-consul-pv1
+  labels:
+    type: local
+spec:
+  nodeAffinity:
+    required:
+      nodeSelectorTerms:
+      - matchExpressions:
+        - key: vaultAffinity
+          operator: In
+          values:
+          - node-worker2
+  storageClassName: local-storage
+  capacity:
+    storage: 10Gi
+  accessModes:
+    - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Recycle
+  claimRef:
+    namespace: vault
+    name: data-vault-consul-server-1
+  hostPath:
+    path: "/harshicorp/consul"
diff --git a/custos-utilities/deployment-scripts/vault/consul/pv2.yaml b/custos-utilities/deployment-scripts/vault/consul/pv2.yaml
new file mode 100644
index 000000000..f891f5fa0
--- /dev/null
+++ b/custos-utilities/deployment-scripts/vault/consul/pv2.yaml
@@ -0,0 +1,26 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: data-consul-pv2
+  labels:
+    type: local
+spec:
+  nodeAffinity:
+    required:
+      nodeSelectorTerms:
+      - matchExpressions:
+        - key: vaultAffinity
+          operator: In
+          values:
+          - node-worker4
+  storageClassName: local-storage
+  capacity:
+    storage: 10Gi
+  accessModes:
+    - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Recycle
+  claimRef:
+    namespace: vault
+    name: data-vault-consul-server-2
+  hostPath:
+    path: "/harshicorp/consul"
diff --git a/custos-utilities/deployment-scripts/vault/consul/storage.yaml b/custos-utilities/deployment-scripts/vault/consul/storage.yaml
new file mode 100644
index 000000000..e6ce6fbf0
--- /dev/null
+++ b/custos-utilities/deployment-scripts/vault/consul/storage.yaml
@@ -0,0 +1,6 @@
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+  name: local-storage
+provisioner: kubernetes.io/no-provisioner
+volumeBindingMode: WaitForFirstConsumer
diff --git a/custos-utilities/deployment-scripts/vault/vault/ingress.yaml b/custos-utilities/deployment-scripts/vault/vault/ingress.yaml
new file mode 100644
index 000000000..0b1fbcd87
--- /dev/null
+++ b/custos-utilities/deployment-scripts/vault/vault/ingress.yaml
@@ -0,0 +1,22 @@
+apiVersion: networking.k8s.io/v1beta1
+kind: Ingress
+metadata:
+  name: vault-ingress
+  annotations:
+    nginx.ingress.kubernetes.io/rewrite-target: /
+    kubernetes.io/ingress.class: nginx
+    cert-manager.io/cluster-issuer: letsencrypt-prod
+spec:
+  tls:
+   - hosts:
+     - HOST_NAME
+     secretName: tls-vault-secret
+
+  rules:
+   - host: HOST_NAME
+     http:
+      paths:
+      - path: /
+        backend:
+          serviceName: vault
+          servicePort: 8200
diff --git a/custos-utilities/deployment-scripts/vault/vault/vaules.yaml b/custos-utilities/deployment-scripts/vault/vault/vaules.yaml
new file mode 100644
index 000000000..ee117c9dc
--- /dev/null
+++ b/custos-utilities/deployment-scripts/vault/vault/vaules.yaml
@@ -0,0 +1,733 @@
+# Available parameters and their default values for the Vault chart.
+
+global:
+  # enabled is the master enabled switch. Setting this to true or false
+  # will enable or disable all the components within this chart by default.
+  enabled: true
+  # Image pull secret to use for registry authentication.
+  imagePullSecrets: []
+  # imagePullSecrets:
+  #   - name: image-pull-secret
+  # TLS for end-to-end encrypted transport
+  tlsDisable: true
+  # If deploying to OpenShift
+  openshift: false
+  # Create PodSecurityPolicy for pods
+  psp:
+    enable: false
+    # Annotation for PodSecurityPolicy.
+    # This is a multi-line templated string map, and can also be set as YAML.
+    annotations: |
+      seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default,runtime/default
+      apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default
+      seccomp.security.alpha.kubernetes.io/defaultProfileName:  runtime/default
+      apparmor.security.beta.kubernetes.io/defaultProfileName:  runtime/default
+
+injector:
+  # True if you want to enable vault agent injection.
+  enabled: true
+
+  replicas: 1
+
+  # If multiple replicas are specified, by default a leader-elector side-car
+  # will be created so that only one injector attempts to create TLS certificates.
+  leaderElector:
+    enabled: true
+    image:
+      repository: "gcr.io/google_containers/leader-elector"
+      tag: "0.4"
+    ttl: 60s
+
+  # If true, will enable a node exporter metrics endpoint at /metrics.
+  metrics:
+    enabled: false
+
+  # External vault server address for the injector to use. Setting this will
+  # disable deployment of a vault server along with the injector.
+  externalVaultAddr: ""
+
+  # image sets the repo and tag of the vault-k8s image to use for the injector.
+  image:
+    repository: "hashicorp/vault-k8s"
+    tag: "0.9.0"
+    pullPolicy: IfNotPresent
+
+  # agentImage sets the repo and tag of the Vault image to use for the Vault Agent
+  # containers.  This should be set to the official Vault image.  Vault 1.3.1+ is
+  # required.
+  agentImage:
+    repository: "vault"
+    tag: "1.7.0"
+
+  # Mount Path of the Vault Kubernetes Auth Method.
+  authPath: "auth/kubernetes"
+
+  # Configures the log verbosity of the injector. Supported log levels: Trace, Debug, Error, Warn, Info
+  logLevel: "info"
+
+  # Configures the log format of the injector. Supported log formats: "standard", "json".
+  logFormat: "standard"
+
+  # Configures all Vault Agent sidecars to revoke their token when shutting down
+  revokeOnShutdown: false
+
+  # namespaceSelector is the selector for restricting the webhook to only
+  # specific namespaces.
+  # See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector
+  # for more details.
+  # Example:
+  # namespaceSelector:
+  #    matchLabels:
+  #      sidecar-injector: enabled
+  namespaceSelector: {}
+  # objectSelector is the selector for restricting the webhook to only
+  # specific labels.
+  # See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector
+  # for more details.
+  # Example:
+  # objectSelector:
+  #    matchLabels:
+  #      vault-sidecar-injector: enabled
+  objectSelector: {}
+
+  # Configures failurePolicy of the webhook. The "unspecified" default behaviour deoends on the
+  # API Version of the WebHook.
+  # To block pod creation while webhook is unavailable, set the policy to `Fail` below.
+  # See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy
+  #
+  failurePolicy: Ignore
+
+  certs:
+    # secretName is the name of the secret that has the TLS certificate and
+    # private key to serve the injector webhook. If this is null, then the
+    # injector will default to its automatic management mode that will assign
+    # a service account to the injector to generate its own certificates.
+    secretName: null
+
+    # caBundle is a base64-encoded PEM-encoded certificate bundle for the
+    # CA that signed the TLS certificate that the webhook serves. This must
+    # be set if secretName is non-null.
+    caBundle: ""
+
+    # certName and keyName are the names of the files within the secret for
+    # the TLS cert and private key, respectively. These have reasonable
+    # defaults but can be customized if necessary.
+    certName: tls.crt
+    keyName: tls.key
+
+    # resources: {}
+  resources:
+     requests:
+       memory: 256Mi
+  #     cpu: 250m
+  #   limits:
+       memory: 256Mi
+  #     cpu: 250m
+
+  # extraEnvironmentVars is a list of extra environment variables to set in the
+  # injector deployment.
+  extraEnvironmentVars: {}
+    # KUBERNETES_SERVICE_HOST: kubernetes.default.svc
+
+  # Affinity Settings for injector pods
+  # This should be a multi-line string matching the affinity section of a
+  # PodSpec.
+  # Commenting out or setting as empty the affinity variable, will allow
+  # deployment of multiple replicas to single node services such as Minikube.
+  affinity: |
+    podAntiAffinity:
+      requiredDuringSchedulingIgnoredDuringExecution:
+        - labelSelector:
+            matchLabels:
+              app.kubernetes.io/name: {{ template "vault.name" . }}-agent-injector
+              app.kubernetes.io/instance: "{{ .Release.Name }}"
+              component: webhook
+          topologyKey: kubernetes.io/hostname
+
+  # Toleration Settings for injector pods
+  # This should be a multi-line string matching the Toleration array
+  # in a PodSpec.
+  tolerations: null
+
+  # nodeSelector labels for injector pod assignment, formatted as a muli-line string.
+  # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
+  # Example:
+  # nodeSelector: |
+  #   beta.kubernetes.io/arch: amd64
+  nodeSelector: null
+
+  # Priority class for injector pods
+  priorityClassName: ""
+
+  # Extra annotations to attach to the injector pods
+  # This can either be YAML or a YAML-formatted multi-line templated string map
+  # of the annotations to apply to the injector pods
+  annotations: {}
+
+  # Extra labels to attach to the agent-injector
+  # This should be a YAML map of the labels to apply to the injector
+  extraLabels: {}
+
+  # Injector service specific config
+  service:
+    # Extra annotations to attach to the injector service
+    annotations: {}
+
+server:
+  # Resource requests, limits, etc. for the server cluster placement. This
+  # should map directly to the value of the resources field for a PodSpec.
+  # By default no direct resource request is made.
+
+  image:
+    repository: "vault"
+    tag: "1.7.0"
+    # Overrides the default Image Pull Policy
+    pullPolicy: IfNotPresent
+
+  # Configure the Update Strategy Type for the StatefulSet
+  # See https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
+  updateStrategyType: "OnDelete"
+
+  resources: {}
+  # resources:
+  #   requests:
+  #     memory: 256Mi
+  #     cpu: 250m
+  #   limits:
+  #     memory: 256Mi
+  #     cpu: 250m
+
+  # Ingress allows ingress services to be created to allow external access
+  # from Kubernetes to access Vault pods.
+  # If deployment is on OpenShift, the following block is ignored.
+  # In order to expose the service, use the route section below
+  ingress:
+    enabled: false
+    labels: {}
+      # traffic: external
+    annotations: {}
+      # |
+      # kubernetes.io/ingress.class: nginx
+      # kubernetes.io/tls-acme: "true"
+      #   or
+      # kubernetes.io/ingress.class: nginx
+      # kubernetes.io/tls-acme: "true"
+    hosts:
+      - host: chart-example.local
+        paths: []
+
+    tls: []
+    #  - secretName: chart-example-tls
+    #    hosts:
+    #      - chart-example.local
+
+  # OpenShift only - create a route to expose the service
+  # The created route will be of type passthrough
+  route:
+    enabled: false
+    labels: {}
+    annotations: {}
+    host: chart-example.local
+
+  # authDelegator enables a cluster role binding to be attached to the service
+  # account.  This cluster role binding can be used to setup Kubernetes auth
+  # method.  https://www.vaultproject.io/docs/auth/kubernetes.html
+  authDelegator:
+    enabled: true
+
+  # extraInitContainers is a list of init containers. Specified as a YAML list.
+  # This is useful if you need to run a script to provision TLS certificates or
+  # write out configuration files in a dynamic way.
+  extraInitContainers: null
+    # # This example installs a plugin pulled from github into the /usr/local/libexec/vault/oauthapp folder,
+    # # which is defined in the volumes value.
+    # - name: oauthapp
+    #   image: "alpine"
+    #   command: [sh, -c]
+    #   args:
+    #     - cd /tmp &&
+    #       wget https://github.com/puppetlabs/vault-plugin-secrets-oauthapp/releases/download/v1.2.0/vault-plugin-secrets-oauthapp-v1.2.0-linux-amd64.tar.xz -O oauthapp.xz &&
+    #       tar -xf oauthapp.xz &&
+    #       mv vault-plugin-secrets-oauthapp-v1.2.0-linux-amd64 /usr/local/libexec/vault/oauthapp &&
+    #       chmod +x /usr/local/libexec/vault/oauthapp
+    #   volumeMounts:
+    #     - name: plugins
+    #       mountPath: /usr/local/libexec/vault
+
+  # extraContainers is a list of sidecar containers. Specified as a YAML list.
+  extraContainers: null
+
+  # shareProcessNamespace enables process namespace sharing between Vault and the extraContainers
+  # This is useful if Vault must be signaled, e.g. to send a SIGHUP for log rotation
+  shareProcessNamespace: false
+
+  # extraArgs is a string containing additional Vault server arguments.
+  extraArgs: ""
+
+  # Used to define custom readinessProbe settings
+  readinessProbe:
+    enabled: true
+    # If you need to use a http path instead of the default exec
+    # path: /v1/sys/health?standbyok=true
+
+    # When a probe fails, Kubernetes will try failureThreshold times before giving up
+    failureThreshold: 2
+    # Number of seconds after the container has started before probe initiates
+    initialDelaySeconds: 5
+    # How often (in seconds) to perform the probe
+    periodSeconds: 5
+    # Minimum consecutive successes for the probe to be considered successful after having failed
+    successThreshold: 1
+    # Number of seconds after which the probe times out.
+    timeoutSeconds: 3
+  # Used to enable a livenessProbe for the pods
+  livenessProbe:
+    enabled: false
+    path: "/v1/sys/health?standbyok=true"
+    # When a probe fails, Kubernetes will try failureThreshold times before giving up
+    failureThreshold: 2
+    # Number of seconds after the container has started before probe initiates
+    initialDelaySeconds: 60
+    # How often (in seconds) to perform the probe
+    periodSeconds: 5
+    # Minimum consecutive successes for the probe to be considered successful after having failed
+    successThreshold: 1
+    # Number of seconds after which the probe times out.
+    timeoutSeconds: 3
+
+  # Used to set the sleep time during the preStop step
+  preStopSleepSeconds: 5
+
+  # Used to define commands to run after the pod is ready.
+  # This can be used to automate processes such as initialization
+  # or boostrapping auth methods.
+  postStart: []
+  # - /bin/sh
+  # - -c
+  # - /vault/userconfig/myscript/run.sh
+
+  # extraEnvironmentVars is a list of extra environment variables to set with the stateful set. These could be
+  # used to include variables required for auto-unseal.
+  extraEnvironmentVars: {}
+    # GOOGLE_REGION: global
+    # GOOGLE_PROJECT: myproject
+    # GOOGLE_APPLICATION_CREDENTIALS: /vault/userconfig/myproject/myproject-creds.json
+
+  # extraSecretEnvironmentVars is a list of extra environment variables to set with the stateful set.
+  # These variables take value from existing Secret objects.
+  extraSecretEnvironmentVars: []
+    # - envName: AWS_SECRET_ACCESS_KEY
+    #   secretName: vault
+    #   secretKey: AWS_SECRET_ACCESS_KEY
+
+  # Deprecated: please use 'volumes' instead.
+  # extraVolumes is a list of extra volumes to mount. These will be exposed
+  # to Vault in the path `/vault/userconfig/<name>/`. The value below is
+  # an array of objects, examples are shown below.
+  extraVolumes: []
+    # - type: secret (or "configMap")
+    #   name: my-secret
+    #   path: null # default is `/vault/userconfig`
+
+  # volumes is a list of volumes made available to all containers. These are rendered
+  # via toYaml rather than pre-processed like the extraVolumes value.
+  # The purpose is to make it easy to share volumes between containers.
+  volumes: null
+  #   - name: plugins
+  #     emptyDir: {}
+
+  # volumeMounts is a list of volumeMounts for the main server container. These are rendered
+  # via toYaml rather than pre-processed like the extraVolumes value.
+  # The purpose is to make it easy to share volumes between containers.
+  volumeMounts: null
+  #   - mountPath: /usr/local/libexec/vault
+  #     name: plugins
+  #     readOnly: true
+
+
+  # Affinity Settings
+  # Commenting out or setting as empty the affinity variable, will allow
+  # deployment to single node services such as Minikube
+  affinity: |
+    podAntiAffinity:
+      requiredDuringSchedulingIgnoredDuringExecution:
+        - labelSelector:
+            matchLabels:
+              app.kubernetes.io/name: {{ template "vault.name" . }}
+              app.kubernetes.io/instance: "{{ .Release.Name }}"
+              component: server
+          topologyKey: kubernetes.io/hostname
+
+  # Toleration Settings for server pods
+  # This should be a multi-line string matching the Toleration array
+  # in a PodSpec.
+  tolerations: null
+
+  # nodeSelector labels for server pod assignment, formatted as a muli-line string.
+  # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
+  # Example:
+  # nodeSelector: |
+  #   beta.kubernetes.io/arch: amd64
+  nodeSelector: null
+
+  # Enables network policy for server pods
+  networkPolicy:
+    enabled: false
+    egress: []
+    # egress:
+    # - to:
+    #   - ipBlock:
+    #       cidr: 10.0.0.0/24
+    #   ports:
+    #   - protocol: TCP
+    #     port: 443
+
+  # Priority class for server pods
+  priorityClassName: ""
+
+  # Extra labels to attach to the server pods
+  # This should be a YAML map of the labels to apply to the server pods
+  extraLabels: {}
+
+  # Extra annotations to attach to the server pods
+  # This can either be YAML or a YAML-formatted multi-line templated string map
+  # of the annotations to apply to the server pods
+  annotations: {}
+
+  # Enables a headless service to be used by the Vault Statefulset
+  service:
+    enabled: true
+    # clusterIP controls whether a Cluster IP address is attached to the
+    # Vault service within Kubernetes.  By default the Vault service will
+    # be given a Cluster IP address, set to None to disable.  When disabled
+    # Kubernetes will create a "headless" service.  Headless services can be
+    # used to communicate with pods directly through DNS instead of a round robin
+    # load balancer.
+    # clusterIP: None
+
+    # Configures the service type for the main Vault service.  Can be ClusterIP
+    # or NodePort.
+    #type: ClusterIP
+
+    # If type is set to "NodePort", a specific nodePort value can be configured,
+    # will be random if left blank.
+    #nodePort: 30000
+
+    # Port on which Vault server is listening
+    port: 8200
+    # Target port to which the service should be mapped to
+    targetPort: 8200
+    # Extra annotations for the service definition. This can either be YAML or a
+    # YAML-formatted multi-line templated string map of the annotations to apply
+    # to the service.
+    annotations: {}
+
+  # This configures the Vault Statefulset to create a PVC for data
+  # storage when using the file or raft backend storage engines.
+  # See https://www.vaultproject.io/docs/configuration/storage/index.html to know more
+  dataStorage:
+    enabled: true
+    # Size of the PVC created
+    size: 10Gi
+    # Location where the PVC will be mounted.
+    mountPath: "/vault/data"
+    # Name of the storage class to use.  If null it will use the
+    # configured default Storage Class.
+    storageClass: null
+    # Access Mode of the storage device being used for the PVC
+    accessMode: ReadWriteOnce
+    # Annotations to apply to the PVC
+    annotations: {}
+
+  # This configures the Vault Statefulset to create a PVC for audit
+  # logs.  Once Vault is deployed, initialized and unseal, Vault must
+  # be configured to use this for audit logs.  This will be mounted to
+  # /vault/audit
+  # See https://www.vaultproject.io/docs/audit/index.html to know more
+  auditStorage:
+    enabled: false
+    # Size of the PVC created
+    size: 10Gi
+    # Location where the PVC will be mounted.
+    mountPath: "/vault/audit"
+    # Name of the storage class to use.  If null it will use the
+    # configured default Storage Class.
+    storageClass: null
+    # Access Mode of the storage device being used for the PVC
+    accessMode: ReadWriteOnce
+    # Annotations to apply to the PVC
+    annotations: {}
+
+  # Run Vault in "dev" mode. This requires no further setup, no state management,
+  # and no initialization. This is useful for experimenting with Vault without
+  # needing to unseal, store keys, et. al. All data is lost on restart - do not
+  # use dev mode for anything other than experimenting.
+  # See https://www.vaultproject.io/docs/concepts/dev-server.html to know more
+  dev:
+    enabled: false
+
+    # Set VAULT_DEV_ROOT_TOKEN_ID value
+    devRootToken: "root"
+
+  # Run Vault in "standalone" mode. This is the default mode that will deploy if
+  # no arguments are given to helm. This requires a PVC for data storage to use
+  # the "file" backend.  This mode is not highly available and should not be scaled
+  # past a single replica.
+  standalone:
+    enabled: "-"
+
+    # config is a raw string of default configuration when using a Stateful
+    # deployment. Default is to use a PersistentVolumeClaim mounted at /vault/data
+    # and store data there. This is only used when using a Replica count of 1, and
+    # using a stateful set. This should be HCL.
+
+    # Note: Configuration files are stored in ConfigMaps so sensitive data
+    # such as passwords should be either mounted through extraSecretEnvironmentVars
+    # or through a Kube secret.  For more information see:
+    # https://www.vaultproject.io/docs/platform/k8s/helm/run#protecting-sensitive-vault-configurations
+    config: |
+      ui = true
+
+      listener "tcp" {
+        tls_disable = 1
+        address = "[::]:8200"
+        cluster_address = "[::]:8201"
+      }
+      storage "file" {
+        path = "/vault/data"
+      }
+
+      # Example configuration for using auto-unseal, using Google Cloud KMS. The
+      # GKMS keys must already exist, and the cluster must have a service account
+      # that is authorized to access GCP KMS.
+      #seal "gcpckms" {
+      #   project     = "vault-helm-dev"
+      #   region      = "global"
+      #   key_ring    = "vault-helm-unseal-kr"
+      #   crypto_key  = "vault-helm-unseal-key"
+      #}
+
+  # Run Vault in "HA" mode. There are no storage requirements unless audit log
+  # persistence is required.  In HA mode Vault will configure itself to use Consul
+  # for its storage backend.  The default configuration provided will work the Consul
+  # Helm project by default.  It is possible to manually configure Vault to use a
+  # different HA backend.
+  ha:
+    enabled: true
+    replicas: 1
+
+    # Set the api_addr configuration for Vault HA
+    # See https://www.vaultproject.io/docs/configuration#api_addr
+    # If set to null, this will be set to the Pod IP Address
+    apiAddr: null
+
+    # Enables Vault's integrated Raft storage.  Unlike the typical HA modes where
+    # Vault's persistence is external (such as Consul), enabling Raft mode will create
+    # persistent volumes for Vault to store data according to the configuration under server.dataStorage.
+    # The Vault cluster will coordinate leader elections and failovers internally.
+    raft:
+
+      # Enables Raft integrated storage
+      enabled: false
+      # Set the Node Raft ID to the name of the pod
+      setNodeId: false
+
+      # Note: Configuration files are stored in ConfigMaps so sensitive data
+      # such as passwords should be either mounted through extraSecretEnvironmentVars
+      # or through a Kube secret.  For more information see:
+      # https://www.vaultproject.io/docs/platform/k8s/helm/run#protecting-sensitive-vault-configurations
+      config: |
+        ui = true
+
+        listener "tcp" {
+          tls_disable = 1
+          address = "[::]:8200"
+          cluster_address = "[::]:8201"
+        }
+
+        storage "raft" {
+          path = "/vault/data"
+        }
+
+        service_registration "kubernetes" {}
+
+    # config is a raw string of default configuration when using a Stateful
+    # deployment. Default is to use a Consul for its HA storage backend.
+    # This should be HCL.
+
+    # Note: Configuration files are stored in ConfigMaps so sensitive data
+    # such as passwords should be either mounted through extraSecretEnvironmentVars
+    # or through a Kube secret.  For more information see:
+    # https://www.vaultproject.io/docs/platform/k8s/helm/run#protecting-sensitive-vault-configurations
+    config: |
+      ui = true
+
+      listener "tcp" {
+        tls_disable = 1
+        address = "[::]:8200"
+        cluster_address = "[::]:8201"
+      }
+      storage "consul" {
+        path = "vault"
+        address = "HOST_IP:8500"
+      }
+
+      service_registration "kubernetes" {}
+
+      # Example configuration for using auto-unseal, using Google Cloud KMS. The
+      # GKMS keys must already exist, and the cluster must have a service account
+      # that is authorized to access GCP KMS.
+      #seal "gcpckms" {
+      #   project     = "vault-helm-dev-246514"
+      #   region      = "global"
+      #   key_ring    = "vault-helm-unseal-kr"
+      #   crypto_key  = "vault-helm-unseal-key"
+      #}
+
+    # A disruption budget limits the number of pods of a replicated application
+    # that are down simultaneously from voluntary disruptions
+    disruptionBudget:
+      enabled: true
+
+    # maxUnavailable will default to (n/2)-1 where n is the number of
+    # replicas. If you'd like a custom value, you can specify an override here.
+      maxUnavailable: null
+
+  # Definition of the serviceAccount used to run Vault.
+  # These options are also used when using an external Vault server to validate
+  # Kubernetes tokens.
+  serviceAccount:
+    # Specifies whether a service account should be created
+    create: true
+    # The name of the service account to use.
+    # If not set and create is true, a name is generated using the fullname template
+    name: ""
+    # Extra annotations for the serviceAccount definition. This can either be
+    # YAML or a YAML-formatted multi-line templated string map of the
+    # annotations to apply to the serviceAccount.
+    annotations: {}
+
+  # Settings for the statefulSet used to run Vault.
+  statefulSet:
+    # Extra annotations for the statefulSet. This can either be YAML or a
+    # YAML-formatted multi-line templated string map of the annotations to apply
+    # to the statefulSet.
+    annotations: {}
+
+# Vault UI
+ui:
+  # True if you want to create a Service entry for the Vault UI.
+  #
+  # serviceType can be used to control the type of service created. For
+  # example, setting this to "LoadBalancer" will create an external load
+  # balancer (for supported K8S installations) to access the UI.
+  enabled: true
+  publishNotReadyAddresses: true
+  # The service should only contain selectors for active Vault pod
+  activeVaultPodOnly: false
+  serviceType: "ClusterIP"
+  serviceNodePort: null
+  externalPort: 8200
+
+  # loadBalancerSourceRanges:
+  #   - 10.0.0.0/16
+  #   - 1.78.23.3/32
+
+  # loadBalancerIP:
+
+  # Extra annotations to attach to the ui service
+  # This can either be YAML or a YAML-formatted multi-line templated string map
+  # of the annotations to apply to the ui service
+  annotations: {}
+
+# secrets-store-csi-driver-provider-vault
+csi:
+  # True if you want to install a secrets-store-csi-driver-provider-vault daemonset.
+  #
+  # Requires installing the secrets-store-csi-driver separately, see:
+  # https://github.com/kubernetes-sigs/secrets-store-csi-driver#install-the-secrets-store-csi-driver
+  #
+  # With the driver and provider installed, you can mount Vault secrets into volumes
+  # similar to the Vault Agent injector, and you can also sync those secrets into
+  # Kubernetes secrets.
+  enabled: false
+
+  image:
+    repository: "hashicorp/vault-csi-provider"
+    tag: "0.1.0"
+    pullPolicy: IfNotPresent
+
+  # volumes is a list of volumes made available to all containers. These are rendered
+  # via toYaml rather than pre-processed like the extraVolumes value.
+  # The purpose is to make it easy to share volumes between containers.
+  volumes: null
+  # - name: tls
+  #   secret:
+  #     secretName: vault-tls
+
+  # volumeMounts is a list of volumeMounts for the main server container. These are rendered
+  # via toYaml rather than pre-processed like the extraVolumes value.
+  # The purpose is to make it easy to share volumes between containers.
+  volumeMounts: null
+  # - name: tls
+  #   mountPath: "/vault/tls"
+  #   readOnly: true
+
+  resources: {}
+  # resources:
+  #   requests:
+  #     cpu: 50m
+  #     memory: 128Mi
+  #   limits:
+  #     cpu: 50m
+  #     memory: 128Mi
+
+  # Settings for the daemonSet used to run the provider.
+  daemonSet:
+    updateStrategy:
+      type: RollingUpdate
+      maxUnavailable: ""
+    # Extra annotations for the daemonSet. This can either be YAML or a
+    # YAML-formatted multi-line templated string map of the annotations to apply
+    # to the daemonSet.
+    annotations: {}
+  pod:
+    # Extra annotations for the provider pods. This can either be YAML or a
+    # YAML-formatted multi-line templated string map of the annotations to apply
+    # to the pod.
+    annotations: {}
+
+  serviceAccount:
+    # Extra annotations for the serviceAccount definition. This can either be
+    # YAML or a YAML-formatted multi-line templated string map of the
+    # annotations to apply to the serviceAccount.
+    annotations: {}
+
+  # Used to configure readinessProbe for the pods.
+  readinessProbe:
+    # When a probe fails, Kubernetes will try failureThreshold times before giving up
+    failureThreshold: 2
+    # Number of seconds after the container has started before probe initiates
+    initialDelaySeconds: 5
+    # How often (in seconds) to perform the probe
+    periodSeconds: 5
+    # Minimum consecutive successes for the probe to be considered successful after having failed
+    successThreshold: 1
+    # Number of seconds after which the probe times out.
+    timeoutSeconds: 3
+  # Used to configure livenessProbe for the pods.
+  livenessProbe:
+    # When a probe fails, Kubernetes will try failureThreshold times before giving up
+    failureThreshold: 2
+    # Number of seconds after the container has started before probe initiates
+    initialDelaySeconds: 5
+    # How often (in seconds) to perform the probe
+    periodSeconds: 5
+    # Minimum consecutive successes for the probe to be considered successful after having failed
+    successThreshold: 1
+    # Number of seconds after which the probe times out.
+    timeoutSeconds: 3
+
+  # Enables debug logging.
+  debug: false
+
diff --git a/pom.xml b/pom.xml
index f4a7a91ca..95541f0e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
     <groupId>org.apache.custos</groupId>
     <artifactId>custos</artifactId>
     <packaging>pom</packaging>
-    <version>1.1-SNAPSHOT</version>
+   <version>1.1</version>
 
     <modules>
         <module>custos-core-services</module>
@@ -353,33 +353,62 @@
         </profile>
         <profile>
             <id>container</id>
+<<<<<<< Updated upstream
+            <properties>
+                <spring.profiles.active>production</spring.profiles.active>
+                <vault.token>s.SoaSEW6VF1zAHwiRp5hpzSf2</vault.token>
+                <vault.scheme>http</vault.scheme>
+                <vault.host>vault.vault.svc.cluster.local</vault.host>
+                <vault.port>8200</vault.port>
+                <vault.uri>http://vault.vault.svc.cluster.local:8200</vault.uri>
+=======
+<<<<<<< Updated upstream
+=======
             <properties>
                 <spring.profiles.active>dev</spring.profiles.active>
-                <vault.token>{{token}}</vault.token>
+                <vault.token>s.gqEMkyNMcotIi332CDiITUHf</vault.token>
                 <vault.scheme>https</vault.scheme>
                 <vault.host>https://vault.custos.scigap.org</vault.host>
                 <vault.port>31190</vault.port>
                 <vault.uri>https://vault.custos.scigap.org:31190</vault.uri>
+>>>>>>> Stashed changes
                 <iam.dev.username>{{token}}</iam.dev.username>
                 <iam.dev.password>{{token}}</iam.dev.password>
                 <iam.staging.username>{{token}}</iam.staging.username>
                 <iam.staging.password>{{token}}</iam.staging.password>
+<<<<<<< Updated upstream
+                <iam.production.username>admin</iam.production.username>
+                <iam.production.password>dwqZkp5OOfKiew==</iam.production.password>
+=======
                 <iam.production.username>{{token}}</iam.production.username>
                 <iam.production.password>{{token}}</iam.production.password>
+>>>>>>> Stashed changes
                 <cilogon.dev.id>{{token}}</cilogon.dev.id>
                 <cilogon.dev.sec>{{token}}</cilogon.dev.sec>
                 <cilogon.staging.id>{{token}}</cilogon.staging.id>
                 <cilogon.staging.sec>{{token}}</cilogon.staging.sec>
+<<<<<<< Updated upstream
+                <cilogon.production.id>cilogon:/adminClient/2f039527fe4715c2f6f19eb0ae327ba7/1633292562101</cilogon.production.id>
+                <cilogon.production.sec>qiOYx_WR3BAfFeE3y9tLFPAsRn2ytblkXIMCVwGJzl07GAdwmBQRfgVc2eW65ZzA2L2Wy7ByZexS0wTqWtUHRA</cilogon.production.sec>
+                <custos.email.password>{{token}}</custos.email.password>
+                <spring.datasource.username>root</spring.datasource.username>
+                <spring.datasource.password>UtahSALTlakeCITY</spring.datasource.password>
+=======
                 <cilogon.production.id>{{token}}</cilogon.production.id>
                 <cilogon.production.sec>{{token}}</cilogon.production.sec>
                 <custos.email.password>{{token}}</custos.email.password>
                 <spring.datasource.username>root</spring.datasource.username>
                 <spring.datasource.password>root</spring.datasource.password>
+>>>>>>> Stashed changes
 
             </properties>
             <activation>
                 <activeByDefault>false</activeByDefault>
             </activation>
+<<<<<<< Updated upstream
+=======
+>>>>>>> Stashed changes
+>>>>>>> Stashed changes
             <build>
                 <resources>
                     <resource>
@@ -532,22 +561,22 @@
                             <target>
 
                                 <scp localFile="${project.basedir}/target/helm/${project.artifactId}-${project.version}.tgz"
-                                     remoteToFile="${ssh.username}@${host}:/home/ubuntu/custos/artifacts"
+                                     remoteToFile="${ssh.username}@${host}:/home/${ssh.username}/custos/artifacts"
                                      verbose="true"
                                      keyfile="${ssh.privatekey}"
                                      passphrase="${ssh.passphrase}" trust="true">
                                 </scp>
-                                <sshexec host="${host}"
-                                         username="${ssh.username}"
-                                         keyfile="${ssh.privatekey}"
-                                         passphrase="${ssh.passphrase}" trust="true"
-                                         command="helm delete --purge ${project.artifactId} "/>
+<!--                                <sshexec host="${host}"-->
+<!--                                         username="${ssh.username}"-->
+<!--                                         keyfile="${ssh.privatekey}"-->
+<!--                                         passphrase="${ssh.passphrase}" trust="true"-->
+<!--                                         command="helm delete  ${project.artifactId} -n custos "/>-->
 
                                 <sshexec host="${host}"
                                          username="${ssh.username}"
                                          keyfile="${ssh.privatekey}"
                                          passphrase="${ssh.passphrase}" trust="true"
-                                         command="helm install --name ${project.artifactId} /home/ubuntu/custos/artifacts/${project.artifactId}-${project.version}.tgz  --namespace custos"/>
+                                         command="helm install  ${project.artifactId} /home/${ssh.username}/custos/artifacts/${project.artifactId}-${project.version}.tgz  -n custos"/>
 
                                 <!-- SSH -->
                                 <taskdef name="sshexec"
@@ -650,7 +679,7 @@
         <docker.image.repo>custos</docker.image.repo>
         <docker.plugin.version>1.4.13</docker.plugin.version>
 
-        <helm.maven.plugin.version>2.10.0</helm.maven.plugin.version>
+        <helm.maven.plugin.version>2.8.0</helm.maven.plugin.version>
         <maven.assembly.plugin.version>3.2.0</maven.assembly.plugin.version>
 
         <mysql.connector.java>8.0.18</mysql.connector.java>
@@ -683,8 +712,9 @@
 
         <com.codahale.version>0.7.0</com.codahale.version>
 
-<!--        <host>service.staging.usecustos.org</host>-->
-        <host>custos.scigap.org</host>
+<!--        <host>prod.custos.usecustos.org</host>-->
+
+        <host>custos10.sciencegateways.iu.edu</host>
 
         <ssh.privatekey>/Users/isururanawaka/.ssh/custos/id_rsa</ssh.privatekey>
 
@@ -694,7 +724,10 @@
         <kafka-clients.version>1.0.0</kafka-clients.version>
 
         <email.version>1.5.0-b01</email.version>
-        <ssh.username>ubuntu</ssh.username>
+<!--        <ssh.username>custos</ssh.username>-->
+        <ssh.username>custosadmin</ssh.username>
+        <project.version>1.0</project.version>
+        <clusterIssuer>letsencrypt-prod</clusterIssuer>
 
 
     </properties>


Test patch:
diff --git a/custos-tests/pom.xml b/custos-tests/pom.xml
index a3d756b01..517f221d3 100644
--- a/custos-tests/pom.xml
+++ b/custos-tests/pom.xml
@@ -24,7 +24,8 @@
     <parent>
         <artifactId>custos</artifactId>
         <groupId>org.apache.custos</groupId>
-        <version>1.1-SNAPSHOT</version>
+       <version>1.1</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>