Prerequisites
Before deploying Greenfield Cluster, ensure you have the following tools and resources.
Required Tools
kubectl
Kubernetes command-line tool for interacting with your cluster.
Verify installation:
Kustomize
Kubernetes configuration management tool.
Helm (Optional)
Package manager for Kubernetes.
Verify:
Kubernetes Cluster
You need a running Kubernetes cluster. Options include:
Local Development
Minikube
For local testing:
# Install Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# Start cluster with sufficient resources
minikube start --cpus=4 --memory=8192 --disk-size=20g
# Enable storage provisioner
minikube addons enable storage-provisioner
Kind
Kubernetes in Docker:
# Install Kind
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
# Create cluster
kind create cluster --name greenfield
Cloud Providers
Cluster Requirements
Minimum Resources
- CPU: 8 cores
- Memory: 16 GB RAM
- Storage: 50 GB available
- Nodes: 3 worker nodes (recommended)
Kubernetes Version
- Minimum: v1.24
- Recommended: v1.28+
Check your cluster version:
Storage Class
Ensure a default storage class is configured:
If no default exists, create one:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: standard
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/gce-pd # Adjust for your provider
parameters:
type: pd-standard
Additional Components
Istio
Service mesh for traffic management and security.
# Download Istio
curl -L https://istio.io/downloadIstio | sh -
cd istio-*
export PATH=$PWD/bin:$PATH
# Install Istio
istioctl install --set profile=default -y
# Verify installation
kubectl get pods -n istio-system
Sealed Secrets Controller
For encrypting Kubernetes secrets.
# Install controller
kubectl apply -f https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.24.5/controller.yaml
# Install kubeseal CLI
wget https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.24.5/kubeseal-0.24.5-linux-amd64.tar.gz
tar -xvzf kubeseal-0.24.5-linux-amd64.tar.gz
sudo install -m 755 kubeseal /usr/local/bin/kubeseal
Docker (for building images)
Required if building the FastAPI example image.
Container Registry Access
If pushing images to a registry:
- Docker Hub account
- Cloud provider container registry (ECR, GCR, ACR)
- Private registry access
Configure authentication:
Git
For version control:
Make (Optional but Recommended)
For using the provided Makefile:
# Linux
sudo apt-get install make
# macOS (included with Xcode Command Line Tools)
xcode-select --install
Verification Checklist
Run this script to verify all prerequisites:
#!/bin/bash
echo "Checking prerequisites..."
check_command() {
if command -v $1 &> /dev/null; then
echo "✓ $1 is installed"
$1 version 2>&1 | head -1
else
echo "✗ $1 is NOT installed"
fi
}
check_command kubectl
check_command kustomize
check_command helm
check_command docker
check_command git
check_command make
echo ""
echo "Checking Kubernetes cluster..."
if kubectl cluster-info &> /dev/null; then
echo "✓ Kubernetes cluster is accessible"
kubectl version --short
else
echo "✗ Cannot connect to Kubernetes cluster"
fi
echo ""
echo "Checking storage class..."
if kubectl get storageclass &> /dev/null; then
echo "✓ Storage classes available:"
kubectl get storageclass
else
echo "✗ No storage classes found"
fi
Save as check-prereqs.sh, make executable, and run:
Next Steps
Once prerequisites are installed:
- Quick Start Guide - Deploy the cluster
- Template Usage - Create your own project
- Deployment Methods - Learn deployment options
Troubleshooting
Cannot connect to cluster
Storage class issues
# List storage classes
kubectl get sc
# Describe a storage class
kubectl describe sc <storage-class-name>
Insufficient resources
For local development, ensure your cluster has enough resources: