t3-code-android-nightly/.repos/alchemy-effect/examples/kubernetes-tutorial/alchemy.run.ts
Julius Marminge 6f9cea00ae
chore(refs): sync Effect and Alchemy references to 4.0.1 and beta.80 (#16170)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 13:22:30 -07:00

42 lines
1.1 KiB
TypeScript

import * as Alchemy from "alchemy";
import { Stage } from "alchemy";
import * as Kubernetes from "alchemy/Kubernetes";
import * as Effect from "effect/Effect";
import HealthCheck from "./src/HealthCheck.ts";
import SmokeTest from "./src/SmokeTest.ts";
import { Cluster, Web } from "./src/infra.ts";
export default Alchemy.Stack(
"MyCluster",
{
providers: Kubernetes.providers(),
state: Alchemy.localState(),
},
Effect.gen(function* () {
const cluster = yield* Cluster;
const web = yield* Web;
const smokeTest = yield* SmokeTest;
yield* HealthCheck;
const stage = yield* Stage;
if (stage !== "prod") {
yield* Kubernetes.HelmChart("MetricsServer", {
cluster,
chart: "metrics-server",
repo: "https://kubernetes-sigs.github.io/metrics-server/",
version: "3.14.0",
releaseName: "metrics-server",
namespace: "kube-system",
values: {
args: ["--kubelet-insecure-tls"],
},
});
}
return {
namespace: web.namespace,
service: web.serviceName,
smokeTest: smokeTest.jobName,
};
}),
);