@highstate/k8s 0.6.2 → 0.7.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/index.d.ts CHANGED
@@ -1,13 +1,15 @@
1
+ import { PartialKeys, RequiredKeys } from '@highstate/contract';
1
2
  import { k8s } from '@highstate/library';
2
- import { Input, Unwrap, Output, InputArray, ComponentResource, ComponentResourceOptions, Resource, ResourceOptions, InputMap } from '@highstate/pulumi';
3
- import { Provider, core, types, apps, batch, helm } from '@pulumi/kubernetes';
3
+ import { Input, Unwrap, Output, ComponentResource, InputArray, Resource, Inputs, ComponentResourceOptions, ResourceOptions, InputMap } from '@highstate/pulumi';
4
+ import { Provider, core, types, batch, helm } from '@pulumi/kubernetes';
4
5
  import { gateway, types as types$1 } from '@highstate/gateway-api';
5
- import { PartialKeys, RequiredKeys } from '@highstate/contract';
6
- import { DnsRecord } from '@highstate/common';
7
6
  import { Input as Input$1, ComponentResource as ComponentResource$1, Output as Output$1, ComponentResourceOptions as ComponentResourceOptions$1 } from '@pulumi/pulumi';
7
+ import { DnsRecord } from '@highstate/common';
8
+ import { local } from '@pulumi/command';
8
9
 
9
- declare function createProvider(cluster: Input<k8s.Cluster>): Promise<Provider>;
10
+ declare function getProvider(cluster: Input<k8s.Cluster>): Promise<Provider>;
10
11
  declare function createNamespace(name: string, provider: Provider, args?: core.v1.NamespaceArgs): core.v1.Namespace;
12
+ declare function getNamespace(name: string | undefined, provider: Provider): core.v1.Namespace;
11
13
  type NamespaceLike = core.v1.Namespace | string;
12
14
  type CommonArgs = {
13
15
  /**
@@ -17,18 +19,110 @@ type CommonArgs = {
17
19
  /**
18
20
  * The namespace to create the resource in.
19
21
  */
20
- namespace?: Input<NamespaceLike>;
22
+ namespace: Input<NamespaceLike | undefined>;
21
23
  /**
22
24
  * The metadata to apply to the resource.
23
25
  */
24
26
  metadata?: Input<types.input.meta.v1.ObjectMeta>;
25
27
  };
26
- declare function mapMetadata(args: Unwrap<CommonArgs>, fallbackName?: string): types.input.meta.v1.ObjectMeta;
27
- declare function resolveChartPath(packageName: string, chartName: string, parent: string): string;
28
+ declare function mapMetadata(args: PartialKeys<Unwrap<CommonArgs>, "namespace">, fallbackName?: string): types.input.meta.v1.ObjectMeta;
28
29
  type SelectorLike = types.input.meta.v1.LabelSelector | Record<string, Input<string>>;
29
30
  declare function mapSelectorLikeToSelector(selector: SelectorLike): types.input.meta.v1.LabelSelector;
30
31
  declare function mapNamespaceLikeToNamespaceName(namespace: NamespaceLike): Output<string>;
31
32
  declare function mapNamespaceNameToSelector(namespace: Input<string>): types.input.meta.v1.LabelSelector;
