@highstate/k8s 0.11.7 → 0.12.1
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.
- package/dist/{chunk-DJE2YX64.js → chunk-3CKMDTYK.js} +3 -3
- package/dist/{chunk-DJE2YX64.js.map → chunk-3CKMDTYK.js.map} +1 -1
- package/dist/{chunk-23KLAP3X.js → chunk-3ZITTM5N.js} +8 -10
- package/dist/chunk-3ZITTM5N.js.map +1 -0
- package/dist/{chunk-5CMNORLF.js → chunk-6ACIPGW4.js} +3 -3
- package/dist/{chunk-5CMNORLF.js.map → chunk-6ACIPGW4.js.map} +1 -1
- package/dist/{chunk-SY7FPT77.js → chunk-7H4L3DFC.js} +4 -4
- package/dist/{chunk-SY7FPT77.js.map → chunk-7H4L3DFC.js.map} +1 -1
- package/dist/{chunk-77AY36LR.js → chunk-C6WHUOC3.js} +4 -4
- package/dist/{chunk-77AY36LR.js.map → chunk-C6WHUOC3.js.map} +1 -1
- package/dist/{chunk-Q35R54GK.js → chunk-EACAK6W4.js} +4 -4
- package/dist/{chunk-Q35R54GK.js.map → chunk-EACAK6W4.js.map} +1 -1
- package/dist/{chunk-4NWENXPT.js → chunk-F4JMKHHE.js} +32 -21
- package/dist/chunk-F4JMKHHE.js.map +1 -0
- package/dist/{chunk-UXEHNDI7.js → chunk-MXEIFVBL.js} +8 -10
- package/dist/chunk-MXEIFVBL.js.map +1 -0
- package/dist/{chunk-UHWJ2GDK.js → chunk-SEWB4FUB.js} +4 -4
- package/dist/{chunk-UHWJ2GDK.js.map → chunk-SEWB4FUB.js.map} +1 -1
- package/dist/{chunk-LR6OTL6T.js → chunk-VJL2BFKO.js} +3 -3
- package/dist/{chunk-LR6OTL6T.js.map → chunk-VJL2BFKO.js.map} +1 -1
- package/dist/{chunk-KCPQLLNX.js → chunk-WDNOBEI6.js} +19 -17
- package/dist/chunk-WDNOBEI6.js.map +1 -0
- package/dist/deployment-NNP3UJLZ.js +8 -0
- package/dist/{deployment-LVMOBFVO.js.map → deployment-NNP3UJLZ.js.map} +1 -1
- package/dist/highstate.manifest.json +2 -2
- package/dist/impl/gateway-route.js +5 -5
- package/dist/impl/tls-certificate.js +3 -3
- package/dist/index.js +20 -16
- package/dist/index.js.map +1 -1
- package/dist/stateful-set-XNB255LX.js +8 -0
- package/dist/{stateful-set-KKQDQMES.js.map → stateful-set-XNB255LX.js.map} +1 -1
- package/dist/units/cert-manager/index.js +7 -7
- package/dist/units/dns01-issuer/index.js +1 -1
- package/dist/units/existing-cluster/index.js +2 -2
- package/dist/units/gateway-api/index.js +1 -1
- package/dist/units/reduced-access-cluster/index.js +8 -8
- package/package.json +1 -1
- package/src/cron-job.ts +2 -0
- package/src/deployment.ts +5 -7
- package/src/helm.ts +15 -10
- package/src/job.ts +2 -0
- package/src/stateful-set.ts +5 -7
- package/src/workload.ts +28 -8
- package/dist/chunk-23KLAP3X.js.map +0 -1
- package/dist/chunk-4NWENXPT.js.map +0 -1
- package/dist/chunk-KCPQLLNX.js.map +0 -1
- package/dist/chunk-UXEHNDI7.js.map +0 -1
- package/dist/deployment-LVMOBFVO.js +0 -8
- package/dist/stateful-set-KKQDQMES.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/secret.ts"],"names":["secret"],"mappings":"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","file":"chunk-LR6OTL6T.js","sourcesContent":["import type { k8s } from \"@highstate/library\"\nimport { getOrCreate } from \"@highstate/contract\"\nimport { toPromise } from \"@highstate/pulumi\"\nimport { core, type types } from \"@pulumi/kubernetes\"\nimport {\n type ComponentResourceOptions,\n type Input,\n type Inputs,\n interpolate,\n type Output,\n output,\n} from \"@pulumi/pulumi\"\nimport { Namespace } from \"./namespace\"\nimport { getProvider, mapMetadata, ScopedResource, type ScopedResourceArgs } from \"./shared\"\n\nexport type SecretArgs = ScopedResourceArgs &\n Omit<types.input.core.v1.Secret, \"kind\" | \"metadata\" | \"apiVersion\">\n\nexport type CreateOrGetSecretArgs = SecretArgs & {\n /**\n * The secret entity to patch/retrieve.\n */\n existing: Input<k8s.ScopedResource> | undefined\n}\n\n/**\n * Represents a Kubernetes Secret resource with metadata and data.\n */\nexport abstract class Secret extends ScopedResource {\n protected constructor(\n type: string,\n name: string,\n args: Inputs,\n opts: ComponentResourceOptions | undefined,\n\n apiVersion: Output<string>,\n kind: Output<string>,\n namespace: Output<Namespace>,\n metadata: Output<types.output.meta.v1.ObjectMeta>,\n\n /**\n * The data of the underlying Kubernetes secret.\n */\n readonly data: Output<Record<string, string>>,\n\n /**\n * The stringData of the underlying Kubernetes secret.\n */\n readonly stringData: Output<Record<string, string>>,\n ) {\n super(type, name, args, opts, apiVersion, kind, namespace, metadata)\n }\n\n /**\n * The Highstate secret entity.\n */\n get entity(): Output<k8s.ScopedResource> {\n return output({\n type: \"secret\",\n clusterId: this.cluster.id,\n clusterName: this.cluster.name,\n metadata: this.metadata,\n })\n }\n\n /**\n * Gets the value of the secret field by the given key in `data`.\n *\n * Automatically decodes the base64 value.\n *\n * @param key The key of the secret.\n * @returns The value of the secret.\n */\n getValue(key: string): Output<string> {\n return this.data[key].apply(value => Buffer.from(value, \"base64\").toString())\n }\n\n /**\n * Creates a new secret.\n */\n static create(name: string, args: SecretArgs, opts?: ComponentResourceOptions): Secret {\n return new CreatedSecret(name, args, opts)\n }\n\n /**\n * Creates a new secret or patches an existing one.\n *\n * @param name The name of the resource. May not be the same as the secret name.\n * @param args The arguments to create or patch the secret with.\n * @param opts Optional resource options.\n */\n static createOrPatch(\n name: string,\n args: CreateOrGetSecretArgs,\n opts?: ComponentResourceOptions,\n ): Secret {\n if (args.existing) {\n return new SecretPatch(name, {\n ...args,\n name: output(args.existing).metadata.name,\n })\n }\n\n return new CreatedSecret(name, args, opts)\n }\n\n /**\n * Creates a new secret or gets an existing one.\n *\n * @param name The name of the resource. May not be the same as the secret name. Will not be used when existing secret is retrieved.\n * @param args The arguments to create or get the secret with.\n * @param opts Optional resource options.\n */\n static async createOrGet(\n name: string,\n args: CreateOrGetSecretArgs,\n opts?: ComponentResourceOptions,\n ): Promise<Secret> {\n if (args.existing) {\n return await Secret.forAsync(args.existing, output(args.namespace).cluster)\n }\n\n return new CreatedSecret(name, args, opts)\n }\n\n /**\n * Patches an existing secret.\n *\n * Will throw an error if the secret does not exist.\n *\n * @param name The name of the resource. May not be the same as the secret name.\n * @param args The arguments to patch the secret with.\n * @param opts Optional resource options.\n */\n static patch(name: string, args: SecretArgs, opts?: ComponentResourceOptions): Secret {\n return new SecretPatch(name, args, opts)\n }\n\n /**\n * Wraps an existing Kubernetes secret.\n */\n static wrap(name: string, args: WrappedSecretArgs, opts?: ComponentResourceOptions): Secret {\n return new WrappedSecret(name, args, opts)\n }\n\n /**\n * Gets an existing secret.\n *\n * Will throw an error if the secret does not exist.\n */\n static get(name: string, args: ExternalSecretArgs, opts?: ComponentResourceOptions): Secret {\n return new ExternalSecret(name, args, opts)\n }\n\n private static readonly secretCache = new Map<string, Secret>()\n\n /**\n * Gets an existing secret for a given entity.\n * Prefer this method over `get` when possible.\n *\n * It automatically names the resource with the following format: `{clusterName}.{namespace}.{name}.{clusterId}`.\n *\n * This method is idempotent and will return the same instance for the same entity.\n *\n * @param entity The entity to get the secret for.\n * @param cluster The cluster where the secret is located.\n */\n static for(entity: k8s.ScopedResource, cluster: Input<k8s.Cluster>): Secret {\n return getOrCreate(\n Secret.secretCache,\n `${entity.clusterName}.${entity.metadata.namespace}.${entity.metadata.name}.${entity.clusterId}`,\n name => {\n return Secret.get(name, {\n name: entity.metadata.name,\n namespace: Namespace.forResource(entity, cluster),\n })\n },\n )\n }\n\n /**\n * Gets an existing secret for a given entity.\n * Prefer this method over `get` when possible.\n *\n * It automatically names the resource with the following format: `{clusterName}.{namespace}.{name}.{clusterId}`.\n *\n * This method is idempotent and will return the same instance for the same entity.\n *\n * @param entity The entity to get the secret for.\n * @param cluster The cluster where the secret is located.\n */\n static async forAsync(\n entity: Input<k8s.ScopedResource>,\n cluster: Input<k8s.Cluster>,\n ): Promise<Secret> {\n const resolvedEntity = await toPromise(entity)\n return Secret.for(resolvedEntity, cluster)\n }\n}\n\nclass CreatedSecret extends Secret {\n constructor(name: string, args: SecretArgs, opts?: ComponentResourceOptions) {\n const secret = output(args.namespace).cluster.apply(cluster => {\n return new core.v1.Secret(\n name,\n {\n metadata: mapMetadata(args, name),\n data: args.data,\n stringData: args.stringData,\n type: args.type,\n immutable: args.immutable,\n },\n {\n ...opts,\n parent: this,\n provider: getProvider(cluster),\n },\n )\n })\n\n super(\n \"highstate:k8s:Secret\",\n name,\n args,\n opts,\n secret.apiVersion,\n secret.kind,\n output(args.namespace),\n secret.metadata,\n secret.data,\n secret.stringData,\n )\n }\n}\n\nclass SecretPatch extends Secret {\n constructor(name: string, args: SecretArgs, opts?: ComponentResourceOptions) {\n const secret = output(args.namespace).cluster.apply(cluster => {\n return new core.v1.SecretPatch(\n name,\n {\n metadata: mapMetadata(args, name),\n data: args.data,\n stringData: args.stringData,\n type: args.type,\n immutable: args.immutable,\n },\n {\n ...opts,\n parent: this,\n provider: getProvider(cluster),\n },\n )\n })\n\n super(\n \"highstate:k8s:SecretPatch\",\n name,\n args,\n opts,\n secret.apiVersion,\n secret.kind,\n output(args.namespace),\n secret.metadata,\n secret.data,\n secret.stringData,\n )\n }\n}\n\nexport type WrappedSecretArgs = {\n /**\n * The underlying Kubernetes secret to wrap.\n */\n secret: Input<core.v1.Secret>\n\n /**\n * The namespace where the secret is located.\n */\n namespace: Input<Namespace>\n}\n\nclass WrappedSecret extends Secret {\n constructor(name: string, args: WrappedSecretArgs, opts?: ComponentResourceOptions) {\n super(\n \"highstate:k8s:WrappedSecret\",\n name,\n args,\n opts,\n\n output(args.secret).apiVersion,\n output(args.secret).kind,\n output(args.namespace),\n output(args.secret).metadata,\n output(args.secret).data,\n output(args.secret).stringData,\n )\n }\n}\n\nexport type ExternalSecretArgs = {\n /**\n * The name of the secret to get.\n */\n name: Input<string>\n\n /**\n * The namespace where the secret is located.\n */\n namespace: Input<Namespace>\n}\n\nclass ExternalSecret extends Secret {\n constructor(name: string, args: ExternalSecretArgs, opts?: ComponentResourceOptions) {\n const secret = output(args.namespace).cluster.apply(async cluster => {\n const secret = core.v1.Secret.get(\n name,\n interpolate`${output(args.namespace).metadata.name}/${args.name}`,\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n\n // TODO: investigate why this needed\n const namespace = await toPromise(output(args.namespace).metadata.name)\n const resolvedName = await toPromise(args.name)\n const metadata = await toPromise(secret.metadata)\n if (!metadata) {\n throw new Error(`Secret ${resolvedName} in namespace ${namespace} not found`)\n }\n\n return secret\n })\n\n super(\n \"highstate:k8s:ExternalSecret\",\n name,\n args,\n opts,\n\n secret.apiVersion,\n secret.kind,\n output(args.namespace),\n secret.metadata,\n secret.data,\n secret.stringData,\n )\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/secret.ts"],"names":["secret"],"mappings":"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","file":"chunk-VJL2BFKO.js","sourcesContent":["import type { k8s } from \"@highstate/library\"\nimport { getOrCreate } from \"@highstate/contract\"\nimport { toPromise } from \"@highstate/pulumi\"\nimport { core, type types } from \"@pulumi/kubernetes\"\nimport {\n type ComponentResourceOptions,\n type Input,\n type Inputs,\n interpolate,\n type Output,\n output,\n} from \"@pulumi/pulumi\"\nimport { Namespace } from \"./namespace\"\nimport { getProvider, mapMetadata, ScopedResource, type ScopedResourceArgs } from \"./shared\"\n\nexport type SecretArgs = ScopedResourceArgs &\n Omit<types.input.core.v1.Secret, \"kind\" | \"metadata\" | \"apiVersion\">\n\nexport type CreateOrGetSecretArgs = SecretArgs & {\n /**\n * The secret entity to patch/retrieve.\n */\n existing: Input<k8s.ScopedResource> | undefined\n}\n\n/**\n * Represents a Kubernetes Secret resource with metadata and data.\n */\nexport abstract class Secret extends ScopedResource {\n protected constructor(\n type: string,\n name: string,\n args: Inputs,\n opts: ComponentResourceOptions | undefined,\n\n apiVersion: Output<string>,\n kind: Output<string>,\n namespace: Output<Namespace>,\n metadata: Output<types.output.meta.v1.ObjectMeta>,\n\n /**\n * The data of the underlying Kubernetes secret.\n */\n readonly data: Output<Record<string, string>>,\n\n /**\n * The stringData of the underlying Kubernetes secret.\n */\n readonly stringData: Output<Record<string, string>>,\n ) {\n super(type, name, args, opts, apiVersion, kind, namespace, metadata)\n }\n\n /**\n * The Highstate secret entity.\n */\n get entity(): Output<k8s.ScopedResource> {\n return output({\n type: \"secret\",\n clusterId: this.cluster.id,\n clusterName: this.cluster.name,\n metadata: this.metadata,\n })\n }\n\n /**\n * Gets the value of the secret field by the given key in `data`.\n *\n * Automatically decodes the base64 value.\n *\n * @param key The key of the secret.\n * @returns The value of the secret.\n */\n getValue(key: string): Output<string> {\n return this.data[key].apply(value => Buffer.from(value, \"base64\").toString())\n }\n\n /**\n * Creates a new secret.\n */\n static create(name: string, args: SecretArgs, opts?: ComponentResourceOptions): Secret {\n return new CreatedSecret(name, args, opts)\n }\n\n /**\n * Creates a new secret or patches an existing one.\n *\n * @param name The name of the resource. May not be the same as the secret name.\n * @param args The arguments to create or patch the secret with.\n * @param opts Optional resource options.\n */\n static createOrPatch(\n name: string,\n args: CreateOrGetSecretArgs,\n opts?: ComponentResourceOptions,\n ): Secret {\n if (args.existing) {\n return new SecretPatch(name, {\n ...args,\n name: output(args.existing).metadata.name,\n })\n }\n\n return new CreatedSecret(name, args, opts)\n }\n\n /**\n * Creates a new secret or gets an existing one.\n *\n * @param name The name of the resource. May not be the same as the secret name. Will not be used when existing secret is retrieved.\n * @param args The arguments to create or get the secret with.\n * @param opts Optional resource options.\n */\n static async createOrGet(\n name: string,\n args: CreateOrGetSecretArgs,\n opts?: ComponentResourceOptions,\n ): Promise<Secret> {\n if (args.existing) {\n return await Secret.forAsync(args.existing, output(args.namespace).cluster)\n }\n\n return new CreatedSecret(name, args, opts)\n }\n\n /**\n * Patches an existing secret.\n *\n * Will throw an error if the secret does not exist.\n *\n * @param name The name of the resource. May not be the same as the secret name.\n * @param args The arguments to patch the secret with.\n * @param opts Optional resource options.\n */\n static patch(name: string, args: SecretArgs, opts?: ComponentResourceOptions): Secret {\n return new SecretPatch(name, args, opts)\n }\n\n /**\n * Wraps an existing Kubernetes secret.\n */\n static wrap(name: string, args: WrappedSecretArgs, opts?: ComponentResourceOptions): Secret {\n return new WrappedSecret(name, args, opts)\n }\n\n /**\n * Gets an existing secret.\n *\n * Will throw an error if the secret does not exist.\n */\n static get(name: string, args: ExternalSecretArgs, opts?: ComponentResourceOptions): Secret {\n return new ExternalSecret(name, args, opts)\n }\n\n private static readonly secretCache = new Map<string, Secret>()\n\n /**\n * Gets an existing secret for a given entity.\n * Prefer this method over `get` when possible.\n *\n * It automatically names the resource with the following format: `{clusterName}.{namespace}.{name}.{clusterId}`.\n *\n * This method is idempotent and will return the same instance for the same entity.\n *\n * @param entity The entity to get the secret for.\n * @param cluster The cluster where the secret is located.\n */\n static for(entity: k8s.ScopedResource, cluster: Input<k8s.Cluster>): Secret {\n return getOrCreate(\n Secret.secretCache,\n `${entity.clusterName}.${entity.metadata.namespace}.${entity.metadata.name}.${entity.clusterId}`,\n name => {\n return Secret.get(name, {\n name: entity.metadata.name,\n namespace: Namespace.forResource(entity, cluster),\n })\n },\n )\n }\n\n /**\n * Gets an existing secret for a given entity.\n * Prefer this method over `get` when possible.\n *\n * It automatically names the resource with the following format: `{clusterName}.{namespace}.{name}.{clusterId}`.\n *\n * This method is idempotent and will return the same instance for the same entity.\n *\n * @param entity The entity to get the secret for.\n * @param cluster The cluster where the secret is located.\n */\n static async forAsync(\n entity: Input<k8s.ScopedResource>,\n cluster: Input<k8s.Cluster>,\n ): Promise<Secret> {\n const resolvedEntity = await toPromise(entity)\n return Secret.for(resolvedEntity, cluster)\n }\n}\n\nclass CreatedSecret extends Secret {\n constructor(name: string, args: SecretArgs, opts?: ComponentResourceOptions) {\n const secret = output(args.namespace).cluster.apply(cluster => {\n return new core.v1.Secret(\n name,\n {\n metadata: mapMetadata(args, name),\n data: args.data,\n stringData: args.stringData,\n type: args.type,\n immutable: args.immutable,\n },\n {\n ...opts,\n parent: this,\n provider: getProvider(cluster),\n },\n )\n })\n\n super(\n \"highstate:k8s:Secret\",\n name,\n args,\n opts,\n secret.apiVersion,\n secret.kind,\n output(args.namespace),\n secret.metadata,\n secret.data,\n secret.stringData,\n )\n }\n}\n\nclass SecretPatch extends Secret {\n constructor(name: string, args: SecretArgs, opts?: ComponentResourceOptions) {\n const secret = output(args.namespace).cluster.apply(cluster => {\n return new core.v1.SecretPatch(\n name,\n {\n metadata: mapMetadata(args, name),\n data: args.data,\n stringData: args.stringData,\n type: args.type,\n immutable: args.immutable,\n },\n {\n ...opts,\n parent: this,\n provider: getProvider(cluster),\n },\n )\n })\n\n super(\n \"highstate:k8s:SecretPatch\",\n name,\n args,\n opts,\n secret.apiVersion,\n secret.kind,\n output(args.namespace),\n secret.metadata,\n secret.data,\n secret.stringData,\n )\n }\n}\n\nexport type WrappedSecretArgs = {\n /**\n * The underlying Kubernetes secret to wrap.\n */\n secret: Input<core.v1.Secret>\n\n /**\n * The namespace where the secret is located.\n */\n namespace: Input<Namespace>\n}\n\nclass WrappedSecret extends Secret {\n constructor(name: string, args: WrappedSecretArgs, opts?: ComponentResourceOptions) {\n super(\n \"highstate:k8s:WrappedSecret\",\n name,\n args,\n opts,\n\n output(args.secret).apiVersion,\n output(args.secret).kind,\n output(args.namespace),\n output(args.secret).metadata,\n output(args.secret).data,\n output(args.secret).stringData,\n )\n }\n}\n\nexport type ExternalSecretArgs = {\n /**\n * The name of the secret to get.\n */\n name: Input<string>\n\n /**\n * The namespace where the secret is located.\n */\n namespace: Input<Namespace>\n}\n\nclass ExternalSecret extends Secret {\n constructor(name: string, args: ExternalSecretArgs, opts?: ComponentResourceOptions) {\n const secret = output(args.namespace).cluster.apply(async cluster => {\n const secret = core.v1.Secret.get(\n name,\n interpolate`${output(args.namespace).metadata.name}/${args.name}`,\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n\n // TODO: investigate why this needed\n const namespace = await toPromise(output(args.namespace).metadata.name)\n const resolvedName = await toPromise(args.name)\n const metadata = await toPromise(secret.metadata)\n if (!metadata) {\n throw new Error(`Secret ${resolvedName} in namespace ${namespace} not found`)\n }\n\n return secret\n })\n\n super(\n \"highstate:k8s:ExternalSecret\",\n name,\n args,\n opts,\n\n secret.apiVersion,\n secret.kind,\n output(args.namespace),\n secret.metadata,\n secret.data,\n secret.stringData,\n )\n }\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Deployment } from './chunk-
|
|
2
|
-
import { StatefulSet } from './chunk-
|
|
3
|
-
import { NetworkPolicy } from './chunk-
|
|
4
|
-
import { getServiceType, Service } from './chunk-
|
|
5
|
-
import { getNamespaceName, getProvider } from './chunk-
|
|
1
|
+
import { Deployment } from './chunk-MXEIFVBL.js';
|
|
2
|
+
import { StatefulSet } from './chunk-3ZITTM5N.js';
|
|
3
|
+
import { NetworkPolicy } from './chunk-F4JMKHHE.js';
|
|
4
|
+
import { getServiceType, Service } from './chunk-3CKMDTYK.js';
|
|
5
|
+
import { getNamespaceName, getProvider } from './chunk-SEWB4FUB.js';
|
|
6
6
|
import { mkdir, unlink, readFile } from 'node:fs/promises';
|
|
7
7
|
import { resolve } from 'node:path';
|
|
8
8
|
import { AccessPointRoute } from '@highstate/common';
|
|
@@ -151,6 +151,11 @@ var Chart = class extends ComponentResource {
|
|
|
151
151
|
* All workloads created by the chart.
|
|
152
152
|
*/
|
|
153
153
|
workloads;
|
|
154
|
+
set service(_value) {
|
|
155
|
+
}
|
|
156
|
+
// biome-ignore lint/correctness/noUnusedPrivateClassMembers: for pulumi which for some reason tries to copy all properties
|
|
157
|
+
set terminals(_value) {
|
|
158
|
+
}
|
|
154
159
|
get service() {
|
|
155
160
|
return this.getServiceOutput(void 0);
|
|
156
161
|
}
|
|
@@ -226,16 +231,13 @@ async function resolveHelmChart(manifest) {
|
|
|
226
231
|
for (const file of files) {
|
|
227
232
|
await unlink(resolve(chartsDir, file));
|
|
228
233
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
manifest.
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
"--destination",
|
|
237
|
-
chartsDir
|
|
238
|
-
]);
|
|
234
|
+
const isOci = manifest.repo.startsWith("oci://");
|
|
235
|
+
const chartRef = isOci ? `${manifest.repo.replace(/\/$/, "")}/${manifest.name}` : manifest.name;
|
|
236
|
+
const pullArgs = ["pull", chartRef, "--version", manifest.version, "--destination", chartsDir];
|
|
237
|
+
if (!isOci) {
|
|
238
|
+
pullArgs.push("--repo", manifest.repo);
|
|
239
|
+
}
|
|
240
|
+
await spawn("helm", pullArgs);
|
|
239
241
|
const content = await readFile(resolve(chartsDir, targetFileName));
|
|
240
242
|
const actualSha256 = await sha256(content);
|
|
241
243
|
if (actualSha256 !== manifest.sha256) {
|
|
@@ -260,5 +262,5 @@ function getChartService(chart, name) {
|
|
|
260
262
|
}
|
|
261
263
|
|
|
262
264
|
export { Chart, RenderedChart, getChartService, getChartServiceOutput, resolveHelmChart };
|
|
263
|
-
//# sourceMappingURL=chunk-
|
|
264
|
-
//# sourceMappingURL=chunk-
|
|
265
|
+
//# sourceMappingURL=chunk-WDNOBEI6.js.map
|
|
266
|
+
//# sourceMappingURL=chunk-WDNOBEI6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helm.ts"],"names":["namespace","args","name","services"],"mappings":"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","file":"chunk-WDNOBEI6.js","sourcesContent":["import type { UnitTerminal } from \"@highstate/contract\"\nimport type { Namespace } from \"./namespace\"\nimport type { Workload, WorkloadTerminalArgs } from \"./workload\"\nimport { mkdir, readFile, unlink } from \"node:fs/promises\"\nimport { resolve } from \"node:path\"\nimport { AccessPointRoute, type AccessPointRouteArgs } from \"@highstate/common\"\nimport {\n type InputArray,\n type InputRecord,\n normalize,\n normalizeInputs,\n toPromise,\n} from \"@highstate/pulumi\"\nimport { local } from \"@pulumi/command\"\nimport { apps, core, helm, type types } from \"@pulumi/kubernetes\"\nimport {\n ComponentResource,\n type ComponentResourceOptions,\n type Input,\n type Output,\n output,\n} from \"@pulumi/pulumi\"\nimport { sha256 } from \"crypto-hash\"\nimport { glob } from \"glob\"\nimport spawn from \"nano-spawn\"\nimport { isNonNullish, omit } from \"remeda\"\nimport { Deployment } from \"./deployment\"\nimport { NetworkPolicy, type NetworkPolicyArgs } from \"./network-policy\"\nimport { getServiceType, Service, type ServiceArgs } from \"./service\"\nimport { getNamespaceName, getProvider, type NamespaceLike } from \"./shared\"\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<Namespace>\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 args for the terminal to use.\n *\n * Will be applied to all workloads created by the chart.\n */\n terminal?: Input<WorkloadTerminalArgs>\n\n /**\n * The configuration for the access point route to create.\n */\n route?: Input<Omit<AccessPointRouteArgs, \"endpoints\" | \"customData\">>\n\n /**\n * The configuration for the access point routes to create.\n */\n routes?: InputArray<Omit<AccessPointRouteArgs, \"endpoints\" | \"customData\">>\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 access point routes created for the chart.\n */\n public readonly routes: Output<AccessPointRoute[]>\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 ? getNamespaceName(namespace) : \"default\"),\n )\n\n this.chart = output(args.namespace).cluster.apply(cluster => {\n return new helm.v4.Chart(\n name,\n omit(\n {\n ...args,\n chart: resolveHelmChart(args.chart),\n namespace,\n },\n [\"route\", \"routes\"],\n ),\n {\n ...opts,\n parent: this,\n provider: getProvider(cluster),\n\n transforms: [\n ...(opts?.transforms ?? []),\n\n async resourceArgs => {\n const namespace = await toPromise(output(args.namespace).metadata.name)\n\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, cluster),\n\n externalIPs:\n args.service?.externalIPs ?? cluster.externalIps ?? spec.externalIPs,\n },\n },\n opts: resourceArgs.opts,\n }\n }\n\n return undefined\n },\n ],\n },\n )\n })\n\n this.routes = output(normalizeInputs(args.route, args.routes)).apply(async routes => {\n if (routes.length === 0) {\n return []\n }\n\n return await Promise.all(\n routes.map(async route => {\n return new AccessPointRoute(\n name,\n {\n ...route,\n\n endpoints: this.service.endpoints,\n\n // pass the native data to the route to allow implementation to use it\n gatewayNativeData: await toPromise(this.service),\n tlsCertificateNativeData: await toPromise(args.namespace),\n },\n { ...opts, parent: this },\n )\n }),\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 new NetworkPolicy(\n name,\n {\n ...policy,\n namespace: args.namespace,\n description: `Network policy for Helm chart \"${name}\"`,\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(\n name,\n { namespace: args.namespace, deployment: resource, terminal: args.terminal },\n this.opts,\n )\n })\n }\n\n if (apps.v1.StatefulSet.isInstance(resource)) {\n return resource.metadata.name.apply(name => {\n return StatefulSet.wrap(\n name,\n {\n namespace: args.namespace,\n statefulSet: resource,\n service: this.getServiceOutput(name),\n terminal: args.terminal,\n },\n this.opts,\n )\n })\n }\n\n return undefined\n })\n .filter(isNonNullish)\n }),\n )\n })\n }\n\n private set service(_value: never) {}\n\n // biome-ignore lint/correctness/noUnusedPrivateClassMembers: for pulumi which for some reason tries to copy all properties\n private set terminals(_value: never) {}\n\n get service(): Output<Service> {\n return this.getServiceOutput(undefined)\n }\n\n get terminals(): Output<UnitTerminal[]> {\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 resolvedName,\n { namespace: args.namespace, service },\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?: InputRecord<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 ? [\"--namespace\", getNamespaceName(args.namespace)] : []),\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 const isOci = manifest.repo.startsWith(\"oci://\")\n const chartRef = isOci ? `${manifest.repo.replace(/\\/$/, \"\")}/${manifest.name}` : manifest.name\n\n const pullArgs = [\"pull\", chartRef, \"--version\", manifest.version, \"--destination\", chartsDir]\n\n if (!isOci) {\n pullArgs.push(\"--repo\", manifest.repo)\n }\n\n await spawn(\"helm\", pullArgs)\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"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { Deployment } from './chunk-MXEIFVBL.js';
|
|
2
|
+
import './chunk-F4JMKHHE.js';
|
|
3
|
+
import './chunk-3CKMDTYK.js';
|
|
4
|
+
import './chunk-VJL2BFKO.js';
|
|
5
|
+
import './chunk-SEWB4FUB.js';
|
|
6
|
+
import './chunk-PZ5AY32C.js';
|
|
7
|
+
//# sourceMappingURL=deployment-NNP3UJLZ.js.map
|
|
8
|
+
//# sourceMappingURL=deployment-NNP3UJLZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"deployment-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"deployment-NNP3UJLZ.js"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"./dist/units/existing-cluster/index.js": 2212294583,
|
|
9
9
|
"./dist/units/gateway-api/index.js": 2212294583,
|
|
10
10
|
"./dist/units/reduced-access-cluster/index.js": 2212294583,
|
|
11
|
-
"./dist/impl/gateway-route.js":
|
|
12
|
-
"./dist/impl/tls-certificate.js":
|
|
11
|
+
"./dist/impl/gateway-route.js": 221107102,
|
|
12
|
+
"./dist/impl/tls-certificate.js": 179452674
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Gateway, HttpRoute, TcpRoute, UdpRoute } from '../chunk-
|
|
2
|
-
import { Certificate } from '../chunk-
|
|
3
|
-
import { Service, l4EndpointToServicePort } from '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import { Namespace, mapMetadata, getProvider } from '../chunk-
|
|
1
|
+
import { Gateway, HttpRoute, TcpRoute, UdpRoute } from '../chunk-EACAK6W4.js';
|
|
2
|
+
import { Certificate } from '../chunk-C6WHUOC3.js';
|
|
3
|
+
import { Service, l4EndpointToServicePort } from '../chunk-3CKMDTYK.js';
|
|
4
|
+
import '../chunk-VJL2BFKO.js';
|
|
5
|
+
import { Namespace, mapMetadata, getProvider } from '../chunk-SEWB4FUB.js';
|
|
6
6
|
import '../chunk-PZ5AY32C.js';
|
|
7
7
|
import { gatewayRouteMediator, filterEndpoints } from '@highstate/common';
|
|
8
8
|
import { k8s } from '@highstate/library';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Certificate } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import { getProvider, Namespace } from '../chunk-
|
|
1
|
+
import { Certificate } from '../chunk-C6WHUOC3.js';
|
|
2
|
+
import '../chunk-VJL2BFKO.js';
|
|
3
|
+
import { getProvider, Namespace } from '../chunk-SEWB4FUB.js';
|
|
4
4
|
import '../chunk-PZ5AY32C.js';
|
|
5
5
|
import { tlsCertificateMediator } from '@highstate/common';
|
|
6
6
|
import { k8s } from '@highstate/library';
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export { Gateway, HttpRoute, TcpRoute, UdpRoute, mapHttpRouteRuleMatch, resolveBackendRef } from './chunk-
|
|
2
|
-
export { Certificate } from './chunk-
|
|
3
|
-
export { Chart, RenderedChart, getChartService, getChartServiceOutput, resolveHelmChart } from './chunk-
|
|
1
|
+
export { Gateway, HttpRoute, TcpRoute, UdpRoute, mapHttpRouteRuleMatch, resolveBackendRef } from './chunk-EACAK6W4.js';
|
|
2
|
+
export { Certificate } from './chunk-C6WHUOC3.js';
|
|
3
|
+
export { Chart, RenderedChart, getChartService, getChartServiceOutput, resolveHelmChart } from './chunk-WDNOBEI6.js';
|
|
4
4
|
export { dns01SolverMediator } from './chunk-HH2JJELM.js';
|
|
5
|
-
import { ClusterAccessScope } from './chunk-
|
|
6
|
-
export { ClusterAccessScope } from './chunk-
|
|
7
|
-
export { Deployment } from './chunk-
|
|
8
|
-
export { StatefulSet } from './chunk-
|
|
9
|
-
import { Workload, getWorkloadComponents, ConfigMap } from './chunk-
|
|
10
|
-
export { ConfigMap, ExposableWorkload, NativeNetworkPolicy, NetworkPolicy, PersistentVolumeClaim, Workload, exposableWorkloadExtraArgs, getAutoVolumeName, getBestEndpoint, getExposableWorkloadComponents, getFallbackContainerName, getWorkloadComponents, getWorkloadVolumeResourceUuid, mapContainerEnvironment, mapContainerToRaw, mapEnvironmentSource, mapVolumeMount, mapWorkloadVolume, networkPolicyMediator, podSpecDefaults, requireBestEndpoint, workloadExtraArgs } from './chunk-
|
|
11
|
-
export { Service, getServiceType, isEndpointFromCluster, l4EndpointToServicePort, mapContainerPortToServicePort, mapServiceToLabelSelector } from './chunk-
|
|
12
|
-
export { Secret } from './chunk-
|
|
13
|
-
export { createK8sTerminal, detectExternalIps } from './chunk-
|
|
14
|
-
import { commonExtraArgs, Namespace, mapMetadata, getProvider, images_exports } from './chunk-
|
|
15
|
-
export { Namespace, ScopedResource, commonExtraArgs, getNamespaceName, getProvider, getProviderAsync, images_exports as images, mapMetadata, mapNamespaceNameToSelector, mapSelectorLikeToSelector, validateCluster } from './chunk-
|
|
5
|
+
import { ClusterAccessScope } from './chunk-7H4L3DFC.js';
|
|
6
|
+
export { ClusterAccessScope } from './chunk-7H4L3DFC.js';
|
|
7
|
+
export { Deployment } from './chunk-MXEIFVBL.js';
|
|
8
|
+
export { StatefulSet } from './chunk-3ZITTM5N.js';
|
|
9
|
+
import { Workload, getWorkloadComponents, ConfigMap } from './chunk-F4JMKHHE.js';
|
|
10
|
+
export { ConfigMap, ExposableWorkload, NativeNetworkPolicy, NetworkPolicy, PersistentVolumeClaim, Workload, exposableWorkloadExtraArgs, getAutoVolumeName, getBestEndpoint, getExposableWorkloadComponents, getFallbackContainerName, getWorkloadComponents, getWorkloadVolumeResourceUuid, mapContainerEnvironment, mapContainerToRaw, mapEnvironmentSource, mapVolumeMount, mapWorkloadVolume, networkPolicyMediator, podSpecDefaults, requireBestEndpoint, workloadExtraArgs } from './chunk-F4JMKHHE.js';
|
|
11
|
+
export { Service, getServiceType, isEndpointFromCluster, l4EndpointToServicePort, mapContainerPortToServicePort, mapServiceToLabelSelector } from './chunk-3CKMDTYK.js';
|
|
12
|
+
export { Secret } from './chunk-VJL2BFKO.js';
|
|
13
|
+
export { createK8sTerminal, detectExternalIps } from './chunk-6ACIPGW4.js';
|
|
14
|
+
import { commonExtraArgs, Namespace, mapMetadata, getProvider, images_exports } from './chunk-SEWB4FUB.js';
|
|
15
|
+
export { Namespace, ScopedResource, commonExtraArgs, getNamespaceName, getProvider, getProviderAsync, images_exports as images, mapMetadata, mapNamespaceNameToSelector, mapSelectorLikeToSelector, validateCluster } from './chunk-SEWB4FUB.js';
|
|
16
16
|
import './chunk-PZ5AY32C.js';
|
|
17
17
|
import { getOrCreate, text, trimIndentation } from '@highstate/contract';
|
|
18
18
|
import { output, interpolate, toPromise, normalize } from '@highstate/pulumi';
|
|
@@ -37,6 +37,7 @@ var CronJob = class _CronJob extends Workload {
|
|
|
37
37
|
containers,
|
|
38
38
|
namespace,
|
|
39
39
|
metadata,
|
|
40
|
+
spec.jobTemplate.spec.template,
|
|
40
41
|
networkPolicy
|
|
41
42
|
);
|
|
42
43
|
this.spec = spec;
|
|
@@ -234,7 +235,8 @@ var CronJobPatch = class extends CronJob {
|
|
|
234
235
|
name,
|
|
235
236
|
args,
|
|
236
237
|
() => this,
|
|
237
|
-
opts
|
|
238
|
+
opts,
|
|
239
|
+
true
|
|
238
240
|
);
|
|
239
241
|
const cronJob = output(args.namespace).cluster.apply((cluster) => {
|
|
240
242
|
return new batch.v1.CronJobPatch(
|
|
@@ -337,6 +339,7 @@ var Job = class _Job extends Workload {
|
|
|
337
339
|
containers,
|
|
338
340
|
namespace,
|
|
339
341
|
metadata,
|
|
342
|
+
spec.template,
|
|
340
343
|
networkPolicy
|
|
341
344
|
);
|
|
342
345
|
this.spec = spec;
|
|
@@ -525,7 +528,8 @@ var JobPatch = class extends Job {
|
|
|
525
528
|
name,
|
|
526
529
|
args,
|
|
527
530
|
() => this,
|
|
528
|
-
opts
|
|
531
|
+
opts,
|
|
532
|
+
true
|
|
529
533
|
);
|
|
530
534
|
const job = output(args.namespace).cluster.apply((cluster) => {
|
|
531
535
|
return new batch.v1.JobPatch(
|