Skip to content

Fallstar, sidelab, keeptrack updates - #63

Merged
devpro merged 33 commits into
mainfrom
feature/fallstar-sidelab
Oct 28, 2026
Merged

devpro merged 33 commits into
mainfrom
feature/fallstar-sidelab

Conversation

@devpro

@devpro devpro commented Oct 28, 2026

Copy link
Copy Markdown
Owner

No description provided.

devpro and others added 30 commits October 1, 2026 23:09
…on string from a Secret

MariaDB images dropped mysqladmin in 11.0, so the probes of the 12.2 image failed and the pod never got ready.
The sales portal took its MongoDB connection string only as a value, which put its password in the values of a GitOps repository.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011C3sfi4prUmDrjVTzgdzdn
…be-linter

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The image is private and the chart public, as for Sidelab: fallstar.yaml names ghcr.io/devpro/fallstar and its ghcr-pull Secret, with the choices of a deployment (database, secrets, ingress, certificate issuer).
The image is tagged by its pipeline run, never by the application version, so the tag is a value to set rather than a default that does not exist.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…kind

Every chart is rendered with its ci values and validated with kubeconform, which gives capi-templates, letsencrypt and rancher-cluster-templates the ci values they need to render.
Fallstar gets helm-unittest suites, run with the standalone binary.
Changed charts are installed on a kind cluster named after the run, except those that cannot get ready on a bare cluster.
The workflow files lose their byte order mark, which some tools refuse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FvUmuFc3tsqikAZ8gPa83n
The default tag 1.3.0 was never published: the 1.3 release is 1.3.36770971345.
The bundled MongoDB Service is named after the release alone when the release name holds "mongodb", as Bitnami names it, so the connection string follows the same rule.
The liveness probe checks the port, as the health endpoint pings MongoDB and a database outage restarted the server.
The chart is installed in CI with the bundled MongoDB.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FvUmuFc3tsqikAZ8gPa83n
…in CI

keeptrack and todoblazor get the bundled MongoDB under a fixed name, so their probes pass.
keeptrack is installed without its web app, which needs a Firebase service account key.
grafana-stack runs Loki as a single binary, which a single node can schedule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FvUmuFc3tsqikAZ8gPa83n
…re/setup-helm

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rkflow and the Kubernetes setup actions of github-workflow-parts

The docs build by the convention of the Pages workflow, on Node.js 24, with npm ci and the new build script.
kube-linter, kubeconform, helm-unittest, kind and kubectl come from actions checking each download against its SHA256, rather than installers written in the job.
The default branch reaches the scripts through the environment rather than pasted into them, and the publication pins its Go and drops a Node.js no step used.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SESuYdZsJfq852odntm3Yi
…mark, which some tools refuse to read

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SESuYdZsJfq852odntm3Yi
… version of each chart it changes

cow-demo 0.2.4, drupal 1.0.2, dvwa 1.0.3, gitops-bootstrap 0.1.1, keeptrack 0.2.8, nextportal 1.0.1, sidelab 0.1.8,
terraform-backend-mongodb 0.3.2, tinyfilemanager 1.0.3, todoblazor 0.1.5, trackboard 0.1.1 and webgoat 1.0.1.
Two files of todoblazor held only the mark, and are now empty.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SESuYdZsJfq852odntm3Yi
…an whenever charts changed

A failure before it, of ct lint for instance, left neither kind nor a cluster, and the deletion then failed on a command not found.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SESuYdZsJfq852odntm3Yi
…ather than one after another

Each chart gets a release and a namespace of its own, as ct install gives it, and a log of its own, shown chart by chart once all are done.
The step fails naming every chart that did not install.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SESuYdZsJfq852odntm3Yi
…, which IstarCI leaves out of a local run

The kind node is a privileged container with no fixed image yet for the vulnerabilities it carries, so it runs on GitHub only, on a runner thrown away after the job, rather than on the Docker of the machine running IstarCI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SESuYdZsJfq852odntm3Yi
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SESuYdZsJfq852odntm3Yi
…med releases, clean image scans, native arm64 builds and a timeout on every job

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ository does

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Btfe5mZ8jkmrYUV8dN3Mx
The VitePress examples keep the HTML and emphasis they demonstrate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Btfe5mZ8jkmrYUV8dN3Mx
…at render to YAML

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Btfe5mZ8jkmrYUV8dN3Mx
…de braces the Fallstar recipes use, as the fallstar repository does

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Btfe5mZ8jkmrYUV8dN3Mx
…gress ranges as launcher.labEgressCidrs, in chart 0.1.9

The launcher now isolates every lab session with its own NetworkPolicies and refuses to start a session without them,
so the ClusterRole grants get, list, create and delete on networkpolicies.
launcher.labEgressCidrs becomes K8S_LAB_EGRESS_CIDRS, the private ranges a lab may reach beyond the internet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014NEKk9yr86P4Mra28RddPa
devpro and others added 3 commits October 27, 2026 19:32
…, in chart 0.1.10

The image, the device plugin's resource names and an optional RuntimeClass, which a cluster exempts from a baseline Pod Security level since the VM pods' prepare step adds NET_ADMIN.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014NEKk9yr86P4Mra28RddPa
….terraform, in chart 0.1.11

moduleSource becomes TERRAFORM_MODULE_SOURCE, and credentialsSecret names a Secret whose keys reach the launcher's container through envFrom, so provider credentials stay out of values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014NEKk9yr86P4Mra28RddPa
opentelemetry.endpoint and opentelemetry.protocol become OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_PROTOCOL, nothing being set while the endpoint is empty.
Each application exports under its own OTEL_SERVICE_NAME, with the pod, namespace, version and environment in OTEL_RESOURCE_ATTRIBUTES, the pod name read from the downward API.
The chart gets its first helm-unittest suite, left out of the package by .helmignore.
@devpro
devpro merged commit 17d0713 into main Oct 28, 2026
6 checks passed
@devpro
devpro deleted the feature/fallstar-sidelab branch October 28, 2026 21:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant