Skip to main content

Pod

The Pod check creates a new pod and verifies that it can be reached via an Ingress

tcp.yaml
apiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: pod-pass
spec:
schedule: "@every 5m"
pod:
- name: golang
spec: |
apiVersion: v1
kind: Pod
metadata:
name: hello-world-golang
labels:
app: hello-world-golang
spec:
containers:
- name: hello
image: quay.io/toni0/hello-webserver-golang:latest
port: 8080
path: /foo/bar
scheduleTimeout: 20000
readyTimeout: 10000
httpTimeout: 7000
deleteTimeout: 12000
ingressTimeout: 10000
deadline: 60000
httpRetryInterval: 1500
expectedContent: bar
expectedHttpStatuses: [200, 201, 202]
FieldDescriptionScheme
name*

Name of the check, must be unique within the canary

string

spec*

Pod spec to create

Spec

deadline

Overall deadline for pod check

Duration

deleteTimeout

Timeout for pod deletion

Duration

expectedContent

Expected content in HTTP response

string

expectedHttpStatuses

Expected HTTP response statuses

[]int

httpRetryInterval

Interval between HTTP retries

Duration

httpTimeout

Timeout for HTTP requests

Duration

ingressHost

URL used by the ingress to expose the created pod

string

ingressName

Name to use for the ingress object that exposes the created pod

string

ingressTimeout

Timeout waiting for ingress creation

Duration

namespace

Namespace where the pod is created

string

path

Path on which the created pod responds to requests

string

port

Port on which the created pod serves traffic

integer

priorityClass

Priority class to assign to the created pod

string

readyTimeout

Timeout waiting for pod to become ready

Duration

scheduleTimeout

Timeout for pod creation

Duration

description

Description for the check

string

display

Expression to change the formatting of the display

Expression

icon

Icon for overwriting default icon on the dashboard

Icon

labels

Labels for check

map[string]string

metrics

Metrics to export from

[]Metrics

test

Evaluate whether a check is healthy

Expression

transform

Transform data from a check into multiple individual checks

Expression

Metrics

Metric
canary_check_histogram{metric = "creation_time"}HistogramTime for pod to be Pending
canary_check_histogram{metric = "delete_time"}HistogramTime to delete pod
canary_check_histogram{metric = "ingress_time"}HistogramTime until ingress is returning requests
canary_check_histogram{metric = "request_time"}HistogramDuration of http request once ingress is up
canary_check_histogram{metric = "schedule_time"} HistogramTime for pod to be Running