Commit Graph

34 Commits

Author SHA1 Message Date
Luca Sacchi Ricciardi
72a634e357 docs(02-03): complete infrastructure implementation (GREEN phase) plan
- Created Dockerfile with non-root user (labuser UID 1000)
- Created docker-compose.yml with user directive (1000:1000)
- Created infrastructure verification script (6/6 tests pass)
- All INF-01 requirements satisfied
- TDD GREEN phase complete

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:33:22 +01:00
Luca Sacchi Ricciardi
e4c497db72 feat(02-03): create infrastructure verification script
- Test 1: docker-compose.yml is valid YAML
- Test 2: Dockerfile exists and has USER directive
- Test 3: docker-compose.yml has user directive (1000:1000)
- Test 4: Docker image builds successfully
- Test 5: Container runs as non-root (labuser)
- Test 6: docker-compose service verification

GREEN phase check: All infrastructure tests pass

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:32:23 +01:00
Luca Sacchi Ricciardi
c534d5949b feat(02-03): create docker-compose.yml with user directive
- Defines service with local image build
- Specifies user directive (1000:1000) for non-root execution
- Includes container_name for easy reference
- Follows INF-01 requirement (no root)
- Enables test scripts to verify configuration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:29:41 +01:00
Luca Sacchi Ricciardi
317d94aca5 feat(02-03): create Dockerfile with non-root user
- Base image: alpine:3.19 (small, secure)
- Creates non-root user with UID/GID 1000
- Switches to non-root user with USER directive
- CMD demonstrates non-root execution with whoami
- Follows INF-01 requirement (no root execution)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:29:16 +01:00
Luca Sacchi Ricciardi
a0c49366b5 docs(02-02): complete Diátxis documentation plan 2026-03-24 22:28:02 +01:00
Luca Sacchi Ricciardi
77235820ac feat(02-02): create explanation document for IAM parallels
- docker-iam-parallels.md: Conceptual mapping between Docker and AWS IAM
- Side-by-side comparisons with practical examples
- Covers PARA-01, PARA-03, PARA-04 requirements
- Explains least privilege principle and best practices
- Links to AWS documentation for deeper learning
2026-03-24 22:27:03 +01:00
Luca Sacchi Ricciardi
cc3a28f192 feat(02-02): create reference documents with technical specifications
- docker-socket-permissions.md: Docker socket technical specs and access control
- linux-users-groups.md: Linux user management reference with commands
- iam-parallels.md: Quick reference table for IAM parallelism
- Pure reference material with tables and specifications
2026-03-24 22:26:25 +01:00
Luca Sacchi Ricciardi
c759270e95 feat(02-02): create how-to guides for common procedures
- add-user-to-docker-group.md: Quick guide for adding users to docker group
- verify-non-root-container.md: Multiple methods to verify non-root execution
- reset-docker-permissions.md: Complete permission reset guide with troubleshooting
- Procedure-focused, command-first structure
2026-03-24 22:25:31 +01:00
Luca Sacchi Ricciardi
7bd61111f3 feat(02-02): create tutorial part 3 - verification and non-root containers
- Step-by-step verification of IAM configuration
- Multiple methods to verify non-root execution
- Explains principle of least privilege
- Integrates with automated test scripts
2026-03-24 22:24:52 +01:00
Luca Sacchi Ricciardi
b031f58dfd feat(02-02): create tutorial part 2 - Docker group permissions
- Step-by-step guide for adding users to docker group
- Explains group membership evaluation timing issue
- Shows parallelism with AWS IAM User + Policy
- Includes multiple troubleshooting scenarios
2026-03-24 22:24:26 +01:00
Luca Sacchi Ricciardi
b130b1cc3e feat(02-02): create tutorial part 1 - Linux users
- Step-by-step user creation guide for lab01_student
- Follows 'little often' principle with small incremental steps
- Includes verification at each step
- Troubleshooting section for common issues
2026-03-24 22:24:01 +01:00
Luca Sacchi Ricciardi
c6e08ca17d docs(02-01): complete test infrastructure plan
- Created 02-01-SUMMARY.md with execution results
- Updated STATE.md: Phase 2 Plan 01 complete, advanced to Plan 02
- Updated ROADMAP.md: Phase 2 progress (1/3 plans complete)
- Duration: 5 minutes, 5 commits, 565 lines of test code
- All tests passing (RED phase expected behavior)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:22:15 +01:00
Luca Sacchi Ricciardi
1a17eeb3a5 test(02-01): add test orchestration script for lab 01
- Created run-all-tests.sh to execute test suite in sequence
- Fail-fast approach stops on first failure (TDD RED phase)
- Provides summary and next steps (final verification)
- Can be run from any directory (uses absolute paths)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:19:52 +01:00
Luca Sacchi Ricciardi
99edd848a7 test(02-01): add final verification script for student self-check
- Created 99-final-verification.sh as "double check" command
- Verifies all lab requirements: user config, Docker access, INF-01, docs
- Uses visual indicators (✓ pass, ✗ fail, ○ skip) for clarity
- Tests Diátaxis framework documentation completeness
- Exit code 0 for all-pass, 1 for any failure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:19:33 +01:00
Luca Sacchi Ricciardi
4b2cab386f test(02-01): add non-root container verification test (INF-01)
- Created 03-non-root-test.sh for INF-01 compliance validation
- Tests verify no container runs as root (safety requirement)
- Checks docker exec whoami, docker inspect, and compose file
- Handles missing infrastructure gracefully with SKIP results

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:19:09 +01:00
Luca Sacchi Ricciardi
2926a53746 test(02-01): add Docker access control test script (TDD RED phase)
- Created test-02-docker-access.sh for socket access validation
- Tests verify socket permissions, docker group existence, and ownership
- Checks for usermod availability in /usr/sbin as well as PATH
- All tests pass against current Docker installation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:18:45 +01:00
Luca Sacchi Ricciardi
a5969baf0d test(02-01): add user creation test script (TDD RED phase)
- Created test-01-user-creation.sh for Linux user/group validation
- Tests verify user existence, docker group membership, and access control
- Uses helper functions for counter increments to work with set -e
- Handles missing sudo gracefully with SKIP results

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:18:07 +01:00
Luca Sacchi Ricciardi
87dbdb4f93 docs(02): create phase 2 plans (3 plans) 2026-03-24 21:55:00 +01:00
Luca Sacchi Ricciardi
385f854581 docs(02): add research and validation strategy for Lab 01 - IAM & Sicurezza 2026-03-24 21:50:32 +01:00
Luca Sacchi Ricciardi
31510777f3 docs(phase-02): research IAM & Security lab domain 2026-03-24 21:49:56 +01:00
Luca Sacchi Ricciardi
91a4732458 docs(01-02): complete repository structure and README plan
- Created SUMMARY.md for plan 01-02
- Updated STATE.md (position: 2/2 plans complete)
- Updated ROADMAP.md with plan progress
- Marked requirements GIT-04, GIT-05, SETUP-05 as complete

Phase 1 (Setup & Git Foundation) is now complete.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:57:45 +01:00
Luca Sacchi Ricciardi
3b02229e81 docs(01-02): add comprehensive project README.md
- Added project overview explaining Docker-based cloud simulation
- Documented prerequisites (Docker >= 24.0, Compose V2)
- Added Quick Start section with cloning and check-env.sh instructions
- Described all 5 labs with objectives and cloud parallels
- Added Git workflow brief with Conventional Commits
- Included troubleshooting section for common issues
- Followed Diátaxis principles (direct, simple, technically accurate)
2026-03-24 19:55:47 +01:00
Luca Sacchi Ricciardi
16ddb802ad feat(01-02): create lab directory structure with placeholder READMEs
- Created labs/ directory with 5 lab subdirectories
- Created how-to-guides/ and reference/ directories
- Added placeholder README.md in each lab directory
2026-03-24 19:54:51 +01:00
Luca Sacchi Ricciardi
8eae198624 docs(01-01): complete Docker validation scripts plan
- Created 3 bash scripts (check-env.sh, validate-compose.sh, reset-env.sh)
- All scripts follow CLAUDE.md standards with proper headers and exit codes
- Total: 491 lines of bash scripting with color-coded output
- Marked 5 requirements complete (SETUP-01 through SETUP-04, INF-05)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:53:40 +01:00
Luca Sacchi Ricciardi
9b90ed2169 feat(01-01): add environment reset script (reset-env.sh)
- Stops all containers and removes user-created networks/volumes
- Interactive mode requires user confirmation before destructive operations
- --dry-run flag shows what would be deleted without actually deleting
- Preserves Docker default networks (bridge, host, none)
- Does NOT remove Docker images
- Color-coded output and clear warning messages
- Exit code 0 on success, 1 on cancellation or error

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:52:24 +01:00
Luca Sacchi Ricciardi
f9a3e1e342 feat(01-01): add compose validation script (validate-compose.sh)
- Validates docker-compose.yml syntax using 'docker compose config'
- Shows usage when called without arguments
- Handles missing files gracefully with clear error messages
- Supports -h/--help flag
- Color-coded output (green success, red error)
- Exit code 0 on valid config, 1 on errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:51:39 +01:00
Luca Sacchi Ricciardi
a60a9abe3d feat(01-01): add environment check script (check-env.sh)
- Verifies Docker Engine >= 24.0, Compose V2, network utilities
- Reports system resources (RAM, CPU cores) with warnings if low
- Color-coded output (green pass, red fail, yellow warn)
- Exit code 0 on all checks pass, 1 on failures
- Idempotent - can be run multiple times safely

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:51:00 +01:00
Luca Sacchi Ricciardi
9229ffe19d docs(01): create phase 1 plan (2 plans, 2 waves) 2026-03-24 19:42:52 +01:00
Luca Sacchi Ricciardi
e5af5162f9 docs: create roadmap (10 phases) 2026-03-24 19:29:46 +01:00
Luca Sacchi Ricciardi
18d5b2b062 docs: define v1 requirements 2026-03-24 19:27:41 +01:00
Luca Sacchi Ricciardi
a6d520c304 docs: complete project research 2026-03-24 19:26:48 +01:00
Luca Sacchi Ricciardi
7e0ce531a6 chore: add project config 2026-03-24 19:14:46 +01:00
Luca Sacchi Ricciardi
8d34c6152a docs: initialize project 2026-03-24 19:13:13 +01:00
Luca Sacchi Ricciardi
09ca614f77 first commit 2026-03-24 19:07:46 +01:00