Skip to content

Commit 18d4772

Browse files
Merge branch 'release/3.0.0'
2 parents b97ae86 + 72665c3 commit 18d4772

File tree

731 files changed

+90532
-59788
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

731 files changed

+90532
-59788
lines changed

.github/workflows/build-and-publish-images.yaml

Lines changed: 112 additions & 173 deletions
Large diffs are not rendered by default.

.gitignore

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ __pycache__
33
*.swp
44
*.vsix
55
.netlify
6-
/carvel-packages/cluster-essentials/bundle/.imgpkg/images.yml
7-
/carvel-packages/training-platform/bundle/.imgpkg/images.yml
8-
/carvel-packages/training-platform/bundle/kbld-images.yaml
6+
/carvel-packages/installer/test-*.yaml
7+
/carvel-packages/installer/bundle/.imgpkg/images.yml
8+
/carvel-packages/installer/bundle/kbld/kbld-images.yaml
99
/client-programs/bin
1010
/client-programs/pkg/renderer/files
1111
/developer-testing
12+
/lookup-service/venv
1213
/project-docs/venv
1314
/project-docs/_build
1415
/session-manager/venv
@@ -24,3 +25,7 @@ __pycache__
2425
/workshop-images/base-environment/opt/helper/out
2526
/workshop-images/base-environment/opt/renderer/build
2627
/workshop-images/base-environment/opt/renderer/node_modules
28+
vendor
29+
30+
31+
/test*.yaml

.readthedocs.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Read the Docs configuration file for Sphinx projects
2+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3+
4+
# Required
5+
version: 2
6+
7+
# Set the OS, Python version and other tools you might need
8+
build:
9+
os: ubuntu-22.04
10+
tools:
11+
python: "3.12"
12+
# You can also specify other tool versions:
13+
# nodejs: "20"
14+
# rust: "1.70"
15+
# golang: "1.20"
16+
17+
# Build documentation in the "docs/" directory with Sphinx
18+
sphinx:
19+
configuration: project-docs/conf.py
20+
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
21+
# builder: "dirhtml"
22+
# Fail on all warnings to avoid broken references
23+
# fail_on_warning: true
24+
25+
# Optionally build your docs in additional formats such as PDF and ePub
26+
# formats:
27+
# - pdf
28+
# - epub
29+
30+
# Optional but recommended, declare the Python requirements required
31+
# to build your documentation
32+
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
33+
python:
34+
install:
35+
- requirements: project-docs/requirements.txt

Makefile

Lines changed: 40 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,21 @@ endif
1717
TARGET_PLATFORM = $(TARGET_SYSTEM)-$(TARGET_MACHINE)
1818
DOCKER_PLATFORM = linux/$(TARGET_MACHINE)
1919

20-
all: push-all-images deploy-cluster-essentials deploy-training-platform deploy-workshop
20+
all: push-all-images # deploy-installer deploy-workshop
2121

2222
build-all-images: build-session-manager build-training-portal \
2323
build-base-environment build-jdk8-environment build-jdk11-environment \
2424
build-jdk17-environment build-jdk21-environment \
2525
build-conda-environment build-docker-registry \
2626
build-pause-container build-secrets-manager build-tunnel-manager \
27-
build-image-cache build-assets-server
27+
build-image-cache build-assets-server build-lookup-service
2828

2929
push-all-images: push-session-manager push-training-portal \
3030
push-base-environment push-jdk8-environment push-jdk11-environment \
3131
push-jdk17-environment push-jdk21-environment \
3232
push-conda-environment push-docker-registry \
3333
push-pause-container push-secrets-manager push-tunnel-manager \
34-
push-image-cache push-assets-server
34+
push-image-cache push-assets-server push-lookup-service
3535

3636
build-core-images: build-session-manager build-training-portal \
3737
build-base-environment build-docker-registry build-pause-container \
@@ -133,91 +133,63 @@ build-assets-server:
133133
push-assets-server: build-assets-server
134134
docker push $(IMAGE_REPOSITORY)/educates-assets-server:$(PACKAGE_VERSION)
135135

