@highstate/k8s 0.9.15 → 0.9.18

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 (49) hide show
  1. package/dist/{chunk-KBWGED2C.js → chunk-5C2BJGES.js} +7 -12
  2. package/dist/chunk-5C2BJGES.js.map +1 -0
  3. package/dist/{chunk-YUMBUWA4.js → chunk-5TLC5BXR.js} +18 -38
  4. package/dist/chunk-5TLC5BXR.js.map +1 -0
  5. package/dist/{chunk-P2UABKGA.js → chunk-BBIY3KUN.js} +129 -236
  6. package/dist/chunk-BBIY3KUN.js.map +1 -0
  7. package/dist/{chunk-MKFBWTVZ.js → chunk-OFFSHGC6.js} +17 -38
  8. package/dist/chunk-OFFSHGC6.js.map +1 -0
  9. package/dist/chunk-PZ5AY32C.js +2 -3
  10. package/dist/chunk-PZ5AY32C.js.map +1 -1
  11. package/dist/{chunk-QMWFPJQB.js → chunk-TZHOUJRC.js} +9 -20
  12. package/dist/chunk-TZHOUJRC.js.map +1 -0
  13. package/dist/{chunk-YRC7EI6X.js → chunk-YWRJ4EZM.js} +9 -20
  14. package/dist/{chunk-YRC7EI6X.js.map → chunk-YWRJ4EZM.js.map} +1 -1
  15. package/dist/deployment-XK3CDJOE.js +6 -0
  16. package/dist/deployment-XK3CDJOE.js.map +1 -0
  17. package/dist/highstate.manifest.json +8 -8
  18. package/dist/index.js +39 -137
  19. package/dist/index.js.map +1 -1
  20. package/dist/stateful-set-7CAQWTV2.js +6 -0
  21. package/dist/stateful-set-7CAQWTV2.js.map +1 -0
  22. package/dist/units/access-point/index.js +6 -7
  23. package/dist/units/access-point/index.js.map +1 -1
  24. package/dist/units/cert-manager/index.js +11 -17
  25. package/dist/units/cert-manager/index.js.map +1 -1
  26. package/dist/units/cluster-dns/index.js +8 -9
  27. package/dist/units/cluster-dns/index.js.map +1 -1
  28. package/dist/units/cluster-patch/index.js +8 -9
  29. package/dist/units/cluster-patch/index.js.map +1 -1
  30. package/dist/units/dns01-issuer/index.js +9 -15
  31. package/dist/units/dns01-issuer/index.js.map +1 -1
  32. package/dist/units/existing-cluster/index.js +12 -21
  33. package/dist/units/existing-cluster/index.js.map +1 -1
  34. package/dist/units/gateway-api/index.js +8 -11
  35. package/dist/units/gateway-api/index.js.map +1 -1
  36. package/package.json +18 -10
  37. package/src/shared.ts +14 -0
  38. package/src/units/cluster-dns/index.ts +1 -1
  39. package/src/units/cluster-patch/index.ts +1 -1
  40. package/src/units/existing-cluster/index.ts +1 -1
  41. package/dist/chunk-KBWGED2C.js.map +0 -1
  42. package/dist/chunk-MKFBWTVZ.js.map +0 -1
  43. package/dist/chunk-P2UABKGA.js.map +0 -1
  44. package/dist/chunk-QMWFPJQB.js.map +0 -1
  45. package/dist/chunk-YUMBUWA4.js.map +0 -1
  46. package/dist/deployment-KOZNZXJA.js +0 -10
  47. package/dist/deployment-KOZNZXJA.js.map +0 -1
  48. package/dist/stateful-set-H5BR3H5D.js +0 -10
  49. package/dist/stateful-set-H5BR3H5D.js.map +0 -1
@@ -1,17 +1,11 @@
1
- import {
2
- Chart
3
- } from "../../chunk-MKFBWTVZ.js";
4
- import "../../chunk-QMWFPJQB.js";
5
- import "../../chunk-YRC7EI6X.js";
6
- import "../../chunk-P2UABKGA.js";
7
- import {
8
- Namespace
9
- } from "../../chunk-YUMBUWA4.js";
10
- import "../../chunk-PZ5AY32C.js";
11
-
12
- // src/units/cert-manager/index.ts
13
- import { k8s } from "@highstate/library";
14
- import { forUnit } from "@highstate/pulumi";
1
+ import { Chart } from '../../chunk-OFFSHGC6.js';
2
+ import '../../chunk-TZHOUJRC.js';
3
+ import '../../chunk-YWRJ4EZM.js';
4
+ import '../../chunk-BBIY3KUN.js';
5
+ import { Namespace } from '../../chunk-5TLC5BXR.js';
6
+ import '../../chunk-PZ5AY32C.js';
7
+ import { k8s } from '@highstate/library';
8
+ import { forUnit } from '@highstate/pulumi';
15
9
 
16
10
  // assets/charts.json
