cdk-preflight 0.0.68 → 0.0.70

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/.jsii CHANGED
@@ -9599,6 +9599,6 @@
9599
9599
  "symbolId": "src/index:PreflightOptions"
9600
9600
  }
9601
9601
  },
9602
- "version": "0.0.68",
9603
- "fingerprint": "sV8wavQjapoHvVLwB9oQ/jf8jMkh81T4P0bzDwV+orQ="
9602
+ "version": "0.0.70",
9603
+ "fingerprint": "YRxbcvB2MRHF9mENl5Lq5COPY+0ug/OWnod5RJNlkqo="
9604
9604
  }
package/docs/rules.md CHANGED
@@ -256,16 +256,72 @@
256
256
  | `pf-ecr-replication-destination` | AWS::ECR::ReplicationConfiguration | A replication destination must be another registry: not the deploy account in the deploy region, and not another partition | none |
257
257
  | `pf-ecr-repository-creation-template-applied-for` | AWS::ECR::RepositoryCreationTemplate | AppliedFor accepts REPLICATION, PULL_THROUGH_CACHE and CREATE_ON_PUSH only | none |
258
258
  | `pf-ecr-signing-profile-region` | AWS::ECR::SigningConfiguration | A signing profile ARN must be in the same region as the registry | none |
259
+ | `pf-ecs-awsfirelens-without-router` | AWS::ECS::TaskDefinition | The awsfirelens log driver requires a FireLens router container | none |
260
+ | `pf-ecs-awslogs-fargate-missing-stream-prefix` | AWS::ECS::TaskDefinition | awslogs on Fargate requires the awslogs-stream-prefix option | none |
261
+ | `pf-ecs-awslogs-missing-group` | AWS::ECS::TaskDefinition | The awslogs log driver requires the awslogs-group option | none |
262
+ | `pf-ecs-awsvpc-extra-hosts` | AWS::ECS::TaskDefinition | ExtraHosts is not supported with NetworkMode awsvpc | none |
263
+ | `pf-ecs-awsvpc-hostname` | AWS::ECS::TaskDefinition | Hostname is not supported with NetworkMode awsvpc | none |
264
+ | `pf-ecs-cluster-default-strategy-multiple-base` | AWS::ECS::Cluster | Only one default capacity provider may set Base | none |
265
+ | `pf-ecs-cluster-default-strategy-provider-not-listed` | AWS::ECS::Cluster | DefaultCapacityProviderStrategy may only use listed capacity providers | none |
266
+ | `pf-ecs-cluster-execute-command-default-with-log-config` | AWS::ECS::Cluster | A LogConfiguration requires ExecuteCommand Logging OVERRIDE | none |
267
+ | `pf-ecs-cluster-execute-command-override-without-log-config` | AWS::ECS::Cluster | ExecuteCommand Logging OVERRIDE requires a LogConfiguration | none |
259
268
  | `pf-ecs-cluster-name` | AWS::ECS::Cluster | ECS cluster names allow only letters, numbers, hyphen and underscore (max 255) | none |
260
269
  | `pf-ecs-container-definitions-empty` | AWS::ECS::TaskDefinition | ContainerDefinitions must contain at least one container | pending-engine |
261
270
  | `pf-ecs-container-memory-over-task` | AWS::ECS::TaskDefinition | A container Memory must not exceed the task-level Memory | none |
262
271
  | `pf-ecs-container-memory-required` | AWS::ECS::TaskDefinition | A container needs Memory or MemoryReservation when the task sets no Memory | none |
263
272
  | `pf-ecs-container-memory-reservation` | AWS::ECS::TaskDefinition | MemoryReservation must not exceed Memory | none |
