|
362 | 362 | - Ensured clean VS Code environment without any AI prompts or agent interfaces |
363 | 363 | - _Requirements: 8.1, 8.2, 8.3, 8.4_ |
364 | 364 |
|
| 365 | +- [x] 11.27 Fix CDK construct naming to eliminate CloudFormation logical ID duplication |
| 366 | + - Fixed redundant CloudFormation logical IDs caused by duplicate naming patterns in CDK constructs |
| 367 | + - Updated Database construct: "DatabaseSecret" → "Secret", "DatabasePasswordSecret" → "PasswordSecret", "DatabaseCluster" → "Cluster" |
| 368 | + - Updated IDE construct: "IdePasswordSecret" → "PasswordSecret", "IdeRole" → "Role", "IdeSecurityGroup" → "SecurityGroup" |
| 369 | + - Updated EKS construct: "IdeInstanceAccessEntry" → "InstanceAccessEntry", "SecretsStoreCsiDriver" → "SecretsStoreDriver" |
| 370 | + - Updated CodeBuild and VPC constructs with consistent naming patterns |
| 371 | + - Eliminated problematic CloudFormation logical IDs: "IdeIdePasswordSecret" → "IdePasswordSecret", "DatabaseDatabaseSecret" → "DatabaseSecret" |
| 372 | + - Verified template generation produces clean logical IDs without duplication patterns |
| 373 | + - Applied consistent naming convention: construct name + resource type (e.g., Ide + PasswordSecret = IdePasswordSecret) |
| 374 | + - _Requirements: 1.1, 5.6_ |
| 375 | + |
365 | 376 | ## Java-on-AWS Migration (100.x) |
366 | 377 |
|
367 | | -- [ ] 100.1 Analyze java-on-aws workshop requirements |
368 | | - - Review infrastructure/cfn/unicornstore-stack.yaml to identify required resources |
369 | | - - Document EKS, Database, and other workshop-specific components |
370 | | - - Map existing resources to new construct pattern |
371 | | - - Plan conditional logic for WorkshopStack |
372 | | - - Reference unicorn-roles-analysis.md for IAM role requirements |
| 378 | +- [x] 100.1 Analyze java-on-aws workshop requirements |
| 379 | + - Reviewed infrastructure/cfn/unicornstore-stack.yaml and identified required resources ✅ |
| 380 | + - Documented EKS, Database, and other workshop-specific components ✅ |
| 381 | + - Mapped existing resources to new construct pattern ✅ |
| 382 | + - Planned conditional logic for WorkshopStack ✅ |
| 383 | + - Referenced unicorn-roles-analysis.md for IAM role requirements ✅ |
373 | 384 | - _Requirements: 5.4, 5.5_ |
374 | 385 |
|
375 | | -- [ ] 100.2 Create EKS construct using EKS v2 with Auto Mode |
376 | | - - Create infra/cdk/src/main/java/sample/com/constructs/Eks.java using software.amazon.awscdk.services.eks.v2.alpha |
377 | | - - Configure workshop-eks with Auto Mode, version 1.34, system+general-purpose node pools |
378 | | - - Add 3 EKS add-ons: AWS Secrets Store CSI Driver, AWS Mountpoint S3 CSI Driver, EKS Pod Identity Agent |
379 | | - - Create Access Entry for WSParticipantRole AND IDE instance role with cluster admin permissions |
380 | | - - Use Access Entries authentication mode instead of ConfigMap-based authentication |
381 | | - - Enable all log types (api, audit, authenticator, controllerManager, scheduler) for comprehensive monitoring |
382 | | - - EKS cluster should depend only on VPC for parallel deployment with Database |
| 386 | +- [x] 100.2 Create EKS construct using EKS v2 with Auto Mode |
| 387 | + - Created infra/cdk/src/main/java/sample/com/constructs/Eks.java using software.amazon.awscdk.services.eks.v2.alpha ✅ |
| 388 | + - Configured workshop-eks with Auto Mode, version 1.34, system+general-purpose node pools ✅ |
| 389 | + - Added 3 EKS add-ons: AWS Secrets Store CSI Driver, AWS Mountpoint S3 CSI Driver, EKS Pod Identity Agent ✅ |
| 390 | + - Created Access Entry for WSParticipantRole AND IDE instance role with cluster admin permissions ✅ |
| 391 | + - Used Access Entries authentication mode instead of ConfigMap-based authentication ✅ |
| 392 | + - Enabled all log types (api, audit, authenticator, controllerManager, scheduler) for comprehensive monitoring ✅ |
| 393 | + - EKS cluster depends only on VPC for parallel deployment with Database ✅ |
383 | 394 | - _Requirements: 13.1, 13.2, 13.3, 13.4, 13.7, 13.8, 15.3, 15.5, 15.6, 19.1_ |
384 | 395 |
|
385 | 396 | - [x] 100.3 Create Database construct with universal naming |
|
395 | 406 | - Consolidate RDS and database schema setup into single construct |
396 | 407 | - _Requirements: 5.6, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6_ |
397 | 408 |
|
398 | | -- [x] 100.4 Update WorkshopStack for java-on-aws with EKS integration (Database part complete) |
| 409 | +- [x] 100.4 Update WorkshopStack for java-on-aws with EKS integration |
399 | 410 | - Database already conditionally created for non-base templates (same as Roles) ✅ |
400 | | - - Need to add conditional EKS creation: if (!"base".equals(workshopType) && !"java-ai-agents".equals(workshopType)) |
401 | | - - Test TEMPLATE_TYPE=java-on-aws generates template with VPC, IDE, CodeBuild, Roles, Database, and EKS resources |
402 | | - - Validate generated template includes all EKS add-ons and Access Entries configuration |
403 | | - - Ensure template supports both java-on-aws and base templates from same codebase |
| 411 | + - Added conditional EKS creation: if (!"base".equals(templateType) && !"java-ai-agents".equals(templateType)) ✅ |
| 412 | + - Integrated EKS with IDE security group: eks.ideInternalSecurityGroup(ide.getIdeInternalSecurityGroup()) ✅ |
| 413 | + - Integrated EKS with IDE instance role: eks.ideInstanceRole(ideProps.getIdeRole()) ✅ |
| 414 | + - Tested TEMPLATE_TYPE=java-on-aws generates template with VPC, IDE, CodeBuild, Roles, Database, and EKS resources ✅ |
| 415 | + - Validated generated template includes all EKS add-ons and Access Entries configuration ✅ |
| 416 | + - Ensured template supports both java-on-aws and base templates from same codebase ✅ |
404 | 417 | - _Requirements: 1.2, 1.3, 13.1, 16.1_ |
405 | 418 |
|
406 | | -- [ ] 100.5 Create EKS post-deployment setup script |
407 | | - - Create infra/scripts/setup/eks.sh for EKS cluster configuration (based on original infrastructure/scripts/setup/eks.sh) |
408 | | - - Use infra/scripts/lib/common.sh for consistent emoji-based logging and error handling |
409 | | - - Use infra/scripts/lib/wait-for-resources.sh wait_for_eks_cluster() function for cluster readiness |
410 | | - - Check cluster status and wait until kubectl get ns works successfully before proceeding |
411 | | - - Update kubeconfig and add workshop-eks to kubectl context |
412 | | - - Deploy GP3 StorageClass (encrypted, default) since EKS Auto Mode doesn't provide encrypted GP3 by default |
413 | | - - Deploy ALB IngressClass + IngressClassParams for Application Load Balancer integration |
414 | | - - Create SecretProviderClass for database secrets (workshop-db-secret, workshop-db-password-secret, workshop-db-connection-string) |
415 | | - - Configure EKS Pod Identity with AWSSecretsManagerClientReadOnlyAccess managed policy |
416 | | - - Verify all three add-ons are installed and functional before completing |
| 419 | +- [x] 100.5 Create EKS post-deployment setup script |
| 420 | + - Created infra/scripts/setup/eks.sh for EKS cluster configuration (based on original infrastructure/scripts/setup/eks.sh) ✅ |
| 421 | + - Used infra/scripts/lib/common.sh for consistent emoji-based logging and error handling ✅ |
| 422 | + - Used infra/scripts/lib/wait-for-resources.sh wait_for_eks_cluster() function for cluster readiness ✅ |
| 423 | + - Checked cluster status and wait until kubectl get ns works successfully before proceeding ✅ |
| 424 | + - Updated kubeconfig and add workshop-eks to kubectl context ✅ |
| 425 | + - Deployed GP3 StorageClass (encrypted, default) since EKS Auto Mode doesn't provide encrypted GP3 by default ✅ |
| 426 | + - Deployed ALB IngressClass + IngressClassParams for Application Load Balancer integration ✅ |
| 427 | + - Created SecretProviderClass for database secrets (workshop-db-secret, workshop-db-password-secret, workshop-db-connection-string) ✅ |
| 428 | + - Configured EKS Pod Identity with AWSSecretsManagerClientReadOnlyAccess managed policy ✅ |
| 429 | + - Verified all three add-ons are installed and functional before completing ✅ |
417 | 430 | - _Requirements: 15.1, 15.2, 14.2, 14.3, 14.4, 15.7, 18.1, 18.2, 18.3, 18.4, 18.6_ |
418 | 431 |
|
419 | | -- [ ] 100.6 Create java-on-aws workshop orchestration script |
420 | | - - Create infra/scripts/ide/java-on-aws.sh that executes base.sh and EKS implementation |
421 | | - - Script should call base.sh first for foundational development tools |
422 | | - - Then execute EKS-specific setup (cluster configuration, add-ons, storage classes) |
423 | | - - Implement proper error handling and progress feedback between base and EKS phases |
424 | | - - Test script execution and validate all setup steps complete successfully |
| 432 | +- [x] 100.6 Create java-on-aws workshop orchestration script |
| 433 | + - Created infra/scripts/ide/java-on-aws.sh that executes base.sh and EKS implementation ✅ |
| 434 | + - Script calls base.sh first for foundational development tools ✅ |
| 435 | + - Then executes EKS-specific setup (cluster configuration, add-ons, storage classes) ✅ |
| 436 | + - Implemented proper error handling and progress feedback between base and EKS phases ✅ |
| 437 | + - Tested script execution and validated all setup steps complete successfully ✅ |
425 | 438 | - _Requirements: 3.1, 3.2_ |
426 | 439 |
|
427 | 440 | - [ ]* 100.7 Write property test for EKS Access Entry configuration |
|
440 | 453 | - **Property 22: Workshop Verification** |
441 | 454 | - **Validates: Requirements 17.4** |
442 | 455 |
|
443 | | -- [ ] 100.11 Validate java-on-aws migration |
444 | | - - Generate template with TEMPLATE_TYPE=java-on-aws and verify all EKS resources are present |
445 | | - - Test template generation for both base and java-on-aws from same codebase |
446 | | - - Verify EKS add-ons, Access Entries, and database resources are properly configured |
447 | | - - Document template differences and ensure they provide equivalent functionality |
| 456 | +- [x] 100.11 Validate java-on-aws migration |
| 457 | + - Generated template with TEMPLATE_TYPE=java-on-aws and verified all EKS resources are present ✅ |
| 458 | + - Tested template generation for both base and java-on-aws from same codebase ✅ |
| 459 | + - Verified EKS add-ons, Access Entries, and database resources are properly configured ✅ |
| 460 | + - Documented template differences and ensured they provide equivalent functionality ✅ |
448 | 461 | - _Requirements: 1.2, 1.3, 16.1_ |
449 | 462 |
|
450 | 463 | ## Java-on-EKS Migration (200.x) |
|
0 commit comments