17
11
  var charts_default = {
@@ -44,7 +38,7 @@ new Chart("cert-manager", {
44
38
  var cert_manager_default = outputs({
45
39
  k8sCluster: inputs.k8sCluster
46
40
  });
47
- export {
48
- cert_manager_default as default
49
- };
41
+
42
+ export { cert_manager_default as default };
43
+ //# sourceMappingURL=index.js.map
50
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/units/cert-manager/index.ts","../../../assets/charts.json"],"sourcesContent":["import { k8s } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\nimport { Chart } from \"../../helm\"\nimport charts from \"../../../assets/charts.json\"\nimport { Namespace } from \"../../namespace\"\n\nconst { inputs, outputs } = forUnit(k8s.certManager)\n\nconst namespace = Namespace.create(\"cert-manager\", { cluster: inputs.k8sCluster })\n\nnew Chart(\"cert-manager\", {\n cluster: inputs.k8sCluster,\n namespace,\n\n chart: charts[\"cert-manager\"],\n\n values: {\n crds: {\n enabled: true,\n },\n\n config: {\n apiVersion: \"controller.config.cert-manager.io/v1alpha1\",\n kind: \"ControllerConfiguration\",\n enableGatewayAPI: true,\n },\n },\n})\n\nexport default outputs({\n k8sCluster: inputs.k8sCluster,\n})\n","{\n \"cert-manager\": {\n \"repo\": \"https://charts.jetstack.io\",\n \"name\": \"cert-manager\",\n \"version\": \"v1.17.1\",\n \"sha256\": \"48707f6e8937290da96065dc7de8b4f5a95d9707798d4b5a0d560f78c12996f7\"\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,SAAS,WAAW;AACpB,SAAS,eAAe;;;ACDxB;AAAA,EACE,gBAAgB;AAAA,IACd,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,SAAW;AAAA,IACX,QAAU;AAAA,EACZ;AACF;;;ADDA,IAAM,EAAE,QAAQ,QAAQ,IAAI,QAAQ,IAAI,WAAW;AAEnD,IAAM,YAAY,UAAU,OAAO,gBAAgB,EAAE,SAAS,OAAO,WAAW,CAAC;AAEjF,IAAI,MAAM,gBAAgB;AAAA,EACxB,SAAS,OAAO;AAAA,EAChB;AAAA,EAEA,OAAO,eAAO,cAAc;AAAA,EAE5B,QAAQ;AAAA,IACN,MAAM;AAAA,MACJ,SAAS;AAAA,IACX;AAAA,IAEA,QAAQ;AAAA,MACN,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,kBAAkB;AAAA,IACpB;AAAA,EACF;AACF,CAAC;AAED,IAAO,uBAAQ,QAAQ;AAAA,EACrB,YAAY,OAAO;AACrB,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../assets/charts.json","../../../src/units/cert-manager/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,IAAA,cAAA,GAAA;AAAA,EACE,cAAA,EAAgB;AAAA,IACd,IAAA,EAAQ,4BAAA;AAAA,IACR,IAAA,EAAQ,cAAA;AAAA,IACR,OAAA,EAAW,SAAA;AAAA,IACX,MAAA,EAAU;AAAA;AAEd,CAAA;;;ACDA,IAAM,EAAE,MAAA,EAAQ,OAAA,EAAQ,GAAI,OAAA,CAAQ,IAAI,WAAW,CAAA;AAEnD,IAAM,SAAA,GAAY,UAAU,MAAA,CAAO,cAAA,EAAgB,EAAE,OAAA,EAAS,MAAA,CAAO,YAAY,CAAA;AAEjF,IAAI,MAAM,cAAA,EAAgB;AAAA,EACxB,SAAS,MAAA,CAAO,UAAA;AAAA,EAChB,SAAA;AAAA,EAEA,KAAA,EAAO,eAAO,cAAc,CAAA;AAAA,EAE5B,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS;AAAA,KACX;AAAA,IAEA,MAAA,EAAQ;AAAA,MACN,UAAA,EAAY,4CAAA;AAAA,MACZ,IAAA,EAAM,yBAAA;AAAA,MACN,gBAAA,EAAkB;AAAA;AACpB;AAEJ,CAAC,CAAA;AAED,IAAO,uBAAQ,OAAA,CAAQ;AAAA,EACrB,YAAY,MAAA,CAAO;AACrB,CAAC","file":"index.js","sourcesContent":["{\n \"cert-manager\": {\n \"repo\": \"https://charts.jetstack.io\",\n \"name\": \"cert-manager\",\n \"version\": \"v1.17.1\",\n \"sha256\": \"48707f6e8937290da96065dc7de8b4f5a95d9707798d4b5a0d560f78c12996f7\"\n }\n}\n","import { k8s } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\nimport { Chart } from \"../../helm\"\nimport charts from \"../../../assets/charts.json\"\nimport { Namespace } from \"../../namespace\"\n\nconst { inputs, outputs } = forUnit(k8s.certManager)\n\nconst namespace = Namespace.create(\"cert-manager\", { cluster: inputs.k8sCluster })\n\nnew Chart(\"cert-manager\", {\n cluster: inputs.k8sCluster,\n namespace,\n\n chart: charts[\"cert-manager\"],\n\n values: {\n crds: {\n enabled: true,\n },\n\n config: {\n apiVersion: \"controller.config.cert-manager.io/v1alpha1\",\n kind: \"ControllerConfiguration\",\n enableGatewayAPI: true,\n },\n },\n})\n\nexport default outputs({\n k8sCluster: inputs.k8sCluster,\n})\n"]}
@@ -1,9 +1,8 @@
1
- import "../../chunk-PZ5AY32C.js";
1
+ import '../../chunk-PZ5AY32C.js';
2
+ import { updateEndpointsWithFqdn, l4EndpointToString, l3EndpointToString } from '@highstate/common';
3
+ import { k8s } from '@highstate/library';
4
+ import { forUnit } from '@highstate/pulumi';
2
5
 
3
- // src/units/cluster-dns/index.ts
4
- import { l3EndpointToString, l4EndpointToString, updateEndpointsWithFqdn } from "@highstate/common";
5
- import { k8s } from "@highstate/library";
6
- import { forUnit } from "@highstate/pulumi";
7
6
  var { args, inputs, outputs } = forUnit(k8s.clusterDns);
8
7
  var { endpoints } = await updateEndpointsWithFqdn(
9
8
  inputs.k8sCluster.endpoints,
@@ -27,12 +26,12 @@ var cluster_dns_default = outputs({
27
26
  })),
28
27
  endpoints,
29
28
  apiEndpoints,
30
- $status: {
29
+ $statusFields: {
31
30
  endpoints: endpoints.map(l3EndpointToString),
32
31
  apiEndpoints: apiEndpoints.map(l4EndpointToString)
33
32
  }
34
33
  });
35
- export {
36
- cluster_dns_default as default
37
- };
34
+
35
+ export { cluster_dns_default as default };
36
+ //# sourceMappingURL=index.js.map
38
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/units/cluster-dns/index.ts"],"sourcesContent":["import { l3EndpointToString, l4EndpointToString, updateEndpointsWithFqdn } from \"@highstate/common\"\nimport { k8s } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\n\nconst { args, inputs, outputs } = forUnit(k8s.clusterDns)\n\nconst { endpoints } = await updateEndpointsWithFqdn(\n inputs.k8sCluster.endpoints,\n args.fqdn,\n args.endpointFilter,\n args.patchMode,\n inputs.dnsProviders,\n)\n\nconst { endpoints: apiEndpoints } = await updateEndpointsWithFqdn(\n inputs.k8sCluster.apiEndpoints,\n args.apiFqdn,\n args.apiEndpointFilter,\n args.apiPatchMode,\n inputs.dnsProviders,\n)\n\nexport default outputs({\n k8sCluster: inputs.k8sCluster.apply(k8sCluster => ({\n ...k8sCluster,\n endpoints,\n apiEndpoints,\n })),\n\n endpoints,\n apiEndpoints,\n\n $status: {\n endpoints: endpoints.map(l3EndpointToString),\n apiEndpoints: apiEndpoints.map(l4EndpointToString),\n },\n})\n"],"mappings":";;;AAAA,SAAS,oBAAoB,oBAAoB,+BAA+B;AAChF,SAAS,WAAW;AACpB,SAAS,eAAe;AAExB,IAAM,EAAE,MAAM,QAAQ,QAAQ,IAAI,QAAQ,IAAI,UAAU;AAExD,IAAM,EAAE,UAAU,IAAI,MAAM;AAAA,EAC1B,OAAO,WAAW;AAAA,EAClB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,OAAO;AACT;AAEA,IAAM,EAAE,WAAW,aAAa,IAAI,MAAM;AAAA,EACxC,OAAO,WAAW;AAAA,EAClB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,OAAO;AACT;AAEA,IAAO,sBAAQ,QAAQ;AAAA,EACrB,YAAY,OAAO,WAAW,MAAM,iBAAe;AAAA,IACjD,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF,EAAE;AAAA,EAEF;AAAA,EACA;AAAA,EAEA,SAAS;AAAA,IACP,WAAW,UAAU,IAAI,kBAAkB;AAAA,IAC3C,cAAc,aAAa,IAAI,kBAAkB;AAAA,EACnD;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/units/cluster-dns/index.ts"],"names":[],"mappings":";;;;;AAIA,IAAM,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAQ,GAAI,OAAA,CAAQ,IAAI,UAAU,CAAA;AAExD,IAAM,EAAE,SAAA,EAAU,GAAI,MAAM,uBAAA;AAAA,EAC1B,OAAO,UAAA,CAAW,SAAA;AAAA,EAClB,IAAA,CAAK,IAAA;AAAA,EACL,IAAA,CAAK,cAAA;AAAA,EACL,IAAA,CAAK,SAAA;AAAA,EACL,MAAA,CAAO;AACT,CAAA;AAEA,IAAM,EAAE,SAAA,EAAW,YAAA,EAAa,GAAI,MAAM,uBAAA;AAAA,EACxC,OAAO,UAAA,CAAW,YAAA;AAAA,EAClB,IAAA,CAAK,OAAA;AAAA,EACL,IAAA,CAAK,iBAAA;AAAA,EACL,IAAA,CAAK,YAAA;AAAA,EACL,MAAA,CAAO;AACT,CAAA;AAEA,IAAO,sBAAQ,OAAA,CAAQ;AAAA,EACrB,UAAA,EAAY,MAAA,CAAO,UAAA,CAAW,KAAA,CAAM,CAAA,UAAA,MAAe;AAAA,IACjD,GAAG,UAAA;AAAA,IACH,SAAA;AAAA,IACA;AAAA,GACF,CAAE,CAAA;AAAA,EAEF,SAAA;AAAA,EACA,YAAA;AAAA,EAEA,aAAA,EAAe;AAAA,IACb,SAAA,EAAW,SAAA,CAAU,GAAA,CAAI,kBAAkB,CAAA;AAAA,IAC3C,YAAA,EAAc,YAAA,CAAa,GAAA,CAAI,kBAAkB;AAAA;AAErD,CAAC","file":"index.js","sourcesContent":["import { l3EndpointToString, l4EndpointToString, updateEndpointsWithFqdn } from \"@highstate/common\"\nimport { k8s } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\n\nconst { args, inputs, outputs } = forUnit(k8s.clusterDns)\n\nconst { endpoints } = await updateEndpointsWithFqdn(\n inputs.k8sCluster.endpoints,\n args.fqdn,\n args.endpointFilter,\n args.patchMode,\n inputs.dnsProviders,\n)\n\nconst { endpoints: apiEndpoints } = await updateEndpointsWithFqdn(\n inputs.k8sCluster.apiEndpoints,\n args.apiFqdn,\n args.apiEndpointFilter,\n args.apiPatchMode,\n inputs.dnsProviders,\n)\n\nexport default outputs({\n k8sCluster: inputs.k8sCluster.apply(k8sCluster => ({\n ...k8sCluster,\n endpoints,\n apiEndpoints,\n })),\n\n endpoints,\n apiEndpoints,\n\n $statusFields: {\n endpoints: endpoints.map(l3EndpointToString),\n apiEndpoints: apiEndpoints.map(l4EndpointToString),\n },\n})\n"]}
@@ -1,9 +1,8 @@
1
- import "../../chunk-PZ5AY32C.js";
1
+ import '../../chunk-PZ5AY32C.js';
2
+ import { updateEndpoints, l4EndpointToString, l3EndpointToString } from '@highstate/common';
3
+ import { k8s } from '@highstate/library';
4
+ import { forUnit } from '@highstate/pulumi';
2
5
 
3
- // src/units/cluster-patch/index.ts
4
- import { l3EndpointToString, l4EndpointToString, updateEndpoints } from "@highstate/common";
5
- import { k8s } from "@highstate/library";
6
- import { forUnit } from "@highstate/pulumi";
7
6
  var { args, inputs, outputs } = forUnit(k8s.clusterPatch);
