timonel 2.6.2 → 2.7.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.
Files changed (26) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/lib/resources/autoscaling/autoscalingResources.d.ts +230 -8
  3. package/dist/lib/resources/autoscaling/autoscalingResources.d.ts.map +1 -1
  4. package/dist/lib/resources/autoscaling/autoscalingResources.js +60 -14
  5. package/dist/lib/resources/autoscaling/autoscalingResources.js.map +1 -1
  6. package/dist/lib/resources/cloud/aws/awsResources.d.ts +26 -0
  7. package/dist/lib/resources/cloud/aws/awsResources.d.ts.map +1 -1
  8. package/dist/lib/resources/cloud/aws/awsResources.js +29 -0
  9. package/dist/lib/resources/cloud/aws/awsResources.js.map +1 -1
  10. package/dist/lib/resources/cloud/aws/karpenterResources.d.ts +186 -0
  11. package/dist/lib/resources/cloud/aws/karpenterResources.d.ts.map +1 -0
  12. package/dist/lib/resources/cloud/aws/karpenterResources.js +95 -0
  13. package/dist/lib/resources/cloud/aws/karpenterResources.js.map +1 -0
  14. package/dist/lib/resources/cloud/gcp/gcpResources.d.ts +26 -0
  15. package/dist/lib/resources/cloud/gcp/gcpResources.d.ts.map +1 -1
  16. package/dist/lib/resources/cloud/gcp/gcpResources.js +29 -0
  17. package/dist/lib/resources/cloud/gcp/gcpResources.js.map +1 -1
  18. package/dist/lib/resources/network/networkResources.d.ts +156 -0
  19. package/dist/lib/resources/network/networkResources.d.ts.map +1 -0
  20. package/dist/lib/resources/network/networkResources.js +129 -0
  21. package/dist/lib/resources/network/networkResources.js.map +1 -0
  22. package/dist/lib/rutter.d.ts +294 -2
  23. package/dist/lib/rutter.d.ts.map +1 -1
  24. package/dist/lib/rutter.js +316 -0
  25. package/dist/lib/rutter.js.map +1 -1
  26. package/package.json +1 -1
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @fileoverview Karpenter resources for AWS EKS node management
3
+ * @since 2.7.0
4
+ */
5
+ import type { ApiObject } from 'cdk8s';
6
+ import { BaseResourceProvider } from '../../baseResourceProvider.js';
7
+ /**
8
+ * Karpenter NodePool specification
9
+ * @since 2.7.0
10
+ */
11
+ export interface KarpenterNodePoolSpec {
12
+ /** Resource name */
13
+ name: string;
14
+ /** Template for nodes */
15
+ template: {
16
+ metadata?: {
17
+ labels?: Record<string, string>;
18
+ annotations?: Record<string, string>;
19
+ };
20
+ spec: {
21
+ /** Node class reference */
22
+ nodeClassRef: {
23
+ apiVersion: string;
24
+ kind: string;
25
+ name: string;
26
+ };
27
+ /** Node requirements */
28
+ requirements?: Array<{
29
+ key: string;
30
+ operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist' | 'Gt' | 'Lt';
31
+ values?: string[];
32
+ }>;
33
+ /** Taints to apply to nodes */
34
+ taints?: Array<{
35
+ key: string;
36
+ value?: string;
37
+ effect: 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
38
+ }>;
39
+ /** Startup taints */
40
+ startupTaints?: Array<{
41
+ key: string;
42
+ value?: string;
43
+ effect: 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
44
+ }>;
45
+ };
46
+ };
47
+ /** Disruption settings */
48
+ disruption?: {
49
+ consolidationPolicy?: 'WhenEmpty' | 'WhenUnderutilized';
50
+ consolidateAfter?: string;
51
+ expireAfter?: string;
52
+ };
53
+ /** Resource limits */
54
+ limits?: Record<string, string>;
55
+ /** Resource labels */
56
+ labels?: Record<string, string>;
57
+ /** Resource annotations */
58
+ annotations?: Record<string, string>;
59
+ }
60
+ /**
61
+ * Karpenter NodeClaim specification
62
+ * @since 2.7.0
63
+ */
64
+ export interface KarpenterNodeClaimSpec {
65
+ /** Resource name */
66
+ name: string;
67
+ /** Node class reference */
68
+ nodeClassRef: {
69
+ apiVersion: string;
70
+ kind: string;
71
+ name: string;
72
+ };
73
+ /** Node requirements */
74
+ requirements?: Array<{
75
+ key: string;
76
+ operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist' | 'Gt' | 'Lt';
77
+ values?: string[];
78
+ }>;
79
+ /** Taints to apply to node */
80
+ taints?: Array<{
81
+ key: string;
82
+ value?: string;
83
+ effect: 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
84
+ }>;
85
+ /** Startup taints */
86
+ startupTaints?: Array<{
87
+ key: string;
88
+ value?: string;
89
+ effect: 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
90
+ }>;
91
+ /** Resource labels */
92
+ labels?: Record<string, string>;
93
+ /** Resource annotations */
94
+ annotations?: Record<string, string>;
95
+ }
96
+ /**
97
+ * Karpenter EC2NodeClass specification
98
+ * @since 2.7.0
99
+ */
100
+ export interface KarpenterEC2NodeClassSpec {
101
+ /** Resource name */
102
+ name: string;
103
+ /** AMI family */
104
+ amiFamily?: 'AL2' | 'AL2023' | 'Bottlerocket' | 'Ubuntu' | 'Windows2019' | 'Windows2022' | 'Custom';
105
+ /** AMI selector */
106
+ amiSelectorTerms?: Array<{
107
+ tags?: Record<string, string>;
108
+ id?: string;
109
+ name?: string;
110
+ owner?: string;
111
+ }>;
112
+ /** Instance store policy */
113
+ instanceStorePolicy?: 'RAID0' | 'NVME';
114
+ /** Instance profile */
115
+ instanceProfile?: string;
116
+ /** Security group selector */
117
+ securityGroupSelectorTerms?: Array<{
118
+ tags?: Record<string, string>;
119
+ id?: string;
120
+ name?: string;
121
+ }>;
122
+ /** Subnet selector */
123
+ subnetSelectorTerms?: Array<{
124
+ tags?: Record<string, string>;
125
+ id?: string;
126
+ }>;
127
+ /** User data */
128
+ userData?: string;
129
+ /** Role */
130
+ role?: string;
131
+ /** Tags to apply to instances */
132
+ tags?: Record<string, string>;
133
+ /** Block device mappings */
134
+ blockDeviceMappings?: Array<{
135
+ deviceName: string;
136
+ ebs?: {
137
+ volumeSize?: string;
138
+ volumeType?: 'gp2' | 'gp3' | 'io1' | 'io2' | 'sc1' | 'st1';
139
+ iops?: number;
140
+ throughput?: number;
141
+ encrypted?: boolean;
142
+ kmsKeyId?: string;
143
+ deleteOnTermination?: boolean;
144
+ };
145
+ }>;
146
+ /** Metadata options */
147
+ metadataOptions?: {
148
+ httpEndpoint?: 'enabled' | 'disabled';
149
+ httpProtocolIPv6?: 'enabled' | 'disabled';
150
+ httpPutResponseHopLimit?: number;
151
+ httpTokens?: 'required' | 'optional';
152
+ };
153
+ /** Resource labels */
154
+ labels?: Record<string, string>;
155
+ /** Resource annotations */
156
+ annotations?: Record<string, string>;
157
+ }
158
+ /**
159
+ * Karpenter resources provider for AWS EKS node management
160
+ * @extends BaseResourceProvider
161
+ * @since 2.7.0
162
+ */
163
+ export declare class KarpenterResources extends BaseResourceProvider {
164
+ /**
165
+ * Creates a Karpenter NodePool resource
166
+ * @param spec - NodePool specification
167
+ * @returns Created NodePool ApiObject
168
+ * @since 2.7.0
169
+ */
170
+ addKarpenterNodePool(spec: KarpenterNodePoolSpec): ApiObject;
171
+ /**
172
+ * Creates a Karpenter NodeClaim resource
173
+ * @param spec - NodeClaim specification
174
+ * @returns Created NodeClaim ApiObject
175
+ * @since 2.7.0
176
+ */
177
+ addKarpenterNodeClaim(spec: KarpenterNodeClaimSpec): ApiObject;
178
+ /**
179
+ * Creates a Karpenter EC2NodeClass resource
180
+ * @param spec - EC2NodeClass specification
181
+ * @returns Created EC2NodeClass ApiObject
182
+ * @since 2.7.0
183
+ */
184
+ addKarpenterEC2NodeClass(spec: KarpenterEC2NodeClassSpec): ApiObject;
185
+ }
186
+ //# sourceMappingURL=karpenterResources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karpenterResources.d.ts","sourceRoot":"","sources":["../../../../../src/lib/resources/cloud/aws/karpenterResources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * @fileoverview Karpenter resources for AWS EKS node management
3
+ * @since 2.7.0
4
+ */
5
+ import { BaseResourceProvider } from '../../baseResourceProvider.js';
6
+ /**
7
+ * Karpenter resources provider for AWS EKS node management
8
+ * @extends BaseResourceProvider
9
+ * @since 2.7.0
10
+ */
11
+ export class KarpenterResources extends BaseResourceProvider {
12
+ /**
13
+ * Creates a Karpenter NodePool resource
14
+ * @param spec - NodePool specification
15
+ * @returns Created NodePool ApiObject
16
+ * @since 2.7.0
17
+ */
18
+ addKarpenterNodePool(spec) {
19
+ const nodePoolSpec = {
20
+ template: spec.template,
21
+ };
22
+ if (spec.disruption) {
23
+ nodePoolSpec['disruption'] = spec.disruption;
24
+ }
25
+ if (spec.limits) {
26
+ nodePoolSpec['limits'] = spec.limits;
27
+ }
28
+ return this.createApiObject(spec.name, 'karpenter.sh/v1beta1', 'NodePool', nodePoolSpec, spec.labels, spec.annotations);
29
+ }
30
+ /**
31
+ * Creates a Karpenter NodeClaim resource
32
+ * @param spec - NodeClaim specification
33
+ * @returns Created NodeClaim ApiObject
34
+ * @since 2.7.0
35
+ */
36
+ addKarpenterNodeClaim(spec) {
37
+ const nodeClaimSpec = {
38
+ nodeClassRef: spec.nodeClassRef,
39
+ };
40
+ if (spec.requirements) {
41
+ nodeClaimSpec['requirements'] = spec.requirements;
42
+ }
43
+ if (spec.taints) {
44
+ nodeClaimSpec['taints'] = spec.taints;
45
+ }
46
+ if (spec.startupTaints) {
47
+ nodeClaimSpec['startupTaints'] = spec.startupTaints;
48
+ }
49
+ return this.createApiObject(spec.name, 'karpenter.sh/v1beta1', 'NodeClaim', nodeClaimSpec, spec.labels, spec.annotations);
50
+ }
51
+ /**
52
+ * Creates a Karpenter EC2NodeClass resource
53
+ * @param spec - EC2NodeClass specification
54
+ * @returns Created EC2NodeClass ApiObject
55
+ * @since 2.7.0
56
+ */
57
+ addKarpenterEC2NodeClass(spec) {
58
+ const nodeClassSpec = {};
59
+ if (spec.amiFamily) {
60
+ nodeClassSpec['amiFamily'] = spec.amiFamily;
61
+ }
62
+ if (spec.amiSelectorTerms) {
63
+ nodeClassSpec['amiSelectorTerms'] = spec.amiSelectorTerms;
64
+ }
65
+ if (spec.instanceStorePolicy) {
66
+ nodeClassSpec['instanceStorePolicy'] = spec.instanceStorePolicy;
67
+ }
68
+ if (spec.instanceProfile) {
69
+ nodeClassSpec['instanceProfile'] = spec.instanceProfile;
70
+ }
71
+ if (spec.securityGroupSelectorTerms) {
72
+ nodeClassSpec['securityGroupSelectorTerms'] = spec.securityGroupSelectorTerms;
73
+ }
74
+ if (spec.subnetSelectorTerms) {
75
+ nodeClassSpec['subnetSelectorTerms'] = spec.subnetSelectorTerms;
76
+ }
77
+ if (spec.userData) {
78
+ nodeClassSpec['userData'] = spec.userData;
79
+ }
80
+ if (spec.role) {
81
+ nodeClassSpec['role'] = spec.role;
82
+ }
83
+ if (spec.tags) {
84
+ nodeClassSpec['tags'] = spec.tags;
85
+ }
86
+ if (spec.blockDeviceMappings) {
87
+ nodeClassSpec['blockDeviceMappings'] = spec.blockDeviceMappings;
88
+ }
89
+ if (spec.metadataOptions) {
90
+ nodeClassSpec['metadataOptions'] = spec.metadataOptions;
91
+ }
92
+ return this.createApiObject(spec.name, 'karpenter.k8s.aws/v1beta1', 'EC2NodeClass', nodeClassSpec, spec.labels, spec.annotations);
93
+ }
94
+ }
95
+ //# sourceMappingURL=karpenterResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karpenterResources.js","sourceRoot":"","sources":["../../../../../src/lib/resources/cloud/aws/karpenterResources.ts"],"names":[],"mappings":"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"}
@@ -83,6 +83,22 @@ export declare class GCPResources extends BaseResourceProvider {
83
83
  * @since 2.4.0
84
84
  */
85
85
  addWorkloadIdentityServiceAccount(spec: GCPWorkloadIdentityServiceAccountSpec): ApiObject;
86
+ /**
87
+ * Creates a ServiceAccount with GCP Artifact Registry access
88
+ * @param spec - Artifact Registry ServiceAccount specification
89
+ * @returns Created ServiceAccount ApiObject
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * gcpResources.addArtifactRegistryServiceAccount({
94
+ * name: 'artifact-registry-sa',
95
+ * googleServiceAccount: 'my-gsa@project.iam.gserviceaccount.com'
96
+ * });
97
+ * ```
98
+ *
99
+ * @since 2.7.0
100
+ */
101
+ addArtifactRegistryServiceAccount(spec: GCPArtifactRegistryServiceAccountSpec): ApiObject;
86
102
  }
