Neon Vortex 67a6ae146f
Some checks failed
Build and Push to Harbor / build-and-push (push) Has been cancelled
Add Flux CD configuration and update Neon Vortex HTML5 export
- Add Flux GitRepository and HelmRelease manifests for automated deployment
- Update Neon Vortex game files (HTML5 export with WASM optimization)
- Add Kubernetes manifests: Kaniko build job, MPD config, and Ingress
- Add MPD Docker configuration with improved settings

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 21:39:02 -05:00

Neon Vortex - Docker & Kubernetes Deployment

This repository contains the Neon Vortex web application with Docker and Kubernetes deployment configurations.

Directory Structure

.
├── htlm/                          # Application files
│   ├── Neon Vortex.html          # Main application
│   ├── Neon Vortex.js            # JavaScript bundle
│   ├── Neon Vortex.wasm          # WebAssembly binary
│   ├── Dockerfile                 # Multi-arch Docker configuration
│   ├── nginx.conf                 # Nginx server configuration
│   └── ...                        # Other assets
├── neon-vortex-chart/            # Helm chart
│   ├── Chart.yaml
│   ├── values.yaml
│   └── templates/
└── build-and-push.sh             # Build script for multi-arch images

Prerequisites

  • Docker with BuildKit enabled
  • Access to Harbor registry at images.caffeinetux.com
  • kubectl configured for your k3s cluster
  • Helm 3.x installed

Building and Pushing the Docker Image

The application supports multiple architectures: linux/amd64, linux/arm64, and linux/arm/v7.

Build and Push

# Build and push with 'latest' tag
./build-and-push.sh

# Build and push with custom tag
./build-and-push.sh v1.0.0

Manual Build (without script)

# Create buildx builder (first time only)
docker buildx create --name multiarch-builder --use
docker buildx inspect --bootstrap

# Build and push
cd htlm
docker buildx build \
  --platform linux/amd64,linux/arm64,linux/arm/v7 \
  --tag images.caffeinetux.com/apps/neon-vortex:latest \
  --push \
  .

Deploying to Kubernetes

Quick Deploy

# Install with default values
helm install neon-vortex ./neon-vortex-chart

# Install in specific namespace
helm install neon-vortex ./neon-vortex-chart -n neon-vortex --create-namespace

Custom Configuration

Create a custom-values.yaml file:

# Example custom values
replicaCount: 3

image:
  tag: "v1.0.0"

service:
  type: NodePort
  nodePort: 30080

ingress:
  enabled: true
  className: "nginx"
  hosts:
    - host: neon-vortex.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: neon-vortex-tls
      hosts:
        - neon-vortex.example.com

resources:
  limits:
    cpu: 500m
    memory: 256Mi
  requests:
    cpu: 200m
    memory: 128Mi

Deploy with custom values:

helm install neon-vortex ./neon-vortex-chart -f custom-values.yaml

Harbor Authentication

If your Harbor registry requires authentication, create a secret:

kubectl create secret docker-registry harbor-registry-secret \
  --docker-server=images.caffeinetux.com \
  --docker-username=YOUR_USERNAME \
  --docker-password=YOUR_PASSWORD \
  --docker-email=YOUR_EMAIL

Then update values.yaml:

imagePullSecrets:
  - name: harbor-registry-secret

Accessing the Application

ClusterIP (default)

# Port forward to local machine
kubectl port-forward svc/neon-vortex 8080:80

# Access at http://localhost:8080

NodePort

# Get the NodePort
kubectl get svc neon-vortex

# Access at http://<NODE_IP>:<NODE_PORT>

Ingress

Access at the configured hostname (e.g., http://neon-vortex.example.com)

Helm Chart Configuration

Key Values

Parameter Description Default
replicaCount Number of replicas 2
image.registry Harbor registry URL images.caffeinetux.com
image.repository Image repository path apps/neon-vortex
image.tag Image tag latest
service.type Service type ClusterIP
service.port Service port 80
service.targetPort Container port 8080
ingress.enabled Enable ingress false
autoscaling.enabled Enable HPA false
resources.limits.cpu CPU limit 200m
resources.limits.memory Memory limit 128Mi

Security Features

  • Non-root user (nginx:101)
  • Read-only root filesystem option
  • Security context with dropped capabilities
  • Pod security context
  • Resource limits

Upgrading

# Upgrade to new version
helm upgrade neon-vortex ./neon-vortex-chart

# Upgrade with new image tag
helm upgrade neon-vortex ./neon-vortex-chart --set image.tag=v1.0.1

Uninstalling

# Uninstall the release
helm uninstall neon-vortex

# Uninstall from specific namespace
helm uninstall neon-vortex -n neon-vortex

Troubleshooting

Check pod status

kubectl get pods -l app.kubernetes.io/name=neon-vortex

View logs

kubectl logs -l app.kubernetes.io/name=neon-vortex

Describe pod

kubectl describe pod -l app.kubernetes.io/name=neon-vortex

Test connectivity

kubectl run -it --rm debug --image=alpine --restart=Never -- sh
# Inside the pod:
wget -O- http://neon-vortex

Application Features

  • Static web application served via nginx
  • WebAssembly support
  • Service worker for offline capability
  • Gzip compression
  • Proper MIME types for all assets
  • Security headers (X-Frame-Options, CSP, etc.)
  • Health checks

License

Configure according to your application's license.

Description
Neon Vortex game application
Readme 35 MiB
Languages
PLSQL 90.2%
JavaScript 5.6%
HTML 2.3%
Dockerfile 0.8%
Smarty 0.6%
Other 0.5%