8
7
  var endpoints = await updateEndpoints(
9
8
  inputs.k8sCluster.endpoints,
@@ -25,12 +24,12 @@ var cluster_patch_default = outputs({
25
24
  })),
26
25
  endpoints,
27
26
  apiEndpoints,
28
- $status: {
27
+ $statusFields: {
29
28
  endpoints: endpoints.map(l3EndpointToString),
30
29
  apiEndpoints: apiEndpoints.map(l4EndpointToString)
31
30
  }
32
31
  });
33
- export {
34
- cluster_patch_default as default
35
- };
32
+
33
+ export { cluster_patch_default as default };
34
+ //# sourceMappingURL=index.js.map
36
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/units/cluster-patch/index.ts"],"sourcesContent":["import { l3EndpointToString, l4EndpointToString, updateEndpoints } from \"@highstate/common\"\nimport { k8s } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\n\nconst { args, inputs, outputs } = forUnit(k8s.clusterPatch)\n\nconst endpoints = await updateEndpoints(\n inputs.k8sCluster.endpoints,\n args.endpoints,\n inputs.endpoints,\n args.endpointsPatchMode,\n)\n\nconst apiEndpoints = await updateEndpoints(\n inputs.k8sCluster.apiEndpoints,\n args.apiEndpoints,\n inputs.apiEndpoints,\n args.apiEndpointsPatchMode,\n)\n\nexport default outputs({\n k8sCluster: inputs.k8sCluster.apply(k8sCluster => ({\n ...k8sCluster,\n endpoints,\n apiEndpoints,\n })),\n\n endpoints,\n apiEndpoints,\n\n $status: {\n endpoints: endpoints.map(l3EndpointToString),\n apiEndpoints: apiEndpoints.map(l4EndpointToString),\n },\n})\n"],"mappings":";;;AAAA,SAAS,oBAAoB,oBAAoB,uBAAuB;AACxE,SAAS,WAAW;AACpB,SAAS,eAAe;AAExB,IAAM,EAAE,MAAM,QAAQ,QAAQ,IAAI,QAAQ,IAAI,YAAY;AAE1D,IAAM,YAAY,MAAM;AAAA,EACtB,OAAO,WAAW;AAAA,EAClB,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AACP;AAEA,IAAM,eAAe,MAAM;AAAA,EACzB,OAAO,WAAW;AAAA,EAClB,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AACP;AAEA,IAAO,wBAAQ,QAAQ;AAAA,EACrB,YAAY,OAAO,WAAW,MAAM,iBAAe;AAAA,IACjD,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF,EAAE;AAAA,EAEF;AAAA,EACA;AAAA,EAEA,SAAS;AAAA,IACP,WAAW,UAAU,IAAI,kBAAkB;AAAA,IAC3C,cAAc,aAAa,IAAI,kBAAkB;AAAA,EACnD;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/units/cluster-patch/index.ts"],"names":[],"mappings":";;;;;AAIA,IAAM,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAQ,GAAI,OAAA,CAAQ,IAAI,YAAY,CAAA;AAE1D,IAAM,YAAY,MAAM,eAAA;AAAA,EACtB,OAAO,UAAA,CAAW,SAAA;AAAA,EAClB,IAAA,CAAK,SAAA;AAAA,EACL,MAAA,CAAO,SAAA;AAAA,EACP,IAAA,CAAK;AACP,CAAA;AAEA,IAAM,eAAe,MAAM,eAAA;AAAA,EACzB,OAAO,UAAA,CAAW,YAAA;AAAA,EAClB,IAAA,CAAK,YAAA;AAAA,EACL,MAAA,CAAO,YAAA;AAAA,EACP,IAAA,CAAK;AACP,CAAA;AAEA,IAAO,wBAAQ,OAAA,CAAQ;AAAA,EACrB,UAAA,EAAY,MAAA,CAAO,UAAA,CAAW,KAAA,CAAM,CAAA,UAAA,MAAe;AAAA,IACjD,GAAG,UAAA;AAAA,IACH,SAAA;AAAA,IACA;AAAA,GACF,CAAE,CAAA;AAAA,EAEF,SAAA;AAAA,EACA,YAAA;AAAA,EAEA,aAAA,EAAe;AAAA,IACb,SAAA,EAAW,SAAA,CAAU,GAAA,CAAI,kBAAkB,CAAA;AAAA,IAC3C,YAAA,EAAc,YAAA,CAAa,GAAA,CAAI,kBAAkB;AAAA;AAErD,CAAC","file":"index.js","sourcesContent":["import { l3EndpointToString, l4EndpointToString, updateEndpoints } from \"@highstate/common\"\nimport { k8s } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\n\nconst { args, inputs, outputs } = forUnit(k8s.clusterPatch)\n\nconst endpoints = await updateEndpoints(\n inputs.k8sCluster.endpoints,\n args.endpoints,\n inputs.endpoints,\n args.endpointsPatchMode,\n)\n\nconst apiEndpoints = await updateEndpoints(\n inputs.k8sCluster.apiEndpoints,\n args.apiEndpoints,\n inputs.apiEndpoints,\n args.apiEndpointsPatchMode,\n)\n\nexport default outputs({\n k8sCluster: inputs.k8sCluster.apply(k8sCluster => ({\n ...k8sCluster,\n endpoints,\n apiEndpoints,\n })),\n\n endpoints,\n apiEndpoints,\n\n $statusFields: {\n endpoints: endpoints.map(l3EndpointToString),\n apiEndpoints: apiEndpoints.map(l4EndpointToString),\n },\n})\n"]}
@@ -1,16 +1,10 @@
1
- import {
2
- getProvider
3
- } from "../../chunk-YUMBUWA4.js";
4
- import "../../chunk-PZ5AY32C.js";
1
+ import { getProvider } from '../../chunk-5TLC5BXR.js';
2
+ import '../../chunk-PZ5AY32C.js';
3
+ import { k8s } from '@highstate/library';
4
+ import { forUnit, unsecret, toPromise } from '@highstate/pulumi';
5
+ import { cert_manager } from '@highstate/cert-manager';
6
+ import { capitalize } from 'remeda';
5
7
 
6
- // src/units/dns01-issuer/index.ts
7
- import { k8s } from "@highstate/library";
8
- import { forUnit, unsecret } from "@highstate/pulumi";
9
- import { cert_manager } from "@highstate/cert-manager";
10
-
11
- // src/units/dns01-issuer/solver.ts
12
- import { capitalize } from "remeda";
13
- import { toPromise } from "@highstate/pulumi";
14
8
  async function createDns01Solver(dnsProviderInput, provider2) {
15
9
  const dnsProvider = await toPromise(dnsProviderInput);
16
10
  const implName = `create${capitalize(dnsProvider.type)}Dns01Solver`;
@@ -53,7 +47,7 @@ var dns01_issuer_default = outputs({
53
47
  clusterIssuerName: name
54
48
  }
55
49
  });
