Installation Guide
This guide walks you through installing the PipeOps Kubernetes Agent using various methods. Choose the installation method that best fits your environment and requirements.
For detailed technical documentation and advanced configuration options, visit the PipeOps Agent Documentation.
Prerequisites
Before installing the agent, ensure your system meets these requirements:
System Requirements
- CPU: Minimum 2 cores (recommended for cluster creation)
- Memory: Minimum 2GB RAM
- Disk Space: At least 20GB available
- Operating System: Linux (Ubuntu 18.04+, CentOS 7+, RHEL 7+), macOS 10.14+, or Windows with WSL2
Software Dependencies
curlorwgetfor downloading the installerbashshell (version 4.0+)sudoprivileges for system-level operations- Internet connectivity for downloading components
Network Requirements
- Outbound HTTPS (443) access to:
api.pipeops.sh(PipeOps API)get.pipeops.dev(installer scripts)ghcr.io(container images and Helm charts)
- Ports for monitoring stack (if enabled):
- 9090 (Prometheus)
- 3000 (Grafana)
- 3100 (Loki)
Authentication
You'll need:
- A PipeOps account (Sign up here)
- Your PipeOps API token (obtain from your account settings)
Quick Start Installation (Recommended)
The intelligent installer is the easiest way to get started. It automatically detects your environment and installs the appropriate components.
One-Line Installation
curl -fsSL https://get.pipeops.dev/k8-install.sh | bash
This command will:
- Analyze your system resources (CPU, memory, disk)
- Detect your environment (Docker, LXC, WSL, macOS, bare metal)
- Automatically select the optimal Kubernetes distribution (k3s, minikube, k3d, kind)
- Install the cluster and all required components
- Deploy the PipeOps agent as a pod in your cluster
- Auto-install monitoring stack (Metrics Server, VPA, Prometheus, Loki, Grafana, OpenCost)
- Auto-install NGINX Ingress Controller (if not present)
- Enable Gateway Proxy by default for automatic ingress route management
Interactive Setup
The installer will prompt you for:
Enter your PipeOps API token: ********
Enter cluster name (optional, default: auto-generated): my-cluster
Enable monitoring stack? (y/n, default: y): y
Non-Interactive Installation
For automation or CI/CD pipelines, use environment variables:
export PIPEOPS_TOKEN="your-pipeops-api-token"
export CLUSTER_NAME="production-cluster"
export CLUSTER_TYPE="auto" # Options: auto, k3s, minikube, k3d, kind
curl -fsSL https://get.pipeops.dev/k8-install.sh | bash
The installer automatically detects the best Kubernetes distribution when CLUSTER_TYPE=auto (default) based on:
- Available system resources
- Environment type (Docker, LXC, WSL, macOS, bare metal)
- Operating system capabilities
Helm Installation (Kubernetes Clusters)
If you already have a Kubernetes cluster, Helm provides the most flexible installation method. The PipeOps agent chart is available as an OCI artifact in GitHub Container Registry.
When installing via Helm or Kubernetes manifests, the agent does NOT auto-install monitoring components by default. It only establishes secure tunnel and cluster management capabilities, assuming you have existing infrastructure.
To enable automatic component installation (Metrics Server, VPA, Prometheus, Grafana, etc.):
--set agent.autoInstallComponents=true
Minimal Installation
Install with just the required configuration:
helm install pipeops-agent oci://ghcr.io/pipeopshq/pipeops-agent \
--set agent.pipeops.token="your-api-token" \
--set agent.cluster.name="your-cluster-name" \
--namespace pipeops-system \
--create-namespace
This installs:
- PipeOps agent pod with WebSocket connectivity
- Gateway proxy watcher (enabled by default)
- Health check and metrics endpoints
- Does NOT install monitoring stack (use next option or enable autoInstallComponents)
Installation with Auto-Install Components
Enable automatic installation of monitoring and cluster components:
helm install pipeops-agent oci://ghcr.io/pipeopshq/pipeops-agent \
--set agent.pipeops.token="your-api-token" \
--set agent.cluster.name="production-cluster" \
--set agent.autoInstallComponents=true \
--namespace pipeops-system \
--create-namespace
This will automatically install:
- Metrics Server (for pod/node metrics)
- Vertical Pod Autoscaler (VPA)
- Prometheus (monitoring)
- Loki (log aggregation)
- Grafana (visualization)
- NGINX Ingress Controller (if not present)
Installation with Custom Values
Create a values.yaml file for advanced configuration:
# values.yaml
agent:
cluster:
name: "production-cluster"
pipeops:
token: "your-api-token"
apiUrl: "https://api.pipeops.sh"
resources:
limits:
cpu: "500m"
memory: "512Mi"
requests:
cpu: "250m"
memory: "256Mi"
monitoring:
enabled: true
prometheus:
enabled: true
persistence:
enabled: true
size: 10Gi
grafana:
enabled: true
persistence:
enabled: true
size: 5Gi
loki:
enabled: true
persistence:
enabled: true
size: 10Gi
Install with your custom values:
helm install pipeops-agent oci://ghcr.io/pipeopshq/pipeops-agent \
-f values.yaml \
--namespace pipeops-system \
--create-namespace
Kubernetes Manifest Installation
For manual deployment without Helm, you can extract manifests from the Helm chart or use kubectl directly with the OCI registry.
Extract Manifests from Helm Chart
# Pull the chart and extract manifests
helm template pipeops-agent oci://ghcr.io/pipeopshq/pipeops-agent \
--set agent.pipeops.token="your-api-token" \
--set agent.cluster.name="your-cluster-name" \
--namespace pipeops-system > pipeops-agent.yaml
Configure the Manifest
Edit the manifest to add your API token:
# Create a secret with your API token
kubectl create secret generic pipeops-agent-config \
--from-literal=token=your-api-token \
--from-literal=cluster-name=your-cluster-name \
--namespace pipeops-system \
--dry-run=client -o yaml > secret.yaml
# Apply the secret
kubectl apply -f secret.yaml
Deploy the Agent
kubectl apply -f pipeops-agent.yaml
Docker Container Installation
Run the agent as a standalone Docker container (requires existing Kubernetes cluster).
Basic Docker Run
docker run -d \
--name pipeops-agent \
--restart always \
-e PIPEOPS_TOKEN="your-api-token" \
-e CLUSTER_NAME="docker-cluster" \
-e KUBERNETES_SERVICE_HOST="your-k8s-api-host" \
-e KUBERNETES_SERVICE_PORT="6443" \
-v $HOME/.kube/config:/config/.kube/config:ro \
ghcr.io/pipeopshq/pipeops-k8-agent:latest
Docker Compose
Create a docker-compose.yml:
version: '3.8'
services:
pipeops-agent:
image: ghcr.io/pipeopshq/pipeops-k8-agent:latest
container_name: pipeops-agent
restart: always
environment:
- PIPEOPS_TOKEN=your-api-token
- CLUSTER_NAME=docker-cluster
- PIPEOPS_API_URL=https://api.pipeops.sh
- KUBERNETES_IN_CLUSTER=false
volumes:
- $HOME/.kube/config:/config/.kube/config:ro
- ./agent-config.yaml:/config/config.yaml:ro
networks:
- pipeops-network
networks:
pipeops-network:
driver: bridge
Start the agent:
docker-compose up -d