feat: add supabase deployer
This commit is contained in:
120
roles/supabase/meta/argument_specs.yml
Normal file
120
roles/supabase/meta/argument_specs.yml
Normal file
@@ -0,0 +1,120 @@
|
||||
---
|
||||
argument_specs:
|
||||
main:
|
||||
short_description: Deploy Supabase on OpenShift via the supabase-community Helm chart
|
||||
description:
|
||||
- Deploys the full Supabase stack (Studio, Kong, Auth, REST, Realtime, Storage,
|
||||
Meta, Analytics, Functions, ImgProxy, Vector) to an OpenShift cluster.
|
||||
- All secrets are created as Kubernetes Secrets and referenced via secretRef
|
||||
so secret material never appears in Helm values.
|
||||
- OpenShift SCCs are granted before the Helm install so pods start with
|
||||
correct permissions (anyuid for postgres, privileged for vector).
|
||||
- An OCP Route with edge TLS termination is created, backed by a cert-manager
|
||||
Certificate against the configured ClusterIssuer.
|
||||
- >-
|
||||
Vault variables (vault_supabase_*) must be defined in host_vars before running.
|
||||
Generate JWT values at https://supabase.com/docs/guides/self-hosting/docker
|
||||
Generate secrets with openssl rand -base64 64
|
||||
options:
|
||||
supabase_release_name:
|
||||
description: Helm release name.
|
||||
type: str
|
||||
default: supabase
|
||||
supabase_namespace:
|
||||
description: Kubernetes namespace for all Supabase resources.
|
||||
type: str
|
||||
default: supabase
|
||||
supabase_chart_repo_url:
|
||||
description: URL of the supabase-community Helm chart repository.
|
||||
type: str
|
||||
default: https://supabase-community.github.io/supabase-kubernetes
|
||||
supabase_chart_version:
|
||||
description: Chart version to install. Empty string means latest.
|
||||
type: str
|
||||
default: ""
|
||||
supabase_studio_host:
|
||||
description: >-
|
||||
FQDN for the Studio dashboard and Kong API gateway Route.
|
||||
Defaults to supabase.apps.<cluster>.<domain>.
|
||||
type: str
|
||||
supabase_tls_cluster_issuer:
|
||||
description: cert-manager ClusterIssuer name for TLS certificate provisioning.
|
||||
type: str
|
||||
default: ""
|
||||
supabase_storage_class:
|
||||
description: StorageClass name for all PersistentVolumeClaims (must support ReadWriteOnce).
|
||||
type: str
|
||||
default: ""
|
||||
supabase_db_storage_size:
|
||||
description: Size of the PostgreSQL PVC.
|
||||
type: str
|
||||
default: 10Gi
|
||||
supabase_functions_storage_size:
|
||||
description: Size of the Edge Functions PVC.
|
||||
type: str
|
||||
default: 1Gi
|
||||
supabase_imgproxy_storage_size:
|
||||
description: Size of the ImgProxy PVC.
|
||||
type: str
|
||||
default: 1Gi
|
||||
supabase_minio_storage_size:
|
||||
description: Size of the MinIO (object storage) PVC.
|
||||
type: str
|
||||
default: 20Gi
|
||||
supabase_db_name:
|
||||
description: PostgreSQL database name.
|
||||
type: str
|
||||
default: postgres
|
||||
supabase_org_name:
|
||||
description: Default organisation name shown in Supabase Studio.
|
||||
type: str
|
||||
default: ""
|
||||
supabase_project_name:
|
||||
description: Default project name shown in Supabase Studio.
|
||||
type: str
|
||||
default: ""
|
||||
supabase_smtp_enabled:
|
||||
description: >-
|
||||
Enable SMTP for auth email. When false, auto-confirm is enabled so
|
||||
sign-ups do not require email verification.
|
||||
type: bool
|
||||
default: false
|
||||
supabase_smtp_host:
|
||||
description: SMTP server hostname.
|
||||
type: str
|
||||
default: ""
|
||||
supabase_smtp_port:
|
||||
description: SMTP server port.
|
||||
type: int
|
||||
default: 587
|
||||
supabase_smtp_admin_email:
|
||||
description: Admin email address used as From header.
|
||||
type: str
|
||||
default: ""
|
||||
supabase_smtp_sender_name:
|
||||
description: Display name used in outgoing email.
|
||||
type: str
|
||||
default: Supabase
|
||||
supabase_db_fullname:
|
||||
description: >-
|
||||
fullnameOverride for the db component. Determines the ServiceAccount
|
||||
name that receives the anyuid SCC — must match deployment.db.fullnameOverride
|
||||
passed to the chart.
|
||||
type: str
|
||||
default: supabase-db
|
||||
supabase_kong_fullname:
|
||||
description: >-
|
||||
fullnameOverride for the kong component. Determines the Service name
|
||||
that the OCP Route targets.
|
||||
type: str
|
||||
default: supabase-kong
|
||||
supabase_vector_fullname:
|
||||
description: >-
|
||||
fullnameOverride for the vector component. Determines the ServiceAccount
|
||||
name that receives the privileged SCC.
|
||||
type: str
|
||||
default: supabase-vector
|
||||
supabase_wait_timeout:
|
||||
description: Seconds to wait for deployments to become ready.
|
||||
type: int
|
||||
default: 600
|
||||
13
roles/supabase/meta/main.yml
Normal file
13
roles/supabase/meta/main.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
galaxy_info:
|
||||
role_name: supabase
|
||||
author: ptoal
|
||||
description: Deploy Supabase on OpenShift via the supabase-community Helm chart
|
||||
license: MIT
|
||||
min_ansible_version: "2.14"
|
||||
platforms:
|
||||
- name: EL
|
||||
versions:
|
||||
- "9"
|
||||
|
||||
dependencies: []
|
||||
Reference in New Issue
Block a user