136-
verify-cluster-essentials-config:
137-
ifneq ("$(wildcard developer-testing/educates-cluster-essentials-values.yaml)","")
138-
@ytt --file carvel-packages/cluster-essentials/bundle/config --data-values-file developer-testing/educates-cluster-essentials-values.yaml
139-
else
140-
@ytt --file carvel-packages/cluster-essentials/bundle/config
141-
endif
136+
build-lookup-service:
137+
docker build --progress plain --platform $(DOCKER_PLATFORM) -t $(IMAGE_REPOSITORY)/educates-lookup-service:$(PACKAGE_VERSION) lookup-service
142138

143-
push-cluster-essentials-bundle:
144-
ytt -f carvel-packages/cluster-essentials/bundle/config | kbld -f - --imgpkg-lock-output carvel-packages/cluster-essentials/bundle/.imgpkg/images.yml
145-
imgpkg push -b $(IMAGE_REPOSITORY)/educates-cluster-essentials:$(RELEASE_VERSION) -f carvel-packages/cluster-essentials/bundle
146-
mkdir -p developer-testing
147-
ytt -f carvel-packages/cluster-essentials/bundle --data-values-schema-inspect -o openapi-v3 > developer-testing/educates-cluster-essentials-schema-openapi.yaml
148-
ytt -f carvel-packages/cluster-essentials/config/package.yaml -f carvel-packages/cluster-essentials/config/schema.yaml -v imageRegistry.host=$(IMAGE_REPOSITORY) -v version=$(RELEASE_VERSION) -v releasedAt=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --data-value-file openapi=developer-testing/educates-cluster-essentials-schema-openapi.yaml > developer-testing/educates-cluster-essentials.yaml
139+
push-lookup-service: build-lookup-service
140+
docker push $(IMAGE_REPOSITORY)/educates-lookup-service:$(PACKAGE_VERSION)
149141

150-
deploy-cluster-essentials:
151-
ifneq ("$(wildcard developer-testing/educates-cluster-essentials-values.yaml)","")
152-
ytt --file carvel-packages/cluster-essentials/bundle/config --data-values-file developer-testing/educates-cluster-essentials-values.yaml | kapp deploy -a educates-cluster-essentials -f - -y
142+
verify-installer-config:
143+
ifneq ("$(wildcard developer-testing/educates-installer-values.yaml)","")
144+
@ytt --file carvel-packages/installer/bundle/config --data-values-file developer-testing/educates-installer-values.yaml
153145
else
154-
ytt --file carvel-packages/cluster-essentials/bundle/config | kapp deploy -a educates-cluster-essentials -f - -y
146+
@echo "No values file found. Please create developer-testing/educates-installer-values.yaml"
147+
exit 1
155148
endif
156149

157-
delete-cluster-essentials:
158-
kapp delete -a educates-cluster-essentials -y
150+
push-installer-bundle:
151+
ytt -f carvel-packages/installer/config/images.yaml -f carvel-packages/installer/config/schema.yaml -v imageRegistry.host=$(IMAGE_REPOSITORY) -v version=$(PACKAGE_VERSION) > carvel-packages/installer/bundle/kbld/kbld-images.yaml
152+
# For local development, we just need to lock educates images. Everything else can be referenced by tag from real origin.
153+
cat carvel-packages/installer/bundle/kbld/kbld-images.yaml | kbld -f - --imgpkg-lock-output carvel-packages/installer/bundle/.imgpkg/images.yml
154+
imgpkg push -b $(IMAGE_REPOSITORY)/educates-installer:$(RELEASE_VERSION) -f carvel-packages/installer/bundle
155+
mkdir -p developer-testing
156+
ytt -f carvel-packages/installer/config/app.yaml -f carvel-packages/installer/config/schema.yaml -v imageRegistry.host=$(IMAGE_REPOSITORY) -v version=$(RELEASE_VERSION) > developer-testing/educates-installer-app.yaml
159157

