Skip to content

Commit e5d01b3

Browse files
Merge pull request #2477 from madeline-underwood/buildkite
Buildkite_JA to review
2 parents 4f7678b + 647d781 commit e5d01b3

File tree

7 files changed

+163
-126
lines changed

7 files changed

+163
-126
lines changed

content/learning-paths/servers-and-cloud-computing/buildkite-gcp/_index.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
11
---
2-
title: Build multi-architecture Docker images with Buildkite on Google Axion
3-
4-
draft: true
5-
cascade:
6-
draft: true
2+
title: Create multi-architecture Docker images with Buildkite on Google Axion
73

84
minutes_to_complete: 40
95

10-
who_is_this_for: This is an introductory guide for software developers learning to build and run multi-architecture Docker images with Buildkite on Arm-based Google Cloud C4A virtual machines powered by Google Axion processors.
6+
who_is_this_for: This is an introductory topic for developers who want to build and run multi-architecture Docker images with Buildkite on Arm-based Google Cloud C4A virtual machines (VM) powered by Google Axion processors.
117

128
learning_objectives:
13-
- Provision an Arm-based virtual machine on Google Cloud running SUSE Linux Enterprise Server or Ubuntu
9+
- Provision an Arm-based VM on Google Cloud running either SUSE Linux Enterprise Server or Ubuntu
1410
- Install and configure Docker, Docker Buildx, and the Buildkite agent
1511
- Write a Dockerfile to containerize a simple Flask-based Python application
1612
- Configure a Buildkite pipeline to build a multi-architecture Docker image and push it to Docker Hub
17-
- Run the application to ensure it works as expected
13+
- Start the application and verify that it runs correctly
1814

1915
prerequisites:
20-
- A [Google Cloud Platform (GCP)](https://cloud.google.com/free?utm_source=google&hl=en) account with billing enabled
21-
- Basic knowledge of Linux system administration such as creating users, installing packages, and managing services
22-
- Familiarity with Docker and container concepts
23-
- A GitHub account to host your application repository
16+
- A [Google Cloud Platform (GCP) account](https://cloud.google.com/free?utm_source=google&hl=en) with billing enabled
17+
- Basic Linux system administration skills, including how to create users, install packages, and manage services
18+
- Familiarity with [Docker](https://docs.docker.com/get-started/) and container concepts
19+
- A [GitHub account](https://github.com/join) to host your application repository
2420

2521
author: Jason Andrews
2622

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
11
---
2-
title: Get started with Buildkite on Google Axion C4A instances
2+
title: Discover Buildkite on Google Axion C4A instances
33

44
weight: 2
55
layout: "learningpathall"
66
---
77

8-
## Google Axion C4A instances on Google Cloud
8+
## Get started
99

10-
Google Axion C4A is a family of Arm-based virtual machines powered by Google's custom Axion CPU, which is built on Arm Neoverse V2 cores. Designed for high performance and energy efficiency, these VMs are well-suited for modern cloud workloads such as CI/CD pipelines, microservices, media processing, and general-purpose applications.
10+
This section introduces two core technologies you'll use in this Learning Path: the Buildkite continuous integration and delivery (CI/CD) platform and Google Axion C4A Arm virtual machines (VMs). You'll see how these tools help you build, test, and deploy software efficiently on Arm-based cloud infrastructure. If you want to dive deeper, check out the links to further resources.
1111

12-
The C4A series can provide a cost-efficient alternative to x86 VMs while leveraging the scalability and performance characteristics of the Arm architecture on Google Cloud.
12+
## Buildkite for CI/CD on Arm
1313

14-
To learn more about Google Axion, see the blog [Introducing Google Axion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu).
14+
Buildkite is a flexible and scalable continuous integration and delivery (CI/CD) platform that enables you to run pipelines on your own infrastructure. By deploying Buildkite agents on Google Axion C4A VMs, you can take advantage of Arm's performance and cost efficiency to build, test, and deploy applications, including multi-architecture Docker images. Buildkite integrates seamlessly with version control systems such as GitHub and supports advanced workflows for cloud migration, multi-arch builds, and testing microservices.
1515

16-
## Buildkite for CI/CD on Arm
16+
To get started, review the [Buildkite documentation](https://buildkite.com/docs) for setup instructions, pipeline configuration, and agent management.
17+
18+
## Google Axion C4A Arm VMs for efficient cloud workloads
19+
20+
Google Axion C4A is a family of Arm-based virtual machines powered by Google's custom Axion CPU, which is built on Arm Neoverse V2 cores. Designed for high performance and energy efficiency, these VMs are well-suited for modern cloud workloads such as CI/CD pipelines. The C4A series can provide a cost-efficient alternative to x86 VMs while leveraging the scalability and performance characteristics of the Arm architecture on Google Cloud.
21+
22+
Learn more in this Google blog [Introducing Google Axion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu).
1723

18-
Buildkite is a flexible and scalable continuous integration and delivery (CI/CD) platform that allows you to run pipelines on your own infrastructure. By deploying Buildkite agents on Google Axion C4A VMs, you can take advantage of Arm's performance and cost efficiency to build, test, and deploy applications, including multi-architecture Docker images.
24+
## What's next?
1925

20-
Buildkite integrates seamlessly with version control systems such as GitHub and supports advanced workflows for cloud migration, multi-arch builds, and testing microservices. Learn more in the [Buildkite documentation](https://buildkite.com/docs).
26+
You've now learned about the two main technologies you'll use in this Learning Path. You're ready to start building, testing, and deploying on Arm-based cloud infrastructure with confidence. Keep going, you're making great progress!
Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,33 @@
11
---
2-
title: Set-up Buildkite
2+
title: Set up and connect Buildkite agent on a Google Axion C4A Arm VM
33
weight: 5
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

9-
# Set up a Buildkite agent
9+
## What you'll do in this section
1010

11-
After installing the Buildkite agent binary on a Google Axion C4A Arm VM, you can set up and configure a Buildkite agent and queue.
11+
In this section, you'll configure and connect a Buildkite agent on a Google Axion C4A Arm virtual machine (VM). You'll generate an agent token, set up the agent configuration, create a Buildkite queue, and verify that your agent is online and ready to run CI/CD jobs on Arm infrastructure.
1212

13-
## 1. Create an Agent Token
13+
## Create an agent token
1414

1515
Before configuring the agent, you need an agent token from your Buildkite organization.
1616

17-
1. Log in to your Buildkite account (you can login with GitHub), and go to your Organization Settings
18-
2. Click Agents in the left menu
19-
3. Click Create Agent Token
20-
4. Enter a name for your token, such as `buildkite-arm`
21-
5. Click Create Token
22-
6. Copy the token immediately, you won’t be able to see it again after leaving the page.
17+
To create an agent token, follow these steps:
2318

24-
![Buildkite Dashboard alt-text#center](images/agent-token.png "Create Buildkite agent Token")
19+
- Sign in to your Buildkite account. You can use your GitHub credentials if you prefer.
20+
- In the left menu, select **Organization settings**.
21+
- Select **Agents**.
22+
- Select **Create agent token**.
23+
- Enter a descriptive name for the token, such as `buildkite-arm`.
24+
- Select **Create token**.
25+
- Copy the token and store it securely as you won’t be able to view it again after you leave the page.
2526

27+
![Buildkite Dashboard alt-text#center](images/agent-token.png "Create Buildkite agent token")
2628

27-
## 2. Configure Buildkite Agent
29+
30+
## Configure the Buildkite agent
2831

2932
Create the configuration directory and file on your local system with the commands below:
3033

@@ -35,10 +38,10 @@ tags="queue=buildkite-queue1"
3538
EOF
3639
```
3740

38-
Replace `YOUR_AGENT_TOKEN` with the token you generated from your Buildkite Agents page.
41+
Replace `YOUR_AGENT_TOKEN` with the token that you generated from your Buildkite Agents page.
3942

40-
{{% notice Note %}}
41-
You find it easier to copy the commands above into a text file named `config-agent.sh` and run the file.
43+
{{% notice Tip %}}
44+
You might find it easier to copy the commands above into a text file named `config-agent.sh` and run the file.
4245
```console
4346
bash ./config-agent.sh
4447
```
@@ -63,34 +66,37 @@ token="YOUR-GENERATED-TOKEN-VALUE"
6366
tags="queue=buildkite-queue1"
6467
```
6568

66-
## 3. Create a Queue in Buildkite
69+
## Create a queue in Buildkite
6770

6871
Now that your agent is created, you can create a queue.
6972

70-
1. Go to your Buildkite Organization select Queues and then select Create Queue
71-
2. Name the queue, for example `buildkite-queue1`
72-
3. Save the queue
73+
- Go to your Buildkite organization, select **Queues**, and then select **Create queue**.
74+
- Enter a name for the queue, for example `buildkite-queue1`.
75+
- Select **Save** to create the queue.
76+
77+
This step connects your agent to the correct queue, ensuring jobs are routed to your Arm-based Buildkite agent.
7378

7479
{{% notice Note %}}
7580
Make sure the queue name matches the `tags` field in the agent configuration.
7681
{{% /notice %}}
7782

78-
![Buildkite Dashboard alt-text#center](images/queue.png "Create Buildkite Queue")
83+
![Buildkite Dashboard alt-text#center](images/queue.png "Create the Buildkite queue")
7984

80-
## 4. Verify the agent in the Buildkite UI
85+
## Verify the agent in the Buildkite UI
8186

8287
First, start the agent on your local computer:
8388

8489
```console
8590
sudo /root/.buildkite-agent/bin/buildkite-agent start --build-path="/var/lib/buildkite-agent/builds"
8691
```
8792

88-
Then, confirm it is visible in the Buildkite UI:
93+
Then, confirm the agent is visible in the Buildkite UI, by doing the following:
8994

90-
Go Buildkite and select Agents
95+
- In the Buildkite dashboard, select **Agents** from the left menu. This page lists all registered agents for your organization.
96+
- Look for your new agent in the list and verify that its status is **online** and that it is assigned to the correct queue.
9197

9298
Confirm that the agent is online and connected to the queue `buildkite-queue1`.
9399

94-
![Buildkite Dashboard alt-text#center](images/agent.png "Verify Agent")
100+
![Buildkite Dashboard alt-text#center](images/agent.png "Verify the agent")
95101

96-
The Buildkite agent is ready, you can proceed to use Buildkite for building multi-arch images.
102+
Congratulations! Your Buildkite agent is now set up and connected to your queue. You can now start using Buildkite to build multi-architecture images on your Arm-based VM. This setup enables you to run CI/CD pipelines optimized for Arm platforms, and take advantage of the performance and scalability of Arm servers.

content/learning-paths/servers-and-cloud-computing/buildkite-gcp/installation.md

Lines changed: 52 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
title: Install Buildkite
2+
title: Install Buildkite on a Google Axion C4A Arm VM
33
weight: 4
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

9-
## Install Buildkite on a Google Axion C4A Arm VM
10-
This section guides you through installing the Buildkite agent on a Google Axion C4A Arm VM, enabling it to connect to your Buildkite account and run CI/CD pipelines.
9+
## Get started with installing the Buildkite agent
10+
This section walks you through installing the Buildkite agent on a Google Axion C4A Arm VM, enabling it to connect to your Buildkite account and run the CI/CD pipelines.
1111

1212
{{< tabpane code=true >}}
1313
{{< tab header="Ubuntu" language="bash">}}
@@ -20,19 +20,20 @@ sudo zypper install -y curl unzip
2020
{{< /tab >}}
2121
{{< /tabpane >}}
2222

23-
### Download and Install Buildkite Agent
23+
## Download and install the Buildkite agent
24+
25+
Use this one-line command to download and run the Buildkite installer:
2426

2527
```console
2628
sudo bash -c "$(curl -sL https://raw.githubusercontent.com/buildkite/agent/main/install.sh)"
2729
```
28-
29-
This one-line command downloads and runs the Buildkite installer.
30-
3130
The installer performs the following steps:
3231

33-
- Download the latest version of the agent, for example `v3.109.1`
34-
- Install it into the home directory of the root user at `/root/.buildkite-agent`
35-
- Create a default config file (`buildkite-agent.cfg`) where you’ll later add your agent token
32+
- Downloads the latest version of the agent, for example `v3.109.1`
33+
- Installs the Buildkite agent into the home directory of the root user at `/root/.buildkite-agent`
34+
- Creates a default config file (`buildkite-agent.cfg`) where you’ll later add your agent token
35+
36+
You should see this output:
3637

3738
```output
3839
@@ -66,31 +67,31 @@ For docs, help and support:
6667
Happy building! <3
6768
```
6869

69-
### Verify installation
70-
This command checks the version of the Buildkite agent and confirms it is installed successfully.
70+
## Verify installation
71+
72+
Now verify the installation by checking the Buildkite agent version. This confirms that the agent is installed and ready to use:
7173

7274
```console
7375
sudo /root/.buildkite-agent/bin/buildkite-agent --version
7476
```
75-
You should see output similar to:
77+
78+
The expected output is similar to:
7679

7780
```output
7881
buildkite-agent version 3.109.1+10971.5c28e309805a3d748068a3ff7f5c531f51f6f495
7982
```
8083

8184
{{% notice Note %}}
82-
The Buildkite Agent version 3.43.0 introduces Linux/Arm64 Docker image for the Buildkite Agent, making deployment and installation easier for Linux users on Arm. You can view the [release note](https://github.com/buildkite/agent/releases/tag/v3.43.0).
85+
The Buildkite Agent version 3.43.0 introduces Linux/Arm64 Docker image for the Buildkite Agent, making deployment and installation easier for Linux users on Arm. You can view the [Buildkite agent GitHub release note](https://github.com/buildkite/agent/releases/tag/v3.43.0).
8386

84-
The [Arm Ecosystem Dashboard](https://developer.arm.com/ecosystem-dashboard/) recommends Buildkite Agent version v3.43.0 as the minimum recommended on the Arm platforms.
87+
The [Arm Ecosystem Dashboard](https://developer.arm.com/ecosystem-dashboard/) recommends Buildkite Agent version v3.43.0 or later for Arm platforms.
8588
{{% /notice %}}
8689

87-
### Install Docker and Docker Buildx
88-
89-
Buildkite will use Docker to build and push images.
90+
## Install Docker
9091

91-
First, refresh the package repositories and install the required packages including git, Python3-pip, and Docker:
92+
Buildkite uses Docker to build and push images.
9293

93-
Next, enable and start the Docker service to ensure it runs automatically when your VM starts:
94+
This step ensures Docker is always available for your CI/CD pipelines.
9495

9596
{{< tabpane code=true >}}
9697
{{< tab header="Ubuntu" language="bash">}}
@@ -105,14 +106,6 @@ sudo usermod -aG docker $USER ; newgrp docker
105106
{{< /tab >}}
106107
{{< /tabpane >}}
107108

108-
109-
SUSE Linux requires some extra steps to start Docker, you can skip this for Ubuntu:
110-
111-
```console
112-
sudo systemctl enable docker
113-
sudo systemctl start docker
114-
```
115-
116109
Verify the Docker installation by checking the version and running a test container:
117110

118111
```console
@@ -146,11 +139,16 @@ For more examples and ideas, visit:
146139

147140
## Install Docker Buildx
148141

149-
Docker Buildx is a plugin that allows building multi-architecture images, for example `arm64` and `amd64`.
142+
Docker Buildx is a plugin that allows the building of multi-architecture images, for example `arm64` and `amd64`.
143+
If you're using SUSE Linux, you need to install Docker Buildx manually. On Ubuntu, Docker Buildx is included by default, so you can skip this step.
144+
145+
For more information or troubleshooting details, see the [Docker Buildx documentation](https://docs.docker.com/build/buildx/).
146+
147+
## Download Docker Buildx
150148

151-
For SUSE Linux, you need to install Docker Buildx. This is not necessary on Ubuntu.
149+
If you need to download Docker Buildx, follow these steps.
152150

153-
Download the binary and move it to the Docker CLI plugin directory:
151+
Start by downloading the Docker Buildx binary and move it to the Docker CLI plugin directory. This enables advanced multi-architecture builds on your Arm VM:
154152

155153
```console
156154
wget https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm64
@@ -159,4 +157,26 @@ sudo mkdir -p /usr/libexec/docker/cli-plugins
159157
sudo mv buildx-v0.26.1.linux-arm64 /usr/libexec/docker/cli-plugins/docker-buildx
160158
```
161159

162-
Now that the Buildkite installation is complete, you can set up the Buildkite agent.
160+
After installing, verify that Docker Buildx is available:
161+
162+
```console
163+
docker buildx version
164+
```
165+
166+
The expected output is similar to:
167+
168+
```output
169+
github.com/docker/buildx v0.26.1
170+
```
171+
172+
If you see the version information, Docker Buildx is installed correctly and ready for use.
173+
174+
{{% notice Note %}}
175+
If you encounter a "permission denied" error, ensure your user is in the `docker` group and that the plugin file is executable.
176+
{{% /notice %}}
177+
178+
You can now use Docker Buildx to build and push multi-architecture images, which is especially useful for Arm-based CI/CD pipelines.
179+
180+
## What you've accomplished
181+
182+
Great job! You’ve installed Docker, Docker Buildx, and the Buildkite agent on your Arm VM. Next, you’ll set up and connect your Buildkite agent to your account.

0 commit comments

Comments
 (0)