Skip to content

feat(examples & workflows): Add prometheus3.5.3 - #333

Open
AlexiksA wants to merge 3 commits into
unikraft-cloud:mainfrom
AlexiksA:AlexiksA/Add-prometheus3.5.3
Open

feat(examples & workflows): Add prometheus3.5.3#333
AlexiksA wants to merge 3 commits into
unikraft-cloud:mainfrom
AlexiksA:AlexiksA/Add-prometheus3.5.3

Conversation

@AlexiksA

@AlexiksA AlexiksA commented May 9, 2026

Copy link
Copy Markdown

Add prometheus 3.5.3 example and Workflows.

@razvand
razvand self-requested a review May 9, 2026 09:42
@razvand razvand self-assigned this May 9, 2026
@razvand razvand added the documentation Improvements or additions to documentation label May 9, 2026

@razvand razvand left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use present tense in the commit description. Also add more information in the commit description. Mention what are the contents of the commit.

AlexiksA added 2 commits May 9, 2026 12:56
Add Prometheus 3.5.3 as a new example for Unikraft Cloud deployment.

The example includes:
- Dockerfile: builds a minimal image with the Prometheus
  binary downloaded from the official GitHub release tarball
- Kraftfile: defines the Unikraft Cloud deployment specification,
  including runtime, rootfs, volume for persistent metrics storage,
  network port mapping and startup command flags
- README.md: provides instructions for deploying Prometheus on Unikraft Cloud
  using both the unikraft and kraft CLIs
- .dockerignore and .gitignore: standard ignore files for the example

Signed-off-by: Alexandru-Iulian Aranghel <alexandru.aranghel@yahoo.com>
Add staging and stable GitHub Actions workflows for the prometheus3.5.3.

The workflows include:
- example-prometheus3.5.3-staging.yaml: runs against the staging
  environment, triggered on push, pull request, and daily schedule
  (weekdays at 15:30 UTC)
- example-prometheus3.5.3-stable.yaml: runs against the stable
  environment, triggered on push, pull request, and daily schedule
  (weekdays at 16:30 UTC)

Both workflows deploy the example to Unikraft Cloud, verify the
/metrics endpoint is reachable via curl, and clean up the instance,
image and logs on completion.

Signed-off-by: Alexandru-Iulian Aranghel <alexandru.aranghel@yahoo.com>
@AlexiksA
AlexiksA force-pushed the AlexiksA/Add-prometheus3.5.3 branch from 102ea9c to 7efc96a Compare May 9, 2026 12:02
@AlexiksA AlexiksA changed the title AlexiksA/Add prometheus3.5.3 feat(examples & workflows): Add prometheus3.5.3 May 9, 2026
@AlexiksA
AlexiksA requested a review from razvand May 9, 2026 12:12
@razvand
razvand requested a lite review from Copilot August 21, 2026 07:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Prometheus 3.5.3 example for Unikraft Cloud, plus CI workflows to deploy and smoke-test the example in staging/stable environments.

Changes:

  • Introduces prometheus3.5.3/ example assets (Kraftfile, Dockerfile, README, ignores).
  • Adds GitHub Actions workflows to deploy the example and verify the /metrics endpoint in staging and stable.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
prometheus3.5.3/README.md Usage guide for deploying/running the Prometheus example and customization notes
prometheus3.5.3/Kraftfile Runtime/rootfs/port/volume configuration and Prometheus command flags
prometheus3.5.3/Dockerfile Builds a minimal rootfs with the Prometheus 3.5.3 binary and default config
prometheus3.5.3/.gitignore Ignores local Unikraft build artifacts
prometheus3.5.3/.dockerignore Ignores local Unikraft build artifacts during docker builds
.github/workflows/example-prometheus3.5.3-staging.yaml CI deploy + /metrics smoke test in staging
.github/workflows/example-prometheus3.5.3-stable.yaml CI deploy + /metrics smoke test in stable
Suppressed comments (2)

prometheus3.5.3/README.md:177

  • This Dockerfile explanation doesn't match the actual Dockerfile: the image copies prometheus.yml from the upstream release (via --from=build), not from a local prometheus.yml file.
* `COPY prometheus.yml /etc/prometheus/prometheus.yml`: Copy the Prometheus configuration file into the image.

prometheus3.5.3/README.md:181

  • This suggests editing a local prometheus.yml, but the current Dockerfile pulls prometheus.yml from the upstream tarball, and there is no prometheus.yml in the repo. The customization instructions should describe how to supply an overridden config (e.g., add prometheus.yml to the repo and adjust the Dockerfile COPY).
* Update `prometheus.yml` to change scrape targets, intervals, alerting rules, or any other Prometheus configuration.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread prometheus3.5.3/README.md Outdated
Comment thread prometheus3.5.3/README.md Outdated
Comment thread prometheus3.5.3/Kraftfile Outdated
Comment thread .github/workflows/example-prometheus3.5.3-staging.yaml Outdated
Comment thread .github/workflows/example-prometheus3.5.3-stable.yaml Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: AlexiksA <alexandru.aranghel@yahoo.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.

Suppressed comments (5)

Previously missed (4) — in code that hasn't changed since the last review.

prometheus3.5.3/README.md:51

  • The README says Prometheus needs a volume for persistence, but the unikraft run example doesn’t mount the prometheus-data volume, so metrics will still be stored on ephemeral storage.
unikraft run --metro fra -p 443:9090/tls+http -m 1G --image <my-org>/prometheus:latest

prometheus3.5.3/README.md:155

  • prometheus.yml is listed as a repository file to edit, but there is no prometheus3.5.3/prometheus.yml checked in (the Dockerfile extracts it from the upstream tarball). This makes the customization instructions misleading.

This issue also appears on line 175 of the same file.

* `Kraftfile`: the Unikraft Cloud specification
* `Dockerfile`: the Docker-specified app filesystem
* `prometheus.yml`: Prometheus configuration file (copied from the upstream Prometheus release; customize by providing your own file and updating the Dockerfile COPY line)

prometheus3.5.3/Kraftfile:7

  • This Kraftfile uses the shorthand rootfs: ./Dockerfile, which is inconsistent with the rest of the repo’s examples that declare rootfs.source and set an explicit format: erofs (e.g. grafana/Kraftfile:5-7). Using the full form avoids relying on defaults and makes automated tooling more consistent.
rootfs: ./Dockerfile

prometheus3.5.3/Dockerfile:14

  • The final image doesn’t install ca-certificates. That can break HTTPS scrapes/remote-write/alerting integrations which rely on the OS trust store, even if the /metrics endpoint itself is served over plain HTTP behind the platform TLS terminator.
# minimal rootfs
FROM alpine:3.19

COPY --from=build /tmp/prometheus-release/prometheus /bin/prometheus
COPY --from=build /tmp/prometheus-release/prometheus.yml /etc/prometheus/prometheus.yml

prometheus3.5.3/README.md:177

  • This Dockerfile explanation doesn’t match the actual Dockerfile: the config is copied from the build stage (COPY --from=build .../prometheus.yml), not from a local prometheus.yml file.
* `COPY --from=build /tmp/prometheus-release/prometheus /bin/prometheus`: Copy only the Prometheus binary into the final image.

* `COPY prometheus.yml /etc/prometheus/prometheus.yml`: Copy the Prometheus configuration file into the image.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants