{"id":28919322,"url":"https://github.com/patkoch/terraform-azure-vm-linux-workflow","last_synced_at":"2026-05-06T11:32:39.949Z","repository":{"id":298099960,"uuid":"998846093","full_name":"patkoch/terraform-azure-vm-linux-workflow","owner":"patkoch","description":"Terraform configuration for deploying a Linux Virtual Machine and GitHub Action Workflow for the automated deployment and destruction","archived":false,"fork":false,"pushed_at":"2025-06-17T17:14:39.000Z","size":31,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-17T18:24:55.899Z","etag":null,"topics":["azure","github-actions","terraform","ubuntu"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patkoch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-09T10:47:26.000Z","updated_at":"2025-06-15T10:55:48.000Z","dependencies_parsed_at":"2025-06-09T12:40:02.014Z","dependency_job_id":null,"html_url":"https://github.com/patkoch/terraform-azure-vm-linux-workflow","commit_stats":null,"previous_names":["patkoch/terraform-azure-vm-linux-workflow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patkoch/terraform-azure-vm-linux-workflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patkoch%2Fterraform-azure-vm-linux-workflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patkoch%2Fterraform-azure-vm-linux-workflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patkoch%2Fterraform-azure-vm-linux-workflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patkoch%2Fterraform-azure-vm-linux-workflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patkoch","download_url":"https://codeload.github.com/patkoch/terraform-azure-vm-linux-workflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patkoch%2Fterraform-azure-vm-linux-workflow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261229093,"owners_count":23127555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","github-actions","terraform","ubuntu"],"created_at":"2025-06-22T03:06:11.677Z","updated_at":"2026-05-06T11:32:39.944Z","avatar_url":"https://github.com/patkoch.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform Azure Virtual Machine Linux Workflow\n\n## Overview\n\nThis repository contains a GitHub Actions workflow for managing Linux Virtual Machines in Azure using Terraform. The workflow implements a complete CI/CD pipeline with appropriate security measures and approval gates.\n\n## Current state of the workflow execution:\n\n[![Deploy or Destroy Linux Virtual Machine](https://github.com/patkoch/terraform-azure-vm-linux-workflow/actions/workflows/linux-virtual-machine.yml/badge.svg)](https://github.com/patkoch/terraform-azure-vm-linux-workflow/actions/workflows/linux-virtual-machine.yml)\n\n\n## Workflow Structure\n\nTriggers\n  * Manual Trigger (workflow_dispatch)\n        Choice between deploy and destroy\n  * Pull Request Trigger\n    Target branches: main, feature/**\n\n1. PR Verification\n\nAutomated checks for pull requests including:\n\n  * Terraform format validation\n  * Infrastructure code initialization\n  * Configuration validation\n  * TFLint analysis\n  * Plan generation\n  * Automated PR comments with results\n\n2. Verification\n\nPre-deployment checks:\n\n  * Required secrets validation\n  * Azure storage account verification\n  * Azure connectivity testing\n\n3. Plan Generation\n\nInfrastructure planning:\n\n  * Terraform initialization\n  * Plan creation\n  * Artifact storage\n  * Plan documentation\n\n4. Apply (Protected)\n\nControlled deployment:\n\n  * Requires manual approval via GitHub Environment\n  * Uses saved plan from previous stage\n\nEnsures reviewed changes only\n\n## Security\n\nRequired Secrets:\n\n  * CLIENT_ID\n  * SSH_PUBLIC_KEY\n  * SUBSCRIPTION_ID\n  * TENANT_ID\n  * VIRTUAL_MACHINE_ADMIN_PASSWORD\n\nProtection Measures\n\n  * Environment protection rules\n  * Required reviewers for deployments\n  * Encrypted state management\n  * Azure RBAC integration\n  * Secure secret handling\n\n## Usage\n\nPrerequisites:\n\n 1. Azure Subscription\n 2. GitHub Repository\n 3. Configured GitHub Secrets\n 4. Azure Storage Account for Terraform State\n\n\nDeployment:\n\n 1. Create a new feature branch\n 2. Make infrastructure changes\n 3. Create pull request\n 4. Wait for automated checks\n 5. Get PR approval\n 6. Merge to main\n 7. Trigger manual deployment\n 8. Approve in production environment\n\n## Best Practices\n\n * Always review Terraform plans\n * Use feature branches for changes\n * Ensure proper secret management\n * Follow PR review process\n * Monitor deployment status\n\n---\n## Attribution\nThis README was generated with the assistance of GitHub Copilot on June 15, 2025.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatkoch%2Fterraform-azure-vm-linux-workflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatkoch%2Fterraform-azure-vm-linux-workflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatkoch%2Fterraform-azure-vm-linux-workflow/lists"}