17 lab done#4120
Open
merkulovleo wants to merge 27 commits intoinno-devops-labs:masterfrom
Open
Conversation
- Implemented GET / endpoint with service metadata, system info, runtime details - Implemented GET /health endpoint with health status - Added error handlers for 404 and 500 - Configured logging and environment variables (HOST, PORT, DEBUG) - Added documentation: README.md and docs/LAB01.md - Pinned dependencies in requirements.txt
- Add Dockerfile with multi-stage build (builder + runtime stages) - Use python:3.13-slim as base image - Implement non-root user for security - Add .dockerignore to exclude unnecessary files - Update README.md with Docker usage instructions - Add LAB02.md with best practices documentation
- Add app_go/ with minimal Go HTTP server - Dockerfile uses multi-stage build with scratch base image - Final image size: 6.72 MB (97% smaller than Python version) - Update LAB02.md with real terminal outputs and bonus documentation
- Add 16 pytest unit tests covering all Flask endpoints (/, /health, 404) - Create python-ci.yml workflow: lint, test, Snyk scan, Docker build+push - Create go-ci.yml workflow (bonus): lint, test, Docker build+push - Add Go unit tests for index and health handlers - Use CalVer versioning (YYYY.MM.RUN_NUMBER) for Docker tags - Implement CI best practices: dependency caching, concurrency control, job dependencies, path-based triggers, Docker layer caching, Snyk - Add status badge to app_python/README.md - Add test coverage reporting via Codecov - Add LAB03.md documentation
- Add Terraform configuration for Yandex Cloud VM - Add Terraform configuration for Oracle Cloud (alternative) - Add Pulumi configuration with Python - Add GitHub Actions CI/CD for Terraform validation - Add GitHub provider for repository management - Add comprehensive documentation (LAB04.md) - Update .gitignore for all IaC configurations Tasks completed: - Task 1: Terraform VM Creation (4 pts) - Task 2: Pulumi VM Recreation (4 pts) - Task 3: Documentation (2 pts) - Bonus: GitHub Actions CI/CD (1.5 pts) - Bonus: Import GitHub Repository (1 pt) Total: 12.5/12.5 points
- Format terraform-oracle/main.tf - Format terraform-github/main.tf - Fix CI/CD formatting check errors
- Create role-based Ansible project structure (common, docker, app_deploy) - common role: apt cache update, essential packages, timezone configuration - docker role: Docker CE installation via official repo, service management, handler - app_deploy role: Docker Hub login via Vault, image pull, container run, health check - Playbooks: provision.yml, deploy.yml, site.yml - Ansible Vault encrypted group_vars/all.yml for Docker Hub credentials - Bonus: Yandex Cloud dynamic inventory script using official Python SDK - Documentation: ansible/docs/LAB05.md with architecture, idempotency demo, vault usage - Update .gitignore: exclude .vault_pass, *.retry, __pycache__
…ogic and CI/CD - Refactor common and docker roles with blocks, rescue/always, and tags - Rename app_deploy to web_app with Docker Compose templated deployment - Implement double-gated wipe logic (variable + tag safety) - Add GitHub Actions workflows for Ansible lint and deploy - Bonus: multi-app deployment (Python + Go) with role reusability - Bonus: separate CI/CD workflows with path filters per app Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat(lab06): Advanced Ansible with Docker Compose, wipe logic & CI/CD
- Replace yes/no with true/false (yaml[truthy]) - Add web_app_ prefix to all role variables (var-naming) - Fix task key order: name, become, tags, block (key-order) - Replace apt-get command with apt module (command-instead-of-module) - Capitalize handler names (name[casing]) - Replace ignore_errors with failed_when: false (ignore-errors) - Add proper changed_when for command tasks (no-changed-when)
…e automation - Deploy Loki 3.0 (TSDB), Promtail 3.0, Grafana 12.3 via Docker Compose - Add JSON structured logging to Python app with JSONFormatter - Integrate Python and Go apps with Promtail Docker SD - Configure resource limits, health checks, and secured Grafana - Bonus: Ansible monitoring role with Jinja2 templates
feat(lab07): Loki logging stack with Promtail, Grafana & Ansible
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
17 lab done