@microagi/alchemy-gcp 0.5.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/lib/Auth/Credentials.d.ts +10 -4
  3. package/lib/Auth/Credentials.d.ts.map +1 -1
  4. package/lib/Auth/Credentials.js +13 -4
  5. package/lib/Auth/Credentials.js.map +1 -1
  6. package/lib/Compute/Address.d.ts +97 -0
  7. package/lib/Compute/Address.d.ts.map +1 -0
  8. package/lib/Compute/Address.js +143 -0
  9. package/lib/Compute/Address.js.map +1 -0
  10. package/lib/Compute/Firewall.d.ts +108 -0
  11. package/lib/Compute/Firewall.d.ts.map +1 -0
  12. package/lib/Compute/Firewall.js +163 -0
  13. package/lib/Compute/Firewall.js.map +1 -0
  14. package/lib/Compute/ForwardingRule.d.ts +106 -0
  15. package/lib/Compute/ForwardingRule.d.ts.map +1 -0
  16. package/lib/Compute/ForwardingRule.js +152 -0
  17. package/lib/Compute/ForwardingRule.js.map +1 -0
  18. package/lib/Compute/index.d.ts +3 -0
  19. package/lib/Compute/index.d.ts.map +1 -1
  20. package/lib/Compute/index.js +3 -0
  21. package/lib/Compute/index.js.map +1 -1
  22. package/lib/Container/Cluster.d.ts +20 -0
  23. package/lib/Container/Cluster.d.ts.map +1 -1
  24. package/lib/Container/Cluster.js +5 -2
  25. package/lib/Container/Cluster.js.map +1 -1
  26. package/lib/Container/NodePool.d.ts +26 -1
  27. package/lib/Container/NodePool.d.ts.map +1 -1
  28. package/lib/Container/NodePool.js +45 -8
  29. package/lib/Container/NodePool.js.map +1 -1
  30. package/lib/Kubernetes/KubernetesManifest.d.ts +100 -0
  31. package/lib/Kubernetes/KubernetesManifest.d.ts.map +1 -0
  32. package/lib/Kubernetes/KubernetesManifest.js +131 -0
  33. package/lib/Kubernetes/KubernetesManifest.js.map +1 -0
  34. package/lib/Kubernetes/Secret.d.ts +96 -0
  35. package/lib/Kubernetes/Secret.d.ts.map +1 -0
  36. package/lib/Kubernetes/Secret.js +173 -0
  37. package/lib/Kubernetes/Secret.js.map +1 -0
  38. package/lib/Kubernetes/client.d.ts +62 -0
  39. package/lib/Kubernetes/client.d.ts.map +1 -0
  40. package/lib/Kubernetes/client.js +233 -0
  41. package/lib/Kubernetes/client.js.map +1 -0
  42. package/lib/Kubernetes/connection.d.ts +48 -0
  43. package/lib/Kubernetes/connection.d.ts.map +1 -0
  44. package/lib/Kubernetes/connection.js +93 -0
  45. package/lib/Kubernetes/connection.js.map +1 -0
  46. package/lib/Kubernetes/index.d.ts +3 -0
  47. package/lib/Kubernetes/index.d.ts.map +1 -0
  48. package/lib/Kubernetes/index.js +3 -0
  49. package/lib/Kubernetes/index.js.map +1 -0
  50. package/lib/ManagedLustre/Instance.d.ts.map +1 -1
  51. package/lib/ManagedLustre/Instance.js +25 -5
  52. package/lib/ManagedLustre/Instance.js.map +1 -1
  53. package/lib/Providers.d.ts +1 -1
  54. package/lib/Providers.d.ts.map +1 -1
  55. package/lib/Providers.js +11 -1
  56. package/lib/Providers.js.map +1 -1
  57. package/lib/Sqladmin/Instance.d.ts.map +1 -1
  58. package/lib/Sqladmin/Instance.js +28 -6
  59. package/lib/Sqladmin/Instance.js.map +1 -1
  60. package/lib/index.d.ts +1 -0
  61. package/lib/index.d.ts.map +1 -1
  62. package/lib/index.js +1 -0
  63. package/lib/index.js.map +1 -1
  64. package/package.json +3 -1
  65. package/src/Auth/Credentials.ts +15 -5
  66. package/src/Compute/Address.ts +288 -0
  67. package/src/Compute/Firewall.ts +330 -0
  68. package/src/Compute/ForwardingRule.ts +301 -0
  69. package/src/Compute/index.ts +3 -0
  70. package/src/Container/Cluster.ts +25 -2
  71. package/src/Container/NodePool.ts +87 -13
  72. package/src/Kubernetes/KubernetesManifest.ts +301 -0
  73. package/src/Kubernetes/Secret.ts +348 -0
  74. package/src/Kubernetes/client.ts +386 -0
  75. package/src/Kubernetes/connection.ts +180 -0
  76. package/src/Kubernetes/index.ts +2 -0
  77. package/src/ManagedLustre/Instance.ts +35 -6
  78. package/src/Providers.ts +24 -0
  79. package/src/Sqladmin/Instance.ts +36 -7
  80. package/src/index.ts +1 -0
