timonel 2.7.2 → 2.8.0-beta.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.
@@ -61,7 +61,22 @@ export interface NetworkPolicySpec {
61
61
  annotations?: Record<string, string>;
62
62
  }
63
63
  /**
64
- * Ingress specification
64
+ * TLS configuration for Ingress
65
+ * @since 2.8.0
66
+ */
67
+ export interface IngressTLSConfig {
68
+ /** Hosts covered by the TLS certificate */
69
+ hosts?: string[];
70
+ /** Name of the secret containing the TLS certificate and key */
71
+ secretName?: string;
72
+ }
73
+ /**
74
+ * Environment types for Ingress security validation
75
+ * @since 2.8.0
76
+ */
77
+ export type IngressEnvironment = 'development' | 'staging' | 'production';
78
+ /**
79
+ * Ingress specification with enhanced TLS validation and security defaults
65
80
  * @since 2.7.0
66
81
  */
67
82
  export interface IngressSpec {
@@ -69,11 +84,8 @@ export interface IngressSpec {
69
84
  name: string;
70
85
  /** Ingress class name */
71
86
  ingressClassName?: string;
72
- /** TLS configuration */
73
- tls?: Array<{
74
- hosts?: string[];
75
- secretName?: string;
76
- }>;
87
+ /** TLS configuration with validation */
88
+ tls?: IngressTLSConfig[];
77
89
  /** Ingress rules */
78
90
  rules?: Array<{
79
91
  host?: string;
@@ -93,6 +105,12 @@ export interface IngressSpec {
93
105
  }>;
94
106
  };
95
107
  }>;
108
+ /** Environment for security validation (production requires TLS) */
109
+ environment?: IngressEnvironment;
110
+ /** Force TLS requirement regardless of environment */
111
+ requireTLS?: boolean;
112
+ /** Automatically redirect HTTP to HTTPS */
113
+ forceSSLRedirect?: boolean;
96
114
  /** Resource labels */
97
115
  labels?: Record<string, string>;
98
116
  /** Resource annotations */
@@ -104,6 +122,8 @@ export interface IngressSpec {
104
122
  * @since 2.7.0
105
123
  */
106
124
  export declare class NetworkResources extends BaseResourceProvider {
125
+ private static readonly TLS_REQUIRED_ERROR_MESSAGE;
126
+ private static readonly NETWORKING_API_VERSION;
107
127
  /**
108
128
  * Creates a NetworkPolicy resource
109
129
  * @param spec - NetworkPolicy specification
@@ -146,9 +166,62 @@ export declare class NetworkResources extends BaseResourceProvider {
146
166
  */
147
167
  addAllowFromNamespaceNetworkPolicy(name: string, podSelector: NetworkPolicySpec['podSelector'], fromNamespaceSelector: NetworkPolicyRule['namespaceSelector'], ports?: NetworkPolicyRule['ports'], labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
148
168
  /**
149
- * Creates an Ingress resource
169
+ * Validates TLS configuration for security compliance
170
+ * @param spec - Ingress specification to validate
171
+ * @throws Error if TLS validation fails
172
+ * @since 2.8.0
173
+ */
174
+ private validateIngressSecurity;
175
+ /**
176
+ * Validates hostname format (supports wildcards) with ReDoS protection
177
+ * @param hostname - Hostname to validate
178
+ * @returns True if hostname is valid
179
+ * @since 2.8.0
180
+ */
181
+ private isValidHostname;
182
+ /**
183
+ * Applies security defaults to Ingress annotations
184
+ * @param spec - Ingress specification
185
+ * @returns Enhanced annotations with security defaults
186
+ * @since 2.8.0
187
+ */
188
+ private applySecurityDefaults;
189
+ /**
190
+ * Creates a secure Ingress with TLS validation and environment-aware defaults
191
+ * @param spec - Enhanced Ingress specification
192
+ * @returns Created Ingress ApiObject
193
+ * @example
194
+ * ```typescript
195
+ * // Production Ingress with mandatory TLS
196
+ * networkResources.addSecureIngress({
197
+ * name: 'web-ingress',
198
+ * environment: 'production',
199
+ * tls: [{
200
+ * hosts: ['example.com'],
201
+ * secretName: 'example-tls'
202
+ * }],
203
+ * rules: [{
204
+ * host: 'example.com',
205
+ * http: {
206
+ * paths: [{
207
+ * path: '/',
208
+ * pathType: 'Prefix',
209
+ * backend: {
210
+ * service: { name: 'web-service', port: { number: 80 } }
211
+ * }
212
+ * }]
213
+ * }
214
+ * }]
215
+ * });
216
+ * ```
217
+ * @since 2.8.0
218
+ */
219
+ addSecureIngress(spec: IngressSpec): ApiObject;
220
+ /**
221
+ * Creates an Ingress resource with optional TLS validation
150
222
  * @param spec - Ingress specification
151
223
  * @returns Created Ingress ApiObject
224
+ * @deprecated Use addSecureIngress for enhanced security validation
152
225
  * @since 2.7.0
153
226
  */
154
227
  addIngress(spec: IngressSpec): ApiObject;
@@ -1 +1 @@
1
- {"version":3,"file":"networkResources.d.ts","sourceRoot":"","sources":["../../../../src/lib/resources/network/networkResources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"networkResources.d.ts","sourceRoot":"","sources":["../../../../src/lib/resources/network/networkResources.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export class NetworkResources extends BaseResourceProvider {
28
28
  if (spec.egress) {
29
29
  policySpec['egress'] = spec.egress;
30
30
  }
31
- return this.createApiObject(spec.name, 'networking.k8s.io/v1', 'NetworkPolicy', policySpec, spec.labels, spec.annotations);
31
+ return this.createApiObject(spec.name, NetworkResources.NETWORKING_API_VERSION, 'NetworkPolicy', policySpec, spec.labels, spec.annotations);
32
32
  }
33
33
  /**
34
34
  * Creates a deny-all NetworkPolicy that blocks all ingress and egress traffic
@@ -107,12 +107,191 @@ export class NetworkResources extends BaseResourceProvider {
107
107
  });
108
108
  }
109
109
  /**
110
- * Creates an Ingress resource
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
111
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
112
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
113
275
  * @since 2.7.0
114
276
  */
115
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
116
295
  const ingressSpec = {};
117
296
  if (spec.ingressClassName) {
118
297
  ingressSpec['ingressClassName'] = spec.ingressClassName;
@@ -123,7 +302,9 @@ export class NetworkResources extends BaseResourceProvider {
123
302
  if (spec.rules) {
124
303
  ingressSpec['rules'] = spec.rules;
125
304
  }
126
- return this.createApiObject(spec.name, 'networking.k8s.io/v1', 'Ingress', ingressSpec, spec.labels, spec.annotations);
305
+ return this.createApiObject(spec.name, NetworkResources.NETWORKING_API_VERSION, 'Ingress', ingressSpec, spec.labels, spec.annotations);
127
306
  }
128
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';
129
310
  //# sourceMappingURL=networkResources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"networkResources.js","sourceRoot":"","sources":["../../../../src/lib/resources/network/networkResources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"networkResources.js","sourceRoot":"","sources":["../../../../src/lib/resources/network/networkResources.ts"],"names":[],"mappings":"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"}
@@ -751,7 +751,7 @@ export declare class Rutter {
751
751
  protocol?: 'TCP' | 'UDP' | 'SCTP';
752
752
  }>, labels?: Record<string, string>, annotations?: Record<string, string>): ApiObject;
753
753
  /**
754
- * Creates an Ingress resource
754
+ * Creates an Ingress resource with optional TLS validation
755
755
  * @param spec - Ingress specification
756
756
  * @returns Created Ingress ApiObject
757
757
  *
@@ -774,9 +774,95 @@ export declare class Rutter {
774
774
  * });
775
775
  * ```
776
776
  *
777
+ * @deprecated Use addSecureIngress for enhanced security validation
778
+ * @since 2.7.0
779
+ */
780
+ /**
781
+ * Creates an Ingress resource for external access to services
782
+ * @param spec - Ingress specification
783
+ * @returns Created Ingress ApiObject
784
+ * @deprecated Use addSecureIngress for enhanced security validation
777
785
  * @since 2.7.0
778
786
  */
779
787
  addIngress(spec: IngressSpec): ApiObject;
788
+ /**
789
+ * Creates a simple Ingress resource with optional TLS
790
+ * @param name - Resource name
791
+ * @param host - Domain host
792
+ * @param serviceName - Backend service name
793
+ * @param servicePort - Backend service port
794
+ * @param options - Optional configuration
795
+ * @returns Created Ingress ApiObject
796
+ * @since 2.8.1
797
+ */
798
+ addIngress(name: string, host: string, serviceName: string, servicePort: number, options?: {
799
+ tls?: boolean | string;
800
+ className?: string;
801
+ annotations?: Record<string, string>;
802
+ path?: string;
803
+ pathType?: 'Exact' | 'Prefix' | 'ImplementationSpecific';
804
+ sslRedirect?: boolean;
805
+ certManager?: string;
806
+ }): ApiObject;
807
+ /**
808
+ * Creates a simple Ingress with enhanced options
809
+ * @private
810
+ */
811
+ private createSimpleIngress;
812
+ /**
813
+ * Builds annotations for Ingress based on options
814
+ * @private
815
+ */
816
+ private buildIngressAnnotations;
817
+ /**
818
+ * Adds SSL redirect annotation based on class and options
819
+ * @private
820
+ */
821
+ private addSSLRedirectAnnotation;
822
+ /**
823
+ * Adds cert-manager annotation if specified
824
+ * @private
825
+ */
826
+ private addCertManagerAnnotation;
827
+ /**
828
+ * Adds NGINX-specific annotations
829
+ * @private
830
+ */
831
+ private addNginxAnnotations;
832
+ /**
833
+ * Creates a secure Ingress resource with TLS validation and environment-aware security defaults
834
+ * @param spec - Enhanced Ingress specification with security options
835
+ * @returns Created Ingress ApiObject
836
+ *
837
+ * @example
838
+ * ```typescript
839
+ * // Production Ingress with mandatory TLS
840
+ * rutter.addSecureIngress({
841
+ * name: 'secure-web-ingress',
842
+ * environment: 'production',
843
+ * tls: [{
844
+ * hosts: ['secure.example.com'],
845
+ * secretName: 'secure-example-tls'
846
+ * }],
847
+ * forceSSLRedirect: true,
848
+ * rules: [{
849
+ * host: 'secure.example.com',
850
+ * http: {
851
+ * paths: [{
852
+ * path: '/',
853
+ * pathType: 'Prefix',
854
+ * backend: {
855
+ * service: { name: 'web-service', port: { number: 80 } }
856
+ * }
857
+ * }]
858
+ * }
859
+ * }]
860
+ * });
861
+ * ```
862
+ *
863
+ * @since 2.8.0
864
+ */
865
+ addSecureIngress(spec: IngressSpec): ApiObject;
780
866
  /**
781
867
  * Creates a ServiceAccount with ECR access annotations
782
868
  * @param spec - ECR ServiceAccount specification
@@ -1 +1 @@
1
- {"version":3,"file":"rutter.d.ts","sourceRoot":"","sources":["../../src/lib/rutter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rutter.d.ts","sourceRoot":"","sources":["../../src/lib/rutter.ts"],"names":[],"mappings":"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"}