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  | string  | 
spec* | Pod spec to create  | |
deadline | Overall deadline for pod check  | |
deleteTimeout | Timeout for pod deletion  | |
expectedContent | Expected content in HTTP response  | string  | 
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  | string  | 
ingressName | Name to use for the ingress object that exposes the created pod  | string  | 
ingressTimeout | Timeout waiting for ingress creation  | |
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  | int  | 
priorityClass | Priority class to assign to the created pod  | string  | 
readyTimeout | Timeout waiting for pod to become ready  | |
scheduleTimeout | Timeout for pod creation  | |
description | Description for the check  | string  | 
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  | |
connection | The connection url to use, mutually exclusive with   | |
kubeconfig | Source for kubeconfig  | |
eks | EKS connection details  | |
gke | GKE connection details  | |
cnrm | CNRM connection details  | 
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 |