Educates refactoring#871
Draft
jorgemoralespou wants to merge 41 commits into
Draft
Conversation
This was referenced Feb 2, 2026
Closed
776ab36 to
3cc031b
Compare
1dc9593 to
7318cd7
Compare
f386b3a to
d690e34
Compare
…rvices in compose
dc7e92d to
65958d3
Compare
Collaborator
|
Develop has been setup for 4.0.0 and |
Collaborator
Author
|
@GrahamDumpleton due to the work I've been doing on the helm installer and that this PR is long outdated, I will keep it as reference for smaller targeted PR once that helm-installer PR is done and merged to 4.0 Since there's 2 bigs PR, and the change surface is similar, and the other one is way newer, that is the best approach. |
jorgemoralespou
added a commit
to jorgemoralespou/educates-training-platform
that referenced
this pull request
Jul 6, 2026
… educates containers Add two commands, reimplemented against this branch (the referenced PR educates#871 is a divergent refactor on a different architecture and is not directly portable): - 'educates local mirror list' lists the deployed local registry mirrors as a table (name, URL, username, status, container name). - 'educates cluster portal export' exports a training portal and the workshops it references as sanitised, re-appliable Kubernetes YAML — to stdout as one stream, or with --as-files one file per resource. The --image-repository / --workshop-version options substitute the $(image_repository) / $(workshop_version) variables in the workshops. Give every container Educates creates via the Docker client a consistent set of educates.dev/* labels so they can be discovered, filtered, and cleaned up by label rather than by container name: - New pkg/constants holds the educates.dev/{app,role,mirror,url,username} keys and the registry/mirror/resolver role values. - The registry and mirror containers move to the namespaced keys (mirrors now also carry url/username); the resolver container, which previously had no labels, is labelled app=educates role=resolver. - ListRegistryMirrors and the bulk-delete path share one label filter. The kind node container is created by the kind library and keeps its own io.x-k8s.kind.* labels; it stays discovered by its well-known name.
20 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
educates local config editthat does validation and prevents saving on erroreducates local mirror listcommand--kubernetes-versionflag toeducates create-clusterand defaults to 1.34 and defines the kind images by sha to use.educates docker workshop deploy. It creates port bindings for additional services containers.cluster portal exportcommand to export a training portal and related workshops to stdout or files. Fixes new export-portal CLI command #91This has been rebased on latest develop, and updated to supersede #855. More commits will come later but guaranteeing that we keep this aligned with develop.
With these changes, you can now survive Docker Desktop restarts and also install Educates on a machine without internet connection (as long as prepopulated mirrors and docker images are already present on the system). Supersedes #851