273
+ | `pf-ecs-cp-managed-termination-scale-in-protection` | AWS::ECS::CapacityProvider | ManagedTerminationProtection requires scale-in protection on the Auto Scaling group | none |
274
+ | `pf-ecs-cp-name-reserved-prefix` | AWS::ECS::CapacityProvider | Capacity provider names cannot start with aws, ecs or fargate | none |
275
+ | `pf-ecs-cp-scaling-step-order` | AWS::ECS::CapacityProvider | MinimumScalingStepSize must not exceed MaximumScalingStepSize | none |
276
+ | `pf-ecs-dependson-complete-on-essential` | AWS::ECS::TaskDefinition | DependsOn COMPLETE / SUCCESS cannot target an essential container | none |
277
+ | `pf-ecs-dependson-container-missing` | AWS::ECS::TaskDefinition | DependsOn.ContainerName must name a container in the same task | none |
278
+ | `pf-ecs-dependson-healthy-without-healthcheck` | AWS::ECS::TaskDefinition | DependsOn Condition HEALTHY needs a HealthCheck on the target container | none |
264
279
  | `pf-ecs-duplicate-container-names` | AWS::ECS::TaskDefinition | Container names must be unique within a task definition | none |
280
+ | `pf-ecs-efs-access-point-with-root-directory` | AWS::ECS::TaskDefinition | An EFS access point requires RootDirectory to be "/" or omitted | none |
281
+ | `pf-ecs-efs-iam-without-transit-encryption` | AWS::ECS::TaskDefinition | EFS IAM authorization requires TransitEncryption ENABLED | none |
282
+ | `pf-ecs-efs-transit-encryption-port-without-encryption` | AWS::ECS::TaskDefinition | TransitEncryptionPort requires TransitEncryption ENABLED | none |
283
+ | `pf-ecs-environment-files-max` | AWS::ECS::TaskDefinition | A container can load at most 10 environment files | none |
284
+ | `pf-ecs-environment-files-type` | AWS::ECS::TaskDefinition | EnvironmentFiles.Value must be an S3 object ARN | none |
265
285
  | `pf-ecs-ephemeral-storage-range` | AWS::ECS::TaskDefinition | EphemeralStorage SizeInGiB must be 21-200 | pending-engine |
266
286
  | `pf-ecs-essential-container` | AWS::ECS::TaskDefinition | At least one container must be essential | none |
287
+ | `pf-ecs-fargate-capabilities-add` | AWS::ECS::TaskDefinition | Fargate only allows SYS_PTRACE in LinuxParameters.Capabilities.Add | none |
288
+ | `pf-ecs-fargate-container-cpu-over-task` | AWS::ECS::TaskDefinition | Container Cpu values must not exceed the task-level Cpu | none |
289
+ | `pf-ecs-fargate-devices` | AWS::ECS::TaskDefinition | LinuxParameters.Devices is not supported on Fargate | none |
290
+ | `pf-ecs-fargate-disable-networking` | AWS::ECS::TaskDefinition | DisableNetworking is not supported with NetworkMode awsvpc | none |
291
+ | `pf-ecs-fargate-dns-servers` | AWS::ECS::TaskDefinition | DnsServers is not supported with NetworkMode awsvpc | none |
292
+ | `pf-ecs-fargate-docker-security-options` | AWS::ECS::TaskDefinition | DockerSecurityOptions is not supported on Fargate | none |
293
+ | `pf-ecs-fargate-docker-volume` | AWS::ECS::TaskDefinition | DockerVolumeConfiguration is not supported on Fargate | none |
294
+ | `pf-ecs-fargate-ephemeral-storage-ec2` | AWS::ECS::TaskDefinition | EphemeralStorage is only supported on Fargate | none |
295
+ | `pf-ecs-fargate-execution-role-missing-awslogs` | AWS::ECS::TaskDefinition | awslogs on Fargate requires an ExecutionRoleArn | none |
296
+ | `pf-ecs-fargate-gpu-resource` | AWS::ECS::TaskDefinition | GPU resource requirements are not supported on Fargate | none |
297
+ | `pf-ecs-fargate-host-source-path` | AWS::ECS::TaskDefinition | Volumes[].Host.SourcePath is not supported on Fargate | none |
298
+ | `pf-ecs-fargate-inference-accelerator` | AWS::ECS::TaskDefinition | InferenceAccelerators is retired and always rejected | none |
299
+ | `pf-ecs-fargate-ipc-mode` | AWS::ECS::TaskDefinition | IpcMode is not supported on Fargate | none |
300
+ | `pf-ecs-fargate-links` | AWS::ECS::TaskDefinition | Links is not supported with NetworkMode awsvpc | none |
301
+ | `pf-ecs-fargate-log-driver-unsupported` | AWS::ECS::TaskDefinition | Fargate supports only a subset of log drivers | none |
302
+ | `pf-ecs-fargate-max-swap` | AWS::ECS::TaskDefinition | LinuxParameters.MaxSwap is not supported on Fargate | none |
267
303
  | `pf-ecs-fargate-network-mode` | AWS::ECS::TaskDefinition | Fargate task definitions require NetworkMode 'awsvpc' | none |