33
+ type ResourceId = {
34
+ name: Input<string>;
35
+ namespace?: Input<string | undefined>;
36
+ };
37
+ declare function getAppName(resourceId: Unwrap<ResourceId>): string;
38
+ declare function getAppDisplayName(resourceId: Unwrap<ResourceId>): string;
39
+
40
+ type ServiceArgs = CommonArgs & {
41
+ port?: Input<types.input.core.v1.ServicePort>;
42
+ /**
43
+ * The service to patch instead of creating a new one.
44
+ */
45
+ patch?: Input<k8s.Service>;
46
+ /**
47
+ * The cluster to create the resource in.
48
+ */
49
+ cluster: Input<k8s.Cluster>;
50
+ } & types.input.core.v1.ServiceSpec;
51
+ declare abstract class Service extends ComponentResource {
52
+ /**
53
+ * The cluster info associated with the service.
54
+ */
55
+ readonly clusterInfo: Output<k8s.ClusterInfo>;
56
+ /**
57
+ * The metadata of the underlying Kubernetes service.
58
+ */
59
+ readonly metadata: Output<types.output.meta.v1.ObjectMeta>;
60
+ /**
61
+ * The spec of the underlying Kubernetes service.
62
+ */
63
+ readonly spec: Output<types.output.core.v1.ServiceSpec>;
64
+ /**
65
+ * The status of the underlying Kubernetes service.
66
+ */
67
+ readonly status: Output<types.output.core.v1.ServiceStatus>;
68
+ /**
69
+ * The resources associated with the service.
70
+ */
71
+ readonly resources: InputArray<Resource>;
72
+ protected constructor(type: string, name: string, args: Inputs, opts: ComponentResourceOptions,
73
+ /**
74
+ * The cluster info associated with the service.
75
+ */
76
+ clusterInfo: Output<k8s.ClusterInfo>,
77
+ /**
78
+ * The metadata of the underlying Kubernetes service.
79
+ */
80
+ metadata: Output<types.output.meta.v1.ObjectMeta>,
81
+ /**
82
+ * The spec of the underlying Kubernetes service.
83
+ */
84
+ spec: Output<types.output.core.v1.ServiceSpec>,
85
+ /**
86
+ * The status of the underlying Kubernetes service.
87
+ */
88
+ status: Output<types.output.core.v1.ServiceStatus>,
89
+ /**
90
+ * The resources associated with the service.
91
+ */
92
+ resources: InputArray<Resource>);
93
+ /**
94
+ * The Highstate service entity.
95
+ */
96
+ get entity(): Output<k8s.Service>;
97
+ static create(name: string, args: ServiceArgs, opts: ComponentResourceOptions): Service;
98
+ static wrap(name: string, service: Input<core.v1.Service>, clusterInfo: Input<k8s.ClusterInfo>, opts: ComponentResourceOptions): Service;
99
+ static external(name: string, id: ResourceId, clusterInfo: Input<k8s.ClusterInfo>, opts: ComponentResourceOptions): Service;
100
+ static of(name: string, entity: Input<k8s.Service>, opts: ComponentResourceOptions): Service;
101
+ /**
102
+ * Returns the host of the service accessible from the cluster.
103
+ *
104
+ * The format is `name.namespace.svc`.
105
+ */
106
+ get clusterHost(): Output<string>;
107
+ /**
108
+ * Returns the external IP of the service.
109
+ *
110
+ * If the load balancer is available, the external IP is returned, otherwise the IP of the node.
111
+ *
112
+ * If the service has no external IP, `undefined` is returned.
113
+ */
114
+ get externalIp(): Output<string | undefined>;
115
+ /**
116
+ * The "most public" IP of the service.
117
+ *
118
+ * Resolves to the external IP if available, otherwise the cluster IP.
119
+ *
120
+ * If the service is headless, an error is thrown.
121
+ */
122
+ get ip(): Output<string>;
123
+ }
124
+ declare function mapContainerPortToServicePort(port: types.input.core.v1.ContainerPort): types.input.core.v1.ServicePort;
125
+ declare function mapServiceToLabelSelector(service: core.v1.Service): types.input.meta.v1.LabelSelector;
32
126
 
33
127
  interface FullBackendRef {
34
128
  /**
@@ -53,9 +147,9 @@ interface ServiceBackendRef {
53
147
  /**
54
148
  * The port of the service being referenced.
55
149
  */
56
- port: Input<number> | Input<string>;
150
+ port: Input<number>;
57
151
  }
58
- type BackendRef = FullBackendRef | ServiceBackendRef | core.v1.Service;
152
+ type BackendRef = FullBackendRef | ServiceBackendRef | Service;
59
153
 
