Skip to main content

Kubernetes Autostopping

This tutorial explains how to create and test an AutoStopping rule for your Kubernetes cluster.

Install a sample application

To test AutoStopping, you can use a sample nginx application.

To install this sample application, apply the following YAML in your Kubernetes cluster. This installs a demo application named autostopping-sample-app that runs three pods running nginx in the autostopping-sample namespace.

apiVersion: v1
kind: Namespace
metadata:
name: autostopping-sample

---

apiVersion: apps/v1
kind: Deployment
metadata:
name: autostopping-sample-app
namespace: autostopping-sample
labels:
app: autostopping-sample-app
spec:
replicas: 1
selector:
matchLabels:
app: autostopping-sample-app
template:
metadata:
labels:
app: autostopping-sample-app
spec:
containers:
- name: autostopping-sample-app
image: nginx:1.14.2
ports:
- containerPort: 80

---

apiVersion: v1
kind: Service
metadata:
name: autostopping-sample-svc
namespace: autostopping-sample
spec:
selector:
app: autostopping-sample-app
ports:
- protocol: TCP
port: 80
targetPort: 80

Supported ingress controllers for Kubernetes AutoStopping

Kubernetes AutoStopping support is fully available for the following ingress controllers and API gateways:

  1. Expose your application by creating an ingress rule. Apply the following YAML to the cluster.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: autostopping-sample-ig
namespace: autostopping-sample
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: autostopping-sample-svc
port:
number: 80

  1. Create an AutoStopping Rule. Before applying this YAML, make sure that the cloud-connector-id is updated and the namespace of the Rule is the same as the autostopping-sample-app application.
apiVersion: ccm.harness.io/v1
kind: AutoStoppingRule
metadata:
name: autostopping-sample-rule
namespace: autostopping-sample
annotations:
harness.io/cloud-connector-id: Lightwing_Non_Prod
spec:
service:
name: autostopping-sample-svc
port: 80
ingress:
name: autostopping-sample-ig
controllerName: nginx
idleTimeMins: 5
ahideProgressPage: false

Your sample application is now managed by an AutoStopping Rule called autostopping-sample-ru.