304
+ | `pf-ecs-fargate-pid-mode-host` | AWS::ECS::TaskDefinition | PidMode host is not supported on Fargate | none |
305
+ | `pf-ecs-fargate-placement-constraints` | AWS::ECS::TaskDefinition | Task placement constraints are not supported on Fargate | none |
306
+ | `pf-ecs-fargate-privileged` | AWS::ECS::TaskDefinition | Privileged is not supported on Fargate | none |
307
+ | `pf-ecs-fargate-shared-memory-size` | AWS::ECS::TaskDefinition | LinuxParameters.SharedMemorySize is not supported on Fargate | none |
268
308
  | `pf-ecs-fargate-task-cpu-memory` | AWS::ECS::TaskDefinition | FARGATE compatibility requires task-level Cpu and Memory | none |
309
+ | `pf-ecs-fargate-windows-cpu-under-1vcpu` | AWS::ECS::TaskDefinition | Windows tasks on Fargate need at least 1 vCPU | none |
310
+ | `pf-ecs-healthcheck-interval-range` | AWS::ECS::TaskDefinition | HealthCheck.Interval must be 5-300 seconds | none |
311
+ | `pf-ecs-healthcheck-retries-range` | AWS::ECS::TaskDefinition | HealthCheck.Retries must be 1-10 | none |
312
+ | `pf-ecs-healthcheck-start-period-range` | AWS::ECS::TaskDefinition | HealthCheck.StartPeriod must be 0-300 seconds | none |
313
+ | `pf-ecs-healthcheck-timeout-range` | AWS::ECS::TaskDefinition | HealthCheck.Timeout must be 2-60 seconds | none |
314
+ | `pf-ecs-host-network-host-port-mismatch` | AWS::ECS::TaskDefinition | NetworkMode host requires HostPort to equal ContainerPort | none |
315
+ | `pf-ecs-mountpoint-source-volume-missing` | AWS::ECS::TaskDefinition | MountPoints.SourceVolume must name a volume of the task definition | none |
316
+ | `pf-ecs-port-mapping-duplicate-name` | AWS::ECS::TaskDefinition | PortMappings.Name must be unique within a task definition | none |
317
+ | `pf-ecs-port-range-overlap` | AWS::ECS::TaskDefinition | ContainerPortRange values must not overlap | none |
318
+ | `pf-ecs-port-range-reversed` | AWS::ECS::TaskDefinition | The first port of ContainerPortRange must be below the last | none |
319
+ | `pf-ecs-port-range-with-host-port` | AWS::ECS::TaskDefinition | ContainerPortRange cannot be combined with a single port | none |
320
+ | `pf-ecs-proxy-configuration-awsvpc-required` | AWS::ECS::TaskDefinition | ProxyConfiguration requires NetworkMode awsvpc | none |
321
+ | `pf-ecs-proxy-configuration-container-missing` | AWS::ECS::TaskDefinition | ProxyConfiguration.ContainerName must name a container of the task definition | none |
322
+ | `pf-ecs-proxy-configuration-missing-required-props` | AWS::ECS::TaskDefinition | An APPMESH ProxyConfiguration needs the four port properties | none |
323
+ | `pf-ecs-restart-policy-attempt-period-range` | AWS::ECS::TaskDefinition | RestartPolicy.RestartAttemptPeriod must be 60-1800 seconds | none |
324
+ | `pf-ecs-secrets-without-execution-role` | AWS::ECS::TaskDefinition | Container Secrets require an ExecutionRoleArn | none |
269
325
  | `pf-ecs-service-codedeploy-lb` | AWS::ECS::Service | CODE_DEPLOY deployment controller requires a load balancer | none |
