Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions .github/workflows/packer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
os: [sonoma-arm64, sonoma-intel]
os: [sonoma-arm64, sonoma-intel, sequoia-intel, sequoia-arm64]
fail-fast: false
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
Expand All @@ -38,18 +38,23 @@ jobs:
--passwd-on-stdin --background \
--servercert ${{ secrets.ORKA_VPN_SERVER_CERT }}

- name: Init Packer
run: packer init orka.pkr.hcl
- name: Init Packer base
if: matrix.os != 'sonoma-arm64' || 'sequoia-arm64'
run: packer init orka-base.pkr.hcl
working-directory: ansible/packer

- name: Run Packer (base image)
# Skip arm64 for now as Xcode download takes too long
if: matrix.os != 'sonoma-arm64'
if: matrix.os != 'sonoma-arm64' || 'sequoia-arm64'
run: packer build --only=macstadium-orka.${{ matrix.os }} orka-base.pkr.hcl
working-directory: ansible/packer
env:
ORKA_TOKEN: ${{ secrets.ORKA_TOKEN }}

- name: Init Packer
run: packer init orka.pkr.hcl
working-directory: ansible/packer

- name: Run Packer (final image)
run: packer build --only=macstadium-orka.${{ matrix.os }} orka.pkr.hcl
working-directory: ansible/packer
Expand Down
24 changes: 23 additions & 1 deletion ansible/packer/orka-base.pkr.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,26 @@ variable "XCode15_2_SAS_TOKEN" {
default = env("XCode15_2_SAS_TOKEN")
}

source "macstadium-orka" "sequoia-arm64" {
source_image = "sequoialatest"
image_name = "sequoia-arm64-base"
image_description = "Base image with sudoers setup and xcode/brew/ansible installed"
image_force_overwrite = true
orka_endpoint = var.ORKA_ENDPOINT
orka_auth_token = var.ORKA_TOKEN
orka_vm_builder_name = "sequoia-arm64-builder"
}

source "macstadium-orka" "sequoia-intel" {
source_image = "90gbsequoiassh-15-4.img"
image_name = "sequoia-intel-base"
image_description = "Base image with sudoers setup and xcode/brew/ansible installed"
image_force_overwrite = true
orka_endpoint = var.ORKA_ENDPOINT
orka_auth_token = var.ORKA_TOKEN
orka_vm_builder_name = "sequoia-intel-builder"
}

source "macstadium-orka" "sonoma-arm64" {
source_image = "sonoma-90gb-orka3-arm"
image_name = "sonoma-arm64-base"
Expand All @@ -50,6 +70,8 @@ source "macstadium-orka" "sonoma-intel" {
# Generate the base image for the sonoma-arm64 VMs which we will use to run the ansible playbook
build {
sources = [
"macstadium-orka.sequoia-intel",
"macstadium-orka.sequoia-arm64",
"macstadium-orka.sonoma-arm64",
"macstadium-orka.sonoma-intel"
]
Expand Down Expand Up @@ -88,7 +110,7 @@ EOF
# Install Xcode
provisioner "ansible-local" {
# We only install Xcode on the arm64 VM (build tools is enough for the Intel test VMs)
only = ["macstadium-orka.sonoma-arm64"]
only = ["macstadium-orka.sonoma-arm64", "macstadium-orka.sequoia-arm64"]
playbook_file = "../playbooks/AdoptOpenJDK_Unix_Playbook/main.yml"
playbook_dir = "../playbooks/AdoptOpenJDK_Unix_Playbook"
extra_arguments = [
Expand Down
29 changes: 26 additions & 3 deletions ansible/packer/orka.pkr.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,26 @@ variable "ORKA_ENDPOINT" {
default = "http://10.221.188.20"
}

source "macstadium-orka" "sequoia-arm64" {
source_image = "sequoia-arm64-base"
image_name = "adoptium-sequoia-arm64"
image_description = "Adoptium Sequoia ARM64 image with full ansible playbook run"
image_force_overwrite = true
orka_endpoint = var.ORKA_ENDPOINT
orka_auth_token = var.ORKA_TOKEN
orka_vm_builder_name = "sequoia-arm64-builder"
}

source "macstadium-orka" "sequoia-intel" {
source_image = "sequoia-intel-base"
image_name = "adoptium-sequoia-intel"
image_description = "Adoptium Sequoia Intel image with full ansible playbook run"
image_force_overwrite = true
orka_endpoint = var.ORKA_ENDPOINT
orka_auth_token = var.ORKA_TOKEN
orka_vm_builder_name = "sequoia-intel-builder"
}

source "macstadium-orka" "sonoma-arm64" {
source_image = "sonoma-arm64-base"
image_name = "adoptium-sonoma-arm64"
Expand All @@ -32,7 +52,7 @@ source "macstadium-orka" "sonoma-arm64" {
source "macstadium-orka" "sonoma-intel" {
source_image = "sonoma-intel-base"
image_name = "adoptium-sonoma-intel"
image_description = "Base image with sudoers setup and brew/ansible installed"
image_description = "Adoptium Sonoma Intel image with full ansible playbook run"
image_force_overwrite = true
orka_endpoint = var.ORKA_ENDPOINT
orka_auth_token = var.ORKA_TOKEN
Expand All @@ -41,14 +61,16 @@ source "macstadium-orka" "sonoma-intel" {

build {
sources = [
"macstadium-orka.sequoia-arm64",
"macstadium-orka.sequoia-intel",
"macstadium-orka.sonoma-arm64",
"macstadium-orka.sonoma-intel"
]

# Ensure ansible package is up to date
provisioner "shell" {
# Only needed on arm64 as we rebuild intel base frequently
only = ["macstadium-orka.sonoma-arm64"]
only = ["macstadium-orka.sonoma-arm64", "macstadium-orka.sequoia-arm64"]
inline = [
"source /Users/admin/.zprofile; brew upgrade ansible"
]
Expand All @@ -68,12 +90,13 @@ build {
}

# Run ansible playbook
# xcode11 and 15 are skipped because they should run only in the orka-base.pkr.hcl stage
provisioner "ansible-local" {
playbook_file = "../playbooks/AdoptOpenJDK_Unix_Playbook/main.yml"
playbook_dir = "../playbooks/AdoptOpenJDK_Unix_Playbook"
extra_arguments = [
"--extra-vars", "ansible_user=admin",
"--skip-tags=hostname,brew_upgrade,brew_cu,core_dumps,crontab,kernel_tuning,adoptopenjdk,jenkins,nagios,superuser,swap_file,jck_tools"
"--skip-tags=xcode11,xcode15,hostname,brew_upgrade,brew_cu,core_dumps,crontab,kernel_tuning,adoptopenjdk,jenkins,nagios,superuser,swap_file,jck_tools"
]
command = "source /Users/admin/.zprofile; ansible-playbook"
}
Expand Down
Loading