Skip to main content

Generate Kustomize-ready Kubernetes manifests from Pterodactyl/Pelican game eggs.

Project description

CI Quality Gate Status

kubeegg

kubeegg is a terminal CLI that converts a Pelican / Pterodactyl game egg JSON into a Kustomize-ready Kubernetes manifest set.

Build & Install (Required)

uv sync
uv build
uv tool install dist/*.whl

Verify:

kubeegg --help

Usage

kubeegg <URL-or-path-to-egg.json>

Examples:

kubeegg egg-paper.json
kubeegg https://github.com/pterodactyl/game-eggs/blob/main/minecraft/java/paper/egg-paper.json

By default, manifests are written into the current directory. To write to another existing directory:

kubeegg <egg.json> --out ./some/path

To write the Secret as a SOPS-compatible filename:

kubeegg <egg.json> --sops

Output

The following files are generated in the output directory:

  • kustomization.yaml
  • namespace.yaml
  • pvc.yaml
  • fm-config-pvc.yaml (file manager config PVC)
  • deployment.yaml
  • ftp-deployment.yaml (file manager deployment)
  • service.yaml
  • ftp-service.yaml (file manager web UI Service)
  • configmap.yaml (only if non-sensitive env vars are provided)
  • secret.yaml (only if sensitive env vars are provided)
  • installer-configmap.yaml (only if an egg installer script is enabled)

Notes

  • All Services are ClusterIP only.
  • Storage uses a ReadWriteMany PVC for game data, plus a separate 1Gi ReadWriteOnce PVC mounted at /config for the file manager.
  • The sidecar exposes a single web UI port for file uploads/downloads.
  • No Ingress, Gateway, or LoadBalancer resources are created.
  • File manager credentials are not injected; manage users via the file manager UI.
  • File manager mounts the PVC at /data and /config per the image's expectations. citeturn0view0
  • Pod security context sets RuntimeDefault seccomp and drops all capabilities. Both pods run as non-root UID/GID 1000 with fsGroup 1000.
  • Egg startup commands are exposed via a STARTUP environment variable when available.
  • If the startup command contains {{SERVER_MEMORY}} and a memory limit is set, kubeegg replaces it with the limit (in MB).
  • If an egg contains an installer script, kubeegg can add an initContainer that runs it once (guarded by a marker file in the PVC).
  • Manifests are deterministic and GitOps-friendly.

SonarQube Cloud

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kubeegg-0.1.0.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kubeegg-0.1.0-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file kubeegg-0.1.0.tar.gz.

File metadata

  • Download URL: kubeegg-0.1.0.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kubeegg-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7caa535690f567b768b7e674657e4efbe76102de4fdcbd9db3c65c6266fe6a85
MD5 96a4e10050b213e06736190d4da051c7
BLAKE2b-256 7d4167258ad119ba4446d477b25e6adb548cc22fbd06d60bd9385dcfae7e4096

See more details on using hashes here.

Provenance

The following attestation bundles were made for kubeegg-0.1.0.tar.gz:

Publisher: publish.yml on NickMagic25/kubeegg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kubeegg-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kubeegg-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kubeegg-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8e02a2cd1ca60c21128cb1232ed347f3cda03d5ba5a06e0e64c8f54a7c661d3
MD5 260a1a86013772ca61b29d362c750356
BLAKE2b-256 f70a5a239c201aa572bd8d8459a4058bb679a711fef303abcade14269fb48571

See more details on using hashes here.

Provenance

The following attestation bundles were made for kubeegg-0.1.0-py3-none-any.whl:

Publisher: publish.yml on NickMagic25/kubeegg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page