@highstate/k8s 0.9.14 → 0.9.16

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 (60) hide show
  1. package/dist/{chunk-QLQ3QVGT.js → chunk-5C2BJGES.js} +17 -17
  2. package/dist/chunk-5C2BJGES.js.map +1 -0
  3. package/dist/{chunk-Y3LZSX7I.js → chunk-5TLC5BXR.js} +33 -31
  4. package/dist/chunk-5TLC5BXR.js.map +1 -0
  5. package/dist/chunk-BBIY3KUN.js +1557 -0
  6. package/dist/chunk-BBIY3KUN.js.map +1 -0
  7. package/dist/{chunk-5S4JPM4M.js → chunk-OFFSHGC6.js} +43 -32
  8. package/dist/chunk-OFFSHGC6.js.map +1 -0
  9. package/dist/chunk-PZ5AY32C.js +9 -0
  10. package/dist/chunk-PZ5AY32C.js.map +1 -0
  11. package/dist/{chunk-VL7Z5FJQ.js → chunk-TZHOUJRC.js} +29 -20
  12. package/dist/chunk-TZHOUJRC.js.map +1 -0
  13. package/dist/{chunk-6L67WIZW.js → chunk-YWRJ4EZM.js} +29 -20
  14. package/dist/chunk-YWRJ4EZM.js.map +1 -0
  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 -138
  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 +7 -6
  23. package/dist/units/access-point/index.js.map +1 -1
  24. package/dist/units/cert-manager/index.js +11 -14
  25. package/dist/units/cert-manager/index.js.map +1 -1
  26. package/dist/units/cluster-dns/index.js +9 -8
  27. package/dist/units/cluster-dns/index.js.map +1 -1
  28. package/dist/units/cluster-patch/index.js +9 -8
  29. package/dist/units/cluster-patch/index.js.map +1 -1
  30. package/dist/units/dns01-issuer/index.js +9 -14
  31. package/dist/units/dns01-issuer/index.js.map +1 -1
  32. package/dist/units/existing-cluster/index.js +12 -19
  33. package/dist/units/existing-cluster/index.js.map +1 -1
  34. package/dist/units/gateway-api/index.js +8 -10
  35. package/dist/units/gateway-api/index.js.map +1 -1
  36. package/package.json +19 -10
  37. package/src/cluster.ts +14 -9
  38. package/src/deployment.ts +34 -0
  39. package/src/helm.ts +38 -2
  40. package/src/network-policy.ts +2 -5
  41. package/src/shared.ts +17 -0
  42. package/src/stateful-set.ts +34 -0
  43. package/src/units/cluster-dns/index.ts +1 -1
  44. package/src/units/cluster-patch/index.ts +1 -1
  45. package/src/units/existing-cluster/index.ts +1 -1
  46. package/src/workload.ts +22 -3
  47. package/dist/chunk-5S4JPM4M.js.map +0 -1
  48. package/dist/chunk-6L67WIZW.js.map +0 -1
  49. package/dist/chunk-QLQ3QVGT.js.map +0 -1
  50. package/dist/chunk-SARVLQZY.js +0 -876
  51. package/dist/chunk-SARVLQZY.js.map +0 -1
  52. package/dist/chunk-VL7Z5FJQ.js.map +0 -1
  53. package/dist/chunk-WEKIQRCZ.js +0 -792
  54. package/dist/chunk-WEKIQRCZ.js.map +0 -1
  55. package/dist/chunk-Y3LZSX7I.js.map +0 -1
  56. package/dist/deployment-QTPBNKO5.js +0 -10
  57. package/dist/deployment-QTPBNKO5.js.map +0 -1
  58. package/dist/stateful-set-K4GV7ZTK.js +0 -10
  59. package/dist/stateful-set-K4GV7ZTK.js.map +0 -1
  60. package/src/custom.ts +0 -104
@@ -1,14 +1,11 @@
1
- import {
2
- Chart
3
- } from "../../chunk-5S4JPM4M.js";
4
- import "../../chunk-WEKIQRCZ.js";
5
- import {
6
- Namespace
7
- } from "../../chunk-Y3LZSX7I.js";
8
-
9
- // src/units/cert-manager/index.ts
10
- import { k8s } from "@highstate/library";
11
- 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';
12
9
 
13
10
  // assets/charts.json
