1import { GcpEnvironment } from "@/GCP/Environment";
2import * as Effect from "effect/Effect";
3
4export const currentProject = GcpEnvironment.current.pipe(
5 Effect.map((env) => env.project),
6);
7
8// User clusters need a registered on-prem admin cluster (fleet membership
9// name).
10export const bareMetalAdminMembership =
11 process.env.GCP_TEST_GKEONPREM_BAREMETAL_ADMIN?.trim() || undefined;
12export const vmwareAdminMembership =
13 process.env.GCP_TEST_GKEONPREM_VMWARE_ADMIN?.trim() || undefined;
14export const runBareMetalLifecycle = !!bareMetalAdminMembership;
15export const runVmwareLifecycle = !!vmwareAdminMembership;
16
17export const missingMembership = (projectId: string) =>
18 `projects/${projectId}/locations/global/memberships/alchemy-missing-admin`;
19
20export const missingBareMetalCluster = (projectId: string) =>
21 `projects/${projectId}/locations/us-central1/bareMetalClusters/alchemy-missing-bmc`;
22
23export const missingVmwareCluster = (projectId: string) =>
24 `projects/${projectId}/locations/us-central1/vmwareClusters/alchemy-missing-vmc`;
25
26export const bareMetalControlPlane = {
27 controlPlaneNodePoolConfig: {
28 nodePoolConfig: {
29 nodeConfigs: [{ nodeIp: "10.200.0.2" }],
30 },
31 },
32};
33
34export const bareMetalStorage = {
35 lvpShareConfig: {
36 lvpConfig: {
37 path: "/mnt/localpv-share",
38 storageClass: "local-shared",
39 },
40 sharedPathPvCount: 5,
41 },
42 lvpNodeMountsConfig: {
43 path: "/mnt/localpv-disk",
44 storageClass: "local-disks",
45 },
46};
47
48export const bareMetalNetwork = {
49 islandModeCidr: {
50 serviceAddressCidrBlocks: ["10.96.0.0/12"],
51 podAddressCidrBlocks: ["192.168.0.0/16"],
52 },
53};
54
55export const bareMetalLoadBalancer = {
56 vipConfig: {
57 controlPlaneVip: "10.200.0.8",
58 ingressVip: "10.200.0.9",
59 },
60 portConfig: { controlPlaneLoadBalancerPort: 443 },
61 metalLbConfig: {
62 addressPools: [{ pool: "pool-1", addresses: ["10.200.0.10-10.200.0.20"] }],
63 },
64};
65
66export const vmwareControlPlane = {
67 cpus: "4",
68 memory: "8192",
69 replicas: "1",
70};
71
72export const vmwareNetwork = {
73 serviceAddressCidrBlocks: ["10.96.0.0/12"],
74 podAddressCidrBlocks: ["192.168.0.0/16"],
75 dhcpIpConfig: { enabled: true },
76};
77
78export const vmwareLoadBalancer = {
79 vipConfig: {
80 controlPlaneVip: "10.200.0.8",
81 ingressVip: "10.200.0.9",
82 },
83 metalLbConfig: {
84 addressPools: [{ pool: "pool-1", addresses: ["10.200.0.10-10.200.0.20"] }],
85 },
86};