@highstate/k8s 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-22GOWZQP.js → chunk-FE4SHRAJ.js} +3 -3
- package/dist/{chunk-22GOWZQP.js.map → chunk-FE4SHRAJ.js.map} +1 -1
- package/dist/{chunk-SL5CBM3A.js → chunk-MIC2BHGS.js} +3 -3
- package/dist/{chunk-SL5CBM3A.js.map → chunk-MIC2BHGS.js.map} +1 -1
- package/dist/{chunk-XRIC6EJ3.js → chunk-P2VOUU7E.js} +37 -18
- package/dist/chunk-P2VOUU7E.js.map +1 -0
- package/dist/{chunk-ZHVKK2U6.js → chunk-RVB4WWZZ.js} +5 -5
- package/dist/{chunk-ZHVKK2U6.js.map → chunk-RVB4WWZZ.js.map} +1 -1
- package/dist/{chunk-ZBFWQHE4.js → chunk-VCXWCZ43.js} +3 -3
- package/dist/{chunk-ZBFWQHE4.js.map → chunk-VCXWCZ43.js.map} +1 -1
- package/dist/{chunk-HJKJHTJM.js → chunk-YIJUVPU2.js} +3 -3
- package/dist/{chunk-HJKJHTJM.js.map → chunk-YIJUVPU2.js.map} +1 -1
- package/dist/cron-job-NX4HD4FI.js +8 -0
- package/dist/{cron-job-LX35I6HG.js.map → cron-job-NX4HD4FI.js.map} +1 -1
- package/dist/deployment-O2LJ5WR5.js +8 -0
- package/dist/{deployment-HRJGAEJR.js.map → deployment-O2LJ5WR5.js.map} +1 -1
- package/dist/highstate.manifest.json +2 -2
- package/dist/index.js +7 -7
- package/dist/job-SYME6Y43.js +8 -0
- package/dist/job-SYME6Y43.js.map +1 -0
- package/dist/stateful-set-VJYKTQ72.js +8 -0
- package/dist/{stateful-set-LAJR5RL4.js.map → stateful-set-VJYKTQ72.js.map} +1 -1
- package/dist/units/cert-manager/index.js +4 -4
- package/package.json +4 -4
- package/src/network-policy.ts +88 -3
- package/dist/chunk-XRIC6EJ3.js.map +0 -1
- package/dist/cron-job-LX35I6HG.js +0 -8
- package/dist/deployment-HRJGAEJR.js +0 -8
- package/dist/job-J4BKBVQD.js +0 -8
- package/dist/job-J4BKBVQD.js.map +0 -1
- package/dist/stateful-set-LAJR5RL4.js +0 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Workload, getWorkloadComponents } from './chunk-
|
|
1
|
+
import { Workload, getWorkloadComponents } from './chunk-P2VOUU7E.js';
|
|
2
2
|
import { commonExtraArgs, Namespace, mapMetadata, getProvider } from './chunk-OBDQONMV.js';
|
|
3
3
|
import { getOrCreate } from '@highstate/contract';
|
|
4
4
|
import { output, interpolate, toPromise } from '@highstate/pulumi';
|
|
@@ -282,5 +282,5 @@ var ExternalJob = class extends Job {
|
|
|
282
282
|
};
|
|
283
283
|
|
|
284
284
|
export { Job };
|
|
285
|
-
//# sourceMappingURL=chunk-
|
|
286
|
-
//# sourceMappingURL=chunk-
|
|
285
|
+
//# sourceMappingURL=chunk-FE4SHRAJ.js.map
|
|
286
|
+
//# sourceMappingURL=chunk-FE4SHRAJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/job.ts"],"names":["args","podTemplate"],"mappings":"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","file":"chunk-22GOWZQP.js","sourcesContent":["import type { k8s } from \"@highstate/library\"\nimport type { Container } from \"./container\"\nimport type { NetworkPolicy } from \"./network-policy\"\nimport { getOrCreate, type UnitTerminal } from \"@highstate/contract\"\nimport {\n type ComponentResourceOptions,\n type Input,\n type Inputs,\n interpolate,\n type Output,\n output,\n toPromise,\n type Unwrap,\n} from \"@highstate/pulumi\"\nimport { batch, type types } from \"@pulumi/kubernetes\"\nimport { deepmerge } from \"deepmerge-ts\"\nimport { omit } from \"remeda\"\nimport { Namespace } from \"./namespace\"\nimport { commonExtraArgs, getProvider, mapMetadata, type ScopedResourceArgs } from \"./shared\"\nimport {\n getWorkloadComponents,\n Workload,\n type WorkloadArgs,\n type WorkloadTerminalArgs,\n} from \"./workload\"\n\nexport type JobArgs = ScopedResourceArgs &\n Omit<Partial<types.input.batch.v1.JobSpec>, \"template\"> & {\n template?: {\n metadata?: types.input.meta.v1.ObjectMeta\n spec?: Partial<types.input.core.v1.PodSpec>\n }\n } & WorkloadArgs\n\nexport type CreateOrGetJobArgs = JobArgs & {\n /**\n * The job entity to patch/retrieve.\n */\n existing: Input<k8s.NamespacedResource> | undefined\n}\n\n/**\n * Represents a Kubernetes Job resource with metadata and spec.\n */\nexport abstract class Job extends Workload {\n static apiVersion = \"batch/v1\"\n static kind = \"Job\"\n\n protected constructor(\n type: string,\n name: string,\n args: Inputs,\n opts: ComponentResourceOptions | undefined,\n\n metadata: Output<types.output.meta.v1.ObjectMeta>,\n namespace: Output<Namespace>,\n terminalArgs: Output<Unwrap<WorkloadTerminalArgs>>,\n containers: Output<Container[]>,\n networkPolicy: Output<NetworkPolicy | undefined>,\n\n /**\n * The spec of the underlying Kubernetes job.\n */\n readonly spec: Output<types.output.batch.v1.JobSpec>,\n\n /**\n * The status of the underlying Kubernetes job.\n */\n readonly status: Output<types.output.batch.v1.JobStatus>,\n ) {\n super(\n type,\n name,\n args,\n opts,\n metadata,\n namespace,\n terminalArgs,\n containers,\n spec.template,\n networkPolicy,\n )\n }\n\n protected override get templateMetadata(): Output<types.output.meta.v1.ObjectMeta> {\n return this.spec.template.metadata\n }\n\n /**\n * The Highstate job entity.\n */\n get entity(): Output<k8s.Job> {\n return output(this.entityBase)\n }\n\n protected getTerminalMeta(): Output<UnitTerminal[\"meta\"]> {\n return output({\n title: \"Job\",\n globalTitle: interpolate`Job | ${this.metadata.name}`,\n description: \"The shell inside the job.\",\n icon: \"devicon:kubernetes\",\n })\n }\n\n protected get resourceType(): string {\n return \"job\"\n }\n\n /**\n * Creates a new job.\n */\n static create(name: string, args: JobArgs, opts?: ComponentResourceOptions): Job {\n return new CreatedJob(name, args, opts)\n }\n\n /**\n * Creates a new job or patches an existing one.\n *\n * @param name The name of the resource. May not be the same as the job name.\n * @param args The arguments to create or patch the job with.\n * @param opts Optional resource options.\n */\n static createOrPatch(\n name: string,\n args: CreateOrGetJobArgs,\n opts?: ComponentResourceOptions,\n ): Job {\n if (args.existing) {\n return new JobPatch(name, {\n ...args,\n name: output(args.existing).metadata.name,\n namespace: Namespace.forResourceAsync(args.existing, output(args.namespace).cluster),\n })\n }\n\n return new CreatedJob(name, args, opts)\n }\n\n /**\n * Creates a new job or gets an existing one.\n *\n * @param name The name of the resource. May not be the same as the job name. Will not be used when existing job is retrieved.\n * @param args The arguments to create or get the job with.\n * @param opts Optional resource options.\n */\n static async createOrGet(\n name: string,\n args: CreateOrGetJobArgs,\n opts?: ComponentResourceOptions,\n ): Promise<Job> {\n if (args.existing) {\n return await Job.forAsync(args.existing, output(args.namespace).cluster)\n }\n\n return new CreatedJob(name, args, opts)\n }\n\n /**\n * Patches an existing job.\n *\n * Will throw an error if the job does not exist.\n *\n * @param name The name of the resource. May not be the same as the job name.\n * @param args The arguments to patch the job with.\n * @param opts Optional resource options.\n */\n static patch(name: string, args: JobArgs, opts?: ComponentResourceOptions): Job {\n return new JobPatch(name, args, opts)\n }\n\n /**\n * Wraps an existing Kubernetes job.\n */\n static wrap(name: string, args: WrappedJobArgs, opts?: ComponentResourceOptions): Job {\n return new WrappedJob(name, args, opts)\n }\n\n /**\n * Gets an existing job.\n *\n * Will throw an error if the job does not exist.\n */\n static get(name: string, args: ExternalJobArgs, opts?: ComponentResourceOptions): Job {\n return new ExternalJob(name, args, opts)\n }\n\n private static readonly jobCache = new Map<string, Job>()\n\n /**\n * Gets an existing job 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 job for.\n * @param cluster The cluster where the job is located.\n */\n static for(entity: k8s.NamespacedResource, cluster: Input<k8s.Cluster>): Job {\n return getOrCreate(\n Job.jobCache,\n `${entity.clusterName}.${entity.metadata.namespace}.${entity.metadata.name}.${entity.clusterId}`,\n name => {\n return Job.get(name, {\n name: entity.metadata.name,\n namespace: Namespace.forResource(entity, cluster),\n })\n },\n )\n }\n\n /**\n * Gets an existing job 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 job for.\n * @param cluster The cluster where the job is located.\n */\n static async forAsync(\n entity: Input<k8s.NamespacedResource>,\n cluster: Input<k8s.Cluster>,\n ): Promise<Job> {\n const resolvedEntity = await toPromise(entity)\n return Job.for(resolvedEntity, cluster)\n }\n}\n\nconst jobExtraArgs = [...commonExtraArgs, \"container\", \"containers\"] as const\n\nclass CreatedJob extends Job {\n constructor(name: string, args: JobArgs, opts?: ComponentResourceOptions) {\n const { podTemplate, containers, networkPolicy } = getWorkloadComponents(\n name,\n args,\n () => this,\n opts,\n )\n\n const job = output(args.namespace).cluster.apply(cluster => {\n return new batch.v1.Job(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: output({ args, podTemplate }).apply(({ args, podTemplate }) => {\n return deepmerge(\n {\n template: deepmerge(\n {\n spec: {\n restartPolicy: \"Never\",\n },\n },\n podTemplate,\n ),\n },\n omit(args, jobExtraArgs) as types.input.batch.v1.JobSpec,\n )\n }),\n },\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:Job\",\n name,\n args,\n opts,\n job.metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n containers,\n networkPolicy,\n job.spec,\n job.status,\n )\n }\n}\n\nclass JobPatch extends Job {\n constructor(name: string, args: JobArgs, opts?: ComponentResourceOptions) {\n const { podTemplate, containers, networkPolicy } = getWorkloadComponents(\n name,\n args,\n () => this,\n opts,\n true,\n )\n\n const job = output(args.namespace).cluster.apply(cluster => {\n return new batch.v1.JobPatch(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: output({ args, podTemplate }).apply(({ args, podTemplate }) => {\n return deepmerge(\n { template: podTemplate } satisfies types.input.batch.v1.JobSpec,\n omit(args, jobExtraArgs) as types.input.batch.v1.JobSpec,\n )\n }),\n },\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:JobPatch\",\n name,\n args,\n opts,\n job.metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n containers,\n networkPolicy,\n job.spec,\n job.status,\n )\n\n this.registerOutputs({\n metadata: this.metadata,\n spec: this.spec,\n status: this.status,\n })\n }\n}\n\nexport type WrappedJobArgs = {\n /**\n * The underlying Kubernetes job to wrap.\n */\n job: Input<batch.v1.Job>\n\n /**\n * The namespace where the job is located.\n */\n namespace: Input<Namespace>\n\n /**\n * The args for the terminal to use.\n */\n terminal?: Input<WorkloadTerminalArgs>\n}\n\nclass WrappedJob extends Job {\n constructor(name: string, args: WrappedJobArgs, opts?: ComponentResourceOptions) {\n super(\n \"highstate:k8s:WrappedJob\",\n name,\n args,\n opts,\n\n output(args.job).metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n output([]),\n output(undefined),\n\n output(args.job).spec,\n output(args.job).status,\n )\n }\n}\n\nexport type ExternalJobArgs = {\n /**\n * The name of the job to get.\n */\n name: Input<string>\n\n /**\n * The namespace where the job is located.\n */\n namespace: Input<Namespace>\n}\n\nclass ExternalJob extends Job {\n constructor(name: string, args: ExternalJobArgs, opts?: ComponentResourceOptions) {\n const job = output(args.namespace).cluster.apply(cluster => {\n return batch.v1.Job.get(\n name,\n interpolate`${output(args.namespace).metadata.name}/${args.name}`,\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:ExternalJob\",\n name,\n args,\n opts,\n\n job.metadata,\n output(args.namespace),\n output({}),\n output([]),\n output(undefined),\n\n job.spec,\n job.status,\n )\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/job.ts"],"names":["args","podTemplate"],"mappings":"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","file":"chunk-FE4SHRAJ.js","sourcesContent":["import type { k8s } from \"@highstate/library\"\nimport type { Container } from \"./container\"\nimport type { NetworkPolicy } from \"./network-policy\"\nimport { getOrCreate, type UnitTerminal } from \"@highstate/contract\"\nimport {\n type ComponentResourceOptions,\n type Input,\n type Inputs,\n interpolate,\n type Output,\n output,\n toPromise,\n type Unwrap,\n} from \"@highstate/pulumi\"\nimport { batch, type types } from \"@pulumi/kubernetes\"\nimport { deepmerge } from \"deepmerge-ts\"\nimport { omit } from \"remeda\"\nimport { Namespace } from \"./namespace\"\nimport { commonExtraArgs, getProvider, mapMetadata, type ScopedResourceArgs } from \"./shared\"\nimport {\n getWorkloadComponents,\n Workload,\n type WorkloadArgs,\n type WorkloadTerminalArgs,\n} from \"./workload\"\n\nexport type JobArgs = ScopedResourceArgs &\n Omit<Partial<types.input.batch.v1.JobSpec>, \"template\"> & {\n template?: {\n metadata?: types.input.meta.v1.ObjectMeta\n spec?: Partial<types.input.core.v1.PodSpec>\n }\n } & WorkloadArgs\n\nexport type CreateOrGetJobArgs = JobArgs & {\n /**\n * The job entity to patch/retrieve.\n */\n existing: Input<k8s.NamespacedResource> | undefined\n}\n\n/**\n * Represents a Kubernetes Job resource with metadata and spec.\n */\nexport abstract class Job extends Workload {\n static apiVersion = \"batch/v1\"\n static kind = \"Job\"\n\n protected constructor(\n type: string,\n name: string,\n args: Inputs,\n opts: ComponentResourceOptions | undefined,\n\n metadata: Output<types.output.meta.v1.ObjectMeta>,\n namespace: Output<Namespace>,\n terminalArgs: Output<Unwrap<WorkloadTerminalArgs>>,\n containers: Output<Container[]>,\n networkPolicy: Output<NetworkPolicy | undefined>,\n\n /**\n * The spec of the underlying Kubernetes job.\n */\n readonly spec: Output<types.output.batch.v1.JobSpec>,\n\n /**\n * The status of the underlying Kubernetes job.\n */\n readonly status: Output<types.output.batch.v1.JobStatus>,\n ) {\n super(\n type,\n name,\n args,\n opts,\n metadata,\n namespace,\n terminalArgs,\n containers,\n spec.template,\n networkPolicy,\n )\n }\n\n protected override get templateMetadata(): Output<types.output.meta.v1.ObjectMeta> {\n return this.spec.template.metadata\n }\n\n /**\n * The Highstate job entity.\n */\n get entity(): Output<k8s.Job> {\n return output(this.entityBase)\n }\n\n protected getTerminalMeta(): Output<UnitTerminal[\"meta\"]> {\n return output({\n title: \"Job\",\n globalTitle: interpolate`Job | ${this.metadata.name}`,\n description: \"The shell inside the job.\",\n icon: \"devicon:kubernetes\",\n })\n }\n\n protected get resourceType(): string {\n return \"job\"\n }\n\n /**\n * Creates a new job.\n */\n static create(name: string, args: JobArgs, opts?: ComponentResourceOptions): Job {\n return new CreatedJob(name, args, opts)\n }\n\n /**\n * Creates a new job or patches an existing one.\n *\n * @param name The name of the resource. May not be the same as the job name.\n * @param args The arguments to create or patch the job with.\n * @param opts Optional resource options.\n */\n static createOrPatch(\n name: string,\n args: CreateOrGetJobArgs,\n opts?: ComponentResourceOptions,\n ): Job {\n if (args.existing) {\n return new JobPatch(name, {\n ...args,\n name: output(args.existing).metadata.name,\n namespace: Namespace.forResourceAsync(args.existing, output(args.namespace).cluster),\n })\n }\n\n return new CreatedJob(name, args, opts)\n }\n\n /**\n * Creates a new job or gets an existing one.\n *\n * @param name The name of the resource. May not be the same as the job name. Will not be used when existing job is retrieved.\n * @param args The arguments to create or get the job with.\n * @param opts Optional resource options.\n */\n static async createOrGet(\n name: string,\n args: CreateOrGetJobArgs,\n opts?: ComponentResourceOptions,\n ): Promise<Job> {\n if (args.existing) {\n return await Job.forAsync(args.existing, output(args.namespace).cluster)\n }\n\n return new CreatedJob(name, args, opts)\n }\n\n /**\n * Patches an existing job.\n *\n * Will throw an error if the job does not exist.\n *\n * @param name The name of the resource. May not be the same as the job name.\n * @param args The arguments to patch the job with.\n * @param opts Optional resource options.\n */\n static patch(name: string, args: JobArgs, opts?: ComponentResourceOptions): Job {\n return new JobPatch(name, args, opts)\n }\n\n /**\n * Wraps an existing Kubernetes job.\n */\n static wrap(name: string, args: WrappedJobArgs, opts?: ComponentResourceOptions): Job {\n return new WrappedJob(name, args, opts)\n }\n\n /**\n * Gets an existing job.\n *\n * Will throw an error if the job does not exist.\n */\n static get(name: string, args: ExternalJobArgs, opts?: ComponentResourceOptions): Job {\n return new ExternalJob(name, args, opts)\n }\n\n private static readonly jobCache = new Map<string, Job>()\n\n /**\n * Gets an existing job 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 job for.\n * @param cluster The cluster where the job is located.\n */\n static for(entity: k8s.NamespacedResource, cluster: Input<k8s.Cluster>): Job {\n return getOrCreate(\n Job.jobCache,\n `${entity.clusterName}.${entity.metadata.namespace}.${entity.metadata.name}.${entity.clusterId}`,\n name => {\n return Job.get(name, {\n name: entity.metadata.name,\n namespace: Namespace.forResource(entity, cluster),\n })\n },\n )\n }\n\n /**\n * Gets an existing job 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 job for.\n * @param cluster The cluster where the job is located.\n */\n static async forAsync(\n entity: Input<k8s.NamespacedResource>,\n cluster: Input<k8s.Cluster>,\n ): Promise<Job> {\n const resolvedEntity = await toPromise(entity)\n return Job.for(resolvedEntity, cluster)\n }\n}\n\nconst jobExtraArgs = [...commonExtraArgs, \"container\", \"containers\"] as const\n\nclass CreatedJob extends Job {\n constructor(name: string, args: JobArgs, opts?: ComponentResourceOptions) {\n const { podTemplate, containers, networkPolicy } = getWorkloadComponents(\n name,\n args,\n () => this,\n opts,\n )\n\n const job = output(args.namespace).cluster.apply(cluster => {\n return new batch.v1.Job(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: output({ args, podTemplate }).apply(({ args, podTemplate }) => {\n return deepmerge(\n {\n template: deepmerge(\n {\n spec: {\n restartPolicy: \"Never\",\n },\n },\n podTemplate,\n ),\n },\n omit(args, jobExtraArgs) as types.input.batch.v1.JobSpec,\n )\n }),\n },\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:Job\",\n name,\n args,\n opts,\n job.metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n containers,\n networkPolicy,\n job.spec,\n job.status,\n )\n }\n}\n\nclass JobPatch extends Job {\n constructor(name: string, args: JobArgs, opts?: ComponentResourceOptions) {\n const { podTemplate, containers, networkPolicy } = getWorkloadComponents(\n name,\n args,\n () => this,\n opts,\n true,\n )\n\n const job = output(args.namespace).cluster.apply(cluster => {\n return new batch.v1.JobPatch(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: output({ args, podTemplate }).apply(({ args, podTemplate }) => {\n return deepmerge(\n { template: podTemplate } satisfies types.input.batch.v1.JobSpec,\n omit(args, jobExtraArgs) as types.input.batch.v1.JobSpec,\n )\n }),\n },\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:JobPatch\",\n name,\n args,\n opts,\n job.metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n containers,\n networkPolicy,\n job.spec,\n job.status,\n )\n\n this.registerOutputs({\n metadata: this.metadata,\n spec: this.spec,\n status: this.status,\n })\n }\n}\n\nexport type WrappedJobArgs = {\n /**\n * The underlying Kubernetes job to wrap.\n */\n job: Input<batch.v1.Job>\n\n /**\n * The namespace where the job is located.\n */\n namespace: Input<Namespace>\n\n /**\n * The args for the terminal to use.\n */\n terminal?: Input<WorkloadTerminalArgs>\n}\n\nclass WrappedJob extends Job {\n constructor(name: string, args: WrappedJobArgs, opts?: ComponentResourceOptions) {\n super(\n \"highstate:k8s:WrappedJob\",\n name,\n args,\n opts,\n\n output(args.job).metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n output([]),\n output(undefined),\n\n output(args.job).spec,\n output(args.job).status,\n )\n }\n}\n\nexport type ExternalJobArgs = {\n /**\n * The name of the job to get.\n */\n name: Input<string>\n\n /**\n * The namespace where the job is located.\n */\n namespace: Input<Namespace>\n}\n\nclass ExternalJob extends Job {\n constructor(name: string, args: ExternalJobArgs, opts?: ComponentResourceOptions) {\n const job = output(args.namespace).cluster.apply(cluster => {\n return batch.v1.Job.get(\n name,\n interpolate`${output(args.namespace).metadata.name}/${args.name}`,\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:ExternalJob\",\n name,\n args,\n opts,\n\n job.metadata,\n output(args.namespace),\n output({}),\n output([]),\n output(undefined),\n\n job.spec,\n job.status,\n )\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Workload, getWorkloadComponents } from './chunk-
|
|
1
|
+
import { Workload, getWorkloadComponents } from './chunk-P2VOUU7E.js';
|
|
2
2
|
import { commonExtraArgs, Namespace, mapMetadata, getProvider } from './chunk-OBDQONMV.js';
|
|
3
3
|
import { getOrCreate } from '@highstate/contract';
|
|
4
4
|
import { output, interpolate, toPromise } from '@highstate/pulumi';
|
|
@@ -297,5 +297,5 @@ var ExternalCronJob = class extends CronJob {
|
|
|
297
297
|
};
|
|
298
298
|
|
|
299
299
|
export { CronJob };
|
|
300
|
-
//# sourceMappingURL=chunk-
|
|
301
|
-
//# sourceMappingURL=chunk-
|
|
300
|
+
//# sourceMappingURL=chunk-MIC2BHGS.js.map
|
|
301
|
+
//# sourceMappingURL=chunk-MIC2BHGS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cron-job.ts"],"names":["args","podTemplate"],"mappings":"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","file":"chunk-SL5CBM3A.js","sourcesContent":["import type { UnitTerminal } from \"@highstate/contract\"\nimport type { k8s } from \"@highstate/library\"\nimport type { Container } from \"./container\"\nimport type { NetworkPolicy } from \"./network-policy\"\nimport { getOrCreate } from \"@highstate/contract\"\nimport {\n type ComponentResourceOptions,\n type Input,\n type Inputs,\n interpolate,\n type Output,\n output,\n toPromise,\n type Unwrap,\n} from \"@highstate/pulumi\"\nimport { batch, type types } from \"@pulumi/kubernetes\"\nimport { deepmerge } from \"deepmerge-ts\"\nimport { omit } from \"remeda\"\nimport { Namespace } from \"./namespace\"\nimport { commonExtraArgs, getProvider, mapMetadata, type ScopedResourceArgs } from \"./shared\"\nimport {\n getWorkloadComponents,\n Workload,\n type WorkloadArgs,\n type WorkloadTerminalArgs,\n} from \"./workload\"\n\nexport type CronJobArgs = ScopedResourceArgs &\n Omit<Partial<types.input.batch.v1.CronJobSpec>, \"jobTemplate\"> & {\n jobTemplate?: {\n metadata?: types.input.meta.v1.ObjectMeta\n spec?: Omit<types.input.batch.v1.JobSpec, \"template\"> & {\n template?: {\n metadata?: types.input.meta.v1.ObjectMeta\n spec?: Partial<types.input.core.v1.PodSpec>\n }\n }\n }\n } & WorkloadArgs\n\nexport type CreateOrGetCronJobArgs = CronJobArgs & {\n /**\n * The cron job entity to patch/retrieve.\n */\n existing: Input<k8s.NamespacedResource> | undefined\n}\n\n/**\n * Represents a Kubernetes CronJob resource with metadata and spec.\n */\nexport abstract class CronJob extends Workload {\n static apiVersion = \"batch/v1\"\n static kind = \"CronJob\"\n\n protected constructor(\n type: string,\n name: string,\n args: Inputs,\n opts: ComponentResourceOptions | undefined,\n\n metadata: Output<types.output.meta.v1.ObjectMeta>,\n namespace: Output<Namespace>,\n terminalArgs: Output<Unwrap<WorkloadTerminalArgs>>,\n containers: Output<Container[]>,\n networkPolicy: Output<NetworkPolicy | undefined>,\n\n /**\n * The spec of the underlying Kubernetes cron job.\n */\n readonly spec: Output<types.output.batch.v1.CronJobSpec>,\n\n /**\n * The status of the underlying Kubernetes cron job.\n */\n readonly status: Output<types.output.batch.v1.CronJobStatus>,\n ) {\n super(\n type,\n name,\n args,\n opts,\n metadata,\n namespace,\n terminalArgs,\n containers,\n spec.jobTemplate.spec.template,\n networkPolicy,\n )\n }\n\n protected override get templateMetadata(): Output<types.output.meta.v1.ObjectMeta> {\n return this.spec.jobTemplate.spec.template.metadata\n }\n\n /**\n * The Highstate cron job entity.\n */\n get entity(): Output<k8s.CronJob> {\n return output(this.entityBase)\n }\n\n protected getTerminalMeta(): Output<UnitTerminal[\"meta\"]> {\n return output({\n title: \"CronJob\",\n globalTitle: interpolate`CronJob | ${this.metadata.name}`,\n description: \"The shell inside the cron job.\",\n icon: \"devicon:kubernetes\",\n })\n }\n\n protected get resourceType(): string {\n return \"cronjob\"\n }\n\n /**\n * Creates a new cron job.\n */\n static create(name: string, args: CronJobArgs, opts?: ComponentResourceOptions): CronJob {\n return new CreatedCronJob(name, args, opts)\n }\n\n /**\n * Creates a new cron job or patches an existing one.\n *\n * @param name The name of the resource. May not be the same as the cron job name.\n * @param args The arguments to create or patch the cron job with.\n * @param opts Optional resource options.\n */\n static createOrPatch(\n name: string,\n args: CreateOrGetCronJobArgs,\n opts?: ComponentResourceOptions,\n ): CronJob {\n if (args.existing) {\n return new CronJobPatch(name, {\n ...args,\n name: output(args.existing).metadata.name,\n namespace: Namespace.forResourceAsync(args.existing, output(args.namespace).cluster),\n })\n }\n\n return new CreatedCronJob(name, args, opts)\n }\n\n /**\n * Creates a new cron job or gets an existing one.\n *\n * @param name The name of the resource. May not be the same as the cron job name. Will not be used when existing cron job is retrieved.\n * @param args The arguments to create or get the cron job with.\n * @param opts Optional resource options.\n */\n static async createOrGet(\n name: string,\n args: CreateOrGetCronJobArgs,\n opts?: ComponentResourceOptions,\n ): Promise<CronJob> {\n if (args.existing) {\n return await CronJob.forAsync(args.existing, output(args.namespace).cluster)\n }\n\n return new CreatedCronJob(name, args, opts)\n }\n\n /**\n * Patches an existing cron job.\n *\n * Will throw an error if the cron job does not exist.\n *\n * @param name The name of the resource. May not be the same as the cron job name.\n * @param args The arguments to patch the cron job with.\n * @param opts Optional resource options.\n */\n static patch(name: string, args: CronJobArgs, opts?: ComponentResourceOptions): CronJob {\n return new CronJobPatch(name, args, opts)\n }\n\n /**\n * Wraps an existing Kubernetes cron job.\n */\n static wrap(name: string, args: WrappedCronJobArgs, opts?: ComponentResourceOptions): CronJob {\n return new WrappedCronJob(name, args, opts)\n }\n\n /**\n * Gets an existing cron job.\n *\n * Will throw an error if the cron job does not exist.\n */\n static get(name: string, args: ExternalCronJobArgs, opts?: ComponentResourceOptions): CronJob {\n return new ExternalCronJob(name, args, opts)\n }\n\n private static readonly cronJobCache = new Map<string, CronJob>()\n\n /**\n * Gets an existing cron job 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 cron job for.\n * @param cluster The cluster where the cron job is located.\n */\n static for(entity: k8s.NamespacedResource, cluster: Input<k8s.Cluster>): CronJob {\n return getOrCreate(\n CronJob.cronJobCache,\n `${entity.clusterName}.${entity.metadata.namespace}.${entity.metadata.name}.${entity.clusterId}`,\n name => {\n return CronJob.get(name, {\n name: entity.metadata.name,\n namespace: Namespace.forResource(entity, cluster),\n })\n },\n )\n }\n\n /**\n * Gets an existing cron job 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 cron job for.\n * @param cluster The cluster where the cron job is located.\n */\n static async forAsync(\n entity: Input<k8s.NamespacedResource>,\n cluster: Input<k8s.Cluster>,\n ): Promise<CronJob> {\n const resolvedEntity = await toPromise(entity)\n return CronJob.for(resolvedEntity, cluster)\n }\n}\n\nconst cronJobExtraArgs = [...commonExtraArgs, \"container\", \"containers\"] as const\n\nclass CreatedCronJob extends CronJob {\n constructor(name: string, args: CronJobArgs, opts?: ComponentResourceOptions) {\n const { podTemplate, containers, networkPolicy } = getWorkloadComponents(\n name,\n args,\n () => this,\n opts,\n )\n\n const cronJob = output(args.namespace).cluster.apply(cluster => {\n return new batch.v1.CronJob(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: output({ args, podTemplate }).apply(({ args, podTemplate }) => {\n return deepmerge(\n {\n jobTemplate: {\n spec: {\n template: deepmerge(\n {\n spec: {\n restartPolicy: \"Never\",\n },\n },\n podTemplate,\n ),\n },\n },\n schedule: args.schedule,\n },\n omit(args, cronJobExtraArgs) as types.input.batch.v1.CronJobSpec,\n )\n }),\n },\n {\n ...opts,\n parent: this,\n provider: getProvider(cluster),\n },\n )\n })\n\n super(\n \"highstate:k8s:CronJob\",\n name,\n args,\n opts,\n cronJob.metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n containers,\n networkPolicy,\n cronJob.spec,\n cronJob.status,\n )\n }\n}\n\nclass CronJobPatch extends CronJob {\n constructor(name: string, args: CronJobArgs, opts?: ComponentResourceOptions) {\n const { podTemplate, containers, networkPolicy } = getWorkloadComponents(\n name,\n args,\n () => this,\n opts,\n true,\n )\n\n const cronJob = output(args.namespace).cluster.apply(cluster => {\n return new batch.v1.CronJobPatch(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: output({ args, podTemplate }).apply(({ args, podTemplate }) => {\n return deepmerge(\n {\n jobTemplate: {\n spec: {\n template: podTemplate,\n },\n },\n schedule: args.schedule!,\n } satisfies types.input.batch.v1.CronJobSpec,\n omit(args, cronJobExtraArgs) as types.input.batch.v1.CronJobSpec,\n )\n }),\n },\n {\n ...opts,\n parent: this,\n provider: getProvider(cluster),\n },\n )\n })\n\n super(\n \"highstate:k8s:CronJobPatch\",\n name,\n args,\n opts,\n cronJob.metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n containers,\n networkPolicy,\n cronJob.spec,\n cronJob.status,\n )\n }\n}\n\nexport type WrappedCronJobArgs = {\n /**\n * The underlying Kubernetes cron job to wrap.\n */\n cronJob: Input<batch.v1.CronJob>\n\n /**\n * The namespace where the cron job is located.\n */\n namespace: Input<Namespace>\n\n /**\n * The args for the terminal to use.\n */\n terminal?: Input<WorkloadTerminalArgs>\n}\n\nclass WrappedCronJob extends CronJob {\n constructor(name: string, args: WrappedCronJobArgs, opts?: ComponentResourceOptions) {\n super(\n \"highstate:k8s:WrappedCronJob\",\n name,\n args,\n opts,\n\n output(args.cronJob).metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n output([]),\n output(undefined),\n\n output(args.cronJob).spec,\n output(args.cronJob).status,\n )\n }\n}\n\nexport type ExternalCronJobArgs = {\n /**\n * The name of the cron job to get.\n */\n name: Input<string>\n\n /**\n * The namespace where the cron job is located.\n */\n namespace: Input<Namespace>\n}\n\nclass ExternalCronJob extends CronJob {\n constructor(name: string, args: ExternalCronJobArgs, opts?: ComponentResourceOptions) {\n const cronJob = output(args.namespace).cluster.apply(cluster => {\n return batch.v1.CronJob.get(\n name,\n interpolate`${output(args.namespace).metadata.name}/${args.name}`,\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:ExternalCronJob\",\n name,\n args,\n opts,\n\n cronJob.metadata,\n output(args.namespace),\n output({}),\n output([]),\n output(undefined),\n\n cronJob.spec,\n cronJob.status,\n )\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/cron-job.ts"],"names":["args","podTemplate"],"mappings":";;;;;;;;AAkDO,IAAe,OAAA,GAAf,MAAe,QAAA,SAAgB,QAAA,CAAS;AAAA,EAInC,WAAA,CACR,IAAA,EACA,IAAA,EACA,IAAA,EACA,IAAA,EAEA,QAAA,EACA,SAAA,EACA,YAAA,EACA,UAAA,EACA,aAAA,EAKS,IAAA,EAKA,MAAA,EACT;AACA,IAAA,KAAA;AAAA,MACE,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAA,CAAK,YAAY,IAAA,CAAK,QAAA;AAAA,MACtB;AAAA,KACF;AAlBS,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAKA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAcX;AAAA,EArCA,OAAO,UAAA,GAAa,UAAA;AAAA,EACpB,OAAO,IAAA,GAAO,SAAA;AAAA,EAsCd,IAAuB,gBAAA,GAA4D;AACjF,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,QAAA,CAAS,QAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAA,GAA8B;AAChC,IAAA,OAAO,MAAA,CAAO,KAAK,UAAU,CAAA;AAAA,EAC/B;AAAA,EAEU,eAAA,GAAgD;AACxD,IAAA,OAAO,MAAA,CAAO;AAAA,MACZ,KAAA,EAAO,SAAA;AAAA,MACP,WAAA,EAAa,WAAA,CAAA,UAAA,EAAwB,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA,CAAA;AAAA,MACvD,WAAA,EAAa,gCAAA;AAAA,MACb,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA,EAEA,IAAc,YAAA,GAAuB;AACnC,IAAA,OAAO,SAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,MAAA,CAAO,IAAA,EAAc,IAAA,EAAmB,IAAA,EAA0C;AACvF,IAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,aAAA,CACL,IAAA,EACA,IAAA,EACA,IAAA,EACS;AACT,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,OAAO,IAAI,aAAa,IAAA,EAAM;AAAA,QAC5B,GAAG,IAAA;AAAA,QACH,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,QAAQ,EAAE,QAAA,CAAS,IAAA;AAAA,QACrC,SAAA,EAAW,UAAU,gBAAA,CAAiB,IAAA,CAAK,UAAU,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAO;AAAA,OACpF,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,aAAa,WAAA,CACX,IAAA,EACA,IAAA,EACA,IAAA,EACkB;AAClB,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,OAAO,MAAM,SAAQ,QAAA,CAAS,IAAA,CAAK,UAAU,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAO,CAAA;AAAA,IAC7E;AAEA,IAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,KAAA,CAAM,IAAA,EAAc,IAAA,EAAmB,IAAA,EAA0C;AACtF,IAAA,OAAO,IAAI,YAAA,CAAa,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,IAAA,CAAK,IAAA,EAAc,IAAA,EAA0B,IAAA,EAA0C;AAC5F,IAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,GAAA,CAAI,IAAA,EAAc,IAAA,EAA2B,IAAA,EAA0C;AAC5F,IAAA,OAAO,IAAI,eAAA,CAAgB,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,EAC7C;AAAA,EAEA,OAAwB,YAAA,mBAAe,IAAI,GAAA,EAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAahE,OAAO,GAAA,CAAI,MAAA,EAAgC,OAAA,EAAsC;AAC/E,IAAA,OAAO,WAAA;AAAA,MACL,QAAA,CAAQ,YAAA;AAAA,MACR,CAAA,EAAG,MAAA,CAAO,WAAW,CAAA,CAAA,EAAI,MAAA,CAAO,QAAA,CAAS,SAAS,CAAA,CAAA,EAAI,MAAA,CAAO,QAAA,CAAS,IAAI,CAAA,CAAA,EAAI,OAAO,SAAS,CAAA,CAAA;AAAA,MAC9F,CAAA,IAAA,KAAQ;AACN,QAAA,OAAO,QAAA,CAAQ,IAAI,IAAA,EAAM;AAAA,UACvB,IAAA,EAAM,OAAO,QAAA,CAAS,IAAA;AAAA,UACtB,SAAA,EAAW,SAAA,CAAU,WAAA,CAAY,MAAA,EAAQ,OAAO;AAAA,SACjD,CAAA;AAAA,MACH;AAAA,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,aAAa,QAAA,CACX,MAAA,EACA,OAAA,EACkB;AAClB,IAAA,MAAM,cAAA,GAAiB,MAAM,SAAA,CAAU,MAAM,CAAA;AAC7C,IAAA,OAAO,QAAA,CAAQ,GAAA,CAAI,cAAA,EAAgB,OAAO,CAAA;AAAA,EAC5C;AACF;AAEA,IAAM,gBAAA,GAAmB,CAAC,GAAG,eAAA,EAAiB,aAAa,YAAY,CAAA;AAEvE,IAAM,cAAA,GAAN,cAA6B,OAAA,CAAQ;AAAA,EACnC,WAAA,CAAY,IAAA,EAAc,IAAA,EAAmB,IAAA,EAAiC;AAC5E,IAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,aAAA,EAAc,GAAI,qBAAA;AAAA,MACjD,IAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAM,IAAA;AAAA,MACN;AAAA,KACF;AAEA,IAAA,MAAM,UAAU,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,OAAA,KAAW;AAC9D,MAAA,OAAO,IAAI,MAAM,EAAA,CAAG,OAAA;AAAA,QAClB,IAAA;AAAA,QACA;AAAA,UACE,QAAA,EAAU,WAAA,CAAY,IAAA,EAAM,IAAI,CAAA;AAAA,UAChC,IAAA,EAAM,MAAA,CAAO,EAAE,IAAA,EAAM,aAAa,CAAA,CAAE,KAAA,CAAM,CAAC,EAAE,IAAA,EAAAA,KAAAA,EAAM,WAAA,EAAAC,cAAY,KAAM;AACnE,YAAA,OAAO,SAAA;AAAA,cACL;AAAA,gBACE,WAAA,EAAa;AAAA,kBACX,IAAA,EAAM;AAAA,oBACJ,QAAA,EAAU,SAAA;AAAA,sBACR;AAAA,wBACE,IAAA,EAAM;AAAA,0BACJ,aAAA,EAAe;AAAA;AACjB,uBACF;AAAA,sBACAA;AAAA;AACF;AACF,iBACF;AAAA,gBACA,UAAUD,KAAAA,CAAK;AAAA,eACjB;AAAA,cACA,IAAA,CAAKA,OAAM,gBAAgB;AAAA,aAC7B;AAAA,UACF,CAAC;AAAA,SACH;AAAA,QACA;AAAA,UACE,GAAG,IAAA;AAAA,UACH,MAAA,EAAQ,IAAA;AAAA,UACR,QAAA,EAAU,YAAY,OAAO;AAAA;AAC/B,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,KAAA;AAAA,MACE,uBAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA,CAAQ,QAAA;AAAA,MACR,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrB,MAAA,CAAO,IAAA,CAAK,QAAA,IAAY,EAAE,CAAA;AAAA,MAC1B,UAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA,CAAQ,IAAA;AAAA,MACR,OAAA,CAAQ;AAAA,KACV;AAAA,EACF;AACF,CAAA;AAEA,IAAM,YAAA,GAAN,cAA2B,OAAA,CAAQ;AAAA,EACjC,WAAA,CAAY,IAAA,EAAc,IAAA,EAAmB,IAAA,EAAiC;AAC5E,IAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,aAAA,EAAc,GAAI,qBAAA;AAAA,MACjD,IAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAM,IAAA;AAAA,MACN,IAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,UAAU,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,OAAA,KAAW;AAC9D,MAAA,OAAO,IAAI,MAAM,EAAA,CAAG,YAAA;AAAA,QAClB,IAAA;AAAA,QACA;AAAA,UACE,QAAA,EAAU,WAAA,CAAY,IAAA,EAAM,IAAI,CAAA;AAAA,UAChC,IAAA,EAAM,MAAA,CAAO,EAAE,IAAA,EAAM,aAAa,CAAA,CAAE,KAAA,CAAM,CAAC,EAAE,IAAA,EAAAA,KAAAA,EAAM,WAAA,EAAAC,cAAY,KAAM;AACnE,YAAA,OAAO,SAAA;AAAA,cACL;AAAA,gBACE,WAAA,EAAa;AAAA,kBACX,IAAA,EAAM;AAAA,oBACJ,QAAA,EAAUA;AAAA;AACZ,iBACF;AAAA,gBACA,UAAUD,KAAAA,CAAK;AAAA,eACjB;AAAA,cACA,IAAA,CAAKA,OAAM,gBAAgB;AAAA,aAC7B;AAAA,UACF,CAAC;AAAA,SACH;AAAA,QACA;AAAA,UACE,GAAG,IAAA;AAAA,UACH,MAAA,EAAQ,IAAA;AAAA,UACR,QAAA,EAAU,YAAY,OAAO;AAAA;AAC/B,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,KAAA;AAAA,MACE,4BAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA,CAAQ,QAAA;AAAA,MACR,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrB,MAAA,CAAO,IAAA,CAAK,QAAA,IAAY,EAAE,CAAA;AAAA,MAC1B,UAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA,CAAQ,IAAA;AAAA,MACR,OAAA,CAAQ;AAAA,KACV;AAAA,EACF;AACF,CAAA;AAmBA,IAAM,cAAA,GAAN,cAA6B,OAAA,CAAQ;AAAA,EACnC,WAAA,CAAY,IAAA,EAAc,IAAA,EAA0B,IAAA,EAAiC;AACnF,IAAA,KAAA;AAAA,MACE,8BAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MAEA,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,QAAA;AAAA,MACrB,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrB,MAAA,CAAO,IAAA,CAAK,QAAA,IAAY,EAAE,CAAA;AAAA,MAC1B,MAAA,CAAO,EAAE,CAAA;AAAA,MACT,OAAO,MAAS,CAAA;AAAA,MAEhB,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,IAAA;AAAA,MACrB,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE;AAAA,KACvB;AAAA,EACF;AACF,CAAA;AAcA,IAAM,eAAA,GAAN,cAA8B,OAAA,CAAQ;AAAA,EACpC,WAAA,CAAY,IAAA,EAAc,IAAA,EAA2B,IAAA,EAAiC;AACpF,IAAA,MAAM,UAAU,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,OAAA,KAAW;AAC9D,MAAA,OAAO,KAAA,CAAM,GAAG,OAAA,CAAQ,GAAA;AAAA,QACtB,IAAA;AAAA,QACA,WAAA,CAAA,EAAc,OAAO,IAAA,CAAK,SAAS,EAAE,QAAA,CAAS,IAAI,CAAA,CAAA,EAAI,IAAA,CAAK,IAAI,CAAA,CAAA;AAAA,QAC/D,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,MAAM,QAAA,EAAU,WAAA,CAAY,OAAO,CAAA;AAAE,OAC1D;AAAA,IACF,CAAC,CAAA;AAED,IAAA,KAAA;AAAA,MACE,+BAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MAEA,OAAA,CAAQ,QAAA;AAAA,MACR,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrB,MAAA,CAAO,EAAE,CAAA;AAAA,MACT,MAAA,CAAO,EAAE,CAAA;AAAA,MACT,OAAO,MAAS,CAAA;AAAA,MAEhB,OAAA,CAAQ,IAAA;AAAA,MACR,OAAA,CAAQ;AAAA,KACV;AAAA,EACF;AACF,CAAA","file":"chunk-MIC2BHGS.js","sourcesContent":["import type { UnitTerminal } from \"@highstate/contract\"\nimport type { k8s } from \"@highstate/library\"\nimport type { Container } from \"./container\"\nimport type { NetworkPolicy } from \"./network-policy\"\nimport { getOrCreate } from \"@highstate/contract\"\nimport {\n type ComponentResourceOptions,\n type Input,\n type Inputs,\n interpolate,\n type Output,\n output,\n toPromise,\n type Unwrap,\n} from \"@highstate/pulumi\"\nimport { batch, type types } from \"@pulumi/kubernetes\"\nimport { deepmerge } from \"deepmerge-ts\"\nimport { omit } from \"remeda\"\nimport { Namespace } from \"./namespace\"\nimport { commonExtraArgs, getProvider, mapMetadata, type ScopedResourceArgs } from \"./shared\"\nimport {\n getWorkloadComponents,\n Workload,\n type WorkloadArgs,\n type WorkloadTerminalArgs,\n} from \"./workload\"\n\nexport type CronJobArgs = ScopedResourceArgs &\n Omit<Partial<types.input.batch.v1.CronJobSpec>, \"jobTemplate\"> & {\n jobTemplate?: {\n metadata?: types.input.meta.v1.ObjectMeta\n spec?: Omit<types.input.batch.v1.JobSpec, \"template\"> & {\n template?: {\n metadata?: types.input.meta.v1.ObjectMeta\n spec?: Partial<types.input.core.v1.PodSpec>\n }\n }\n }\n } & WorkloadArgs\n\nexport type CreateOrGetCronJobArgs = CronJobArgs & {\n /**\n * The cron job entity to patch/retrieve.\n */\n existing: Input<k8s.NamespacedResource> | undefined\n}\n\n/**\n * Represents a Kubernetes CronJob resource with metadata and spec.\n */\nexport abstract class CronJob extends Workload {\n static apiVersion = \"batch/v1\"\n static kind = \"CronJob\"\n\n protected constructor(\n type: string,\n name: string,\n args: Inputs,\n opts: ComponentResourceOptions | undefined,\n\n metadata: Output<types.output.meta.v1.ObjectMeta>,\n namespace: Output<Namespace>,\n terminalArgs: Output<Unwrap<WorkloadTerminalArgs>>,\n containers: Output<Container[]>,\n networkPolicy: Output<NetworkPolicy | undefined>,\n\n /**\n * The spec of the underlying Kubernetes cron job.\n */\n readonly spec: Output<types.output.batch.v1.CronJobSpec>,\n\n /**\n * The status of the underlying Kubernetes cron job.\n */\n readonly status: Output<types.output.batch.v1.CronJobStatus>,\n ) {\n super(\n type,\n name,\n args,\n opts,\n metadata,\n namespace,\n terminalArgs,\n containers,\n spec.jobTemplate.spec.template,\n networkPolicy,\n )\n }\n\n protected override get templateMetadata(): Output<types.output.meta.v1.ObjectMeta> {\n return this.spec.jobTemplate.spec.template.metadata\n }\n\n /**\n * The Highstate cron job entity.\n */\n get entity(): Output<k8s.CronJob> {\n return output(this.entityBase)\n }\n\n protected getTerminalMeta(): Output<UnitTerminal[\"meta\"]> {\n return output({\n title: \"CronJob\",\n globalTitle: interpolate`CronJob | ${this.metadata.name}`,\n description: \"The shell inside the cron job.\",\n icon: \"devicon:kubernetes\",\n })\n }\n\n protected get resourceType(): string {\n return \"cronjob\"\n }\n\n /**\n * Creates a new cron job.\n */\n static create(name: string, args: CronJobArgs, opts?: ComponentResourceOptions): CronJob {\n return new CreatedCronJob(name, args, opts)\n }\n\n /**\n * Creates a new cron job or patches an existing one.\n *\n * @param name The name of the resource. May not be the same as the cron job name.\n * @param args The arguments to create or patch the cron job with.\n * @param opts Optional resource options.\n */\n static createOrPatch(\n name: string,\n args: CreateOrGetCronJobArgs,\n opts?: ComponentResourceOptions,\n ): CronJob {\n if (args.existing) {\n return new CronJobPatch(name, {\n ...args,\n name: output(args.existing).metadata.name,\n namespace: Namespace.forResourceAsync(args.existing, output(args.namespace).cluster),\n })\n }\n\n return new CreatedCronJob(name, args, opts)\n }\n\n /**\n * Creates a new cron job or gets an existing one.\n *\n * @param name The name of the resource. May not be the same as the cron job name. Will not be used when existing cron job is retrieved.\n * @param args The arguments to create or get the cron job with.\n * @param opts Optional resource options.\n */\n static async createOrGet(\n name: string,\n args: CreateOrGetCronJobArgs,\n opts?: ComponentResourceOptions,\n ): Promise<CronJob> {\n if (args.existing) {\n return await CronJob.forAsync(args.existing, output(args.namespace).cluster)\n }\n\n return new CreatedCronJob(name, args, opts)\n }\n\n /**\n * Patches an existing cron job.\n *\n * Will throw an error if the cron job does not exist.\n *\n * @param name The name of the resource. May not be the same as the cron job name.\n * @param args The arguments to patch the cron job with.\n * @param opts Optional resource options.\n */\n static patch(name: string, args: CronJobArgs, opts?: ComponentResourceOptions): CronJob {\n return new CronJobPatch(name, args, opts)\n }\n\n /**\n * Wraps an existing Kubernetes cron job.\n */\n static wrap(name: string, args: WrappedCronJobArgs, opts?: ComponentResourceOptions): CronJob {\n return new WrappedCronJob(name, args, opts)\n }\n\n /**\n * Gets an existing cron job.\n *\n * Will throw an error if the cron job does not exist.\n */\n static get(name: string, args: ExternalCronJobArgs, opts?: ComponentResourceOptions): CronJob {\n return new ExternalCronJob(name, args, opts)\n }\n\n private static readonly cronJobCache = new Map<string, CronJob>()\n\n /**\n * Gets an existing cron job 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 cron job for.\n * @param cluster The cluster where the cron job is located.\n */\n static for(entity: k8s.NamespacedResource, cluster: Input<k8s.Cluster>): CronJob {\n return getOrCreate(\n CronJob.cronJobCache,\n `${entity.clusterName}.${entity.metadata.namespace}.${entity.metadata.name}.${entity.clusterId}`,\n name => {\n return CronJob.get(name, {\n name: entity.metadata.name,\n namespace: Namespace.forResource(entity, cluster),\n })\n },\n )\n }\n\n /**\n * Gets an existing cron job 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 cron job for.\n * @param cluster The cluster where the cron job is located.\n */\n static async forAsync(\n entity: Input<k8s.NamespacedResource>,\n cluster: Input<k8s.Cluster>,\n ): Promise<CronJob> {\n const resolvedEntity = await toPromise(entity)\n return CronJob.for(resolvedEntity, cluster)\n }\n}\n\nconst cronJobExtraArgs = [...commonExtraArgs, \"container\", \"containers\"] as const\n\nclass CreatedCronJob extends CronJob {\n constructor(name: string, args: CronJobArgs, opts?: ComponentResourceOptions) {\n const { podTemplate, containers, networkPolicy } = getWorkloadComponents(\n name,\n args,\n () => this,\n opts,\n )\n\n const cronJob = output(args.namespace).cluster.apply(cluster => {\n return new batch.v1.CronJob(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: output({ args, podTemplate }).apply(({ args, podTemplate }) => {\n return deepmerge(\n {\n jobTemplate: {\n spec: {\n template: deepmerge(\n {\n spec: {\n restartPolicy: \"Never\",\n },\n },\n podTemplate,\n ),\n },\n },\n schedule: args.schedule,\n },\n omit(args, cronJobExtraArgs) as types.input.batch.v1.CronJobSpec,\n )\n }),\n },\n {\n ...opts,\n parent: this,\n provider: getProvider(cluster),\n },\n )\n })\n\n super(\n \"highstate:k8s:CronJob\",\n name,\n args,\n opts,\n cronJob.metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n containers,\n networkPolicy,\n cronJob.spec,\n cronJob.status,\n )\n }\n}\n\nclass CronJobPatch extends CronJob {\n constructor(name: string, args: CronJobArgs, opts?: ComponentResourceOptions) {\n const { podTemplate, containers, networkPolicy } = getWorkloadComponents(\n name,\n args,\n () => this,\n opts,\n true,\n )\n\n const cronJob = output(args.namespace).cluster.apply(cluster => {\n return new batch.v1.CronJobPatch(\n name,\n {\n metadata: mapMetadata(args, name),\n spec: output({ args, podTemplate }).apply(({ args, podTemplate }) => {\n return deepmerge(\n {\n jobTemplate: {\n spec: {\n template: podTemplate,\n },\n },\n schedule: args.schedule!,\n } satisfies types.input.batch.v1.CronJobSpec,\n omit(args, cronJobExtraArgs) as types.input.batch.v1.CronJobSpec,\n )\n }),\n },\n {\n ...opts,\n parent: this,\n provider: getProvider(cluster),\n },\n )\n })\n\n super(\n \"highstate:k8s:CronJobPatch\",\n name,\n args,\n opts,\n cronJob.metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n containers,\n networkPolicy,\n cronJob.spec,\n cronJob.status,\n )\n }\n}\n\nexport type WrappedCronJobArgs = {\n /**\n * The underlying Kubernetes cron job to wrap.\n */\n cronJob: Input<batch.v1.CronJob>\n\n /**\n * The namespace where the cron job is located.\n */\n namespace: Input<Namespace>\n\n /**\n * The args for the terminal to use.\n */\n terminal?: Input<WorkloadTerminalArgs>\n}\n\nclass WrappedCronJob extends CronJob {\n constructor(name: string, args: WrappedCronJobArgs, opts?: ComponentResourceOptions) {\n super(\n \"highstate:k8s:WrappedCronJob\",\n name,\n args,\n opts,\n\n output(args.cronJob).metadata,\n output(args.namespace),\n output(args.terminal ?? {}),\n output([]),\n output(undefined),\n\n output(args.cronJob).spec,\n output(args.cronJob).status,\n )\n }\n}\n\nexport type ExternalCronJobArgs = {\n /**\n * The name of the cron job to get.\n */\n name: Input<string>\n\n /**\n * The namespace where the cron job is located.\n */\n namespace: Input<Namespace>\n}\n\nclass ExternalCronJob extends CronJob {\n constructor(name: string, args: ExternalCronJobArgs, opts?: ComponentResourceOptions) {\n const cronJob = output(args.namespace).cluster.apply(cluster => {\n return batch.v1.CronJob.get(\n name,\n interpolate`${output(args.namespace).metadata.name}/${args.name}`,\n { ...opts, parent: this, provider: getProvider(cluster) },\n )\n })\n\n super(\n \"highstate:k8s:ExternalCronJob\",\n name,\n args,\n opts,\n\n cronJob.metadata,\n output(args.namespace),\n output({}),\n output([]),\n output(undefined),\n\n cronJob.spec,\n cronJob.status,\n )\n }\n}\n"]}
|
|
@@ -692,9 +692,11 @@ var NetworkPolicy = class _NetworkPolicy extends ComponentResource {
|
|
|
692
692
|
if (args2.allowKubeDns) {
|
|
693
693
|
extraEgressRules.push({
|
|
694
694
|
namespaces: ["kube-system"],
|
|
695
|
+
namespaceSelectors: [],
|
|
695
696
|
selectors: [{ matchLabels: { "k8s-app": "kube-dns" } }],
|
|
696
697
|
ports: [{ port: 53, protocol: "UDP" }],
|
|
697
698
|
all: false,
|
|
699
|
+
clusterPods: false,
|
|
698
700
|
cidrs: [],
|
|
699
701
|
fqdns: [],
|
|
700
702
|
services: []
|
|
@@ -721,10 +723,15 @@ var NetworkPolicy = class _NetworkPolicy extends ComponentResource {
|
|
|
721
723
|
return [
|
|
722
724
|
{
|
|
723
725
|
all: rule.fromAll ?? false,
|
|
726
|
+
clusterPods: rule.fromClusterPods ?? false,
|
|
724
727
|
cidrs: normalize(rule.fromCidr, rule.fromCidrs).concat(l3OnlyRule?.cidrs ?? []),
|
|
725
728
|
fqdns: [],
|
|
726
729
|
services: normalize(rule.fromService, rule.fromServices),
|
|
727
730
|
namespaces: normalize(rule.fromNamespace, rule.fromNamespaces),
|
|
731
|
+
namespaceSelectors: normalize(
|
|
732
|
+
rule.fromNamespaceSelector,
|
|
733
|
+
rule.fromNamespaceSelectors
|
|
734
|
+
),
|
|
728
735
|
selectors: normalize(rule.fromSelector, rule.fromSelectors),
|
|
729
736
|
ports: normalize(rule.toPort, rule.toPorts)
|
|
730
737
|
},
|
|
@@ -753,10 +760,12 @@ var NetworkPolicy = class _NetworkPolicy extends ComponentResource {
|
|
|
753
760
|
return [
|
|
754
761
|
{
|
|
755
762
|
all: rule.toAll ?? false,
|
|
763
|
+
clusterPods: rule.toClusterPods ?? false,
|
|
756
764
|
cidrs: normalize(rule.toCidr, rule.toCidrs).concat(l3OnlyRule?.cidrs ?? []),
|
|
757
765
|
fqdns: normalize(rule.toFqdn, rule.toFqdns).concat(l3OnlyRule?.fqdns ?? []),
|
|
758
766
|
services: normalize(rule.toService, rule.toServices),
|
|
759
767
|
namespaces: normalize(rule.toNamespace, rule.toNamespaces),
|
|
768
|
+
namespaceSelectors: normalize(rule.toNamespaceSelector, rule.toNamespaceSelectors),
|
|
760
769
|
selectors: normalize(rule.toSelector, rule.toSelectors),
|
|
761
770
|
ports: normalize(rule.toPort, rule.toPorts)
|
|
762
771
|
},
|
|
@@ -796,16 +805,18 @@ var NetworkPolicy = class _NetworkPolicy extends ComponentResource {
|
|
|
796
805
|
const namespace = endpoints.filter((endpoint) => isEndpointFromCluster(endpoint, cluster)).map((endpoint) => endpoint.metadata["k8s.service"].namespace)[0];
|
|
797
806
|
return {
|
|
798
807
|
all: false,
|
|
808
|
+
clusterPods: false,
|
|
799
809
|
cidrs,
|
|
800
810
|
fqdns,
|
|
801
811
|
services: [],
|
|
802
812
|
namespaces: namespace ? [namespace] : [],
|
|
813
|
+
namespaceSelectors: [],
|
|
803
814
|
selectors,
|
|
804
815
|
ports
|
|
805
816
|
};
|
|
806
817
|
}
|
|
807
818
|
static isEmptyRule(rule) {
|
|
808
|
-
return !rule.all && rule.cidrs.length === 0 && rule.fqdns.length === 0 && rule.services.length === 0 && rule.namespaces.length === 0 && rule.selectors.length === 0 && rule.ports.length === 0;
|
|
819
|
+
return !rule.all && !rule.clusterPods && rule.cidrs.length === 0 && rule.fqdns.length === 0 && rule.services.length === 0 && rule.namespaces.length === 0 && rule.namespaceSelectors.length === 0 && rule.selectors.length === 0 && rule.ports.length === 0;
|
|
809
820
|
}
|
|
810
821
|
/**
|
|
811
822
|
* Creates network policy to isolate the namespace by denying all traffic to/from it.
|
|
@@ -1050,7 +1061,7 @@ var NativeNetworkPolicy = class _NativeNetworkPolicy extends ComponentResource {
|
|
|
1050
1061
|
static createIngressRules(args) {
|
|
1051
1062
|
return uniqueBy(
|
|
1052
1063
|
args.ingressRules.map((rule) => ({
|
|
1053
|
-
from: rule.all ? [] : _NativeNetworkPolicy.createRulePeers(rule),
|
|
1064
|
+
from: rule.all ? [] : rule.clusterPods ? [{ namespaceSelector: {} }] : _NativeNetworkPolicy.createRulePeers(rule),
|
|
1054
1065
|
ports: _NativeNetworkPolicy.mapPorts(rule.ports)
|
|
1055
1066
|
})),
|
|
1056
1067
|
(rule) => JSON.stringify(rule)
|
|
@@ -1086,7 +1097,7 @@ var NativeNetworkPolicy = class _NativeNetworkPolicy extends ComponentResource {
|
|
|
1086
1097
|
return uniqueBy(
|
|
1087
1098
|
args.egressRules.map((rule) => {
|
|
1088
1099
|
return {
|
|
1089
|
-
to: rule.all ? [] : _NativeNetworkPolicy.createRulePeers(rule),
|
|
1100
|
+
to: rule.all ? [] : rule.clusterPods ? [{ namespaceSelector: {} }] : _NativeNetworkPolicy.createRulePeers(rule),
|
|
1090
1101
|
ports: _NativeNetworkPolicy.mapPorts(rule.ports)
|
|
1091
1102
|
};
|
|
1092
1103
|
}).filter((rule) => rule.to !== void 0).concat(extraRules),
|
|
@@ -1120,7 +1131,10 @@ var NativeNetworkPolicy = class _NativeNetworkPolicy extends ComponentResource {
|
|
|
1120
1131
|
const selectorPeers = args.selectors.map((selector) => ({
|
|
1121
1132
|
podSelector: mapSelectorLikeToSelector(selector)
|
|
1122
1133
|
}));
|
|
1123
|
-
const namespacePeers =
|
|
1134
|
+
const namespacePeers = [
|
|
1135
|
+
...args.namespaces.map(_NativeNetworkPolicy.createNamespacePeer),
|
|
1136
|
+
...args.namespaceSelectors.map(_NativeNetworkPolicy.createNamespaceSelectorPeer)
|
|
1137
|
+
];
|
|
1124
1138
|
if (namespacePeers.length === 0) {
|
|
1125
1139
|
return selectorPeers;
|
|
1126
1140
|
}
|
|
@@ -1138,6 +1152,11 @@ var NativeNetworkPolicy = class _NativeNetworkPolicy extends ComponentResource {
|
|
|
1138
1152
|
const namespaceSelector = mapNamespaceNameToSelector(namespaceName);
|
|
1139
1153
|
return { namespaceSelector };
|
|
1140
1154
|
}
|
|
1155
|
+
static createNamespaceSelectorPeer(selector) {
|
|
1156
|
+
return {
|
|
1157
|
+
namespaceSelector: mapSelectorLikeToSelector(selector)
|
|
1158
|
+
};
|
|
1159
|
+
}
|
|
1141
1160
|
static mapPorts(ports) {
|
|
1142
1161
|
return ports.map((port) => {
|
|
1143
1162
|
if ("port" in port) {
|
|
@@ -1443,7 +1462,7 @@ var Workload = class extends NamespacedResource {
|
|
|
1443
1462
|
static createOrPatchGeneric(name, args, opts) {
|
|
1444
1463
|
return output(args).apply(async (args2) => {
|
|
1445
1464
|
if (args2.existing?.kind === "Deployment") {
|
|
1446
|
-
const { Deployment } = await import('./deployment-
|
|
1465
|
+
const { Deployment } = await import('./deployment-O2LJ5WR5.js');
|
|
1447
1466
|
return Deployment.patch(
|
|
1448
1467
|
name,
|
|
1449
1468
|
{
|
|
@@ -1455,7 +1474,7 @@ var Workload = class extends NamespacedResource {
|
|
|
1455
1474
|
);
|
|
1456
1475
|
}
|
|
1457
1476
|
if (args2.existing?.kind === "StatefulSet") {
|
|
1458
|
-
const { StatefulSet } = await import('./stateful-set-
|
|
1477
|
+
const { StatefulSet } = await import('./stateful-set-VJYKTQ72.js');
|
|
1459
1478
|
return StatefulSet.patch(
|
|
1460
1479
|
name,
|
|
1461
1480
|
{
|
|
@@ -1467,7 +1486,7 @@ var Workload = class extends NamespacedResource {
|
|
|
1467
1486
|
);
|
|
1468
1487
|
}
|
|
1469
1488
|
if (args2.existing?.kind === "Job") {
|
|
1470
|
-
const { Job } = await import('./job-
|
|
1489
|
+
const { Job } = await import('./job-SYME6Y43.js');
|
|
1471
1490
|
return Job.patch(
|
|
1472
1491
|
name,
|
|
1473
1492
|
{
|
|
@@ -1479,7 +1498,7 @@ var Workload = class extends NamespacedResource {
|
|
|
1479
1498
|
);
|
|
1480
1499
|
}
|
|
1481
1500
|
if (args2.existing?.kind === "CronJob") {
|
|
1482
|
-
const { CronJob } = await import('./cron-job-
|
|
1501
|
+
const { CronJob } = await import('./cron-job-NX4HD4FI.js');
|
|
1483
1502
|
return CronJob.patch(
|
|
1484
1503
|
name,
|
|
1485
1504
|
{
|
|
@@ -1491,19 +1510,19 @@ var Workload = class extends NamespacedResource {
|
|
|
1491
1510
|
);
|
|
1492
1511
|
}
|
|
1493
1512
|
if (args2.defaultType === "Deployment") {
|
|
1494
|
-
const { Deployment } = await import('./deployment-
|
|
1513
|
+
const { Deployment } = await import('./deployment-O2LJ5WR5.js');
|
|
1495
1514
|
return Deployment.create(name, deepmerge(args2, args2.deployment), opts);
|
|
1496
1515
|
}
|
|
1497
1516
|
if (args2.defaultType === "StatefulSet") {
|
|
1498
|
-
const { StatefulSet } = await import('./stateful-set-
|
|
1517
|
+
const { StatefulSet } = await import('./stateful-set-VJYKTQ72.js');
|
|
1499
1518
|
return StatefulSet.create(name, deepmerge(args2, args2.statefulSet), opts);
|
|
1500
1519
|
}
|
|
1501
1520
|
if (args2.defaultType === "Job") {
|
|
1502
|
-
const { Job } = await import('./job-
|
|
1521
|
+
const { Job } = await import('./job-SYME6Y43.js');
|
|
1503
1522
|
return Job.create(name, deepmerge(args2, args2.job), opts);
|
|
1504
1523
|
}
|
|
1505
1524
|
if (args2.defaultType === "CronJob") {
|
|
1506
|
-
const { CronJob } = await import('./cron-job-
|
|
1525
|
+
const { CronJob } = await import('./cron-job-NX4HD4FI.js');
|
|
1507
1526
|
return CronJob.create(name, deepmerge(args2, args2.cronJob), opts);
|
|
1508
1527
|
}
|
|
1509
1528
|
throw new Error(`Unknown workload type: ${args2.defaultType}`);
|
|
@@ -1566,7 +1585,7 @@ var ExposableWorkload = class extends Workload {
|
|
|
1566
1585
|
static createOrPatchGeneric(name, args, opts) {
|
|
1567
1586
|
return output(args).apply(async (args2) => {
|
|
1568
1587
|
if (args2.existing?.kind === "Deployment") {
|
|
1569
|
-
const { Deployment } = await import('./deployment-
|
|
1588
|
+
const { Deployment } = await import('./deployment-O2LJ5WR5.js');
|
|
1570
1589
|
return Deployment.patch(
|
|
1571
1590
|
name,
|
|
1572
1591
|
{
|
|
@@ -1578,7 +1597,7 @@ var ExposableWorkload = class extends Workload {
|
|
|
1578
1597
|
);
|
|
1579
1598
|
}
|
|
1580
1599
|
if (args2.existing?.kind === "StatefulSet") {
|
|
1581
|
-
const { StatefulSet } = await import('./stateful-set-
|
|
1600
|
+
const { StatefulSet } = await import('./stateful-set-VJYKTQ72.js');
|
|
1582
1601
|
return StatefulSet.patch(
|
|
1583
1602
|
name,
|
|
1584
1603
|
{
|
|
@@ -1590,11 +1609,11 @@ var ExposableWorkload = class extends Workload {
|
|
|
1590
1609
|
);
|
|
1591
1610
|
}
|
|
1592
1611
|
if (args2.defaultType === "Deployment") {
|
|
1593
|
-
const { Deployment } = await import('./deployment-
|
|
1612
|
+
const { Deployment } = await import('./deployment-O2LJ5WR5.js');
|
|
1594
1613
|
return Deployment.create(name, deepmerge(args2, args2.deployment), opts);
|
|
1595
1614
|
}
|
|
1596
1615
|
if (args2.defaultType === "StatefulSet") {
|
|
1597
|
-
const { StatefulSet } = await import('./stateful-set-
|
|
1616
|
+
const { StatefulSet } = await import('./stateful-set-VJYKTQ72.js');
|
|
1598
1617
|
return StatefulSet.create(name, deepmerge(args2, args2.statefulSet), opts);
|
|
1599
1618
|
}
|
|
1600
1619
|
throw new Error(`Unknown workload type: ${args2.defaultType}`);
|
|
@@ -1603,5 +1622,5 @@ var ExposableWorkload = class extends Workload {
|
|
|
1603
1622
|
};
|
|
1604
1623
|
|
|
1605
1624
|
export { ConfigMap, ExposableWorkload, NativeNetworkPolicy, NetworkPolicy, PersistentVolumeClaim, Workload, exposableWorkloadExtraArgs, getAutoVolumeName, getBestEndpoint, getExposableWorkloadComponents, getFallbackContainerName, getWorkloadComponents, getWorkloadVolumeResourceUuid, mapContainerEnvironment, mapContainerToRaw, mapEnvironmentSource, mapVolumeMount, mapWorkloadVolume, networkPolicyMediator, podSpecDefaults, requireBestEndpoint, workloadExtraArgs };
|
|
1606
|
-
//# sourceMappingURL=chunk-
|
|
1607
|
-
//# sourceMappingURL=chunk-
|
|
1625
|
+
//# sourceMappingURL=chunk-P2VOUU7E.js.map
|
|
1626
|
+
//# sourceMappingURL=chunk-P2VOUU7E.js.map
|