60
154
  type HttpRouteArgs = Omit<CommonArgs, "namespace"> & {
61
155
  /**
@@ -108,19 +202,59 @@ declare class HttpRoute extends ComponentResource {
108
202
  constructor(name: string, args: HttpRouteArgs, opts?: ComponentResourceOptions);
109
203
  }
110
204
 
111
- type ServiceArgs = CommonArgs & {
112
- port?: Input<types.input.core.v1.ServicePort>;
113
- } & types.input.core.v1.ServiceSpec;
114
- declare class Service extends ComponentResource {
205
+ type PersistentVolumeClaimArgs = CommonArgs & types.input.core.v1.PersistentVolumeClaimSpec & {
206
+ /**
207
+ * The size of the volume to request.
208
+ *
209
+ * By default, the size is set to "100Mi".
210
+ */
211
+ size?: string;
212
+ /**
213
+ * The cluster to create the resource in.
214
+ */
215
+ cluster: Input<k8s.Cluster>;
216
+ };
217
+ declare abstract class PersistentVolumeClaim extends ComponentResource {
218
+ /**
219
+ * The cluster info associated with the pvc.
220
+ */
221
+ readonly clusterInfo: Output<k8s.ClusterInfo>;
222
+ /**
223
+ * The metadata of the underlying Kubernetes pvc.
224
+ */
225
+ readonly metadata: Output<types.output.meta.v1.ObjectMeta>;
226
+ /**
227
+ * The spec of the underlying Kubernetes pvc.
228
+ */
229
+ readonly spec: Output<types.output.core.v1.PersistentVolumeClaimSpec>;
230
+ /**
231
+ * The status of the underlying Kubernetes pvc.
232
+ */
233
+ readonly status: Output<types.output.core.v1.PersistentVolumeClaimStatus>;
234
+ protected constructor(type: string, name: string, args: Inputs, opts: ComponentResourceOptions,
235
+ /**
236
+ * The cluster info associated with the pvc.
237
+ */
238
+ clusterInfo: Output<k8s.ClusterInfo>,
239
+ /**
240
+ * The metadata of the underlying Kubernetes pvc.
241
+ */
242
+ metadata: Output<types.output.meta.v1.ObjectMeta>,
243
+ /**
244
+ * The spec of the underlying Kubernetes pvc.
245
+ */
246
+ spec: Output<types.output.core.v1.PersistentVolumeClaimSpec>,
247
+ /**
248
+ * The status of the underlying Kubernetes pvc.
249
+ */
250
+ status: Output<types.output.core.v1.PersistentVolumeClaimStatus>);
115
251
  /**
116
- * The underlying Kubernetes service.
252
+ * The Highstate service entity.
117
253
  */
118
- readonly service: Output<core.v1.Service>;
119
- constructor(name: string, args: ServiceArgs, opts?: ComponentResourceOptions);
254
+ get entity(): Output<k8s.PersistentVolumeClaim>;
255
+ static create(name: string, args: PersistentVolumeClaimArgs, opts: ComponentResourceOptions): PersistentVolumeClaim;
256
+ static of(name: string, entity: Input<k8s.PersistentVolumeClaim>, opts: ComponentResourceOptions): PersistentVolumeClaim;
120
257
  }
121
- declare function mapContainerPortToServicePort(port: types.input.core.v1.ContainerPort): types.input.core.v1.ServicePort;
122
- declare function mapServiceToLabelSelector(service: core.v1.Service): types.input.meta.v1.LabelSelector;
123
- declare function getServiceHost(service: core.v1.Service): Output<string>;
124
258
 
125
259
  type Container = Omit<PartialKeys<types.input.core.v1.Container, "name">, "volumeMounts"> & {
126
260
  /**
@@ -190,56 +324,141 @@ type ContainerVolumeMount = types.input.core.v1.VolumeMount | (Omit<types.input.
190
324
  */
191
325
  volume: Input<WorkloadVolume>;
192
326
  });
193
- type WorkloadVolume = types.input.core.v1.Volume | core.v1.PersistentVolumeClaim | core.v1.ConfigMap | core.v1.Secret;
327
+ type WorkloadVolume = types.input.core.v1.Volume | core.v1.PersistentVolumeClaim | PersistentVolumeClaim | core.v1.ConfigMap | core.v1.Secret;
194
328
 
