Skip to content

Latest commit

 

History

History
45 lines (29 loc) · 2.09 KB

README.md

File metadata and controls

45 lines (29 loc) · 2.09 KB

Worker Images

This repository contains an opinionated way to build virtual machine images via packer by using configuration that is pre-defined in YAML format, executed through github actions, with support for automated integration tests using Pester.

Features

  • Packer variables provided through configuration files
  • Supports Windows 10, Windows 11, and Windows Server
  • Integration with Pester with configuration files
  • Azure Authentication using OpenID Connect
  • Automatically generates software bill of materials for each machine image created

Repository structure

.github/* - Github Action Workflows

bin/WorkerImages - Powershell Module that provides helper functions to start packer with pre-defined variables

config/ - Worker Pool Definition that Packer uses for variables

provisioners/ - Internal directory used for non-cloud worker deployments at Mozilla

scripts/* - OS specific directories that host either shell scripts or a powershell module to support provisioning and configuring windows

tests/win/* - Windows integration tests written for use with Pester

azure.pkr.hcl - Packer HCL template used for building an Azure Managed Image or Azure Managed Image in a Shared Image Gallery

Note

Building an Azure Machine Image with support for Shared Image Gallery requires additional configuration outside of Packer.

Future plans

  • Support non-windows platforms
  • Integrate with other Mozilla Release Engineering repositories
  • Consolidate github action workflow into reusable workflows
  • Create better documentation for local debugging
  • Create better workflow for multiple branches

Acronyms

  • GHA = Github Actions
  • TC = Taskcluster, the CI pipeline to build and release Firefox.
  • Worker Image = A machine image for use with Taskcluster.
  • Ronin Puppet = Git repository that contains puppet code which configures each worker image with specific configuration