Skip to content

Central repository for the Cloud Infrastructure Portfolio (CIP) — containing documentation, architecture overviews, and links to all related IaC and AWS project repositories.

License

Notifications You must be signed in to change notification settings

MHooijberg/cip_project-root

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

Cloud Infrastructure Portfolio - Project Root

License Portfolio Tag AWS SAA-03

Introduction

cip_project-root is the root hub for the Cloud Infrastructure Portfolio (CIP) — a curated collection of realistic, production-oriented AWS and Infrastructure-as-Code projects. This repository holds central documentation, architecture overviews, conventions, and links (via Git submodules) to each project repository.

This repo is intended to:

  • Provide a single, well-organized entry point to all CIP projects.
  • Host architecture diagrams, portfolio-level standards, and contributor guidance.
  • Include project folders (with local docs and links) that point to independent Git repos (submodules) containing the actual code and IaC.

License: This collection is released under the GNU General Public License Version 3 (GPL-3.0) License — see LICENSE for details.


Table of contents

  1. Project structure

  2. Projects (overview)

  3. Standards & conventions

  4. How to use submodules

  5. Contributing

  6. Credits & Attribution


1. Project structure

cip_project-root/
├─ Docs/                              # Portfolio-level diagrams and notes
│  └─ Diagrams/                       # PNG/SVG/PlantUML files
├─ Standards/                         # IaC style, naming conventions, CI templates
├─ Projects/                          # Local folders for each project (docs + submodule pointers)
│   ├─ CIP-001: Static site on S3/    # README + link to submodule (git submodule)
│   │  ├─ Docs/                       # Portfolio-level diagrams and notes
│   │  │  └─ Diagrams/                # PNG/SVG/PlantUML files
│   │  ├─ Project submodules...       # A submodule for each of the repositories that makes the project.
│   │  └─ README.md                   # Detailed project description.
│   └─ Other projects...
├─ LICENSE                            # License these projects fall under.
└─ README.md                          # This file

Each folder under projects/ should contain at minimum a README.md describing the project, a short architecture diagram, and a file (or README section) that explains which remote repository is linked as a submodule.


2. Projects (overview)

Each entry below links to the corresponding folder in this repository (local docs). The actual implementation lives in the submodule repository linked from each folder's README.

Folder: projects/cip-001_static-site-on-s3/

Idea: Host a static portfolio site on S3 with CloudFront, automatic invalidation, TLS, and a CI pipeline that builds and deploys the site. Demonstrates infrastructure-as-code for static hosting and secure CDN configuration.

Folder: projects/cip-002_multi-account-setup/

Idea: Create a design for a multi-account AWS Organization, use Terraform to setup this design, regulate the design and control what member account can / can't do.

You can add as many projects as you like. Keep the pattern: projects/<slug>/README.md describing the submodule repo and linking to it.


3. Standards & conventions

A central place to store conventions so all projects look and behave consistently. Example items to include in standards/:

  • Naming conventions (resource, module, stack naming)
  • Terraform / CloudFormation / CDK style guide
  • Branching & release strategy
  • CI job templates and secrets handling guidance
  • Security checklist (IAM least privilege, encryption-at-rest/in-transit, etc.)

4. How to use submodules

Add a project repository as a submodule in the matching folder. Example:

# from the repository root
git submodule add git@github.com:MHooijberg/cip-minecraft-server.git projects/minecraft-server
git commit -m "Add minecraft server submodule"

To clone this repo including submodules:

git clone --recurse-submodules git@github.com:MHooijberg/cip_project-root.git
# OR if already cloned
git submodule update --init --recursive

To update a submodule (inside the submodule folder):

cd projects/minecraft-server
git pull origin main
# back to root
cd ../../
git add projects/minecraft-server
git commit -m "Update submodule pointer"
git push

Tip: Keep each project in its own repo so they can have independent CI, issues, and release cycles.


5. Contributing

Contributions and improvements are welcome. Please follow these steps:

  1. Read standards/ and project-specific READMEs.
  2. Open an issue describing the change you want to make.
  3. Fork the specific project repository you want to change (not this root repo), make your changes, and open a PR.
  4. If the change requires updating the submodule pointer here, open a PR against cip_project-root to update the submodule reference.

6. Credits & Attribution

This portfolio is released under GPL-3.0. You are free to share and adapt the material under the same license, provided you give appropriate credit and keep derivative works under the same license.

When using or showcasing content derived from CIP projects, please include a visible credit that links back to the original repository and the author (example):

"Based on work from the Cloud Infrastructure Portfolio (cip_project-root) by Mark Hooijberg — https://github.com/MHooijberg/cip_project-root (GPL-3.0)"

About

Central repository for the Cloud Infrastructure Portfolio (CIP) — containing documentation, architecture overviews, and links to all related IaC and AWS project repositories.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published