-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Context
The kubeasy-cli is migrating from ArgoCD to direct deployment. Challenges will now be distributed via OCI artifacts instead of being pulled from Git by ArgoCD.
The CLI will pull artifacts from ghcr.io/kubeasy-dev/challenges/<slug>:latest using oras-go.
Requirements
OCI Artifact Structure
Each challenge artifact should contain:
manifests/directory with all YAML manifestspolicies/directory with Kyverno policies (if any)challenge.yamlmetadata file
CI Pipeline
For each push to the challenge/refactoring-2024 branch (and eventually main):
- Detect modified challenges - Identify which challenge directories have changes
- Package artifacts - For each modified challenge, create an OCI artifact containing:
manifests/**/*.yamlpolicies/**/*.yamlchallenge.yaml
- Push to registry - Push to
ghcr.io/kubeasy-dev/challenges/<slug>:latest- Tag with commit SHA as well:
ghcr.io/kubeasy-dev/challenges/<slug>:<sha>
- Tag with commit SHA as well:
Suggested Implementation
- Use oras CLI in GitHub Actions
- Or use
ghcr.iowith Docker/OCI standard tooling - Authenticate with
GITHUB_TOKEN(automatic in GitHub Actions)
Example
# For a challenge "pod-evicted":
oras push ghcr.io/kubeasy-dev/challenges/pod-evicted:latest \
manifests/:application/vnd.kubeasy.manifests.v1.tar+gzip \
policies/:application/vnd.kubeasy.policies.v1.tar+gzip \
challenge.yaml:application/vnd.kubeasy.challenge.v1+yamlRelated
- CLI PR removing ArgoCD and adding OCI support is in progress on
kubeasy-cli
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels