odin-codespace/.devops-context.md
smiggiddy 694c1f10dc
Some checks failed
Build and Push Docker Images / build (admin-dashboard) (push) Failing after 15s
Build and Push Docker Images / build (battleship) (push) Failing after 9s
Build and Push Docker Images / build (calculator) (push) Failing after 9s
Build and Push Docker Images / build (cv-project) (push) Failing after 9s
Build and Push Docker Images / build (inventory) (push) Failing after 10s
Build and Push Docker Images / build (library) (push) Failing after 10s
Build and Push Docker Images / build (messages) (push) Failing after 9s
Build and Push Docker Images / build (nodejs-mini-message-board) (push) Failing after 10s
Build and Push Docker Images / build (portfolio) (push) Failing after 9s
Build and Push Docker Images / build (restaurant) (push) Failing after 9s
Build and Push Docker Images / build (shopping-cart) (push) Failing after 9s
Build and Push Docker Images / build (signup_form) (push) Failing after 8s
Build and Push Docker Images / build (tictactoe) (push) Failing after 9s
Build and Push Docker Images / build (weather) (push) Failing after 9s
ready to deploy
2025-05-03 00:14:04 +00:00

2.4 KiB

DevOps Context for Odin Code Projects

This file contains essential information about the DevOps setup for the Odin Code Projects. It helps the AI assistant (and any humans working on the project) understand the build, deployment, and infrastructure context.

Build Process

  • GitHub Actions: The build process is managed using GitHub Actions.
  • Workflow: The primary workflow is defined in .github/workflows/build.yml.
  • Build Context:
    • For most projects, the build context when building is the root of the project.
    • For the restaurant project, the build context for docker is the restaurant/ folder, and the dockerfile is found at restaurant/devops/Dockerfile
  • Image Naming: Images are named using the format ghcr.io/<github_username>/odin-codeprojects/<project_name>:<tag>. The tag is either latest or the first 8 characters of the commit hash.
  • Package files: Most node projects have package.json and package-lock.json in the root, or in the app/ folder.
  • Projects with package.json:
    • Battleship
    • restaurant
    • shopping-cart
    • weather
    • testing
    • todo

Deployment

  • Kubernetes: The applications are deployed to a Kubernetes cluster.
  • Ingress: All projects are exposed through ingress with the following settings.
    • ingressClassName: traefik
    • annotations:
      • cert-manager.io/cluster-issuer: letsencrypt
    • hosts:
      • <project_name>.odin.thecodedom.com
    • tls:
      • hosts:
        • <project_name>.odin.thecodedom.com
      • secretName: <project_name>-tls
  • Ingress locations: The ingress files are located at /devops/-ingress.yaml
  • ArgoCD: Application files are located at deploy/chart/templates/-application.yaml

Tools and Automation

  • Firebase Studio: Firebase Studio was used to help create the devops process. Instructed by Smiggiddy though.
  • CI/CD: CI/CD is in place to build and test the code and deploy changes.

Project List

  • All projects in this list are part of the build pipeline and can be deployed.
    • admin-dashboard
    • auth-expressjs
    • battleship
    • calculator
    • cv
    • cv-project
    • inventory
    • library
    • messages
    • nodejs-mini-message-board
    • portfolio
    • restaurant
    • shopping-cart
    • signup_form
    • tictactoe
    • todo
    • weather