timonel 2.8.0-beta.4 → 2.8.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/CHANGELOG.md +9 -19
- package/README.md +12 -55
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +7 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -7
- package/dist/index.js.map +1 -1
- package/dist/lib/helm.d.ts +234 -4
- package/dist/lib/helm.d.ts.map +1 -1
- package/dist/lib/helm.js +309 -20
- package/dist/lib/helm.js.map +1 -1
- package/dist/lib/helmChartWriter.js +5 -19
- package/dist/lib/helmChartWriter.js.map +1 -1
- package/dist/lib/resources/baseResourceProvider.d.ts +1 -1
- package/dist/lib/resources/baseResourceProvider.d.ts.map +1 -1
- package/dist/lib/resources/baseResourceProvider.js.map +1 -1
- package/dist/lib/resources/cloud/aws/awsResources.d.ts +5 -6
- package/dist/lib/resources/cloud/aws/awsResources.d.ts.map +1 -1
- package/dist/lib/resources/cloud/aws/awsResources.js +59 -30
- package/dist/lib/resources/cloud/aws/awsResources.js.map +1 -1
- package/dist/lib/rutter.d.ts +73 -708
- package/dist/lib/rutter.d.ts.map +1 -1
- package/dist/lib/rutter.js +157 -837
- package/dist/lib/rutter.js.map +1 -1
- package/dist/lib/security.d.ts +2 -1
- package/dist/lib/security.d.ts.map +1 -1
- package/dist/lib/security.js +33 -4
- package/dist/lib/security.js.map +1 -1
- package/dist/lib/umbrellaRutter.d.ts +1 -1
- package/dist/lib/umbrellaRutter.d.ts.map +1 -1
- package/dist/lib/utils/helmHelpers.d.ts +2 -12
- package/dist/lib/utils/helmHelpers.d.ts.map +1 -1
- package/dist/lib/utils/helmHelpers.js +2 -46
- package/dist/lib/utils/helmHelpers.js.map +1 -1
- package/package.json +2 -2
- package/dist/lib/resources/autoscaling/autoscalingResources.d.ts +0 -248
- package/dist/lib/resources/autoscaling/autoscalingResources.d.ts.map +0 -1
- package/dist/lib/resources/autoscaling/autoscalingResources.js +0 -81
- package/dist/lib/resources/autoscaling/autoscalingResources.js.map +0 -1
- package/dist/lib/resources/cloud/azure/azureResources.d.ts +0 -169
- package/dist/lib/resources/cloud/azure/azureResources.d.ts.map +0 -1
- package/dist/lib/resources/cloud/azure/azureResources.js +0 -218
- package/dist/lib/resources/cloud/azure/azureResources.js.map +0 -1
- package/dist/lib/resources/cloud/gcp/gcpResources.d.ts +0 -164
- package/dist/lib/resources/cloud/gcp/gcpResources.d.ts.map +0 -1
- package/dist/lib/resources/cloud/gcp/gcpResources.js +0 -192
- package/dist/lib/resources/cloud/gcp/gcpResources.js.map +0 -1
- package/dist/lib/resources/core/coreResources.d.ts +0 -790
- package/dist/lib/resources/core/coreResources.d.ts.map +0 -1
- package/dist/lib/resources/core/coreResources.js +0 -1115
- package/dist/lib/resources/core/coreResources.js.map +0 -1
- package/dist/lib/resources/core/storageResources.d.ts +0 -133
- package/dist/lib/resources/core/storageResources.d.ts.map +0 -1
- package/dist/lib/resources/core/storageResources.js +0 -120
- package/dist/lib/resources/core/storageResources.js.map +0 -1
- package/dist/lib/resources/network/networkResources.d.ts +0 -229
- package/dist/lib/resources/network/networkResources.d.ts.map +0 -1
- package/dist/lib/resources/network/networkResources.js +0 -310
- package/dist/lib/resources/network/networkResources.js.map +0 -1
- package/dist/lib/resources/validation/validationResources.d.ts +0 -26
- package/dist/lib/resources/validation/validationResources.d.ts.map +0 -1
- package/dist/lib/resources/validation/validationResources.js +0 -33
- package/dist/lib/resources/validation/validationResources.js.map +0 -1
- package/dist/lib/utils/podTemplates.d.ts +0 -192
- package/dist/lib/utils/podTemplates.d.ts.map +0 -1
- package/dist/lib/utils/podTemplates.js +0 -331
- package/dist/lib/utils/podTemplates.js.map +0 -1
- package/dist/lib/utils/resourceNaming.d.ts +0 -57
- package/dist/lib/utils/resourceNaming.d.ts.map +0 -1
- package/dist/lib/utils/resourceNaming.js +0 -82
- package/dist/lib/utils/resourceNaming.js.map +0 -1
|
@@ -1,310 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Network resources for Kubernetes networking
|
|
3
|
-
* @since 2.7.0
|
|
4
|
-
*/
|
|
5
|
-
import { BaseResourceProvider } from '../baseResourceProvider.js';
|
|
6
|
-
/**
|
|
7
|
-
* Network resources provider for NetworkPolicy and Ingress
|
|
8
|
-
* @extends BaseResourceProvider
|
|
9
|
-
* @since 2.7.0
|
|
10
|
-
*/
|
|
11
|
-
export class NetworkResources extends BaseResourceProvider {
|
|
12
|
-
/**
|
|
13
|
-
* Creates a NetworkPolicy resource
|
|
14
|
-
* @param spec - NetworkPolicy specification
|
|
15
|
-
* @returns Created NetworkPolicy ApiObject
|
|
16
|
-
* @since 2.7.0
|
|
17
|
-
*/
|
|
18
|
-
addNetworkPolicy(spec) {
|
|
19
|
-
const policySpec = {
|
|
20
|
-
podSelector: spec.podSelector,
|
|
21
|
-
};
|
|
22
|
-
if (spec.policyTypes) {
|
|
23
|
-
policySpec['policyTypes'] = spec.policyTypes;
|
|
24
|
-
}
|
|
25
|
-
if (spec.ingress) {
|
|
26
|
-
policySpec['ingress'] = spec.ingress;
|
|
27
|
-
}
|
|
28
|
-
if (spec.egress) {
|
|
29
|
-
policySpec['egress'] = spec.egress;
|
|
30
|
-
}
|
|
31
|
-
return this.createApiObject(spec.name, NetworkResources.NETWORKING_API_VERSION, 'NetworkPolicy', policySpec, spec.labels, spec.annotations);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Creates a deny-all NetworkPolicy that blocks all ingress and egress traffic
|
|
35
|
-
* @param name - Policy name
|
|
36
|
-
* @param podSelector - Pod selector to apply policy to
|
|
37
|
-
* @param labels - Optional labels
|
|
38
|
-
* @param annotations - Optional annotations
|
|
39
|
-
* @returns Created NetworkPolicy ApiObject
|
|
40
|
-
* @since 2.7.0
|
|
41
|
-
*/
|
|
42
|
-
addDenyAllNetworkPolicy(name, podSelector = {}, labels, annotations) {
|
|
43
|
-
return this.addNetworkPolicy({
|
|
44
|
-
name,
|
|
45
|
-
podSelector,
|
|
46
|
-
policyTypes: ['Ingress', 'Egress'],
|
|
47
|
-
ingress: [],
|
|
48
|
-
egress: [],
|
|
49
|
-
...(labels && { labels }),
|
|
50
|
-
...(annotations && { annotations }),
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Creates a NetworkPolicy that allows traffic from specific pods
|
|
55
|
-
* @param name - Policy name
|
|
56
|
-
* @param podSelector - Pod selector to apply policy to
|
|
57
|
-
* @param fromPodSelector - Pod selector for allowed source pods
|
|
58
|
-
* @param ports - Optional ports to allow
|
|
59
|
-
* @param labels - Optional labels
|
|
60
|
-
* @param annotations - Optional annotations
|
|
61
|
-
* @returns Created NetworkPolicy ApiObject
|
|
62
|
-
* @since 2.7.0
|
|
63
|
-
*/
|
|
64
|
-
addAllowFromPodsNetworkPolicy(name, podSelector, fromPodSelector, ports, labels, annotations) {
|
|
65
|
-
const ingressRule = {};
|
|
66
|
-
if (fromPodSelector) {
|
|
67
|
-
ingressRule.podSelector = fromPodSelector;
|
|
68
|
-
}
|
|
69
|
-
if (ports) {
|
|
70
|
-
ingressRule.ports = ports;
|
|
71
|
-
}
|
|
72
|
-
return this.addNetworkPolicy({
|
|
73
|
-
name,
|
|
74
|
-
podSelector,
|
|
75
|
-
policyTypes: ['Ingress'],
|
|
76
|
-
ingress: [ingressRule],
|
|
77
|
-
...(labels && { labels }),
|
|
78
|
-
...(annotations && { annotations }),
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Creates a NetworkPolicy that allows traffic from specific namespaces
|
|
83
|
-
* @param name - Policy name
|
|
84
|
-
* @param podSelector - Pod selector to apply policy to
|
|
85
|
-
* @param fromNamespaceSelector - Namespace selector for allowed source namespaces
|
|
86
|
-
* @param ports - Optional ports to allow
|
|
87
|
-
* @param labels - Optional labels
|
|
88
|
-
* @param annotations - Optional annotations
|
|
89
|
-
* @returns Created NetworkPolicy ApiObject
|
|
90
|
-
* @since 2.7.0
|
|
91
|
-
*/
|
|
92
|
-
addAllowFromNamespaceNetworkPolicy(name, podSelector, fromNamespaceSelector, ports, labels, annotations) {
|
|
93
|
-
const ingressRule = {};
|
|
94
|
-
if (fromNamespaceSelector) {
|
|
95
|
-
ingressRule.namespaceSelector = fromNamespaceSelector;
|
|
96
|
-
}
|
|
97
|
-
if (ports) {
|
|
98
|
-
ingressRule.ports = ports;
|
|
99
|
-
}
|
|
100
|
-
return this.addNetworkPolicy({
|
|
101
|
-
name,
|
|
102
|
-
podSelector,
|
|
103
|
-
policyTypes: ['Ingress'],
|
|
104
|
-
ingress: [ingressRule],
|
|
105
|
-
...(labels && { labels }),
|
|
106
|
-
...(annotations && { annotations }),
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Validates TLS configuration for security compliance
|
|
111
|
-
* @param spec - Ingress specification to validate
|
|
112
|
-
* @throws Error if TLS validation fails
|
|
113
|
-
* @since 2.8.0
|
|
114
|
-
*/
|
|
115
|
-
validateIngressSecurity(spec) {
|
|
116
|
-
const isProductionEnvironment = spec.environment === 'production';
|
|
117
|
-
const tlsRequired = spec.requireTLS || isProductionEnvironment;
|
|
118
|
-
// Check if TLS is required but not configured
|
|
119
|
-
if (tlsRequired && (!spec.tls || spec.tls.length === 0)) {
|
|
120
|
-
throw new Error(NetworkResources.TLS_REQUIRED_ERROR_MESSAGE);
|
|
121
|
-
}
|
|
122
|
-
// Validate TLS configuration if present
|
|
123
|
-
if (spec.tls && spec.tls.length > 0) {
|
|
124
|
-
spec.tls.forEach((tlsConfig, index) => {
|
|
125
|
-
if (!tlsConfig.secretName) {
|
|
126
|
-
throw new Error(`TLS configuration at index ${index} must specify a secretName. ` +
|
|
127
|
-
'The secret should contain "tls.crt" and "tls.key" data.');
|
|
128
|
-
}
|
|
129
|
-
// Validate secret name format (RFC 1123 DNS subdomain)
|
|
130
|
-
// This regex is safe as it only matches alphanumeric characters and hyphens
|
|
131
|
-
// eslint-disable-next-line security/detect-unsafe-regex
|
|
132
|
-
const secretNameRegex = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
|
|
133
|
-
if (!secretNameRegex.test(tlsConfig.secretName)) {
|
|
134
|
-
throw new Error(`Invalid TLS secret name "${tlsConfig.secretName}" at index ${index}. ` +
|
|
135
|
-
'Secret names must be valid RFC 1123 DNS subdomains (lowercase alphanumeric and hyphens).');
|
|
136
|
-
}
|
|
137
|
-
// Validate hosts if specified
|
|
138
|
-
if (tlsConfig.hosts && tlsConfig.hosts.length > 0) {
|
|
139
|
-
tlsConfig.hosts.forEach((host, hostIndex) => {
|
|
140
|
-
if (!this.isValidHostname(host)) {
|
|
141
|
-
throw new Error(`Invalid hostname "${host}" in TLS configuration at index ${index}, host ${hostIndex}. ` +
|
|
142
|
-
'Hostnames must be valid DNS names or wildcard patterns.');
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
// Validate that TLS hosts match Ingress rule hosts
|
|
149
|
-
if (spec.tls && spec.rules) {
|
|
150
|
-
const tlsHosts = new Set(spec.tls.flatMap((tls) => tls.hosts || []));
|
|
151
|
-
const ruleHosts = spec.rules
|
|
152
|
-
.map((rule) => rule.host)
|
|
153
|
-
.filter((host) => Boolean(host));
|
|
154
|
-
for (const ruleHost of ruleHosts) {
|
|
155
|
-
if (!tlsHosts.has(ruleHost)) {
|
|
156
|
-
console.warn(`Warning: Host "${ruleHost}" in Ingress rules is not covered by TLS configuration. ` +
|
|
157
|
-
'Consider adding it to the TLS hosts for secure communication.');
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Validates hostname format (supports wildcards) with ReDoS protection
|
|
164
|
-
* @param hostname - Hostname to validate
|
|
165
|
-
* @returns True if hostname is valid
|
|
166
|
-
* @since 2.8.0
|
|
167
|
-
*/
|
|
168
|
-
isValidHostname(hostname) {
|
|
169
|
-
if (!hostname || hostname.length === 0 || hostname.length > 253) {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
// Split hostname into parts and validate each part
|
|
173
|
-
const parts = hostname.split('.');
|
|
174
|
-
if (parts.length < 2)
|
|
175
|
-
return false;
|
|
176
|
-
// Handle wildcard
|
|
177
|
-
if (hostname.startsWith('*.')) {
|
|
178
|
-
parts.shift(); // Remove wildcard part
|
|
179
|
-
if (parts.length < 2)
|
|
180
|
-
return false; // Must have at least two parts after wildcard
|
|
181
|
-
}
|
|
182
|
-
// Validate each part
|
|
183
|
-
return parts.every((part) => {
|
|
184
|
-
if (part.length === 0 || part.length > 63)
|
|
185
|
-
return false;
|
|
186
|
-
if (part.startsWith('-') || part.endsWith('-'))
|
|
187
|
-
return false;
|
|
188
|
-
return /^[a-z0-9-]+$/i.test(part);
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Applies security defaults to Ingress annotations
|
|
193
|
-
* @param spec - Ingress specification
|
|
194
|
-
* @returns Enhanced annotations with security defaults
|
|
195
|
-
* @since 2.8.0
|
|
196
|
-
*/
|
|
197
|
-
applySecurityDefaults(spec) {
|
|
198
|
-
const annotations = { ...spec.annotations };
|
|
199
|
-
// Apply SSL redirect if TLS is configured or force SSL redirect is enabled
|
|
200
|
-
if ((spec.tls && spec.tls.length > 0) || spec.forceSSLRedirect) {
|
|
201
|
-
// NGINX Ingress Controller annotations
|
|
202
|
-
annotations['nginx.ingress.kubernetes.io/ssl-redirect'] = 'true';
|
|
203
|
-
annotations['nginx.ingress.kubernetes.io/force-ssl-redirect'] = 'true';
|
|
204
|
-
// Traefik annotations
|
|
205
|
-
annotations['traefik.ingress.kubernetes.io/redirect-entry-point'] = 'https';
|
|
206
|
-
// HAProxy annotations
|
|
207
|
-
annotations['haproxy.org/ssl-redirect'] = 'true';
|
|
208
|
-
}
|
|
209
|
-
// Add security headers for production environments
|
|
210
|
-
if (spec.environment === 'production' || spec.requireTLS) {
|
|
211
|
-
// NGINX security headers with CSP
|
|
212
|
-
annotations['nginx.ingress.kubernetes.io/configuration-snippet'] = `
|
|
213
|
-
more_set_headers "X-Frame-Options: DENY";
|
|
214
|
-
more_set_headers "X-Content-Type-Options: nosniff";
|
|
215
|
-
more_set_headers "X-XSS-Protection: 1; mode=block";
|
|
216
|
-
more_set_headers "Referrer-Policy: strict-origin-when-cross-origin";
|
|
217
|
-
more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';";
|
|
218
|
-
`.trim();
|
|
219
|
-
}
|
|
220
|
-
return annotations;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Creates a secure Ingress with TLS validation and environment-aware defaults
|
|
224
|
-
* @param spec - Enhanced Ingress specification
|
|
225
|
-
* @returns Created Ingress ApiObject
|
|
226
|
-
* @example
|
|
227
|
-
* ```typescript
|
|
228
|
-
* // Production Ingress with mandatory TLS
|
|
229
|
-
* networkResources.addSecureIngress({
|
|
230
|
-
* name: 'web-ingress',
|
|
231
|
-
* environment: 'production',
|
|
232
|
-
* tls: [{
|
|
233
|
-
* hosts: ['example.com'],
|
|
234
|
-
* secretName: 'example-tls'
|
|
235
|
-
* }],
|
|
236
|
-
* rules: [{
|
|
237
|
-
* host: 'example.com',
|
|
238
|
-
* http: {
|
|
239
|
-
* paths: [{
|
|
240
|
-
* path: '/',
|
|
241
|
-
* pathType: 'Prefix',
|
|
242
|
-
* backend: {
|
|
243
|
-
* service: { name: 'web-service', port: { number: 80 } }
|
|
244
|
-
* }
|
|
245
|
-
* }]
|
|
246
|
-
* }
|
|
247
|
-
* }]
|
|
248
|
-
* });
|
|
249
|
-
* ```
|
|
250
|
-
* @since 2.8.0
|
|
251
|
-
*/
|
|
252
|
-
addSecureIngress(spec) {
|
|
253
|
-
// Validate TLS configuration and security requirements
|
|
254
|
-
this.validateIngressSecurity(spec);
|
|
255
|
-
// Apply security defaults to annotations
|
|
256
|
-
const enhancedAnnotations = this.applySecurityDefaults(spec);
|
|
257
|
-
// Create the Ingress with enhanced security
|
|
258
|
-
const ingressSpec = {};
|
|
259
|
-
if (spec.ingressClassName) {
|
|
260
|
-
ingressSpec['ingressClassName'] = spec.ingressClassName;
|
|
261
|
-
}
|
|
262
|
-
if (spec.tls) {
|
|
263
|
-
ingressSpec['tls'] = spec.tls;
|
|
264
|
-
}
|
|
265
|
-
if (spec.rules) {
|
|
266
|
-
ingressSpec['rules'] = spec.rules;
|
|
267
|
-
}
|
|
268
|
-
return this.createApiObject(spec.name, NetworkResources.NETWORKING_API_VERSION, 'Ingress', ingressSpec, spec.labels, enhancedAnnotations);
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Creates an Ingress resource with optional TLS validation
|
|
272
|
-
* @param spec - Ingress specification
|
|
273
|
-
* @returns Created Ingress ApiObject
|
|
274
|
-
* @deprecated Use addSecureIngress for enhanced security validation
|
|
275
|
-
* @since 2.7.0
|
|
276
|
-
*/
|
|
277
|
-
addIngress(spec) {
|
|
278
|
-
// Apply basic validation if environment is specified
|
|
279
|
-
if (spec.environment || spec.requireTLS) {
|
|
280
|
-
this.validateIngressSecurity(spec);
|
|
281
|
-
const enhancedAnnotations = this.applySecurityDefaults(spec);
|
|
282
|
-
const ingressSpec = {};
|
|
283
|
-
if (spec.ingressClassName) {
|
|
284
|
-
ingressSpec['ingressClassName'] = spec.ingressClassName;
|
|
285
|
-
}
|
|
286
|
-
if (spec.tls) {
|
|
287
|
-
ingressSpec['tls'] = spec.tls;
|
|
288
|
-
}
|
|
289
|
-
if (spec.rules) {
|
|
290
|
-
ingressSpec['rules'] = spec.rules;
|
|
291
|
-
}
|
|
292
|
-
return this.createApiObject(spec.name, NetworkResources.NETWORKING_API_VERSION, 'Ingress', ingressSpec, spec.labels, enhancedAnnotations);
|
|
293
|
-
}
|
|
294
|
-
// Legacy behavior for backward compatibility
|
|
295
|
-
const ingressSpec = {};
|
|
296
|
-
if (spec.ingressClassName) {
|
|
297
|
-
ingressSpec['ingressClassName'] = spec.ingressClassName;
|
|
298
|
-
}
|
|
299
|
-
if (spec.tls) {
|
|
300
|
-
ingressSpec['tls'] = spec.tls;
|
|
301
|
-
}
|
|
302
|
-
if (spec.rules) {
|
|
303
|
-
ingressSpec['rules'] = spec.rules;
|
|
304
|
-
}
|
|
305
|
-
return this.createApiObject(spec.name, NetworkResources.NETWORKING_API_VERSION, 'Ingress', ingressSpec, spec.labels, spec.annotations);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
NetworkResources.TLS_REQUIRED_ERROR_MESSAGE = 'TLS configuration is required for production Ingress resources. Please configure the "tls" field with valid certificate references.';
|
|
309
|
-
NetworkResources.NETWORKING_API_VERSION = 'networking.k8s.io/v1';
|
|
310
|
-
//# sourceMappingURL=networkResources.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"networkResources.js","sourceRoot":"","sources":["../../../../src/lib/resources/network/networkResources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Validation and security resources for Kubernetes
|
|
3
|
-
* @since 2.3.0
|
|
4
|
-
*/
|
|
5
|
-
import { BaseResourceProvider } from '../baseResourceProvider.js';
|
|
6
|
-
/**
|
|
7
|
-
* Validation and security resources provider for NetworkPolicies and security policies
|
|
8
|
-
*
|
|
9
|
-
* @extends BaseResourceProvider
|
|
10
|
-
* @since 2.3.0
|
|
11
|
-
*/
|
|
12
|
-
export declare class ValidationResources extends BaseResourceProvider {
|
|
13
|
-
/**
|
|
14
|
-
* Add NetworkPolicy for network segmentation
|
|
15
|
-
*/
|
|
16
|
-
addNetworkPolicy(_spec: unknown): void;
|
|
17
|
-
/**
|
|
18
|
-
* Add PodSecurityPolicy (deprecated but still used)
|
|
19
|
-
*/
|
|
20
|
-
addPodSecurityPolicy(_spec: unknown): void;
|
|
21
|
-
/**
|
|
22
|
-
* Add SecurityContext validation
|
|
23
|
-
*/
|
|
24
|
-
addSecurityContextConstraints(_spec: unknown): void;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=validationResources.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validationResources.d.ts","sourceRoot":"","sources":["../../../../src/lib/resources/validation/validationResources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,oBAAoB;IAC3D;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,OAAO;IAK/B;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,OAAO;IAInC;;OAEG;IACH,6BAA6B,CAAC,KAAK,EAAE,OAAO;CAG7C"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Validation and security resources for Kubernetes
|
|
3
|
-
* @since 2.3.0
|
|
4
|
-
*/
|
|
5
|
-
import { BaseResourceProvider } from '../baseResourceProvider.js';
|
|
6
|
-
/**
|
|
7
|
-
* Validation and security resources provider for NetworkPolicies and security policies
|
|
8
|
-
*
|
|
9
|
-
* @extends BaseResourceProvider
|
|
10
|
-
* @since 2.3.0
|
|
11
|
-
*/
|
|
12
|
-
export class ValidationResources extends BaseResourceProvider {
|
|
13
|
-
/**
|
|
14
|
-
* Add NetworkPolicy for network segmentation
|
|
15
|
-
*/
|
|
16
|
-
addNetworkPolicy(_spec) {
|
|
17
|
-
// Implementation moved from CoreResources
|
|
18
|
-
// TODO: Move NetworkPolicy implementation here
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Add PodSecurityPolicy (deprecated but still used)
|
|
22
|
-
*/
|
|
23
|
-
addPodSecurityPolicy(_spec) {
|
|
24
|
-
// TODO: Implement PodSecurityPolicy
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Add SecurityContext validation
|
|
28
|
-
*/
|
|
29
|
-
addSecurityContextConstraints(_spec) {
|
|
30
|
-
// TODO: Implement SecurityContextConstraints for OpenShift
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=validationResources.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validationResources.js","sourceRoot":"","sources":["../../../../src/lib/resources/validation/validationResources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,oBAAoB;IAC3D;;OAEG;IACH,gBAAgB,CAAC,KAAc;QAC7B,0CAA0C;QAC1C,+CAA+C;IACjD,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAAc;QACjC,oCAAoC;IACtC,CAAC;IAED;;OAEG;IACH,6BAA6B,CAAC,KAAc;QAC1C,2DAA2D;IAC7D,CAAC;CACF"}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Pod template utilities for generating reusable Kubernetes pod specifications
|
|
3
|
-
* @since 2.5.0
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Container specification for pod templates
|
|
7
|
-
* @interface ContainerSpec
|
|
8
|
-
* @since 2.5.0
|
|
9
|
-
*/
|
|
10
|
-
export interface ContainerSpec {
|
|
11
|
-
/** Container name */
|
|
12
|
-
name: string;
|
|
13
|
-
/** Container image */
|
|
14
|
-
image: string;
|
|
15
|
-
/** Container port */
|
|
16
|
-
port?: number;
|
|
17
|
-
/** Environment variables */
|
|
18
|
-
env?: Array<{
|
|
19
|
-
name: string;
|
|
20
|
-
value?: string;
|
|
21
|
-
valueFrom?: unknown;
|
|
22
|
-
}>;
|
|
23
|
-
/** Resource requirements */
|
|
24
|
-
resources?: {
|
|
25
|
-
requests?: {
|
|
26
|
-
cpu?: string;
|
|
27
|
-
memory?: string;
|
|
28
|
-
};
|
|
29
|
-
limits?: {
|
|
30
|
-
cpu?: string;
|
|
31
|
-
memory?: string;
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
/** Volume mounts */
|
|
35
|
-
volumeMounts?: Array<{
|
|
36
|
-
name: string;
|
|
37
|
-
mountPath: string;
|
|
38
|
-
readOnly?: boolean;
|
|
39
|
-
}>;
|
|
40
|
-
/** Security context */
|
|
41
|
-
securityContext?: unknown;
|
|
42
|
-
/** Liveness probe */
|
|
43
|
-
livenessProbe?: unknown;
|
|
44
|
-
/** Readiness probe */
|
|
45
|
-
readinessProbe?: unknown;
|
|
46
|
-
/** Startup probe */
|
|
47
|
-
startupProbe?: unknown;
|
|
48
|
-
/** Command to run */
|
|
49
|
-
command?: string[];
|
|
50
|
-
/** Arguments to command */
|
|
51
|
-
args?: string[];
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Pod template specification
|
|
55
|
-
* @interface PodTemplateSpec
|
|
56
|
-
* @since 2.5.0
|
|
57
|
-
*/
|
|
58
|
-
export interface PodTemplateSpec {
|
|
59
|
-
/** Pod name */
|
|
60
|
-
name: string;
|
|
61
|
-
/** Container specifications */
|
|
62
|
-
containers: ContainerSpec[];
|
|
63
|
-
/** Init containers */
|
|
64
|
-
initContainers?: ContainerSpec[];
|
|
65
|
-
/** Volumes */
|
|
66
|
-
volumes?: Array<unknown>;
|
|
67
|
-
/** Service account name */
|
|
68
|
-
serviceAccountName?: string;
|
|
69
|
-
/** Restart policy */
|
|
70
|
-
restartPolicy?: 'Always' | 'OnFailure' | 'Never';
|
|
71
|
-
/** Node selector */
|
|
72
|
-
nodeSelector?: Record<string, string>;
|
|
73
|
-
/** Tolerations */
|
|
74
|
-
tolerations?: Array<unknown>;
|
|
75
|
-
/** Affinity */
|
|
76
|
-
affinity?: unknown;
|
|
77
|
-
/** Security context */
|
|
78
|
-
securityContext?: unknown;
|
|
79
|
-
/** DNS policy */
|
|
80
|
-
dnsPolicy?: string;
|
|
81
|
-
/** Host network */
|
|
82
|
-
hostNetwork?: boolean;
|
|
83
|
-
/** Priority class name */
|
|
84
|
-
priorityClassName?: string;
|
|
85
|
-
/** Labels */
|
|
86
|
-
labels?: Record<string, string>;
|
|
87
|
-
/** Annotations */
|
|
88
|
-
annotations?: Record<string, string>;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Security profile for pod templates
|
|
92
|
-
* @since 2.5.0
|
|
93
|
-
*/
|
|
94
|
-
export type SecurityProfile = 'baseline' | 'restricted' | 'privileged';
|
|
95
|
-
/**
|
|
96
|
-
* Workload type for pod templates
|
|
97
|
-
* @since 2.5.0
|
|
98
|
-
*/
|
|
99
|
-
export type WorkloadType = 'web' | 'api' | 'worker' | 'database' | 'cache' | 'batch';
|
|
100
|
-
/**
|
|
101
|
-
* Creates a secure pod template with best practices
|
|
102
|
-
* @param spec - Pod template specification
|
|
103
|
-
* @param profile - Security profile to apply
|
|
104
|
-
* @returns Pod template object
|
|
105
|
-
*
|
|
106
|
-
* @example
|
|
107
|
-
* ```typescript
|
|
108
|
-
* const template = createSecurePodTemplate({
|
|
109
|
-
* name: 'web-app',
|
|
110
|
-
* containers: [{
|
|
111
|
-
* name: 'app',
|
|
112
|
-
* image: 'nginx:1.27',
|
|
113
|
-
* port: 80
|
|
114
|
-
* }]
|
|
115
|
-
* }, 'restricted');
|
|
116
|
-
* ```
|
|
117
|
-
*
|
|
118
|
-
* @since 2.5.0
|
|
119
|
-
*/
|
|
120
|
-
export declare function createSecurePodTemplate(spec: PodTemplateSpec, profile?: SecurityProfile): Record<string, unknown>;
|
|
121
|
-
/**
|
|
122
|
-
* Creates a workload-optimized pod template
|
|
123
|
-
* @param spec - Pod template specification
|
|
124
|
-
* @param workloadType - Type of workload
|
|
125
|
-
* @returns Pod template object
|
|
126
|
-
*
|
|
127
|
-
* @example
|
|
128
|
-
* ```typescript
|
|
129
|
-
* const template = createWorkloadPodTemplate({
|
|
130
|
-
* name: 'api-server',
|
|
131
|
-
* containers: [{
|
|
132
|
-
* name: 'api',
|
|
133
|
-
* image: 'myapi:latest',
|
|
134
|
-
* port: 8080
|
|
135
|
-
* }]
|
|
136
|
-
* }, 'api');
|
|
137
|
-
* ```
|
|
138
|
-
*
|
|
139
|
-
* @since 2.5.0
|
|
140
|
-
*/
|
|
141
|
-
export declare function createWorkloadPodTemplate(spec: PodTemplateSpec, workloadType: WorkloadType): Record<string, unknown>;
|
|
142
|
-
/**
|
|
143
|
-
* Creates a multi-container pod template with sidecar pattern
|
|
144
|
-
* @param mainContainer - Main application container
|
|
145
|
-
* @param sidecars - Sidecar containers
|
|
146
|
-
* @param options - Additional pod options
|
|
147
|
-
* @returns Pod template object
|
|
148
|
-
*
|
|
149
|
-
* @example
|
|
150
|
-
* ```typescript
|
|
151
|
-
* const template = createSidecarPodTemplate(
|
|
152
|
-
* { name: 'app', image: 'myapp:latest', port: 8080 },
|
|
153
|
-
* [{ name: 'proxy', image: 'envoy:latest', port: 9901 }],
|
|
154
|
-
* { name: 'app-with-proxy' }
|
|
155
|
-
* );
|
|
156
|
-
* ```
|
|
157
|
-
*
|
|
158
|
-
* @since 2.5.0
|
|
159
|
-
*/
|
|
160
|
-
export declare function createSidecarPodTemplate(mainContainer: ContainerSpec, sidecars: ContainerSpec[], options: Partial<PodTemplateSpec>): Record<string, unknown>;
|
|
161
|
-
/**
|
|
162
|
-
* Creates a pod template with health checks
|
|
163
|
-
* @param spec - Pod template specification
|
|
164
|
-
* @param healthConfig - Health check configuration
|
|
165
|
-
* @returns Pod template object
|
|
166
|
-
*
|
|
167
|
-
* @example
|
|
168
|
-
* ```typescript
|
|
169
|
-
* const template = createHealthyPodTemplate({
|
|
170
|
-
* name: 'web-app',
|
|
171
|
-
* containers: [{
|
|
172
|
-
* name: 'app',
|
|
173
|
-
* image: 'nginx:1.27',
|
|
174
|
-
* port: 80
|
|
175
|
-
* }]
|
|
176
|
-
* }, {
|
|
177
|
-
* httpPath: '/health',
|
|
178
|
-
* port: 80
|
|
179
|
-
* });
|
|
180
|
-
* ```
|
|
181
|
-
*
|
|
182
|
-
* @since 2.5.0
|
|
183
|
-
*/
|
|
184
|
-
export declare function createHealthyPodTemplate(spec: PodTemplateSpec, healthConfig: {
|
|
185
|
-
httpPath?: string;
|
|
186
|
-
port?: number;
|
|
187
|
-
initialDelaySeconds?: number;
|
|
188
|
-
periodSeconds?: number;
|
|
189
|
-
timeoutSeconds?: number;
|
|
190
|
-
failureThreshold?: number;
|
|
191
|
-
}): Record<string, unknown>;
|
|
192
|
-
//# sourceMappingURL=podTemplates.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"podTemplates.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/podTemplates.ts"],"names":[],"mappings":"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"}
|