Pod
The Pod check creates a new pod and verifies that it can be reached via an Ingress
tcp.yamlapiVersion: 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]
Field | Description | Scheme |
---|---|---|
name* | Name of the check, must be unique within the canary |
|
spec* | Pod spec to create | |
deadline | Overall deadline for pod check | |
deleteTimeout | Timeout for pod deletion | |
expectedContent | Expected content in HTTP response |
|
expectedHttpStatuses | Expected HTTP response statuses | []int |
httpRetryInterval | Interval between HTTP retries | |
httpTimeout | Timeout for HTTP requests | |
ingressHost | URL used by the ingress to expose the created pod |
|
ingressName | Name to use for the ingress object that exposes the created pod |
|
ingressTimeout | Timeout waiting for ingress creation | |
namespace | Namespace where the pod is created |
|
path | Path on which the created pod responds to requests |
|
port | Port on which the created pod serves traffic |
|
priorityClass | Priority class to assign to the created pod |
|
readyTimeout | Timeout waiting for pod to become ready | |
scheduleTimeout | Timeout for pod creation | |
description | Description for the check |
|
display | Expression to change the formatting of the display | |
icon | Icon for overwriting default icon on the dashboard | |
labels | Labels for check | map[string]string |
metrics | Metrics to export from | |
test | Evaluate whether a check is healthy | |
transform | Transform data from a check into multiple individual checks |
Metrics
Metric | ||
---|---|---|
canary_check_histogram{metric = "creation_time"} | Histogram | Time for pod to be Pending |
canary_check_histogram{metric = "delete_time"} | Histogram | Time to delete pod |
canary_check_histogram{metric = "ingress_time"} | Histogram | Time until ingress is returning requests |
canary_check_histogram{metric = "request_time"} | Histogram | Duration of http request once ingress is up |
canary_check_histogram{metric = "schedule_time"} | Histogram | Time for pod to be Running |