load("ext://namespace", "namespace_create")
load("ext://helm_resource", "helm_resource", "helm_repo")

update_settings(k8s_upsert_timeout_secs=600)

namespace_create("postgres-to-paimon")

k8s_yaml([
    "kubernetes/postgres/init-sql-configmap.yaml",
    "kubernetes/postgres/postgres.yaml",
    "kubernetes/postgres/data-generator.yaml",
])
k8s_resource("postgres", labels=["postgres"])
k8s_resource(
    "postgres-data-generator",
    labels=["postgres"],
    resource_deps=["postgres"],
)

helm_repo("rustfs-charts", "https://charts.rustfs.com", labels=["rustfs"])
helm_resource(
    "rustfs",
    "rustfs-charts/rustfs",
    namespace="postgres-to-paimon",
    flags=["--version=0.8.0", "--values=kubernetes/rustfs/helm-chart/values.yaml"],
    labels=["rustfs"],
    resource_deps=["rustfs-charts"],
)
k8s_yaml(["kubernetes/rustfs/bucket-initialize.yaml"])
k8s_resource("rustfs-bucket-initialize", labels=["rustfs"], resource_deps=["rustfs"])

helm_resource(
    "seatunnel",
    "oci://registry-1.docker.io/apache/seatunnel-helm",
    namespace="postgres-to-paimon",
    flags=["--version=2.3.10", "--values=kubernetes/seatunnel/helm-chart/values.yaml"],
    labels=["seatunnel"],
)
k8s_resource(
    "seatunnel",
    port_forwards=["8080:8080"],
)

k8s_yaml([
    "kubernetes/seatunnel/jobs/sync-postgres-to-paimon-configmap.yaml",
    "kubernetes/seatunnel/jobs/submit-sync-job.yaml",
])
k8s_resource(
    "seatunnel-submit-sync-postgres-to-paimon",
    labels=["seatunnel"],
    resource_deps=["postgres", "rustfs-bucket-initialize", "seatunnel"],
)