@@ -109,8 +109,33 @@ export type NodePoolProps = {
109
109
  enableSecureBoot?: boolean;
110
110
  enableIntegrityMonitoring?: boolean;
111
111
  };
112
- /** Local SSDs. **Replace-only**. */
112
+ /**
113
+ * Local SSDs via the legacy SCSI-era count field. Prefer
114
+ * `localNvmeSsdBlockConfig` / `ephemeralStorageLocalSsdConfig` for
115
+ * NVMe-only machine families (Gen3+, Titanium SSD). Mutually
116
+ * exclusive with both. **Replace-only**.
117
+ */
113
118
  localSsdCount?: number;
119
+ /**
120
+ * Raw-block local NVMe SSDs — exposed to workloads as unformatted
121
+ * block devices (local PVs / your own RAID). For machine types with
122
+ * a fixed disk count (e.g. g4-standard-48 → 4), `localSsdCount`
123
+ * must equal that count or be 0/unset for the machine default.
124
+ * **Replace-only**.
125
+ */
126
+ localNvmeSsdBlockConfig?: {
127
+ localSsdCount?: number;
128
+ };
129
+ /**
130
+ * Local NVMe SSDs backing node ephemeral storage (emptyDir, image
131
+ * layers, logs) — GKE RAID0s the disks. Same fixed-count rule as
132
+ * `localNvmeSsdBlockConfig`. `dataCacheCount` carves disks out for
133
+ * GKE Data Cache. **Replace-only**.
134
+ */
135
+ ephemeralStorageLocalSsdConfig?: {
136
+ localSsdCount?: number;
137
+ dataCacheCount?: number;
138
+ };
114
139
  /** Workload Identity metadata. Mutable via `update`. */
