Skip to content

Commit 4625892

Browse files
Merge pull request #10 from educates/develop
Add blog for cloud provider install
2 parents 814e997 + 9a761c6 commit 4625892

File tree

14 files changed

+20843
-1220
lines changed

14 files changed

+20843
-1220
lines changed

.github/workflows/test-deploy.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
pull_request:
66
branches:
77
- main
8+
- develop
89
# Review gh actions docs if you want to further define triggers, paths, etc
910
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on
1011

-141 KB
Binary file not shown.

blog/2025-03-26-how-installer-works-part-1/index.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,6 @@ clusterPackages:
168168
169169
This transformation ensures that the configuration is optimized for the specific infrastructure provider while maintaining the flexibility to customize settings as needed.
170170
171-
![Config to values](config_to_values.png)
172-
173171
---
174172
175173
## Supported Infrastructure Providers
69.1 KB
Loading
50.2 KB
Loading
55.2 KB
Loading
39 KB
Loading
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
---
2+
slug: install-educates-cloud-cli
3+
title: Installing Educates on a cloud provider (Part 1)
4+
authors: [bill]
5+
tags: [educates, installation, cli]
6+
---
7+
8+
In the [How the install works](/blog/how-installer-works-part-1) post,
9+
we covered the highlights of how the new **Educates 3.0** cli can be
10+
used to install Educates locally.
11+
12+
In this post,
13+
we cover how to use the Educates CLI to install on a Cloud Provider,
14+
and specifically Google Cloud.
15+
16+
<!-- truncate -->
17+
18+
---
19+
## Prerequisites
20+
21+
The Educates 3.x installer will handle some of the ingress prerequisites,
22+
as Educates ingress requirements are quite sophisticated.
23+
24+
But there are various prerequisites that are required before running the Educates CLI:
25+
26+
1. **DNS**: A DNS Zone must be configured for the domain/subdomain assigned for
27+
use in your cluster.
28+
If you are using a subdomain,
29+
the root domain DNS zone must have the NS records of the associated subdomain
30+
zone NS records.
31+
32+
2. **K8s workload identity**: Your Educates K8s cluster will need access
33+
to read from and write to your Cloud Provider DNS provider.
34+
Your Cloud Provider will provide a feature to map IAM service account
35+
to service accounts that Educates will configure for DNS access.
36+
37+
3. **K8s Cluster**: The cluster must have network access for ingress,
38+
egress, and internal K8s access.
39+
It must also have read/write access to attached storage.
40+
41+
We'll explore the Educates Ingress architecture in a separate post.
42+
43+
## Configuration
44+
45+
Before installing Educates with the CLI,
46+
you will need to construct a configuration file
47+
with the necessary infrastructure parameters:
48+
49+
- Which provider and account you wish to deploy to
50+
51+
- DNS Zone containing name servers and start-of-authority
52+
for your Ingress host name.
53+
54+
- K8s Workload IAM Service Accounts
55+
56+
- Security Policy Engine
57+
58+
- Ingress Domain
59+
60+
Note that the DNS Zone parameter may have a default based on your Cloud Provider.
61+
The default for the Security Policy Engine is `kyverno`.
62+
63+
You can read about the various configuration options in the
64+
[Educates Infrastructure Providers documentation](https://docs.educates.dev/en/stable/installation-guides/infrastructure-providers.html#infrastructure-providers).
65+
66+
## Installation
67+
68+
Once you have the K8s cluster prerequisites and a configuration,
69+
install Educates running the CLI:
70+
71+
```bash
72+
educates deploy-platform --config <path to config file>
73+
```
74+
75+
You can read about the CLI installation in the Educates documentation
76+
[here](https://docs.educates.dev/en/stable/installation-guides/cli-based-installation.html#cli-based-installation).
77+
78+
---
79+
## Example using Google Cloud
80+
81+
### Prerequisites
82+
83+
- Cloud DNS is configured with the subdomain zone:
84+
85+
![Subdomain DNS Zone](./subdomain-dns-zone.png)
86+
87+
- Root DNS configured with the delegate subdomain records:
88+
89+
![Root DNS Zone](./root-dns-zone.png)
90+
91+
- IAM Service Account:
92+
93+
![DNS Admin Role](./dns-admin-role.png)
94+
95+
*Note*: Also check out the Service Account
96+
to make sure it has the *Workload Identity User* role.
97+
98+
- GKE Cluster provisioned:
99+
- Basics:
100+
101+
![Cluster Basics](./cluster-basics.png)
102+
103+
- Network:
104+
105+
![Cluster Network](./cluster-networking.png)
106+
107+
- Storage:
108+
109+
![Cluster Storage](./cluster-storage.png)
110+
111+
### Configure
112+
113+
The following is the Educates configuration:
114+
115+
```yaml
116+
clusterInfrastructure:
117+
provider: "gke"
118+
gcp:
119+
project: "educates-testing"
120+
cloudDNS:
121+
zone: "gcp.educates.academy"
122+
workloadIdentity:
123+
external-dns: "demo4-cluster-external-dns@educates-testing.iam.gserviceaccount.com"
124+
cert-manager: "demo4-cluster-cert-manager@educates-testing.iam.gserviceaccount.com"
125+
clusterSecurity:
126+
policyEngine: "kyverno"
127+
clusterIngress:
128+
domain: "gcp.educates.academy"
129+
```
130+
131+
Note that the ingress maps the subdomain configured in the DNS zone,
132+
and the `workloadIdentity` parameters map the IAM service accounts previously
133+
verified in the prerequisites.
134+
135+
---
136+
### Running the CLI
137+
138+
Install Educates by running the CLI with the supplied configuration:
139+
140+
```bash
141+
educates deploy-platform --config ./config.yaml
142+
```
143+
144+
You can see example output here:
145+
146+
<AsciinemaPlayer src="/asciinemas/install-educates-on-gcloud.cast" autoPlay={true} loop={true} />
147+
148+
You can also watch the accompanying video with additional
149+
installation details:
150+
151+
<iframe width="560" height="315" src="https://www.youtube.com/embed/C6vCd6Nhf5M?hl=en&cc_lang_pref=en&cc_load_policy=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
152+
153+
---
154+
## Supported Cloud Providers
155+
156+
Educates 3.x supports two IaaS-based Cloud Providers.
157+
You can read more about their configurations here:
158+
159+
- [Amazon EKS](https://docs.educates.dev/en/stable/installation-guides/infrastructure-providers.html#installation-to-amazon-eks)
160+
- [Google GKE](https://docs.educates.dev/en/stable/installation-guides/infrastructure-providers.html#installation-to-google-gke)
161+
162+
*Note*: While OpenShift and vCluster are considered remote cloud providers,
163+
they are not Standalone IaaS Cloud providers.
164+
165+
---
166+
167+
## Conclusion
168+
169+
Like in the [How the install works](/blog/how-installer-works-part-1) post,
170+
We saw that the new installer in Educates 3.x simplifies the deployment process,
171+
and that Educates handles the heavy lifting of ingress, endpoint
172+
and certificate management.
173+
174+
In the next part of this series, we'll walk through verification
175+
of the Educates installation on a cloud provider cluster.
48.3 KB
Loading
135 KB
Loading

0 commit comments

Comments
 (0)