56
- export {
57
- dns01_issuer_default as default
58
- };
50
+
51
+ export { dns01_issuer_default as default };
52
+ //# sourceMappingURL=index.js.map
59
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/units/dns01-issuer/index.ts","../../../src/units/dns01-issuer/solver.ts"],"sourcesContent":["import { k8s } from \"@highstate/library\"\nimport { forUnit, unsecret } from \"@highstate/pulumi\"\nimport { cert_manager } from \"@highstate/cert-manager\"\nimport { getProvider } from \"../../shared\"\nimport { createDns01Solver } from \"./solver\"\n\nconst { name, inputs, outputs } = forUnit(k8s.dns01TlsIssuer)\n\nconst provider = await getProvider(inputs.k8sCluster)\n\nnew cert_manager.v1.ClusterIssuer(\n name,\n {\n metadata: {\n name,\n },\n spec: {\n acme: {\n server: \"https://acme-v02.api.letsencrypt.org/directory\",\n solvers: inputs.dnsProviders.apply(dnsProviders =>\n dnsProviders.map(dnsProvider => {\n return {\n dns01: createDns01Solver(dnsProvider, provider),\n selector: { dnsZones: [dnsProvider.domain] },\n }\n }),\n ),\n privateKeySecretRef: {\n name,\n },\n },\n },\n },\n { provider },\n)\n\nexport default outputs({\n tlsIssuer: {\n clusterId: unsecret(inputs.k8sCluster.id),\n clusterIssuerName: name,\n },\n})\n","import type { dns } from \"@highstate/library\"\nimport type { types } from \"@highstate/cert-manager\"\nimport type { Input } from \"@pulumi/pulumi\"\nimport type { Provider } from \"@pulumi/kubernetes\"\nimport { capitalize } from \"remeda\"\nimport { toPromise } from \"@highstate/pulumi\"\n\nexport async function createDns01Solver(\n dnsProviderInput: Input<dns.Provider>,\n provider: Provider,\n): Promise<types.input.cert_manager.v1.ClusterIssuerSpecAcmeSolversDns01> {\n const dnsProvider = await toPromise(dnsProviderInput)\n\n const implName = `create${capitalize(dnsProvider.type)}Dns01Solver`\n const implModule = (await import(`@highstate/${dnsProvider.type}`)) as Record<string, unknown>\n\n const implFunction = implModule[implName] as (\n dnsProvider: dns.Provider,\n provider: Provider,\n ) => types.input.cert_manager.v1.ClusterIssuerSpecAcmeSolversDns01\n\n return implFunction(dnsProvider, provider)\n}\n"],"mappings":";;;;;;AAAA,SAAS,WAAW;AACpB,SAAS,SAAS,gBAAgB;AAClC,SAAS,oBAAoB;;;ACE7B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAE1B,eAAsB,kBACpB,kBACAA,WACwE;AACxE,QAAM,cAAc,MAAM,UAAU,gBAAgB;AAEpD,QAAM,WAAW,SAAS,WAAW,YAAY,IAAI,CAAC;AACtD,QAAM,aAAc,MAAM,OAAO,cAAc,YAAY,IAAI;AAE/D,QAAM,eAAe,WAAW,QAAQ;AAKxC,SAAO,aAAa,aAAaA,SAAQ;AAC3C;;;ADhBA,IAAM,EAAE,MAAM,QAAQ,QAAQ,IAAI,QAAQ,IAAI,cAAc;AAE5D,IAAM,WAAW,MAAM,YAAY,OAAO,UAAU;AAEpD,IAAI,aAAa,GAAG;AAAA,EAClB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,QAAQ;AAAA,QACR,SAAS,OAAO,aAAa;AAAA,UAAM,kBACjC,aAAa,IAAI,iBAAe;AAC9B,mBAAO;AAAA,cACL,OAAO,kBAAkB,aAAa,QAAQ;AAAA,cAC9C,UAAU,EAAE,UAAU,CAAC,YAAY,MAAM,EAAE;AAAA,YAC7C;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,qBAAqB;AAAA,UACnB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,EAAE,SAAS;AACb;AAEA,IAAO,uBAAQ,QAAQ;AAAA,EACrB,WAAW;AAAA,IACT,WAAW,SAAS,OAAO,WAAW,EAAE;AAAA,IACxC,mBAAmB;AAAA,EACrB;AACF,CAAC;","names":["provider"]}
1
+ {"version":3,"sources":["../../../src/units/dns01-issuer/solver.ts","../../../src/units/dns01-issuer/index.ts"],"names":["provider"],"mappings":";;;;;;;AAOA,eAAsB,iBAAA,CACpB,kBACAA,SAAAA,EACwE;AACxE,EAAA,MAAM,WAAA,GAAc,MAAM,SAAA,CAAU,gBAAgB,CAAA;AAEpD,EAAA,MAAM,QAAA,GAAW,CAAA,MAAA,EAAS,UAAA,CAAW,WAAA,CAAY,IAAI,CAAC,CAAA,WAAA,CAAA;AACtD,EAAA,MAAM,UAAA,GAAc,MAAM,OAAO,CAAA,WAAA,EAAc,YAAY,IAAI,CAAA,CAAA,CAAA;AAE/D,EAAA,MAAM,YAAA,GAAe,WAAW,QAAQ,CAAA;AAKxC,EAAA,OAAO,YAAA,CAAa,aAAaA,SAAQ,CAAA;AAC3C;;;AChBA,IAAM,EAAE,IAAA,EAAM,MAAA,EAAQ,SAAQ,GAAI,OAAA,CAAQ,IAAI,cAAc,CAAA;AAE5D,IAAM,QAAA,GAAW,MAAM,WAAA,CAAY,MAAA,CAAO,UAAU,CAAA;AAEpD,IAAI,aAAa,EAAA,CAAG,aAAA;AAAA,EAClB,IAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR;AAAA,KACF;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM;AAAA,QACJ,MAAA,EAAQ,gDAAA;AAAA,QACR,OAAA,EAAS,OAAO,YAAA,CAAa,KAAA;AAAA,UAAM,CAAA,YAAA,KACjC,YAAA,CAAa,GAAA,CAAI,CAAA,WAAA,KAAe;AAC9B,YAAA,OAAO;AAAA,cACL,KAAA,EAAO,iBAAA,CAAkB,WAAA,EAAa,QAAQ,CAAA;AAAA,cAC9C,UAAU,EAAE,QAAA,EAAU,CAAC,WAAA,CAAY,MAAM,CAAA;AAAE,aAC7C;AAAA,UACF,CAAC;AAAA,SACH;AAAA,QACA,mBAAA,EAAqB;AAAA,UACnB;AAAA;AACF;AACF;AACF,GACF;AAAA,EACA,EAAE,QAAA;AACJ,CAAA;AAEA,IAAO,uBAAQ,OAAA,CAAQ;AAAA,EACrB,SAAA,EAAW;AAAA,IACT,SAAA,EAAW,QAAA,CAAS,MAAA,CAAO,UAAA,CAAW,EAAE,CAAA;AAAA,IACxC,iBAAA,EAAmB;AAAA;AAEvB,CAAC","file":"index.js","sourcesContent":["import type { dns } from \"@highstate/library\"\nimport type { types } from \"@highstate/cert-manager\"\nimport type { Input } from \"@pulumi/pulumi\"\nimport type { Provider } from \"@pulumi/kubernetes\"\nimport { capitalize } from \"remeda\"\nimport { toPromise } from \"@highstate/pulumi\"\n\nexport async function createDns01Solver(\n dnsProviderInput: Input<dns.Provider>,\n provider: Provider,\n): Promise<types.input.cert_manager.v1.ClusterIssuerSpecAcmeSolversDns01> {\n const dnsProvider = await toPromise(dnsProviderInput)\n\n const implName = `create${capitalize(dnsProvider.type)}Dns01Solver`\n const implModule = (await import(`@highstate/${dnsProvider.type}`)) as Record<string, unknown>\n\n const implFunction = implModule[implName] as (\n dnsProvider: dns.Provider,\n provider: Provider,\n ) => types.input.cert_manager.v1.ClusterIssuerSpecAcmeSolversDns01\n\n return implFunction(dnsProvider, provider)\n}\n","import { k8s } from \"@highstate/library\"\nimport { forUnit, unsecret } from \"@highstate/pulumi\"\nimport { cert_manager } from \"@highstate/cert-manager\"\nimport { getProvider } from \"../../shared\"\nimport { createDns01Solver } from \"./solver\"\n\nconst { name, inputs, outputs } = forUnit(k8s.dns01TlsIssuer)\n\nconst provider = await getProvider(inputs.k8sCluster)\n\nnew cert_manager.v1.ClusterIssuer(\n name,\n {\n metadata: {\n name,\n },\n spec: {\n acme: {\n server: \"https://acme-v02.api.letsencrypt.org/directory\",\n solvers: inputs.dnsProviders.apply(dnsProviders =>\n dnsProviders.map(dnsProvider => {\n return {\n dns01: createDns01Solver(dnsProvider, provider),\n selector: { dnsZones: [dnsProvider.domain] },\n }\n }),\n ),\n privateKeySecretRef: {\n name,\n },\n },\n },\n },\n { provider },\n)\n\nexport default outputs({\n tlsIssuer: {\n clusterId: unsecret(inputs.k8sCluster.id),\n clusterIssuerName: name,\n },\n})\n"]}
@@ -1,21 +1,12 @@
1
- import {
2
- createK8sTerminal,
3
- detectExternalIps
4
- } from "../../chunk-KBWGED2C.js";
5
- import "../../chunk-YUMBUWA4.js";
6
- import "../../chunk-PZ5AY32C.js";
1
+ import { detectExternalIps, createK8sTerminal } from '../../chunk-5C2BJGES.js';
2
+ import '../../chunk-5TLC5BXR.js';
3
+ import '../../chunk-PZ5AY32C.js';
4
+ import { k8s } from '@highstate/library';
5
+ import { forUnit, toPromise, secret } from '@highstate/pulumi';
6
+ import { Provider, core } from '@pulumi/kubernetes';
7
+ import { KubeConfig, AppsV1Api } from '@kubernetes/client-node';
8
+ import { parseL3Endpoint, parseL4Endpoint, l4EndpointToString, l3EndpointToString } from '@highstate/common';
7
9
 
8
- // src/units/existing-cluster/index.ts
9
- import { k8s } from "@highstate/library";
10
- import { forUnit, secret, toPromise } from "@highstate/pulumi";
11
- import { core, Provider } from "@pulumi/kubernetes";
12
- import { KubeConfig, AppsV1Api } from "@kubernetes/client-node";
13
- import {
14
- l3EndpointToString,
15
- l4EndpointToString,
16
- parseL3Endpoint,
17
- parseL4Endpoint
18
- } from "@highstate/common";
19
10
  var { name, args, secrets, outputs } = forUnit(k8s.existingCluster);