87
103
  export interface GCPPersistentDiskStorageClassSpec {
88
104
  name: string;
@@ -130,4 +146,14 @@ export interface GCPWorkloadIdentityServiceAccountSpec {
130
146
  labels?: Record<string, string>;
131
147
  annotations?: Record<string, string>;
132
148
  }
149
+ export interface GCPArtifactRegistryServiceAccountSpec {
150
+ name: string;
151
+ googleServiceAccount: string;
152
+ automountServiceAccountToken?: boolean;
153
+ imagePullSecrets?: Array<{
154
+ name: string;
155
+ }>;
156
+ labels?: Record<string, string>;
157
+ annotations?: Record<string, string>;
158
+ }
133
159
  //# sourceMappingURL=gcpResources.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gcpResources.d.ts","sourceRoot":"","sources":["../../../../../src/lib/resources/cloud/gcp/gcpResources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gcpResources.d.ts","sourceRoot":"","sources":["../../../../../src/lib/resources/cloud/gcp/gcpResources.ts"],"names":[],"mappings":"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"}
@@ -155,6 +155,35 @@ export class GCPResources extends BaseResourceProvider {
155
155
  const serviceAccountSpec = {};
156
156
  return this.createApiObject(spec.name, GCPResources.CORE_API_VERSION, 'ServiceAccount', serviceAccountSpec, spec.labels, annotations);
157
157
  }
158
+ /**
159
+ * Creates a ServiceAccount with GCP Artifact Registry access
160
+ * @param spec - Artifact Registry ServiceAccount specification
161
+ * @returns Created ServiceAccount ApiObject
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * gcpResources.addArtifactRegistryServiceAccount({
166
+ * name: 'artifact-registry-sa',
167
+ * googleServiceAccount: 'my-gsa@project.iam.gserviceaccount.com'
168
+ * });
169
+ * ```
170
+ *
171
+ * @since 2.7.0
172
+ */
173
+ addArtifactRegistryServiceAccount(spec) {
174
+ const annotations = {
175
+ 'iam.gke.io/gcp-service-account': spec.googleServiceAccount,
176
+ ...(spec.annotations || {}),
177
+ };
178
+ const serviceAccountSpec = {};
179
+ if (spec.automountServiceAccountToken !== undefined) {
180
+ serviceAccountSpec['automountServiceAccountToken'] = spec.automountServiceAccountToken;
181
+ }
182
+ if (spec.imagePullSecrets) {
183
+ serviceAccountSpec['imagePullSecrets'] = spec.imagePullSecrets;
184
+ }
185
+ return this.createApiObject(spec.name, GCPResources.CORE_API_VERSION, 'ServiceAccount', serviceAccountSpec, spec.labels, annotations);
186
+ }
158
187
  }
