Helm
Deploy Expo Open OTA using Helm, a package manager for Kubernetes.
A ready-to-use Helm chart is available to deploy Expo Open OTA on your Kubernetes cluster.
Prerequisites
A running Kubernetes cluster and Helm installed on your local machine are required to deploy the application. If you are not familiar with Helm or Kubernetes, we recommend you to deploy the server with custom docker deployment or railway.
Clone the repository and navigate to the helm
directory.
git clone https://github.com/axelmarciano/expo-open-ota
cd expo-open-ota/helm
Configuration
The Helm chart uses a set of configurable values defined in values.yaml
. These values can be overridden by passing a custom values.yaml
file when deploying the chart.
Conditional Logic for Environment Variables
The environment variables used by the application depend on the following key settings:
secretName
: If defined, environment variables are loaded from the specified Kubernetes secret instead of being set directly.storageMode
:s3
: RequiresAWS_REGION
andS3_BUCKET_NAME
to be set.local
: RequiresLOCAL_BUCKET_BASE_PATH
to be set.
keysStorageType
:aws-secrets-manager
: Requires AWS Secrets Manager variables (AWSSM_EXPO_PUBLIC_KEY_SECRET_ID
,AWSSM_EXPO_PRIVATE_KEY_SECRET_ID
).local
: Requires local key paths (PRIVATE_LOCAL_EXPO_KEY_PATH
,PUBLIC_LOCAL_EXPO_KEY_PATH
).environment
: Requires base64-encoded keys (PUBLIC_EXPO_KEY_B64
,PRIVATE_EXPO_KEY_B64
).
useCloudfrontRedirect
:- If
true
, requiresCLOUDFRONT_DOMAIN
,CLOUDFRONT_KEY_PAIR_ID
, and a CloudFront private key (CLOUDFRONT_PRIVATE_KEY_B64
,PRIVATE_CLOUDFRONT_KEY_PATH
, orAWSSM_CLOUDFRONT_PRIVATE_KEY_SECRET_ID
, depending onkeysStorageType
).
- If
useAWSAccessKeys
:- If
true
, requiresAWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
to be set.
- If
Deployment
To install the Helm chart with default values:
helm install expo-open-ota -n NAMESPACE ./chart
To override values, create a custom my-values.yaml
file and run:
helm install expo-open-ota ./chart -n NAMESPACE -f my-values.yaml
To upgrade an existing release:
helm upgrade expo-open-ota -n NAMESPACE ./chart -f my-values.yaml
For additional configuration details, refer to the Environment Variables documentation.
Ingress Configuration
The Ingress configuration is crucial for exposing Expo Open OTA through a specific domain and must match the BASE_URL defined in the application.