20
11
  var kubeconfigContent = await toPromise(secrets.kubeconfig.apply(JSON.stringify));
21
12
  var provider = new Provider(name, { kubeconfig: kubeconfigContent });
@@ -45,14 +36,14 @@ var existing_cluster_default = outputs({
45
36
  endpoints,
46
37
  apiEndpoints,
47
38
  $terminals: [createK8sTerminal(kubeconfigContent)],
48
- $status: {
39
+ $statusFields: {
49
40
  clusterId: kubeSystem.metadata.uid,
50
41
  cni,
51
42
  endpoints: endpoints.map(l3EndpointToString),
52
43
  apiEndpoints: apiEndpoints.map(l4EndpointToString)
53
44
  }
54
45
  });
55
- export {
56
- existing_cluster_default as default
57
- };
46
+
47
+ export { existing_cluster_default as default };
48
+ //# sourceMappingURL=index.js.map
58
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/units/existing-cluster/index.ts"],"sourcesContent":["import { k8s } from \"@highstate/library\"\nimport { forUnit, secret, toPromise } from \"@highstate/pulumi\"\nimport { core, Provider } from \"@pulumi/kubernetes\"\nimport { KubeConfig, AppsV1Api } from \"@kubernetes/client-node\"\nimport {\n l3EndpointToString,\n l4EndpointToString,\n parseL3Endpoint,\n parseL4Endpoint,\n} from \"@highstate/common\"\nimport { createK8sTerminal, detectExternalIps } from \"../../cluster\"\n\nconst { name, args, secrets, outputs } = forUnit(k8s.existingCluster)\n\nconst kubeconfigContent = await toPromise(secrets.kubeconfig.apply(JSON.stringify))\n\nconst provider = new Provider(name, { kubeconfig: kubeconfigContent })\n\nlet cni: k8s.CNI = \"other\"\n\nconst kubeConfig = new KubeConfig()\nkubeConfig.loadFromString(kubeconfigContent)\n\nconst appsApi = kubeConfig.makeApiClient(AppsV1Api)\n\nconst isCilium = await appsApi\n .readNamespacedDaemonSet({ name: \"cilium\", namespace: \"kube-system\" })\n .then(() => true)\n .catch(() => false)\n\nif (isCilium) {\n cni = \"cilium\"\n}\n\nconst externalIps =\n args.externalIps ?? (await detectExternalIps(kubeConfig, args.internalIpsPolicy))\n\nconst endpoints = externalIps.map(parseL3Endpoint)\nconst apiEndpoints = [parseL4Endpoint(kubeConfig.clusters[0].server.replace(\"https://\", \"\"))]\n\nconst kubeSystem = core.v1.Namespace.get(\"kube-system\", \"kube-system\", { provider })\n\nexport default outputs({\n k8sCluster: {\n id: kubeSystem.metadata.uid,\n name,\n cni,\n externalIps,\n endpoints,\n apiEndpoints,\n quirks: args.quirks,\n kubeconfig: secret(kubeconfigContent),\n },\n\n endpoints,\n apiEndpoints,\n\n $terminals: [createK8sTerminal(kubeconfigContent)],\n\n $status: {\n clusterId: kubeSystem.metadata.uid,\n cni,\n endpoints: endpoints.map(l3EndpointToString),\n apiEndpoints: apiEndpoints.map(l4EndpointToString),\n },\n})\n"],"mappings":";;;;;;;;AAAA,SAAS,WAAW;AACpB,SAAS,SAAS,QAAQ,iBAAiB;AAC3C,SAAS,MAAM,gBAAgB;AAC/B,SAAS,YAAY,iBAAiB;AACtC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,IAAM,EAAE,MAAM,MAAM,SAAS,QAAQ,IAAI,QAAQ,IAAI,eAAe;AAEpE,IAAM,oBAAoB,MAAM,UAAU,QAAQ,WAAW,MAAM,KAAK,SAAS,CAAC;AAElF,IAAM,WAAW,IAAI,SAAS,MAAM,EAAE,YAAY,kBAAkB,CAAC;AAErE,IAAI,MAAe;AAEnB,IAAM,aAAa,IAAI,WAAW;AAClC,WAAW,eAAe,iBAAiB;AAE3C,IAAM,UAAU,WAAW,cAAc,SAAS;AAElD,IAAM,WAAW,MAAM,QACpB,wBAAwB,EAAE,MAAM,UAAU,WAAW,cAAc,CAAC,EACpE,KAAK,MAAM,IAAI,EACf,MAAM,MAAM,KAAK;AAEpB,IAAI,UAAU;AACZ,QAAM;AACR;AAEA,IAAM,cACJ,KAAK,eAAgB,MAAM,kBAAkB,YAAY,KAAK,iBAAiB;AAEjF,IAAM,YAAY,YAAY,IAAI,eAAe;AACjD,IAAM,eAAe,CAAC,gBAAgB,WAAW,SAAS,CAAC,EAAE,OAAO,QAAQ,YAAY,EAAE,CAAC,CAAC;AAE5F,IAAM,aAAa,KAAK,GAAG,UAAU,IAAI,eAAe,eAAe,EAAE,SAAS,CAAC;AAEnF,IAAO,2BAAQ,QAAQ;AAAA,EACrB,YAAY;AAAA,IACV,IAAI,WAAW,SAAS;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,KAAK;AAAA,IACb,YAAY,OAAO,iBAAiB;AAAA,EACtC;AAAA,EAEA;AAAA,EACA;AAAA,EAEA,YAAY,CAAC,kBAAkB,iBAAiB,CAAC;AAAA,EAEjD,SAAS;AAAA,IACP,WAAW,WAAW,SAAS;AAAA,IAC/B;AAAA,IACA,WAAW,UAAU,IAAI,kBAAkB;AAAA,IAC3C,cAAc,aAAa,IAAI,kBAAkB;AAAA,EACnD;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/units/existing-cluster/index.ts"],"names":[],"mappings":";;;;;;;;;AAYA,IAAM,EAAE,MAAM,IAAA,EAAM,OAAA,EAAS,SAAQ,GAAI,OAAA,CAAQ,IAAI,eAAe,CAAA;AAEpE,IAAM,iBAAA,GAAoB,MAAM,SAAA,CAAU,OAAA,CAAQ,WAAW,KAAA,CAAM,IAAA,CAAK,SAAS,CAAC,CAAA;AAElF,IAAM,WAAW,IAAI,QAAA,CAAS,MAAM,EAAE,UAAA,EAAY,mBAAmB,CAAA;AAErE,IAAI,GAAA,GAAe,OAAA;AAEnB,IAAM,UAAA,GAAa,IAAI,UAAA,EAAW;AAClC,UAAA,CAAW,eAAe,iBAAiB,CAAA;AAE3C,IAAM,OAAA,GAAU,UAAA,CAAW,aAAA,CAAc,SAAS,CAAA;AAElD,IAAM,WAAW,MAAM,OAAA,CACpB,uBAAA,CAAwB,EAAE,MAAM,QAAA,EAAU,SAAA,EAAW,aAAA,EAAe,EACpE,IAAA,CAAK,MAAM,IAAI,CAAA,CACf,KAAA,CAAM,MAAM,KAAK,CAAA;AAEpB,IAAI,QAAA,EAAU;AACZ,EAAA,GAAA,GAAM,QAAA;AACR;AAEA,IAAM,cACJ,IAAA,CAAK,WAAA,IAAgB,MAAM,iBAAA,CAAkB,UAAA,EAAY,KAAK,iBAAiB,CAAA;AAEjF,IAAM,SAAA,GAAY,WAAA,CAAY,GAAA,CAAI,eAAe,CAAA;AACjD,IAAM,YAAA,GAAe,CAAC,eAAA,CAAgB,UAAA,CAAW,QAAA,CAAS,CAAC,CAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAC,CAAC,CAAA;AAE5F,IAAM,UAAA,GAAa,KAAK,EAAA,CAAG,SAAA,CAAU,IAAI,aAAA,EAAe,aAAA,EAAe,EAAE,QAAA,EAAU,CAAA;AAEnF,IAAO,2BAAQ,OAAA,CAAQ;AAAA,EACrB,UAAA,EAAY;AAAA,IACV,EAAA,EAAI,WAAW,QAAA,CAAS,GAAA;AAAA,IACxB,IAAA;AAAA,IACA,GAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAQ,IAAA,CAAK,MAAA;AAAA,IACb,UAAA,EAAY,OAAO,iBAAiB;AAAA,GACtC;AAAA,EAEA,SAAA;AAAA,EACA,YAAA;AAAA,EAEA,UAAA,EAAY,CAAC,iBAAA,CAAkB,iBAAiB,CAAC,CAAA;AAAA,EAEjD,aAAA,EAAe;AAAA,IACb,SAAA,EAAW,WAAW,QAAA,CAAS,GAAA;AAAA,IAC/B,GAAA;AAAA,IACA,SAAA,EAAW,SAAA,CAAU,GAAA,CAAI,kBAAkB,CAAA;AAAA,IAC3C,YAAA,EAAc,YAAA,CAAa,GAAA,CAAI,kBAAkB;AAAA;AAErD,CAAC","file":"index.js","sourcesContent":["import { k8s } from \"@highstate/library\"\nimport { forUnit, secret, toPromise } from \"@highstate/pulumi\"\nimport { core, Provider } from \"@pulumi/kubernetes\"\nimport { KubeConfig, AppsV1Api } from \"@kubernetes/client-node\"\nimport {\n l3EndpointToString,\n l4EndpointToString,\n parseL3Endpoint,\n parseL4Endpoint,\n} from \"@highstate/common\"\nimport { createK8sTerminal, detectExternalIps } from \"../../cluster\"\n\nconst { name, args, secrets, outputs } = forUnit(k8s.existingCluster)\n\nconst kubeconfigContent = await toPromise(secrets.kubeconfig.apply(JSON.stringify))\n\nconst provider = new Provider(name, { kubeconfig: kubeconfigContent })\n\nlet cni: k8s.CNI = \"other\"\n\nconst kubeConfig = new KubeConfig()\nkubeConfig.loadFromString(kubeconfigContent)\n\nconst appsApi = kubeConfig.makeApiClient(AppsV1Api)\n\nconst isCilium = await appsApi\n .readNamespacedDaemonSet({ name: \"cilium\", namespace: \"kube-system\" })\n .then(() => true)\n .catch(() => false)\n\nif (isCilium) {\n cni = \"cilium\"\n}\n\nconst externalIps =\n args.externalIps ?? (await detectExternalIps(kubeConfig, args.internalIpsPolicy))\n\nconst endpoints = externalIps.map(parseL3Endpoint)\nconst apiEndpoints = [parseL4Endpoint(kubeConfig.clusters[0].server.replace(\"https://\", \"\"))]\n\nconst kubeSystem = core.v1.Namespace.get(\"kube-system\", \"kube-system\", { provider })\n\nexport default outputs({\n k8sCluster: {\n id: kubeSystem.metadata.uid,\n name,\n cni,\n externalIps,\n endpoints,\n apiEndpoints,\n quirks: args.quirks,\n kubeconfig: secret(kubeconfigContent),\n },\n\n endpoints,\n apiEndpoints,\n\n $terminals: [createK8sTerminal(kubeconfigContent)],\n\n $statusFields: {\n clusterId: kubeSystem.metadata.uid,\n cni,\n endpoints: endpoints.map(l3EndpointToString),\n apiEndpoints: apiEndpoints.map(l4EndpointToString),\n },\n})\n"]}
@@ -1,12 +1,9 @@
1
- import {
2
- getProvider
3
- } from "../../chunk-YUMBUWA4.js";
4
- import "../../chunk-PZ5AY32C.js";
1
+ import { getProvider } from '../../chunk-5TLC5BXR.js';
2
+ import '../../chunk-PZ5AY32C.js';
3
+ import { k8s } from '@highstate/library';
4
+ import { forUnit } from '@highstate/pulumi';
5
+ import { yaml } from '@pulumi/kubernetes';
5
6
 