195
- type DeploymentArgs = CommonArgs & {
196
- container?: Input<Container>;
329
+ type WorkloadArgs = CommonArgs & {
330
+ container?: Input$1<Container>;
197
331
  containers?: InputArray<Container>;
198
- gateway?: Input<gateway.v1.Gateway>;
199
- service?: Input<ServiceArgs>;
200
- httpRoute?: Input<HttpRouteArgs>;
332
+ /**
333
+ * The cluster to create the resource in.
334
+ */
335
+ cluster: Input$1<k8s.Cluster>;
336
+ };
337
+ type PublicWorkloadArgs = WorkloadArgs & {
338
+ service?: Input$1<Omit<ServiceArgs, "cluster" | "namespace">>;
339
+ httpRoute?: Input$1<Omit<HttpRouteArgs, "cluster" | "namespace">>;
340
+ patch?: Input$1<k8s.Deployment | k8s.StatefulSet>;
341
+ } & Partial<types.input.apps.v1.StatefulSetSpec>;
342
+
343
+ type DeploymentArgs = Omit<PublicWorkloadArgs, "patch"> & {
344
+ patch?: Input<k8s.Deployment>;
201
345
  } & Omit<Partial<types.input.apps.v1.DeploymentSpec>, "template"> & {
202
346
  template?: {
203
347
  metadata?: types.input.meta.v1.ObjectMeta;
204
348
  spec?: Partial<types.input.core.v1.PodSpec>;
205
349
  };
206
350
  };
207
- declare class Deployment extends ComponentResource {
351
+ declare abstract class Deployment extends ComponentResource {
352
+ /**
353
+ * The cluster info associated with the deployment.
354
+ */
355
+ readonly clusterInfo: Output<k8s.ClusterInfo>;
356
+ /**
357
+ * The metadata of the underlying Kubernetes deployment.
358
+ */
359
+ readonly metadata: Output<types.output.meta.v1.ObjectMeta>;
360
+ /**
361
+ * The spec of the underlying Kubernetes deployment.
362
+ */
363
+ readonly spec: Output<types.output.apps.v1.DeploymentSpec>;
364
+ /**
365
+ * The status of the underlying Kubernetes deployment.
366
+ */
367
+ readonly status: Output<types.output.apps.v1.DeploymentStatus>;
368
+ private readonly _service;
369
+ private readonly _httpRoute;
208
370
  /**
209
- * The underlying Kubernetes deployment.
371
+ * The resources associated with the deployment.
210
372
  */
211
- readonly deployment: Output<apps.v1.Deployment>;
373
+ readonly resources: InputArray<Resource>;
374
+ protected constructor(type: string, name: string, args: Inputs, opts: ComponentResourceOptions,
375
+ /**
376
+ * The cluster info associated with the deployment.
377
+ */
378
+ clusterInfo: Output<k8s.ClusterInfo>,
379
+ /**
380
+ * The metadata of the underlying Kubernetes deployment.
381
+ */
382
+ metadata: Output<types.output.meta.v1.ObjectMeta>,
383
+ /**
384
+ * The spec of the underlying Kubernetes deployment.
385
+ */
386
+ spec: Output<types.output.apps.v1.DeploymentSpec>,
387
+ /**
388
+ * The status of the underlying Kubernetes deployment.
389
+ */
390
+ status: Output<types.output.apps.v1.DeploymentStatus>, _service: Output<Service | undefined>, _httpRoute: Output<HttpRoute | undefined>,
391
+ /**
392
+ * The resources associated with the deployment.
393
+ */
394
+ resources: InputArray<Resource>);
395
+ /**
396
+ * The Highstate deployment entity.
397
+ */
398
+ get entity(): Output<k8s.Deployment>;
212
399
  /**
213
400
  * The service associated with the deployment.
214
401
  */
215
- readonly service: Output<Service | undefined>;
402
+ get service(): Output<Service>;
216
403
  /**
217
404
  * The HTTP route associated with the deployment.
218
405
  */
219
- readonly httpRoute: Output<HttpRoute | undefined>;
220
- constructor(name: string, args: DeploymentArgs, opts?: ComponentResourceOptions);
221
- getRequiredService(): Output<Service>;
406
+ get httpRoute(): Output<HttpRoute>;
407
+ static create(name: string, args: DeploymentArgs, opts: ComponentResourceOptions): Deployment;
222
408
  }
223
409
 
224
- type PersistentVolumeClaimArgs = CommonArgs & types.input.core.v1.PersistentVolumeClaimSpec;
225
-
226
- type StatefulSetArgs = CommonArgs & {
227
- container?: Input<Container>;
228
- containers?: InputArray<Container>;
229
- volumeClaim?: Input<PersistentVolumeClaimArgs>;
230
- volumeClaims?: InputArray<PersistentVolumeClaimArgs>;
231
- service?: Input<ServiceArgs>;
410
+ type StatefulSetArgs = Omit<PublicWorkloadArgs, "patch"> & {
411
+ patch?: Input<k8s.StatefulSet>;
232
412
  } & Partial<types.input.apps.v1.StatefulSetSpec>;
233
- declare class StatefulSet extends ComponentResource {
413
+ declare abstract class StatefulSet extends ComponentResource {
414
+ /**
415
+ * The cluster info associated with the stateful set.
416
+ */
417
+ readonly clusterInfo: Output<k8s.ClusterInfo>;
418
+ /**
419
+ * The metadata of the underlying Kubernetes stateful set.
420
+ */
421
+ readonly metadata: Output<types.output.meta.v1.ObjectMeta>;
422
+ /**
423
+ * The spec of the underlying Kubernetes stateful set.
424
+ */
425
+ readonly spec: Output<types.output.apps.v1.StatefulSetSpec>;
234
426
  /**
235
- * The underlying Kubernetes stateful set.
427
+ * The status of the underlying Kubernetes stateful set.
236
428
  */
237
- readonly statefulSet: Output<apps.v1.StatefulSet>;
429
+ readonly status: Output<types.output.apps.v1.StatefulSetStatus>;
430
+ private readonly _service;
431
+ private readonly _httpRoute;
432
+ protected constructor(type: string, name: string, args: Inputs, opts: ComponentResourceOptions,
433
+ /**
434
+ * The cluster info associated with the stateful set.
435
+ */
436
+ clusterInfo: Output<k8s.ClusterInfo>,
437
+ /**
438
+ * The metadata of the underlying Kubernetes stateful set.
439
+ */
440
+ metadata: Output<types.output.meta.v1.ObjectMeta>,
441
+ /**
442
+ * The spec of the underlying Kubernetes stateful set.
443
+ */
444
+ spec: Output<types.output.apps.v1.StatefulSetSpec>,
445
+ /**
446
+ * The status of the underlying Kubernetes stateful set.
447
+ */
448
+ status: Output<types.output.apps.v1.StatefulSetStatus>, _service: Output<Service | undefined>, _httpRoute: Output<HttpRoute | undefined>);
449
+ /**
450
+ * The Highstate stateful set entity.
451
+ */
452
+ get entity(): Output<k8s.StatefulSet>;
238
453
  /**
239
454
  * The service associated with the stateful set.
240
455
  */
241
- readonly service: Output<Service>;
242
- constructor(name: string, args: StatefulSetArgs, opts?: ComponentResourceOptions);
456
+ get service(): Output<Service>;
457
+ /**
458
+ * The HTTP route associated with the stateful set.
459
+ */
460
+ get httpRoute(): Output<HttpRoute>;
461
+ static create(name: string, args: StatefulSetArgs, opts: ComponentResourceOptions): StatefulSet;
243
462
  }
244
463
 
245
464
  type NetworkPolicyPort = {
@@ -360,7 +579,7 @@ type EgressRuleArgs = {
360
579
  */
361
580
  toCidrs?: InputArray<string>;
362
581
  /**
363
- * the FQDN to allow outgoing traffic.
582
+ * The FQDN to allow outgoing traffic.
364
583
  *
365
584
  * Will be ORed with other conditions inside the same rule (except ports).
366
585
  */
@@ -371,6 +590,20 @@ type EgressRuleArgs = {
371
590
  * Will be ORed with other conditions inside the same rule (except ports).
372
591
  */
373
592
  toFqdns?: InputArray<string>;
593
+ /**
594
+ * Either the FQDN or the IP address of the endpoint to allow outgoing traffic.
595
+ *
596
+ * Just a syntactic sugar for `toFqdn` and `toCidr` for cases when the endpoint can be both.
597
+ *
598
+ * Will be ORed with other conditions inside the same rule (except ports).
599
+ */
600
+ toEndpoint?: Input<string>;
601
+ /**
602
+ * The list of allowed endpoints for outgoing traffic.
603
+ *
604
+ * Will be ORed with other conditions inside the same rule (except ports).
605
+ */
606
+ toEndpoints?: InputArray<string>;
374
607
  /**
375
608
  * The service to allow traffic to.
376
609
  *
@@ -463,6 +696,18 @@ type NetworkPolicyArgs = CommonArgs & {
463
696
  * Enable the isolation of egress traffic, so that only matched traffic can egress.
464
697
  */
465
698
  isolateEgress?: Input<boolean>;
699
+ /**
700
+ * Allow the eggress traffic to the API server of the cluster.
701
+ *
702
+ * By default, `false`.
703
+ */
704
+ allowKubeApiServer?: Input<boolean>;
705
+ /**
706
+ * Allow the eggress traffic to the DNS server of the cluster.
707
+ *
708
+ * By default, `false`.
709
+ */
710
+ allowKubeDns?: Input<boolean>;
466
711
  };
467
712
  type FullNetworkPolicyArgs = NetworkPolicyArgs & {
468
713
  /**
@@ -480,10 +725,11 @@ type NormalizedRuleArgs = {
480
725
  selectors: SelectorLike[];
481
726
  ports: NetworkPolicyPort[];
482
727
  };
483
- type NormalizedNetworkPolicyArgs = Omit<Unwrap<NetworkPolicyArgs>, "podSelector" | "ingressRule" | "ingressRules" | "egressRule" | "egressRules" | "isolateIngress" | "isolateEgress"> & {
728
+ type NormalizedNetworkPolicyArgs = Omit<Unwrap<NetworkPolicyArgs>, "podSelector" | "ingressRule" | "ingressRules" | "egressRule" | "egressRules" | "isolateIngress" | "isolateEgress" | "allowKubeApiServer" | "allowKubeDNS"> & {
484
729
  podSelector: Unwrap<types.input.meta.v1.LabelSelector>;
485
730
  isolateIngress: boolean;
486
731
  isolateEgress: boolean;
732
+ allowKubeApiServer: boolean;
487
733
  ingressRules: NormalizedRuleArgs[];
488
734
  egressRules: NormalizedRuleArgs[];
489
735
  };
@@ -499,8 +745,14 @@ declare abstract class NetworkPolicy extends ComponentResource {
499
745
  */
500
746
  readonly networkPolicy: Output<Resource>;
501
747
  protected constructor(name: string, args: Unwrap<NetworkPolicyArgs>, opts?: ResourceOptions);
748
+ private static mapCidrFromEndpoint;
502
749
  protected abstract create(name: string, args: NormalizedNetworkPolicyArgs, opts?: ResourceOptions): Input<Resource>;
503
- static create(name: string, args: FullNetworkPolicyArgs, opts?: ResourceOptions): Output<NetworkPolicy>;
750
+ private static readonly supportedCNIs;
751
+ static create(name: string, args: FullNetworkPolicyArgs, opts: ResourceOptions): Output<NetworkPolicy>;
752
+ static allowInsideNamespace(namespace: Input<NamespaceLike>, k8sCluster: Input<k8s.Cluster>, opts: ResourceOptions): Output<NetworkPolicy>;
753
+ static allowKubeApiServer(namespace: Input<NamespaceLike>, k8sCluster: Input<k8s.Cluster>, opts: ResourceOptions): Output<NetworkPolicy>;
754
+ static allowKubeDns(namespace: Input<NamespaceLike>, k8sCluster: Input<k8s.Cluster>, opts: ResourceOptions): Output<NetworkPolicy>;
755
+ static allowAllEgress(namespace: Input<NamespaceLike>, k8sCluster: Input<k8s.Cluster>, opts: ResourceOptions): Output<NetworkPolicy>;
504
756
  }
505
757
 
506
758
  type UseAccessPointResult = {
@@ -511,18 +763,32 @@ type UseAccessPointResult = {
511
763
  /**
512
764
  * The DNS record associated created according to the access point and gateway.
513
765
  */
514
- dnsRecord: DnsRecord;
766
+ dnsRecords: DnsRecord[];
767
+ /**
768
+ * The network policies associated with the access point.
769
+ */
770
+ networkPolicies: NetworkPolicy[];
515
771
  };
516
772
  type UseAccessPointArgs = Omit<CreateGatewayArgs, "gateway"> & {
517
773
  accessPoint: Input<k8s.AccessPoint>;
518
774
  };
519
775
  declare function useAccessPoint(args: UseAccessPointArgs): Promise<UseAccessPointResult>;
776
+ type StandardAccessPointArgs = {
777
+ fqdn: string;
778
+ };
779
+ type StandardAccessPointInputs = {
780
+ accessPoint: Output<k8s.AccessPoint>;
781
+ k8sCluster: Output<k8s.Cluster>;
782
+ };
783
+ declare function useStandardAcessPoint(appName: string, namespace: core.v1.Namespace, args: StandardAccessPointArgs, inputs: StandardAccessPointInputs, provider: Provider): Promise<UseAccessPointResult>;
520
784
  type CreateGatewayArgs = {
521
785
  name: string;
522
786
  namespace: Input<core.v1.Namespace>;
523
787
  annotations?: Input<Record<string, string>>;
524
- fqdn: Input<string>;
788
+ fqdn?: Input<string>;
789
+ fqdns?: InputArray<string>;
525
790
  gateway: Input<k8s.Gateway>;
791
+ clusterInfo: Input<k8s.ClusterInfo>;
526
792
  provider: Provider;
527
793
  };
528
794
 
@@ -670,7 +936,101 @@ declare class CronJob extends ComponentResource {
670
936
  constructor(name: string, args: CronJobArgs, opts?: ComponentResourceOptions);
671
937
  }
672
938
 
939
+ type ChartArgs = Omit<helm.v4.ChartArgs, "chart" | "version" | "repositoryOpts" | "namespace"> & {
940
+ /**
941
+ * The namespace to deploy the chart into.
942
+ */
943
+ namespace?: Input$1<NamespaceLike>;
944
+ /**
945
+ * The custom name of the primary service exposed by the chart.
946
+ *
947
+ * By default, it is the same as the chart name.
948
+ */
949
+ serviceName?: string;
950
+ /**
951
+ * The manifest of the chart to resolve.
952
+ */
953
+ chart: ChartManifest;
954
+ /**
955
+ * The cluster to create the resource in.
956
+ */
957
+ cluster: Input$1<k8s.Cluster>;
958
+ /**
959
+ * The http route args to bind the service to.
960
+ */
961
+ httpRoute?: Input$1<HttpRouteArgs>;
962
+ };
963
+ declare class Chart extends ComponentResource$1 {
964
+ private readonly name;
965
+ private readonly args;
966
+ private readonly opts?;
967
+ /**
968
+ * The underlying Helm chart.
969
+ */
970
+ readonly chart: Output$1<helm.v4.Chart>;
971
+ /**
972
+ * The HTTP route associated with the deployment.
973
+ */
974
+ readonly httpRoute: Output$1<HttpRoute | undefined>;
975
+ constructor(name: string, args: ChartArgs, opts?: ComponentResourceOptions$1 | undefined);
976
+ get service(): Output$1<Service>;
977
+ private readonly services;
978
+ getServiceOutput(name: string | undefined): Output$1<Service>;
979
+ getService(name?: string): Promise<Service>;
980
+ }
981
+ type RenderedChartArgs = {
982
+ /**
983
+ * The namespace to deploy the chart into.
984
+ */
985
+ namespace?: Input$1<NamespaceLike>;
986
+ /**
987
+ * The manifest of the chart to resolve.
988
+ */
989
+ chart: ChartManifest;
990
+ /**
991
+ * The values to pass to the chart.
992
+ */
993
+ values?: InputMap<string>;
994
+ };
995
+ declare class RenderedChart extends ComponentResource$1 {
996
+ /**
997
+ * The rendered manifest of the Helm chart.
998
+ */
999
+ readonly manifest: Output$1<string>;
1000
+ /**
1001
+ * The underlying command used to render the chart.
1002
+ */
1003
+ readonly command: Output$1<local.Command>;
1004
+ constructor(name: string, args: RenderedChartArgs, opts?: ComponentResourceOptions$1);
1005
+ }
1006
+ type ChartManifest = {
1007
+ repo: string;
1008
+ name: string;
1009
+ version: string;
1010
+ sha256: string;
1011
+ };
1012
+ /**
1013
+ * Downloads or reuses the Helm chart according to the charts.json file.
1014
+ * Returns the full path to the chart's .tgz file.
1015
+ *
1016
+ * @param manifest The manifest of the Helm chart.
1017
+ */
1018
+ declare function resolveHelmChart(manifest: ChartManifest): Promise<string>;
1019
+ /**
1020
+ * Extracts the service with the given name from the chart resources.
1021
+ * Throws an error if the service is not found.
1022
+ *
1023
+ * @param chart The Helm chart.
1024
+ * @param name The name of the service.
1025
+ */
673
1026
  declare function getChartServiceOutput(chart: helm.v4.Chart, name: string): Output$1<core.v1.Service>;
1027
+ /**
1028
+ * Extracts the service with the given name from the chart resources.
1029
+ * Throws an error if the service is not found.
1030
+ *
1031
+ * @param chart The Helm chart.
1032
+ * @param name The name of the service.
1033
+ */
674
1034
  declare function getChartService(chart: helm.v4.Chart, name: string): Promise<core.v1.Service>;
675
1035
 
676
- export { type CommonArgs, type Container, type ContainerEnvironment, type ContainerEnvironmentSource, type ContainerEnvironmentVariable, type ContainerVolumeMount, CronJob, type CronJobArgs, Deployment, type DeploymentArgs, type FullNetworkPolicyArgs, HttpRoute, type HttpRouteArgs, Job, type JobArgs, type NamespaceLike, NetworkPolicy, type NetworkPolicyArgs, type NetworkPolicyPort, type NormalizedNetworkPolicyArgs, type NormalizedRuleArgs, ScriptBundle, type ScriptBundleArgs, type ScriptContainer, type ScriptDistribution, type ScriptEnvironment, type SelectorLike, Service, type ServiceArgs, StatefulSet, type StatefulSetArgs, type WorkloadVolume, createNamespace, createProvider, createScriptContainer, getChartService, getChartServiceOutput, getServiceHost, mapContainerPortToServicePort, mapMetadata, mapNamespaceLikeToNamespaceName, mapNamespaceNameToSelector, mapSelectorLikeToSelector, mapServiceToLabelSelector, resolveChartPath, useAccessPoint };
1036
+ export { Chart, type ChartArgs, type ChartManifest, type CommonArgs, type Container, type ContainerEnvironment, type ContainerEnvironmentSource, type ContainerEnvironmentVariable, type ContainerVolumeMount, CronJob, type CronJobArgs, Deployment, type DeploymentArgs, type FullNetworkPolicyArgs, HttpRoute, type HttpRouteArgs, Job, type JobArgs, type NamespaceLike, NetworkPolicy, type NetworkPolicyArgs, type NetworkPolicyPort, type NormalizedNetworkPolicyArgs, type NormalizedRuleArgs, PersistentVolumeClaim, type PersistentVolumeClaimArgs, RenderedChart, type RenderedChartArgs, ScriptBundle, type ScriptBundleArgs, type ScriptContainer, type ScriptDistribution, type ScriptEnvironment, type SelectorLike, Service, type ServiceArgs, StatefulSet, type StatefulSetArgs, type WorkloadVolume, createNamespace, getProvider as createProvider, createScriptContainer, getAppDisplayName, getAppName, getChartService, getChartServiceOutput, getNamespace, mapContainerPortToServicePort, mapMetadata, mapNamespaceLikeToNamespaceName, mapNamespaceNameToSelector, mapSelectorLikeToSelector, mapServiceToLabelSelector, resolveHelmChart, useAccessPoint, useStandardAcessPoint };