# Nicholas Haven - Resume Website A professional, responsive resume website designed for deployment on Kubernetes. ## Features - **Modern Design**: Dark theme with cyan accents, animated backgrounds, and smooth transitions - **Responsive**: Works on all device sizes - **Production-Ready**: Includes Dockerfile and Helm chart - **Kubernetes-Native**: Configured with health checks, PDB, HPA, and proper security contexts - **TLS Ready**: Pre-configured for cert-manager integration ## Quick Start ### 1. Build the Docker Image ```bash # Build locally docker build -t resume-site:latest . # Or build and push to your registry docker build -t your-registry.com/resume-site:latest . docker push your-registry.com/resume-site:latest ``` ### 2. Deploy with Helm ```bash # Create namespace (optional) kubectl create namespace resume # Install with custom values helm upgrade --install resume ./helm \ --namespace resume \ --set image.repository=your-registry.com/resume-site \ --set image.tag=latest \ --set ingress.hosts[0].host=resume.yourdomain.com \ --set ingress.hosts[0].paths[0].path=/ \ --set ingress.hosts[0].paths[0].pathType=Prefix \ --set ingress.tls[0].secretName=resume-tls \ --set ingress.tls[0].hosts[0]=resume.yourdomain.com ``` ### 3. Using a Values File (Recommended) Create a `values-production.yaml`: ```yaml image: repository: your-registry.com/resume-site tag: "1.0.0" ingress: enabled: true className: nginx annotations: cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/ssl-redirect: "true" hosts: - host: resume.yourdomain.com paths: - path: / pathType: Prefix tls: - secretName: resume-tls hosts: - resume.yourdomain.com resources: limits: cpu: 100m memory: 64Mi requests: cpu: 10m memory: 32Mi ``` Then deploy: ```bash helm upgrade --install resume ./helm \ --namespace resume \ -f values-production.yaml ``` ## Configuration Options | Parameter | Description | Default | |-----------|-------------|---------| | `replicaCount` | Number of pods | `2` | | `image.repository` | Docker image repository | `resume-site` | | `image.tag` | Docker image tag | `latest` | | `ingress.enabled` | Enable ingress | `true` | | `ingress.className` | Ingress class name | `nginx` | | `ingress.hosts` | Ingress hosts configuration | `[]` | | `autoscaling.enabled` | Enable HPA | `false` | | `podDisruptionBudget.enabled` | Enable PDB | `true` | ## Local Development ```bash # Run with Docker docker build -t resume-site:dev . docker run -p 8080:80 resume-site:dev # Open http://localhost:8080 ``` ## Directory Structure ``` . ├── index.html # Main resume page ├── Dockerfile # Multi-stage Docker build ├── README.md # This file └── helm/ ├── Chart.yaml # Helm chart metadata ├── values.yaml # Default values └── templates/ ├── _helpers.tpl ├── deployment.yaml ├── service.yaml ├── ingress.yaml ├── serviceaccount.yaml ├── pdb.yaml └── hpa.yaml ``` ## Customization ### Updating Content Edit `index.html` directly. The file is self-contained with embedded CSS. ### Changing Colors CSS variables are defined at the top of the `