6
- // src/units/gateway-api/index.ts
7
- import { k8s } from "@highstate/library";
8
- import { forUnit } from "@highstate/pulumi";
9
- import { yaml } from "@pulumi/kubernetes";
10
7
  var { inputs, outputs } = forUnit(k8s.gatewayApi);
11
8
  var provider = await getProvider(inputs.k8sCluster);
12
9
  new yaml.v2.ConfigFile(
@@ -19,7 +16,7 @@ new yaml.v2.ConfigFile(
19
16
  var gateway_api_default = outputs({
20
17
  k8sCluster: inputs.k8sCluster
21
18
  });
22
- export {
23
- gateway_api_default as default
24
- };
19
+
20
+ export { gateway_api_default as default };
21
+ //# sourceMappingURL=index.js.map
25
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/units/gateway-api/index.ts"],"sourcesContent":["import { k8s } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\nimport { yaml } from \"@pulumi/kubernetes\"\nimport { getProvider } from \"../../shared\"\n\nconst { inputs, outputs } = forUnit(k8s.gatewayApi)\n\nconst provider = await getProvider(inputs.k8sCluster)\n\nnew yaml.v2.ConfigFile(\n \"gateway-api\",\n {\n file: \"https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml\",\n },\n { provider },\n)\n\nexport default outputs({\n k8sCluster: inputs.k8sCluster,\n})\n"],"mappings":";;;;;;AAAA,SAAS,WAAW;AACpB,SAAS,eAAe;AACxB,SAAS,YAAY;AAGrB,IAAM,EAAE,QAAQ,QAAQ,IAAI,QAAQ,IAAI,UAAU;AAElD,IAAM,WAAW,MAAM,YAAY,OAAO,UAAU;AAEpD,IAAI,KAAK,GAAG;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,EACR;AAAA,EACA,EAAE,SAAS;AACb;AAEA,IAAO,sBAAQ,QAAQ;AAAA,EACrB,YAAY,OAAO;AACrB,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/units/gateway-api/index.ts"],"names":[],"mappings":";;;;;;AAKA,IAAM,EAAE,MAAA,EAAQ,OAAA,EAAQ,GAAI,OAAA,CAAQ,IAAI,UAAU,CAAA;AAElD,IAAM,QAAA,GAAW,MAAM,WAAA,CAAY,MAAA,CAAO,UAAU,CAAA;AAEpD,IAAI,KAAK,EAAA,CAAG,UAAA;AAAA,EACV,aAAA;AAAA,EACA;AAAA,IACE,IAAA,EAAM;AAAA,GACR;AAAA,EACA,EAAE,QAAA;AACJ,CAAA;AAEA,IAAO,sBAAQ,OAAA,CAAQ;AAAA,EACrB,YAAY,MAAA,CAAO;AACrB,CAAC","file":"index.js","sourcesContent":["import { k8s } from \"@highstate/library\"\nimport { forUnit } from \"@highstate/pulumi\"\nimport { yaml } from \"@pulumi/kubernetes\"\nimport { getProvider } from \"../../shared\"\n\nconst { inputs, outputs } = forUnit(k8s.gatewayApi)\n\nconst provider = await getProvider(inputs.k8sCluster)\n\nnew yaml.v2.ConfigFile(\n \"gateway-api\",\n {\n file: \"https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml\",\n },\n { provider },\n)\n\nexport default outputs({\n k8sCluster: inputs.k8sCluster,\n})\n"]}
package/package.json CHANGED
@@ -1,11 +1,19 @@
1
1
  {
2
2
  "name": "@highstate/k8s",
3
- "version": "0.9.15",
3
+ "version": "0.9.18",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
7
7
  "src"
8
8
  ],
9
+ "highstate": {
10
+ "sourceHash": {
11
+ ".": {
12
+ "mode": "manual",
13
+ "version": "1"
14
+ }
15
+ }
16
+ },
9
17
  "exports": {
10
18
  ".": {
11
19
  "types": "./src/index.ts",
@@ -29,16 +37,16 @@
29
37
  "generate-crds": "./scripts/generate-crds.sh"
30
38
  },
31
39
  "dependencies": {
32
- "@highstate/cert-manager": "^0.9.15",
33
- "@highstate/common": "^0.9.15",
34
- "@highstate/contract": "^0.9.15",
35
- "@highstate/gateway-api": "^0.9.15",
36
- "@highstate/library": "^0.9.15",
37
- "@highstate/pulumi": "^0.9.15",
40
+ "@highstate/cert-manager": "^0.9.18",
41
+ "@highstate/common": "^0.9.18",
42
+ "@highstate/contract": "^0.9.18",
43
+ "@highstate/gateway-api": "^0.9.18",
44
+ "@highstate/library": "^0.9.18",
45
+ "@highstate/pulumi": "^0.9.18",
38
46
  "@kubernetes/client-node": "^1.1.0",
39
47
  "@pulumi/command": "^1.0.2",
40
48
  "@pulumi/kubernetes": "^4.18.0",
41
- "@pulumi/pulumi": "^3.165.0",
49
+ "@pulumi/pulumi": "^3.184.0",
42
50
  "crypto-hash": "^3.1.0",
43
51
  "deepmerge-ts": "^7.1.5",
44
52
  "glob": "^11.0.1",
@@ -47,7 +55,7 @@
47
55
  "remeda": "^2.21.0"
48
56
  },
49
57
  "devDependencies": {
50
- "@highstate/cli": "^0.9.15"
58
+ "@highstate/cli": "^0.9.18"
51
59
  },
52
- "gitHead": "f61b9905d4cd50511b03331411f42595403ebc06"
60
+ "gitHead": "9ebcd7da56b00b8ca08bf52cc8438f527338cd64"
53
61
  }
