Install the Uptime Robot Operator on your Kubernetes cluster.
- Kubernetes v1.19+
- kubectl configured
- Helm v3 (required to install cert-manager)
- cert-manager CRDs/controllers installed
- UptimeRobot API key (get one here - Integrations > API)
Install cert-manager before installing the operator:
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm upgrade --install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--set crds.enabled=true
kubectl wait --namespace cert-manager \
--for=condition=Available deployment \
cert-manager cert-manager-cainjector cert-manager-webhook \
--timeout=180sApply the latest release manifests:
kubectl apply -f https://github.com/joelp172/uptime-robot-operator/releases/latest/download/install.yamlPrerequisites: Cosign installed.
Verify the image referenced by the install manifest before deployment:
curl -L -o install.yaml https://github.com/joelp172/uptime-robot-operator/releases/latest/download/install.yaml
IMAGE_REF=$(grep "image: ghcr.io/joelp172/uptime-robot-operator" install.yaml | head -n1 | awk '{print $2}')
cosign verify \
--certificate-identity-regexp="^https://github.com/joelp172/uptime-robot-operator/" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
"${IMAGE_REF}"See SECURITY.md for verification details and deployment best practices.
kubectl get pods -n uptime-robot-systemExpected output:
NAME READY STATUS RESTARTS AGE
uptime-robot-controller-manager-xxx 1/1 Running 0 30s
# cert-manager is required for webhook certificates
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm upgrade --install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--set crds.enabled=true
helm install uptime-robot-operator \
oci://ghcr.io/joelp172/charts/uptime-robot-operator \
--version v1.2.1git clone https://github.com/joelp172/uptime-robot-operator.git
cd uptime-robot-operator
helm install uptime-robot-operator ./charts/uptime-robot-operatorCreate a values.yaml file:
resources:
limits:
cpu: 1
memory: 512Mi
requests:
cpu: 10m
memory: 64Mi
replicaCount: 2Install with custom values:
helm install uptime-robot-operator ./charts/uptime-robot-operator -f values.yamlSee the Helm Chart README for all configuration options.
# Delete all dependent resources first
kubectl delete maintenancewindows,monitors,monitorgroups,slackintegrations --all
# Delete remaining resources with account last
kubectl delete contacts,accounts --all
# Remove operator
kubectl delete -f https://github.com/joelp172/uptime-robot-operator/releases/latest/download/install.yaml# Delete all dependent resources first
kubectl delete maintenancewindows,monitors,monitorgroups,slackintegrations --all
# Delete remaining resources with account last
kubectl delete contacts,accounts --all
# Uninstall chart
helm uninstall uptime-robot-operatorCRDs are preserved to prevent data loss. To remove them:
kubectl delete crd accounts.uptimerobot.com
kubectl delete crd contacts.uptimerobot.com
kubectl delete crd monitors.uptimerobot.com
kubectl delete crd maintenancewindows.uptimerobot.com- Getting Started Tutorial - Create your first monitor
- API Reference - CRD field documentation