| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- load('ext://restart_process', 'docker_build_with_restart')
- secret_settings(disable_scrub=True)
- if config.tilt_subcommand == "up":
- if not os.path.exists("vendor"):
- local(command="go mod vendor")
- local(command="cd dashboard; npm i --legacy-peer-deps")
- if config.tilt_subcommand == "down":
- if os.path.exists("vendor"):
- local(command="rm -rf vendor")
- if os.path.exists("dashboard/node_modules"):
- local(command="rm -rf dashboard/node_modules")
- build_args = "GOOS=linux GOARCH=arm64"
- if os.getenv("PLATFORM") == "amd64":
- build_args = "GOOS=linux GOARCH=amd64"
- allow_k8s_contexts('kind-porter')
- cluster = str(local('kubectl config current-context')).strip()
- if (cluster.startswith("kind-")):
- install = kustomize('zarf/helm', flags=["--enable-helm"])
- decoded = decode_yaml_stream(install)
- for d in decoded:
- if d.get('kind') == 'Deployment':
- if "securityContext" in d['spec']['template']['spec']:
- d['spec']['template']['spec'].pop('securityContext')
- for c in d['spec']['template']['spec']['containers']:
- if "securityContext" in c:
- c.pop('securityContext')
- updated_install = encode_yaml_stream(decoded)
- k8s_yaml(updated_install)
- else:
- local("echo 'Be careful that you aren't connected to a staging or prod cluster' && exit 1")
- exit()
- ngrok_url = os.getenv("NGROK_URL")
- if ngrok_url == "":
- local("echo 'NGROK_URL env variable is required but not set' && exit 1")
- exit()
- k8s_resource(
- workload='porter-server-web',
- port_forwards=["8080:8080"],
- labels=["porter"],
- resource_deps=["porter-binary"],
- )
- k8s_resource(
- workload='porter-auth-web',
- port_forwards=["8090:8090"],
- labels=["porter"],
- resource_deps=["porter-binary"],
- )
- watch_file('zarf/helm/.server.env')
- watch_file('zarf/helm/.dashboard.env')
- ## Build binary locally for faster devexp
- local_resource(
- name='porter-binary',
- cmd='''GOWORK=off CGO_ENABLED=0 %s go build -mod vendor -gcflags '-N -l' -tags ee -o ./bin/porter ./cmd/app/main.go''' % build_args,
- deps=[
- "api",
- "build",
- "ee",
- "internal",
- "pkg",
- "vendor",
- "cmd",
- ],
- resource_deps=["postgresql"],
- labels=["z_binaries"]
- )
- local_resource(
- name="migrations-binary",
- cmd='''GOWORK=off CGO_ENABLED=0 %s go build -mod vendor -gcflags '-N -l' -tags ee -o ./bin/migrate ./cmd/migrate/main.go ./cmd/migrate/migrate_ee.go''' % build_args,
- resource_deps=["postgresql"],
- labels=["z_binaries"],
- )
- local_resource(
- name="disable-porter-helm-test",
- cmd='tilt disable porter-server-web-test-connection',
- resource_deps=["porter-server-web"]
- )
- local_resource(
- name="disable-auth-helm-test",
- cmd='tilt disable porter-auth-web-test-connection',
- resource_deps=["porter-auth-web"]
- )
- docker_build_with_restart(
- ref="porter1/porter-server",
- context=".",
- dockerfile="zarf/docker/Dockerfile.server.tilt",
- entrypoint='/app/migrate && /app/porter',
- build_args={},
- only=[
- "bin",
- ],
- live_update=[
- sync('./bin/porter', '/app/'),
- sync('./bin/migrate', '/app/'),
- ]
- )
- docker_build_with_restart(
- ref="porter1/porter-auth",
- context=".",
- dockerfile="zarf/docker/Dockerfile.server.tilt",
- entrypoint='/app/porter --auth',
- build_args={},
- only=[
- "bin",
- ],
- live_update=[
- sync('./bin/porter', '/app/'),
- ]
- )
- local_resource(
- name='reload-server-config',
- cmd='kubectl rollout restart deployment porter-server-web',
- deps=[
- "zarf/helm/.server.env"
- ],
- labels=["porter"],
- resource_deps=["porter-server-web"]
- )
- # Frontend
- local_resource(
- name="porter-dashboard",
- serve_cmd="npm start",
- serve_dir="dashboard",
- serve_env={
- "ENV_FILE": "../zarf/helm/.dashboard.env",
- "NODE_OPTIONS":"--openssl-legacy-provider"
- },
- deps=[
- "dashboard/package.json",
- ],
- resource_deps=["postgresql"],
- labels=["porter"]
- )
- local_resource('public-url',
- serve_cmd='''
- echo " \n\n****** NGROK URL ****** \n\n" && echo https://%s && echo "\n\n********\n\n" && ngrok http 8081 --log=stdout --domain=%s'''
- % (ngrok_url, ngrok_url), resource_deps=["porter-dashboard"], labels=["porter"])
|