10863 lines
537 KiB
YAML
10863 lines
537 KiB
YAML
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafanaalertrulegroups.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafanaalertrulegroups.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaAlertRuleGroup
|
|
listKind: GrafanaAlertRuleGroupList
|
|
plural: grafanaalertrulegroups
|
|
singular: grafanaalertrulegroup
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaAlertRuleGroup is the Schema for the grafanaalertrulegroups
|
|
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: GrafanaAlertRuleGroupSpec defines the desired state of GrafanaAlertRuleGroup
|
|
properties:
|
|
allowCrossNamespaceImport:
|
|
default: false
|
|
description: Allow the Operator to match this resource with Grafanas
|
|
outside the current namespace
|
|
type: boolean
|
|
editable:
|
|
description: Whether to enable or disable editing of the alert rule
|
|
group in Grafana UI
|
|
type: boolean
|
|
x-kubernetes-validations:
|
|
- message: Value is immutable
|
|
rule: self == oldSelf
|
|
folderRef:
|
|
description: Match GrafanaFolders CRs to infer the uid
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: Value is immutable
|
|
rule: self == oldSelf
|
|
folderUID:
|
|
description: |-
|
|
UID of the folder containing this rule group
|
|
Overrides the FolderSelector
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: Value is immutable
|
|
rule: self == oldSelf
|
|
instanceSelector:
|
|
description: Selects Grafana instances for import
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceSelector is immutable
|
|
rule: self == oldSelf
|
|
interval:
|
|
format: duration
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
name:
|
|
description: Name of the alert rule group. If not specified, the resource
|
|
name will be used.
|
|
type: string
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
rules:
|
|
items:
|
|
description: AlertRule defines a specific rule to be evaluated.
|
|
It is based on the upstream model with some k8s specific type
|
|
mappings
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
condition:
|
|
type: string
|
|
data:
|
|
items:
|
|
properties:
|
|
datasourceUid:
|
|
description: Grafana data source unique identifier; it
|
|
should be '__expr__' for a Server Side Expression operation.
|
|
type: string
|
|
model:
|
|
description: JSON is the raw JSON query and includes the
|
|
above properties as well as custom properties.
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
queryType:
|
|
description: |-
|
|
QueryType is an optional identifier for the type of query.
|
|
It can be used to distinguish different types of queries.
|
|
type: string
|
|
refId:
|
|
description: RefID is the unique identifier of the query,
|
|
set by the frontend call.
|
|
type: string
|
|
relativeTimeRange:
|
|
description: relative time range
|
|
properties:
|
|
from:
|
|
description: from
|
|
format: int64
|
|
type: integer
|
|
to:
|
|
description: to
|
|
format: int64
|
|
type: integer
|
|
type: object
|
|
type: object
|
|
type: array
|
|
execErrState:
|
|
enum:
|
|
- OK
|
|
- Alerting
|
|
- Error
|
|
- KeepLast
|
|
type: string
|
|
for:
|
|
default: 0s
|
|
format: duration
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
isPaused:
|
|
type: boolean
|
|
keepFiringFor:
|
|
format: duration
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
missingSeriesEvalsToResolve:
|
|
description: The number of missing series evaluations that must
|
|
occur before the rule is considered to be resolved.
|
|
format: int64
|
|
type: integer
|
|
noDataState:
|
|
enum:
|
|
- Alerting
|
|
- NoData
|
|
- OK
|
|
- KeepLast
|
|
type: string
|
|
notificationSettings:
|
|
properties:
|
|
group_by:
|
|
items:
|
|
type: string
|
|
type: array
|
|
group_interval:
|
|
type: string
|
|
group_wait:
|
|
type: string
|
|
mute_time_intervals:
|
|
items:
|
|
type: string
|
|
type: array
|
|
receiver:
|
|
type: string
|
|
repeat_interval:
|
|
type: string
|
|
required:
|
|
- receiver
|
|
type: object
|
|
record:
|
|
properties:
|
|
from:
|
|
type: string
|
|
metric:
|
|
type: string
|
|
required:
|
|
- from
|
|
- metric
|
|
type: object
|
|
title:
|
|
example: Always firing
|
|
maxLength: 190
|
|
minLength: 1
|
|
type: string
|
|
uid:
|
|
description: UID of the alert rule. Can be any string consisting
|
|
of alphanumeric characters, - and _ with a maximum length
|
|
of 40
|
|
maxLength: 40
|
|
pattern: ^[a-zA-Z0-9-_]+$
|
|
type: string
|
|
required:
|
|
- condition
|
|
- data
|
|
- execErrState
|
|
- for
|
|
- noDataState
|
|
- title
|
|
- uid
|
|
type: object
|
|
minItems: 1
|
|
type: array
|
|
suspend:
|
|
description: Suspend pauses synchronizing attempts and tells the operator
|
|
to ignore changes
|
|
type: boolean
|
|
required:
|
|
- instanceSelector
|
|
- interval
|
|
- rules
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: Only one of FolderUID or FolderRef can be set and one must
|
|
be defined
|
|
rule: (has(self.folderUID) && !(has(self.folderRef))) || (has(self.folderRef)
|
|
&& !(has(self.folderUID)))
|
|
- message: spec.editable is immutable
|
|
rule: ((!has(oldSelf.editable) && !has(self.editable)) || (has(oldSelf.editable)
|
|
&& has(self.editable)))
|
|
- message: spec.folderUID is immutable
|
|
rule: ((!has(oldSelf.folderUID) && !has(self.folderUID)) || (has(oldSelf.folderUID)
|
|
&& has(self.folderUID)))
|
|
- message: spec.folderRef is immutable
|
|
rule: ((!has(oldSelf.folderRef) && !has(self.folderRef)) || (has(oldSelf.folderRef)
|
|
&& has(self.folderRef)))
|
|
- message: disabling spec.allowCrossNamespaceImport requires a recreate
|
|
to ensure desired state
|
|
rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport
|
|
&& self.allowCrossNamespaceImport)'
|
|
status:
|
|
description: The most recent observed state of a Grafana resource
|
|
properties:
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafanacontactpoints.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafanacontactpoints.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaContactPoint
|
|
listKind: GrafanaContactPointList
|
|
plural: grafanacontactpoints
|
|
singular: grafanacontactpoint
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaContactPoint is the Schema for the grafanacontactpoints
|
|
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: GrafanaContactPointSpec defines the desired state of GrafanaContactPoint
|
|
properties:
|
|
allowCrossNamespaceImport:
|
|
default: false
|
|
description: Allow the Operator to match this resource with Grafanas
|
|
outside the current namespace
|
|
type: boolean
|
|
disableResolveMessage:
|
|
type: boolean
|
|
instanceSelector:
|
|
description: Selects Grafana instances for import
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceSelector is immutable
|
|
rule: self == oldSelf
|
|
name:
|
|
type: string
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
settings:
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
suspend:
|
|
description: Suspend pauses synchronizing attempts and tells the operator
|
|
to ignore changes
|
|
type: boolean
|
|
type:
|
|
minLength: 1
|
|
type: string
|
|
uid:
|
|
description: Manually specify the UID the Contact Point is created
|
|
with. Can be any string consisting of alphanumeric characters, -
|
|
and _ with a maximum length of 40
|
|
maxLength: 40
|
|
pattern: ^[a-zA-Z0-9-_]+$
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: spec.uid is immutable
|
|
rule: self == oldSelf
|
|
valuesFrom:
|
|
items:
|
|
properties:
|
|
targetPath:
|
|
type: string
|
|
valueFrom:
|
|
properties:
|
|
configMapKeyRef:
|
|
description: Selects a key of a ConfigMap.
|
|
properties:
|
|
key:
|
|
description: The key to select.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
secretKeyRef:
|
|
description: Selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: Either configMapKeyRef or secretKeyRef must be set
|
|
rule: (has(self.configMapKeyRef) && !has(self.secretKeyRef))
|
|
|| (!has(self.configMapKeyRef) && has(self.secretKeyRef))
|
|
required:
|
|
- targetPath
|
|
- valueFrom
|
|
type: object
|
|
maxItems: 99
|
|
type: array
|
|
required:
|
|
- instanceSelector
|
|
- name
|
|
- settings
|
|
- type
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: spec.uid is immutable
|
|
rule: ((!has(oldSelf.uid) && !has(self.uid)) || (has(oldSelf.uid) &&
|
|
has(self.uid)))
|
|
- message: disabling spec.allowCrossNamespaceImport requires a recreate
|
|
to ensure desired state
|
|
rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport
|
|
&& self.allowCrossNamespaceImport)'
|
|
status:
|
|
description: The most recent observed state of a Grafana resource
|
|
properties:
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafanadashboards.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafanadashboards.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaDashboard
|
|
listKind: GrafanaDashboardList
|
|
plural: grafanadashboards
|
|
singular: grafanadashboard
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.NoMatchingInstances
|
|
name: No matching instances
|
|
type: boolean
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaDashboard is the Schema for the grafanadashboards 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: GrafanaDashboardSpec defines the desired state of GrafanaDashboard
|
|
properties:
|
|
allowCrossNamespaceImport:
|
|
default: false
|
|
description: Allow the Operator to match this resource with Grafanas
|
|
outside the current namespace
|
|
type: boolean
|
|
configMapRef:
|
|
description: model from configmap
|
|
properties:
|
|
key:
|
|
description: The key to select.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
contentCacheDuration:
|
|
description: Cache duration for models fetched from URLs
|
|
type: string
|
|
datasources:
|
|
description: maps required data sources to existing ones
|
|
items:
|
|
description: |-
|
|
GrafanaResourceDatasource is used to set the datasource name of any templated datasources in
|
|
content definitions (e.g., dashboard JSON).
|
|
properties:
|
|
datasourceName:
|
|
type: string
|
|
inputName:
|
|
type: string
|
|
required:
|
|
- datasourceName
|
|
- inputName
|
|
type: object
|
|
type: array
|
|
envFrom:
|
|
description: environments variables from secrets or config maps
|
|
items:
|
|
properties:
|
|
configMapKeyRef:
|
|
description: Selects a key of a ConfigMap.
|
|
properties:
|
|
key:
|
|
description: The key to select.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
secretKeyRef:
|
|
description: Selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
type: object
|
|
type: array
|
|
envs:
|
|
description: environments variables as a map
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
description: Inline env value
|
|
type: string
|
|
valueFrom:
|
|
description: Reference on value source, might be the reference
|
|
on a secret or config map
|
|
properties:
|
|
configMapKeyRef:
|
|
description: Selects a key of a ConfigMap.
|
|
properties:
|
|
key:
|
|
description: The key to select.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
secretKeyRef:
|
|
description: Selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
folder:
|
|
description: folder assignment for dashboard
|
|
type: string
|
|
folderRef:
|
|
description: Name of a `GrafanaFolder` resource in the same namespace
|
|
type: string
|
|
folderUID:
|
|
description: UID of the target folder for this dashboard
|
|
type: string
|
|
grafanaCom:
|
|
description: grafana.com/dashboards
|
|
properties:
|
|
id:
|
|
type: integer
|
|
revision:
|
|
type: integer
|
|
required:
|
|
- id
|
|
type: object
|
|
gzipJson:
|
|
description: GzipJson the model's JSON compressed with Gzip. Base64-encoded
|
|
when in YAML.
|
|
format: byte
|
|
type: string
|
|
instanceSelector:
|
|
description: Selects Grafana instances for import
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceSelector is immutable
|
|
rule: self == oldSelf
|
|
json:
|
|
description: model json
|
|
type: string
|
|
jsonnet:
|
|
description: Jsonnet
|
|
type: string
|
|
jsonnetLib:
|
|
description: Jsonnet project build
|
|
properties:
|
|
fileName:
|
|
type: string
|
|
gzipJsonnetProject:
|
|
format: byte
|
|
type: string
|
|
jPath:
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- fileName
|
|
- gzipJsonnetProject
|
|
type: object
|
|
plugins:
|
|
description: plugins
|
|
items:
|
|
properties:
|
|
name:
|
|
minLength: 1
|
|
type: string
|
|
version:
|
|
pattern: ^((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?|latest)$
|
|
type: string
|
|
required:
|
|
- name
|
|
- version
|
|
type: object
|
|
type: array
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
suspend:
|
|
description: Suspend pauses synchronizing attempts and tells the operator
|
|
to ignore changes
|
|
type: boolean
|
|
uid:
|
|
description: |-
|
|
Manually specify the uid, overwrites uids already present in the json model.
|
|
Can be any string consisting of alphanumeric characters, - and _ with a maximum length of 40.
|
|
maxLength: 40
|
|
pattern: ^[a-zA-Z0-9-_]+$
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: spec.uid is immutable
|
|
rule: self == oldSelf
|
|
url:
|
|
description: model url
|
|
type: string
|
|
urlAuthorization:
|
|
description: authorization options for model from url
|
|
properties:
|
|
basicAuth:
|
|
properties:
|
|
password:
|
|
description: SecretKeySelector selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
username:
|
|
description: SecretKeySelector selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
type: object
|
|
type: object
|
|
required:
|
|
- instanceSelector
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: Only one of folderUID or folderRef can be declared at the same
|
|
time
|
|
rule: (has(self.folderUID) && !(has(self.folderRef))) || (has(self.folderRef)
|
|
&& !(has(self.folderUID))) || !(has(self.folderRef) && (has(self.folderUID)))
|
|
- message: folder field cannot be set when folderUID or folderRef is already
|
|
declared
|
|
rule: (has(self.folder) && !(has(self.folderRef) || has(self.folderUID)))
|
|
|| !(has(self.folder))
|
|
- message: spec.uid is immutable
|
|
rule: ((!has(oldSelf.uid) && !has(self.uid)) || (has(oldSelf.uid) &&
|
|
has(self.uid)))
|
|
- message: disabling spec.allowCrossNamespaceImport requires a recreate
|
|
to ensure desired state
|
|
rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport
|
|
&& self.allowCrossNamespaceImport)'
|
|
status:
|
|
description: GrafanaDashboardStatus defines the observed state of GrafanaDashboard
|
|
properties:
|
|
NoMatchingInstances:
|
|
description: The dashboard instanceSelector can't find matching grafana
|
|
instances
|
|
type: boolean
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
contentCache:
|
|
format: byte
|
|
type: string
|
|
contentTimestamp:
|
|
format: date-time
|
|
type: string
|
|
contentUrl:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
uid:
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafanadatasources.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafanadatasources.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaDatasource
|
|
listKind: GrafanaDatasourceList
|
|
plural: grafanadatasources
|
|
singular: grafanadatasource
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.NoMatchingInstances
|
|
name: No matching instances
|
|
type: boolean
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaDatasource is the Schema for the grafanadatasources 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: GrafanaDatasourceSpec defines the desired state of GrafanaDatasource
|
|
properties:
|
|
allowCrossNamespaceImport:
|
|
default: false
|
|
description: Allow the Operator to match this resource with Grafanas
|
|
outside the current namespace
|
|
type: boolean
|
|
datasource:
|
|
properties:
|
|
access:
|
|
type: string
|
|
basicAuth:
|
|
type: boolean
|
|
basicAuthUser:
|
|
type: string
|
|
database:
|
|
type: string
|
|
editable:
|
|
description: Whether to enable/disable editing of the datasource
|
|
in Grafana UI
|
|
type: boolean
|
|
isDefault:
|
|
type: boolean
|
|
jsonData:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
name:
|
|
type: string
|
|
orgId:
|
|
description: Deprecated field, it has no effect
|
|
format: int64
|
|
type: integer
|
|
secureJsonData:
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
type:
|
|
type: string
|
|
uid:
|
|
description: Deprecated field, use spec.uid instead
|
|
type: string
|
|
url:
|
|
type: string
|
|
user:
|
|
type: string
|
|
type: object
|
|
instanceSelector:
|
|
description: Selects Grafana instances for import
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceSelector is immutable
|
|
rule: self == oldSelf
|
|
plugins:
|
|
description: plugins
|
|
items:
|
|
properties:
|
|
name:
|
|
minLength: 1
|
|
type: string
|
|
version:
|
|
pattern: ^((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?|latest)$
|
|
type: string
|
|
required:
|
|
- name
|
|
- version
|
|
type: object
|
|
type: array
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
suspend:
|
|
description: Suspend pauses synchronizing attempts and tells the operator
|
|
to ignore changes
|
|
type: boolean
|
|
uid:
|
|
description: |-
|
|
The UID, for the datasource, fallback to the deprecated spec.datasource.uid
|
|
and metadata.uid. Can be any string consisting of alphanumeric characters,
|
|
- and _ with a maximum length of 40 +optional
|
|
maxLength: 40
|
|
pattern: ^[a-zA-Z0-9-_]+$
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: spec.uid is immutable
|
|
rule: self == oldSelf
|
|
valuesFrom:
|
|
description: environments variables from secrets or config maps
|
|
items:
|
|
properties:
|
|
targetPath:
|
|
type: string
|
|
valueFrom:
|
|
properties:
|
|
configMapKeyRef:
|
|
description: Selects a key of a ConfigMap.
|
|
properties:
|
|
key:
|
|
description: The key to select.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
secretKeyRef:
|
|
description: Selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: Either configMapKeyRef or secretKeyRef must be set
|
|
rule: (has(self.configMapKeyRef) && !has(self.secretKeyRef))
|
|
|| (!has(self.configMapKeyRef) && has(self.secretKeyRef))
|
|
required:
|
|
- targetPath
|
|
- valueFrom
|
|
type: object
|
|
maxItems: 99
|
|
type: array
|
|
required:
|
|
- datasource
|
|
- instanceSelector
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: spec.uid is immutable
|
|
rule: ((!has(oldSelf.uid) && !has(self.uid)) || (has(oldSelf.uid) &&
|
|
has(self.uid)))
|
|
- message: disabling spec.allowCrossNamespaceImport requires a recreate
|
|
to ensure desired state
|
|
rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport
|
|
&& self.allowCrossNamespaceImport)'
|
|
status:
|
|
description: GrafanaDatasourceStatus defines the observed state of GrafanaDatasource
|
|
properties:
|
|
NoMatchingInstances:
|
|
description: The datasource instanceSelector can't find matching grafana
|
|
instances
|
|
type: boolean
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
hash:
|
|
type: string
|
|
lastMessage:
|
|
description: 'Deprecated: Check status.conditions or operator logs'
|
|
type: string
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
uid:
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafanafolders.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafanafolders.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaFolder
|
|
listKind: GrafanaFolderList
|
|
plural: grafanafolders
|
|
singular: grafanafolder
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.NoMatchingInstances
|
|
name: No matching instances
|
|
type: boolean
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaFolder is the Schema for the grafanafolders 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: GrafanaFolderSpec defines the desired state of GrafanaFolder
|
|
properties:
|
|
allowCrossNamespaceImport:
|
|
default: false
|
|
description: Allow the Operator to match this resource with Grafanas
|
|
outside the current namespace
|
|
type: boolean
|
|
instanceSelector:
|
|
description: Selects Grafana instances for import
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceSelector is immutable
|
|
rule: self == oldSelf
|
|
parentFolderRef:
|
|
description: Reference to an existing GrafanaFolder CR in the same
|
|
namespace
|
|
type: string
|
|
parentFolderUID:
|
|
description: UID of the folder in which the current folder should
|
|
be created
|
|
type: string
|
|
permissions:
|
|
description: Raw json with folder permissions, potentially exported
|
|
from Grafana
|
|
type: string
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
suspend:
|
|
description: Suspend pauses synchronizing attempts and tells the operator
|
|
to ignore changes
|
|
type: boolean
|
|
title:
|
|
description: Display name of the folder in Grafana
|
|
type: string
|
|
uid:
|
|
description: Manually specify the UID the Folder is created with.
|
|
Can be any string consisting of alphanumeric characters, - and _
|
|
with a maximum length of 40
|
|
maxLength: 40
|
|
pattern: ^[a-zA-Z0-9-_]+$
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: spec.uid is immutable
|
|
rule: self == oldSelf
|
|
required:
|
|
- instanceSelector
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: Only one of parentFolderUID or parentFolderRef can be set
|
|
rule: (has(self.parentFolderUID) && !(has(self.parentFolderRef))) ||
|
|
(has(self.parentFolderRef) && !(has(self.parentFolderUID))) || !(has(self.parentFolderRef)
|
|
&& (has(self.parentFolderUID)))
|
|
- message: spec.uid is immutable
|
|
rule: ((!has(oldSelf.uid) && !has(self.uid)) || (has(oldSelf.uid) &&
|
|
has(self.uid)))
|
|
- message: disabling spec.allowCrossNamespaceImport requires a recreate
|
|
to ensure desired state
|
|
rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport
|
|
&& self.allowCrossNamespaceImport)'
|
|
status:
|
|
description: GrafanaFolderStatus defines the observed state of GrafanaFolder
|
|
properties:
|
|
NoMatchingInstances:
|
|
description: The folder instanceSelector can't find matching grafana
|
|
instances
|
|
type: boolean
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
hash:
|
|
type: string
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafanalibrarypanels.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafanalibrarypanels.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaLibraryPanel
|
|
listKind: GrafanaLibraryPanelList
|
|
plural: grafanalibrarypanels
|
|
singular: grafanalibrarypanel
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaLibraryPanel is the Schema for the grafanalibrarypanels
|
|
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: GrafanaLibraryPanelSpec defines the desired state of GrafanaLibraryPanel
|
|
properties:
|
|
allowCrossNamespaceImport:
|
|
default: false
|
|
description: Allow the Operator to match this resource with Grafanas
|
|
outside the current namespace
|
|
type: boolean
|
|
configMapRef:
|
|
description: model from configmap
|
|
properties:
|
|
key:
|
|
description: The key to select.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
contentCacheDuration:
|
|
description: Cache duration for models fetched from URLs
|
|
type: string
|
|
datasources:
|
|
description: maps required data sources to existing ones
|
|
items:
|
|
description: |-
|
|
GrafanaResourceDatasource is used to set the datasource name of any templated datasources in
|
|
content definitions (e.g., dashboard JSON).
|
|
properties:
|
|
datasourceName:
|
|
type: string
|
|
inputName:
|
|
type: string
|
|
required:
|
|
- datasourceName
|
|
- inputName
|
|
type: object
|
|
type: array
|
|
envFrom:
|
|
description: environments variables from secrets or config maps
|
|
items:
|
|
properties:
|
|
configMapKeyRef:
|
|
description: Selects a key of a ConfigMap.
|
|
properties:
|
|
key:
|
|
description: The key to select.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
secretKeyRef:
|
|
description: Selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
type: object
|
|
type: array
|
|
envs:
|
|
description: environments variables as a map
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
description: Inline env value
|
|
type: string
|
|
valueFrom:
|
|
description: Reference on value source, might be the reference
|
|
on a secret or config map
|
|
properties:
|
|
configMapKeyRef:
|
|
description: Selects a key of a ConfigMap.
|
|
properties:
|
|
key:
|
|
description: The key to select.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
secretKeyRef:
|
|
description: Selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
folderRef:
|
|
description: Name of a `GrafanaFolder` resource in the same namespace
|
|
type: string
|
|
folderUID:
|
|
description: UID of the target folder for this dashboard
|
|
type: string
|
|
grafanaCom:
|
|
description: grafana.com/dashboards
|
|
properties:
|
|
id:
|
|
type: integer
|
|
revision:
|
|
type: integer
|
|
required:
|
|
- id
|
|
type: object
|
|
gzipJson:
|
|
description: GzipJson the model's JSON compressed with Gzip. Base64-encoded
|
|
when in YAML.
|
|
format: byte
|
|
type: string
|
|
instanceSelector:
|
|
description: Selects Grafana instances for import
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceSelector is immutable
|
|
rule: self == oldSelf
|
|
json:
|
|
description: model json
|
|
type: string
|
|
jsonnet:
|
|
description: Jsonnet
|
|
type: string
|
|
jsonnetLib:
|
|
description: Jsonnet project build
|
|
properties:
|
|
fileName:
|
|
type: string
|
|
gzipJsonnetProject:
|
|
format: byte
|
|
type: string
|
|
jPath:
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- fileName
|
|
- gzipJsonnetProject
|
|
type: object
|
|
plugins:
|
|
description: plugins
|
|
items:
|
|
properties:
|
|
name:
|
|
minLength: 1
|
|
type: string
|
|
version:
|
|
pattern: ^((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?|latest)$
|
|
type: string
|
|
required:
|
|
- name
|
|
- version
|
|
type: object
|
|
type: array
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
suspend:
|
|
description: Suspend pauses synchronizing attempts and tells the operator
|
|
to ignore changes
|
|
type: boolean
|
|
uid:
|
|
description: |-
|
|
Manually specify the uid, overwrites uids already present in the json model.
|
|
Can be any string consisting of alphanumeric characters, - and _ with a maximum length of 40.
|
|
maxLength: 40
|
|
pattern: ^[a-zA-Z0-9-_]+$
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: spec.uid is immutable
|
|
rule: self == oldSelf
|
|
url:
|
|
description: model url
|
|
type: string
|
|
urlAuthorization:
|
|
description: authorization options for model from url
|
|
properties:
|
|
basicAuth:
|
|
properties:
|
|
password:
|
|
description: SecretKeySelector selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
username:
|
|
description: SecretKeySelector selects a key of a Secret.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must
|
|
be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
type: object
|
|
type: object
|
|
required:
|
|
- instanceSelector
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: Only one of folderUID or folderRef can be declared at the same
|
|
time
|
|
rule: (has(self.folderUID) && !(has(self.folderRef))) || (has(self.folderRef)
|
|
&& !(has(self.folderUID))) || !(has(self.folderRef) && (has(self.folderUID)))
|
|
- message: spec.uid is immutable
|
|
rule: ((!has(oldSelf.uid) && !has(self.uid)) || (has(oldSelf.uid) &&
|
|
has(self.uid)))
|
|
- message: disabling spec.allowCrossNamespaceImport requires a recreate
|
|
to ensure desired state
|
|
rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport
|
|
&& self.allowCrossNamespaceImport)'
|
|
status:
|
|
description: GrafanaLibraryPanelStatus defines the observed state of GrafanaLibraryPanel
|
|
properties:
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
contentCache:
|
|
format: byte
|
|
type: string
|
|
contentTimestamp:
|
|
format: date-time
|
|
type: string
|
|
contentUrl:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
uid:
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafanamutetimings.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafanamutetimings.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaMuteTiming
|
|
listKind: GrafanaMuteTimingList
|
|
plural: grafanamutetimings
|
|
singular: grafanamutetiming
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaMuteTiming is the Schema for the GrafanaMuteTiming 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: GrafanaMuteTimingSpec defines the desired state of GrafanaMuteTiming
|
|
properties:
|
|
allowCrossNamespaceImport:
|
|
default: false
|
|
description: Allow the Operator to match this resource with Grafanas
|
|
outside the current namespace
|
|
type: boolean
|
|
editable:
|
|
default: true
|
|
description: Whether to enable or disable editing of the mute timing
|
|
in Grafana UI
|
|
type: boolean
|
|
x-kubernetes-validations:
|
|
- message: spec.editable is immutable
|
|
rule: self == oldSelf
|
|
instanceSelector:
|
|
description: Selects Grafana instances for import
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceSelector is immutable
|
|
rule: self == oldSelf
|
|
name:
|
|
description: A unique name for the mute timing
|
|
type: string
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
suspend:
|
|
description: Suspend pauses synchronizing attempts and tells the operator
|
|
to ignore changes
|
|
type: boolean
|
|
time_intervals:
|
|
description: Time intervals for muting
|
|
items:
|
|
properties:
|
|
days_of_month:
|
|
description: |-
|
|
The date 1-31 of a month. Negative values can also be used to represent days that begin at the end of the month.
|
|
For example: -1 for the last day of the month.
|
|
items:
|
|
type: string
|
|
type: array
|
|
location:
|
|
description: Depending on the location, the time range is displayed
|
|
in local time.
|
|
type: string
|
|
months:
|
|
description: |-
|
|
The months of the year in either numerical or the full calendar month.
|
|
For example: 1, may.
|
|
items:
|
|
type: string
|
|
type: array
|
|
times:
|
|
description: The time inclusive of the start and exclusive of
|
|
the end time (in UTC if no location has been selected, otherwise
|
|
local time).
|
|
items:
|
|
properties:
|
|
end_time:
|
|
description: end time
|
|
type: string
|
|
start_time:
|
|
description: start time
|
|
type: string
|
|
required:
|
|
- end_time
|
|
- start_time
|
|
type: object
|
|
type: array
|
|
weekdays:
|
|
description: |-
|
|
The day or range of days of the week.
|
|
For example: monday, thursday
|
|
items:
|
|
type: string
|
|
type: array
|
|
years:
|
|
description: |-
|
|
The year or years for the interval.
|
|
For example: 2021
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
minItems: 1
|
|
type: array
|
|
required:
|
|
- instanceSelector
|
|
- name
|
|
- time_intervals
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: disabling spec.allowCrossNamespaceImport requires a recreate
|
|
to ensure desired state
|
|
rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport
|
|
&& self.allowCrossNamespaceImport)'
|
|
status:
|
|
description: The most recent observed state of a Grafana resource
|
|
properties:
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafananotificationpolicies.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafananotificationpolicies.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaNotificationPolicy
|
|
listKind: GrafanaNotificationPolicyList
|
|
plural: grafananotificationpolicies
|
|
singular: grafananotificationpolicy
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaNotificationPolicy is the Schema for the GrafanaNotificationPolicy
|
|
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: GrafanaNotificationPolicySpec defines the desired state of
|
|
GrafanaNotificationPolicy
|
|
properties:
|
|
allowCrossNamespaceImport:
|
|
default: false
|
|
description: Allow the Operator to match this resource with Grafanas
|
|
outside the current namespace
|
|
type: boolean
|
|
editable:
|
|
description: Whether to enable or disable editing of the notification
|
|
policy in Grafana UI
|
|
type: boolean
|
|
x-kubernetes-validations:
|
|
- message: Value is immutable
|
|
rule: self == oldSelf
|
|
instanceSelector:
|
|
description: Selects Grafana instances for import
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceSelector is immutable
|
|
rule: self == oldSelf
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
route:
|
|
description: Routes for alerts to match against
|
|
properties:
|
|
continue:
|
|
description: continue
|
|
type: boolean
|
|
group_by:
|
|
description: group by
|
|
items:
|
|
type: string
|
|
type: array
|
|
group_interval:
|
|
description: group interval
|
|
type: string
|
|
group_wait:
|
|
description: group wait
|
|
type: string
|
|
match_re:
|
|
additionalProperties:
|
|
type: string
|
|
description: match re
|
|
type: object
|
|
matchers:
|
|
description: matchers
|
|
items:
|
|
properties:
|
|
isEqual:
|
|
description: is equal
|
|
type: boolean
|
|
isRegex:
|
|
description: is regex
|
|
type: boolean
|
|
name:
|
|
description: name
|
|
type: string
|
|
value:
|
|
description: value
|
|
type: string
|
|
required:
|
|
- isRegex
|
|
- value
|
|
type: object
|
|
type: array
|
|
mute_time_intervals:
|
|
description: mute time intervals
|
|
items:
|
|
type: string
|
|
type: array
|
|
object_matchers:
|
|
description: object matchers
|
|
items:
|
|
description: |-
|
|
ObjectMatcher ObjectMatcher is a matcher that can be used to filter alerts.
|
|
|
|
swagger:model ObjectMatcher
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: array
|
|
provenance:
|
|
description: provenance
|
|
type: string
|
|
receiver:
|
|
description: receiver
|
|
minLength: 1
|
|
type: string
|
|
repeat_interval:
|
|
description: repeat interval
|
|
type: string
|
|
routeSelector:
|
|
description: |-
|
|
selects GrafanaNotificationPolicyRoutes to merge in when specified
|
|
mutually exclusive with Routes
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector
|
|
requirements. The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector
|
|
applies to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
routes:
|
|
description: routes, mutually exclusive with RouteSelector
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
required:
|
|
- receiver
|
|
type: object
|
|
suspend:
|
|
description: Suspend pauses synchronizing attempts and tells the operator
|
|
to ignore changes
|
|
type: boolean
|
|
required:
|
|
- instanceSelector
|
|
- route
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: spec.editable is immutable
|
|
rule: ((!has(oldSelf.editable) && !has(self.editable)) || (has(oldSelf.editable)
|
|
&& has(self.editable)))
|
|
- message: disabling spec.allowCrossNamespaceImport requires a recreate
|
|
to ensure desired state
|
|
rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport
|
|
&& self.allowCrossNamespaceImport)'
|
|
status:
|
|
description: GrafanaNotificationPolicyStatus defines the observed state
|
|
of GrafanaNotificationPolicy
|
|
properties:
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
discoveredRoutes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafananotificationpolicyroutes.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafananotificationpolicyroutes.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaNotificationPolicyRoute
|
|
listKind: GrafanaNotificationPolicyRouteList
|
|
plural: grafananotificationpolicyroutes
|
|
singular: grafananotificationpolicyroute
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaNotificationPolicyRoute is the Schema for the grafananotificationpolicyroutes
|
|
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: GrafanaNotificationPolicyRouteSpec defines the desired state
|
|
of GrafanaNotificationPolicyRoute
|
|
properties:
|
|
continue:
|
|
description: continue
|
|
type: boolean
|
|
group_by:
|
|
description: group by
|
|
items:
|
|
type: string
|
|
type: array
|
|
group_interval:
|
|
description: group interval
|
|
type: string
|
|
group_wait:
|
|
description: group wait
|
|
type: string
|
|
match_re:
|
|
additionalProperties:
|
|
type: string
|
|
description: match re
|
|
type: object
|
|
matchers:
|
|
description: matchers
|
|
items:
|
|
properties:
|
|
isEqual:
|
|
description: is equal
|
|
type: boolean
|
|
isRegex:
|
|
description: is regex
|
|
type: boolean
|
|
name:
|
|
description: name
|
|
type: string
|
|
value:
|
|
description: value
|
|
type: string
|
|
required:
|
|
- isRegex
|
|
- value
|
|
type: object
|
|
type: array
|
|
mute_time_intervals:
|
|
description: mute time intervals
|
|
items:
|
|
type: string
|
|
type: array
|
|
object_matchers:
|
|
description: object matchers
|
|
items:
|
|
description: |-
|
|
ObjectMatcher ObjectMatcher is a matcher that can be used to filter alerts.
|
|
|
|
swagger:model ObjectMatcher
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: array
|
|
provenance:
|
|
description: provenance
|
|
type: string
|
|
receiver:
|
|
description: receiver
|
|
minLength: 1
|
|
type: string
|
|
repeat_interval:
|
|
description: repeat interval
|
|
type: string
|
|
routeSelector:
|
|
description: |-
|
|
selects GrafanaNotificationPolicyRoutes to merge in when specified
|
|
mutually exclusive with Routes
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
routes:
|
|
description: routes, mutually exclusive with RouteSelector
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
required:
|
|
- receiver
|
|
type: object
|
|
status:
|
|
description: The most recent observed state of a Grafana resource
|
|
properties:
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafananotificationtemplates.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafananotificationtemplates.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaNotificationTemplate
|
|
listKind: GrafanaNotificationTemplateList
|
|
plural: grafananotificationtemplates
|
|
singular: grafananotificationtemplate
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaNotificationTemplate is the Schema for the GrafanaNotificationTemplate
|
|
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: GrafanaNotificationTemplateSpec defines the desired state
|
|
of GrafanaNotificationTemplate
|
|
properties:
|
|
allowCrossNamespaceImport:
|
|
default: false
|
|
description: Allow the Operator to match this resource with Grafanas
|
|
outside the current namespace
|
|
type: boolean
|
|
editable:
|
|
description: Whether to enable or disable editing of the notification
|
|
template in Grafana UI
|
|
type: boolean
|
|
x-kubernetes-validations:
|
|
- message: spec.editable is immutable
|
|
rule: self == oldSelf
|
|
instanceSelector:
|
|
description: Selects Grafana instances for import
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements.
|
|
The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceSelector is immutable
|
|
rule: self == oldSelf
|
|
name:
|
|
description: Template name
|
|
type: string
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
suspend:
|
|
description: Suspend pauses synchronizing attempts and tells the operator
|
|
to ignore changes
|
|
type: boolean
|
|
template:
|
|
description: Template content
|
|
type: string
|
|
required:
|
|
- instanceSelector
|
|
- name
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: spec.editable is immutable
|
|
rule: ((!has(oldSelf.editable) && !has(self.editable)) || (has(oldSelf.editable)
|
|
&& has(self.editable)))
|
|
- message: disabling spec.allowCrossNamespaceImport requires a recreate
|
|
to ensure desired state
|
|
rule: '!oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport
|
|
&& self.allowCrossNamespaceImport)'
|
|
status:
|
|
description: The most recent observed state of a Grafana resource
|
|
properties:
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafanas.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafanas.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: Grafana
|
|
listKind: GrafanaList
|
|
plural: grafanas
|
|
singular: grafana
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.version
|
|
name: Version
|
|
type: string
|
|
- jsonPath: .status.stage
|
|
name: Stage
|
|
type: string
|
|
- jsonPath: .status.stageStatus
|
|
name: Stage status
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: Grafana is the Schema for the grafanas 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: GrafanaSpec defines the desired state of Grafana
|
|
properties:
|
|
client:
|
|
description: Client defines how the grafana-operator talks to the grafana instance.
|
|
properties:
|
|
headers:
|
|
additionalProperties:
|
|
type: string
|
|
description: Custom HTTP headers to use when interacting with this Grafana.
|
|
type: object
|
|
preferIngress:
|
|
description: If the operator should send it's request through the grafana instances ingress object instead of through the service.
|
|
nullable: true
|
|
type: boolean
|
|
timeout:
|
|
nullable: true
|
|
type: integer
|
|
tls:
|
|
description: TLS Configuration used to talk with the grafana instance.
|
|
properties:
|
|
certSecretRef:
|
|
description: Use a secret as a reference to give TLS Certificate information
|
|
properties:
|
|
name:
|
|
description: name is unique within a namespace to reference a secret resource.
|
|
type: string
|
|
namespace:
|
|
description: namespace defines the space within which the secret name must be unique.
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
insecureSkipVerify:
|
|
description: Disable the CA check of the server
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: insecureSkipVerify and certSecretRef cannot be set at the same time
|
|
rule: (has(self.insecureSkipVerify) && !(has(self.certSecretRef))) || (has(self.certSecretRef) && !(has(self.insecureSkipVerify)))
|
|
type: object
|
|
config:
|
|
additionalProperties:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
description: Config defines how your grafana ini file should looks like.
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
deployment:
|
|
description: Deployment sets how the deployment object should look like with your grafana instance, contains a number of defaults.
|
|
properties:
|
|
metadata:
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
spec:
|
|
properties:
|
|
minReadySeconds:
|
|
format: int32
|
|
type: integer
|
|
paused:
|
|
type: boolean
|
|
progressDeadlineSeconds:
|
|
format: int32
|
|
type: integer
|
|
replicas:
|
|
format: int32
|
|
type: integer
|
|
revisionHistoryLimit:
|
|
format: int32
|
|
type: integer
|
|
selector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
strategy:
|
|
properties:
|
|
rollingUpdate:
|
|
properties:
|
|
maxSurge:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
maxUnavailable:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
type:
|
|
type: string
|
|
type: object
|
|
template:
|
|
properties:
|
|
metadata:
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
spec:
|
|
properties:
|
|
activeDeadlineSeconds:
|
|
format: int64
|
|
type: integer
|
|
affinity:
|
|
properties:
|
|
nodeAffinity:
|
|
properties:
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
items:
|
|
properties:
|
|
preference:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchFields:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
weight:
|
|
format: int32
|
|
type: integer
|
|
required:
|
|
- preference
|
|
- weight
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
properties:
|
|
nodeSelectorTerms:
|
|
items:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchFields:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- nodeSelectorTerms
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
podAffinity:
|
|
properties:
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
items:
|
|
properties:
|
|
podAffinityTerm:
|
|
properties:
|
|
labelSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
matchLabelKeys:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
mismatchLabelKeys:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
namespaceSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
namespaces:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
topologyKey:
|
|
type: string
|
|
required:
|
|
- topologyKey
|
|
type: object
|
|
weight:
|
|
format: int32
|
|
type: integer
|
|
required:
|
|
- podAffinityTerm
|
|
- weight
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
items:
|
|
properties:
|
|
labelSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
matchLabelKeys:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
mismatchLabelKeys:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
namespaceSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
namespaces:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
topologyKey:
|
|
type: string
|
|
required:
|
|
- topologyKey
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
podAntiAffinity:
|
|
properties:
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
items:
|
|
properties:
|
|
podAffinityTerm:
|
|
properties:
|
|
labelSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
matchLabelKeys:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
mismatchLabelKeys:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
namespaceSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
namespaces:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
topologyKey:
|
|
type: string
|
|
required:
|
|
- topologyKey
|
|
type: object
|
|
weight:
|
|
format: int32
|
|
type: integer
|
|
required:
|
|
- podAffinityTerm
|
|
- weight
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
items:
|
|
properties:
|
|
labelSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
matchLabelKeys:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
mismatchLabelKeys:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
namespaceSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
namespaces:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
topologyKey:
|
|
type: string
|
|
required:
|
|
- topologyKey
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
type: object
|
|
automountServiceAccountToken:
|
|
type: boolean
|
|
containers:
|
|
items:
|
|
properties:
|
|
args:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
env:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
valueFrom:
|
|
properties:
|
|
configMapKeyRef:
|
|
properties:
|
|
key:
|
|
type: string
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
required:
|
|
- key
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
fieldPath:
|
|
type: string
|
|
required:
|
|
- fieldPath
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
fileKeyRef:
|
|
properties:
|
|
key:
|
|
type: string
|
|
optional:
|
|
default: false
|
|
type: boolean
|
|
path:
|
|
type: string
|
|
volumeName:
|
|
type: string
|
|
required:
|
|
- key
|
|
- path
|
|
- volumeName
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
resourceFieldRef:
|
|
properties:
|
|
containerName:
|
|
type: string
|
|
divisor:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
secretKeyRef:
|
|
properties:
|
|
key:
|
|
type: string
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
required:
|
|
- key
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
envFrom:
|
|
items:
|
|
properties:
|
|
configMapRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
prefix:
|
|
type: string
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
image:
|
|
type: string
|
|
imagePullPolicy:
|
|
type: string
|
|
lifecycle:
|
|
properties:
|
|
postStart:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
sleep:
|
|
properties:
|
|
seconds:
|
|
format: int64
|
|
type: integer
|
|
required:
|
|
- seconds
|
|
type: object
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
type: object
|
|
preStop:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
sleep:
|
|
properties:
|
|
seconds:
|
|
format: int64
|
|
type: integer
|
|
required:
|
|
- seconds
|
|
type: object
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
type: object
|
|
stopSignal:
|
|
type: string
|
|
type: object
|
|
livenessProbe:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
failureThreshold:
|
|
format: int32
|
|
type: integer
|
|
grpc:
|
|
properties:
|
|
port:
|
|
format: int32
|
|
type: integer
|
|
service:
|
|
default: ""
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
initialDelaySeconds:
|
|
format: int32
|
|
type: integer
|
|
periodSeconds:
|
|
format: int32
|
|
type: integer
|
|
successThreshold:
|
|
format: int32
|
|
type: integer
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
timeoutSeconds:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
name:
|
|
type: string
|
|
ports:
|
|
items:
|
|
properties:
|
|
containerPort:
|
|
format: int32
|
|
type: integer
|
|
hostIP:
|
|
type: string
|
|
hostPort:
|
|
format: int32
|
|
type: integer
|
|
name:
|
|
type: string
|
|
protocol:
|
|
default: TCP
|
|
type: string
|
|
required:
|
|
- containerPort
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- containerPort
|
|
- protocol
|
|
x-kubernetes-list-type: map
|
|
readinessProbe:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
failureThreshold:
|
|
format: int32
|
|
type: integer
|
|
grpc:
|
|
properties:
|
|
port:
|
|
format: int32
|
|
type: integer
|
|
service:
|
|
default: ""
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
initialDelaySeconds:
|
|
format: int32
|
|
type: integer
|
|
periodSeconds:
|
|
format: int32
|
|
type: integer
|
|
successThreshold:
|
|
format: int32
|
|
type: integer
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
timeoutSeconds:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
resizePolicy:
|
|
items:
|
|
properties:
|
|
resourceName:
|
|
type: string
|
|
restartPolicy:
|
|
type: string
|
|
required:
|
|
- resourceName
|
|
- restartPolicy
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
resources:
|
|
properties:
|
|
claims:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
request:
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
type: object
|
|
restartPolicy:
|
|
type: string
|
|
restartPolicyRules:
|
|
items:
|
|
properties:
|
|
action:
|
|
type: string
|
|
exitCodes:
|
|
properties:
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
format: int32
|
|
type: integer
|
|
type: array
|
|
x-kubernetes-list-type: set
|
|
required:
|
|
- operator
|
|
type: object
|
|
required:
|
|
- action
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
securityContext:
|
|
properties:
|
|
allowPrivilegeEscalation:
|
|
type: boolean
|
|
appArmorProfile:
|
|
properties:
|
|
localhostProfile:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
capabilities:
|
|
properties:
|
|
add:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
drop:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
privileged:
|
|
type: boolean
|
|
procMount:
|
|
type: string
|
|
readOnlyRootFilesystem:
|
|
type: boolean
|
|
runAsGroup:
|
|
format: int64
|
|
type: integer
|
|
runAsNonRoot:
|
|
type: boolean
|
|
runAsUser:
|
|
format: int64
|
|
type: integer
|
|
seLinuxOptions:
|
|
properties:
|
|
level:
|
|
type: string
|
|
role:
|
|
type: string
|
|
type:
|
|
type: string
|
|
user:
|
|
type: string
|
|
type: object
|
|
seccompProfile:
|
|
properties:
|
|
localhostProfile:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
windowsOptions:
|
|
properties:
|
|
gmsaCredentialSpec:
|
|
type: string
|
|
gmsaCredentialSpecName:
|
|
type: string
|
|
hostProcess:
|
|
type: boolean
|
|
runAsUserName:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
startupProbe:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
failureThreshold:
|
|
format: int32
|
|
type: integer
|
|
grpc:
|
|
properties:
|
|
port:
|
|
format: int32
|
|
type: integer
|
|
service:
|
|
default: ""
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
initialDelaySeconds:
|
|
format: int32
|
|
type: integer
|
|
periodSeconds:
|
|
format: int32
|
|
type: integer
|
|
successThreshold:
|
|
format: int32
|
|
type: integer
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
timeoutSeconds:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
stdin:
|
|
type: boolean
|
|
stdinOnce:
|
|
type: boolean
|
|
terminationMessagePath:
|
|
type: string
|
|
terminationMessagePolicy:
|
|
type: string
|
|
tty:
|
|
type: boolean
|
|
volumeDevices:
|
|
items:
|
|
properties:
|
|
devicePath:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required:
|
|
- devicePath
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- devicePath
|
|
x-kubernetes-list-type: map
|
|
volumeMounts:
|
|
items:
|
|
properties:
|
|
mountPath:
|
|
type: string
|
|
mountPropagation:
|
|
type: string
|
|
name:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
recursiveReadOnly:
|
|
type: string
|
|
subPath:
|
|
type: string
|
|
subPathExpr:
|
|
type: string
|
|
required:
|
|
- mountPath
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- mountPath
|
|
x-kubernetes-list-type: map
|
|
workingDir:
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
dnsConfig:
|
|
properties:
|
|
nameservers:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
options:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
searches:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
dnsPolicy:
|
|
type: string
|
|
enableServiceLinks:
|
|
type: boolean
|
|
ephemeralContainers:
|
|
items:
|
|
properties:
|
|
args:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
env:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
valueFrom:
|
|
properties:
|
|
configMapKeyRef:
|
|
properties:
|
|
key:
|
|
type: string
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
required:
|
|
- key
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
fieldPath:
|
|
type: string
|
|
required:
|
|
- fieldPath
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
fileKeyRef:
|
|
properties:
|
|
key:
|
|
type: string
|
|
optional:
|
|
default: false
|
|
type: boolean
|
|
path:
|
|
type: string
|
|
volumeName:
|
|
type: string
|
|
required:
|
|
- key
|
|
- path
|
|
- volumeName
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
resourceFieldRef:
|
|
properties:
|
|
containerName:
|
|
type: string
|
|
divisor:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
secretKeyRef:
|
|
properties:
|
|
key:
|
|
type: string
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
required:
|
|
- key
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
envFrom:
|
|
items:
|
|
properties:
|
|
configMapRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
prefix:
|
|
type: string
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
image:
|
|
type: string
|
|
imagePullPolicy:
|
|
type: string
|
|
lifecycle:
|
|
properties:
|
|
postStart:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
sleep:
|
|
properties:
|
|
seconds:
|
|
format: int64
|
|
type: integer
|
|
required:
|
|
- seconds
|
|
type: object
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
type: object
|
|
preStop:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
sleep:
|
|
properties:
|
|
seconds:
|
|
format: int64
|
|
type: integer
|
|
required:
|
|
- seconds
|
|
type: object
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
type: object
|
|
stopSignal:
|
|
type: string
|
|
type: object
|
|
livenessProbe:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
failureThreshold:
|
|
format: int32
|
|
type: integer
|
|
grpc:
|
|
properties:
|
|
port:
|
|
format: int32
|
|
type: integer
|
|
service:
|
|
default: ""
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
initialDelaySeconds:
|
|
format: int32
|
|
type: integer
|
|
periodSeconds:
|
|
format: int32
|
|
type: integer
|
|
successThreshold:
|
|
format: int32
|
|
type: integer
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
timeoutSeconds:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
name:
|
|
type: string
|
|
ports:
|
|
items:
|
|
properties:
|
|
containerPort:
|
|
format: int32
|
|
type: integer
|
|
hostIP:
|
|
type: string
|
|
hostPort:
|
|
format: int32
|
|
type: integer
|
|
name:
|
|
type: string
|
|
protocol:
|
|
default: TCP
|
|
type: string
|
|
required:
|
|
- containerPort
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- containerPort
|
|
- protocol
|
|
x-kubernetes-list-type: map
|
|
readinessProbe:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
failureThreshold:
|
|
format: int32
|
|
type: integer
|
|
grpc:
|
|
properties:
|
|
port:
|
|
format: int32
|
|
type: integer
|
|
service:
|
|
default: ""
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
initialDelaySeconds:
|
|
format: int32
|
|
type: integer
|
|
periodSeconds:
|
|
format: int32
|
|
type: integer
|
|
successThreshold:
|
|
format: int32
|
|
type: integer
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
timeoutSeconds:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
resizePolicy:
|
|
items:
|
|
properties:
|
|
resourceName:
|
|
type: string
|
|
restartPolicy:
|
|
type: string
|
|
required:
|
|
- resourceName
|
|
- restartPolicy
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
resources:
|
|
properties:
|
|
claims:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
request:
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
type: object
|
|
restartPolicy:
|
|
type: string
|
|
restartPolicyRules:
|
|
items:
|
|
properties:
|
|
action:
|
|
type: string
|
|
exitCodes:
|
|
properties:
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
format: int32
|
|
type: integer
|
|
type: array
|
|
x-kubernetes-list-type: set
|
|
required:
|
|
- operator
|
|
type: object
|
|
required:
|
|
- action
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
securityContext:
|
|
properties:
|
|
allowPrivilegeEscalation:
|
|
type: boolean
|
|
appArmorProfile:
|
|
properties:
|
|
localhostProfile:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
capabilities:
|
|
properties:
|
|
add:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
drop:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
privileged:
|
|
type: boolean
|
|
procMount:
|
|
type: string
|
|
readOnlyRootFilesystem:
|
|
type: boolean
|
|
runAsGroup:
|
|
format: int64
|
|
type: integer
|
|
runAsNonRoot:
|
|
type: boolean
|
|
runAsUser:
|
|
format: int64
|
|
type: integer
|
|
seLinuxOptions:
|
|
properties:
|
|
level:
|
|
type: string
|
|
role:
|
|
type: string
|
|
type:
|
|
type: string
|
|
user:
|
|
type: string
|
|
type: object
|
|
seccompProfile:
|
|
properties:
|
|
localhostProfile:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
windowsOptions:
|
|
properties:
|
|
gmsaCredentialSpec:
|
|
type: string
|
|
gmsaCredentialSpecName:
|
|
type: string
|
|
hostProcess:
|
|
type: boolean
|
|
runAsUserName:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
startupProbe:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
failureThreshold:
|
|
format: int32
|
|
type: integer
|
|
grpc:
|
|
properties:
|
|
port:
|
|
format: int32
|
|
type: integer
|
|
service:
|
|
default: ""
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
initialDelaySeconds:
|
|
format: int32
|
|
type: integer
|
|
periodSeconds:
|
|
format: int32
|
|
type: integer
|
|
successThreshold:
|
|
format: int32
|
|
type: integer
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
timeoutSeconds:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
stdin:
|
|
type: boolean
|
|
stdinOnce:
|
|
type: boolean
|
|
targetContainerName:
|
|
type: string
|
|
terminationMessagePath:
|
|
type: string
|
|
terminationMessagePolicy:
|
|
type: string
|
|
tty:
|
|
type: boolean
|
|
volumeDevices:
|
|
items:
|
|
properties:
|
|
devicePath:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required:
|
|
- devicePath
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- devicePath
|
|
x-kubernetes-list-type: map
|
|
volumeMounts:
|
|
items:
|
|
properties:
|
|
mountPath:
|
|
type: string
|
|
mountPropagation:
|
|
type: string
|
|
name:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
recursiveReadOnly:
|
|
type: string
|
|
subPath:
|
|
type: string
|
|
subPathExpr:
|
|
type: string
|
|
required:
|
|
- mountPath
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- mountPath
|
|
x-kubernetes-list-type: map
|
|
workingDir:
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
hostAliases:
|
|
items:
|
|
properties:
|
|
hostnames:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
ip:
|
|
type: string
|
|
required:
|
|
- ip
|
|
type: object
|
|
type: array
|
|
hostIPC:
|
|
type: boolean
|
|
hostNetwork:
|
|
type: boolean
|
|
hostPID:
|
|
type: boolean
|
|
hostUsers:
|
|
type: boolean
|
|
hostname:
|
|
type: string
|
|
imagePullSecrets:
|
|
items:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: array
|
|
initContainers:
|
|
items:
|
|
properties:
|
|
args:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
env:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
valueFrom:
|
|
properties:
|
|
configMapKeyRef:
|
|
properties:
|
|
key:
|
|
type: string
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
required:
|
|
- key
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
fieldRef:
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
fieldPath:
|
|
type: string
|
|
required:
|
|
- fieldPath
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
fileKeyRef:
|
|
properties:
|
|
key:
|
|
type: string
|
|
optional:
|
|
default: false
|
|
type: boolean
|
|
path:
|
|
type: string
|
|
volumeName:
|
|
type: string
|
|
required:
|
|
- key
|
|
- path
|
|
- volumeName
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
resourceFieldRef:
|
|
properties:
|
|
containerName:
|
|
type: string
|
|
divisor:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
secretKeyRef:
|
|
properties:
|
|
key:
|
|
type: string
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
required:
|
|
- key
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
envFrom:
|
|
items:
|
|
properties:
|
|
configMapRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
prefix:
|
|
type: string
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
image:
|
|
type: string
|
|
imagePullPolicy:
|
|
type: string
|
|
lifecycle:
|
|
properties:
|
|
postStart:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
sleep:
|
|
properties:
|
|
seconds:
|
|
format: int64
|
|
type: integer
|
|
required:
|
|
- seconds
|
|
type: object
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
type: object
|
|
preStop:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
sleep:
|
|
properties:
|
|
seconds:
|
|
format: int64
|
|
type: integer
|
|
required:
|
|
- seconds
|
|
type: object
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
type: object
|
|
stopSignal:
|
|
type: string
|
|
type: object
|
|
livenessProbe:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
failureThreshold:
|
|
format: int32
|
|
type: integer
|
|
grpc:
|
|
properties:
|
|
port:
|
|
format: int32
|
|
type: integer
|
|
service:
|
|
default: ""
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
initialDelaySeconds:
|
|
format: int32
|
|
type: integer
|
|
periodSeconds:
|
|
format: int32
|
|
type: integer
|
|
successThreshold:
|
|
format: int32
|
|
type: integer
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
timeoutSeconds:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
name:
|
|
type: string
|
|
ports:
|
|
items:
|
|
properties:
|
|
containerPort:
|
|
format: int32
|
|
type: integer
|
|
hostIP:
|
|
type: string
|
|
hostPort:
|
|
format: int32
|
|
type: integer
|
|
name:
|
|
type: string
|
|
protocol:
|
|
default: TCP
|
|
type: string
|
|
required:
|
|
- containerPort
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- containerPort
|
|
- protocol
|
|
x-kubernetes-list-type: map
|
|
readinessProbe:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
failureThreshold:
|
|
format: int32
|
|
type: integer
|
|
grpc:
|
|
properties:
|
|
port:
|
|
format: int32
|
|
type: integer
|
|
service:
|
|
default: ""
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
initialDelaySeconds:
|
|
format: int32
|
|
type: integer
|
|
periodSeconds:
|
|
format: int32
|
|
type: integer
|
|
successThreshold:
|
|
format: int32
|
|
type: integer
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
timeoutSeconds:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
resizePolicy:
|
|
items:
|
|
properties:
|
|
resourceName:
|
|
type: string
|
|
restartPolicy:
|
|
type: string
|
|
required:
|
|
- resourceName
|
|
- restartPolicy
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
resources:
|
|
properties:
|
|
claims:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
request:
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
type: object
|
|
restartPolicy:
|
|
type: string
|
|
restartPolicyRules:
|
|
items:
|
|
properties:
|
|
action:
|
|
type: string
|
|
exitCodes:
|
|
properties:
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
format: int32
|
|
type: integer
|
|
type: array
|
|
x-kubernetes-list-type: set
|
|
required:
|
|
- operator
|
|
type: object
|
|
required:
|
|
- action
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
securityContext:
|
|
properties:
|
|
allowPrivilegeEscalation:
|
|
type: boolean
|
|
appArmorProfile:
|
|
properties:
|
|
localhostProfile:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
capabilities:
|
|
properties:
|
|
add:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
drop:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
privileged:
|
|
type: boolean
|
|
procMount:
|
|
type: string
|
|
readOnlyRootFilesystem:
|
|
type: boolean
|
|
runAsGroup:
|
|
format: int64
|
|
type: integer
|
|
runAsNonRoot:
|
|
type: boolean
|
|
runAsUser:
|
|
format: int64
|
|
type: integer
|
|
seLinuxOptions:
|
|
properties:
|
|
level:
|
|
type: string
|
|
role:
|
|
type: string
|
|
type:
|
|
type: string
|
|
user:
|
|
type: string
|
|
type: object
|
|
seccompProfile:
|
|
properties:
|
|
localhostProfile:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
windowsOptions:
|
|
properties:
|
|
gmsaCredentialSpec:
|
|
type: string
|
|
gmsaCredentialSpecName:
|
|
type: string
|
|
hostProcess:
|
|
type: boolean
|
|
runAsUserName:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
startupProbe:
|
|
properties:
|
|
exec:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
failureThreshold:
|
|
format: int32
|
|
type: integer
|
|
grpc:
|
|
properties:
|
|
port:
|
|
format: int32
|
|
type: integer
|
|
service:
|
|
default: ""
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
httpGet:
|
|
properties:
|
|
host:
|
|
type: string
|
|
httpHeaders:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
scheme:
|
|
type: string
|
|
required:
|
|
- port
|
|
type: object
|
|
initialDelaySeconds:
|
|
format: int32
|
|
type: integer
|
|
periodSeconds:
|
|
format: int32
|
|
type: integer
|
|
successThreshold:
|
|
format: int32
|
|
type: integer
|
|
tcpSocket:
|
|
properties:
|
|
host:
|
|
type: string
|
|
port:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
timeoutSeconds:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
stdin:
|
|
type: boolean
|
|
stdinOnce:
|
|
type: boolean
|
|
terminationMessagePath:
|
|
type: string
|
|
terminationMessagePolicy:
|
|
type: string
|
|
tty:
|
|
type: boolean
|
|
volumeDevices:
|
|
items:
|
|
properties:
|
|
devicePath:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required:
|
|
- devicePath
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- devicePath
|
|
x-kubernetes-list-type: map
|
|
volumeMounts:
|
|
items:
|
|
properties:
|
|
mountPath:
|
|
type: string
|
|
mountPropagation:
|
|
type: string
|
|
name:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
recursiveReadOnly:
|
|
type: string
|
|
subPath:
|
|
type: string
|
|
subPathExpr:
|
|
type: string
|
|
required:
|
|
- mountPath
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- mountPath
|
|
x-kubernetes-list-type: map
|
|
workingDir:
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
nodeName:
|
|
type: string
|
|
nodeSelector:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
os:
|
|
properties:
|
|
name:
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
overhead:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
preemptionPolicy:
|
|
type: string
|
|
priority:
|
|
format: int32
|
|
type: integer
|
|
priorityClassName:
|
|
type: string
|
|
readinessGates:
|
|
items:
|
|
properties:
|
|
conditionType:
|
|
type: string
|
|
required:
|
|
- conditionType
|
|
type: object
|
|
type: array
|
|
restartPolicy:
|
|
type: string
|
|
runtimeClassName:
|
|
type: string
|
|
schedulerName:
|
|
type: string
|
|
securityContext:
|
|
properties:
|
|
appArmorProfile:
|
|
properties:
|
|
localhostProfile:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
fsGroup:
|
|
format: int64
|
|
type: integer
|
|
fsGroupChangePolicy:
|
|
type: string
|
|
runAsGroup:
|
|
format: int64
|
|
type: integer
|
|
runAsNonRoot:
|
|
type: boolean
|
|
runAsUser:
|
|
format: int64
|
|
type: integer
|
|
seLinuxChangePolicy:
|
|
type: string
|
|
seLinuxOptions:
|
|
properties:
|
|
level:
|
|
type: string
|
|
role:
|
|
type: string
|
|
type:
|
|
type: string
|
|
user:
|
|
type: string
|
|
type: object
|
|
seccompProfile:
|
|
properties:
|
|
localhostProfile:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
supplementalGroups:
|
|
items:
|
|
format: int64
|
|
type: integer
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
supplementalGroupsPolicy:
|
|
type: string
|
|
sysctls:
|
|
items:
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
windowsOptions:
|
|
properties:
|
|
gmsaCredentialSpec:
|
|
type: string
|
|
gmsaCredentialSpecName:
|
|
type: string
|
|
hostProcess:
|
|
type: boolean
|
|
runAsUserName:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
serviceAccount:
|
|
type: string
|
|
serviceAccountName:
|
|
type: string
|
|
setHostnameAsFQDN:
|
|
type: boolean
|
|
shareProcessNamespace:
|
|
type: boolean
|
|
subdomain:
|
|
type: string
|
|
terminationGracePeriodSeconds:
|
|
format: int64
|
|
type: integer
|
|
tolerations:
|
|
items:
|
|
properties:
|
|
effect:
|
|
type: string
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
tolerationSeconds:
|
|
format: int64
|
|
type: integer
|
|
value:
|
|
type: string
|
|
type: object
|
|
type: array
|
|
topologySpreadConstraints:
|
|
items:
|
|
properties:
|
|
labelSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
matchLabelKeys:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
maxSkew:
|
|
format: int32
|
|
type: integer
|
|
minDomains:
|
|
format: int32
|
|
type: integer
|
|
nodeAffinityPolicy:
|
|
type: string
|
|
nodeTaintsPolicy:
|
|
type: string
|
|
topologyKey:
|
|
type: string
|
|
whenUnsatisfiable:
|
|
type: string
|
|
required:
|
|
- maxSkew
|
|
- topologyKey
|
|
- whenUnsatisfiable
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- topologyKey
|
|
- whenUnsatisfiable
|
|
x-kubernetes-list-type: map
|
|
volumes:
|
|
items:
|
|
properties:
|
|
awsElasticBlockStore:
|
|
properties:
|
|
fsType:
|
|
type: string
|
|
partition:
|
|
format: int32
|
|
type: integer
|
|
readOnly:
|
|
type: boolean
|
|
volumeID:
|
|
type: string
|
|
required:
|
|
- volumeID
|
|
type: object
|
|
azureDisk:
|
|
properties:
|
|
cachingMode:
|
|
type: string
|
|
diskName:
|
|
type: string
|
|
diskURI:
|
|
type: string
|
|
fsType:
|
|
default: ext4
|
|
type: string
|
|
kind:
|
|
type: string
|
|
readOnly:
|
|
default: false
|
|
type: boolean
|
|
required:
|
|
- diskName
|
|
- diskURI
|
|
type: object
|
|
azureFile:
|
|
properties:
|
|
readOnly:
|
|
type: boolean
|
|
secretName:
|
|
type: string
|
|
shareName:
|
|
type: string
|
|
required:
|
|
- secretName
|
|
- shareName
|
|
type: object
|
|
cephfs:
|
|
properties:
|
|
monitors:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
path:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
secretFile:
|
|
type: string
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
user:
|
|
type: string
|
|
required:
|
|
- monitors
|
|
type: object
|
|
cinder:
|
|
properties:
|
|
fsType:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
volumeID:
|
|
type: string
|
|
required:
|
|
- volumeID
|
|
type: object
|
|
configMap:
|
|
properties:
|
|
defaultMode:
|
|
format: int32
|
|
type: integer
|
|
items:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
mode:
|
|
format: int32
|
|
type: integer
|
|
path:
|
|
type: string
|
|
required:
|
|
- key
|
|
- path
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
csi:
|
|
properties:
|
|
driver:
|
|
type: string
|
|
fsType:
|
|
type: string
|
|
nodePublishSecretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
readOnly:
|
|
type: boolean
|
|
volumeAttributes:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
required:
|
|
- driver
|
|
type: object
|
|
downwardAPI:
|
|
properties:
|
|
defaultMode:
|
|
format: int32
|
|
type: integer
|
|
items:
|
|
items:
|
|
properties:
|
|
fieldRef:
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
fieldPath:
|
|
type: string
|
|
required:
|
|
- fieldPath
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
mode:
|
|
format: int32
|
|
type: integer
|
|
path:
|
|
type: string
|
|
resourceFieldRef:
|
|
properties:
|
|
containerName:
|
|
type: string
|
|
divisor:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
required:
|
|
- path
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
emptyDir:
|
|
properties:
|
|
medium:
|
|
type: string
|
|
sizeLimit:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
ephemeral:
|
|
properties:
|
|
volumeClaimTemplate:
|
|
properties:
|
|
metadata:
|
|
type: object
|
|
spec:
|
|
properties:
|
|
accessModes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
dataSource:
|
|
properties:
|
|
apiGroup:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required:
|
|
- kind
|
|
- name
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
dataSourceRef:
|
|
properties:
|
|
apiGroup:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
required:
|
|
- kind
|
|
- name
|
|
type: object
|
|
resources:
|
|
properties:
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
type: object
|
|
type: object
|
|
selector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
storageClassName:
|
|
type: string
|
|
volumeAttributesClassName:
|
|
type: string
|
|
volumeMode:
|
|
type: string
|
|
volumeName:
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
type: object
|
|
fc:
|
|
properties:
|
|
fsType:
|
|
type: string
|
|
lun:
|
|
format: int32
|
|
type: integer
|
|
readOnly:
|
|
type: boolean
|
|
targetWWNs:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
wwids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
flexVolume:
|
|
properties:
|
|
driver:
|
|
type: string
|
|
fsType:
|
|
type: string
|
|
options:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
readOnly:
|
|
type: boolean
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
required:
|
|
- driver
|
|
type: object
|
|
flocker:
|
|
properties:
|
|
datasetName:
|
|
type: string
|
|
datasetUUID:
|
|
type: string
|
|
type: object
|
|
gcePersistentDisk:
|
|
properties:
|
|
fsType:
|
|
type: string
|
|
partition:
|
|
format: int32
|
|
type: integer
|
|
pdName:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
required:
|
|
- pdName
|
|
type: object
|
|
gitRepo:
|
|
properties:
|
|
directory:
|
|
type: string
|
|
repository:
|
|
type: string
|
|
revision:
|
|
type: string
|
|
required:
|
|
- repository
|
|
type: object
|
|
glusterfs:
|
|
properties:
|
|
endpoints:
|
|
type: string
|
|
path:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
required:
|
|
- endpoints
|
|
- path
|
|
type: object
|
|
hostPath:
|
|
properties:
|
|
path:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- path
|
|
type: object
|
|
image:
|
|
properties:
|
|
pullPolicy:
|
|
type: string
|
|
reference:
|
|
type: string
|
|
type: object
|
|
iscsi:
|
|
properties:
|
|
chapAuthDiscovery:
|
|
type: boolean
|
|
chapAuthSession:
|
|
type: boolean
|
|
fsType:
|
|
type: string
|
|
initiatorName:
|
|
type: string
|
|
iqn:
|
|
type: string
|
|
iscsiInterface:
|
|
default: default
|
|
type: string
|
|
lun:
|
|
format: int32
|
|
type: integer
|
|
portals:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
readOnly:
|
|
type: boolean
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
targetPortal:
|
|
type: string
|
|
required:
|
|
- iqn
|
|
- lun
|
|
- targetPortal
|
|
type: object
|
|
name:
|
|
type: string
|
|
nfs:
|
|
properties:
|
|
path:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
server:
|
|
type: string
|
|
required:
|
|
- path
|
|
- server
|
|
type: object
|
|
persistentVolumeClaim:
|
|
properties:
|
|
claimName:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
required:
|
|
- claimName
|
|
type: object
|
|
photonPersistentDisk:
|
|
properties:
|
|
fsType:
|
|
type: string
|
|
pdID:
|
|
type: string
|
|
required:
|
|
- pdID
|
|
type: object
|
|
portworxVolume:
|
|
properties:
|
|
fsType:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
volumeID:
|
|
type: string
|
|
required:
|
|
- volumeID
|
|
type: object
|
|
projected:
|
|
properties:
|
|
defaultMode:
|
|
format: int32
|
|
type: integer
|
|
sources:
|
|
items:
|
|
properties:
|
|
clusterTrustBundle:
|
|
properties:
|
|
labelSelector:
|
|
properties:
|
|
matchExpressions:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
operator:
|
|
type: string
|
|
values:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
name:
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
path:
|
|
type: string
|
|
signerName:
|
|
type: string
|
|
required:
|
|
- path
|
|
type: object
|
|
configMap:
|
|
properties:
|
|
items:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
mode:
|
|
format: int32
|
|
type: integer
|
|
path:
|
|
type: string
|
|
required:
|
|
- key
|
|
- path
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
downwardAPI:
|
|
properties:
|
|
items:
|
|
items:
|
|
properties:
|
|
fieldRef:
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
fieldPath:
|
|
type: string
|
|
required:
|
|
- fieldPath
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
mode:
|
|
format: int32
|
|
type: integer
|
|
path:
|
|
type: string
|
|
resourceFieldRef:
|
|
properties:
|
|
containerName:
|
|
type: string
|
|
divisor:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
resource:
|
|
type: string
|
|
required:
|
|
- resource
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
required:
|
|
- path
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
podCertificate:
|
|
properties:
|
|
certificateChainPath:
|
|
type: string
|
|
credentialBundlePath:
|
|
type: string
|
|
keyPath:
|
|
type: string
|
|
keyType:
|
|
type: string
|
|
maxExpirationSeconds:
|
|
format: int32
|
|
type: integer
|
|
signerName:
|
|
type: string
|
|
required:
|
|
- keyType
|
|
- signerName
|
|
type: object
|
|
secret:
|
|
properties:
|
|
items:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
mode:
|
|
format: int32
|
|
type: integer
|
|
path:
|
|
type: string
|
|
required:
|
|
- key
|
|
- path
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
name:
|
|
default: ""
|
|
type: string
|
|
optional:
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
serviceAccountToken:
|
|
properties:
|
|
audience:
|
|
type: string
|
|
expirationSeconds:
|
|
format: int64
|
|
type: integer
|
|
path:
|
|
type: string
|
|
required:
|
|
- path
|
|
type: object
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
quobyte:
|
|
properties:
|
|
group:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
registry:
|
|
type: string
|
|
tenant:
|
|
type: string
|
|
user:
|
|
type: string
|
|
volume:
|
|
type: string
|
|
required:
|
|
- registry
|
|
- volume
|
|
type: object
|
|
rbd:
|
|
properties:
|
|
fsType:
|
|
type: string
|
|
image:
|
|
type: string
|
|
keyring:
|
|
default: /etc/ceph/keyring
|
|
type: string
|
|
monitors:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
pool:
|
|
default: rbd
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
user:
|
|
default: admin
|
|
type: string
|
|
required:
|
|
- image
|
|
- monitors
|
|
type: object
|
|
scaleIO:
|
|
properties:
|
|
fsType:
|
|
default: xfs
|
|
type: string
|
|
gateway:
|
|
type: string
|
|
protectionDomain:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
sslEnabled:
|
|
type: boolean
|
|
storageMode:
|
|
default: ThinProvisioned
|
|
type: string
|
|
storagePool:
|
|
type: string
|
|
system:
|
|
type: string
|
|
volumeName:
|
|
type: string
|
|
required:
|
|
- gateway
|
|
- secretRef
|
|
- system
|
|
type: object
|
|
secret:
|
|
properties:
|
|
defaultMode:
|
|
format: int32
|
|
type: integer
|
|
items:
|
|
items:
|
|
properties:
|
|
key:
|
|
type: string
|
|
mode:
|
|
format: int32
|
|
type: integer
|
|
path:
|
|
type: string
|
|
required:
|
|
- key
|
|
- path
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
optional:
|
|
type: boolean
|
|
secretName:
|
|
type: string
|
|
type: object
|
|
storageos:
|
|
properties:
|
|
fsType:
|
|
type: string
|
|
readOnly:
|
|
type: boolean
|
|
secretRef:
|
|
properties:
|
|
name:
|
|
default: ""
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
volumeName:
|
|
type: string
|
|
volumeNamespace:
|
|
type: string
|
|
type: object
|
|
vsphereVolume:
|
|
properties:
|
|
fsType:
|
|
type: string
|
|
storagePolicyID:
|
|
type: string
|
|
storagePolicyName:
|
|
type: string
|
|
volumePath:
|
|
type: string
|
|
required:
|
|
- volumePath
|
|
type: object
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
type: object
|
|
type: object
|
|
type: object
|
|
type: object
|
|
disableDefaultAdminSecret:
|
|
description: DisableDefaultAdminSecret prevents operator from creating default admin-credentials secret
|
|
type: boolean
|
|
disableDefaultSecurityContext:
|
|
description: DisableDefaultSecurityContext prevents the operator from populating securityContext on deployments
|
|
enum:
|
|
- Pod
|
|
- Container
|
|
- All
|
|
type: string
|
|
external:
|
|
description: External enables you to configure external grafana instances that is not managed by the operator.
|
|
properties:
|
|
adminPassword:
|
|
description: AdminPassword key to talk to the external grafana instance.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
adminUser:
|
|
description: AdminUser key to talk to the external grafana instance.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
apiKey:
|
|
description: The API key to talk to the external grafana instance, you need to define ether apiKey or adminUser/adminPassword.
|
|
properties:
|
|
key:
|
|
description: The key of the secret to select from. Must be a valid secret key.
|
|
type: string
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
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
|
|
tls:
|
|
description: DEPRECATED, use top level `tls` instead.
|
|
properties:
|
|
certSecretRef:
|
|
description: Use a secret as a reference to give TLS Certificate information
|
|
properties:
|
|
name:
|
|
description: name is unique within a namespace to reference a secret resource.
|
|
type: string
|
|
namespace:
|
|
description: namespace defines the space within which the secret name must be unique.
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
insecureSkipVerify:
|
|
description: Disable the CA check of the server
|
|
type: boolean
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: insecureSkipVerify and certSecretRef cannot be set at the same time
|
|
rule: (has(self.insecureSkipVerify) && !(has(self.certSecretRef))) || (has(self.certSecretRef) && !(has(self.insecureSkipVerify)))
|
|
url:
|
|
description: URL of the external grafana instance you want to manage.
|
|
type: string
|
|
required:
|
|
- url
|
|
type: object
|
|
ingress:
|
|
description: Ingress sets how the ingress object should look like with your grafana instance.
|
|
properties:
|
|
metadata:
|
|
description: ObjectMeta contains only a [subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#objectmeta-v1-meta).
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
spec:
|
|
description: IngressSpec describes the Ingress the user wishes to exist.
|
|
properties:
|
|
defaultBackend:
|
|
description: |-
|
|
defaultBackend is the backend that should handle requests that don't
|
|
match any rule. If Rules are not specified, DefaultBackend must be specified.
|
|
If DefaultBackend is not set, the handling of requests that do not match any
|
|
of the rules will be up to the Ingress controller.
|
|
properties:
|
|
resource:
|
|
description: |-
|
|
resource is an ObjectRef to another Kubernetes resource in the namespace
|
|
of the Ingress object. If resource is specified, a service.Name and
|
|
service.Port must not be specified.
|
|
This is a mutually exclusive setting with "Service".
|
|
properties:
|
|
apiGroup:
|
|
description: |-
|
|
APIGroup is the group for the resource being referenced.
|
|
If APIGroup is not specified, the specified Kind must be in the core API group.
|
|
For any other third-party types, APIGroup is required.
|
|
type: string
|
|
kind:
|
|
description: Kind is the type of resource being referenced
|
|
type: string
|
|
name:
|
|
description: Name is the name of resource being referenced
|
|
type: string
|
|
required:
|
|
- kind
|
|
- name
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
service:
|
|
description: |-
|
|
service references a service as a backend.
|
|
This is a mutually exclusive setting with "Resource".
|
|
properties:
|
|
name:
|
|
description: |-
|
|
name is the referenced service. The service must exist in
|
|
the same namespace as the Ingress object.
|
|
type: string
|
|
port:
|
|
description: |-
|
|
port of the referenced service. A port name or port number
|
|
is required for a IngressServiceBackend.
|
|
properties:
|
|
name:
|
|
description: |-
|
|
name is the name of the port on the Service.
|
|
This is a mutually exclusive setting with "Number".
|
|
type: string
|
|
number:
|
|
description: |-
|
|
number is the numerical port number (e.g. 80) on the Service.
|
|
This is a mutually exclusive setting with "Name".
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
required:
|
|
- name
|
|
type: object
|
|
type: object
|
|
ingressClassName:
|
|
description: |-
|
|
ingressClassName is the name of an IngressClass cluster resource. Ingress
|
|
controller implementations use this field to know whether they should be
|
|
serving this Ingress resource, by a transitive connection
|
|
(controller -> IngressClass -> Ingress resource). Although the
|
|
`kubernetes.io/ingress.class` annotation (simple constant name) was never
|
|
formally defined, it was widely supported by Ingress controllers to create
|
|
a direct binding between Ingress controller and Ingress resources. Newly
|
|
created Ingress resources should prefer using the field. However, even
|
|
though the annotation is officially deprecated, for backwards compatibility
|
|
reasons, ingress controllers should still honor that annotation if present.
|
|
type: string
|
|
rules:
|
|
description: |-
|
|
rules is a list of host rules used to configure the Ingress. If unspecified,
|
|
or no rule matches, all traffic is sent to the default backend.
|
|
items:
|
|
description: |-
|
|
IngressRule represents the rules mapping the paths under a specified host to
|
|
the related backend services. Incoming requests are first evaluated for a host
|
|
match, then routed to the backend associated with the matching IngressRuleValue.
|
|
properties:
|
|
host:
|
|
description: "host is the fully qualified domain name of a network host, as defined by RFC 3986.\nNote the following deviations from the \"host\" part of the\nURI as defined in RFC 3986:\n1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n the IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future.\nIncoming requests are matched against the host before the\nIngressRuleValue. If the host is unspecified, the Ingress routes all\ntraffic based on the specified IngressRuleValue.\n\nhost can be \"precise\" which is a domain name without the terminating dot of\na network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\nprefixed with a single wildcard label (e.g. \"*.foo.com\").\nThe wildcard character '*' must appear by itself as the first DNS label and\nmatches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\nRequests will be matched against the Host field in the following way:\n1. If host is precise, the request matches this rule if the http host header is equal to Host.\n2. If host is a wildcard, then the request matches this rule if the http host header\nis to equal to the suffix (removing the first label) of the wildcard rule."
|
|
type: string
|
|
http:
|
|
description: |-
|
|
HTTPIngressRuleValue is a list of http selectors pointing to backends.
|
|
In the example: http://<host>/<path>?<searchpart> -> backend where
|
|
where parts of the url correspond to RFC 3986, this resource will be used
|
|
to match against everything after the last '/' and before the first '?'
|
|
or '#'.
|
|
properties:
|
|
paths:
|
|
description: paths is a collection of paths that map requests to backends.
|
|
items:
|
|
description: |-
|
|
HTTPIngressPath associates a path with a backend. Incoming urls matching the
|
|
path are forwarded to the backend.
|
|
properties:
|
|
backend:
|
|
description: |-
|
|
backend defines the referenced service endpoint to which the traffic
|
|
will be forwarded to.
|
|
properties:
|
|
resource:
|
|
description: |-
|
|
resource is an ObjectRef to another Kubernetes resource in the namespace
|
|
of the Ingress object. If resource is specified, a service.Name and
|
|
service.Port must not be specified.
|
|
This is a mutually exclusive setting with "Service".
|
|
properties:
|
|
apiGroup:
|
|
description: |-
|
|
APIGroup is the group for the resource being referenced.
|
|
If APIGroup is not specified, the specified Kind must be in the core API group.
|
|
For any other third-party types, APIGroup is required.
|
|
type: string
|
|
kind:
|
|
description: Kind is the type of resource being referenced
|
|
type: string
|
|
name:
|
|
description: Name is the name of resource being referenced
|
|
type: string
|
|
required:
|
|
- kind
|
|
- name
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
service:
|
|
description: |-
|
|
service references a service as a backend.
|
|
This is a mutually exclusive setting with "Resource".
|
|
properties:
|
|
name:
|
|
description: |-
|
|
name is the referenced service. The service must exist in
|
|
the same namespace as the Ingress object.
|
|
type: string
|
|
port:
|
|
description: |-
|
|
port of the referenced service. A port name or port number
|
|
is required for a IngressServiceBackend.
|
|
properties:
|
|
name:
|
|
description: |-
|
|
name is the name of the port on the Service.
|
|
This is a mutually exclusive setting with "Number".
|
|
type: string
|
|
number:
|
|
description: |-
|
|
number is the numerical port number (e.g. 80) on the Service.
|
|
This is a mutually exclusive setting with "Name".
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
required:
|
|
- name
|
|
type: object
|
|
type: object
|
|
path:
|
|
description: |-
|
|
path is matched against the path of an incoming request. Currently it can
|
|
contain characters disallowed from the conventional "path" part of a URL
|
|
as defined by RFC 3986. Paths must begin with a '/' and must be present
|
|
when using PathType with value "Exact" or "Prefix".
|
|
type: string
|
|
pathType:
|
|
description: |-
|
|
pathType determines the interpretation of the path matching. PathType can
|
|
be one of the following values:
|
|
* Exact: Matches the URL path exactly.
|
|
* Prefix: Matches based on a URL path prefix split by '/'. Matching is
|
|
done on a path element by element basis. A path element refers is the
|
|
list of labels in the path split by the '/' separator. A request is a
|
|
match for path p if every p is an element-wise prefix of p of the
|
|
request path. Note that if the last element of the path is a substring
|
|
of the last element in request path, it is not a match (e.g. /foo/bar
|
|
matches /foo/bar/baz, but does not match /foo/barbaz).
|
|
* ImplementationSpecific: Interpretation of the Path matching is up to
|
|
the IngressClass. Implementations can treat this as a separate PathType
|
|
or treat it identically to Prefix or Exact path types.
|
|
Implementations are required to support all path types.
|
|
type: string
|
|
required:
|
|
- backend
|
|
- pathType
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- paths
|
|
type: object
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
tls:
|
|
description: |-
|
|
tls represents the TLS configuration. Currently the Ingress only supports a
|
|
single TLS port, 443. If multiple members of this list specify different hosts,
|
|
they will be multiplexed on the same port according to the hostname specified
|
|
through the SNI TLS extension, if the ingress controller fulfilling the
|
|
ingress supports SNI.
|
|
items:
|
|
description: IngressTLS describes the transport layer security associated with an ingress.
|
|
properties:
|
|
hosts:
|
|
description: |-
|
|
hosts is a list of hosts included in the TLS certificate. The values in
|
|
this list must match the name/s used in the tlsSecret. Defaults to the
|
|
wildcard host setting for the loadbalancer controller fulfilling this
|
|
Ingress, if left unspecified.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
secretName:
|
|
description: |-
|
|
secretName is the name of the secret used to terminate TLS traffic on
|
|
port 443. Field is left optional to allow TLS routing based on SNI
|
|
hostname alone. If the SNI host in a listener conflicts with the "Host"
|
|
header field used by an IngressRule, the SNI host is used for termination
|
|
and value of the "Host" header is used for routing.
|
|
type: string
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
type: object
|
|
jsonnet:
|
|
properties:
|
|
libraryLabelSelector:
|
|
description: |-
|
|
A label selector is a label query over a set of resources. The result of matchLabels and
|
|
matchExpressions are ANDed. An empty label selector matches all objects. A null
|
|
label selector matches no objects.
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: object
|
|
persistentVolumeClaim:
|
|
description: PersistentVolumeClaim creates a PVC if you need to attach one to your grafana instance.
|
|
properties:
|
|
metadata:
|
|
description: ObjectMeta contains only a [subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#objectmeta-v1-meta).
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
spec:
|
|
properties:
|
|
accessModes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
dataSource:
|
|
description: |-
|
|
TypedLocalObjectReference contains enough information to let you locate the
|
|
typed referenced object inside the same namespace.
|
|
properties:
|
|
apiGroup:
|
|
description: |-
|
|
APIGroup is the group for the resource being referenced.
|
|
If APIGroup is not specified, the specified Kind must be in the core API group.
|
|
For any other third-party types, APIGroup is required.
|
|
type: string
|
|
kind:
|
|
description: Kind is the type of resource being referenced
|
|
type: string
|
|
name:
|
|
description: Name is the name of resource being referenced
|
|
type: string
|
|
required:
|
|
- kind
|
|
- name
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
dataSourceRef:
|
|
description: |-
|
|
TypedLocalObjectReference contains enough information to let you locate the
|
|
typed referenced object inside the same namespace.
|
|
properties:
|
|
apiGroup:
|
|
description: |-
|
|
APIGroup is the group for the resource being referenced.
|
|
If APIGroup is not specified, the specified Kind must be in the core API group.
|
|
For any other third-party types, APIGroup is required.
|
|
type: string
|
|
kind:
|
|
description: Kind is the type of resource being referenced
|
|
type: string
|
|
name:
|
|
description: Name is the name of resource being referenced
|
|
type: string
|
|
required:
|
|
- kind
|
|
- name
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
resources:
|
|
description: ResourceRequirements describes the compute resource requirements.
|
|
properties:
|
|
claims:
|
|
description: |-
|
|
Claims lists the names of resources, defined in spec.resourceClaims,
|
|
that are used by this container.
|
|
|
|
This field depends on the
|
|
DynamicResourceAllocation feature gate.
|
|
|
|
This field is immutable. It can only be set for containers.
|
|
items:
|
|
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
|
|
properties:
|
|
name:
|
|
description: |-
|
|
Name must match the name of one entry in pod.spec.resourceClaims of
|
|
the Pod where this field is used. It makes that resource available
|
|
inside a container.
|
|
type: string
|
|
request:
|
|
description: |-
|
|
Request is the name chosen for a request in the referenced claim.
|
|
If empty, everything from the claim is made available, otherwise
|
|
only the result of this request.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
limits:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: |-
|
|
Limits describes the maximum amount of compute resources allowed.
|
|
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
|
type: object
|
|
requests:
|
|
additionalProperties:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
description: |-
|
|
Requests describes the minimum amount of compute resources required.
|
|
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
|
|
otherwise to an implementation-defined value. Requests cannot exceed Limits.
|
|
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
|
type: object
|
|
type: object
|
|
selector:
|
|
description: |-
|
|
A label selector is a label query over a set of resources. The result of matchLabels and
|
|
matchExpressions are ANDed. An empty label selector matches all objects. A null
|
|
label selector matches no objects.
|
|
properties:
|
|
matchExpressions:
|
|
description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
|
|
items:
|
|
description: |-
|
|
A label selector requirement is a selector that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: key is the label key that the selector applies to.
|
|
type: string
|
|
operator:
|
|
description: |-
|
|
operator represents a key's relationship to a set of values.
|
|
Valid operators are In, NotIn, Exists and DoesNotExist.
|
|
type: string
|
|
values:
|
|
description: |-
|
|
values is an array of string values. If the operator is In or NotIn,
|
|
the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. This array is replaced during a strategic
|
|
merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
matchLabels:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
|
map is equivalent to an element of matchExpressions, whose key field is "key", the
|
|
operator is "In", and the values array contains only "value". The requirements are ANDed.
|
|
type: object
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
storageClassName:
|
|
type: string
|
|
volumeMode:
|
|
description: PersistentVolumeMode describes how a volume is intended to be consumed, either Block or Filesystem.
|
|
type: string
|
|
volumeName:
|
|
description: VolumeName is the binding reference to the PersistentVolume backing this claim.
|
|
type: string
|
|
type: object
|
|
type: object
|
|
preferences:
|
|
description: Preferences holds the Grafana Preferences settings
|
|
properties:
|
|
homeDashboardUid:
|
|
type: string
|
|
type: object
|
|
route:
|
|
description: Route sets how the ingress object should look like with your grafana instance, this only works in Openshift.
|
|
properties:
|
|
metadata:
|
|
description: ObjectMeta contains only a [subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#objectmeta-v1-meta).
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
spec:
|
|
properties:
|
|
alternateBackends:
|
|
items:
|
|
description: |-
|
|
RouteTargetReference specifies the target that resolve into endpoints. Only the 'Service'
|
|
kind is allowed. Use 'weight' field to emphasize one over others.
|
|
properties:
|
|
kind:
|
|
default: Service
|
|
description: The kind of target that the route is referring to. Currently, only 'Service' is allowed
|
|
enum:
|
|
- Service
|
|
- ""
|
|
type: string
|
|
name:
|
|
description: name of the service/target that is being referred to. e.g. name of the service
|
|
minLength: 1
|
|
type: string
|
|
weight:
|
|
default: 100
|
|
description: |-
|
|
weight as an integer between 0 and 256, default 100, that specifies the target's relative weight
|
|
against other target reference objects. 0 suppresses requests to this backend.
|
|
format: int32
|
|
maximum: 256
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- kind
|
|
- name
|
|
type: object
|
|
type: array
|
|
host:
|
|
type: string
|
|
path:
|
|
type: string
|
|
port:
|
|
description: RoutePort defines a port mapping from a router to an endpoint in the service endpoints.
|
|
properties:
|
|
targetPort:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: |-
|
|
The target port on pods selected by the service this route points to.
|
|
If this is a string, it will be looked up as a named port in the target
|
|
endpoints port list. Required
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- targetPort
|
|
type: object
|
|
subdomain:
|
|
type: string
|
|
tls:
|
|
description: TLSConfig defines config used to secure a route and provide termination
|
|
properties:
|
|
caCertificate:
|
|
description: caCertificate provides the cert authority certificate contents
|
|
type: string
|
|
certificate:
|
|
description: |-
|
|
certificate provides certificate contents. This should be a single serving certificate, not a certificate
|
|
chain. Do not include a CA certificate.
|
|
type: string
|
|
destinationCACertificate:
|
|
description: |-
|
|
destinationCACertificate provides the contents of the ca certificate of the final destination. When using reencrypt
|
|
termination this file should be provided in order to have routers use it for health checks on the secure connection.
|
|
If this field is not specified, the router may provide its own destination CA and perform hostname validation using
|
|
the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically
|
|
verify.
|
|
type: string
|
|
externalCertificate:
|
|
description: |-
|
|
externalCertificate provides certificate contents as a secret reference.
|
|
This should be a single serving certificate, not a certificate
|
|
chain. Do not include a CA certificate. The secret referenced should
|
|
be present in the same namespace as that of the Route.
|
|
Forbidden when `certificate` is set.
|
|
The router service account needs to be granted with read-only access to this secret,
|
|
please refer to openshift docs for additional details.
|
|
properties:
|
|
name:
|
|
description: |-
|
|
name of the referent.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
insecureEdgeTerminationPolicy:
|
|
description: |-
|
|
insecureEdgeTerminationPolicy indicates the desired behavior for insecure connections to a route. While
|
|
each router may make its own decisions on which ports to expose, this is normally port 80.
|
|
|
|
If a route does not specify insecureEdgeTerminationPolicy, then the default behavior is "None".
|
|
|
|
* Allow - traffic is sent to the server on the insecure port (edge/reencrypt terminations only).
|
|
|
|
* None - no traffic is allowed on the insecure port (default).
|
|
|
|
* Redirect - clients are redirected to the secure port.
|
|
enum:
|
|
- Allow
|
|
- None
|
|
- Redirect
|
|
- ""
|
|
type: string
|
|
key:
|
|
description: key provides key file contents
|
|
type: string
|
|
termination:
|
|
description: |-
|
|
termination indicates termination type.
|
|
|
|
* edge - TLS termination is done by the router and http is used to communicate with the backend (default)
|
|
* passthrough - Traffic is sent straight to the destination without the router providing TLS termination
|
|
* reencrypt - TLS termination is done by the router and https is used to communicate with the backend
|
|
|
|
Note: passthrough termination is incompatible with httpHeader actions
|
|
enum:
|
|
- edge
|
|
- reencrypt
|
|
- passthrough
|
|
type: string
|
|
required:
|
|
- termination
|
|
type: object
|
|
x-kubernetes-validations:
|
|
- message: 'cannot have both spec.tls.termination: passthrough and spec.tls.insecureEdgeTerminationPolicy: Allow'
|
|
rule: 'has(self.termination) && has(self.insecureEdgeTerminationPolicy) ? !((self.termination==''passthrough'') && (self.insecureEdgeTerminationPolicy==''Allow'')) : true'
|
|
to:
|
|
description: |-
|
|
RouteTargetReference specifies the target that resolve into endpoints. Only the 'Service'
|
|
kind is allowed. Use 'weight' field to emphasize one over others.
|
|
properties:
|
|
kind:
|
|
default: Service
|
|
description: The kind of target that the route is referring to. Currently, only 'Service' is allowed
|
|
enum:
|
|
- Service
|
|
- ""
|
|
type: string
|
|
name:
|
|
description: name of the service/target that is being referred to. e.g. name of the service
|
|
minLength: 1
|
|
type: string
|
|
weight:
|
|
default: 100
|
|
description: |-
|
|
weight as an integer between 0 and 256, default 100, that specifies the target's relative weight
|
|
against other target reference objects. 0 suppresses requests to this backend.
|
|
format: int32
|
|
maximum: 256
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- kind
|
|
- name
|
|
type: object
|
|
wildcardPolicy:
|
|
description: WildcardPolicyType indicates the type of wildcard support needed by routes.
|
|
type: string
|
|
type: object
|
|
type: object
|
|
service:
|
|
description: Service sets how the service object should look like with your grafana instance, contains a number of defaults.
|
|
properties:
|
|
metadata:
|
|
description: ObjectMeta contains only a [subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#objectmeta-v1-meta).
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
spec:
|
|
description: ServiceSpec describes the attributes that a user creates on a service.
|
|
properties:
|
|
allocateLoadBalancerNodePorts:
|
|
description: |-
|
|
allocateLoadBalancerNodePorts defines if NodePorts will be automatically
|
|
allocated for services with type LoadBalancer. Default is "true". It
|
|
may be set to "false" if the cluster load-balancer does not rely on
|
|
NodePorts. If the caller requests specific NodePorts (by specifying a
|
|
value), those requests will be respected, regardless of this field.
|
|
This field may only be set for services with type LoadBalancer and will
|
|
be cleared if the type is changed to any other type.
|
|
type: boolean
|
|
clusterIP:
|
|
description: |-
|
|
clusterIP is the IP address of the service and is usually assigned
|
|
randomly. If an address is specified manually, is in-range (as per
|
|
system configuration), and is not in use, it will be allocated to the
|
|
service; otherwise creation of the service will fail. This field may not
|
|
be changed through updates unless the type field is also being changed
|
|
to ExternalName (which requires this field to be blank) or the type
|
|
field is being changed from ExternalName (in which case this field may
|
|
optionally be specified, as describe above). Valid values are "None",
|
|
empty string (""), or a valid IP address. Setting this to "None" makes a
|
|
"headless service" (no virtual IP), which is useful when direct endpoint
|
|
connections are preferred and proxying is not required. Only applies to
|
|
types ClusterIP, NodePort, and LoadBalancer. If this field is specified
|
|
when creating a Service of type ExternalName, creation will fail. This
|
|
field will be wiped when updating a Service to type ExternalName.
|
|
More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
|
|
type: string
|
|
clusterIPs:
|
|
description: |-
|
|
ClusterIPs is a list of IP addresses assigned to this service, and are
|
|
usually assigned randomly. If an address is specified manually, is
|
|
in-range (as per system configuration), and is not in use, it will be
|
|
allocated to the service; otherwise creation of the service will fail.
|
|
This field may not be changed through updates unless the type field is
|
|
also being changed to ExternalName (which requires this field to be
|
|
empty) or the type field is being changed from ExternalName (in which
|
|
case this field may optionally be specified, as describe above). Valid
|
|
values are "None", empty string (""), or a valid IP address. Setting
|
|
this to "None" makes a "headless service" (no virtual IP), which is
|
|
useful when direct endpoint connections are preferred and proxying is
|
|
not required. Only applies to types ClusterIP, NodePort, and
|
|
LoadBalancer. If this field is specified when creating a Service of type
|
|
ExternalName, creation will fail. This field will be wiped when updating
|
|
a Service to type ExternalName. If this field is not specified, it will
|
|
be initialized from the clusterIP field. If this field is specified,
|
|
clients must ensure that clusterIPs[0] and clusterIP have the same
|
|
value.
|
|
|
|
This field may hold a maximum of two entries (dual-stack IPs, in either order).
|
|
These IPs must correspond to the values of the ipFamilies field. Both
|
|
clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.
|
|
More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
externalIPs:
|
|
description: |-
|
|
externalIPs is a list of IP addresses for which nodes in the cluster
|
|
will also accept traffic for this service. These IPs are not managed by
|
|
Kubernetes. The user is responsible for ensuring that traffic arrives
|
|
at a node with this IP. A common example is external load-balancers
|
|
that are not part of the Kubernetes system.
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
externalName:
|
|
description: |-
|
|
externalName is the external reference that discovery mechanisms will
|
|
return as an alias for this service (e.g. a DNS CNAME record). No
|
|
proxying will be involved. Must be a lowercase RFC-1123 hostname
|
|
(https://tools.ietf.org/html/rfc1123) and requires `type` to be "ExternalName".
|
|
type: string
|
|
externalTrafficPolicy:
|
|
description: |-
|
|
externalTrafficPolicy describes how nodes distribute service traffic they
|
|
receive on one of the Service's "externally-facing" addresses (NodePorts,
|
|
ExternalIPs, and LoadBalancer IPs). If set to "Local", the proxy will configure
|
|
the service in a way that assumes that external load balancers will take care
|
|
of balancing the service traffic between nodes, and so each node will deliver
|
|
traffic only to the node-local endpoints of the service, without masquerading
|
|
the client source IP. (Traffic mistakenly sent to a node with no endpoints will
|
|
be dropped.) The default value, "Cluster", uses the standard behavior of
|
|
routing to all endpoints evenly (possibly modified by topology and other
|
|
features). Note that traffic sent to an External IP or LoadBalancer IP from
|
|
within the cluster will always get "Cluster" semantics, but clients sending to
|
|
a NodePort from within the cluster may need to take traffic policy into account
|
|
when picking a node.
|
|
type: string
|
|
healthCheckNodePort:
|
|
description: |-
|
|
healthCheckNodePort specifies the healthcheck nodePort for the service.
|
|
This only applies when type is set to LoadBalancer and
|
|
externalTrafficPolicy is set to Local. If a value is specified, is
|
|
in-range, and is not in use, it will be used. If not specified, a value
|
|
will be automatically allocated. External systems (e.g. load-balancers)
|
|
can use this port to determine if a given node holds endpoints for this
|
|
service or not. If this field is specified when creating a Service
|
|
which does not need it, creation will fail. This field will be wiped
|
|
when updating a Service to no longer need it (e.g. changing type).
|
|
This field cannot be updated once set.
|
|
format: int32
|
|
type: integer
|
|
internalTrafficPolicy:
|
|
description: |-
|
|
InternalTrafficPolicy describes how nodes distribute service traffic they
|
|
receive on the ClusterIP. If set to "Local", the proxy will assume that pods
|
|
only want to talk to endpoints of the service on the same node as the pod,
|
|
dropping the traffic if there are no local endpoints. The default value,
|
|
"Cluster", uses the standard behavior of routing to all endpoints evenly
|
|
(possibly modified by topology and other features).
|
|
type: string
|
|
ipFamilies:
|
|
description: |-
|
|
IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this
|
|
service. This field is usually assigned automatically based on cluster
|
|
configuration and the ipFamilyPolicy field. If this field is specified
|
|
manually, the requested family is available in the cluster,
|
|
and ipFamilyPolicy allows it, it will be used; otherwise creation of
|
|
the service will fail. This field is conditionally mutable: it allows
|
|
for adding or removing a secondary IP family, but it does not allow
|
|
changing the primary IP family of the Service. Valid values are "IPv4"
|
|
and "IPv6". This field only applies to Services of types ClusterIP,
|
|
NodePort, and LoadBalancer, and does apply to "headless" services.
|
|
This field will be wiped when updating a Service to type ExternalName.
|
|
|
|
This field may hold a maximum of two entries (dual-stack families, in
|
|
either order). These families must correspond to the values of the
|
|
clusterIPs field, if specified. Both clusterIPs and ipFamilies are
|
|
governed by the ipFamilyPolicy field.
|
|
items:
|
|
description: |-
|
|
IPFamily represents the IP Family (IPv4 or IPv6). This type is used
|
|
to express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
ipFamilyPolicy:
|
|
description: |-
|
|
IPFamilyPolicy represents the dual-stack-ness requested or required by
|
|
this Service. If there is no value provided, then this field will be set
|
|
to SingleStack. Services can be "SingleStack" (a single IP family),
|
|
"PreferDualStack" (two IP families on dual-stack configured clusters or
|
|
a single IP family on single-stack clusters), or "RequireDualStack"
|
|
(two IP families on dual-stack configured clusters, otherwise fail). The
|
|
ipFamilies and clusterIPs fields depend on the value of this field. This
|
|
field will be wiped when updating a service to type ExternalName.
|
|
type: string
|
|
loadBalancerClass:
|
|
description: |-
|
|
loadBalancerClass is the class of the load balancer implementation this Service belongs to.
|
|
If specified, the value of this field must be a label-style identifier, with an optional prefix,
|
|
e.g. "internal-vip" or "example.com/internal-vip". Unprefixed names are reserved for end-users.
|
|
This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load
|
|
balancer implementation is used, today this is typically done through the cloud provider integration,
|
|
but should apply for any default implementation. If set, it is assumed that a load balancer
|
|
implementation is watching for Services with a matching class. Any default load balancer
|
|
implementation (e.g. cloud providers) should ignore Services that set this field.
|
|
This field can only be set when creating or updating a Service to type 'LoadBalancer'.
|
|
Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.
|
|
type: string
|
|
loadBalancerIP:
|
|
description: |-
|
|
Only applies to Service Type: LoadBalancer.
|
|
This feature depends on whether the underlying cloud-provider supports specifying
|
|
the loadBalancerIP when a load balancer is created.
|
|
This field will be ignored if the cloud-provider does not support the feature.
|
|
Deprecated: This field was under-specified and its meaning varies across implementations.
|
|
Using it is non-portable and it may not support dual-stack.
|
|
Users are encouraged to use implementation-specific annotations when available.
|
|
type: string
|
|
loadBalancerSourceRanges:
|
|
description: |-
|
|
If specified and supported by the platform, this will restrict traffic through the cloud-provider
|
|
load-balancer will be restricted to the specified client IPs. This field will be ignored if the
|
|
cloud-provider does not support the feature."
|
|
More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
ports:
|
|
description: |-
|
|
The list of ports that are exposed by this service.
|
|
More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
|
|
items:
|
|
description: ServicePort contains information on service's port.
|
|
properties:
|
|
appProtocol:
|
|
description: |-
|
|
The application protocol for this port.
|
|
This is used as a hint for implementations to offer richer behavior for protocols that they understand.
|
|
This field follows standard Kubernetes label syntax.
|
|
Valid values are either:
|
|
|
|
* Un-prefixed protocol names - reserved for IANA standard service names (as per
|
|
RFC-6335 and https://www.iana.org/assignments/service-names).
|
|
|
|
* Kubernetes-defined prefixed names:
|
|
* 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-
|
|
* 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455
|
|
* 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455
|
|
|
|
* Other protocols should use implementation-defined prefixed names such as
|
|
mycompany.com/my-custom-protocol.
|
|
type: string
|
|
name:
|
|
description: |-
|
|
The name of this port within the service. This must be a DNS_LABEL.
|
|
All ports within a ServiceSpec must have unique names. When considering
|
|
the endpoints for a Service, this must match the 'name' field in the
|
|
EndpointPort.
|
|
Optional if only one ServicePort is defined on this service.
|
|
type: string
|
|
nodePort:
|
|
description: |-
|
|
The port on each node on which this service is exposed when type is
|
|
NodePort or LoadBalancer. Usually assigned by the system. If a value is
|
|
specified, in-range, and not in use it will be used, otherwise the
|
|
operation will fail. If not specified, a port will be allocated if this
|
|
Service requires one. If this field is specified when creating a
|
|
Service which does not need it, creation will fail. This field will be
|
|
wiped when updating a Service to no longer need it (e.g. changing type
|
|
from NodePort to ClusterIP).
|
|
More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
|
|
format: int32
|
|
type: integer
|
|
port:
|
|
description: The port that will be exposed by this service.
|
|
format: int32
|
|
type: integer
|
|
protocol:
|
|
default: TCP
|
|
description: |-
|
|
The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
|
|
Default is TCP.
|
|
type: string
|
|
targetPort:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: |-
|
|
Number or name of the port to access on the pods targeted by the service.
|
|
Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
|
|
If this is a string, it will be looked up as a named port in the
|
|
target Pod's container ports. If this is not specified, the value
|
|
of the 'port' field is used (an identity map).
|
|
This field is ignored for services with clusterIP=None, and should be
|
|
omitted or set equal to the 'port' field.
|
|
More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
|
|
x-kubernetes-int-or-string: true
|
|
required:
|
|
- port
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- port
|
|
- protocol
|
|
x-kubernetes-list-type: map
|
|
publishNotReadyAddresses:
|
|
description: |-
|
|
publishNotReadyAddresses indicates that any agent which deals with endpoints for this
|
|
Service should disregard any indications of ready/not-ready.
|
|
The primary use case for setting this field is for a StatefulSet's Headless Service to
|
|
propagate SRV DNS records for its Pods for the purpose of peer discovery.
|
|
The Kubernetes controllers that generate Endpoints and EndpointSlice resources for
|
|
Services interpret this to mean that all endpoints are considered "ready" even if the
|
|
Pods themselves are not. Agents which consume only Kubernetes generated endpoints
|
|
through the Endpoints or EndpointSlice resources can safely assume this behavior.
|
|
type: boolean
|
|
selector:
|
|
additionalProperties:
|
|
type: string
|
|
description: |-
|
|
Route service traffic to pods with label keys and values matching this
|
|
selector. If empty or not present, the service is assumed to have an
|
|
external process managing its endpoints, which Kubernetes will not
|
|
modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
|
|
Ignored if type is ExternalName.
|
|
More info: https://kubernetes.io/docs/concepts/services-networking/service/
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
sessionAffinity:
|
|
description: |-
|
|
Supports "ClientIP" and "None". Used to maintain session affinity.
|
|
Enable client IP based session affinity.
|
|
Must be ClientIP or None.
|
|
Defaults to None.
|
|
More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
|
|
type: string
|
|
sessionAffinityConfig:
|
|
description: sessionAffinityConfig contains the configurations of session affinity.
|
|
properties:
|
|
clientIP:
|
|
description: clientIP contains the configurations of Client IP based session affinity.
|
|
properties:
|
|
timeoutSeconds:
|
|
description: |-
|
|
timeoutSeconds specifies the seconds of ClientIP type session sticky time.
|
|
The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP".
|
|
Default value is 10800(for 3 hours).
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
type: object
|
|
trafficDistribution:
|
|
description: |-
|
|
TrafficDistribution offers a way to express preferences for how traffic
|
|
is distributed to Service endpoints. Implementations can use this field
|
|
as a hint, but are not required to guarantee strict adherence. If the
|
|
field is not set, the implementation will apply its default routing
|
|
strategy. If set to "PreferClose", implementations should prioritize
|
|
endpoints that are in the same zone.
|
|
type: string
|
|
type:
|
|
description: |-
|
|
type determines how the Service is exposed. Defaults to ClusterIP. Valid
|
|
options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
|
|
"ClusterIP" allocates a cluster-internal IP address for load-balancing
|
|
to endpoints. Endpoints are determined by the selector or if that is not
|
|
specified, by manual construction of an Endpoints object or
|
|
EndpointSlice objects. If clusterIP is "None", no virtual IP is
|
|
allocated and the endpoints are published as a set of endpoints rather
|
|
than a virtual IP.
|
|
"NodePort" builds on ClusterIP and allocates a port on every node which
|
|
routes to the same endpoints as the clusterIP.
|
|
"LoadBalancer" builds on NodePort and creates an external load-balancer
|
|
(if supported in the current cloud) which routes to the same endpoints
|
|
as the clusterIP.
|
|
"ExternalName" aliases this service to the specified externalName.
|
|
Several other fields do not apply to ExternalName services.
|
|
More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
|
|
type: string
|
|
type: object
|
|
type: object
|
|
serviceAccount:
|
|
description: ServiceAccount sets how the ServiceAccount object should look like with your grafana instance, contains a number of defaults.
|
|
properties:
|
|
automountServiceAccountToken:
|
|
type: boolean
|
|
imagePullSecrets:
|
|
items:
|
|
description: |-
|
|
LocalObjectReference contains enough information to let you locate the
|
|
referenced object inside the same namespace.
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: array
|
|
metadata:
|
|
description: ObjectMeta contains only a [subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#objectmeta-v1-meta).
|
|
properties:
|
|
annotations:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
secrets:
|
|
items:
|
|
description: ObjectReference contains enough information to let you inspect or modify the referred object.
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
description: |-
|
|
If referring to a piece of an object instead of an entire object, this string
|
|
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
|
|
For example, if the object reference is to a container within a pod, this would take on a value like:
|
|
"spec.containers{name}" (where "name" refers to the name of the container that triggered
|
|
the event) or if no container name is specified "spec.containers[2]" (container with
|
|
index 2 in this pod). This syntax is chosen only to have some well-defined way of
|
|
referencing a part of an object.
|
|
type: string
|
|
kind:
|
|
description: |-
|
|
Kind of the referent.
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
|
type: string
|
|
name:
|
|
description: |-
|
|
Name of the referent.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
namespace:
|
|
description: |-
|
|
Namespace of the referent.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
|
|
type: string
|
|
resourceVersion:
|
|
description: |-
|
|
Specific resourceVersion to which this reference is made, if any.
|
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
|
|
type: string
|
|
uid:
|
|
description: |-
|
|
UID of the referent.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: array
|
|
type: object
|
|
suspend:
|
|
description: Suspend pauses reconciliation of owned resources like deployments, Services, Etc. upon changes
|
|
type: boolean
|
|
version:
|
|
description: Version specifies the version of Grafana to use for this deployment. It follows the same format as the docker.io/grafana/grafana tags
|
|
type: string
|
|
type: object
|
|
status:
|
|
description: GrafanaStatus defines the observed state of Grafana
|
|
properties:
|
|
adminUrl:
|
|
type: string
|
|
alertRuleGroups:
|
|
items:
|
|
type: string
|
|
type: array
|
|
conditions:
|
|
items:
|
|
description: Condition contains details for one aspect of the current state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
contactPoints:
|
|
items:
|
|
type: string
|
|
type: array
|
|
dashboards:
|
|
items:
|
|
type: string
|
|
type: array
|
|
datasources:
|
|
items:
|
|
type: string
|
|
type: array
|
|
folders:
|
|
items:
|
|
type: string
|
|
type: array
|
|
lastMessage:
|
|
type: string
|
|
libraryPanels:
|
|
items:
|
|
type: string
|
|
type: array
|
|
muteTimings:
|
|
items:
|
|
type: string
|
|
type: array
|
|
notificationTemplates:
|
|
items:
|
|
type: string
|
|
type: array
|
|
serviceaccounts:
|
|
items:
|
|
type: string
|
|
type: array
|
|
stage:
|
|
type: string
|
|
stageStatus:
|
|
type: string
|
|
version:
|
|
type: string
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/charts/crds/crds/grafana.integreatly.org_grafanaserviceaccounts.yaml
|
|
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.17.3
|
|
name: grafanaserviceaccounts.grafana.integreatly.org
|
|
spec:
|
|
group: grafana.integreatly.org
|
|
names:
|
|
categories:
|
|
- grafana-operator
|
|
kind: GrafanaServiceAccount
|
|
listKind: GrafanaServiceAccountList
|
|
plural: grafanaserviceaccounts
|
|
singular: grafanaserviceaccount
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- format: date-time
|
|
jsonPath: .status.lastResync
|
|
name: Last resync
|
|
type: date
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: GrafanaServiceAccount is the Schema for the grafanaserviceaccounts
|
|
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: GrafanaServiceAccountSpec defines the desired state of a
|
|
GrafanaServiceAccount.
|
|
properties:
|
|
instanceName:
|
|
description: Name of the Grafana instance to create the service account
|
|
for
|
|
minLength: 1
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: spec.instanceName is immutable
|
|
rule: self == oldSelf
|
|
isDisabled:
|
|
default: false
|
|
description: Whether the service account is disabled
|
|
type: boolean
|
|
name:
|
|
description: Name of the service account in Grafana
|
|
minLength: 1
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: spec.name is immutable
|
|
rule: self == oldSelf
|
|
resyncPeriod:
|
|
default: 10m0s
|
|
description: How often the resource is synced, defaults to 10m0s if
|
|
not set
|
|
pattern: ^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
|
|
type: string
|
|
x-kubernetes-validations:
|
|
- message: spec.resyncPeriod must be greater than 0
|
|
rule: duration(self) > duration('0s')
|
|
role:
|
|
description: Role of the service account (Viewer, Editor, Admin)
|
|
enum:
|
|
- Viewer
|
|
- Editor
|
|
- Admin
|
|
type: string
|
|
suspend:
|
|
default: false
|
|
description: Suspend pauses reconciliation of the service account
|
|
type: boolean
|
|
tokens:
|
|
description: Tokens to create for the service account
|
|
items:
|
|
description: GrafanaServiceAccountTokenSpec defines a token for
|
|
a service account
|
|
properties:
|
|
expires:
|
|
description: Expiration date of the token. If not set, the token
|
|
never expires
|
|
format: date-time
|
|
type: string
|
|
name:
|
|
description: Name of the token
|
|
minLength: 1
|
|
type: string
|
|
secretName:
|
|
description: Name of the secret to store the token. If not set,
|
|
a name will be generated
|
|
minLength: 1
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-map-keys:
|
|
- name
|
|
x-kubernetes-list-type: map
|
|
required:
|
|
- instanceName
|
|
- name
|
|
- role
|
|
type: object
|
|
status:
|
|
description: GrafanaServiceAccountStatus defines the observed state of
|
|
a GrafanaServiceAccount
|
|
properties:
|
|
account:
|
|
description: Info contains the Grafana service account information
|
|
properties:
|
|
id:
|
|
description: ID of the service account in Grafana
|
|
format: int64
|
|
type: integer
|
|
isDisabled:
|
|
description: IsDisabled indicates if the service account is disabled
|
|
type: boolean
|
|
login:
|
|
type: string
|
|
name:
|
|
type: string
|
|
role:
|
|
description: Role is the Grafana role for the service account
|
|
(Viewer, Editor, Admin)
|
|
type: string
|
|
tokens:
|
|
description: Information about tokens
|
|
items:
|
|
description: GrafanaServiceAccountTokenStatus describes a token
|
|
created in Grafana.
|
|
properties:
|
|
expires:
|
|
description: |-
|
|
Expiration time of the token
|
|
N.B. There's possible discrepancy with the expiration time in spec
|
|
It happens because Grafana API accepts TTL in seconds then calculates the expiration time against the current time
|
|
format: date-time
|
|
type: string
|
|
id:
|
|
description: ID of the token in Grafana
|
|
format: int64
|
|
type: integer
|
|
name:
|
|
type: string
|
|
secret:
|
|
description: Name of the secret containing the token
|
|
properties:
|
|
name:
|
|
type: string
|
|
namespace:
|
|
type: string
|
|
type: object
|
|
required:
|
|
- id
|
|
- name
|
|
type: object
|
|
type: array
|
|
required:
|
|
- id
|
|
- isDisabled
|
|
- login
|
|
- name
|
|
- role
|
|
type: object
|
|
conditions:
|
|
description: Results when synchonizing resource with Grafana instances
|
|
items:
|
|
description: Condition contains details for one aspect of the current
|
|
state of this API Resource.
|
|
properties:
|
|
lastTransitionTime:
|
|
description: |-
|
|
lastTransitionTime is the last time the condition transitioned from one status to another.
|
|
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
|
format: date-time
|
|
type: string
|
|
message:
|
|
description: |-
|
|
message is a human readable message indicating details about the transition.
|
|
This may be an empty string.
|
|
maxLength: 32768
|
|
type: string
|
|
observedGeneration:
|
|
description: |-
|
|
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
|
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
|
with respect to the current state of the instance.
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
reason:
|
|
description: |-
|
|
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
|
Producers of specific condition types may define expected values and meanings for this field,
|
|
and whether the values are considered a guaranteed API.
|
|
The value should be a CamelCase string.
|
|
This field may not be empty.
|
|
maxLength: 1024
|
|
minLength: 1
|
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
|
type: string
|
|
status:
|
|
description: status of the condition, one of True, False, Unknown.
|
|
enum:
|
|
- "True"
|
|
- "False"
|
|
- Unknown
|
|
type: string
|
|
type:
|
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
|
maxLength: 316
|
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
|
type: string
|
|
required:
|
|
- lastTransitionTime
|
|
- message
|
|
- reason
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
lastResync:
|
|
description: Last time the resource was synchronized with Grafana
|
|
instances
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/templates/serviceaccount.yaml
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: grafana-operator
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: grafana-operator-v5.20.0
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/version: "v5.20.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/component: operator
|
|
automountServiceAccountToken: true
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/templates/rbac.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: grafana-operator
|
|
labels:
|
|
helm.sh/chart: grafana-operator-v5.20.0
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/version: "v5.20.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/component: operator
|
|
rules:
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- configmaps
|
|
- persistentvolumeclaims
|
|
- secrets
|
|
- serviceaccounts
|
|
- services
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- events
|
|
verbs:
|
|
- create
|
|
- get
|
|
- list
|
|
- patch
|
|
- watch
|
|
- apiGroups:
|
|
- apps
|
|
resources:
|
|
- deployments
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- coordination.k8s.io
|
|
resources:
|
|
- leases
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- grafana.integreatly.org
|
|
resources:
|
|
- grafanaalertrulegroups
|
|
- grafanacontactpoints
|
|
- grafanadashboards
|
|
- grafanadatasources
|
|
- grafanafolders
|
|
- grafanalibrarypanels
|
|
- grafanamutetimings
|
|
- grafananotificationpolicies
|
|
- grafananotificationpolicyroutes
|
|
- grafananotificationtemplates
|
|
- grafanas
|
|
- grafanaserviceaccounts
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- grafana.integreatly.org
|
|
resources:
|
|
- grafanaalertrulegroups/finalizers
|
|
- grafanacontactpoints/finalizers
|
|
- grafanadashboards/finalizers
|
|
- grafanadatasources/finalizers
|
|
- grafanafolders/finalizers
|
|
- grafanalibrarypanels/finalizers
|
|
- grafanamutetimings/finalizers
|
|
- grafananotificationpolicies/finalizers
|
|
- grafananotificationpolicyroutes/finalizers
|
|
- grafananotificationtemplates/finalizers
|
|
- grafanas/finalizers
|
|
- grafanaserviceaccounts/finalizers
|
|
verbs:
|
|
- update
|
|
- apiGroups:
|
|
- grafana.integreatly.org
|
|
resources:
|
|
- grafanaalertrulegroups/status
|
|
- grafanacontactpoints/status
|
|
- grafanadashboards/status
|
|
- grafanadatasources/status
|
|
- grafanafolders/status
|
|
- grafanalibrarypanels/status
|
|
- grafanamutetimings/status
|
|
- grafananotificationpolicies/status
|
|
- grafananotificationpolicyroutes/status
|
|
- grafananotificationtemplates/status
|
|
- grafanas/status
|
|
- grafanaserviceaccounts/status
|
|
verbs:
|
|
- get
|
|
- patch
|
|
- update
|
|
- apiGroups:
|
|
- networking.k8s.io
|
|
resources:
|
|
- ingresses
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/templates/rbac.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: grafana-operator
|
|
labels:
|
|
helm.sh/chart: grafana-operator-v5.20.0
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/version: "v5.20.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/component: operator
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: grafana-operator
|
|
namespace: grafana-operator
|
|
roleRef:
|
|
kind: ClusterRole
|
|
name: grafana-operator
|
|
apiGroup: rbac.authorization.k8s.io
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/templates/service.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: grafana-operator-metrics-service
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: grafana-operator-v5.20.0
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/version: "v5.20.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/component: operator
|
|
spec:
|
|
type: ClusterIP
|
|
ports:
|
|
- port: 9090
|
|
targetPort: metrics
|
|
protocol: TCP
|
|
name: metrics
|
|
- port: 8888
|
|
targetPort: pprof
|
|
protocol: TCP
|
|
name: pprof
|
|
selector:
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/templates/deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: grafana-operator
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: grafana-operator-v5.20.0
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/version: "v5.20.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/component: operator
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
template:
|
|
metadata:
|
|
labels:
|
|
helm.sh/chart: grafana-operator-v5.20.0
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/version: "v5.20.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/component: operator
|
|
spec:
|
|
serviceAccountName: grafana-operator
|
|
containers:
|
|
- name: grafana-operator
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
image: "ghcr.io/grafana/grafana-operator:v5.20.0"
|
|
imagePullPolicy: IfNotPresent
|
|
env:
|
|
- name: WATCH_NAMESPACE
|
|
value:
|
|
- name: WATCH_NAMESPACE_SELECTOR
|
|
value: ""
|
|
- name: WATCH_LABEL_SELECTORS
|
|
value: ""
|
|
- name: ENFORCE_CACHE_LABELS
|
|
value: "safe"
|
|
|
|
- name: CLUSTER_DOMAIN
|
|
value: ""
|
|
args:
|
|
- --health-probe-bind-address=:8081
|
|
- --metrics-bind-address=0.0.0.0:9090
|
|
- --pprof-addr=0.0.0.0:8888
|
|
- --zap-encoder=console
|
|
- --zap-log-level=info
|
|
- --zap-time-encoding=rfc3339
|
|
- --leader-elect
|
|
- --max-concurrent-reconciles=1
|
|
volumeMounts:
|
|
- name: dashboards-dir
|
|
mountPath: /tmp/dashboards
|
|
ports:
|
|
- containerPort: 9090
|
|
name: metrics
|
|
protocol: TCP
|
|
- containerPort: 8888
|
|
name: pprof
|
|
protocol: TCP
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: 8081
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /readyz
|
|
port: 8081
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 64Mi
|
|
volumes:
|
|
- name: dashboards-dir
|
|
emptyDir: {}
|
|
---
|
|
# Source: grafana-operator/charts/postgres-17-cluster/templates/cluster.yaml
|
|
apiVersion: postgresql.cnpg.io/v1
|
|
kind: Cluster
|
|
metadata:
|
|
name: grafana-operator-postgresql-17-cluster
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: postgres-17-cluster-6.16.0
|
|
app.kubernetes.io/name: grafana-operator-postgresql-17
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/version: "6.16.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
spec:
|
|
instances: 3
|
|
imageName: "ghcr.io/cloudnative-pg/postgresql:17.7-standard-trixie"
|
|
imagePullPolicy: IfNotPresent
|
|
postgresUID: 26
|
|
postgresGID: 26
|
|
plugins:
|
|
- name: barman-cloud.cloudnative-pg.io
|
|
enabled: true
|
|
isWALArchiver: false
|
|
parameters:
|
|
barmanObjectName: "grafana-operator-postgresql-17-external-backup"
|
|
serverName: "grafana-operator-postgresql-17-backup-2"
|
|
- name: barman-cloud.cloudnative-pg.io
|
|
enabled: true
|
|
isWALArchiver: true
|
|
parameters:
|
|
barmanObjectName: "grafana-operator-postgresql-17-garage-local-backup"
|
|
serverName: "grafana-operator-postgresql-17-backup-1"
|
|
|
|
externalClusters:
|
|
- name: recovery
|
|
plugin:
|
|
name: barman-cloud.cloudnative-pg.io
|
|
parameters:
|
|
barmanObjectName: "grafana-operator-postgresql-17-recovery"
|
|
serverName: grafana-operator-postgresql-17-backup-1
|
|
|
|
storage:
|
|
size: 10Gi
|
|
storageClass: local-path
|
|
walStorage:
|
|
size: 2Gi
|
|
storageClass: local-path
|
|
resources:
|
|
limits:
|
|
hugepages-2Mi: 256Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
|
|
affinity:
|
|
enablePodAntiAffinity: true
|
|
topologyKey: kubernetes.io/hostname
|
|
|
|
primaryUpdateMethod: switchover
|
|
primaryUpdateStrategy: unsupervised
|
|
logLevel: info
|
|
enableSuperuserAccess: false
|
|
enablePDB: true
|
|
|
|
postgresql:
|
|
parameters:
|
|
hot_standby_feedback: "on"
|
|
max_slot_wal_keep_size: 2000MB
|
|
shared_buffers: 128MB
|
|
|
|
monitoring:
|
|
enablePodMonitor: true
|
|
disableDefaultQueries: false
|
|
|
|
|
|
bootstrap:
|
|
recovery:
|
|
|
|
database: app
|
|
|
|
source: grafana-operator-postgresql-17-backup-1
|
|
|
|
externalClusters:
|
|
- name: grafana-operator-postgresql-17-backup-1
|
|
plugin:
|
|
name: barman-cloud.cloudnative-pg.io
|
|
enabled: true
|
|
isWALArchiver: false
|
|
parameters:
|
|
barmanObjectName: "grafana-operator-postgresql-17-recovery"
|
|
serverName: grafana-operator-postgresql-17-backup-1
|
|
---
|
|
# Source: grafana-operator/templates/external-secret.yaml
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: grafana-auth-secret
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-auth-secret
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
data:
|
|
- secretKey: admin-user
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /cl01tl/grafana/auth
|
|
metadataPolicy: None
|
|
property: admin-user
|
|
- secretKey: admin-password
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /cl01tl/grafana/auth
|
|
metadataPolicy: None
|
|
property: admin-password
|
|
---
|
|
# Source: grafana-operator/templates/external-secret.yaml
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: grafana-oauth-secret
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-oauth-secret
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
data:
|
|
- secretKey: AUTH_CLIENT_ID
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /authentik/oidc/grafana
|
|
metadataPolicy: None
|
|
property: client
|
|
- secretKey: AUTH_CLIENT_SECRET
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /authentik/oidc/grafana
|
|
metadataPolicy: None
|
|
property: secret
|
|
---
|
|
# Source: grafana-operator/templates/external-secret.yaml
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: grafana-operator-postgresql-17-cluster-backup-secret
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-operator-postgresql-17-cluster-backup-secret
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
data:
|
|
- secretKey: ACCESS_KEY_ID
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /digital-ocean/home-infra/postgres-backups
|
|
metadataPolicy: None
|
|
property: access
|
|
- secretKey: ACCESS_SECRET_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /digital-ocean/home-infra/postgres-backups
|
|
metadataPolicy: None
|
|
property: secret
|
|
---
|
|
# Source: grafana-operator/templates/external-secret.yaml
|
|
apiVersion: external-secrets.io/v1
|
|
kind: ExternalSecret
|
|
metadata:
|
|
name: grafana-operator-postgresql-17-cluster-backup-secret-garage
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-operator-postgresql-17-cluster-backup-secret-garage
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
secretStoreRef:
|
|
kind: ClusterSecretStore
|
|
name: vault
|
|
data:
|
|
- secretKey: ACCESS_KEY_ID
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/postgres-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_KEY_ID
|
|
- secretKey: ACCESS_SECRET_KEY
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/postgres-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_SECRET_KEY
|
|
- secretKey: ACCESS_REGION
|
|
remoteRef:
|
|
conversionStrategy: Default
|
|
decodingStrategy: None
|
|
key: /garage/home-infra/postgres-backups
|
|
metadataPolicy: None
|
|
property: ACCESS_REGION
|
|
---
|
|
# Source: grafana-operator/templates/grafana.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: Grafana
|
|
metadata:
|
|
name: grafana-main
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-main
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app: grafana-main
|
|
spec:
|
|
config:
|
|
analytics:
|
|
enabled: "false"
|
|
check_for_updates: "false"
|
|
reporting_enabled: "false"
|
|
server:
|
|
domain: alexlebens.net
|
|
root_url: https://grafana.alexlebens.net
|
|
log:
|
|
mode: "console"
|
|
users:
|
|
auto_assign_org: "true"
|
|
auto_assign_org_id: "1"
|
|
auth:
|
|
disable_login_form: "true"
|
|
auto_login: "true"
|
|
signout_redirect_url: https://authentik.alexlebens.net/application/o/grafana/end-session/
|
|
auth.generic_oauth:
|
|
enabled: "true"
|
|
name: Authentik
|
|
allow_sign_up: "true"
|
|
client_id: ${AUTH_CLIENT_ID}
|
|
client_secret: ${AUTH_CLIENT_SECRET}
|
|
scopes: openid profile email
|
|
auth_url: https://authentik.alexlebens.net/application/o/authorize/
|
|
token_url: https://authentik.alexlebens.net/application/o/token/
|
|
api_url: https://authentik.alexlebens.net/application/o/userinfo/
|
|
role_attribute_path: contains(groups, 'Grafana Admins') && 'Admin' || contains(groups, 'Grafana Editors') && 'Editor' || 'Viewer'
|
|
database:
|
|
type: postgres
|
|
host: "${DB_HOST}:${DB_PORT}"
|
|
name: ${DB_DATABASE}
|
|
user: ${DB_USER}
|
|
password: ${DB_PASSWORD}
|
|
remote_cache:
|
|
type: redis
|
|
connstr: addr=redis-replication-remote-cache-master.grafana-operator:6379,pool_size=100,db=0,ssl=false
|
|
unified_alerting:
|
|
enabled: "true"
|
|
ha_redis_address: redis-replication-unified-alerting-master.grafana-operator:6379
|
|
deployment:
|
|
spec:
|
|
replicas: 3
|
|
template:
|
|
spec:
|
|
containers:
|
|
- name: grafana
|
|
image: grafana/grafana:12.0.0
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
env:
|
|
- name: AUTH_CLIENT_ID
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: grafana-oauth-secret
|
|
key: AUTH_CLIENT_ID
|
|
- name: AUTH_CLIENT_SECRET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: grafana-oauth-secret
|
|
key: AUTH_CLIENT_SECRET
|
|
- name: ADMIN_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: grafana-auth-secret
|
|
key: admin-user
|
|
- name: ADMIN_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: grafana-auth-secret
|
|
key: admin-password
|
|
- name: DB_HOST
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: grafana-operator-postgresql-17-cluster-app
|
|
key: host
|
|
- name: DB_DATABASE
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: grafana-operator-postgresql-17-cluster-app
|
|
key: dbname
|
|
- name: DB_PORT
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: grafana-operator-postgresql-17-cluster-app
|
|
key: port
|
|
- name: DB_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: grafana-operator-postgresql-17-cluster-app
|
|
key: user
|
|
- name: DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: grafana-operator-postgresql-17-cluster-app
|
|
key: password
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-ceph
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-ceph
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-system
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/ceph.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-coredns
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-coredns
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-system
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/coredns.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-etcd
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-etcd
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-system
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/etcd.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-garage
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-garage
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-system
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/garage.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-loki
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-loki
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-system
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/loki.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-node-full
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-node-full
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-system
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/node-full.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-node-short
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-node-short
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-system
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/node-short.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-argocd
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-argocd
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/argocd.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-blocky
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-blocky
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/blocky.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-cert-manager
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-cert-manager
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/cert-manager.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-cloudnative-pg
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-cloudnative-pg
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/cloudnative-pg.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-descheduler
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-descheduler
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/descheduler.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-gatus
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-gatus
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/gatus.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-operator
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/grafana-operator.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-harbor
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-harbor
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/harbor.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-redis-replication
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-redis-replication
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/redis-replication.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-redis-operator
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-redis-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/redis-operator.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-speedtest-exporter
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-speedtest-exporter
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/speedtest-exporter.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-spegel
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-spegel
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/spegel.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-traefik
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-traefik
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/traefik.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-trivy
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-trivy
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/trivy.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-unpoller
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-unpoller
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/unpoller.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-volsync
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-volsync
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-service
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/volsync.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-s3
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-s3
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-platform
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/s3.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-authentik
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-authentik
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-platform
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/authentik.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-gitea
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-gitea
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-platform
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/gitea.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-ntfy
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-ntfy
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-platform
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/ntfy.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-qbittorrent
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-qbittorrent
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-platform
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/qbittorrent.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-vault
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-vault
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-platform
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/vault.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-airgradient
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-airgradient
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-iot
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/iot/airgradient.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-server-power-consumption
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-server-power-consumption
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-iot
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/iot/server-power-consumption.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-immich
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-immich
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-application
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/application/immich.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-radarr
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-radarr
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-application
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/application/radarr.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-dashboard.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
name: grafana-dashboard-sonarr
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-dashboard-sonarr
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
contentCacheDuration: 1h
|
|
folderUID: grafana-folder-application
|
|
resyncPeriod: 1h
|
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/application/sonarr.json
|
|
---
|
|
# Source: grafana-operator/templates/grafana-datasource.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDatasource
|
|
metadata:
|
|
name: grafana-datasource-prometheus
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-datasource-prometheus
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
datasource:
|
|
name: Prometheus
|
|
type: prometheus
|
|
url: http://kube-prometheus-stack-prometheus.kube-prometheus-stack:9090/
|
|
access: proxy
|
|
isDefault: true
|
|
jsonData:
|
|
timeInterval: 30s
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
plugins:
|
|
- name: camptocamp-prometheus-alertmanager-datasource
|
|
version: 2.1.0
|
|
resyncPeriod: 30s
|
|
uid: kube-prometheus-stack
|
|
---
|
|
# Source: grafana-operator/templates/grafana-datasource.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDatasource
|
|
metadata:
|
|
name: grafana-datasource-loki
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-datasource-loki
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
datasource:
|
|
name: Loki
|
|
type: loki
|
|
url: http://loki.loki:3100/
|
|
access: proxy
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
resyncPeriod: 30s
|
|
uid: loki
|
|
---
|
|
# Source: grafana-operator/templates/grafana-folder.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaFolder
|
|
metadata:
|
|
name: grafana-folder-application
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-folder-application
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
title: Application
|
|
uid: grafana-folder-application
|
|
resyncPeriod: 30s
|
|
permissions: |
|
|
{
|
|
"items": [
|
|
{
|
|
"role": "Admin",
|
|
"permission": 4
|
|
},
|
|
{
|
|
"role": "Editor",
|
|
"permission": 2
|
|
},
|
|
{
|
|
"role": "Viewer",
|
|
"permission": 1
|
|
}
|
|
]
|
|
}
|
|
---
|
|
# Source: grafana-operator/templates/grafana-folder.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaFolder
|
|
metadata:
|
|
name: grafana-folder-iot
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-folder-iot
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
title: IoT
|
|
uid: grafana-folder-iot
|
|
resyncPeriod: 30s
|
|
permissions: |
|
|
{
|
|
"items": [
|
|
{
|
|
"role": "Admin",
|
|
"permission": 4
|
|
},
|
|
{
|
|
"role": "Editor",
|
|
"permission": 2
|
|
},
|
|
{
|
|
"role": "Viewer",
|
|
"permission": 1
|
|
}
|
|
]
|
|
}
|
|
---
|
|
# Source: grafana-operator/templates/grafana-folder.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaFolder
|
|
metadata:
|
|
name: grafana-folder-platform
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-folder-platform
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
title: Platform
|
|
uid: grafana-folder-platform
|
|
resyncPeriod: 30s
|
|
permissions: |
|
|
{
|
|
"items": [
|
|
{
|
|
"role": "Admin",
|
|
"permission": 4
|
|
},
|
|
{
|
|
"role": "Editor",
|
|
"permission": 2
|
|
},
|
|
{
|
|
"role": "Viewer",
|
|
"permission": 1
|
|
}
|
|
]
|
|
}
|
|
---
|
|
# Source: grafana-operator/templates/grafana-folder.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaFolder
|
|
metadata:
|
|
name: grafana-folder-service
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-folder-service
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app: grafana-main
|
|
title: Service
|
|
uid: grafana-folder-service
|
|
resyncPeriod: 30s
|
|
permissions: |
|
|
{
|
|
"items": [
|
|
{
|
|
"role": "Admin",
|
|
"permission": 4
|
|
},
|
|
{
|
|
"role": "Editor",
|
|
"permission": 2
|
|
},
|
|
{
|
|
"role": "Viewer",
|
|
"permission": 1
|
|
}
|
|
]
|
|
}
|
|
---
|
|
# Source: grafana-operator/templates/grafana-folder.yaml
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaFolder
|
|
metadata:
|
|
name: grafana-folder-system
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: grafana-folder-system
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
instanceSelector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: grafana-main
|
|
title: System
|
|
uid: grafana-folder-system
|
|
resyncPeriod: 30s
|
|
permissions: |
|
|
{
|
|
"items": [
|
|
{
|
|
"role": "Admin",
|
|
"permission": 4
|
|
},
|
|
{
|
|
"role": "Editor",
|
|
"permission": 2
|
|
},
|
|
{
|
|
"role": "Viewer",
|
|
"permission": 1
|
|
}
|
|
]
|
|
}
|
|
---
|
|
# Source: grafana-operator/templates/http-route.yaml
|
|
apiVersion: gateway.networking.k8s.io/v1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: http-route-grafana
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: http-route-grafana
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
parentRefs:
|
|
- group: gateway.networking.k8s.io
|
|
kind: Gateway
|
|
name: traefik-gateway
|
|
namespace: traefik
|
|
hostnames:
|
|
- grafana.alexlebens.net
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /
|
|
backendRefs:
|
|
- group: ''
|
|
kind: Service
|
|
name: grafana-main-service
|
|
port: 3000
|
|
weight: 100
|
|
---
|
|
# Source: grafana-operator/charts/postgres-17-cluster/templates/object-store.yaml
|
|
apiVersion: barmancloud.cnpg.io/v1
|
|
kind: ObjectStore
|
|
metadata:
|
|
name: "grafana-operator-postgresql-17-external-backup"
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: postgres-17-cluster-6.16.0
|
|
app.kubernetes.io/name: grafana-operator-postgresql-17
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/version: "6.16.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
spec:
|
|
retentionPolicy: 30d
|
|
configuration:
|
|
destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/grafana-operator/grafana-operator-postgresql-17-cluster
|
|
endpointURL: https://nyc3.digitaloceanspaces.com
|
|
s3Credentials:
|
|
accessKeyId:
|
|
name: grafana-operator-postgresql-17-cluster-backup-secret
|
|
key: ACCESS_KEY_ID
|
|
secretAccessKey:
|
|
name: grafana-operator-postgresql-17-cluster-backup-secret
|
|
key: ACCESS_SECRET_KEY
|
|
---
|
|
# Source: grafana-operator/charts/postgres-17-cluster/templates/object-store.yaml
|
|
apiVersion: barmancloud.cnpg.io/v1
|
|
kind: ObjectStore
|
|
metadata:
|
|
name: "grafana-operator-postgresql-17-garage-local-backup"
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: postgres-17-cluster-6.16.0
|
|
app.kubernetes.io/name: grafana-operator-postgresql-17
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/version: "6.16.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
spec:
|
|
retentionPolicy: 3d
|
|
configuration:
|
|
destinationPath: s3://postgres-backups/cl01tl/grafana-operator/grafana-operator-postgresql-17-cluster
|
|
endpointURL: http://garage-main.garage:3900
|
|
s3Credentials:
|
|
accessKeyId:
|
|
name: grafana-operator-postgresql-17-cluster-backup-secret-garage
|
|
key: ACCESS_KEY_ID
|
|
secretAccessKey:
|
|
name: grafana-operator-postgresql-17-cluster-backup-secret-garage
|
|
key: ACCESS_SECRET_KEY
|
|
region:
|
|
name: grafana-operator-postgresql-17-cluster-backup-secret-garage
|
|
key: ACCESS_REGION
|
|
---
|
|
# Source: grafana-operator/charts/postgres-17-cluster/templates/object-store.yaml
|
|
apiVersion: barmancloud.cnpg.io/v1
|
|
kind: ObjectStore
|
|
metadata:
|
|
name: "grafana-operator-postgresql-17-recovery"
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: postgres-17-cluster-6.16.0
|
|
app.kubernetes.io/name: grafana-operator-postgresql-17
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/version: "6.16.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
spec:
|
|
configuration:
|
|
destinationPath: s3://postgres-backups/cl01tl/grafana-operator/grafana-operator-postgresql-17-cluster
|
|
endpointURL: http://garage-main.garage:3900
|
|
wal:
|
|
compression: snappy
|
|
maxParallel: 1
|
|
data:
|
|
compression: snappy
|
|
jobs: 1
|
|
s3Credentials:
|
|
accessKeyId:
|
|
name: grafana-operator-postgresql-17-cluster-backup-secret-garage
|
|
key: ACCESS_KEY_ID
|
|
secretAccessKey:
|
|
name: grafana-operator-postgresql-17-cluster-backup-secret-garage
|
|
key: ACCESS_SECRET_KEY
|
|
---
|
|
# Source: grafana-operator/charts/postgres-17-cluster/templates/prometheus-rule.yaml
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: PrometheusRule
|
|
metadata:
|
|
name: grafana-operator-postgresql-17-alert-rules
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: postgres-17-cluster-6.16.0
|
|
app.kubernetes.io/name: grafana-operator-postgresql-17
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/version: "6.16.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
spec:
|
|
groups:
|
|
- name: cloudnative-pg/grafana-operator-postgresql-17
|
|
rules:
|
|
- alert: CNPGClusterBackendsWaitingWarning
|
|
annotations:
|
|
summary: CNPG Cluster a backend is waiting for longer than 5 minutes.
|
|
description: |-
|
|
Pod {{ $labels.pod }}
|
|
has been waiting for longer than 5 minutes
|
|
expr: |
|
|
cnpg_backends_waiting_total > 300
|
|
for: 1m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterDatabaseDeadlockConflictsWarning
|
|
annotations:
|
|
summary: CNPG Cluster has over 10 deadlock conflicts.
|
|
description: |-
|
|
There are over 10 deadlock conflicts in
|
|
{{ $labels.pod }}
|
|
expr: |
|
|
cnpg_pg_stat_database_deadlocks > 10
|
|
for: 1m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterHACritical
|
|
annotations:
|
|
summary: CNPG Cluster has no standby replicas!
|
|
description: |-
|
|
CloudNativePG Cluster "{{`{{`}} $labels.job {{`}}`}}" has no ready standby replicas. Your cluster at a severe
|
|
risk of data loss and downtime if the primary instance fails.
|
|
|
|
The primary instance is still online and able to serve queries, although connections to the `-ro` endpoint
|
|
will fail. The `-r` endpoint os operating at reduced capacity and all traffic is being served by the main.
|
|
|
|
This can happen during a normal fail-over or automated minor version upgrades in a cluster with 2 or less
|
|
instances. The replaced instance may need some time to catch-up with the cluster primary instance.
|
|
|
|
This alarm will be always trigger if your cluster is configured to run with only 1 instance. In this
|
|
case you may want to silence it.
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHACritical.md
|
|
expr: |
|
|
max by (job) (cnpg_pg_replication_streaming_replicas{namespace="grafana-operator"} - cnpg_pg_replication_is_wal_receiver_up{namespace="grafana-operator"}) < 1
|
|
for: 5m
|
|
labels:
|
|
severity: critical
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterHAWarning
|
|
annotations:
|
|
summary: CNPG Cluster less than 2 standby replicas.
|
|
description: |-
|
|
CloudNativePG Cluster "{{`{{`}} $labels.job {{`}}`}}" has only {{`{{`}} $value {{`}}`}} standby replicas, putting
|
|
your cluster at risk if another instance fails. The cluster is still able to operate normally, although
|
|
the `-ro` and `-r` endpoints operate at reduced capacity.
|
|
|
|
This can happen during a normal fail-over or automated minor version upgrades. The replaced instance may
|
|
need some time to catch-up with the cluster primary instance.
|
|
|
|
This alarm will be constantly triggered if your cluster is configured to run with less than 3 instances.
|
|
In this case you may want to silence it.
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHAWarning.md
|
|
expr: |
|
|
max by (job) (cnpg_pg_replication_streaming_replicas{namespace="grafana-operator"} - cnpg_pg_replication_is_wal_receiver_up{namespace="grafana-operator"}) < 2
|
|
for: 5m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterHighConnectionsCritical
|
|
annotations:
|
|
summary: CNPG Instance maximum number of connections critical!
|
|
description: |-
|
|
CloudNativePG Cluster "grafana-operator/grafana-operator-postgresql-17-cluster" instance {{`{{`}} $labels.pod {{`}}`}} is using {{`{{`}} $value {{`}}`}}% of
|
|
the maximum number of connections.
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHighConnectionsCritical.md
|
|
expr: |
|
|
sum by (pod) (cnpg_backends_total{namespace="grafana-operator", pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"}) / max by (pod) (cnpg_pg_settings_setting{name="max_connections", namespace="grafana-operator", pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"}) * 100 > 95
|
|
for: 5m
|
|
labels:
|
|
severity: critical
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterHighConnectionsWarning
|
|
annotations:
|
|
summary: CNPG Instance is approaching the maximum number of connections.
|
|
description: |-
|
|
CloudNativePG Cluster "grafana-operator/grafana-operator-postgresql-17-cluster" instance {{`{{`}} $labels.pod {{`}}`}} is using {{`{{`}} $value {{`}}`}}% of
|
|
the maximum number of connections.
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHighConnectionsWarning.md
|
|
expr: |
|
|
sum by (pod) (cnpg_backends_total{namespace="grafana-operator", pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"}) / max by (pod) (cnpg_pg_settings_setting{name="max_connections", namespace="grafana-operator", pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"}) * 100 > 80
|
|
for: 5m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterHighReplicationLag
|
|
annotations:
|
|
summary: CNPG Cluster high replication lag
|
|
description: |-
|
|
CloudNativePG Cluster "grafana-operator/grafana-operator-postgresql-17-cluster" is experiencing a high replication lag of
|
|
{{`{{`}} $value {{`}}`}}ms.
|
|
|
|
High replication lag indicates network issues, busy instances, slow queries or suboptimal configuration.
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHighReplicationLag.md
|
|
expr: |
|
|
max(cnpg_pg_replication_lag{namespace="grafana-operator",pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"}) * 1000 > 1000
|
|
for: 5m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterInstancesOnSameNode
|
|
annotations:
|
|
summary: CNPG Cluster instances are located on the same node.
|
|
description: |-
|
|
CloudNativePG Cluster "grafana-operator/grafana-operator-postgresql-17-cluster" has {{`{{`}} $value {{`}}`}}
|
|
instances on the same node {{`{{`}} $labels.node {{`}}`}}.
|
|
|
|
A failure or scheduled downtime of a single node will lead to a potential service disruption and/or data loss.
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterInstancesOnSameNode.md
|
|
expr: |
|
|
count by (node) (kube_pod_info{namespace="grafana-operator", pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"}) > 1
|
|
for: 5m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterLongRunningTransactionWarning
|
|
annotations:
|
|
summary: CNPG Cluster query is taking longer than 5 minutes.
|
|
description: |-
|
|
CloudNativePG Cluster Pod {{ $labels.pod }}
|
|
is taking more than 5 minutes (300 seconds) for a query.
|
|
expr: |-
|
|
cnpg_backends_max_tx_duration_seconds > 300
|
|
for: 1m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterLowDiskSpaceCritical
|
|
annotations:
|
|
summary: CNPG Instance is running out of disk space!
|
|
description: |-
|
|
CloudNativePG Cluster "grafana-operator/grafana-operator-postgresql-17-cluster" is running extremely low on disk space. Check attached PVCs!
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterLowDiskSpaceCritical.md
|
|
expr: |
|
|
max(max by(persistentvolumeclaim) (1 - kubelet_volume_stats_available_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"} / kubelet_volume_stats_capacity_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"})) > 0.9 OR
|
|
max(max by(persistentvolumeclaim) (1 - kubelet_volume_stats_available_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$-wal"} / kubelet_volume_stats_capacity_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$-wal"})) > 0.9 OR
|
|
max(sum by (namespace,persistentvolumeclaim) (kubelet_volume_stats_used_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$-tbs.*"})
|
|
/
|
|
sum by (namespace,persistentvolumeclaim) (kubelet_volume_stats_capacity_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$-tbs.*"})
|
|
*
|
|
on(namespace, persistentvolumeclaim) group_left(volume)
|
|
kube_pod_spec_volumes_persistentvolumeclaims_info{pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"}
|
|
) > 0.9
|
|
for: 5m
|
|
labels:
|
|
severity: critical
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterLowDiskSpaceWarning
|
|
annotations:
|
|
summary: CNPG Instance is running out of disk space.
|
|
description: |-
|
|
CloudNativePG Cluster "grafana-operator/grafana-operator-postgresql-17-cluster" is running low on disk space. Check attached PVCs.
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterLowDiskSpaceWarning.md
|
|
expr: |
|
|
max(max by(persistentvolumeclaim) (1 - kubelet_volume_stats_available_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"} / kubelet_volume_stats_capacity_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"})) > 0.7 OR
|
|
max(max by(persistentvolumeclaim) (1 - kubelet_volume_stats_available_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$-wal"} / kubelet_volume_stats_capacity_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$-wal"})) > 0.7 OR
|
|
max(sum by (namespace,persistentvolumeclaim) (kubelet_volume_stats_used_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$-tbs.*"})
|
|
/
|
|
sum by (namespace,persistentvolumeclaim) (kubelet_volume_stats_capacity_bytes{namespace="grafana-operator", persistentvolumeclaim=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$-tbs.*"})
|
|
*
|
|
on(namespace, persistentvolumeclaim) group_left(volume)
|
|
kube_pod_spec_volumes_persistentvolumeclaims_info{pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"}
|
|
) > 0.7
|
|
for: 5m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterOffline
|
|
annotations:
|
|
summary: CNPG Cluster has no running instances!
|
|
description: |-
|
|
CloudNativePG Cluster "grafana-operator/grafana-operator-postgresql-17-cluster" has no ready instances.
|
|
|
|
Having an offline cluster means your applications will not be able to access the database, leading to
|
|
potential service disruption and/or data loss.
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterOffline.md
|
|
expr: |
|
|
(count(cnpg_collector_up{namespace="grafana-operator",pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"}) OR on() vector(0)) == 0
|
|
for: 5m
|
|
labels:
|
|
severity: critical
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterPGDatabaseXidAgeWarning
|
|
annotations:
|
|
summary: CNPG Cluster has a number of transactions from the frozen XID to the current one.
|
|
description: |-
|
|
Over 300,000,000 transactions from frozen xid
|
|
on pod {{ $labels.pod }}
|
|
expr: |
|
|
cnpg_pg_database_xid_age > 300000000
|
|
for: 1m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterPGReplicationWarning
|
|
annotations:
|
|
summary: CNPG Cluster standby is lagging behind the primary.
|
|
description: |-
|
|
Standby is lagging behind by over 300 seconds (5 minutes)
|
|
expr: |
|
|
cnpg_pg_replication_lag > 300
|
|
for: 1m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterReplicaFailingReplicationWarning
|
|
annotations:
|
|
summary: CNPG Cluster has a replica is failing to replicate.
|
|
description: |-
|
|
Replica {{ $labels.pod }}
|
|
is failing to replicate
|
|
expr: |
|
|
cnpg_pg_replication_in_recovery > cnpg_pg_replication_is_wal_receiver_up
|
|
for: 1m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
- alert: CNPGClusterZoneSpreadWarning
|
|
annotations:
|
|
summary: CNPG Cluster instances in the same zone.
|
|
description: |-
|
|
CloudNativePG Cluster "grafana-operator/grafana-operator-postgresql-17-cluster" has instances in the same availability zone.
|
|
|
|
A disaster in one availability zone will lead to a potential service disruption and/or data loss.
|
|
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterZoneSpreadWarning.md
|
|
expr: |
|
|
3 > count(count by (label_topology_kubernetes_io_zone) (kube_pod_info{namespace="grafana-operator", pod=~"grafana-operator-postgresql-17-cluster-([1-9][0-9]*)$"} * on(node,instance) group_left(label_topology_kubernetes_io_zone) kube_node_labels)) < 3
|
|
for: 5m
|
|
labels:
|
|
severity: warning
|
|
namespace: grafana-operator
|
|
cnpg_cluster: grafana-operator-postgresql-17-cluster
|
|
---
|
|
# Source: grafana-operator/templates/redis-replication.yaml
|
|
apiVersion: redis.redis.opstreelabs.in/v1beta2
|
|
kind: RedisReplication
|
|
metadata:
|
|
name: redis-replication-unified-alerting
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: redis-replication-unified-alerting
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
clusterSize: 3
|
|
podSecurityContext:
|
|
runAsUser: 1000
|
|
fsGroup: 1000
|
|
kubernetesConfig:
|
|
image: quay.io/opstree/redis:v8.0.3
|
|
imagePullPolicy: IfNotPresent
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 128Mi
|
|
storage:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
storageClassName: ceph-block
|
|
accessModes: ["ReadWriteOnce"]
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
redisExporter:
|
|
enabled: true
|
|
image: quay.io/opstree/redis-exporter:v1.48.0
|
|
---
|
|
# Source: grafana-operator/templates/redis-replication.yaml
|
|
apiVersion: redis.redis.opstreelabs.in/v1beta2
|
|
kind: RedisReplication
|
|
metadata:
|
|
name: redis-replication-remote-cache
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: redis-replication-remote-cache
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
spec:
|
|
clusterSize: 3
|
|
podSecurityContext:
|
|
runAsUser: 1000
|
|
fsGroup: 1000
|
|
kubernetesConfig:
|
|
image: quay.io/opstree/redis:v8.0.3
|
|
imagePullPolicy: IfNotPresent
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 128Mi
|
|
storage:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
storageClassName: ceph-block
|
|
accessModes: ["ReadWriteOnce"]
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
redisExporter:
|
|
enabled: true
|
|
image: quay.io/opstree/redis-exporter:v1.48.0
|
|
---
|
|
# Source: grafana-operator/charts/postgres-17-cluster/templates/scheduled-backup.yaml
|
|
apiVersion: postgresql.cnpg.io/v1
|
|
kind: ScheduledBackup
|
|
metadata:
|
|
name: "grafana-operator-postgresql-17-daily-backup-scheduled-backup"
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: postgres-17-cluster-6.16.0
|
|
app.kubernetes.io/name: grafana-operator-postgresql-17
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/version: "6.16.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
spec:
|
|
immediate: false
|
|
suspend: false
|
|
schedule: "0 0 0 * * *"
|
|
backupOwnerReference: self
|
|
cluster:
|
|
name: grafana-operator-postgresql-17-cluster
|
|
method: plugin
|
|
pluginConfiguration:
|
|
name: barman-cloud.cloudnative-pg.io
|
|
parameters:
|
|
barmanObjectName: "grafana-operator-postgresql-17-external-backup"
|
|
---
|
|
# Source: grafana-operator/charts/postgres-17-cluster/templates/scheduled-backup.yaml
|
|
apiVersion: postgresql.cnpg.io/v1
|
|
kind: ScheduledBackup
|
|
metadata:
|
|
name: "grafana-operator-postgresql-17-live-backup-scheduled-backup"
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: postgres-17-cluster-6.16.0
|
|
app.kubernetes.io/name: grafana-operator-postgresql-17
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/version: "6.16.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
spec:
|
|
immediate: true
|
|
suspend: false
|
|
schedule: "0 0 0 * * *"
|
|
backupOwnerReference: self
|
|
cluster:
|
|
name: grafana-operator-postgresql-17-cluster
|
|
method: plugin
|
|
pluginConfiguration:
|
|
name: barman-cloud.cloudnative-pg.io
|
|
parameters:
|
|
barmanObjectName: "grafana-operator-postgresql-17-garage-local-backup"
|
|
---
|
|
# Source: grafana-operator/charts/grafana-operator/templates/servicemonitor.yaml
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: ServiceMonitor
|
|
metadata:
|
|
name: grafana-operator
|
|
namespace: grafana-operator
|
|
labels:
|
|
helm.sh/chart: grafana-operator-v5.20.0
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/version: "v5.20.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
app.kubernetes.io/component: operator
|
|
spec:
|
|
jobLabel: grafana-operator
|
|
namespaceSelector:
|
|
matchNames:
|
|
- grafana-operator
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
endpoints:
|
|
- port: metrics
|
|
path: /metrics
|
|
interval: 1m
|
|
scrapeTimeout: 10s
|
|
---
|
|
# Source: grafana-operator/templates/service-monitor.yaml
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: ServiceMonitor
|
|
metadata:
|
|
name: redis-replication-grafana-operator
|
|
namespace: grafana-operator
|
|
labels:
|
|
app.kubernetes.io/name: redis-replication-grafana-operator
|
|
app.kubernetes.io/instance: grafana-operator
|
|
app.kubernetes.io/part-of: grafana-operator
|
|
redis-operator: "true"
|
|
env: production
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
redis_setup_type: replication
|
|
endpoints:
|
|
- port: redis-exporter
|
|
interval: 30s
|
|
scrapeTimeout: 10s
|