270
326
  | `pf-ecs-service-daemon-desired-count` | AWS::ECS::Service | DAEMON scheduling strategy does not accept DesiredCount | none |
271
327
  | `pf-ecs-service-deployment-percent` | AWS::ECS::Service | DeploymentConfiguration percent bounds (min <= 100, max >= 100) | none |
@@ -275,7 +331,41 @@
275
331
  | `pf-ecs-service-name` | AWS::ECS::Service | ECS service names allow only letters, numbers, hyphen and underscore (max 255) | none |
276
332
  | `pf-ecs-service-network-config-mode` | AWS::ECS::Service<br>AWS::ECS::TaskDefinition | NetworkConfiguration requires an awsvpc task definition | none |
277
333
  | `pf-ecs-service-platform-version-ec2` | AWS::ECS::Service | PlatformVersion is not allowed with the EC2 launch type | none |
334
+ | `pf-ecs-svc-az-rebalancing-with-daemon` | AWS::ECS::Service | AvailabilityZoneRebalancing is not supported for DAEMON services | none |
335
+ | `pf-ecs-svc-binpack-field` | AWS::ECS::Service | A binpack placement strategy accepts only cpu or memory | none |
336
+ | `pf-ecs-svc-capacity-provider-multiple-base` | AWS::ECS::Service | Only one capacity provider in a strategy may set Base | none |
337
+ | `pf-ecs-svc-capacity-provider-zero-weight` | AWS::ECS::Service | A capacity provider strategy needs at least one non-zero Weight | none |
338
+ | `pf-ecs-svc-circuit-breaker-with-code-deploy` | AWS::ECS::Service | DeploymentCircuitBreaker only works with the ECS deployment controller | none |
339
+ | `pf-ecs-svc-classic-lb-with-fargate` | AWS::ECS::Service | Classic Load Balancers are not supported with Fargate | none |
340
+ | `pf-ecs-svc-connect-client-alias-dns-name` | AWS::ECS::Service | A Service Connect ClientAlias.DnsName must be a valid DNS name | none |
341
+ | `pf-ecs-svc-connect-client-aliases-max` | AWS::ECS::Service | A Service Connect service accepts at most one ClientAlias | none |
342
+ | `pf-ecs-svc-connect-port-name-missing` | AWS::ECS::Service | Service Connect PortName must match a named port mapping | none |
343
+ | `pf-ecs-svc-connect-without-namespace` | AWS::ECS::Service | Service Connect needs a Namespace on the service or the cluster | none |
344
+ | `pf-ecs-svc-daemon-max-percent` | AWS::ECS::Service | A DAEMON service requires DeploymentConfiguration.MaximumPercent 100 | none |
345
+ | `pf-ecs-svc-daemon-with-placement-strategies` | AWS::ECS::Service | A DAEMON service does not accept placement strategies | none |
346
+ | `pf-ecs-svc-ebs-iops-unsupported-type` | AWS::ECS::Service | ManagedEBSVolume Iops is only valid for io1, io2 and gp3 | none |
347
+ | `pf-ecs-svc-ebs-name-not-in-taskdef` | AWS::ECS::Service | VolumeConfigurations.Name must match a ConfiguredAtLaunch volume | none |
348
+ | `pf-ecs-svc-ebs-throughput-non-gp3` | AWS::ECS::Service | ManagedEBSVolume Throughput is only valid for gp3 | none |
349
+ | `pf-ecs-svc-ebs-volume-without-size-or-snapshot` | AWS::ECS::Service | A managed EBS volume needs SizeInGiB or SnapshotId | none |
350
+ | `pf-ecs-svc-external-with-load-balancers` | AWS::ECS::Service | An EXTERNAL deployment controller does not accept LoadBalancers | none |
351
+ | `pf-ecs-svc-external-with-taskdef` | AWS::ECS::Service | An EXTERNAL deployment controller does not accept TaskDefinition | none |
352
+ | `pf-ecs-svc-lb-container-name-missing` | AWS::ECS::Service | LoadBalancers.ContainerName must name a container of the task definition | none |
353
+ | `pf-ecs-svc-lb-container-port-missing` | AWS::ECS::Service | LoadBalancers.ContainerPort must match a port mapping of the container | none |
354
+ | `pf-ecs-svc-min-healthy-over-max-percent` | AWS::ECS::Service | MinimumHealthyPercent must stay below MaximumPercent | none |
355
+ | `pf-ecs-svc-placement-constraint-distinct-instance-expression` | AWS::ECS::Service | distinctInstance placement constraints take no Expression | none |
356
+ | `pf-ecs-svc-placement-strategies-max6` | AWS::ECS::Service | A service accepts at most 5 placement strategies | none |
357
+ | `pf-ecs-svc-random-with-field` | AWS::ECS::Service | A random placement strategy takes no Field | none |
358
+ | `pf-ecs-svc-registries-multiple` | AWS::ECS::Service | A service accepts at most one service registry | none |
359
+ | `pf-ecs-svc-registries-port-with-awsvpc` | AWS::ECS::Service | awsvpc services address a registry by Port, not ContainerName/ContainerPort | none |
360
+ | `pf-ecs-svc-role-with-awsvpc` | AWS::ECS::Service | awsvpc services must use the service-linked role, not Role | none |
361
+ | `pf-ecs-svc-role-without-load-balancers` | AWS::ECS::Service | Service Role is only valid together with LoadBalancers | none |
278
362
  | `pf-ecs-taskdef-family` | AWS::ECS::TaskDefinition | Task definition Family allows only letters, numbers, hyphen and underscore | none |
363
+ | `pf-ecs-taskset-lb-container-missing` | AWS::ECS::TaskSet | TaskSet LoadBalancers.ContainerName must name a container of the task definition | none |
364
+ | `pf-ecs-taskset-platform-version-ec2` | AWS::ECS::TaskSet | TaskSet PlatformVersion is not allowed with the EC2 launch type | none |
365
+ | `pf-ecs-ulimit-soft-over-hard` | AWS::ECS::TaskDefinition | A Ulimit SoftLimit must not exceed its HardLimit | none |
366
+ | `pf-ecs-volume-not-referenced` | AWS::ECS::TaskDefinition | Every task definition volume must be mounted by a container | none |
367
+ | `pf-ecs-volumesfrom-source-container-missing` | AWS::ECS::TaskDefinition | VolumesFrom.SourceContainer must name a container of the task definition | none |
368
+ | `pf-ecs-windows-arm64` | AWS::ECS::TaskDefinition | CpuArchitecture ARM64 is not available for Windows | none |
279
369
  | `pf-efs-availability-zone-region` | AWS::EFS::FileSystem | AvailabilityZoneName must name an Availability Zone of the deploy region | none |
280
370
  | `pf-efs-file-system-policy` | AWS::EFS::FileSystem | A file system policy may only name its own file system and must not lock out PutFileSystemPolicy | none |
281
371
  | `pf-efs-file-system-reference-region` | AWS::EFS::MountTarget<br>AWS::EFS::AccessPoint | A file system ARN passed as FileSystemId must be in the deploy region | none |
package/lib/index.js CHANGED
@@ -17,7 +17,7 @@ const rules_generated_1 = require("./rules.generated");
17
17
  * Preflight.apply(app);
18
18
  */
19
19
  class Preflight {
20
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-preflight.Preflight", version: "0.0.68" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-preflight.Preflight", version: "0.0.70" };
21
21
  /**
22
22
  * Register the cdk-preflight rules on an App or Stage.
23
23
  */