160-
deploy-cluster-essentials-bundle: push-cluster-essentials-bundle
161-
kubectl get ns/educates-package || kubectl create ns educates-package
162-
kubectl apply --namespace educates-package -f carvel-packages/cluster-essentials/config/metadata.yaml
163-
kubectl apply --namespace educates-package -f developer-testing/educates-cluster-essentials.yaml
164-
ifneq ("$(wildcard developer-testing/educates-cluster-essentials-values.yaml)","")
165-
kctrl package install --namespace educates-package --package-install educates-cluster-essentials --package cluster-essentials.educates.dev --version $(RELEASE_VERSION) --values-file developer-testing/educates-cluster-essentials-values.yaml
158+
deploy-platform:
159+
ifneq ("$(wildcard developer-testing/educates-installer-values.yaml)","")
160+
ytt --file carvel-packages/installer/bundle/config --data-values-file developer-testing/educates-installer-values.yaml | kapp deploy -a label:installer=educates-installer.app -f - -y
166161
else
167-
kctrl package install --namespace educates-package --package-install educates-cluster-essentials --package cluster-essentials.educates.dev --version $(RELEASE_VERSION)
162+
@echo "No values file found. Please create developer-testing/educates-installer-values.yaml"
163+
exit 1
168164
endif
169165

170-
delete-cluster-essentials-bundle:
171-
kctrl package installed delete --namespace educates-package --package-install educates-cluster-essentials -y
166+
delete-platform:
167+
kapp delete -a label:installer=educates-installer.app -y
172168

173-
verify-training-platform-config:
174-
ifneq ("$(wildcard developer-testing/educates-training-platform-values.yaml)","")
175-
@ytt --file carvel-packages/training-platform/bundle/config --data-values-file developer-testing/educates-training-platform-values.yaml
176-
else
177-
@ytt --file carvel-packages/training-platform/bundle/config
169+
deploy-platform-app: push-installer-bundle
170+
ifeq ("$(wildcard developer-testing/educates-installer-values.yaml)","")
171+
@echo "No values file found. Please create developer-testing/educates-installer-values.yaml"
172+
exit 1
178173
endif
174+
-kubectl apply -f carvel-packages/installer/config/rbac.yaml
175+
kubectl create secret generic educates-installer --from-file=developer-testing/educates-installer-values.yaml -o yaml --dry-run=client | kubectl apply -n educates-installer -f -
176+
kubectl apply --namespace educates-installer -f developer-testing/educates-installer-app.yaml
179177

180-
push-training-platform-bundle:
181-
ytt -f carvel-packages/training-platform/config/images.yaml -f carvel-packages/training-platform/config/schema.yaml -v imageRegistry.host=$(IMAGE_REPOSITORY) -v version=$(PACKAGE_VERSION) > carvel-packages/training-platform/bundle/kbld-images.yaml
182-
cat carvel-packages/training-platform/bundle/kbld-images.yaml | kbld -f - --imgpkg-lock-output carvel-packages/training-platform/bundle/.imgpkg/images.yml
183-
imgpkg push -b $(IMAGE_REPOSITORY)/educates-training-platform:$(RELEASE_VERSION) -f carvel-packages/training-platform/bundle
184-
mkdir -p developer-testing
185-
ytt -f carvel-packages/training-platform/bundle --data-values-schema-inspect -o openapi-v3 > developer-testing/educates-training-platform-schema-openapi.yaml
186-
ytt -f carvel-packages/training-platform/config/package.yaml -f carvel-packages/training-platform/config/schema.yaml -v imageRegistry.host=$(IMAGE_REPOSITORY) -v version=$(RELEASE_VERSION) -v releasedAt=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --data-value-file openapi=developer-testing/educates-training-platform-schema-openapi.yaml > developer-testing/educates-training-platform.yaml
187-
188-
deploy-training-platform:
189-
ifneq ("$(wildcard developer-testing/educates-training-platform-values.yaml)","")
190-
ytt --file carvel-packages/training-platform/bundle/config --data-values-file developer-testing/educates-training-platform-values.yaml | kapp deploy -a educates-training-platform -f - -y
191-
else
192-
ytt --file carvel-packages/training-platform/bundle/config | kapp deploy -a educates-training-platform -f - -y
193-
endif
178+
delete-platform-app:
179+
kubectl delete --namespace educates-installer -f developer-testing/educates-installer-app.yaml
180+
-kubectl delete secret educates-installer -n educates-installer
181+
-kubectl delete -f carvel-packages/installer/config/rbac.yaml
194182