115
140
  workloadMetadataConfig?: {
116
141
  mode: "GKE_METADATA" | "GCE_METADATA";
@@ -1 +1 @@
1
- {"version":3,"file":"NodePool.d.ts","sourceRoot":"","sources":["../../src/Container/NodePool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodePool.d.ts","sourceRoot":"","sources":["../../src/Container/NodePool.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,12 @@ export const toNodeConfigCreateBody = (config, desiredResourceLabels) => {
58
58
  ...(config.localSsdCount !== undefined
59
59
  ? { localSsdCount: config.localSsdCount }
60
60
  : {}),
61
+ ...(config.localNvmeSsdBlockConfig
62
+ ? { localNvmeSsdBlockConfig: config.localNvmeSsdBlockConfig }
63
+ : {}),
64
+ ...(config.ephemeralStorageLocalSsdConfig
65
+ ? { ephemeralStorageLocalSsdConfig: config.ephemeralStorageLocalSsdConfig }
66
+ : {}),
61
67
  ...(config.workloadMetadataConfig
62
68
  ? { workloadMetadataConfig: config.workloadMetadataConfig }
63
69
  : {}),
@@ -105,8 +111,19 @@ const toNodePoolUpdateBody = (observed, news, desiredResourceLabels) => {
105
111
  if (nc.taints && !deepEqual(oc.taints ?? [], nc.taints)) {
106
112
  body.taints = { taints: nc.taints };
107
113
  }
108
- if (!deepEqual(oc.resourceLabels ?? {}, desiredResourceLabels)) {
109
- body.resourceLabels = { labels: desiredResourceLabels };
114
+ // GKE injects its own `goog-*` resource labels (accelerator type,
115
+ // provisioning model, …) after create. Treat them as server-managed:
116
+ // fold the observed ones into the desired set before diffing, or
117
+ // every reconcile issues a labels update — which on a large pool is
118
+ // a long rolling cluster operation that wedges all other mutations
119
+ // on the cluster ("incompatible operation").
120
+ const observedResourceLabels = oc.resourceLabels ?? {};
121
+ const desiredWithServerManaged = {
122
+ ...Object.fromEntries(Object.entries(observedResourceLabels).filter(([k]) => k.startsWith("goog-"))),
123
+ ...desiredResourceLabels,
124
+ };
125
+ if (!deepEqual(observedResourceLabels, desiredWithServerManaged)) {
126
+ body.resourceLabels = { labels: desiredWithServerManaged };
110
127
  }
111
128
  if (nc.gvnic && !deepEqual(oc.gvnic, nc.gvnic)) {
112
129
  body.gvnic = nc.gvnic;
@@ -136,6 +153,7 @@ const toNodePoolAttributes = (pool, parent) => ({
136
153
  });
137
154
  export const NodePoolProvider = () => Provider.effect(NodePool, Effect.gen(function* () {
138
155
  const getNodePools = yield* cont.getProjectsLocationsClustersNodePools;
156
+ const listNodePools = yield* cont.listProjectsLocationsClustersNodePools;
139
157
  const createNodePools = yield* cont.createProjectsLocationsClustersNodePools;
140
158
  const updateNodePools = yield* cont.updateProjectsLocationsClustersNodePools;
141
159
  const setSize = yield* cont.setSizeProjectsLocationsClustersNodePools;
@@ -244,7 +262,9 @@ export const NodePoolProvider = () => Provider.effect(NodePool, Effect.gen(funct
244
262
  !deepEqual(oc.metadata, nc.metadata) ||
245
263
  !deepEqual(oc.sandboxConfig, nc.sandboxConfig) ||
246
264
  !deepEqual(oc.reservationAffinity, nc.reservationAffinity) ||
247
- !deepEqual(oc.shieldedInstanceConfig, nc.shieldedInstanceConfig)) {
265
+ !deepEqual(oc.shieldedInstanceConfig, nc.shieldedInstanceConfig) ||
266
+ !deepEqual(oc.localNvmeSsdBlockConfig, nc.localNvmeSsdBlockConfig) ||
267
+ !deepEqual(oc.ephemeralStorageLocalSsdConfig, nc.ephemeralStorageLocalSsdConfig)) {
248
268
  return { action: "replace" };
249
269
  }
250
270
  return undefined;
@@ -323,11 +343,28 @@ export const NodePoolProvider = () => Provider.effect(NodePool, Effect.gen(funct
323
343
  const clusterName = output?.clusterName ?? olds?.clusterName;
324
344
  if (!project || !location || !clusterName)
325
345
  return undefined;
326
- const name = output?.name ??
327
- olds?.name ??
328
- (yield* createPhysicalName({ id, maxLength: 40 })).toLowerCase();
329
- const fqName = `projects/${project}/locations/${location}/clusters/${clusterName}/nodePools/${name}`;
330
- const observed = yield* getNodePools({ name: fqName }).pipe(Effect.catchTag("NotFound", () => Effect.succeed(undefined)), Effect.catchTag("Forbidden", () => Effect.succeed(undefined)));
346
+ const name = output?.name ?? olds?.name;
347
+ let observed;
348
+ if (name) {
349
+ const fqName = `projects/${project}/locations/${location}/clusters/${clusterName}/nodePools/${name}`;
350
+ observed = yield* getNodePools({ name: fqName }).pipe(Effect.catchTag("NotFound", () => Effect.succeed(undefined)), Effect.catchTag("Forbidden", () => Effect.succeed(undefined)));
351
+ }
352
+ else {
353
+ // Cold recovery (lost state): the pool name truncates the
354
+ // logical id and appends a random per-instance suffix that
355
+ // lived only in state, so a probe against a freshly-generated
356
+ // name can never hit. Scan the cluster's pools for our
357
+ // alchemy labels (stamped into config.resourceLabels).
358
+ const page = yield* listNodePools({
359
+ parent: `projects/${project}/locations/${location}/clusters/${clusterName}`,
360
+ }).pipe(Effect.catchTag("NotFound", () => Effect.succeed(undefined)), Effect.catchTag("Forbidden", () => Effect.succeed(undefined)));
361
+ for (const candidate of page?.nodePools ?? []) {
362
+ if (yield* hasAlchemyLabels(id, candidate.config?.resourceLabels)) {
363
+ observed = candidate;
364
+ break;
365
+ }
366
+ }
367
+ }
331
368
  if (!observed)
332
369
  return undefined;
333
370
  const attrs = toNodePoolAttributes(observed, {
@@ -1 +1 @@
1
- {"version":3,"file":"NodePool.js","sourceRoot":"","sources":["../../src/Container/NodePool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodePool.js","sourceRoot":"","sources":["../../src/Container/NodePool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { Credentials } from "@distilled.cloud/gcp";
2
+ import { Resource } from "alchemy";
3
+ import * as Provider from "alchemy/Provider";
4
+ import type * as GCP from "../Providers.ts";
5
+ /**
6
+ * Apply an **arbitrary** Kubernetes object to a GKE cluster via server-side
7
+ * apply — the generic escape hatch for any Kind (built-ins and CRDs alike),
8
+ * complementing the typed {@link "./Secret.ts"} resource.
9
+ *
10
+ * Convergence is a single `application/apply-patch+yaml` PATCH with
11
+ * `fieldManager: alchemy`, `force: true`. SSA merges by field ownership: only
12
+ * the fields you declare are managed, fields owned by other managers/controllers
13
+ * are left intact, and dropping a previously-declared field prunes it. The REST
14
+ * path is resolved from the apiserver's discovery endpoint, so no per-Kind code
15
+ * is required. See {@link "./client.ts"} for the full create/replace-vs-SSA
16
+ * rationale and when to prefer each.
17
+ *
18
+ * Ownership for adoption is gated on alchemy-internal `metadata.labels` (same
19
+ * triple as labelled GCP resources), so an object created out of band reads
20
+ * back as {@link Unowned} until adopted.
21
+ *
22
+ * @section Applying a manifest
23
+ * @example A ConfigMap
24
+ * ```typescript
25
+ * yield* GCP.KubernetesManifest("AppConfig", {
26
+ * endpoint: cluster.endpoint,
27
+ * caCertificate: cluster.clusterCaCertificate,
28
+ * apiVersion: "v1",
29
+ * kind: "ConfigMap",
30
+ * name: "app-config",
31
+ * namespace: "admin",
32
+ * body: { data: { LOG_LEVEL: "info" } },
33
+ * });
34
+ * ```
35
+ * @example A namespaced CRD instance
36
+ * ```typescript
37
+ * yield* GCP.KubernetesManifest("Tunnel", {
38
+ * endpoint: cluster.endpoint,
39
+ * caCertificate: cluster.clusterCaCertificate,
40
+ * apiVersion: "networking.cfargotunnel.com/v1alpha1",
41
+ * kind: "TunnelBinding",
42
+ * name: "research-ui",
43
+ * namespace: "admin",
44
+ * body: { spec: { ... } },
45
+ * });
46
+ * ```
47
+ */
48
+ export type KubernetesManifestProps = {
49
+ /**
50
+ * GKE control-plane endpoint (IP or hostname, no scheme) — typically
51
+ * `cluster.endpoint`. A change points at a different cluster → replace.
52
+ */
53
+ endpoint: string;
54
+ /**
55
+ * Base64-encoded cluster CA certificate (PEM) — typically
56
+ * `cluster.clusterCaCertificate`. Mutable (can rotate on the same cluster).
57
+ */
58
+ caCertificate: string;
59
+ /** Object `apiVersion`, e.g. `"v1"`, `"apps/v1"`. Immutable — replace. */
60
+ apiVersion: string;
61
+ /** Object `kind`, e.g. `"ConfigMap"`, `"Deployment"`. Immutable — replace. */
62
+ kind: string;
63
+ /** `metadata.name`. Immutable — replace. */
64
+ name: string;
65
+ /**
66
+ * `metadata.namespace`. Required for namespaced Kinds, omit for cluster-scoped
67
+ * ones. Immutable — replace.
68
+ */
69
+ namespace?: string;
70
+ /** Extra `metadata.labels` (alchemy ownership labels merge on top). Mutable. */
71
+ labels?: Record<string, string>;
72
+ /**
73
+ * The rest of the object — everything except `apiVersion`/`kind`/`metadata`
74
+ * (e.g. `spec`, `data`, `rules`). Mutable; may carry resolved Inputs from
75
+ * other resources. SSA prunes any key dropped from a later apply.
76
+ */
77
+ body?: Record<string, unknown>;
78
+ };
79
+ export type KubernetesManifestAttributes = {
80
+ /** Object apiVersion. */
81
+ apiVersion: string;
82
+ /** Object kind. */
83
+ kind: string;
84
+ /** metadata.name. */
85
+ name: string;
86
+ /** metadata.namespace (undefined for cluster-scoped objects). */
87
+ namespace: string | undefined;
88
+ /** Server-assigned uid. */
89
+ uid: string | undefined;
90
+ /** Server-assigned resourceVersion at last apply. */
91
+ resourceVersion: string | undefined;
92
+ /** Control-plane endpoint, threaded through for delete/read. */
93
+ endpoint: string;
94
+ /** Cluster CA certificate, threaded through for delete/read. */
95
+ caCertificate: string;
96
+ };
97
+ export type KubernetesManifest = Resource<"GCP.KubernetesManifest", KubernetesManifestProps, KubernetesManifestAttributes, never, GCP.Providers>;
98
+ export declare const KubernetesManifest: import("alchemy").ResourceClass<KubernetesManifest>;
99
+ export declare const KubernetesManifestProvider: () => import("effect/Layer").Layer<Provider.Provider<KubernetesManifest>, never, import("alchemy").Stack | import("alchemy").Stage | Credentials>;
100
+ //# sourceMappingURL=KubernetesManifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KubernetesManifest.d.ts","sourceRoot":"","sources":["../../src/Kubernetes/KubernetesManifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAW5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,2BAA2B;IAC3B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,qDAAqD;IACrD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CACvC,wBAAwB,EACxB,uBAAuB,EACvB,4BAA4B,EAC5B,KAAK,EACL,GAAG,CAAC,SAAS,CACd,CAAC;AACF,eAAO,MAAM,kBAAkB,qDAE9B,CAAC;AAoDF,eAAO,MAAM,0BAA0B,mJA+HpC,CAAC"}
@@ -0,0 +1,131 @@
1
+ import { Credentials } from "@distilled.cloud/gcp";
2
+ import { Resource } from "alchemy";
3
+ import { Unowned } from "alchemy/AdoptPolicy";
4
+ import { isResolved, somePropsAreDifferent } from "alchemy/Diff";
5
+ import * as Provider from "alchemy/Provider";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Redacted from "effect/Redacted";
8
+ import { gcpInternalLabels, hasAlchemyLabels } from "../Tags.js";
9
+ import { applyObject, deleteObject, getObject, KubernetesApiError, } from "./client.js";
10
+ export const KubernetesManifest = Resource("GCP.KubernetesManifest");
11
+ const toAttributes = (o, parent) => ({
12
+ apiVersion: o?.apiVersion ?? parent.apiVersion,
13
+ kind: o?.kind ?? parent.kind,
14
+ name: o?.metadata?.name ?? parent.name,
15
+ namespace: o?.metadata?.namespace ?? parent.namespace,
16
+ uid: o?.metadata?.uid,
17
+ resourceVersion: o?.metadata?.resourceVersion,
18
+ endpoint: parent.endpoint,
19
+ caCertificate: parent.caCertificate,
20
+ });
21
+ /** Mint a fresh GKE connection (plain bearer token) from props + ADC creds. */
22
+ const connect = Effect.fn("k8sManifest.connect")(function* (props) {
23
+ const { accessToken } = yield* yield* Credentials;
24
+ return {
25
+ endpoint: props.endpoint,
26
+ caCertificate: props.caCertificate,
27
+ token: Redacted.value(accessToken),
28
+ };
29
+ });
30
+ /** GET the object, mapping a 404 to `undefined`. */
31
+ const observe = (connection, apiVersion, kind, namespace, name) => getObject(connection, apiVersion, kind, namespace, name).pipe(Effect.catchIf((e) => e instanceof KubernetesApiError && e.statusCode === 404, () => Effect.succeed(undefined)));
32
+ export const KubernetesManifestProvider = () => Provider.effect(KubernetesManifest, Effect.gen(function* () {
33
+ return {
34
+ // Identity (apiVersion/kind/name/namespace) and the server-assigned uid
35
+ // are unchanged by an in-place apply. endpoint is a replace trigger so
36
+ // it never changes on update; caCertificate is excluded (can rotate).
37
+ stables: [
38
+ "apiVersion",
39
+ "kind",
40
+ "name",
41
+ "namespace",
42
+ "uid",
43
+ "endpoint",
44
+ ],
45
+ diff: Effect.fn(function* ({ news, olds = {} }) {
46
+ if (!isResolved(news))
47
+ return undefined;
48
+ const o = olds;
49
+ // apiVersion/kind/name/namespace are the object's identity, and
50
+ // endpoint points at a specific cluster — any change orphans the old
51
+ // object, so create new + delete old.
52
+ if (somePropsAreDifferent(o, news, [
53
+ "apiVersion",
54
+ "kind",
55
+ "name",
56
+ "namespace",
57
+ "endpoint",
58
+ ])) {
59
+ return { action: "replace" };
60
+ }
61
+ return undefined;
62
+ }),
63
+ reconcile: Effect.fn(function* ({ id, news }) {
64
+ const labels = {
65
+ ...(news.labels ?? {}),
66
+ ...(yield* gcpInternalLabels(id)),
67
+ };
68
+ const connection = yield* connect(news);
69
+ // Build the full object: identity + merged labels + the user body.
70
+ // SSA is declarative — we send exactly what we manage (no
71
+ // resourceVersion), and force ownership of any field we name.
72
+ const object = {
73
+ ...news.body,
74
+ apiVersion: news.apiVersion,
75
+ kind: news.kind,
76
+ metadata: {
77
+ name: news.name,
78
+ ...(news.namespace ? { namespace: news.namespace } : {}),
79
+ labels,
80
+ },
81
+ };
82
+ const applied = yield* applyObject(connection, object);
83
+ // A 2xx apply normally echoes the object, but an empty-body success is
84
+ // possible — re-read so we always return real attributes (uid/
85
+ // resourceVersion). Use getObject (not observe): a missing object
86
+ // after a successful apply is a real failure, not "absent".
87
+ const final = applied?.metadata != null
88
+ ? applied
89
+ : yield* getObject(connection, news.apiVersion, news.kind, news.namespace, news.name);
90
+ return toAttributes(final, {
91
+ apiVersion: news.apiVersion,
92
+ kind: news.kind,
93
+ name: news.name,
94
+ namespace: news.namespace,
95
+ endpoint: news.endpoint,
96
+ caCertificate: news.caCertificate,
97
+ });
98
+ }),
99
+ delete: Effect.fn(function* ({ output }) {
100
+ const connection = yield* connect(output);
101
+ yield* deleteObject(connection, output.apiVersion, output.kind, output.namespace, output.name);
102
+ }),
103
+ read: Effect.fn(function* ({ id, output, olds }) {
104
+ const endpoint = output?.endpoint ?? olds?.endpoint;
105
+ const caCertificate = output?.caCertificate ?? olds?.caCertificate;
106
+ const apiVersion = output?.apiVersion ?? olds?.apiVersion;
107
+ const kind = output?.kind ?? olds?.kind;
108
+ const name = output?.name ?? olds?.name;
109
+ const namespace = output?.namespace ?? olds?.namespace;
110
+ if (!endpoint || !caCertificate || !apiVersion || !kind || !name) {
111
+ return undefined;
112
+ }
113
+ const connection = yield* connect({ endpoint, caCertificate });
114
+ const observed = yield* observe(connection, apiVersion, kind, namespace, name);
115
+ if (!observed)
116
+ return undefined;
117
+ const attrs = toAttributes(observed, {
118
+ apiVersion,
119
+ kind,
120
+ name,
121
+ namespace,
122
+ endpoint,
123
+ caCertificate,
124
+ });
125
+ return (yield* hasAlchemyLabels(id, observed.metadata?.labels))
126
+ ? attrs
127
+ : Unowned(attrs);
128
+ }),
129
+ };
130
+ }));
131
+ //# sourceMappingURL=KubernetesManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KubernetesManifest.js","sourceRoot":"","sources":["../../src/Kubernetes/KubernetesManifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { Credentials } from "@distilled.cloud/gcp";
2
+ import { Resource } from "alchemy";
3
+ import * as Provider from "alchemy/Provider";
4
+ import * as Redacted from "effect/Redacted";
5
+ import type * as GCP from "../Providers.ts";
6
+ /**
7
+ * An Opaque Kubernetes Secret in a GKE cluster.
8
+ *
9
+ * Driven through the typed `@distilled.cloud/kubernetes` SDK (core/v1) rather
10
+ * than alchemy's upstream Kubernetes provider, which is EKS-only. The
11
+ * control-plane connection (`endpoint` + `caCertificate`) comes from a
12
+ * {@link GCP.Cluster}'s attributes; the bearer token is minted from the
13
+ * provider's ADC {@link Credentials} and threaded into the cluster via
14
+ * {@link clusterLayer} (which also trusts the per-cluster CA).
15
+ *
16
+ * Convergence is a typed **create-or-replace upsert** (not server-side apply):
17
+ * `reconcile` reads the Secret, then `createCoreV1NamespacedSecret` if absent
18
+ * or `replaceCoreV1NamespacedSecret` (a full PUT, carrying the observed
19
+ * `resourceVersion` for optimistic concurrency) if present. A `PUT` is a full
20
+ * object replacement, so dropping a key from `data` removes it from the stored
21
+ * Secret — the same pruning SSA gave us, without needing the
22
+ * `application/apply-patch+yaml` content type the typed PATCH op can't express.
23
+ *
24
+ * Ownership for adoption is gated on alchemy-internal `metadata.labels` (same
25
+ * triple as labelled GCP resources), so a Secret created out of band reads back
26
+ * as {@link Unowned} until adopted.
27
+ *
28
+ * @section Creating a Secret
29
+ * @example Wire a Cloudflare tunnel token into the cluster
30
+ * ```typescript
31
+ * // `tunnel.token` is a `Redacted<string>`; pass it straight through —
32
+ * // the value is unwrapped only at the moment it's written to the API, and
33
+ * // stays redacted in logs/plan output.
34
+ * yield* GCP.KubernetesSecret("CloudflaredTunnelSecret", {
35
+ * endpoint: cluster.endpoint,
36
+ * caCertificate: cluster.clusterCaCertificate,
37
+ * namespace: "admin",
38
+ * name: "cloudflared-tunnel",
39
+ * stringData: { TUNNEL_TOKEN: tunnel.token },
40
+ * }).pipe(adopt(true)); // take over a secret previously applied by kubectl
41
+ * ```
42
+ */
43
+ export type KubernetesSecretProps = {
44
+ /**
45
+ * GKE control-plane endpoint (IP or hostname, no scheme) — typically
46
+ * `cluster.endpoint`. Mutable (a cluster replace yields a new one).
47
+ */
48
+ endpoint: string;
49
+ /**
50
+ * Base64-encoded cluster CA certificate (PEM) — typically
51
+ * `cluster.clusterCaCertificate`. Mutable.
52
+ */
53
+ caCertificate: string;
54
+ /** Target namespace. Immutable — replace if changed. */
55
+ namespace: string;
56
+ /**
57
+ * Secret name. Defaults to `createPhysicalName({ id, lowercase: true,
58
+ * maxLength: 63 })`. Immutable — replace if changed.
59
+ */
60
+ name?: string;
61
+ /** Secret `type`. Default `"Opaque"`. Mutable. */
62
+ type?: string;
63
+ /**
64
+ * String data (UTF-8 values, base64-encoded on the way to the API). Mutable.
65
+ *
66
+ * Values may be `Redacted<string>` (e.g. a resource's secret output like
67
+ * `tunnel.token`) — they are unwrapped only when written to the Kubernetes
68
+ * API and stay opaque in logs/plan output. Plain strings are accepted too.
69
+ *
70
+ * NOTE: the underlying values are persisted in alchemy stack state (the
71
+ * engine diffs on the real value) — protect the state backend.
72
+ */
73
+ stringData: Record<string, Redacted.Redacted<string> | string>;
74
+ /** Extra metadata labels (alchemy ownership labels merge on top). Mutable. */
75
+ labels?: Record<string, string>;
76
+ };
77
+ export type KubernetesSecretAttributes = {
78
+ /** Secret name. */
79
+ name: string;
80
+ /** Namespace. */
81
+ namespace: string;
82
+ /** Control-plane endpoint, threaded through for delete/read. */
83
+ endpoint: string;
84
+ /** Cluster CA certificate, threaded through for delete/read. */
85
+ caCertificate: string;
86
+ /** Secret type. */
87
+ type: string;
88
+ /** Server-assigned uid. */
89
+ uid: string | undefined;
90
+ /** Server-assigned resourceVersion at last apply. */
91
+ resourceVersion: string | undefined;
92
+ };
93
+ export type KubernetesSecret = Resource<"GCP.KubernetesSecret", KubernetesSecretProps, KubernetesSecretAttributes, never, GCP.Providers>;
94
+ export declare const KubernetesSecret: import("alchemy").ResourceClass<KubernetesSecret>;
95
+ export declare const KubernetesSecretProvider: () => import("effect/Layer").Layer<Provider.Provider<KubernetesSecret>, never, import("alchemy").Stack | import("alchemy").Stage | Credentials>;
96
+ //# sourceMappingURL=Secret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Secret.d.ts","sourceRoot":"","sources":["../../src/Kubernetes/Secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOnD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAI5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IAC/D,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,qDAAqD;IACrD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CACrC,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,KAAK,EACL,GAAG,CAAC,SAAS,CACd,CAAC;AACF,eAAO,MAAM,gBAAgB,mDAE5B,CAAC;AAuEF,eAAO,MAAM,wBAAwB,iJAgKlC,CAAC"}