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
Refactor Helm learning path documentation for clarity and consistency, including updates to installation instructions, environment setup, and deployment examples for NGINX, PostgreSQL, and Redis.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/helm-on-gcp/_index.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,6 @@
1
1
---
2
2
title: Install and validate Helm on Google Cloud C4A Arm-based VMs
3
3
4
-
draft: true
5
-
cascade:
6
-
draft: true
7
-
8
4
minutes_to_complete: 60
9
5
10
6
who_is_this_for: This is an introductory topic intended for developers who want to get hands-on experience using Helm on Linux Arm64 systems, specifically Google Cloud C4A virtual machines powered by Axion processors.
@@ -75,3 +71,9 @@ weight: 1
75
71
layout: "learningpathall"
76
72
learning_path_main_page: "yes"
77
73
---
74
+
75
+
Helm is the package manager for Kubernetes, simplifying application deployment and lifecycle management. Google Axion C4A instances, powered by Arm Neoverse-V2 processors, provide an efficient platform for running Kubernetes workloads.
76
+
77
+
In this Learning Path, you learn how to install and configure Helm on a Google Cloud C4A virtual machine, create Kubernetes clusters, and deploy applications using both official and custom Helm charts. You validate Helm's core functionality and explore deployment patterns for PostgreSQL, Redis, and NGINX on Arm-based infrastructure.
78
+
79
+
By the end of this Learning Path, you'll have practical experience with Helm on Arm64 systems and understand how to deploy cloud-native applications on Google's Axion processors.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/helm-on-gcp/background.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,18 +8,18 @@ layout: "learningpathall"
8
8
9
9
## Explore Google Axion C4A instances in Google Cloud
10
10
11
-
Google Axion C4A is a family of Arm-based virtual machines built on Google’s custom Axion CPU, which is based on Arm Neoverse-V2 cores. Designed to deliver high performance with improved energy efficiency, these virtual machines offer strong performance for modern cloud workloads such as CI/CD pipelines, microservices, media processing, and general-purpose applications.
11
+
Google Axion C4A is a family of Arm-based VMs built on Google's custom Axion processors, which use Arm Neoverse-V2 cores. These VMs deliver high performance with improved energy efficiency for modern cloud workloads such as CI/CD pipelines, microservices, media processing, and general-purpose applications.
12
12
13
-
The C4A series provides an Arm-based alternative to x86 virtual machines, enabling developers to evaluate cost, performance, and efficiency trade-offs in Google Cloud. For Kubernetes users, Axion C4A instances provide a practical way to run Arm-native clusters and validate tooling such as Helm on modern cloud infrastructure.
13
+
The C4A series provides an Arm-based alternative to x86 VMs, enabling developers to evaluate cost, performance, and efficiency trade-offs in Google Cloud. For Kubernetes users, C4A instances provide a practical way to run Arm-native clusters and validate tooling such as Helm on modern cloud infrastructure.
14
14
15
15
To learn more about Google Axion, see the Google blog [Introducing Google Axion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu).
16
16
17
17
## Explore Helm
18
18
19
19
Helm is the package manager for Kubernetes. It simplifies application deployment, upgrades, rollbacks, and lifecycle management by packaging Kubernetes resources into reusable charts.
20
20
21
-
Helm runs as a lightweight CLI that interacts directly with the Kubernetes API. Because it is architecture-agnostic, it works consistently across x86 and Arm64 clusters, including those running on Google Axion C4A instances.
21
+
As a lightweight CLI, Helm interacts directly with the Kubernetes API. Its architecture-agnostic design ensures consistent behavior across x86 and Arm64 clusters, including those running on Google Axion C4A instances.
22
22
23
-
In this Learning Path, you use Helm to deploy and manage applications on an Arm-based Kubernetes environment and verify common workflows such as install, upgrade, and uninstall operations.
23
+
In this Learning Path you'll use Helm to deploy and manage applications on an Arm-based Kubernetes environment, verifying common workflows such as install, upgrade, and uninstall operations.
24
24
25
25
For more information, see the [Helm website](https://helm.sh/).
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/helm-on-gcp/baseline.md
+12-5Lines changed: 12 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,7 @@ layout: learningpathall
10
10
This section walks you through baseline testing to confirm that Helm works correctly on an Arm64-based Kubernetes cluster by validating core workflows such as install, upgrade, and uninstall.
11
11
12
12
## Add Helm repository
13
+
13
14
Add the Bitnami Helm chart repository and update the local index:
All pods should be in the **Running** state. If pods are in **Pending** state, wait 30 to 60 seconds for container images to download, then retry the commands above.
83
+
84
+
All pods should be in **Running** state. If pods show **Pending**, wait 30 to 60 seconds for container images to download and retry.
82
85
83
86
84
87
## Validate Helm lifecycle
88
+
85
89
Confirm that Helm supports the full application lifecycle on Arm64.
86
90
87
91
### Upgrade the release
88
92
93
+
Update the existing release to a new revision:
94
+
89
95
```console
90
96
helm upgrade nginx bitnami/nginx
91
97
```
@@ -97,7 +103,8 @@ Release "nginx" has been upgraded. Happy Helming!
97
103
```
98
104
99
105
### Uninstall the release
100
-
Ensure Helm can cleanly remove the release and associated resources.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/helm-on-gcp/benchmarking.md
+28-22Lines changed: 28 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,19 +5,17 @@ weight: 10
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
-
## Overview
8
+
## Run concurrent Helm benchmarks
9
9
10
-
This section explains how to benchmark Helm CLI concurrency on an Arm64-based GCP SUSE virtual machine.
11
-
12
-
Since Helm does not provide built-in performance metrics, concurrency behavior is measured by running multiple Helm commands in parallel and recording the total execution time.
10
+
In this section, you'll benchmark Helm CLI concurrency on your Arm64-based GCP SUSE VM. Since Helm doesn't provide built-in performance metrics, you'll measure concurrency behavior by running multiple Helm commands in parallel and recording total execution time.
13
11
14
12
### Prerequisites
15
13
16
14
{{% notice Note %}}
17
-
Ensure the local Kubernetes cluster created earlier is running and has sufficient resources to deploy multiple NGINX replicas.
15
+
Ensure the local Kubernetes cluster is running and has sufficient resources to deploy multiple NGINX replicas.
18
16
{{% /notice %}}
19
17
20
-
Before starting the benchmark, ensure Helm is installed and the Kubernetes cluster is accessible.
18
+
Verify Helm and Kubernetes access:
21
19
22
20
```console
23
21
helm version
@@ -26,7 +24,8 @@ kubectl get nodes
26
24
All nodes should be in `Ready` state.
27
25
28
26
### Add a Helm repository
29
-
Helm installs applications using "charts." Configure Helm to download charts from the Bitnami repository and update the local chart index.
27
+
28
+
Configure Helm to download charts from the Bitnami repository:
Helm does not provide native concurrency or throughput metrics. Concurrency benchmarking is performed by executing multiple Helm CLI operations in parallel and measuring overall completion time.
76
76
{{% /notice %}}
77
77
### Concurrent Helm install benchmark (no wait)
78
-
Run multiple Helm installs in parallel using background jobs.
78
+
79
+
Run multiple Helm installs in parallel:
79
80
80
81
```console
81
82
time (
@@ -88,10 +89,8 @@ done
88
89
wait
89
90
)
90
91
```
91
-
This step simulates multiple teams deploying applications at the same time.
92
-
Helm submits all requests without waiting for pods to fully start.
93
92
94
-
This measures Helm concurrency handling, Kubernetes API responsiveness, and Helm CLI client-side execution behavior on Arm64.
93
+
This measures Helm concurrency handling, Kubernetes API responsiveness, and client-side execution on Arm64.
95
94
96
95
You should see an output similar to:
97
96
```output
@@ -102,7 +101,7 @@ sys 0m0.339s
102
101
103
102
### Verify deployments
104
103
105
-
Confirm that Helm reports all components were installed successfully and that Kubernetes created and started the applications:
104
+
Confirm that all components were installed successfully:
106
105
107
106
```console
108
107
helm list -n helm-bench
@@ -112,7 +111,8 @@ kubectl get pods -n helm-bench
112
111
All releases should be in `deployed` state and pods should be in `Running` status.
Run a benchmark that includes workload readiness time.
114
+
115
+
Run a benchmark that includes workload readiness time:
116
116
117
117
```console
118
118
time (
@@ -138,7 +138,12 @@ sys 0m0.312s
138
138
139
139
### Metrics to record
140
140
141
-
Record the following metrics: total elapsed time (overall time taken to complete all installs), number of parallel installs, any failures or Kubernetes API errors, and pod readiness delay (time pods take to become Ready under resource pressure).
141
+
Record the following:
142
+
143
+
- Total elapsed time (overall time taken to complete all installs)
144
+
- Number of parallel installs
145
+
- Any failures or Kubernetes API errors
146
+
- Pod readiness delay (time pods take to become Ready under resource pressure)
142
147
143
148
### Benchmark summary
144
149
Results from the earlier run on the `c4a-standard-4` (4 vCPU, 16 GB memory) Arm64 VM in GCP (SUSE):
@@ -149,19 +154,20 @@ Results from the earlier run on the `c4a-standard-4` (4 vCPU, 16 GB memory) Arm6
- In this configuration, Helm CLI operations complete efficiently on an Arm64-based Axion C4A virtual machine, establishing a baseline for further testing.
153
-
- The --wait flag significantly increases total execution time because Helm waits for workloads to reach a Ready state, reflecting scheduler and image-pull delays rather than Helm CLI overhead.
154
-
- For this baseline test, parallel Helm installs complete with minimal contention, indicating that client-side execution and Kubernetes API handling are not bottlenecks at this scale.
155
-
- End-to-end workload readiness dominates total deployment time, showing that cluster resource availability and container image pulls have a greater impact than Helm CLI execution.
157
+
158
+
- Helm CLI operations complete efficiently on an Arm64-based Axion C4A VM, establishing a baseline for further testing
159
+
- The `--wait` flag significantly increases total execution time because Helm waits for workloads to reach Ready state, reflecting scheduler and image-pull delays rather than Helm CLI overhead
160
+
- Parallel Helm installs complete with minimal contention, indicating that client-side execution and Kubernetes API handling aren't bottlenecks at this scale
161
+
- End-to-end workload readiness dominates total deployment time, showing that cluster resource availability and container image pulls have greater impact than Helm CLI execution
156
162
157
163
## What you've accomplished
158
164
159
-
You have successfully benchmarked Helm concurrency on a Google Axion C4A Arm64 virtual machine. The benchmarks demonstrated that:
165
+
You have successfully benchmarked Helm concurrency on a Google Axion C4A Arm64 VM:
160
166
161
-
- Helm CLI operations execute efficiently on Arm64 architecture with the Axion processor
167
+
- Helm CLI operations execute efficiently on Arm64 architecture with Axion processors
162
168
- Parallel Helm installs complete in under 4 seconds when not waiting for pod readiness
163
169
- Using the `--wait` flag extends deployment time to reflect actual workload initialization
164
170
- Kubernetes API and client-side performance scale well under concurrent load
165
171
- Image pulling and resource scheduling have more impact on total deployment time than Helm CLI execution
166
172
167
-
These results establish a performance baseline for deploying containerized workloads with Helm on Arm64-based cloud infrastructure, helping you make informed decisions about deployment strategies and resource allocation.
173
+
These results establish a performance baseline for deploying containerized workloads with Helm on Arm64-based cloud infrastructure.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/helm-on-gcp/gke-cluster-for-helm.md
+33-21Lines changed: 33 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,26 +1,27 @@
1
1
---
2
-
title: Prepare GKE Cluster for Helm Deployments
2
+
title: Prepare a GKE cluster for Helm deployments
3
3
weight: 6
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
-
## Overview
10
-
This section explains how to prepare a **Google Kubernetes Engine (GKE) cluster** for deploying Helm charts.
11
-
The prepared GKE cluster is used to deploy the following services using custom Helm charts:
9
+
## Set up your GKE environment
10
+
11
+
In this section you'll prepare a Google Kubernetes Engine (GKE) cluster for deploying Helm charts. The GKE cluster hosts the following services:
12
12
13
13
- PostgreSQL
14
14
- Redis
15
15
- NGINX
16
16
17
-
This setup differs from the earlier KinD-based local cluster, which was intended only for local validation.
17
+
This setup differs from the earlier KinD-based local cluster, which was used only for local validation.
18
18
19
19
## Prerequisites
20
20
21
-
Before starting, ensure that Docker, kubectl, and Helm are installed, and that you have a Google Cloud account available. If Helm and kubectl aren't installed, complete the **Install Helm** section first.
21
+
Ensure that Docker, kubectl, and Helm are installed, and that you have a Google Cloud account available. If Helm and kubectl aren't installed, complete the previous section first.
tar -xvf google-cloud-sdk-460.0.0-linux-arm.tar.gz
52
54
```
53
55
54
-
**Install gcloud:**
56
+
Install gcloud:
55
57
56
58
```console
57
59
./google-cloud-sdk/install.sh
58
60
```
59
61
60
-
The shell will exit. Bring up a new SSH Shell:
62
+
After installation completes, exit and reconnect to apply the PATH changes:
63
+
61
64
```console
62
65
exit
63
66
```
64
67
65
68
### Initialize gcloud
69
+
66
70
Authenticate and configure the Google Cloud CLI:
67
71
68
72
```console
69
73
gcloud init
70
74
```
71
75
72
-
During initialization, select **Login with a new account**. You'll be prompted to use your browser to authenticate to Google and receive an auth code to copy back. Select the project you want to use and choose default settings when unsure.
76
+
During initialization, select **Login with a new account**. You'll be prompted to authenticate using your browser and receive an auth code to copy back. Select the project you want to use and choose default settings when unsure.
73
77
74
78
### Get the list of Google project IDs
79
+
75
80
Retrieve the list of project IDs:
76
81
77
82
```console
@@ -85,28 +90,35 @@ PROJECT_ID NAME PROJECT_NUMBER
85
90
arm-lp-test arm-lp-test 834184475014
86
91
```
87
92
88
-
Note the **PROJECT_ID** for the project you want to set as active for use in the next step.
89
-
### Set the Active Project
93
+
Note the **PROJECT_ID** for use in the next step.
94
+
95
+
### Set the active project
96
+
90
97
Ensure the correct GCP project is selected:
91
98
92
99
```console
93
-
gcloud config set project YOUR_PROJECT_ID
100
+
gcloud config set project <YOUR_PROJECT_ID>
94
101
```
95
102
103
+
Replace `<YOUR_PROJECT_ID>` with your actual project ID from the previous step.
104
+
96
105
### Install the auth plugin for gcloud
106
+
97
107
```console
98
108
gcloud components install gke-gcloud-auth-plugin
99
109
```
100
110
101
111
### Enable Kubernetes API
112
+
102
113
Enable the required API for GKE:
103
114
104
115
```console
105
116
gcloud services enable container.googleapis.com
106
117
```
107
118
108
-
### Create a GKE Cluster
109
-
Create a Kubernetes cluster to host Helm deployments. Replace `YOUR_PROJECT_ID` with the project ID you set previously.
119
+
### Create a GKE cluster
120
+
121
+
Create a Kubernetes cluster to host Helm deployments:
0 commit comments