195183
restart-training-platform:
196184
kubectl rollout restart deployment/secrets-manager -n educates
197185
kubectl rollout restart deployment/session-manager -n educates
198186

199-
delete-training-platform: delete-workshop
200-
kapp delete -a educates-training-platform -y
201-
202-
deploy-training-platform-bundle: push-training-platform-bundle
203-
kubectl get ns/educates-package || kubectl create ns educates-package
204-
kubectl apply --namespace educates-package -f carvel-packages/training-platform/config/metadata.yaml
205-
kubectl apply --namespace educates-package -f developer-testing/educates-training-platform.yaml
206-
ifneq ("$(wildcard developer-testing/educates-training-platform-values.yaml)","")
207-
kctrl package install --namespace educates-package --package-install educates-training-platform --package training-platform.educates.dev --version $(RELEASE_VERSION) --values-file developer-testing/educates-training-platform-values.yaml
208-
else
209-
kctrl package install --namespace educates-package --package-install educates-training-platform --package training-platform.educates.dev --version $(RELEASE_VERSION)
210-
endif
211-
212-
delete-training-platform-bundle:
213-
kctrl package installed delete --namespace educates-package --package-install educates-training-platform -y
214-
215187
client-programs-educates:
216188
rm -rf client-programs/pkg/renderer/files
217189
mkdir client-programs/pkg/renderer/files
218190
mkdir -p client-programs/bin
219191
cp -rp workshop-images/base-environment/opt/eduk8s/etc/themes client-programs/pkg/renderer/files/
220-
(cd client-programs; go build -o bin/educates-$(TARGET_PLATFORM) cmd/educates/main.go)
192+
(cd client-programs; go build -gcflags=all="-N -l" -o bin/educates-$(TARGET_PLATFORM) cmd/educates/main.go)
221193

222194
build-client-programs: client-programs-educates
223195

@@ -261,8 +233,8 @@ clean-project-docs:
261233
rm -rf project-docs/_build
262234

263235
deploy-workshop:
264-
kubectl apply -f https://github.com/vmware-tanzu-labs/lab-k8s-fundamentals/releases/download/5.0/workshop.yaml
265-
kubectl apply -f https://github.com/vmware-tanzu-labs/lab-k8s-fundamentals/releases/download/5.0/trainingportal.yaml
236+
kubectl apply -f https://github.com/educates/lab-k8s-fundamentals/releases/download/7.4/workshop.yaml
237+
kubectl apply -f https://github.com/educates/lab-k8s-fundamentals/releases/download/7.4/trainingportal.yaml
266238
STATUS=1; ATTEMPTS=0; ROLLOUT_STATUS_CMD="kubectl rollout status deployment/training-portal -n lab-k8s-fundamentals-ui"; until [ $$STATUS -eq 0 ] || $$ROLLOUT_STATUS_CMD || [ $$ATTEMPTS -eq 5 ]; do sleep 5; $$ROLLOUT_STATUS_CMD; STATUS=$$?; ATTEMPTS=$$((ATTEMPTS + 1)); done
267239

268240
delete-workshop:

carvel-packages/cluster-essentials/bundle/.imgpkg/bundle.yml

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)