Link

Install and upgrade

The Awala-Internet Gateway is distributed as a Helm chart. Note that deploying the Docker images directly is discouraged: We’re likely to change paths, as well as split and rename the Docker image.

Example

At a minimum, you have to specify the Internet address and the connection settings for the backing services; e.g.:

# values.yaml
internetAddress: eu.relaycorp.tech
mongo:
  uri: mongodb+srv://foo.gcp.mongodb.net
  db: db
  user: the_user
  password: passw0rd
redis:
  url: redis://redis.example.com:6379
objectStore:
  endpoint: minio.example.com:9000
  bucket: public-gateway
  accessKeyId: test-key
  secretKey: test-secret
vault:
  serverUrl: https://vault.example.com
  token: the-secret-token

Then you can install the chart:

helm repo add relaycorp https://h.cfcr.io/relaycorp/public

helm install \
  --values values.yaml \
  gateway-test \
  relaycorp/awala-gateway-internet

Check out relaycorp/cloud-gateway for a working example on Google Cloud Platform.

Global options

Option Type Default Description
nameOverride string   A custom name for the release, to override the one passed to Helm
image.repository string ghcr.io/relaycorp/awala-gateway-internet Docker image for the gateway
image.tag string (Same as the chart version) Docker image tag
podSecurityContext object {} A custom securityContext to be attached to the pods
podAnnotations object {} Annotations to be attached to the pods
serviceAccountAnnotations object {} Annotations to be attached to the service account
securityContext object {} A custom securityContext to be attached to the deployments
service.type string ClusterIP The service type for the PoWeb, PoHTTP and CogRPC servers
internetAddress string   The Internet address of this gateway
ingress.enabled boolean false Whether to use an ingress for the PoWeb, PoHTTP and CogRPC servers
ingress.annotations object {} Annotations for the ingress
ingress.enableTls boolean true Whether the ingress should use TLS. You still have to configure TLS through your cloud provider; see GKE documentation, for example.
objectStore.backend string   The type of object store used. Any value supported by @relaycorp/object-storage (e.g., s3).
logging.level string info The log level.
logging.target string   Any target supported by @relaycorp/pino-cloud; e.g., gcp.
logging.envName string awala-gateway-internet A unique name for this instance of the gateway. Used by the gcp target as the service name when pushing errors to Google Error Reporting, for example.

Component-specific options

Each gateway component has the following options:

Option Type Default Description
ingress.serviceDomains.cogrpc string cogrpc.${internetAddress} Domain name for the CogRPC service
cogrpc.serviceAnnotations object {} Service annotations for the CogRPC service
cogrpc.replicas number 1 Number of servers in CogRPC service
cogrpc.resources object {} Container resources for the gRPC server in the CogRPC service
cogrpc.affinity object   Affinity settings for CogRPC
ingress.serviceDomains.pohttp string pohttp.${internetAddress} Domain name for the PoHTTP service
pohttp.replicas number 1 Number of servers in the PoHTTP service
pohttp.resources object {} Container resources for the HTTP server in the PoHTTP service
pohttp.affinity object   Affinity settings for PoHTTP
ingress.serviceDomains.poweb string poweb.${internetAddress} Domain name for the PoWeb service
poweb.replicas number 1 Number of servers in the PoWeb service
poweb.resources object {} Container resources for the HTTP server in the PoWeb service
poweb.affinity object   Affinity settings for PoWeb
pdcQueue.replicas number 1 Number of workers (pods) for the PDC queue
pdcQueue.resources object {} Container resources for the PDC queue
pdcQueue.affinity object   Affinity settings for the PDC queue
crcQueue.replicas number 1 Number of workers (pods) for the CRC queue
crcQueue.resources object {} Container resources for the CRC queue
crcQueue.affinity object   Affinity settings for the CRC queue

Backing services

Option Type Default Description
mongo.uri string   Connection URI for MongoDB
mongo.db string   MongoDB database name
mongo.user string   MongoDB user name
mongo.password string   MongoDB user password
redis.url string   Connection URI for Redis
objectStore.endpoint string   Host name and port number for the object store server
objectStore.bucket string   Bucket name
objectStore.accessKeyId string   Access key id to the object store
objectStore.secretKey string   Secret key to the object store
objectStore.tlsEnabled boolean true Whether TLS is enabled and required

Key store

When using the GCP adapter (keystore.adapter=gcp):

Option Type Default Description
keystore.location string   GCP location (e.g., europe-west3)
keystore.kmsKeyring string   The KMS keyring holding all the keys to be used
keystore.kmsIdKey string   The name of the KMS key whose versions will back Awala identity keys
keystore.kmsSessionEncryptionKey string   The name of the KMS key used to encrypt Awala session keys

When using the Vault adapter (keystore.adapter=vault):

Option Type Default Description
keystore.serverUrl string   URL to the HashiCorp Vault server
keystore.token string   Token to the HashiCorp Vault server
keystore.kvPrefix string gw-keys The path prefix for the Vault secret engine