Get LoadBalancer-IP on first deployment in a new kubernetes namespace

Currently I build a CI pipeline based on GitLab CI and Google Kubernetes Engine.
I want to use review apps, but there is a chicken-egg-problem with the hostname to use.
The hostname is a deployment parameter for the ingress. But since a review app uses a new namespace on first deployment, there is no ingress or load balancer yet and so I cannot get an IP adress.
Actually I wanted to use an xip.io-hostname like 34.96.91.15.xip.io for the review apps.

Currently the only solution I can think of is to use an own subdomain and update the IP adress after the deployment via the domain provider API.

But I hope there is a better solution.

Here is a snippet from my .gitlab-ci.yml. The variable REVIEW_IP isn’t available on first deployment.

deploy_review:
stage: deploy
script:
- export REVIEW_IP=$(kubectl get ingress --namespace $KUBE_NAMESPACE -o jsonpath=“{.items[0].status.loadBalancer.ingress[0].ip}”)
- export REVIEW_HOST=$REVIEW_IP.xip.io
- >-
helm upgrade app
–install
–set “ingress.hosts[0].host=$REVIEW_HOST,ingress.hosts[0].paths[0]=/*”
–set “ingress.tls[0].secretName=$TLS_SECRET_NAME,ingress.tls[0].hosts[0]=$REVIEW_HOST”
./chart
environment:
name: review/$CI_COMMIT_REF_NAME
url: https://$REVIEW_HOST
on_stop: stop_review
auto_stop_in: 1 week
only: [branches]
except: [ci]