You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/buildkite-gcp/_index.md
+11-15Lines changed: 11 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,30 +1,26 @@
1
1
---
2
-
title: Multi-Architecture Docker builds with Buildkite on Arm-based GCP C4A Axion VMs
2
+
title: Build multi-architecture Docker images with Buildkite on Google Axion
3
3
4
4
draft: true
5
5
cascade:
6
6
draft: true
7
7
8
8
minutes_to_complete: 40
9
9
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 Axion processors.
11
-
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.
12
11
13
12
learning_objectives:
14
-
- Provision an Arm-based SUSE SLES virtual machine on Google Cloud (C4A with Axion processors)
15
-
- Install and configure Docker, Buildx, and the Buildkite agent
13
+
- Provision an Arm-based virtual machine on Google Cloud running SUSE Linux Enterprise Server or Ubuntu
14
+
- Install and configure Docker, Docker Buildx, and the Buildkite agent
16
15
- Write a Dockerfile to containerize a simple Flask-based Python application
17
-
- Configure a Buildkite pipeline to build multi-architecture Docker images and push them to DockerHub
18
-
- Run and validate the application to ensure it works as expected
19
-
16
+
- 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
20
18
21
19
prerequisites:
22
-
- A [Google Cloud Platform (GCP)](https://cloud.google.com/free?utm_source=google&hl=en) account with billing enabled (or another supported cloud provider like Azure or AWS)
23
-
- Basic knowledge of Linux system administration (creating users, installing packages, managing services)
24
-
- Familiarity with [Docker](https://docs.docker.com/get-started/) and container concepts
25
-
- A [GitHub](https://github.com/) account to host your application repository
26
-
- Familiarity with [Buildkite concepts](https://buildkite.com/docs/tutorials/getting-started) such as agents, pipelines, secrets, and queues
27
-
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
title: Get started with Buildkite on Google Axion C4A (Arm Neoverse V2)
2
+
title: Get started with Buildkite on Google Axion C4A instances
3
3
4
4
weight: 2
5
5
layout: "learningpathall"
6
6
---
7
7
8
8
## Google Axion C4A instances on Google Cloud
9
9
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 to modern cloud workloads such as CI/CD pipelines, microservices, media processing, and general-purpose applications.
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.
11
11
12
-
The C4A series can provide a cost-efficient alternative to x86 VMs while leveraging the scalability and performance characteristics of the Arm64 (AArch64) architecture on Google Cloud.
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.
13
13
14
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).
15
15
16
16
## Buildkite for CI/CD on Arm
17
17
18
-
[Buildkite](https://buildkite.com/) 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.
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.
19
19
20
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).
Create the configuration directory and file on your local system:
29
+
Create the configuration directory and file on your local system with the commands below:
29
30
30
31
```console
31
32
sudo tee /root/.buildkite-agent/buildkite-agent.cfg > /dev/null <<EOF
32
33
token="YOUR_AGENT_TOKEN"
33
34
tags="queue=buildkite-queue1"
34
35
EOF
35
36
```
36
-
- Replace `YOUR_AGENT_TOKEN` with the token you generated from your **Buildkite Agents page**.
37
-
-`tags` in Buildkite are key-value labels that let you match pipeline steps to specific agents, ensuring jobs run only on agents with the required tag.
38
-
- The `name` field is optional; if omitted, Buildkite will assign a default name.
37
+
38
+
Replace `YOUR_AGENT_TOKEN` with the token you generated from your Buildkite Agents page.
39
+
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.
42
+
```console
43
+
bash ./config-agent.sh
44
+
```
45
+
{{% /notice %}}
46
+
47
+
In Buildkite `tags` are key-value labels that let you match pipeline steps to specific agents, ensuring jobs run only on agents with the required tag.
48
+
49
+
The `name` field is optional; if omitted, Buildkite will assign a default name.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/buildkite-gcp/installation.md
+75-34Lines changed: 75 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,21 +9,29 @@ layout: learningpathall
9
9
## Install Buildkite on a Google Axion C4A Arm VM
10
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.
11
11
12
-
```console
12
+
{{< tabpane code=true >}}
13
+
{{< tab header="Ubuntu" language="bash">}}
14
+
sudo apt update
15
+
sudo apt install unzip -y
16
+
{{< /tab >}}
17
+
{{< tab header="SUSE Linux" language="bash">}}
13
18
sudo zypper refresh
14
19
sudo zypper install -y curl unzip
15
-
```
20
+
{{< /tab >}}
21
+
{{< /tabpane >}}
16
22
17
23
### Download and Install Buildkite Agent
18
24
19
25
```console
20
-
sudo sh -c "$(curl -sL https://raw.githubusercontent.com/buildkite/agent/main/install.sh)"
buildkite-agent version 3.107.0+10853.4606e31391a3bad2a5ba62f421ef041c0e4f04ab
78
+
buildkite-agent version 3.109.1+10971.5c28e309805a3d748068a3ff7f5c531f51f6f495
70
79
```
71
80
72
81
{{% notice Note %}}
73
-
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 [this release note](https://github.com/buildkite/agent/releases/tag/v3.43.0).
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).
74
83
75
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.
76
85
{{% /notice %}}
77
86
78
87
### Install Docker and Docker Buildx
79
-
Buildkite will use Docker to build and push images. Let’s set it up.
80
88
81
-
1. Refresh package repositories and install required packages
89
+
Buildkite will use Docker to build and push images.
82
90
83
-
This updates your system’s software list and installs git, Python3-pip, and Docker:
91
+
First, refresh the package repositories and install the required packages including git, Python3-pip, and Docker:
84
92
85
-
```console
86
-
sudo zypper refresh
93
+
Next, enable and start the Docker service to ensure it runs automatically when your VM starts:
94
+
95
+
{{< tabpane code=true >}}
96
+
{{< tab header="Ubuntu" language="bash">}}
97
+
sudo apt update
98
+
sudo apt install python-is-python3 python3-pip -y
99
+
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
0 commit comments