print("""
-----------------------------------------------------------------
✨ Starting up fastgame stack
-----------------------------------------------------------------
""".strip())

# update_settings(suppress_unused_image_warnings=["fastgame/game-build"])

load('ext://helm_resource', 'helm_resource', 'helm_repo')
load('ext://deployment', 'deployment_create')


helm_repo('bitnami', 'https://charts.bitnami.com/bitnami', labels=["9-repos"])
helm_repo('traefik', 'https://traefik.github.io/charts', labels=["9-repos"])
helm_repo('grafana', 'https://grafana.github.io/helm-charts', labels=["9-repos"])


helm_resource(
    'ingress',
    'traefik/traefik',
    resource_deps=['traefik'],
    port_forwards=['8000:8000', '8443:8443', '9000:9000'],
    labels=["1-ingress"]
)

helm_resource(
    'postgres',
    'bitnami/postgresql',
    resource_deps=['bitnami'],
    flags=[
        '--set', 'fullnameOverride=bh-db',
        '--set', 'auth.enablePostgresUser=true',
        '--set', 'auth.postgresPassword=bh-admin',
        '--set', 'auth.database=bh',
    ],
    port_forwards=["5432:5432"],
    labels=["9-data"])



def bh_service(service="", port_forwards=[], devMode=True, labels=['2-services']):
    docker_build(
        ref="barretthousen/service-{}".format(service),
        dockerfile="./Dockerfile.service",
        context=".",
        target="development" if devMode else "production",
        build_args={
            "SERVICE": service
        },
        # only=[
        #     "./{}".format(service),
        #     "lib",
        #     "Dockerfile.service"
        # ]
    )

    k8s_resource(
        workload='local-{}'.format(service),
        port_forwards=port_forwards,
        labels=labels,
        resource_deps=['postgres']
    )



bh_service(service="catalog", port_forwards=["5002:5001", "2346:2345"])
# bh_service(service="proxy-web", port_forwards=["8081:80"])

bh_service(service="runner", port_forwards=[5001, 2345])
bh_service(service="proxy-admin", port_forwards=["8082:80"])

k8s_yaml(
    kustomize("../env/local")
)


# helm_resource(
#     'loki-stack',
#     'grafana/loki-stack',
#     resource_deps=['grafana'],
#     flags=[
#         '--set', 'fluent-bit.enabled=false',
#         '--set', 'promtail.enabled=false',
#         '--set', 'loki.enabled=false',
#     ],
#     port_forwards=["3000:80"],
#     labels=["9-monitoring"])