159
188
  GCPResources.STORAGE_API_VERSION = 'storage.k8s.io/v1';
160
189
  GCPResources.CORE_API_VERSION = 'v1';
@@ -1 +1 @@
1
- {"version":3,"file":"gcpResources.js","sourceRoot":"","sources":["../../../../../src/lib/resources/cloud/gcp/gcpResources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gcpResources.js","sourceRoot":"","sources":["../../../../../src/lib/resources/cloud/gcp/gcpResources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * @fileoverview Network resources for Kubernetes networking
3
+ * @since 2.7.0
4
+ */
5
+ import type { ApiObject } from 'cdk8s';
6
+ import { BaseResourceProvider } from '../baseResourceProvider.js';
7
+ /**
8
+ * Network policy rule specification
9
+ * @since 2.7.0
10
+ */
11
+ export interface NetworkPolicyRule {
12
+ /** Ports to allow */
13
+ ports?: Array<{
14
+ port?: number | string;
15
+ protocol?: 'TCP' | 'UDP' | 'SCTP';
16
+ }>;
17
+ /** Pod selector for allowed pods */
18
+ podSelector?: {
19
+ matchLabels?: Record<string, string>;
20
+ matchExpressions?: Array<{
21
+ key: string;
22
+ operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist';
23
+ values?: string[];
24
+ }>;
25
+ };
26
+ /** Namespace selector for allowed namespaces */
27
+ namespaceSelector?: {
28
+ matchLabels?: Record<string, string>;
29
+ matchExpressions?: Array<{
30
+ key: string;
31
+ operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist';
32
+ values?: string[];
33
+ }>;
34
+ };
35
+ }
36
+ /**
37
+ * Network policy specification
38
+ * @since 2.7.0
39
+ */
40
+ export interface NetworkPolicySpec {
41
+ /** Resource name */
42
+ name: string;
43
+ /** Pod selector to apply policy to */
44
+ podSelector: {
45
+ matchLabels?: Record<string, string>;
46
+ matchExpressions?: Array<{
47
+ key: string;
48
+ operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist';
49
+ values?: string[];
50
+ }>;
51
+ };
52
+ /** Policy types to apply */
53
+ policyTypes?: Array<'Ingress' | 'Egress'>;
54
+ /** Ingress rules */
55
+ ingress?: NetworkPolicyRule[];
56
+ /** Egress rules */
57
+ egress?: NetworkPolicyRule[];
58
+ /** Resource labels */
59
+ labels?: Record<string, string>;
60
+ /** Resource annotations */
61
+ annotations?: Record<string, string>;
62
+ }
63
+ /**
64
+ * Ingress specification
65
+ * @since 2.7.0
66
+ */
67
+ export interface IngressSpec {
68
+ /** Resource name */
69
+ name: string;
70
+ /** Ingress class name */
71
+ ingressClassName?: string;
72
+ /** TLS configuration */
73
+ tls?: Array<{
74
+ hosts?: string[];
75
+ secretName?: string;
76
+ }>;
77
+ /** Ingress rules */
78
+ rules?: Array<{
79
+ host?: string;
80
+ http?: {
81
+ paths: Array<{
82
+ path?: string;
83
+ pathType?: 'Exact' | 'Prefix' | 'ImplementationSpecific';
84
+ backend: {
85
+ service: {
86
+ name: string;
87
+ port: {
88
+ number?: number;
89
+ name?: string;
90
+ };
91
+ };
92
+ };
93
+ }>;
94
+ };
95
+ }>;
96
+ /** Resource labels */
97
+ labels?: Record<string, string>;
98
+ /** Resource annotations */
99
+ annotations?: Record<string, string>;
100
+ }
101
+ /**
102
+ * Network resources provider for NetworkPolicy and Ingress
103
+ * @extends BaseResourceProvider
104
+ * @since 2.7.0
105
+ */
106
+ export declare class NetworkResources extends BaseResourceProvider {
107
+ /**
108
+ * Creates a NetworkPolicy resource
109
+ * @param spec - NetworkPolicy specification
110
+ * @returns Created NetworkPolicy ApiObject
111
+ * @since 2.7.0
112
+ */
113
+ addNetworkPolicy(spec: NetworkPolicySpec): ApiObject;
114
+ /**
115
+ * Creates a deny-all NetworkPolicy that blocks all ingress and egress traffic
116
+ * @param name - Policy name
117
+ * @param podSelector - Pod selector to apply policy to
118
+ * @param labels - Optional labels
119
+ * @param annotations - Optional annotations
120
+ * @returns Created NetworkPolicy ApiObject
121
+ * @since 2.7.0
122
+ */
123
+ addDenyAllNetworkPolicy(name: string, podSelector?: NetworkPolicySpec['podSelector'], labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
124
+ /**
125
+ * Creates a NetworkPolicy that allows traffic from specific pods
126
+ * @param name - Policy name
127
+ * @param podSelector - Pod selector to apply policy to
128
+ * @param fromPodSelector - Pod selector for allowed source pods
129
+ * @param ports - Optional ports to allow
130
+ * @param labels - Optional labels
131
+ * @param annotations - Optional annotations
132
+ * @returns Created NetworkPolicy ApiObject
133
+ * @since 2.7.0
134
+ */
135
+ addAllowFromPodsNetworkPolicy(name: string, podSelector: NetworkPolicySpec['podSelector'], fromPodSelector: NetworkPolicyRule['podSelector'], ports?: NetworkPolicyRule['ports'], labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
136
+ /**
137
+ * Creates a NetworkPolicy that allows traffic from specific namespaces
138
+ * @param name - Policy name
139
+ * @param podSelector - Pod selector to apply policy to
140
+ * @param fromNamespaceSelector - Namespace selector for allowed source namespaces
141
+ * @param ports - Optional ports to allow
142
+ * @param labels - Optional labels
143
+ * @param annotations - Optional annotations
144
+ * @returns Created NetworkPolicy ApiObject
145
+ * @since 2.7.0
146
+ */
147
+ addAllowFromNamespaceNetworkPolicy(name: string, podSelector: NetworkPolicySpec['podSelector'], fromNamespaceSelector: NetworkPolicyRule['namespaceSelector'], ports?: NetworkPolicyRule['ports'], labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
148
+ /**
149
+ * Creates an Ingress resource
150
+ * @param spec - Ingress specification
151
+ * @returns Created Ingress ApiObject
152
+ * @since 2.7.0
153
+ */
154
+ addIngress(spec: IngressSpec): ApiObject;
155
+ }
156
+ //# sourceMappingURL=networkResources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkResources.d.ts","sourceRoot":"","sources":["../../../../src/lib/resources/network/networkResources.ts"],"names":[],"mappings":"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"}