package/src/shared.ts CHANGED
@@ -25,6 +25,20 @@ export function getProvider(cluster: Input<k8s.Cluster>): Promise<Provider> {
25
25
  return toPromise(provider)
26
26
  }
27
27
 
28
+ export function getProviderSync(cluster: k8s.Cluster): Provider {
29
+ const existingProvider = providers.get(cluster.id)
30
+ if (existingProvider) {
31
+ return existingProvider
32
+ }
33
+
34
+ const provider = new Provider(`${cluster.name}-${cluster.id}`, {
35
+ kubeconfig: cluster.kubeconfig,
36
+ })
37
+ providers.set(cluster.id, provider)
38
+
39
+ return provider
40
+ }
41
+
28
42
  export type NamespaceLike = core.v1.Namespace | Namespace | string
29
43
 
30
44
  export type CommonArgs = {
@@ -30,7 +30,7 @@ export default outputs({
30
30
  endpoints,
31
31
  apiEndpoints,
32
32
 
33
- $status: {
33
+ $statusFields: {
34
34
  endpoints: endpoints.map(l3EndpointToString),
35
35
  apiEndpoints: apiEndpoints.map(l4EndpointToString),
36
36
  },
@@ -28,7 +28,7 @@ export default outputs({
28
28
  endpoints,
29
29
  apiEndpoints,
30
30
 
31
- $status: {
31
+ $statusFields: {
32
32
  endpoints: endpoints.map(l3EndpointToString),
33
33
  apiEndpoints: apiEndpoints.map(l4EndpointToString),
34
34
  },
@@ -57,7 +57,7 @@ export default outputs({
57
57
 
58
58
  $terminals: [createK8sTerminal(kubeconfigContent)],
59
59
 
60
- $status: {
60
+ $statusFields: {
61
61
  clusterId: kubeSystem.metadata.uid,
62
62
  cni,
63
63
  endpoints: endpoints.map(l3EndpointToString),
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cluster.ts"],"sourcesContent":["import type { k8s } from \"@highstate/library\"\nimport { text } from \"@highstate/contract\"\nimport { secret, type Input, type InstanceTerminal } from \"@highstate/pulumi\"\nimport { CoreV1Api, type KubeConfig } from \"@kubernetes/client-node\"\nimport { images } from \"./shared\"\n\nfunction isPrivateIp(ip: string) {\n const privateIpRegex = /^(10|172\\.16|192\\.168)\\./\n return privateIpRegex.test(ip)\n}\n\nexport async function detectExternalIps(\n kubeConfig: KubeConfig,\n internalIpsPolicy: k8s.InternalIpsPolicy,\n): Promise<string[]> {\n const nodeApi = kubeConfig.makeApiClient(CoreV1Api)\n const nodes = await nodeApi.listNode()\n\n return nodes.items.flatMap(node => {\n const addresses = node.status?.addresses ?? []\n const externalIp = addresses.find(address => address.type === \"ExternalIP\")\n const internalIp = addresses.find(address => address.type === \"InternalIP\")\n\n const result: string[] = []\n\n if (externalIp?.address) {\n result.push(externalIp.address)\n }\n\n if (internalIp?.address && internalIpsPolicy === \"always\") {\n result.push(internalIp.address)\n }\n\n if (internalIp?.address && internalIpsPolicy === \"public\" && !isPrivateIp(internalIp.address)) {\n result.push(internalIp.address)\n }\n\n return result\n })\n}\n\nexport function createK8sTerminal(kubeconfig: Input<string>): InstanceTerminal {\n return {\n name: \"management\",\n title: \"Cluster Management\",\n description: \"Manage the cluster using kubectl and helm\",\n icon: \"devicon:kubernetes\",\n\n image: images[\"terminal-kubectl\"].image,\n command: [\"bash\", \"/welcome.sh\"],\n\n files: {\n \"/kubeconfig\": secret(kubeconfig),\n\n \"/welcome.sh\": text`\n echo \"Connecting to the cluster...\"\n kubectl cluster-info\n\n echo \"Use 'kubectl' and 'helm' to manage the cluster.\"\n echo\n\n exec bash\n `,\n },\n\n env: {\n KUBECONFIG: \"/kubeconfig\",\n },\n }\n}\n"],"mappings":";;;;;AACA,SAAS,YAAY;AACrB,SAAS,cAAiD;AAC1D,SAAS,iBAAkC;AAG3C,SAAS,YAAY,IAAY;AAC/B,QAAM,iBAAiB;AACvB,SAAO,eAAe,KAAK,EAAE;AAC/B;AAEA,eAAsB,kBACpB,YACA,mBACmB;AACnB,QAAM,UAAU,WAAW,cAAc,SAAS;AAClD,QAAM,QAAQ,MAAM,QAAQ,SAAS;AAErC,SAAO,MAAM,MAAM,QAAQ,UAAQ;AACjC,UAAM,YAAY,KAAK,QAAQ,aAAa,CAAC;AAC7C,UAAM,aAAa,UAAU,KAAK,aAAW,QAAQ,SAAS,YAAY;AAC1E,UAAM,aAAa,UAAU,KAAK,aAAW,QAAQ,SAAS,YAAY;AAE1E,UAAM,SAAmB,CAAC;AAE1B,QAAI,YAAY,SAAS;AACvB,aAAO,KAAK,WAAW,OAAO;AAAA,IAChC;AAEA,QAAI,YAAY,WAAW,sBAAsB,UAAU;AACzD,aAAO,KAAK,WAAW,OAAO;AAAA,IAChC;AAEA,QAAI,YAAY,WAAW,sBAAsB,YAAY,CAAC,YAAY,WAAW,OAAO,GAAG;AAC7F,aAAO,KAAK,WAAW,OAAO;AAAA,IAChC;AAEA,WAAO;AAAA,EACT,CAAC;AACH;AAEO,SAAS,kBAAkB,YAA6C;AAC7E,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IAEN,OAAO,eAAO,kBAAkB,EAAE;AAAA,IAClC,SAAS,CAAC,QAAQ,aAAa;AAAA,IAE/B,OAAO;AAAA,MACL,eAAe,OAAO,UAAU;AAAA,MAEhC,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASjB;AAAA,IAEA,KAAK;AAAA,MACH,YAAY;AAAA,IACd;AAAA,EACF;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/helm.ts"],"sourcesContent":["import type { k8s } from \"@highstate/library\"\nimport type { Workload } from \"./workload\"\nimport { resolve } from \"node:path\"\nimport { mkdir, readFile, unlink } from \"node:fs/promises\"\nimport { normalize, toPromise, type InputMap, type InstanceTerminal } from \"@highstate/pulumi\"\nimport { apps, core, helm, types } from \"@pulumi/kubernetes\"\nimport {\n ComponentResource,\n output,\n type ComponentResourceOptions,\n type Input,\n type Output,\n} from \"@pulumi/pulumi\"\nimport spawn from \"nano-spawn\"\nimport { sha256 } from \"crypto-hash\"\nimport { omit } from \"remeda\"\nimport { local } from \"@pulumi/command\"\nimport { glob } from \"glob\"\nimport { NetworkPolicy, type NetworkPolicyArgs } from \"./network-policy\"\nimport { HttpRoute, type HttpRouteArgs } from \"./gateway\"\nimport { getProvider, mapNamespaceLikeToNamespaceName, type NamespaceLike } from \"./shared\"\nimport { getServiceType, Service, type ServiceArgs } from \"./service\"\nimport { Deployment } from \"./deployment\"\nimport { StatefulSet } from \"./stateful-set\"\n\nexport type ChartArgs = Omit<\n helm.v4.ChartArgs,\n \"chart\" | \"version\" | \"repositoryOpts\" | \"namespace\"\n> & {\n /**\n * The namespace to deploy the chart into.\n */\n namespace?: Input<NamespaceLike>\n\n /**\n * The custom name of the primary service exposed by the chart.\n *\n * By default, it is the same as the chart name.\n */\n serviceName?: string\n\n /**\n * The extra args to pass to the main service of the chart.\n *\n * Will be patched via transformations.\n */\n service?: Partial<ServiceArgs>\n\n /**\n * The manifest of the chart to resolve.\n */\n chart: ChartManifest\n\n /**\n * The cluster to create the resource in.\n */\n cluster: Input<k8s.Cluster>\n\n /**\n * The http route args to bind the service to.\n */\n httpRoute?: Input<Omit<HttpRouteArgs, \"cluster\">>\n\n /**\n * The network policy to apply to the chart.\n */\n networkPolicy?: Input<Omit<NetworkPolicyArgs, \"selector\" | \"cluster\" | \"namespace\">>\n\n /**\n * The network policies to apply to the chart.\n */\n networkPolicies?: Input<NetworkPolicyArgs[]>\n}\n\nexport class Chart extends ComponentResource {\n /**\n * The underlying Helm chart.\n */\n public readonly chart: Output<helm.v4.Chart>\n\n /**\n * The HTTP route associated with the deployment.\n */\n public readonly httpRoute: Output<HttpRoute | undefined>\n\n /**\n * The network policies applied to the chart.\n */\n public readonly networkPolicies: Output<NetworkPolicy[]>\n\n /**\n * All workloads created by the chart.\n */\n public readonly workloads: Output<Workload[]>\n\n constructor(\n private readonly name: string,\n private readonly args: ChartArgs,\n private readonly opts?: ComponentResourceOptions,\n ) {\n super(\"highstate:k8s:Chart\", name, args, opts)\n\n const namespace = output(args.namespace).apply(namespace =>\n output(namespace ? mapNamespaceLikeToNamespaceName(namespace) : \"default\"),\n )\n\n this.chart = output({ args, namespace }).apply(async ({ args, namespace }) => {\n return new helm.v4.Chart(\n name,\n omit(\n {\n ...args,\n chart: resolveHelmChart(args.chart),\n namespace,\n },\n [\"httpRoute\"],\n ),\n {\n ...opts,\n parent: this,\n provider: await getProvider(args.cluster),\n\n transforms: [\n ...(opts?.transforms ?? []),\n\n resourceArgs => {\n const serviceName = args.serviceName ?? name\n const expectedName = `${name}:${namespace}/${serviceName}`\n\n if (\n resourceArgs.type === \"kubernetes:core/v1:Service\" &&\n resourceArgs.name === expectedName\n ) {\n const spec = resourceArgs.props.spec as types.input.core.v1.ServiceSpec\n\n return {\n props: {\n ...resourceArgs.props,\n spec: {\n ...spec,\n ...(args.service ?? {}),\n\n type: getServiceType(args.service, args.cluster),\n\n externalIPs:\n args.service?.externalIPs ?? args.cluster.externalIps ?? spec.externalIPs,\n },\n },\n opts: resourceArgs.opts,\n }\n }\n\n return undefined\n },\n ],\n },\n )\n })\n\n this.httpRoute = output(args.httpRoute).apply(httpRoute => {\n if (!httpRoute) {\n return undefined\n }\n\n return new HttpRoute(\n name,\n {\n ...httpRoute,\n cluster: args.cluster,\n rule: {\n backend: this.service,\n },\n },\n { ...opts, parent: this },\n )\n })\n\n this.networkPolicies = output(args).apply(args => {\n const policies = normalize(args.networkPolicy, args.networkPolicies)\n\n return output(\n policies.map(policy => {\n return NetworkPolicy.create(\n name,\n {\n ...policy,\n\n cluster: args.cluster,\n namespace: args.namespace,\n },\n { ...opts, parent: this },\n )\n }),\n )\n })\n\n this.workloads = output(this.chart).apply(chart => {\n return output(\n chart.resources.apply(resources => {\n return resources\n .map(resource => {\n if (apps.v1.Deployment.isInstance(resource)) {\n return resource.metadata.name.apply(name => {\n return Deployment.wrap(name, resource, this.args.cluster, this.opts)\n })\n }\n\n if (apps.v1.StatefulSet.isInstance(resource)) {\n return resource.metadata.name.apply(name => {\n return StatefulSet.wrap(name, resource, this.args.cluster, this.opts)\n })\n }\n\n return undefined\n })\n .filter(workload => workload !== undefined) as Output<Workload>[]\n }),\n )\n })\n }\n\n get service(): Output<Service> {\n return this.getServiceOutput(undefined)\n }\n\n get terminals(): Output<InstanceTerminal[]> {\n return this.workloads.apply(workloads => output(workloads.map(workload => workload.terminal)))\n }\n\n private readonly services = new Map<string, Service>()\n\n getServiceOutput(name: string | undefined): Output<Service> {\n return output({ args: this.args, chart: this.chart }).apply(({ args, chart }) => {\n const resolvedName = name ?? args.serviceName ?? this.name\n const existingService = this.services.get(resolvedName)\n\n if (existingService) {\n return existingService\n }\n\n const service = getChartServiceOutput(chart, resolvedName)\n\n const wrappedService = Service.wrap(\n //\n resolvedName,\n service,\n args.cluster,\n { ...this.opts, parent: this },\n )\n\n this.services.set(resolvedName, wrappedService)\n return wrappedService\n })\n }\n\n getService(name?: string): Promise<Service> {\n return toPromise(this.getServiceOutput(name))\n }\n}\n\nexport type RenderedChartArgs = {\n /**\n * The namespace to deploy the chart into.\n */\n namespace?: Input<NamespaceLike>\n\n /**\n * The manifest of the chart to resolve.\n */\n chart: ChartManifest\n\n /**\n * The values to pass to the chart.\n */\n values?: InputMap<string>\n}\n\nexport class RenderedChart extends ComponentResource {\n /**\n * The rendered manifest of the Helm chart.\n */\n public readonly manifest: Output<string>\n\n /**\n * The underlying command used to render the chart.\n */\n public readonly command: Output<local.Command>\n\n constructor(name: string, args: RenderedChartArgs, opts?: ComponentResourceOptions) {\n super(\"highstate:k8s:RenderedChart\", name, args, opts)\n\n this.command = output(args).apply(args => {\n const values = args.values\n ? Object.entries(args.values).flatMap(([key, value]) => [\"--set\", `${key}=\"${value}\"`])\n : []\n\n return new local.Command(\n name,\n {\n create: output([\n \"helm\",\n \"template\",\n resolveHelmChart(args.chart),\n\n ...(args.namespace\n ? [\"--namespace\", mapNamespaceLikeToNamespaceName(args.namespace)]\n : []),\n\n ...values,\n ]).apply(command => command.join(\" \")),\n\n logging: \"stderr\",\n },\n { parent: this, ...opts },\n )\n })\n\n this.manifest = this.command.stdout\n\n this.registerOutputs({ manifest: this.manifest, command: this.command })\n }\n}\n\nexport type ChartManifest = {\n repo: string\n name: string\n version: string\n sha256: string\n}\n\n/**\n * Downloads or reuses the Helm chart according to the charts.json file.\n * Returns the full path to the chart's .tgz file.\n *\n * @param manifest The manifest of the Helm chart.\n */\nexport async function resolveHelmChart(manifest: ChartManifest): Promise<string> {\n if (!process.env.HIGHSTATE_CACHE_DIR) {\n throw new Error(\"Environment variable HIGHSTATE_CACHE_DIR is not set\")\n }\n\n const chartsDir = resolve(process.env.HIGHSTATE_CACHE_DIR, \"charts\")\n await mkdir(chartsDir, { recursive: true })\n\n const globPattern = `${manifest.name}-*.tgz`\n const targetFileName = `${manifest.name}-${manifest.version}.tgz`\n\n // find all matching files\n const files = await glob(globPattern, { cwd: chartsDir })\n\n if (files.includes(targetFileName)) {\n return resolve(chartsDir, targetFileName)\n }\n\n // delete old versions\n for (const file of files) {\n await unlink(resolve(chartsDir, file))\n }\n\n // download the chart\n await spawn(\"helm\", [\n \"pull\",\n manifest.name,\n \"--version\",\n manifest.version,\n \"--repo\",\n manifest.repo,\n \"--destination\",\n chartsDir,\n ])\n\n // check the SHA256\n const content = await readFile(resolve(chartsDir, targetFileName))\n const actualSha256 = await sha256(content)\n\n if (actualSha256 !== manifest.sha256) {\n throw new Error(`SHA256 mismatch for chart '${manifest.name}'`)\n }\n\n return resolve(chartsDir, targetFileName)\n}\n\n/**\n * Extracts the service with the given name from the chart resources.\n * Throws an error if the service is not found.\n *\n * @param chart The Helm chart.\n * @param name The name of the service.\n */\nexport function getChartServiceOutput(chart: helm.v4.Chart, name: string): Output<core.v1.Service> {\n const services = chart.resources.apply(resources => {\n return resources\n .filter(r => core.v1.Service.isInstance(r))\n .map(service => ({ name: service.metadata.name, service }))\n })\n\n return output(services).apply(services => {\n const service = services.find(s => s.name === name)?.service\n\n if (!service) {\n throw new Error(`Service with name '${name}' not found in the chart resources`)\n }\n\n return service\n })\n}\n\n/**\n * Extracts the service with the given name from the chart resources.\n * Throws an error if the service is not found.\n *\n * @param chart The Helm chart.\n * @param name The name of the service.\n */\nexport function getChartService(chart: helm.v4.Chart, name: string): Promise<core.v1.Service> {\n return toPromise(getChartServiceOutput(chart, name))\n}\n"],"mappings":"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","names":["namespace","args","name","services"]}