Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion docker/docker-compose.remote.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,24 @@ services:
- '../apps:/app/apps'
- '../packages:/app/packages'
- 'nextjs-compiler-cache:/app/apps/studio/.next/dev/cache'
- 'root-node-modules:/app/node_modules'
- 'studio-node-modules:/app/apps/studio/node_modules'
- 'api-types-node-modules:/app/packages/api-types/node_modules'
- 'build-icons-node-modules:/app/packages/build-icons/node_modules'
- 'common-node-modules:/app/packages/common/node_modules'
- 'config-node-modules:/app/packages/config/node_modules'
- 'eslint-config-node-modules:/app/packages/eslint-config-supabase/node_modules'
- 'icons-node-modules:/app/packages/icons/node_modules'
- 'pg-meta-node-modules:/app/packages/pg-meta/node_modules'
- 'shared-data-node-modules:/app/packages/shared-data/node_modules'
- 'tsconfig-node-modules:/app/packages/tsconfig/node_modules'
- 'ui-node-modules:/app/packages/ui/node_modules'
- 'ui-patterns-node-modules:/app/packages/ui-patterns/node_modules'
environment:
VELA_PLATFORM_DEV_MODE: 'true'

NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
NEXTAUTH_URL: 'http://localhost:3000'
NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000}

# Server-side Keycloak (Next.js API routes call these)
VELA_PLATFORM_KEYCLOAK_ISSUER: 'https://${VELA_REMOTE_HOST}/auth/realms/vela'
Expand All @@ -46,3 +59,16 @@ services:

volumes:
nextjs-compiler-cache:
root-node-modules:
studio-node-modules:
api-types-node-modules:
build-icons-node-modules:
common-node-modules:
config-node-modules:
eslint-config-node-modules:
icons-node-modules:
pg-meta-node-modules:
shared-data-node-modules:
tsconfig-node-modules:
ui-node-modules:
ui-patterns-node-modules:
16 changes: 12 additions & 4 deletions scripts/remote-env
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Usage:
# Global dev deployment:
env $(scripts/remote-env | xargs) podman compose -f docker/docker-compose.remote.yml up --build
"""
import argparse, json, secrets, subprocess, sys, urllib.parse, urllib.request
import argparse, json, os, secrets, subprocess, sys, urllib.parse, urllib.request


def kc_request(url, token=None, method="GET", data=None):
Expand All @@ -28,6 +28,8 @@ def main():
parser.add_argument("pr", nargs="?", help="PR number, e.g. 663 (omit for global dev deployment)")
parser.add_argument("--realm", default="vela")
parser.add_argument("--admin-user", default=None, help="Keycloak admin username (default: read from configmap)")
parser.add_argument("--kubeconfig", default=None, help="Path to kubeconfig file (default: kubectl default)")
parser.add_argument("--public-url", default=os.environ.get("NEXTAUTH_URL", "http://localhost:3000"), help="Public URL of the studio (default: $NEXTAUTH_URL or http://localhost:3000)")
args = parser.parse_args()

if args.pr:
Expand All @@ -39,9 +41,13 @@ def main():
kc = f"https://{host}/auth"
realm = args.realm

kubectl = ["kubectl"]
if args.kubeconfig:
kubectl += ["--kubeconfig", args.kubeconfig]

print(f"Fetching admin credentials from {ns} ...", file=sys.stderr)
cm_data = json.loads(subprocess.check_output(
["kubectl", "-n", ns, "get", "configmap", "vela-auth-config",
kubectl + ["-n", ns, "get", "configmap", "vela-auth-config",
"-o", "jsonpath={.data}"],
text=True,
))
Expand All @@ -67,8 +73,9 @@ def main():
client_uuid = clients[0]["id"]
client = kc_request(f"{kc}/admin/realms/{realm}/clients/{client_uuid}", token)

redirect_uri = "http://localhost:3000/*"
web_origin = "http://localhost:3000"
public_url = args.public_url.rstrip("/")
redirect_uri = f"{public_url}/*"
web_origin = public_url
if redirect_uri not in client.get("redirectUris", []):
client["redirectUris"] = sorted(set(client.get("redirectUris", []) + [redirect_uri]))
client["webOrigins"] = sorted(set(client.get("webOrigins", []) + [web_origin]))
Expand All @@ -92,6 +99,7 @@ def main():
print(f"VELA_REMOTE_HOST={host}")
print(f"KEYCLOAK_CLIENT_SECRET={client_secret}")
print(f"NEXTAUTH_SECRET={nextauth_secret}")
print(f"NEXTAUTH_URL={public_url}")


if __name__ == "__main__":
Expand Down
Loading