SovereignCloudStack / SovereignCloudStack/cluster-stacks
Provide a clear list of available ClusterStacks (in OCI Registry or GitHub Releases) with versions
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 13
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
As a cluster stack user I want to see a clear, discoverable list of available ClusterStack versions, including:
- ClusterStack.spec.kubernetesVersion
- ClusterStack.spec.versions (including the relevant sha values)
- Cluster.topology.version used during cluster creation
At the moment, it's not obvious where this version mapping can be found. Ideally, there would be a table or endpoint showing the full list of published cluster stacks, either:
- In the OCI registry (if using one)
- Or via GitHub releases or tags
Example of what I’m looking for:
1.32.1, v0-sha.XXXXX, 1.32
1.32.0, v0-sha.XXXXX, 1.32
1.31.6, v1-sha.YYYYY, 1.31
1.31.5, v1-sha.YYYYY, 1.31
1.31.4, v0-sha.ZZZZZ, 1.31
1.30.11, v2-sha.AAAAA, 1.30
1.30.10, v2-sha.AAAAA, 1.30
1.30.9, v1-sha.BBBBB, 1.30
Find the helper script that does the above for the OCI cluster stacks
#!/bin/bash
REPO="registry.scs.community/kaas/cluster-stacks"
DEST_DIR="./cluster-stacks-tmp"
# Check dependencies
command -v oras >/dev/null 2>&1 || { echo >&2 "oras not found. Install it first."; exit 1; }
command -v yq >/dev/null 2>&1 || { echo >&2 "yq not found. Install it first."; exit 1; }
mkdir -p "$DEST_DIR"
# Array to hold the output rows
declare -a rows
rows+=("infrastructure | ClusterStack.spec.kubernetesVersion | ClusterStack.spec.versions | k8sCluster.topology.version_minor") # Header row
# Get list of tags (skip header line)
tags=$(oras repo tags "$REPO" | tail -n +2)
for tag in $tags; do
echo "Pulling: $REPO:$tag"
target_dir="$DEST_DIR/$tag"
mkdir -p "$target_dir"
if ! oras pull "$REPO:$tag" -o "$target_dir"; then
echo "Failed to pull $tag" >&2
continue
fi
metadata_file="$target_dir/metadata.yaml"
if [[ -f "$metadata_file" ]]; then
kubernetes=$(yq e '.versions.kubernetes' "$metadata_file")
clusterstack=$(yq e '.versions.clusterStack' "$metadata_file")
k8s_minor=$(echo "$kubernetes" | sed -E 's/v?([0-9]+\.[0-9]+)\..*/\1/')
infrastructure=$(echo "$tag" | cut -d'-' -f1)
rows+=("${infrastructure} | ${kubernetes} | ${clusterstack} | ${k8s_minor}")
else
echo "No metadata.yaml found in $tag" >&2
fi
done
# Print all collected output at the end
echo
for row in "${rows[@]}"; do
echo "$row"
done
rm -rf "$DEST_DIR"
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the OCI ClusterStacks helper script described in the issue and review how it uses oras, yq, and metadata.yaml to collect version data. Check how published tags or GitHub releases are currently exposed. Done means users can discover a complete mapping of Kubernetes versions, ClusterStack versions and hashes, and cluster topology versions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bash, kubernetes
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100