14
11
  var charts_default = {
@@ -41,7 +38,7 @@ new Chart("cert-manager", {
41
38
  var cert_manager_default = outputs({
42
39
  k8sCluster: inputs.k8sCluster
43
40
  });
44
- export {
45
- cert_manager_default as default
46
- };
41
+
42
+ export { cert_manager_default as default };
43
+ //# sourceMappingURL=index.js.map
47
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,cAAgB,EAAA;AAAA,IACd,IAAQ,EAAA,4BAAA;AAAA,IACR,IAAQ,EAAA,cAAA;AAAA,IACR,OAAW,EAAA,SAAA;AAAA,IACX,MAAU,EAAA;AAAA;AAEd,CAAA;;;ACDA,IAAM,EAAE,MAAQ,EAAA,OAAA,EAAY,GAAA,OAAA,CAAQ,IAAI,WAAW,CAAA;AAEnD,IAAM,SAAA,GAAY,UAAU,MAAO,CAAA,cAAA,EAAgB,EAAE,OAAS,EAAA,MAAA,CAAO,YAAY,CAAA;AAEjF,IAAI,MAAM,cAAgB,EAAA;AAAA,EACxB,SAAS,MAAO,CAAA,UAAA;AAAA,EAChB,SAAA;AAAA,EAEA,KAAA,EAAO,eAAO,cAAc,CAAA;AAAA,EAE5B,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA;AAAA,MACJ,OAAS,EAAA;AAAA,KACX;AAAA,IAEA,MAAQ,EAAA;AAAA,MACN,UAAY,EAAA,4CAAA;AAAA,MACZ,IAAM,EAAA,yBAAA;AAAA,MACN,gBAAkB,EAAA;AAAA;AACpB;AAEJ,CAAC,CAAA;AAED,IAAO,uBAAQ,OAAQ,CAAA;AAAA,EACrB,YAAY,MAAO,CAAA;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,7 +1,8 @@
1
- // src/units/cluster-dns/index.ts
2
- import { l3EndpointToString, l4EndpointToString, updateEndpointsWithFqdn } from "@highstate/common";
3
- import { k8s } from "@highstate/library";
4
- import { forUnit } from "@highstate/pulumi";
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';
5
+
5
6
  var { args, inputs, outputs } = forUnit(k8s.clusterDns);
6
7
  var { endpoints } = await updateEndpointsWithFqdn(
7
8
  inputs.k8sCluster.endpoints,
@@ -25,12 +26,12 @@ var cluster_dns_default = outputs({
25
26
  })),
26
27
  endpoints,
27
28
  apiEndpoints,
28
- $status: {
29
+ $statusFields: {
29
30
  endpoints: endpoints.map(l3EndpointToString),
30
31
  apiEndpoints: apiEndpoints.map(l4EndpointToString)
31
32
  }
32
33
  });
33
- export {
34
- cluster_dns_default as default
35
- };
34
+
35
+ export { cluster_dns_default as default };
36
+ //# sourceMappingURL=index.js.map
36
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,IAAM,EAAA,MAAA,EAAQ,SAAY,GAAA,OAAA,CAAQ,IAAI,UAAU,CAAA;AAExD,IAAM,EAAE,SAAU,EAAA,GAAI,MAAM,uBAAA;AAAA,EAC1B,OAAO,UAAW,CAAA,SAAA;AAAA,EAClB,IAAK,CAAA,IAAA;AAAA,EACL,IAAK,CAAA,cAAA;AAAA,EACL,IAAK,CAAA,SAAA;AAAA,EACL,MAAO,CAAA;AACT,CAAA;AAEA,IAAM,EAAE,SAAA,EAAW,YAAa,EAAA,GAAI,MAAM,uBAAA;AAAA,EACxC,OAAO,UAAW,CAAA,YAAA;AAAA,EAClB,IAAK,CAAA,OAAA;AAAA,EACL,IAAK,CAAA,iBAAA;AAAA,EACL,IAAK,CAAA,YAAA;AAAA,EACL,MAAO,CAAA;AACT,CAAA;AAEA,IAAO,sBAAQ,OAAQ,CAAA;AAAA,EACrB,UAAY,EAAA,MAAA,CAAO,UAAW,CAAA,KAAA,CAAM,CAAe,UAAA,MAAA;AAAA,IACjD,GAAG,UAAA;AAAA,IACH,SAAA;AAAA,IACA;AAAA,GACA,CAAA,CAAA;AAAA,EAEF,SAAA;AAAA,EACA,YAAA;AAAA,EAEA,aAAe,EAAA;AAAA,IACb,SAAA,EAAW,SAAU,CAAA,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,7 +1,8 @@
1
- // src/units/cluster-patch/index.ts
2
- import { l3EndpointToString, l4EndpointToString, updateEndpoints } from "@highstate/common";
3
- import { k8s } from "@highstate/library";
4
- import { forUnit } from "@highstate/pulumi";
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';
5
+
5
6
  var { args, inputs, outputs } = forUnit(k8s.clusterPatch);
6
7
  var endpoints = await updateEndpoints(
7
8
  inputs.k8sCluster.endpoints,
@@ -23,12 +24,12 @@ var cluster_patch_default = outputs({
23
24
  })),
24
25
  endpoints,
25
26
  apiEndpoints,
26
- $status: {
27
+ $statusFields: {
27
28
  endpoints: endpoints.map(l3EndpointToString),
28
29
  apiEndpoints: apiEndpoints.map(l4EndpointToString)
29
30
  }
30
31
  });
31
- export {
32
- cluster_patch_default as default
33
- };
32
+
33
+ export { cluster_patch_default as default };
34
+ //# sourceMappingURL=index.js.map
34
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,IAAM,EAAA,MAAA,EAAQ,SAAY,GAAA,OAAA,CAAQ,IAAI,YAAY,CAAA;AAE1D,IAAM,YAAY,MAAM,eAAA;AAAA,EACtB,OAAO,UAAW,CAAA,SAAA;AAAA,EAClB,IAAK,CAAA,SAAA;AAAA,EACL,MAAO,CAAA,SAAA;AAAA,EACP,IAAK,CAAA;AACP,CAAA;AAEA,IAAM,eAAe,MAAM,eAAA;AAAA,EACzB,OAAO,UAAW,CAAA,YAAA;AAAA,EAClB,IAAK,CAAA,YAAA;AAAA,EACL,MAAO,CAAA,YAAA;AAAA,EACP,IAAK,CAAA;AACP,CAAA;AAEA,IAAO,wBAAQ,OAAQ,CAAA;AAAA,EACrB,UAAY,EAAA,MAAA,CAAO,UAAW,CAAA,KAAA,CAAM,CAAe,UAAA,MAAA;AAAA,IACjD,GAAG,UAAA;AAAA,IACH,SAAA;AAAA,IACA;AAAA,GACA,CAAA,CAAA;AAAA,EAEF,SAAA;AAAA,EACA,YAAA;AAAA,EAEA,aAAe,EAAA;AAAA,IACb,SAAA,EAAW,SAAU,CAAA,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,15 +1,10 @@
1
- import {
2
- getProvider
3
- } from "../../chunk-Y3LZSX7I.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';
4
7
 
5
- // src/units/dns01-issuer/index.ts
6
- import { k8s } from "@highstate/library";
7
- import { forUnit, unsecret } from "@highstate/pulumi";
8
- import { cert_manager } from "@highstate/cert-manager";
9
-
10
- // src/units/dns01-issuer/solver.ts
11
- import { capitalize } from "remeda";
12
- import { toPromise } from "@highstate/pulumi";
13
8
  async function createDns01Solver(dnsProviderInput, provider2) {
14
9
  const dnsProvider = await toPromise(dnsProviderInput);
15
10
  const implName = `create${capitalize(dnsProvider.type)}Dns01Solver`;
@@ -52,7 +47,7 @@ var dns01_issuer_default = outputs({
52
47
  clusterIssuerName: name
53
48
  }
54
49
  });
55
- export {
56
- dns01_issuer_default as default
57
- };
50
+
51
+ export { dns01_issuer_default as default };
52
+ //# sourceMappingURL=index.js.map
58
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,SACwE,EAAA;AACxE,EAAM,MAAA,WAAA,GAAc,MAAM,SAAA,CAAU,gBAAgB,CAAA;AAEpD,EAAA,MAAM,QAAW,GAAA,CAAA,MAAA,EAAS,UAAW,CAAA,WAAA,CAAY,IAAI,CAAC,CAAA,WAAA,CAAA;AACtD,EAAA,MAAM,UAAc,GAAA,MAAM,OAAO,CAAA,WAAA,EAAc,YAAY,IAAI,CAAA,CAAA,CAAA;AAE/D,EAAM,MAAA,YAAA,GAAe,WAAW,QAAQ,CAAA;AAKxC,EAAO,OAAA,YAAA,CAAa,aAAaA,SAAQ,CAAA;AAC3C;;;AChBA,IAAM,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAY,GAAA,OAAA,CAAQ,IAAI,cAAc,CAAA;AAE5D,IAAM,QAAW,GAAA,MAAM,WAAY,CAAA,MAAA,CAAO,UAAU,CAAA;AAEpD,IAAI,aAAa,EAAG,CAAA,aAAA;AAAA,EAClB,IAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR;AAAA,KACF;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA;AAAA,QACJ,MAAQ,EAAA,gDAAA;AAAA,QACR,OAAA,EAAS,OAAO,YAAa,CAAA,KAAA;AAAA,UAAM,CAAA,YAAA,KACjC,YAAa,CAAA,GAAA,CAAI,CAAe,WAAA,KAAA;AAC9B,YAAO,OAAA;AAAA,cACL,KAAA,EAAO,iBAAkB,CAAA,WAAA,EAAa,QAAQ,CAAA;AAAA,cAC9C,UAAU,EAAE,QAAA,EAAU,CAAC,WAAA,CAAY,MAAM,CAAE;AAAA,aAC7C;AAAA,WACD;AAAA,SACH;AAAA,QACA,mBAAqB,EAAA;AAAA,UACnB;AAAA;AACF;AACF;AACF,GACF;AAAA,EACA,EAAE,QAAS;AACb,CAAA;AAEA,IAAO,uBAAQ,OAAQ,CAAA;AAAA,EACrB,SAAW,EAAA;AAAA,IACT,SAAW,EAAA,QAAA,CAAS,MAAO,CAAA,UAAA,CAAW,EAAE,CAAA;AAAA,IACxC,iBAAmB,EAAA;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,19 +1,12 @@
1
- import {
2
- createK8sTerminal,
3
- detectExternalIps
4
- } from "../../chunk-QLQ3QVGT.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';
5
9
 
6
- // src/units/existing-cluster/index.ts
7
- import { k8s } from "@highstate/library";
8
- import { forUnit, secret, toPromise } from "@highstate/pulumi";
9
- import { core, Provider } from "@pulumi/kubernetes";
10
- import { KubeConfig, AppsV1Api } from "@kubernetes/client-node";
11
- import {
12
- l3EndpointToString,
13
- l4EndpointToString,
14
- parseL3Endpoint,
15
- parseL4Endpoint
16
- } from "@highstate/common";
17
10
  var { name, args, secrets, outputs } = forUnit(k8s.existingCluster);
18
11
  var kubeconfigContent = await toPromise(secrets.kubeconfig.apply(JSON.stringify));
19
12
  var provider = new Provider(name, { kubeconfig: kubeconfigContent });
@@ -43,14 +36,14 @@ var existing_cluster_default = outputs({
43
36
  endpoints,
44
37
  apiEndpoints,
45
38
  $terminals: [createK8sTerminal(kubeconfigContent)],
46
- $status: {
39
+ $statusFields: {
47
40
  clusterId: kubeSystem.metadata.uid,
48
41
  cni,
49
42
  endpoints: endpoints.map(l3EndpointToString),
50
43
  apiEndpoints: apiEndpoints.map(l4EndpointToString)
51
44
  }
52
45
  });
53
- export {
54
- existing_cluster_default as default
55
- };
46
+
47
+ export { existing_cluster_default as default };
48
+ //# sourceMappingURL=index.js.map
56
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,IAAM,EAAA,OAAA,EAAS,SAAY,GAAA,OAAA,CAAQ,IAAI,eAAe,CAAA;AAEpE,IAAM,iBAAA,GAAoB,MAAM,SAAU,CAAA,OAAA,CAAQ,WAAW,KAAM,CAAA,IAAA,CAAK,SAAS,CAAC,CAAA;AAElF,IAAM,WAAW,IAAI,QAAA,CAAS,MAAM,EAAE,UAAA,EAAY,mBAAmB,CAAA;AAErE,IAAI,GAAe,GAAA,OAAA;AAEnB,IAAM,UAAA,GAAa,IAAI,UAAW,EAAA;AAClC,UAAA,CAAW,eAAe,iBAAiB,CAAA;AAE3C,IAAM,OAAA,GAAU,UAAW,CAAA,aAAA,CAAc,SAAS,CAAA;AAElD,IAAM,WAAW,MAAM,OAAA,CACpB,uBAAwB,CAAA,EAAE,MAAM,QAAU,EAAA,SAAA,EAAW,aAAc,EAAC,EACpE,IAAK,CAAA,MAAM,IAAI,CACf,CAAA,KAAA,CAAM,MAAM,KAAK,CAAA;AAEpB,IAAI,QAAU,EAAA;AACZ,EAAM,GAAA,GAAA,QAAA;AACR;AAEA,IAAM,cACJ,IAAK,CAAA,WAAA,IAAgB,MAAM,iBAAkB,CAAA,UAAA,EAAY,KAAK,iBAAiB,CAAA;AAEjF,IAAM,SAAA,GAAY,WAAY,CAAA,GAAA,CAAI,eAAe,CAAA;AACjD,IAAM,YAAe,GAAA,CAAC,eAAgB,CAAA,UAAA,CAAW,QAAS,CAAA,CAAC,CAAE,CAAA,MAAA,CAAO,OAAQ,CAAA,UAAA,EAAY,EAAE,CAAC,CAAC,CAAA;AAE5F,IAAM,UAAA,GAAa,KAAK,EAAG,CAAA,SAAA,CAAU,IAAI,aAAe,EAAA,aAAA,EAAe,EAAE,QAAA,EAAU,CAAA;AAEnF,IAAO,2BAAQ,OAAQ,CAAA;AAAA,EACrB,UAAY,EAAA;AAAA,IACV,EAAA,EAAI,WAAW,QAAS,CAAA,GAAA;AAAA,IACxB,IAAA;AAAA,IACA,GAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAQ,IAAK,CAAA,MAAA;AAAA,IACb,UAAA,EAAY,OAAO,iBAAiB;AAAA,GACtC;AAAA,EAEA,SAAA;AAAA,EACA,YAAA;AAAA,EAEA,UAAY,EAAA,CAAC,iBAAkB,CAAA,iBAAiB,CAAC,CAAA;AAAA,EAEjD,aAAe,EAAA;AAAA,IACb,SAAA,EAAW,WAAW,QAAS,CAAA,GAAA;AAAA,IAC/B,GAAA;AAAA,IACA,SAAA,EAAW,SAAU,CAAA,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,11 +1,9 @@
1
- import {
2
- getProvider
3
- } from "../../chunk-Y3LZSX7I.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';
4
6
 
5
- // src/units/gateway-api/index.ts
6
- import { k8s } from "@highstate/library";
7
- import { forUnit } from "@highstate/pulumi";
8
- import { yaml } from "@pulumi/kubernetes";
9
7
  var { inputs, outputs } = forUnit(k8s.gatewayApi);
10
8
  var provider = await getProvider(inputs.k8sCluster);
11
9
  new yaml.v2.ConfigFile(
@@ -18,7 +16,7 @@ new yaml.v2.ConfigFile(
18
16
  var gateway_api_default = outputs({
19
17
  k8sCluster: inputs.k8sCluster
20
18
  });
21
- export {
22
- gateway_api_default as default
23
- };
19
+
20
+ export { gateway_api_default as default };
21
+ //# sourceMappingURL=index.js.map
24
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,MAAQ,EAAA,OAAA,EAAY,GAAA,OAAA,CAAQ,IAAI,UAAU,CAAA;AAElD,IAAM,QAAW,GAAA,MAAM,WAAY,CAAA,MAAA,CAAO,UAAU,CAAA;AAEpD,IAAI,KAAK,EAAG,CAAA,UAAA;AAAA,EACV,aAAA;AAAA,EACA;AAAA,IACE,IAAM,EAAA;AAAA,GACR;AAAA,EACA,EAAE,QAAS;AACb,CAAA;AAEA,IAAO,sBAAQ,OAAQ,CAAA;AAAA,EACrB,YAAY,MAAO,CAAA;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.14",
3
+ "version": "0.9.16",
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",
@@ -25,19 +33,20 @@
25
33
  "scripts": {
26
34
  "build": "highstate build",
27
35
  "update-charts": "../../scripts/update-charts.sh ./assets/charts.json",
36
+ "update-images": "../../scripts/update-images.sh ./assets/images.json",
28
37
  "generate-crds": "./scripts/generate-crds.sh"
29
38
  },
30
39
  "dependencies": {
31
- "@highstate/cert-manager": "^0.9.14",
32
- "@highstate/common": "^0.9.14",
33
- "@highstate/contract": "^0.9.14",
34
- "@highstate/gateway-api": "^0.9.14",
35
- "@highstate/library": "^0.9.14",
36
- "@highstate/pulumi": "^0.9.14",
40
+ "@highstate/cert-manager": "^0.9.16",
41
+ "@highstate/common": "^0.9.16",
42
+ "@highstate/contract": "^0.9.16",
43
+ "@highstate/gateway-api": "^0.9.16",
44
+ "@highstate/library": "^0.9.16",
45
+ "@highstate/pulumi": "^0.9.16",
37
46
  "@kubernetes/client-node": "^1.1.0",
38
47
  "@pulumi/command": "^1.0.2",
39
48
  "@pulumi/kubernetes": "^4.18.0",
40
- "@pulumi/pulumi": "^3.165.0",
49
+ "@pulumi/pulumi": "^3.181.0",
41
50
  "crypto-hash": "^3.1.0",
42
51
  "deepmerge-ts": "^7.1.5",
43
52
  "glob": "^11.0.1",
@@ -46,7 +55,7 @@
46
55
  "remeda": "^2.21.0"
47
56
  },
48
57
  "devDependencies": {
49
- "@highstate/cli": "^0.9.14"
58
+ "@highstate/cli": "^0.9.16"
50
59
  },
51
- "gitHead": "8b5d1079961cc5bf9cf8ea3c10f7313384e3a2ff"
60
+ "gitHead": "458d6f1f9f6d4aec0ba75a2b2c4c01408cb9c8df"
52
61
  }
package/src/cluster.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import type { k8s } from "@highstate/library"
2
2
  import { text } from "@highstate/contract"
3
- import { getUnitInstanceName, secret, type Input, type InstanceTerminal } from "@highstate/pulumi"
3
+ import { secret, type Input, type InstanceTerminal } from "@highstate/pulumi"
4
4
  import { CoreV1Api, type KubeConfig } from "@kubernetes/client-node"
5
+ import { images } from "./shared"
5
6
 
6
7
  function isPrivateIp(ip: string) {
7
8
  const privateIpRegex = /^(10|172\.16|192\.168)\./
@@ -41,23 +42,27 @@ export async function detectExternalIps(
41
42
  export function createK8sTerminal(kubeconfig: Input<string>): InstanceTerminal {
42
43
  return {
43
44
  name: "management",
44
- title: `K8S: ${getUnitInstanceName()}`,
45
+ title: "Cluster Management",
45
46
  description: "Manage the cluster using kubectl and helm",
46
- image: "ghcr.io/exeteres/highstate/terminal-kubectl",
47
+ icon: "devicon:kubernetes",
48
+
49
+ image: images["terminal-kubectl"].image,
47
50
  command: ["bash", "/welcome.sh"],
51
+
48
52
  files: {
49
53
  "/kubeconfig": secret(kubeconfig),
50
54
 
51
55
  "/welcome.sh": text`
52
- echo "Connecting to the cluster..."
53
- kubectl cluster-info
56
+ echo "Connecting to the cluster..."
57
+ kubectl cluster-info
54
58
 
55
- echo "Use 'kubectl' and 'helm' to manage the cluster."
56
- echo
59
+ echo "Use 'kubectl' and 'helm' to manage the cluster."
60
+ echo
57
61
 
58
- exec bash
59
- `,
62
+ exec bash
63
+ `,
60
64
  },
65
+
61
66
  env: {
62
67
  KUBECONFIG: "/kubeconfig",
63
68
  },
package/src/deployment.ts CHANGED
@@ -125,6 +125,15 @@ export abstract class Deployment extends ExposableWorkload {
125
125
 
126
126
  return new ExternalDeployment(name, output(args.existing).metadata, args.cluster, opts)
127
127
  }
128
+
129
+ static wrap(
130
+ name: string,
131
+ deployment: Input<apps.v1.Deployment>,
132
+ cluster: Input<k8s.Cluster>,
133
+ opts?: ComponentResourceOptions,
134
+ ): Deployment {
135
+ return new WrappedDeployment(name, deployment, cluster, opts)
136
+ }
128
137
  }
129
138
 
130
139
  class CreatedDeployment extends Deployment {
@@ -251,3 +260,28 @@ class ExternalDeployment extends Deployment {
251
260
  )
252
261
  }
253
262
  }
263
+
264
+ class WrappedDeployment extends Deployment {
265
+ constructor(
266
+ name: string,
267
+ deployment: Input<apps.v1.Deployment>,
268
+ cluster: Input<k8s.Cluster>,
269
+ opts?: ComponentResourceOptions,
270
+ ) {
271
+ super(
272
+ "highstate:k8s:WrappedDeployment",
273
+ name,
274
+ { namespace: output(deployment).metadata.namespace, cluster },
275
+ opts,
276
+
277
+ output(cluster),
278
+ output(deployment).metadata,
279
+ output(deployment).spec,
280
+ output(deployment).status,
281
+
282
+ output(undefined),
283
+ output(undefined),
284
+ output(undefined),
285
+ )
286
+ }
287
+ }
package/src/helm.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import type { k8s } from "@highstate/library"
2
+ import type { Workload } from "./workload"
2
3
  import { resolve } from "node:path"
3
4
  import { mkdir, readFile, unlink } from "node:fs/promises"
4
- import { normalize, toPromise, type InputMap } from "@highstate/pulumi"
5
- import { core, helm, types } from "@pulumi/kubernetes"
5
+ import { normalize, toPromise, type InputMap, type InstanceTerminal } from "@highstate/pulumi"
6
+ import { apps, core, helm, types } from "@pulumi/kubernetes"
6
7
  import {
7
8
  ComponentResource,
8
9
  output,
@@ -19,6 +20,8 @@ import { NetworkPolicy, type NetworkPolicyArgs } from "./network-policy"
19
20
  import { HttpRoute, type HttpRouteArgs } from "./gateway"
20
21
  import { getProvider, mapNamespaceLikeToNamespaceName, type NamespaceLike } from "./shared"
21
22
  import { getServiceType, Service, type ServiceArgs } from "./service"
23
+ import { Deployment } from "./deployment"
24
+ import { StatefulSet } from "./stateful-set"
22
25
 
23
26
  export type ChartArgs = Omit<
24
27
  helm.v4.ChartArgs,
@@ -85,6 +88,11 @@ export class Chart extends ComponentResource {
85
88
  */
86
89
  public readonly networkPolicies: Output<NetworkPolicy[]>
87
90
 
91
+ /**
92
+ * All workloads created by the chart.
93
+ */
94
+ public readonly workloads: Output<Workload[]>
95
+
88
96
  constructor(
89
97
  private readonly name: string,
90
98
  private readonly args: ChartArgs,
@@ -185,12 +193,40 @@ export class Chart extends ComponentResource {
185
193
  }),
186
194
  )
187
195
  })
196
+
197
+ this.workloads = output(this.chart).apply(chart => {
198
+ return output(
199
+ chart.resources.apply(resources => {
200
+ return resources
201
+ .map(resource => {
202
+ if (apps.v1.Deployment.isInstance(resource)) {
203
+ return resource.metadata.name.apply(name => {
204
+ return Deployment.wrap(name, resource, this.args.cluster, this.opts)
205
+ })
206
+ }
207
+
208
+ if (apps.v1.StatefulSet.isInstance(resource)) {
209
+ return resource.metadata.name.apply(name => {
210
+ return StatefulSet.wrap(name, resource, this.args.cluster, this.opts)
211
+ })
212
+ }
213
+
214
+ return undefined
215
+ })
216
+ .filter(workload => workload !== undefined) as Output<Workload>[]
217
+ }),
218
+ )
219
+ })
188
220
  }
189
221
 
190
222
  get service(): Output<Service> {
191
223
  return this.getServiceOutput(undefined)
192
224
  }
193
225
 
226
+ get terminals(): Output<InstanceTerminal[]> {
227
+ return this.workloads.apply(workloads => output(workloads.map(workload => workload.terminal)))
228
+ }
229
+
194
230
  private readonly services = new Map<string, Service>()
195
231
 
196
232
  getServiceOutput(name: string | undefined): Output<Service> {
@@ -434,10 +434,7 @@ export abstract class NetworkPolicy extends ComponentResource {
434
434
  allowKubeApiServer: args.allowKubeApiServer ?? false,
435
435
 
436
436
  ingressRules: ingressRules.flatMap(rule => {
437
- const endpoints = normalize(
438
- args.ingressRule?.fromEndpoint,
439
- args.ingressRule?.fromEndpoints,
440
- )
437
+ const endpoints = normalize(rule?.fromEndpoint, rule?.fromEndpoints)
441
438
  const parsedEndpoints = endpoints.map(parseL34Endpoint)
442
439
 
443
440
  const endpointsNamespaces = groupBy(parsedEndpoints, endpoint => {
@@ -475,7 +472,7 @@ export abstract class NetworkPolicy extends ComponentResource {
475
472
 
476
473
  egressRules: egressRules
477
474
  .flatMap(rule => {
478
- const endpoints = normalize(args.egressRule?.toEndpoint, args.egressRule?.toEndpoints)
475
+ const endpoints = normalize(rule?.toEndpoint, rule?.toEndpoints)
479
476
  const parsedEndpoints = endpoints.map(parseL34Endpoint)
480
477
 
481
478
  const endpointsByPortsAnsNamespaces = groupBy(parsedEndpoints, endpoint => {
package/src/shared.ts CHANGED
@@ -2,6 +2,7 @@ import type { PartialKeys } from "@highstate/contract"
2
2
  import type { k8s } from "@highstate/library"
3
3
  import { interpolate, Output, output, toPromise, type Input, type Unwrap } from "@highstate/pulumi"
4
4
  import { core, Provider, types } from "@pulumi/kubernetes"
5
+ import * as images from "../assets/images.json"
5
6
  import { Namespace } from "./namespace"
6
7
 
7
8
  const providers = new Map<string, Provider>()
@@ -24,6 +25,20 @@ export function getProvider(cluster: Input<k8s.Cluster>): Promise<Provider> {
24
25
  return toPromise(provider)
25
26
  }
26
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
+
27
42
  export type NamespaceLike = core.v1.Namespace | Namespace | string
28
43
 
29
44
  export type CommonArgs = {
@@ -127,3 +142,5 @@ export function withPatchName(
127
142
  return resource.metadata.name
128
143
  })
129
144
  }
145
+
146
+ export { images }
@@ -125,6 +125,15 @@ export abstract class StatefulSet extends ExposableWorkload {
125
125
 
126
126
  return new ExternalStatefulSet(name, output(args.existing).metadata, args.cluster, opts)
127
127
  }
128
+
129
+ static wrap(
130
+ name: string,
131
+ statefulSet: Input<apps.v1.StatefulSet>,
132
+ cluster: Input<k8s.Cluster>,
133
+ opts?: ComponentResourceOptions,
134
+ ): StatefulSet {
135
+ return new WrappedStatefulSet(name, statefulSet, cluster, opts)
136
+ }
128
137
  }
129
138
 
130
139
  class CreatedStatefulSet extends StatefulSet {
@@ -262,3 +271,28 @@ class ExternalStatefulSet extends StatefulSet {
262
271
  )
263
272
  }
264
273
  }
274
+
275
+ class WrappedStatefulSet extends StatefulSet {
276
+ constructor(
277
+ name: string,
278
+ statefulSet: Input<apps.v1.StatefulSet>,
279
+ cluster: Input<k8s.Cluster>,
280
+ opts?: ComponentResourceOptions,
281
+ ) {
282
+ super(
283
+ "highstate:k8s:WrappedStatefulSet",
284
+ name,
285
+ { namespace: output(statefulSet).metadata.namespace, cluster },
286
+ opts,
287
+
288
+ output(cluster),
289
+ output(statefulSet).metadata,
290
+ output(statefulSet).spec,
291
+ output(statefulSet).status,
292
+
293
+ output(undefined),
294
+ output(undefined),
295
+ output(undefined),
296
+ )
297
+ }
298
+ }
@@ -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),