Generate Kustomize-ready Kubernetes manifests from Pterodactyl/Pelican game eggs.
Project description
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.yamlnamespace.yamlpvc.yamlfm-config-pvc.yaml(file manager config PVC)deployment.yamlftp-deployment.yaml(file manager deployment)service.yamlftp-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
ClusterIPonly. - Storage uses a ReadWriteMany PVC for game data, plus a separate 1Gi ReadWriteOnce PVC mounted at
/configfor 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
/dataand/configper the image's expectations. citeturn0view0 - 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
STARTUPenvironment 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7caa535690f567b768b7e674657e4efbe76102de4fdcbd9db3c65c6266fe6a85
|
|
| MD5 |
96a4e10050b213e06736190d4da051c7
|
|
| BLAKE2b-256 |
7d4167258ad119ba4446d477b25e6adb548cc22fbd06d60bd9385dcfae7e4096
|
Provenance
The following attestation bundles were made for kubeegg-0.1.0.tar.gz:
Publisher:
publish.yml on NickMagic25/kubeegg
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kubeegg-0.1.0.tar.gz -
Subject digest:
7caa535690f567b768b7e674657e4efbe76102de4fdcbd9db3c65c6266fe6a85 - Sigstore transparency entry: 927231258
- Sigstore integration time:
-
Permalink:
NickMagic25/kubeegg@84ef675230831e939708141855b9b34e148a8417 -
Branch / Tag:
refs/tags/v.0.1.1 - Owner: https://github.com/NickMagic25
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@84ef675230831e939708141855b9b34e148a8417 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8e02a2cd1ca60c21128cb1232ed347f3cda03d5ba5a06e0e64c8f54a7c661d3
|
|
| MD5 |
260a1a86013772ca61b29d362c750356
|
|
| BLAKE2b-256 |
f70a5a239c201aa572bd8d8459a4058bb679a711fef303abcade14269fb48571
|
Provenance
The following attestation bundles were made for kubeegg-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on NickMagic25/kubeegg
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kubeegg-0.1.0-py3-none-any.whl -
Subject digest:
b8e02a2cd1ca60c21128cb1232ed347f3cda03d5ba5a06e0e64c8f54a7c661d3 - Sigstore transparency entry: 927231259
- Sigstore integration time:
-
Permalink:
NickMagic25/kubeegg@84ef675230831e939708141855b9b34e148a8417 -
Branch / Tag:
refs/tags/v.0.1.1 - Owner: https://github.com/NickMagic25
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@84ef675230831e939708141855b9b34e148a8417 -
Trigger Event:
release
-
Statement type: