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: README.md
+68-61Lines changed: 68 additions & 61 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,9 +5,9 @@
5
5
6
6
<!-- omit from toc -->
7
7
8
-
# CNOE Azure Reference Implementation
8
+
# CNOE GCP Reference Implementation
9
9
10
-
This repository provides a reference implementation for deploying Cloud Native Operations Enabler (CNOE) components on Azure Kubernetes Service (AKS) using GitOps principles.
10
+
This repository provides a reference implementation for deploying Cloud Native Operations Enabler (CNOE) components on Google Kubernetes Engine (GKE) using GitOps principles.
11
11
12
12
<!-- omit from toc -->
13
13
@@ -68,37 +68,39 @@ This repository provides a reference implementation for deploying Cloud Native O
68
68
69
69
## Important Notes
70
70
71
-
-**Azure Resource Management**: This repository does not manage Azure infrastructure. AKS cluster and DNS zone must be provisioned separately using your organization's infrastructure management approach.
72
-
-**Production Readiness**: The helper tasks in this repository are for creating Azure resources for demo purposes only. Any production deployments should follow enterprise infrastructure management practices.
71
+
-**GCP Resource Management**: This repository does not manage GCP infrastructure. GKE cluster and Cloud DNS zone must be provisioned separately using your organization's infrastructure management approach.
72
+
-**Production Readiness**: The helper tasks in this repository are for creating GCP resources for demo purposes only. Any production deployments should follow enterprise infrastructure management practices.
73
73
-**Configuration Management**: All configuration is centralised in `config.yaml`. The `private/` directory is only for temporary files during development.
74
-
-**Bootstrap Approach**: The installation uses a local Kind cluster to bootstrap the installation to the target AKS cluster. The Kind cluster can be deleted after installation is complete.
74
+
-**Bootstrap Approach**: The installation uses a local Kind cluster to bootstrap the installation to the target GKE cluster. The Kind cluster can be deleted after installation is complete.
75
75
76
76
## Prerequisites
77
77
78
-
### Required Azure Resources
78
+
### Required GCP Resources
79
79
80
-
Before using this reference implementation, you **MUST** have the following Azure resources already created and configured:
80
+
Before using this reference implementation, you **MUST** have the following GCP resources already created and configured:
- For example, the demonstration AKS cluster created with the helper task `test:aks:create` has node pool with the node size set to `standard_d4alds_v6` by default
87
-
2.**Azure DNS Zone**
88
-
- A registered domain with Azure DNS as the authoritative DNS service
85
+
- For example, a demonstration GKE cluster should have nodes with at least 4 vCPUs and 16GB memory
86
+
2.**Cloud DNS Zone**
87
+
- A registered domain with Cloud DNS as the authoritative DNS service
88
+
3.**GCP Secret Manager**
89
+
- A Secret Manager instance for storing configuration secrets and certificates
89
90
90
91
> **Important**:
91
92
>
92
-
> - All Azure resources must be in the same subscription and resource group
93
-
> -Azure Key Vault and Crossplane Workload Identity are **NO LONGER**prerequisites - they will be created automatically during installation
94
-
> - These resources are prerequisites and must be provisioned using your organisation's preferred infrastructure management approach (Terraform, Bicep, ARM templates, etc.). The tasks in this repository that create Azure resources (`test:aks:create`, etc.) are helper functions for demonstration purposes only and are **NOT recommended for production deployments**.
93
+
> - All GCP resources must be in the same project and region
94
+
> -GCP Secret Manager and Crossplane Workload Identity are prerequisites for secure authentication
95
+
> - These resources must be provisioned using your organisation's preferred infrastructure management approach (Terraform, Deployment Manager, gcloud CLI, etc.). The tasks in this repository that create GCP resources are helper functions for demonstration purposes only and are **NOT recommended for production deployments**.
95
96
96
-
#### Setup Guidance for Azure Resources
97
+
#### Setup Guidance for GCP Resources
97
98
98
-
For setting up the prerequisite Azure resources, refer to the official Azure documentation:
99
+
For setting up the prerequisite GCP resources, refer to the official GCP documentation:
99
100
100
-
-[Create an AKS cluster](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough)
101
-
-[Azure DNS zones](https://docs.microsoft.com/en-us/azure/dns/)
101
+
-[Create a GKE cluster](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster)
102
+
-[Cloud DNS zones](https://cloud.google.com/dns/docs/zones)
-`repo`: The details of the repository hosting the reference azure implementation code
210
-
-`cluster_name`: Your AKS cluster name
211
-
-`subscription`: Your Azure subscription ID
212
-
-`location`: The target Azure region
213
-
-`resource_group`: Your Azure resource group
214
-
-`cluster_oidc_issuer_url`: The AKS OIDC issuer URL
215
-
-`domain`: The base domain name you will be using for exposing services
215
+
-`repo`: The details of the repository hosting the reference GCP implementation code
216
+
-`cluster_name`: Your GKE cluster name
217
+
-`project`: Your GCP project ID
218
+
-`region`: The target GCP region
219
+
-`dns_zone`: Your Cloud DNS zone name
220
+
-`dns_domain`: The base domain name you will be using for exposing services
221
+
-`secret_manager`: GCP Secret Manager name for storing configuration secrets
216
222
-`github`: GitHub App credentials (from the [Github Integration Setup](#github-integration-setup))
217
223
218
224
#### DNS and TLS Configuration
@@ -245,7 +251,7 @@ task install
245
251
246
252
> **Notes**:
247
253
>
248
-
> -`task install` will create a local Kind cluster and use it to bootstrap the installation to your AKS cluster
254
+
> -`task install` will create a local Kind cluster and use it to bootstrap the installation to your GKE cluster
249
255
> - Post-installation, use `task apply` (the equivalent to running `helmfile apply`) to apply updates. See the [Task Usage Guidelines](docs/TASKFILE.md) for more information.
250
256
251
257
### 3. Monitor Installation
@@ -263,22 +269,22 @@ During installation, you can monitor progress using the local Kind cluster:
263
269
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}"| base64 -d
264
270
```
265
271
266
-
Once the AKS installation is complete, you can also access ArgoCD on the target cluster:
272
+
Once the GKE installation is complete, you can also access ArgoCD on the target cluster:
267
273
268
274
```bash
269
-
# Switch to AKS cluster context
270
-
task kubeconfig:set-context:aks
275
+
# Switch to GKE cluster context
276
+
task kubeconfig:set-context:gke
271
277
272
278
# Get ArgoCD admin password
273
279
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}"| base64 -d
274
280
275
-
# Access ArgoCD (running on AKS cluster)
281
+
# Access ArgoCD (running on GKE cluster)
276
282
# Navigate to: https://argocd.<your-domain>
277
283
```
278
284
279
285
### 4. Get Access URLs
280
286
281
-
Use the `task get:urls` command to fetch all the URLs from the target AKS cluster:
287
+
Use the `task get:urls` command to fetch all the URLs from the target GKE cluster:
282
288
283
289
```bash
284
290
task get:urls
@@ -302,11 +308,11 @@ The URL structure of the URLs will depend on the type of routing you set in the
302
308
303
309
### 5. Access Backstage
304
310
305
-
Once the Keycloak and Backstage are installed on the target AKS cluster, check you can login to the Backstage UI with a default user:
311
+
Once the Keycloak and Backstage are installed on the target GKE cluster, check you can login to the Backstage UI with a default user:
@@ -327,14 +333,14 @@ Backstage templates can be found in the `templates/` directory
327
333
## Uninstall
328
334
329
335
```bash
330
-
# Remove all components and clean up Azure resources
336
+
# Remove all components and clean up GCP resources
331
337
task uninstall
332
338
333
339
# Clean up GitHub App and tokens manually
334
340
# Delete the GitHub organisation if no longer needed
335
341
```
336
342
337
-
> **Note**: The `task uninstall` command will clean up both the local Kind cluster and remove CNOE components from the target AKS cluster. Azure resources created by Crossplane (Key Vault, Workload Identity) will also be cleaned up automatically.
343
+
> **Note**: The `task uninstall` command will clean up both the local Kind cluster and remove CNOE components from the target GKE cluster. GCP resources managed by Crossplane will also be cleaned up automatically.
338
344
339
345
## Contributing
340
346
@@ -350,16 +356,17 @@ See [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) for common issues and detailed
350
356
351
357
## Potential Enhancements
352
358
353
-
The installation of this Azure reference implementation will give you a starting point for the platform, however as previously stated applications deployed in this repository are not meant or configured for production. To push it towards production ready, you can make further enhancements that could include:
359
+
The installation of this GCP reference implementation will give you a starting point for the platform, however as previously stated applications deployed in this repository are not meant or configured for production. To push it towards production ready, you can make further enhancements that could include:
354
360
355
-
1. Modifying the basic and Argo workflow templates for your specific Azure use cases
356
-
2. Integrating additional Azure services with Crossplane
357
-
3. Configuring auto-scaling for AKS and Azure resources
361
+
1. Modifying the basic and Argo workflow templates for your specific GCP use cases
This guide demonstrates the key features and capabilities of the CNOE Azure Reference Implementation through practical examples focused on Azure services and infrastructure.
3
+
# Demo Guide - CNOE GCP Reference Implementation
4
+
5
+
This guide demonstrates the key features and capabilities of the CNOE GCP Reference Implementation through practical examples focused on GCP services and infrastructure.
5
6
6
7
<!-- omit from toc -->
8
+
7
9
## Best Practices Demonstrated
8
10
9
11
### 1. GitOps Workflow
@@ -14,10 +16,10 @@ This guide demonstrates the key features and capabilities of the CNOE Azure Refe
14
16
15
17
### 2. Security
16
18
17
-
- Workload Identity for Azure authentication
19
+
- Workload Identity for GCP authentication
18
20
- Secret management with External Secrets
19
21
- TLS everywhere with cert-manager
20
-
- Configuration stored securely in Azure Key Vault
22
+
- Configuration stored securely in GCP Secret Manager
21
23
22
24
### 3. Developer Experience
23
25
@@ -33,6 +35,7 @@ This guide demonstrates the key features and capabilities of the CNOE Azure Refe
33
35
- Centralized configuration management
34
36
35
37
<!-- omit from toc -->
38
+
36
39
## Table of Contents
37
40
38
41
-[Prerequisites](#prerequisites)
@@ -51,15 +54,15 @@ This guide demonstrates the key features and capabilities of the CNOE Azure Refe
51
54
## Prerequisites
52
55
53
56
- Complete installation following the instructions in the [README.md](../README.md) file
54
-
- All prerequisite Azure resources (AKS cluster, DNS zone, Key Vault) are properly configured
57
+
- All prerequisite GCP resources (GKE cluster, Cloud DNS zone, Secret Manager) are properly configured
55
58
- Access to Backstage UI at your configured domain
56
59
- Default user (`user1`) credentials from Keycloak
57
60
58
61
## Getting Started: Explore the Platform
59
62
60
63
After you installed the platform, before performing any operations/scenarios we recommend you first explore the platform.
61
64
62
-
This section will provide you with instructions on you can access the UI for each component for you to explore.
65
+
This section will provide you with instructions on you can access the UI for each component for you to explore.
63
66
64
67
To begin the `task get:urls` command can be used to fetch all the URLs.
65
68
@@ -123,7 +126,7 @@ See the [Backstage Documentation](https://backstage.io/docs/) for more informati
123
126
124
127
### Scenario 1: Creating a New Application from Template
125
128
126
-
@TODO creating templates for Azure is still to be completed [link to issue to be attached]
129
+
@TODO creating templates for GCP is still to be completed [link to issue to be attached]
127
130
128
131
## Reading Material
129
132
@@ -134,7 +137,7 @@ Previously linked reading material and more:
0 commit comments