From 2aeb649c548093946559f415f2f4a768b658b521 Mon Sep 17 00:00:00 2001 From: ashwani yadav <22ashwaniyadav@gmail.com> Date: Mon, 3 Aug 2026 00:22:51 +0530 Subject: [PATCH] release: Add initial v0.1.0-alpha release metadata Signed-off-by: ashwani yadav <22ashwaniyadav@gmail.com> --- 0.1.0-alpha/README.md | 128 ++++++++++++++++++++++++++++++++ 0.1.0-alpha/artifacthub-pkg.yml | 24 ++++++ package-lock.json | 4 +- package.json | 4 +- 4 files changed, 156 insertions(+), 4 deletions(-) create mode 100644 0.1.0-alpha/README.md create mode 100644 0.1.0-alpha/artifacthub-pkg.yml diff --git a/0.1.0-alpha/README.md b/0.1.0-alpha/README.md new file mode 100644 index 0000000..85f1d41 --- /dev/null +++ b/0.1.0-alpha/README.md @@ -0,0 +1,128 @@ +# Agones Headlamp Plugin + +The **Agones Headlamp Plugin** integrates [Agones](https://agones.dev) game server orchestration directly into [Headlamp](https://headlamp.dev). It gives cluster operators and game backend engineers a visual dashboard to inspect fleets, game servers, and autoscalers — without dropping into `kubectl` to decode custom resource YAML. + +Agones is an open-source, batteries-included, multiplayer dedicated game server scaling and orchestration platform built on Kubernetes. This plugin translates the Agones custom resources (`Fleet`, `GameServer`, `FleetAutoscaler`, `GameServerAllocation`) into interactive Headlamp UI views. + +**IMPORTANT:** This plugin is in alpha state! + +## Key Features + +- **Overview Dashboard**: At-a-glance summary of all Agones resources across the cluster — game server state counts, fleet readiness, and autoscaler activity in one place. +- **Fleet Management**: List and detail views for `Fleet` resources, including replica status bars, scheduling strategy, and rollout configuration. +- **Game Server Views**: Per-server detail pages with colour-coded lifecycle state chips (Ready, Allocated, Unhealthy, …), address and port tables, counters and lists, and pod previews. +- **Fleet Autoscalers**: Inspect `FleetAutoscaler` policies (Buffer, Webhook, Counter, List, Schedule, Chain) with a plain-English explainer of the current scaling status. +- **Allocations from the UI**: Create `GameServerAllocation` requests directly from Headlamp via a guided dialog — selectors, scheduling, counters, lists, and priorities included. +- **Map View**: Visual graph showing the relationships between Fleets, GameServers, and their backing Pods. +- **Agones Detection Guard**: On clusters without Agones installed, the plugin shows a friendly install banner instead of empty views. +- **Allocated-Session Protection**: A prominent warning banner on `Allocated` game servers reminds operators that live player sessions may be connected before they edit or delete anything. + +--- + +## Overview Dashboard + +The Overview page aggregates the state of your entire Agones installation: total game servers grouped by lifecycle state, fleet replica health, and autoscaler summaries. + +### Capabilities: + +- Game server counts ordered by lifecycle stage (`PortAllocation` → `Creating` → `Starting` → `Ready` → `Allocated` → …). +- Quick navigation into any Fleet, GameServer, or FleetAutoscaler. + +--- + +## Fleets & Game Servers + +Fleets are the heart of Agones — they keep a warm pool of ready game servers available for allocation. The plugin provides full lifecycle visibility for both fleets and the individual game servers they manage. + +### Capabilities: + +- Fleet detail view with replica status (ready / allocated / reserved), scheduling strategy, and the game servers belonging to the fleet. +- GameServer detail view with state chip, node address and ports, counters and lists, eviction settings, and a preview of the backing pod. +- The `agones.dev/fleet` label links each game server back to its owning fleet. + +--- + +## Fleet Autoscalers + +The FleetAutoscaler views decode every Agones autoscaling policy type into readable tables — no more mentally parsing nested YAML. + +### Capabilities: + +- Buffer, Webhook, Counter, List, Schedule, and Chain policies rendered with their effective parameters. +- Live status: current vs. desired replicas, whether the autoscaler is able to scale, and whether scaling is limited. + +--- + +## Game Server Allocations + +Allocating a game server for a match normally requires crafting a `GameServerAllocation` manifest by hand. The plugin builds it for you. + +### Capabilities: + +- Guided allocation dialog with label selectors, game server state, scheduling strategy, counter/list filters, mutations, and priorities. +- Validation-friendly: empty or malformed entries are dropped instead of producing broken manifests. + +--- + +## Demo + +A visual walkthrough of the plugin is available in the repository's pull requests and the [Agones Headlamp Plugin repository](https://github.com/agones-dev/headlamp-plugin). + +## Prerequisites & Agones Setup + +To use this plugin you need Agones installed in your Kubernetes cluster. + +### 1. Verify the Agones controllers + +```bash +kubectl get pods -n agones-system +``` + +### 2. Check the Agones CRDs + +```bash +kubectl api-resources --api-group=agones.dev +``` + +If Agones is not installed, follow the [official installation guide](https://agones.dev/site/docs/installation/install-agones/) — the plugin will point you there too. + +--- + +## Installation & Development + +### Installing via Headlamp Catalog (Desktop) + +1. Open your Headlamp desktop application. +2. Navigate to the **Plugin Catalog** from the main navigation. +3. Search for **Agones** and click **Install**. +4. Reload the UI to activate the **Agones** section in the sidebar. + +### Local Development Setup + +To test or contribute to the Agones plugin locally: + +```bash +# Clone the plugin repository +git clone https://github.com/agones-dev/headlamp-plugin.git +cd headlamp-plugin + +# Install npm dependencies +npm ci + +# Run unit tests with Vitest +npm run test + +# Start the Headlamp development server with hot-reloading enabled +npm run start +``` + +See [CONTRIBUTING.md](https://github.com/agones-dev/headlamp-plugin/blob/main/CONTRIBUTING.md) for the full development workflow. + +--- + +## References & Official Links + +- [Agones Official Website & Documentation](https://agones.dev) +- [Agones GitHub Repository](https://github.com/agones-dev/agones) +- [Agones Headlamp Plugin Repository](https://github.com/agones-dev/headlamp-plugin) +- [Headlamp Documentation](https://headlamp.dev) diff --git a/0.1.0-alpha/artifacthub-pkg.yml b/0.1.0-alpha/artifacthub-pkg.yml new file mode 100644 index 0000000..fe2bd16 --- /dev/null +++ b/0.1.0-alpha/artifacthub-pkg.yml @@ -0,0 +1,24 @@ +version: 0.1.0-alpha +name: "headlamp_agones" +displayName: Agones +createdAt: "2026-08-02T19:00:00Z" +logoURL: "https://raw.githubusercontent.com/agones-dev/agones/main/docs/agones.png" +description: A Headlamp plugin for visualising and managing Agones game servers, fleets, and autoscalers in Kubernetes. +changes: + - kind: added + description: "Add Overview dashboard summarising Agones resources across the cluster." + - kind: added + description: "Add Fleet, GameServer, and FleetAutoscaler list and detail views with colour-coded lifecycle state chips." + - kind: added + description: "Add GameServerAllocation dialog to allocate game servers directly from the UI." + - kind: added + description: "Add Map view showing relationships between Fleets, GameServers, and Pods." + - kind: added + description: "Add CRD detection guard that shows an install banner on clusters without Agones." + - kind: added + description: "Add Allocated-state warning banner on the GameServer detail view to protect active game sessions." +annotations: + headlamp/plugin/archive-url: "https://github.com/agones-dev/headlamp-plugin/releases/download/v0.1.0-alpha/agones-plugin-0.1.0-alpha.tar.gz" + headlamp/plugin/archive-checksum: "SHA256:7b2c3141e72538d773cbd91ea82490d391ee07132bb01c184620346f2b02af09" + headlamp/plugin/version-compat: ">=0.22" + headlamp/plugin/distro-compat: in-cluster,web,docker-desktop,desktop diff --git a/package-lock.json b/package-lock.json index 6f98084..565c70e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "agones-plugin", - "version": "0.1.0", + "version": "0.1.0-alpha", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "agones-plugin", - "version": "0.1.0", + "version": "0.1.0-alpha", "devDependencies": { "@kinvolk/headlamp-plugin": "^0.14.0", "@testing-library/dom": "^10.4.1", diff --git a/package.json b/package.json index 5de3071..a47ec73 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "agones-plugin", - "version": "0.1.0", - "description": "Your Headlamp plugin", + "version": "0.1.0-alpha", + "description": "A Headlamp plugin for visualising and managing Agones game servers, fleets, and autoscalers in Kubernetes", "scripts": { "start": "headlamp-plugin start", "build": "headlamp-plugin build",