From c02278fd1f486b477efd57a777f805799712c7f4 Mon Sep 17 00:00:00 2001 From: Aditya Thebe Date: Mon, 16 Oct 2023 21:57:24 +0545 Subject: [PATCH] chore: run make resources --- config/deploy/base.yaml | 262 +- config/deploy/manifests.yaml | 6372 +++++++++++++++++++++++++++++++++- 2 files changed, 6632 insertions(+), 2 deletions(-) diff --git a/config/deploy/base.yaml b/config/deploy/base.yaml index 0967ef424..a312a06c4 100644 --- a/config/deploy/base.yaml +++ b/config/deploy/base.yaml @@ -1 +1,261 @@ -{} +apiVersion: v1 +kind: Service +metadata: + labels: + control-plane: canary-checker + name: canary-checker + namespace: canary-checker +spec: + ports: + - port: 8080 + protocol: TCP + targetPort: 8080 + selector: + control-plane: canary-checker +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + control-plane: canary-checker + name: canary-checker + namespace: canary-checker +spec: + replicas: 1 + selector: + matchLabels: + control-plane: canary-checker + template: + metadata: + labels: + control-plane: canary-checker + spec: + containers: + - args: + - operator + - -v + - --httpPort + - "8080" + command: + - /app/canary-checker + env: + - name: DOCKER_API_VERSION + value: "1.39" + image: docker.io/flanksource/canary-checker:latest + livenessProbe: + httpGet: + path: /health + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + name: canary-checker + readinessProbe: + httpGet: + path: /health + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + resources: + limits: + memory: 512Mi + requests: + cpu: 200m + memory: 200Mi + securityContext: + allowPrivilegeEscalation: true + capabilities: + add: + - CAP_NET_RAW + privileged: true + runAsUser: 0 + volumeMounts: + - mountPath: /var/run/docker.sock + name: dockersock + - mountPath: /etc/podinfo + name: podinfo + serviceAccountName: canary-checker-sa + terminationGracePeriodSeconds: 10 + volumes: + - hostPath: + path: /var/run/docker.sock + name: dockersock + - downwardAPI: + items: + - fieldRef: + fieldPath: metadata.labels + path: labels + name: podinfo +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + kubernetes.io/tls-acme: "true" + name: canary-checker + namespace: canary-checker +spec: + rules: + - host: canary-checker + http: + paths: + - backend: + service: + name: canary-checker + port: + number: 8080 + path: / + pathType: ImplementationSpecific + tls: + - hosts: + - canary-checker + secretName: canary-tls +--- +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + labels: + control-plane: canary-checker + name: canary-checker-monitor + namespace: canary-checker +spec: + endpoints: + - interval: 30s + port: metrics + jobLabel: canary-checker + selector: + matchLabels: + control-plane: canary-checker +--- +apiVersion: scheduling.k8s.io/v1 +description: This priority class should be used for canary pods only. +globalDefault: false +kind: PriorityClass +metadata: + name: canary-checker-priority +value: -1 +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: canary-checker-role +rules: + - apiGroups: + - canaries.flanksource.com + resources: + - canaries + - topologies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - canaries.flanksource.com + resources: + - canaries/status + - topologies/status + verbs: + - get + - patch + - update + - apiGroups: + - "" + resources: + - pods + - namespaces + - services + verbs: + - '*' + - apiGroups: + - metrics.k8s.io + resources: + - pods + - nodes + verbs: + - '*' + - apiGroups: + - "" + resources: + - pods/exec + - pods/log + verbs: + - '*' + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - apiGroups: + - extensions + resources: + - ingresses + verbs: + - '*' + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - '*' + - apiGroups: + - "" + resources: + - secrets + - configmaps + verbs: + - get + - list + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - configmaps/status + verbs: + - get + - update + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: canary-checker-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: canary-checker-role +subjects: + - kind: ServiceAccount + name: canary-checker-sa + namespace: canary-checker +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + control-plane: canary-checker + name: canary-checker-sa + namespace: canary-checker diff --git a/config/deploy/manifests.yaml b/config/deploy/manifests.yaml index 0967ef424..62ef79ce9 100644 --- a/config/deploy/manifests.yaml +++ b/config/deploy/manifests.yaml @@ -1 +1,6371 @@ -{} +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + creationTimestamp: null + name: canaries.canaries.flanksource.com +spec: + group: canaries.flanksource.com + names: + kind: Canary + listKind: CanaryList + plural: canaries + singular: canary + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.interval + name: Interval + type: string + - jsonPath: .status.status + name: Status + type: string + - jsonPath: .status.lastCheck + name: Last Check + type: date + - jsonPath: .status.uptime1h + name: Uptime 1H + type: string + - jsonPath: .status.latency1h + name: Latency 1H + type: string + - jsonPath: .status.lastTransitionedTime + name: Last Transitioned + type: date + - jsonPath: .status.message + name: Message + priority: 1 + type: string + - jsonPath: .status.errorMessage + name: Error + priority: 1 + type: string + name: v1 + schema: + openAPIV3Schema: + description: Canary is the Schema for the canaries API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: CanarySpec defines the desired state of Canary + properties: + alertmanager: + items: + properties: + alerts: + items: + type: string + type: array + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + exclude_filters: + additionalProperties: + type: string + type: object + filters: + additionalProperties: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + ignore: + items: + type: string + type: array + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - name + type: object + type: array + awsConfig: + items: + properties: + accessKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + aggregatorName: + type: string + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey. + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + endpoint: + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + objectPath: + description: glob path to restrict matches to a subset + type: string + query: + type: string + region: + type: string + secretKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + sessionToken: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + skipTLSVerify: + description: Skip TLS verify when connecting to aws + type: boolean + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + usePathStyle: + description: 'Use path style path: http://s3.amazonaws.com/BUCKET/KEY instead of http://BUCKET.s3.amazonaws.com/KEY' + type: boolean + required: + - name + - query + type: object + type: array + awsConfigRule: + items: + properties: + accessKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + complianceTypes: + description: Filters the results by compliance. The allowed values are INSUFFICIENT_DATA, NON_COMPLIANT, NOT_APPLICABLE, COMPLIANT + items: + type: string + type: array + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey. + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + endpoint: + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + ignoreRules: + description: List of rules which would be omitted from the fetch result + items: + type: string + type: array + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + objectPath: + description: glob path to restrict matches to a subset + type: string + region: + type: string + rules: + description: Specify one or more Config rule names to filter the results by rule. + items: + type: string + type: array + secretKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + sessionToken: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + skipTLSVerify: + description: Skip TLS verify when connecting to aws + type: boolean + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + usePathStyle: + description: 'Use path style path: http://s3.amazonaws.com/BUCKET/KEY instead of http://BUCKET.s3.amazonaws.com/KEY' + type: boolean + required: + - name + type: object + type: array + azureDevops: + items: + properties: + branch: + items: + type: string + type: array + connection: + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + organization: + type: string + personalAccessToken: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + pipeline: + type: string + project: + type: string + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + thresholdMillis: + description: ThresholdMillis the maximum duration of a Run. (Optional) + type: integer + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + variables: + additionalProperties: + type: string + type: object + required: + - branch + - name + - organization + - personalAccessToken + - pipeline + - project + - thresholdMillis + - variables + type: object + type: array + cloudwatch: + items: + properties: + accessKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + actionPrefix: + type: string + alarmPrefix: + type: string + alarms: + items: + type: string + type: array + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey. + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + endpoint: + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + objectPath: + description: glob path to restrict matches to a subset + type: string + region: + type: string + secretKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + sessionToken: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + skipTLSVerify: + description: Skip TLS verify when connecting to aws + type: boolean + state: + type: string + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + usePathStyle: + description: 'Use path style path: http://s3.amazonaws.com/BUCKET/KEY instead of http://BUCKET.s3.amazonaws.com/KEY' + type: boolean + required: + - name + type: object + type: array + configDB: + items: + properties: + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + query: + type: string + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + - query + type: object + type: array + containerd: + items: + properties: + auth: + properties: + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + type: object + description: + description: Description for the check + type: string + expectedDigest: + type: string + expectedSize: + format: int64 + type: integer + icon: + description: Icon for overwriting default icon on the dashboard + type: string + image: + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - image + - name + type: object + type: array + containerdPush: + items: + properties: + description: + description: Description for the check + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + image: + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + type: string + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + username: + type: string + required: + - image + - name + type: object + type: array + databaseBackup: + items: + properties: + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + gcp: + properties: + gcpConnection: + properties: + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint and credentials. + type: string + credentials: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + endpoint: + type: string + type: object + instance: + type: string + project: + type: string + required: + - instance + - project + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + maxAge: + type: string + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + type: object + type: array + dns: + items: + properties: + description: + description: Description for the check + type: string + exactreply: + items: + type: string + type: array + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + minrecords: + type: integer + name: + description: Name of the check + type: string + port: + type: integer + query: + type: string + querytype: + type: string + server: + type: string + thresholdMillis: + type: integer + timeout: + type: integer + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + type: object + type: array + docker: + items: + properties: + auth: + properties: + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + type: object + description: + description: Description for the check + type: string + expectedDigest: + type: string + expectedSize: + format: int64 + type: integer + icon: + description: Icon for overwriting default icon on the dashboard + type: string + image: + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - image + - name + type: object + type: array + dockerPush: + items: + properties: + auth: + properties: + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + type: object + description: + description: Description for the check + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + image: + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - image + - name + type: object + type: array + dynatrace: + items: + properties: + apiKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + connection: + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + host: + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + namespace: + type: string + scheme: + type: string + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + type: object + type: array + ec2: + items: + properties: + accessKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + ami: + type: string + canaryRef: + items: + description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + type: object + x-kubernetes-map-type: atomic + type: array + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey. + type: string + description: + description: Description for the check + type: string + endpoint: + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + keepAlive: + type: boolean + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + objectPath: + description: glob path to restrict matches to a subset + type: string + region: + type: string + secretKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + securityGroup: + type: string + sessionToken: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + skipTLSVerify: + description: Skip TLS verify when connecting to aws + type: boolean + timeOut: + type: integer + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + usePathStyle: + description: 'Use path style path: http://s3.amazonaws.com/BUCKET/KEY instead of http://BUCKET.s3.amazonaws.com/KEY' + type: boolean + userData: + type: string + waitTime: + type: integer + required: + - name + type: object + type: array + elasticsearch: + items: + properties: + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + index: + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + query: + type: string + results: + type: integer + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - name + type: object + type: array + env: + additionalProperties: + description: VarSource represents a source for a value + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + value: + type: string + type: object + type: object + exec: + items: + properties: + connections: + properties: + aws: + properties: + accessKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey. + type: string + endpoint: + type: string + objectPath: + description: glob path to restrict matches to a subset + type: string + region: + type: string + secretKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + sessionToken: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + skipTLSVerify: + description: Skip TLS verify when connecting to aws + type: boolean + usePathStyle: + description: 'Use path style path: http://s3.amazonaws.com/BUCKET/KEY instead of http://BUCKET.s3.amazonaws.com/KEY' + type: boolean + type: object + azure: + properties: + clientID: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + clientSecret: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + connection: + type: string + tenantID: + type: string + type: object + gcp: + properties: + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint and credentials. + type: string + credentials: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + endpoint: + type: string + type: object + type: object + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + script: + description: Script can be a inline script or a path to a script that needs to be executed On windows executed via powershell and in darwin and linux executed using bash + type: string + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + - script + type: object + type: array + folder: + items: + properties: + availableSize: + description: AvailableSize present on the filesystem + type: string + awsConnection: + properties: + accessKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey. + type: string + endpoint: + type: string + objectPath: + description: glob path to restrict matches to a subset + type: string + region: + type: string + secretKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + sessionToken: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + skipTLSVerify: + description: Skip TLS verify when connecting to aws + type: boolean + usePathStyle: + description: 'Use path style path: http://s3.amazonaws.com/BUCKET/KEY instead of http://BUCKET.s3.amazonaws.com/KEY' + type: boolean + type: object + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + filter: + properties: + maxAge: + type: string + maxSize: + type: string + minAge: + type: string + minSize: + type: string + regex: + type: string + type: object + gcpConnection: + properties: + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint and credentials. + type: string + credentials: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + endpoint: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + maxAge: + description: MaxAge the latest object should be younger than defined age + type: string + maxCount: + description: MinCount the minimum number of files inside the searchPath + type: integer + maxSize: + description: MaxSize of the files inside the searchPath + type: string + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + minAge: + description: MinAge the latest object should be older than defined age + type: string + minCount: + description: MinCount the minimum number of files inside the searchPath + type: integer + minSize: + description: MinSize of the files inside the searchPath + type: string + name: + description: Name of the check + type: string + path: + description: Path to folder or object storage, e.g. `s3://`, `gcs://`, `/path/tp/folder` + type: string + sftpConnection: + properties: + connection: + description: ConnectionName of the connection. It'll be used to populate the connection fields. + type: string + host: + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + port: + description: Port for the SSH server. Defaults to 22 + type: integer + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - host + type: object + smbConnection: + properties: + connection: + description: ConnectionName of the connection. It'll be used to populate the connection fields. + type: string + domain: + description: Domain... + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + port: + description: Port on which smb server is running. Defaults to 445 + type: integer + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + type: object + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + totalSize: + description: TotalSize present on the filesystem + type: string + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + - path + type: object + type: array + github: + items: + properties: + connection: + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + githubToken: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + query: + description: Query to be executed. Please see https://github.com/askgitdev/askgit for more details regarding syntax + type: string + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + - query + type: object + type: array + helm: + items: + properties: + auth: + properties: + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + type: object + cafile: + type: string + chartmuseum: + type: string + description: + description: Description for the check + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + project: + type: string + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + type: object + type: array + http: + items: + properties: + body: + description: Request Body Contents + type: string + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + endpoint: + description: 'Deprecated: Use url instead' + type: string + env: + description: EnvVars are the environment variables that are accesible to templated body + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + type: array + headers: + description: Header fields to be used in the query + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + type: array + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + maxSSLExpiry: + description: Maximum number of days until the SSL Certificate expires. + type: integer + method: + description: Method to use - defaults to GET + type: string + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + namespace: + description: Namespace to crawl for TLS endpoints. Mutually exclusive with Endpoint + type: string + ntlm: + description: NTLM when set to true will do authentication using NTLM v1 protocol + type: boolean + ntlmv2: + description: NTLM when set to true will do authentication using NTLM v2 protocol + type: boolean + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + responseCodes: + description: Expected response codes for the HTTP Request. + items: + type: integer + type: array + responseContent: + description: Exact response content expected to be returned by the endpoint. + type: string + responseJSONContent: + description: Path and value to of expect JSON response by the endpoint + properties: + path: + type: string + value: + type: string + required: + - path + - value + type: object + templateBody: + description: Template the request body + type: boolean + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + thresholdMillis: + description: Maximum duration in milliseconds for the HTTP request. It will fail the check if it takes longer. + type: integer + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - name + type: object + type: array + icmp: + items: + properties: + description: + description: Description for the check + type: string + endpoint: + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + packetCount: + type: integer + packetLossThreshold: + format: int64 + type: integer + thresholdMillis: + format: int64 + type: integer + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + type: object + type: array + icon: + type: string + interval: + description: interval (in seconds) to run checks on Deprecated in favor of Schedule + format: int64 + type: integer + jmeter: + items: + properties: + description: + description: Description for the check + type: string + host: + description: Host is the server against which test plan needs to be executed + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + jmx: + description: Jmx defines the ConfigMap or Secret reference to get the JMX test plan + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + port: + description: Port on which the server is running + format: int32 + type: integer + properties: + description: Properties defines the local Jmeter properties + items: + type: string + type: array + responseDuration: + description: ResponseDuration under which the all the test should pass + type: string + systemProperties: + description: SystemProperties defines the java system property + items: + type: string + type: array + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - jmx + - name + type: object + type: array + junit: + items: + properties: + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + testResults: + type: string + timeout: + description: Timeout in minutes to wait for specified container to finish its job. Defaults to 5 minutes + type: integer + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + - spec + - testResults + type: object + type: array + kubernetes: + items: + properties: + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + ignore: + description: Ignore the specified resources from the fetched resources. Can be a glob pattern. + items: + type: string + type: array + kind: + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + namespace: + properties: + fieldSelector: + type: string + labelSelector: + type: string + name: + type: string + type: object + ready: + type: boolean + resource: + properties: + fieldSelector: + type: string + labelSelector: + type: string + name: + type: string + type: object + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - kind + - name + type: object + type: array + ldap: + items: + properties: + bindDN: + type: string + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + skipTLSVerify: + type: boolean + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + userSearch: + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - bindDN + - name + type: object + type: array + mongodb: + items: + properties: + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - name + type: object + type: array + mssql: + items: + properties: + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + query: + type: string + results: + description: Number rows to check for + type: integer + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - name + type: object + type: array + mysql: + items: + properties: + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + query: + type: string + results: + description: Number rows to check for + type: integer + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - name + type: object + type: array + namespace: + items: + properties: + deadline: + format: int64 + type: integer + deleteTimeout: + format: int64 + type: integer + description: + description: Description for the check + type: string + expectedContent: + type: string + expectedHttpStatuses: + items: + format: int64 + type: integer + type: array + httpRetryInterval: + format: int64 + type: integer + httpTimeout: + format: int64 + type: integer + icon: + description: Icon for overwriting default icon on the dashboard + type: string + ingressHost: + type: string + ingressName: + type: string + ingressTimeout: + format: int64 + type: integer + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + namespaceAnnotations: + additionalProperties: + type: string + type: object + namespaceLabels: + additionalProperties: + type: string + type: object + namespaceNamePrefix: + type: string + path: + type: string + podSpec: + type: string + port: + format: int64 + type: integer + priorityClass: + type: string + readyTimeout: + format: int64 + type: integer + schedule_timeout: + format: int64 + type: integer + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + - podSpec + type: object + type: array + opensearch: + items: + properties: + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + index: + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + query: + type: string + results: + format: int64 + type: integer + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - index + - name + - query + type: object + type: array + owner: + type: string + pod: + items: + properties: + deadline: + format: int64 + type: integer + deleteTimeout: + format: int64 + type: integer + description: + description: Description for the check + type: string + expectedContent: + type: string + expectedHttpStatuses: + items: + type: integer + type: array + httpRetryInterval: + format: int64 + type: integer + httpTimeout: + format: int64 + type: integer + icon: + description: Icon for overwriting default icon on the dashboard + type: string + ingressClass: + type: string + ingressHost: + type: string + ingressName: + type: string + ingressTimeout: + format: int64 + type: integer + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + namespace: + type: string + path: + type: string + port: + format: int64 + type: integer + priorityClass: + type: string + readyTimeout: + format: int64 + type: integer + roundRobinNodes: + type: boolean + scheduleTimeout: + format: int64 + type: integer + spec: + type: string + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + type: object + type: array + postgres: + items: + properties: + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + query: + type: string + results: + description: Number rows to check for + type: integer + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - name + type: object + type: array + prometheus: + items: + properties: + connection: + description: Connection name e.g. connection://http/google + type: string + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + host: + description: 'Deprecated: use `url` instead' + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + query: + description: PromQL query + type: string + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - name + - query + type: object + type: array + redis: + items: + properties: + addr: + description: 'Deprecated: Use url instead' + type: string + connection: + description: Connection name e.g. connection://http/google + type: string + db: + type: integer + description: + description: Description for the check + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + url: + description: Connection url, interpolated with username,password + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + required: + - name + type: object + type: array + restic: + items: + properties: + accessKey: + description: AccessKey access key id for connection with aws s3, minio, wasabi, alibaba oss + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + awsConnectionName: + description: Name of the AWS connection used to derive the access key and secret key. + type: string + caCert: + description: CaCert path to the root cert. In case of self-signed certificates + type: string + checkIntegrity: + description: CheckIntegrity when enabled will check the Integrity and consistency of the restic reposiotry + type: boolean + connection: + description: Name of the connection used to derive restic password. + type: string + description: + description: Description for the check + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + maxAge: + description: MaxAge for backup freshness + type: string + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + password: + description: Password for the restic repository + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + repository: + description: 'Repository The restic repository path eg: rest:https://user:pass@host:8000/ or rest:https://host:8000/ or s3:s3.amazonaws.com/bucket_name' + type: string + secretKey: + description: SecretKey secret access key for connection with aws s3, minio, wasabi, alibaba oss + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - maxAge + - name + - password + - repository + type: object + type: array + resultMode: + type: string + s3: + items: + properties: + accessKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + bucketName: + type: string + connection: + description: ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey. + type: string + description: + description: Description for the check + type: string + endpoint: + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + objectPath: + description: glob path to restrict matches to a subset + type: string + region: + type: string + secretKey: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + sessionToken: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + type: object + type: object + skipTLSVerify: + description: Skip TLS verify when connecting to aws + type: boolean + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + usePathStyle: + description: 'Use path style path: http://s3.amazonaws.com/BUCKET/KEY instead of http://BUCKET.s3.amazonaws.com/KEY' + type: boolean + required: + - name + type: object + type: array + schedule: + description: 'Schedule to run checks on. Supports all cron expression, example: ''30 3-6,20-23 * * *''. For more info about cron expression syntax see https://en.wikipedia.org/wiki/Cron Also supports golang duration, can be set as ''@every 1m30s'' which runs the check every 1 minute and 30 seconds.' + type: string + severity: + type: string + tcp: + items: + properties: + description: + description: Description for the check + type: string + endpoint: + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + thresholdMillis: + format: int64 + type: integer + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + required: + - name + type: object + type: array + type: object + status: + description: CanaryStatus defines the observed state of Canary + properties: + checkStatus: + additionalProperties: + properties: + errorMessage: + type: string + lastCheck: + format: date-time + type: string + lastTransitionedTime: + format: date-time + type: string + latency1h: + description: Average latency to complete all checks + type: string + message: + type: string + uptime1h: + description: Availibility over a rolling 1h period + type: string + type: object + type: object + checks: + additionalProperties: + type: string + description: contains the name and id of the checks associated with the canary + type: object + errorMessage: + type: string + lastCheck: + format: date-time + type: string + lastTransitionedTime: + format: date-time + type: string + latency1h: + description: Average latency to complete all checks + type: string + message: + type: string + observedGeneration: + format: int64 + type: integer + persistedID: + type: string + status: + type: string + uptime1h: + description: Availibility over a rolling 1h period + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: v1 +kind: Namespace +metadata: + labels: + control-plane: canary-checker + name: canary-checker +--- +apiVersion: v1 +kind: Service +metadata: + labels: + control-plane: canary-checker + name: canary-checker + namespace: canary-checker +spec: + ports: + - port: 8080 + protocol: TCP + targetPort: 8080 + selector: + control-plane: canary-checker +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + control-plane: canary-checker + name: canary-checker + namespace: canary-checker +spec: + replicas: 1 + selector: + matchLabels: + control-plane: canary-checker + template: + metadata: + labels: + control-plane: canary-checker + spec: + containers: + - args: + - operator + - -v + - --httpPort + - "8080" + command: + - /app/canary-checker + env: + - name: DOCKER_API_VERSION + value: "1.39" + image: docker.io/flanksource/canary-checker:latest + livenessProbe: + httpGet: + path: /health + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + name: canary-checker + readinessProbe: + httpGet: + path: /health + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + resources: + limits: + memory: 512Mi + requests: + cpu: 200m + memory: 200Mi + securityContext: + allowPrivilegeEscalation: true + capabilities: + add: + - CAP_NET_RAW + privileged: true + runAsUser: 0 + volumeMounts: + - mountPath: /var/run/docker.sock + name: dockersock + - mountPath: /etc/podinfo + name: podinfo + serviceAccountName: canary-checker-sa + terminationGracePeriodSeconds: 10 + volumes: + - hostPath: + path: /var/run/docker.sock + name: dockersock + - downwardAPI: + items: + - fieldRef: + fieldPath: metadata.labels + path: labels + name: podinfo +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + kubernetes.io/tls-acme: "true" + name: canary-checker + namespace: canary-checker +spec: + rules: + - host: canary-checker + http: + paths: + - backend: + service: + name: canary-checker + port: + number: 8080 + path: / + pathType: ImplementationSpecific + tls: + - hosts: + - canary-checker + secretName: canary-tls +--- +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + labels: + control-plane: canary-checker + name: canary-checker-monitor + namespace: canary-checker +spec: + endpoints: + - interval: 30s + port: metrics + jobLabel: canary-checker + selector: + matchLabels: + control-plane: canary-checker +--- +apiVersion: scheduling.k8s.io/v1 +description: This priority class should be used for canary pods only. +globalDefault: false +kind: PriorityClass +metadata: + name: canary-checker-priority +value: -1 +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: canary-checker-role +rules: + - apiGroups: + - canaries.flanksource.com + resources: + - canaries + - topologies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - canaries.flanksource.com + resources: + - canaries/status + - topologies/status + verbs: + - get + - patch + - update + - apiGroups: + - "" + resources: + - pods + - namespaces + - services + verbs: + - '*' + - apiGroups: + - metrics.k8s.io + resources: + - pods + - nodes + verbs: + - '*' + - apiGroups: + - "" + resources: + - pods/exec + - pods/log + verbs: + - '*' + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - apiGroups: + - extensions + resources: + - ingresses + verbs: + - '*' + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - '*' + - apiGroups: + - "" + resources: + - secrets + - configmaps + verbs: + - get + - list + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - configmaps/status + verbs: + - get + - update + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: canary-checker-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: canary-checker-role +subjects: + - kind: ServiceAccount + name: canary-checker-sa + namespace: canary-checker +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + control-plane: canary-checker + name: canary-checker-sa + namespace: canary-checker +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + creationTimestamp: null + name: components.canaries.flanksource.com +spec: + group: canaries.flanksource.com + names: + kind: Component + listKind: ComponentList + plural: components + singular: component + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + checks: + items: + type: object + type: array + components: + description: Create new child components + items: + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + configs: + description: Lookup and associate config items with this component + items: + properties: + id: + items: + type: string + type: array + name: + type: string + namespace: + type: string + tags: + additionalProperties: + type: string + type: object + type: + type: string + type: object + type: array + forEach: + description: Only applies when using lookup, when specified the components and properties specified under ForEach will be templated using the components returned by the lookup ${.properties} can be used to reference the properties of the component ${.component} can be used to reference the component itself + type: object + icon: + type: string + id: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + lifecycle: + description: The lifecycle state of the component e.g. production, staging, dev, etc. + type: string + logs: + description: Logs is a list of logs selector for apm-hub. + items: + properties: + labels: + additionalProperties: + type: string + type: object + name: + type: string + type: + type: string + type: object + type: array + lookup: + description: Lookup component definitions from an external source, use the forEach property to iterate over the results to further enrich each component. + type: object + x-kubernetes-preserve-unknown-fields: true + name: + type: string + order: + type: integer + owner: + type: string + properties: + items: + properties: + color: + type: string + configLookup: + properties: + config: + description: Lookup a config by it + properties: + id: + items: + type: string + type: array + name: + type: string + namespace: + type: string + tags: + additionalProperties: + type: string + type: object + type: + type: string + type: object + display: + description: Apply transformations to the value + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + field: + description: A JSONPath expression to lookup the value in the config + type: string + id: + type: string + type: object + headline: + type: boolean + icon: + type: string + label: + type: string + lastTransition: + type: string + links: + items: + properties: + icon: + type: string + label: + type: string + text: + type: string + tooltip: + type: string + type: + description: e.g. documentation, support, playbook + type: string + url: + type: string + type: object + type: array + lookup: + description: CanarySpec defines the desired state of Canary + type: object + x-kubernetes-preserve-unknown-fields: true + max: + format: int64 + type: integer + min: + format: int64 + type: integer + name: + type: string + order: + type: integer + status: + type: string + summary: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + text: + type: string + tooltip: + type: string + type: + type: string + unit: + description: e.g. milliseconds, bytes, millicores, epoch etc. + type: string + value: + format: int64 + type: integer + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + relationships: + items: + properties: + ref: + type: string + type: + description: The type of relationship, e.g. dependsOn, subcomponentOf, providesApis, consumesApis + type: string + type: object + type: array + selectors: + description: Lookup and associcate other components with this component + items: + properties: + fieldSelector: + type: string + labelSelector: + type: string + name: + type: string + type: object + type: array + summary: + properties: + healthy: + type: integer + incidents: + additionalProperties: + additionalProperties: + type: integer + type: object + type: object + info: + type: integer + insights: + additionalProperties: + additionalProperties: + type: integer + type: object + type: object + unhealthy: + type: integer + warning: + type: integer + type: object + tooltip: + type: string + type: + description: The type of component, e.g. service, API, website, library, database, etc. + type: string + type: object + status: + properties: + status: + type: string + type: object + type: object + served: true + storage: true +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + creationTimestamp: null + name: topologies.canaries.flanksource.com +spec: + group: canaries.flanksource.com + names: + kind: Topology + listKind: TopologyList + plural: topologies + singular: topology + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + components: + items: + properties: + checks: + items: + properties: + inline: + description: CanarySpec defines the desired state of Canary + type: object + x-kubernetes-preserve-unknown-fields: true + selector: + properties: + fieldSelector: + type: string + labelSelector: + type: string + name: + type: string + type: object + type: object + type: array + components: + description: Create new child components + items: + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + configs: + description: Lookup and associate config items with this component + items: + properties: + id: + items: + type: string + type: array + name: + type: string + namespace: + type: string + tags: + additionalProperties: + type: string + type: object + type: + type: string + type: object + type: array + forEach: + description: Only applies when using lookup, when specified the components and properties specified under ForEach will be templated using the components returned by the lookup ${.properties} can be used to reference the properties of the component ${.component} can be used to reference the component itself + type: object + icon: + type: string + id: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + lifecycle: + description: The lifecycle state of the component e.g. production, staging, dev, etc. + type: string + logs: + description: Logs is a list of logs selector for apm-hub. + items: + properties: + labels: + additionalProperties: + type: string + type: object + name: + type: string + type: + type: string + type: object + type: array + lookup: + description: Lookup component definitions from an external source, use the forEach property to iterate over the results to further enrich each component. + type: object + x-kubernetes-preserve-unknown-fields: true + name: + type: string + order: + type: integer + owner: + type: string + properties: + items: + properties: + color: + type: string + configLookup: + properties: + config: + description: Lookup a config by it + properties: + id: + items: + type: string + type: array + name: + type: string + namespace: + type: string + tags: + additionalProperties: + type: string + type: object + type: + type: string + type: object + display: + description: Apply transformations to the value + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + field: + description: A JSONPath expression to lookup the value in the config + type: string + id: + type: string + type: object + headline: + type: boolean + icon: + type: string + label: + type: string + lastTransition: + type: string + links: + items: + properties: + icon: + type: string + label: + type: string + text: + type: string + tooltip: + type: string + type: + description: e.g. documentation, support, playbook + type: string + url: + type: string + type: object + type: array + lookup: + description: CanarySpec defines the desired state of Canary + type: object + x-kubernetes-preserve-unknown-fields: true + max: + format: int64 + type: integer + min: + format: int64 + type: integer + name: + type: string + order: + type: integer + status: + type: string + summary: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + text: + type: string + tooltip: + type: string + type: + type: string + unit: + description: e.g. milliseconds, bytes, millicores, epoch etc. + type: string + value: + format: int64 + type: integer + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + relationships: + items: + properties: + ref: + type: string + type: + description: The type of relationship, e.g. dependsOn, subcomponentOf, providesApis, consumesApis + type: string + type: object + type: array + selectors: + description: Lookup and associcate other components with this component + items: + properties: + fieldSelector: + type: string + labelSelector: + type: string + name: + type: string + type: object + type: array + summary: + properties: + healthy: + type: integer + incidents: + additionalProperties: + additionalProperties: + type: integer + type: object + type: object + info: + type: integer + insights: + additionalProperties: + additionalProperties: + type: integer + type: object + type: object + unhealthy: + type: integer + warning: + type: integer + type: object + tooltip: + type: string + type: + description: The type of component, e.g. service, API, website, library, database, etc. + type: string + type: object + type: array + configs: + description: Lookup and associate config items with this component + items: + properties: + id: + items: + type: string + type: array + name: + type: string + namespace: + type: string + tags: + additionalProperties: + type: string + type: object + type: + type: string + type: object + type: array + icon: + type: string + id: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + label: + type: string + owner: + type: string + properties: + description: Properties are created once the full component tree is created, property lookup functions can return a map of coomponent name => properties to allow for bulk property lookups being applied to multiple components in the tree + items: + properties: + color: + type: string + configLookup: + properties: + config: + description: Lookup a config by it + properties: + id: + items: + type: string + type: array + name: + type: string + namespace: + type: string + tags: + additionalProperties: + type: string + type: object + type: + type: string + type: object + display: + description: Apply transformations to the value + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + field: + description: A JSONPath expression to lookup the value in the config + type: string + id: + type: string + type: object + headline: + type: boolean + icon: + type: string + label: + type: string + lastTransition: + type: string + links: + items: + properties: + icon: + type: string + label: + type: string + text: + type: string + tooltip: + type: string + type: + description: e.g. documentation, support, playbook + type: string + url: + type: string + type: object + type: array + lookup: + description: CanarySpec defines the desired state of Canary + type: object + x-kubernetes-preserve-unknown-fields: true + max: + format: int64 + type: integer + min: + format: int64 + type: integer + name: + type: string + order: + type: integer + status: + type: string + summary: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + text: + type: string + tooltip: + type: string + type: + type: string + unit: + description: e.g. milliseconds, bytes, millicores, epoch etc. + type: string + value: + format: int64 + type: integer + type: object + type: array + schedule: + type: string + text: + type: string + tooltip: + type: string + type: + type: string + type: object + status: + properties: + observedGeneration: + format: int64 + type: integer + persistentID: + type: string + status: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {}