OpenObserve Docs
AdministrationConfiguration & ToolsO2 k8s operator

Manual Deployment

Updated View MarkdownOpen in ChatGPTOpen in Claude

Manual Deployment Process

If you prefer to deploy the operator manually without using the deployment script, follow these steps:

Step 1: Create Namespace

kubectl apply -f manifests/00-namespace.yaml

Step 2: Install Custom Resource Definitions (CRDs)

kubectl apply -f manifests/01-o2configs.crd.yaml
kubectl apply -f manifests/01-o2alerts.crd.yaml
kubectl apply -f manifests/01-o2alerttemplates.crd.yaml
kubectl apply -f manifests/01-o2destinations.crd.yaml
kubectl apply -f manifests/01-o2pipelines.crd.yaml
kubectl apply -f manifests/01-o2functions.crd.yaml

Step 3: Set up RBAC

kubectl apply -f manifests/02-rbac.yaml

Step 4: Apply ConfigMap for Operator Configuration

kubectl apply -f manifests/02-configmap.yaml

This ConfigMap contains configuration for:

  • Controller concurrency settings
  • API rate limiting
  • HTTP connection pool settings
  • Logging level

Note: You can edit the ConfigMap values before applying to tune the operator performance based on your requirements. After modifying, restart the operator deployment for changes to take effect.

Step 5: Deploy the Operator

kubectl apply -f manifests/03-deployment.yaml

Step 6: Configure Webhook (Optional)

Note: The deploy.sh script handles certificate generation automatically and updates the caBundle in the webhook configuration file. For manual setup:

# Generate self-signed certificates for webhook
openssl req -x509 -newkey rsa:2048 -nodes -keyout /tmp/tls.key -out /tmp/tls.crt -days 365 \
  -subj "/CN=openobserve-webhook.o2operator.svc"

# Create secret with certificates
kubectl -n o2operator create secret tls openobserve-webhook-server-cert \
  --cert=/tmp/tls.crt --key=/tmp/tls.key

# Get the CA bundle and update the webhook configuration
CA_BUNDLE=$(cat /tmp/tls.crt | base64 | tr -d '\n')
# Update the caBundle field in manifests/04-webhook.yaml with the CA_BUNDLE value

# Apply webhook configuration
kubectl apply -f manifests/04-webhook.yaml

Step 7: Verify Installation

# Check if operator pod is running
kubectl get pods -n o2operator

# Verify CRDs are installed
kubectl get crds | grep openobserve

# Check operator logs
kubectl logs -n o2operator deployment/openobserve-operator

Manual Uninstallation

To manually uninstall the operator:

# 1. Remove any custom resources (this example removes all in all namespaces)
kubectl delete openobserveconfigs,openobservealerts,openobservealerttemplates,openobservedestinations,openobservepipelines,openobservefunctions --all -A

# 2. Delete webhook configuration
kubectl delete -f manifests/04-webhook.yaml

# 3. Delete operator deployment
kubectl delete -f manifests/03-deployment.yaml

# 4. Delete ConfigMap
kubectl delete -f manifests/02-configmap.yaml

# 5. Delete RBAC resources
kubectl delete -f manifests/02-rbac.yaml

# 6. Delete CRDs
kubectl delete -f manifests/01-o2configs.crd.yaml
kubectl delete -f manifests/01-o2alerts.crd.yaml
kubectl delete -f manifests/01-o2alerttemplates.crd.yaml
kubectl delete -f manifests/01-o2destinations.crd.yaml
kubectl delete -f manifests/01-o2pipelines.crd.yaml
kubectl delete -f manifests/01-o2functions.crd.yaml

# 7. Delete namespace (this will also delete the webhook secret)
kubectl delete -f manifests/00-namespace.yaml
Was this page helpful?

On this page