API Reference

Packages:

grafana.integreatly.org/v1beta1

Resource Types:

GrafanaAlertRuleGroup

↩ Parent

GrafanaAlertRuleGroup is the Schema for the grafanaalertrulegroups API

NameTypeDescriptionRequired
apiVersionstringgrafana.integreatly.org/v1beta1true
kindstringGrafanaAlertRuleGrouptrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
specobjectGrafanaAlertRuleGroupSpec defines the desired state of GrafanaAlertRuleGroup

Validations:
  • (has(self.folderUID) && !(has(self.folderRef))) || (has(self.folderRef) && !(has(self.folderUID))): Only one of FolderUID or FolderRef can be set and one must be defined
  • ((!has(oldSelf.editable) && !has(self.editable)) || (has(oldSelf.editable) && has(self.editable))): spec.editable is immutable
  • ((!has(oldSelf.folderUID) && !has(self.folderUID)) || (has(oldSelf.folderUID) && has(self.folderUID))): spec.folderUID is immutable
  • ((!has(oldSelf.folderRef) && !has(self.folderRef)) || (has(oldSelf.folderRef) && has(self.folderRef))): spec.folderRef is immutable
  • !oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport): disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state
  • true
    statusobjectThe most recent observed state of a Grafana resource
    false

    GrafanaAlertRuleGroup.spec

    ↩ Parent

    GrafanaAlertRuleGroupSpec defines the desired state of GrafanaAlertRuleGroup

    NameTypeDescriptionRequired
    instanceSelectorobjectSelects Grafana instances for import

    Validations:
  • self == oldSelf: spec.instanceSelector is immutable
  • true
    intervalstring

    Format: duration
    true
    rules[]object
    true
    allowCrossNamespaceImportbooleanAllow the Operator to match this resource with Grafanas outside the current namespace

    Default: false
    false
    editablebooleanWhether to enable or disable editing of the alert rule group in Grafana UI

    Validations:
  • self == oldSelf: Value is immutable
  • false
    folderRefstringMatch GrafanaFolders CRs to infer the uid

    Validations:
  • self == oldSelf: Value is immutable
  • false
    folderUIDstringUID of the folder containing this rule group Overrides the FolderSelector

    Validations:
  • self == oldSelf: Value is immutable
  • false
    namestringName of the alert rule group. If not specified, the resource name will be used.
    false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set
    false
    suspendbooleanSuspend pauses synchronizing attempts and tells the operator to ignore changes
    false

    GrafanaAlertRuleGroup.spec.instanceSelector

    ↩ Parent

    Selects Grafana instances for import

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaAlertRuleGroup.spec.instanceSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaAlertRuleGroup.spec.rules[index]

    ↩ Parent

    AlertRule defines a specific rule to be evaluated. It is based on the upstream model with some k8s specific type mappings

    NameTypeDescriptionRequired
    conditionstring
    true
    data[]object
    true
    execErrStateenum

    Enum: OK, Alerting, Error, KeepLast
    true
    forstring

    Default: 0s
    true
    noDataStateenum

    Enum: Alerting, NoData, OK, KeepLast
    true
    titlestring
    true
    uidstringUID of the alert rule. Can be any string consisting of alphanumeric characters, - and _ with a maximum length of 40
    true
    annotationsmap[string]string
    false
    isPausedboolean
    false
    keepFiringForstring

    Format: duration
    false
    labelsmap[string]string
    false
    missingSeriesEvalsToResolveintegerThe number of missing series evaluations that must occur before the rule is considered to be resolved.

    Format: int64
    false
    notificationSettingsobject
    false
    recordobject
    false

    GrafanaAlertRuleGroup.spec.rules[index].data[index]

    ↩ Parent

    NameTypeDescriptionRequired
    datasourceUidstringGrafana data source unique identifier; it should be '__expr__' for a Server Side Expression operation.
    false
    modelJSONJSON is the raw JSON query and includes the above properties as well as custom properties.
    false
    queryTypestringQueryType is an optional identifier for the type of query. It can be used to distinguish different types of queries.
    false
    refIdstringRefID is the unique identifier of the query, set by the frontend call.
    false
    relativeTimeRangeobjectrelative time range
    false

    GrafanaAlertRuleGroup.spec.rules[index].data[index].relativeTimeRange

    ↩ Parent

    relative time range

    NameTypeDescriptionRequired
    fromintegerfrom

    Format: int64
    false
    tointegerto

    Format: int64
    false

    GrafanaAlertRuleGroup.spec.rules[index].notificationSettings

    ↩ Parent

    NameTypeDescriptionRequired
    receiverstring
    true
    group_by[]string
    false
    group_intervalstring
    false
    group_waitstring
    false
    mute_time_intervals[]string
    false
    repeat_intervalstring
    false

    GrafanaAlertRuleGroup.spec.rules[index].record

    ↩ Parent

    NameTypeDescriptionRequired
    fromstring
    true
    metricstring
    true

    GrafanaAlertRuleGroup.status

    ↩ Parent

    The most recent observed state of a Grafana resource

    NameTypeDescriptionRequired
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false

    GrafanaAlertRuleGroup.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaContactPoint

    ↩ Parent

    GrafanaContactPoint is the Schema for the grafanacontactpoints API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaContactPointtrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaContactPointSpec defines the desired state of GrafanaContactPoint

    Validations:
  • ((!has(oldSelf.name) && !has(self.name)) || (has(oldSelf.name) && has(self.name))): spec.name is immutable
  • ((!has(oldSelf.editable) && !has(self.editable)) || (has(oldSelf.editable) && has(self.editable))): spec.editable is immutable
  • !oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport): disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state
  • true
    statusobjectThe most recent observed state of a Grafana resource
    false

    GrafanaContactPoint.spec

    ↩ Parent

    GrafanaContactPointSpec defines the desired state of GrafanaContactPoint

    NameTypeDescriptionRequired
    instanceSelectorobjectSelects Grafana instances for import

    Validations:
  • self == oldSelf: spec.instanceSelector is immutable
  • true
    allowCrossNamespaceImportbooleanAllow the Operator to match this resource with Grafanas outside the current namespace

    Default: false
    false
    disableResolveMessagebooleanDeprecated: define the receiver under .spec.receivers[] Will be removed in a later version
    false
    editablebooleanWhether to enable or disable editing of the contact point in Grafana UI

    Validations:
  • self == oldSelf: spec.editable is immutable
  • false
    namestringReceivers are grouped under the same ContactPoint using the Name Defaults to the name of the CR

    Validations:
  • self == oldSelf: spec.name is immutable
  • false
    receivers[]objectList of receivers that Grafana will fan out notifications to
    false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set
    false
    settingsJSONDeprecated: define the receiver under .spec.receivers[] Will be removed in a later version
    false
    suspendbooleanSuspend pauses synchronizing attempts and tells the operator to ignore changes
    false
    typestringDeprecated: define the receiver under .spec.receivers[] Will be removed in a later version
    false
    uidstringDeprecated: define the receiver under .spec.receivers[] 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

    Validations:
  • self == oldSelf: spec.uid is immutable
  • false
    valuesFrom[]objectDeprecated: define the receiver under .spec.receivers[] Will be removed in a later version
    false

    GrafanaContactPoint.spec.instanceSelector

    ↩ Parent

    Selects Grafana instances for import

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaContactPoint.spec.instanceSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaContactPoint.spec.receivers[index]

    ↩ Parent

    Represents an integration to external services that receive Grafana notifications

    NameTypeDescriptionRequired
    settingsJSON
    true
    typestring
    true
    disableResolveMessageboolean
    false
    uidstringManually specify the UID the Contact Point is created with. Can be any string consisting of alphanumeric characters, - and _ with a maximum length of 40
    false
    valuesFrom[]object
    false

    GrafanaContactPoint.spec.receivers[index].valuesFrom[index]

    ↩ Parent

    NameTypeDescriptionRequired
    targetPathstring
    true
    valueFromobject

    Validations:
  • (has(self.configMapKeyRef) && !has(self.secretKeyRef)) || (!has(self.configMapKeyRef) && has(self.secretKeyRef)): Either configMapKeyRef or secretKeyRef must be set
  • true

    GrafanaContactPoint.spec.receivers[index].valuesFrom[index].valueFrom

    ↩ Parent

    NameTypeDescriptionRequired
    configMapKeyRefobjectSelects a key of a ConfigMap.
    false
    secretKeyRefobjectSelects a key of a Secret.
    false

    GrafanaContactPoint.spec.receivers[index].valuesFrom[index].valueFrom.configMapKeyRef

    ↩ Parent

    Selects a key of a ConfigMap.

    NameTypeDescriptionRequired
    keystringThe key to select.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the ConfigMap or its key must be defined
    false

    GrafanaContactPoint.spec.receivers[index].valuesFrom[index].valueFrom.secretKeyRef

    ↩ Parent

    Selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaContactPoint.spec.valuesFrom[index]

    ↩ Parent

    NameTypeDescriptionRequired
    targetPathstring
    true
    valueFromobject

    Validations:
  • (has(self.configMapKeyRef) && !has(self.secretKeyRef)) || (!has(self.configMapKeyRef) && has(self.secretKeyRef)): Either configMapKeyRef or secretKeyRef must be set
  • true

    GrafanaContactPoint.spec.valuesFrom[index].valueFrom

    ↩ Parent

    NameTypeDescriptionRequired
    configMapKeyRefobjectSelects a key of a ConfigMap.
    false
    secretKeyRefobjectSelects a key of a Secret.
    false

    GrafanaContactPoint.spec.valuesFrom[index].valueFrom.configMapKeyRef

    ↩ Parent

    Selects a key of a ConfigMap.

    NameTypeDescriptionRequired
    keystringThe key to select.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the ConfigMap or its key must be defined
    false

    GrafanaContactPoint.spec.valuesFrom[index].valueFrom.secretKeyRef

    ↩ Parent

    Selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaContactPoint.status

    ↩ Parent

    The most recent observed state of a Grafana resource

    NameTypeDescriptionRequired
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false

    GrafanaContactPoint.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaDashboard

    ↩ Parent

    GrafanaDashboard is the Schema for the grafanadashboards API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaDashboardtrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaDashboardSpec defines the desired state of GrafanaDashboard

    Validations:
  • (has(self.folderUID) && !(has(self.folderRef))) || (has(self.folderRef) && !(has(self.folderUID))) || !(has(self.folderRef) && (has(self.folderUID))): Only one of folderUID or folderRef can be declared at the same time
  • (has(self.folder) && !(has(self.folderRef) || has(self.folderUID))) || !(has(self.folder)): folder field cannot be set when folderUID or folderRef is already declared
  • ((!has(oldSelf.uid) && !has(self.uid)) || (has(oldSelf.uid) && has(self.uid))): spec.uid is immutable
  • !oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport): disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state
  • true
    statusobjectGrafanaDashboardStatus defines the observed state of GrafanaDashboard
    false

    GrafanaDashboard.spec

    ↩ Parent

    GrafanaDashboardSpec defines the desired state of GrafanaDashboard

    NameTypeDescriptionRequired
    instanceSelectorobjectSelects Grafana instances for import

    Validations:
  • self == oldSelf: spec.instanceSelector is immutable
  • true
    allowCrossNamespaceImportbooleanAllow the Operator to match this resource with Grafanas outside the current namespace

    Default: false
    false
    configMapRefobjectmodel from configmap
    false
    contentCacheDurationstringCache duration for models fetched from URLs
    false
    datasources[]objectmaps required data sources to existing ones
    false
    envFrom[]objectenvironments variables from secrets or config maps
    false
    envs[]objectenvironments variables as a map
    false
    folderstringfolder assignment for dashboard
    false
    folderRefstringName of a `GrafanaFolder` resource in the same namespace
    false
    folderUIDstringUID of the target folder for this dashboard
    false
    grafanaComobjectgrafana.com/dashboards
    false
    gzipJsonstringGzipJson the model's JSON compressed with Gzip. Base64-encoded when in YAML.

    Format: byte
    false
    jsonstringmodel json
    false
    jsonnetstringJsonnet
    false
    jsonnetLibobjectJsonnet project build
    false
    plugins[]objectplugins
    false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set
    false
    suspendbooleanSuspend pauses synchronizing attempts and tells the operator to ignore changes
    false
    uidstringManually 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.

    Validations:
  • self == oldSelf: spec.uid is immutable
  • false
    urlstringmodel url
    false
    urlAuthorizationobjectauthorization options for model from url
    false

    GrafanaDashboard.spec.instanceSelector

    ↩ Parent

    Selects Grafana instances for import

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaDashboard.spec.instanceSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaDashboard.spec.configMapRef

    ↩ Parent

    model from configmap

    NameTypeDescriptionRequired
    keystringThe key to select.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the ConfigMap or its key must be defined
    false

    GrafanaDashboard.spec.datasources[index]

    ↩ Parent

    GrafanaResourceDatasource is used to set the datasource name of any templated datasources in content definitions (e.g., dashboard JSON).

    NameTypeDescriptionRequired
    datasourceNamestring
    true
    inputNamestring
    true

    GrafanaDashboard.spec.envFrom[index]

    ↩ Parent

    NameTypeDescriptionRequired
    configMapKeyRefobjectSelects a key of a ConfigMap.
    false
    secretKeyRefobjectSelects a key of a Secret.
    false

    GrafanaDashboard.spec.envFrom[index].configMapKeyRef

    ↩ Parent

    Selects a key of a ConfigMap.

    NameTypeDescriptionRequired
    keystringThe key to select.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the ConfigMap or its key must be defined
    false

    GrafanaDashboard.spec.envFrom[index].secretKeyRef

    ↩ Parent

    Selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaDashboard.spec.envs[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestringInline env value
    false
    valueFromobjectReference on value source, might be the reference on a secret or config map
    false

    GrafanaDashboard.spec.envs[index].valueFrom

    ↩ Parent

    Reference on value source, might be the reference on a secret or config map

    NameTypeDescriptionRequired
    configMapKeyRefobjectSelects a key of a ConfigMap.
    false
    secretKeyRefobjectSelects a key of a Secret.
    false

    GrafanaDashboard.spec.envs[index].valueFrom.configMapKeyRef

    ↩ Parent

    Selects a key of a ConfigMap.

    NameTypeDescriptionRequired
    keystringThe key to select.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the ConfigMap or its key must be defined
    false

    GrafanaDashboard.spec.envs[index].valueFrom.secretKeyRef

    ↩ Parent

    Selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaDashboard.spec.grafanaCom

    ↩ Parent

    grafana.com/dashboards

    NameTypeDescriptionRequired
    idinteger
    true
    revisioninteger
    false

    GrafanaDashboard.spec.jsonnetLib

    ↩ Parent

    Jsonnet project build

    NameTypeDescriptionRequired
    fileNamestring
    true
    gzipJsonnetProjectstring

    Format: byte
    true
    jPath[]string
    false

    GrafanaDashboard.spec.plugins[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    versionstring
    true

    GrafanaDashboard.spec.urlAuthorization

    ↩ Parent

    authorization options for model from url

    NameTypeDescriptionRequired
    basicAuthobject
    false

    GrafanaDashboard.spec.urlAuthorization.basicAuth

    ↩ Parent

    NameTypeDescriptionRequired
    passwordobjectSecretKeySelector selects a key of a Secret.
    false
    usernameobjectSecretKeySelector selects a key of a Secret.
    false

    GrafanaDashboard.spec.urlAuthorization.basicAuth.password

    ↩ Parent

    SecretKeySelector selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaDashboard.spec.urlAuthorization.basicAuth.username

    ↩ Parent

    SecretKeySelector selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaDashboard.status

    ↩ Parent

    GrafanaDashboardStatus defines the observed state of GrafanaDashboard

    NameTypeDescriptionRequired
    NoMatchingInstancesbooleanThe dashboard instanceSelector can't find matching grafana instances
    false
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    contentCachestring

    Format: byte
    false
    contentTimestampstring

    Format: date-time
    false
    contentUrlstring
    false
    hashstring
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false
    uidstring
    false

    GrafanaDashboard.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaDatasource

    ↩ Parent

    GrafanaDatasource is the Schema for the grafanadatasources API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaDatasourcetrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaDatasourceSpec defines the desired state of GrafanaDatasource

    Validations:
  • ((!has(oldSelf.uid) && !has(self.uid)) || (has(oldSelf.uid) && has(self.uid))): spec.uid is immutable
  • !oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport): disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state
  • true
    statusobjectGrafanaDatasourceStatus defines the observed state of GrafanaDatasource
    false

    GrafanaDatasource.spec

    ↩ Parent

    GrafanaDatasourceSpec defines the desired state of GrafanaDatasource

    NameTypeDescriptionRequired
    datasourceobject
    true
    instanceSelectorobjectSelects Grafana instances for import

    Validations:
  • self == oldSelf: spec.instanceSelector is immutable
  • true
    allowCrossNamespaceImportbooleanAllow the Operator to match this resource with Grafanas outside the current namespace

    Default: false
    false
    plugins[]objectplugins
    false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set
    false
    suspendbooleanSuspend pauses synchronizing attempts and tells the operator to ignore changes
    false
    uidstringThe 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

    Validations:
  • self == oldSelf: spec.uid is immutable
  • false
    valuesFrom[]objectenvironments variables from secrets or config maps
    false

    GrafanaDatasource.spec.datasource

    ↩ Parent

    NameTypeDescriptionRequired
    accessstring
    false
    basicAuthboolean
    false
    basicAuthUserstring
    false
    databasestring
    false
    editablebooleanWhether to enable/disable editing of the datasource in Grafana UI
    false
    isDefaultboolean
    false
    jsonDataobject
    false
    namestring
    false
    orgIdintegerDeprecated field, it has no effect

    Format: int64
    false
    secureJsonDataobject
    false
    typestring
    false
    uidstringDeprecated field, use spec.uid instead
    false
    urlstring
    false
    userstring
    false

    GrafanaDatasource.spec.instanceSelector

    ↩ Parent

    Selects Grafana instances for import

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaDatasource.spec.instanceSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaDatasource.spec.plugins[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    versionstring
    true

    GrafanaDatasource.spec.valuesFrom[index]

    ↩ Parent

    NameTypeDescriptionRequired
    targetPathstring
    true
    valueFromobject

    Validations:
  • (has(self.configMapKeyRef) && !has(self.secretKeyRef)) || (!has(self.configMapKeyRef) && has(self.secretKeyRef)): Either configMapKeyRef or secretKeyRef must be set
  • true

    GrafanaDatasource.spec.valuesFrom[index].valueFrom

    ↩ Parent

    NameTypeDescriptionRequired
    configMapKeyRefobjectSelects a key of a ConfigMap.
    false
    secretKeyRefobjectSelects a key of a Secret.
    false

    GrafanaDatasource.spec.valuesFrom[index].valueFrom.configMapKeyRef

    ↩ Parent

    Selects a key of a ConfigMap.

    NameTypeDescriptionRequired
    keystringThe key to select.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the ConfigMap or its key must be defined
    false

    GrafanaDatasource.spec.valuesFrom[index].valueFrom.secretKeyRef

    ↩ Parent

    Selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaDatasource.status

    ↩ Parent

    GrafanaDatasourceStatus defines the observed state of GrafanaDatasource

    NameTypeDescriptionRequired
    NoMatchingInstancesbooleanThe datasource instanceSelector can't find matching grafana instances
    false
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    hashstring
    false
    lastMessagestringDeprecated: Check status.conditions or operator logs
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false
    uidstring
    false

    GrafanaDatasource.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaFolder

    ↩ Parent

    GrafanaFolder is the Schema for the grafanafolders API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaFoldertrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaFolderSpec defines the desired state of GrafanaFolder

    Validations:
  • (has(self.parentFolderUID) && !(has(self.parentFolderRef))) || (has(self.parentFolderRef) && !(has(self.parentFolderUID))) || !(has(self.parentFolderRef) && (has(self.parentFolderUID))): Only one of parentFolderUID or parentFolderRef can be set
  • ((!has(oldSelf.uid) && !has(self.uid)) || (has(oldSelf.uid) && has(self.uid))): spec.uid is immutable
  • !oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport): disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state
  • true
    statusobjectGrafanaFolderStatus defines the observed state of GrafanaFolder
    false

    GrafanaFolder.spec

    ↩ Parent

    GrafanaFolderSpec defines the desired state of GrafanaFolder

    NameTypeDescriptionRequired
    instanceSelectorobjectSelects Grafana instances for import

    Validations:
  • self == oldSelf: spec.instanceSelector is immutable
  • true
    allowCrossNamespaceImportbooleanAllow the Operator to match this resource with Grafanas outside the current namespace

    Default: false
    false
    parentFolderRefstringReference to an existing GrafanaFolder CR in the same namespace
    false
    parentFolderUIDstringUID of the folder in which the current folder should be created
    false
    permissionsstringRaw json with folder permissions, potentially exported from Grafana
    false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set
    false
    suspendbooleanSuspend pauses synchronizing attempts and tells the operator to ignore changes
    false
    titlestringDisplay name of the folder in Grafana
    false
    uidstringManually specify the UID the Folder is created with. Can be any string consisting of alphanumeric characters, - and _ with a maximum length of 40

    Validations:
  • self == oldSelf: spec.uid is immutable
  • false

    GrafanaFolder.spec.instanceSelector

    ↩ Parent

    Selects Grafana instances for import

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaFolder.spec.instanceSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaFolder.status

    ↩ Parent

    GrafanaFolderStatus defines the observed state of GrafanaFolder

    NameTypeDescriptionRequired
    NoMatchingInstancesbooleanThe folder instanceSelector can't find matching grafana instances
    false
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    hashstring
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false

    GrafanaFolder.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaLibraryPanel

    ↩ Parent

    GrafanaLibraryPanel is the Schema for the grafanalibrarypanels API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaLibraryPaneltrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaLibraryPanelSpec defines the desired state of GrafanaLibraryPanel

    Validations:
  • (has(self.folderUID) && !(has(self.folderRef))) || (has(self.folderRef) && !(has(self.folderUID))) || !(has(self.folderRef) && (has(self.folderUID))): Only one of folderUID or folderRef can be declared at the same time
  • ((!has(oldSelf.uid) && !has(self.uid)) || (has(oldSelf.uid) && has(self.uid))): spec.uid is immutable
  • !oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport): disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state
  • true
    statusobjectGrafanaLibraryPanelStatus defines the observed state of GrafanaLibraryPanel
    false

    GrafanaLibraryPanel.spec

    ↩ Parent

    GrafanaLibraryPanelSpec defines the desired state of GrafanaLibraryPanel

    NameTypeDescriptionRequired
    instanceSelectorobjectSelects Grafana instances for import

    Validations:
  • self == oldSelf: spec.instanceSelector is immutable
  • true
    allowCrossNamespaceImportbooleanAllow the Operator to match this resource with Grafanas outside the current namespace

    Default: false
    false
    configMapRefobjectmodel from configmap
    false
    contentCacheDurationstringCache duration for models fetched from URLs
    false
    datasources[]objectmaps required data sources to existing ones
    false
    envFrom[]objectenvironments variables from secrets or config maps
    false
    envs[]objectenvironments variables as a map
    false
    folderRefstringName of a `GrafanaFolder` resource in the same namespace
    false
    folderUIDstringUID of the target folder for this dashboard
    false
    grafanaComobjectgrafana.com/dashboards
    false
    gzipJsonstringGzipJson the model's JSON compressed with Gzip. Base64-encoded when in YAML.

    Format: byte
    false
    jsonstringmodel json
    false
    jsonnetstringJsonnet
    false
    jsonnetLibobjectJsonnet project build
    false
    plugins[]objectplugins
    false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set
    false
    suspendbooleanSuspend pauses synchronizing attempts and tells the operator to ignore changes
    false
    uidstringManually 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.

    Validations:
  • self == oldSelf: spec.uid is immutable
  • false
    urlstringmodel url
    false
    urlAuthorizationobjectauthorization options for model from url
    false

    GrafanaLibraryPanel.spec.instanceSelector

    ↩ Parent

    Selects Grafana instances for import

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaLibraryPanel.spec.instanceSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaLibraryPanel.spec.configMapRef

    ↩ Parent

    model from configmap

    NameTypeDescriptionRequired
    keystringThe key to select.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the ConfigMap or its key must be defined
    false

    GrafanaLibraryPanel.spec.datasources[index]

    ↩ Parent

    GrafanaResourceDatasource is used to set the datasource name of any templated datasources in content definitions (e.g., dashboard JSON).

    NameTypeDescriptionRequired
    datasourceNamestring
    true
    inputNamestring
    true

    GrafanaLibraryPanel.spec.envFrom[index]

    ↩ Parent

    NameTypeDescriptionRequired
    configMapKeyRefobjectSelects a key of a ConfigMap.
    false
    secretKeyRefobjectSelects a key of a Secret.
    false

    GrafanaLibraryPanel.spec.envFrom[index].configMapKeyRef

    ↩ Parent

    Selects a key of a ConfigMap.

    NameTypeDescriptionRequired
    keystringThe key to select.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the ConfigMap or its key must be defined
    false

    GrafanaLibraryPanel.spec.envFrom[index].secretKeyRef

    ↩ Parent

    Selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaLibraryPanel.spec.envs[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestringInline env value
    false
    valueFromobjectReference on value source, might be the reference on a secret or config map
    false

    GrafanaLibraryPanel.spec.envs[index].valueFrom

    ↩ Parent

    Reference on value source, might be the reference on a secret or config map

    NameTypeDescriptionRequired
    configMapKeyRefobjectSelects a key of a ConfigMap.
    false
    secretKeyRefobjectSelects a key of a Secret.
    false

    GrafanaLibraryPanel.spec.envs[index].valueFrom.configMapKeyRef

    ↩ Parent

    Selects a key of a ConfigMap.

    NameTypeDescriptionRequired
    keystringThe key to select.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the ConfigMap or its key must be defined
    false

    GrafanaLibraryPanel.spec.envs[index].valueFrom.secretKeyRef

    ↩ Parent

    Selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaLibraryPanel.spec.grafanaCom

    ↩ Parent

    grafana.com/dashboards

    NameTypeDescriptionRequired
    idinteger
    true
    revisioninteger
    false

    GrafanaLibraryPanel.spec.jsonnetLib

    ↩ Parent

    Jsonnet project build

    NameTypeDescriptionRequired
    fileNamestring
    true
    gzipJsonnetProjectstring

    Format: byte
    true
    jPath[]string
    false

    GrafanaLibraryPanel.spec.plugins[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    versionstring
    true

    GrafanaLibraryPanel.spec.urlAuthorization

    ↩ Parent

    authorization options for model from url

    NameTypeDescriptionRequired
    basicAuthobject
    false

    GrafanaLibraryPanel.spec.urlAuthorization.basicAuth

    ↩ Parent

    NameTypeDescriptionRequired
    passwordobjectSecretKeySelector selects a key of a Secret.
    false
    usernameobjectSecretKeySelector selects a key of a Secret.
    false

    GrafanaLibraryPanel.spec.urlAuthorization.basicAuth.password

    ↩ Parent

    SecretKeySelector selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaLibraryPanel.spec.urlAuthorization.basicAuth.username

    ↩ Parent

    SecretKeySelector selects a key of a Secret.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    GrafanaLibraryPanel.status

    ↩ Parent

    GrafanaLibraryPanelStatus defines the observed state of GrafanaLibraryPanel

    NameTypeDescriptionRequired
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    contentCachestring

    Format: byte
    false
    contentTimestampstring

    Format: date-time
    false
    contentUrlstring
    false
    hashstring
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false
    uidstring
    false

    GrafanaLibraryPanel.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaMuteTiming

    ↩ Parent

    GrafanaMuteTiming is the Schema for the GrafanaMuteTiming API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaMuteTimingtrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaMuteTimingSpec defines the desired state of GrafanaMuteTiming

    Validations:
  • !oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport): disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state
  • true
    statusobjectThe most recent observed state of a Grafana resource
    false

    GrafanaMuteTiming.spec

    ↩ Parent

    GrafanaMuteTimingSpec defines the desired state of GrafanaMuteTiming

    NameTypeDescriptionRequired
    instanceSelectorobjectSelects Grafana instances for import

    Validations:
  • self == oldSelf: spec.instanceSelector is immutable
  • true
    namestringA unique name for the mute timing
    true
    time_intervals[]objectTime intervals for muting
    true
    allowCrossNamespaceImportbooleanAllow the Operator to match this resource with Grafanas outside the current namespace

    Default: false
    false
    editablebooleanWhether to enable or disable editing of the mute timing in Grafana UI

    Validations:
  • self == oldSelf: spec.editable is immutable
  • Default: true
    false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set
    false
    suspendbooleanSuspend pauses synchronizing attempts and tells the operator to ignore changes
    false

    GrafanaMuteTiming.spec.instanceSelector

    ↩ Parent

    Selects Grafana instances for import

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaMuteTiming.spec.instanceSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaMuteTiming.spec.time_intervals[index]

    ↩ Parent

    NameTypeDescriptionRequired
    days_of_month[]stringThe 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.
    false
    locationstringDepending on the location, the time range is displayed in local time.
    false
    months[]stringThe months of the year in either numerical or the full calendar month. For example: 1, may.
    false
    times[]objectThe time inclusive of the start and exclusive of the end time (in UTC if no location has been selected, otherwise local time).
    false
    weekdays[]stringThe day or range of days of the week. For example: monday, thursday
    false
    years[]stringThe year or years for the interval. For example: 2021
    false

    GrafanaMuteTiming.spec.time_intervals[index].times[index]

    ↩ Parent

    NameTypeDescriptionRequired
    end_timestringend time
    true
    start_timestringstart time
    true

    GrafanaMuteTiming.status

    ↩ Parent

    The most recent observed state of a Grafana resource

    NameTypeDescriptionRequired
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false

    GrafanaMuteTiming.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaNotificationPolicy

    ↩ Parent

    GrafanaNotificationPolicy is the Schema for the GrafanaNotificationPolicy API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaNotificationPolicytrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaNotificationPolicySpec defines the desired state of GrafanaNotificationPolicy

    Validations:
  • ((!has(oldSelf.editable) && !has(self.editable)) || (has(oldSelf.editable) && has(self.editable))): spec.editable is immutable
  • !oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport): disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state
  • true
    statusobjectGrafanaNotificationPolicyStatus defines the observed state of GrafanaNotificationPolicy
    false

    GrafanaNotificationPolicy.spec

    ↩ Parent

    GrafanaNotificationPolicySpec defines the desired state of GrafanaNotificationPolicy

    NameTypeDescriptionRequired
    instanceSelectorobjectSelects Grafana instances for import

    Validations:
  • self == oldSelf: spec.instanceSelector is immutable
  • true
    routeobjectRoutes for alerts to match against
    true
    allowCrossNamespaceImportbooleanAllow the Operator to match this resource with Grafanas outside the current namespace

    Default: false
    false
    editablebooleanWhether to enable or disable editing of the notification policy in Grafana UI

    Validations:
  • self == oldSelf: Value is immutable
  • false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set
    false
    suspendbooleanSuspend pauses synchronizing attempts and tells the operator to ignore changes
    false

    GrafanaNotificationPolicy.spec.instanceSelector

    ↩ Parent

    Selects Grafana instances for import

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaNotificationPolicy.spec.instanceSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaNotificationPolicy.spec.route

    ↩ Parent

    Routes for alerts to match against

    NameTypeDescriptionRequired
    receiverstringreceiver
    true
    active_time_intervals[]string
    false
    continuebooleancontinue
    false
    group_by[]stringgroup by
    false
    group_intervalstringgroup interval
    false
    group_waitstringgroup wait
    false
    match_remap[string]stringmatch re
    false
    matchers[]objectmatchers
    false
    mute_time_intervals[]stringmute time intervals
    false
    object_matchers[][]stringobject matchers
    false
    provenancestringprovenance
    false
    repeat_intervalstringrepeat interval
    false
    routeSelectorobjectselects GrafanaNotificationPolicyRoutes to merge in when specified mutually exclusive with Routes
    false
    routesJSONroutes, mutually exclusive with RouteSelector
    false

    GrafanaNotificationPolicy.spec.route.matchers[index]

    ↩ Parent

    NameTypeDescriptionRequired
    isRegexbooleanis regex
    true
    valuestringvalue
    true
    isEqualbooleanis equal
    false
    namestringname
    false

    GrafanaNotificationPolicy.spec.route.routeSelector

    ↩ Parent

    selects GrafanaNotificationPolicyRoutes to merge in when specified mutually exclusive with Routes

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaNotificationPolicy.spec.route.routeSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaNotificationPolicy.status

    ↩ Parent

    GrafanaNotificationPolicyStatus defines the observed state of GrafanaNotificationPolicy

    NameTypeDescriptionRequired
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    discoveredRoutes[]string
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false

    GrafanaNotificationPolicy.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaNotificationPolicyRoute

    ↩ Parent

    GrafanaNotificationPolicyRoute is the Schema for the grafananotificationpolicyroutes API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaNotificationPolicyRoutetrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaNotificationPolicyRouteSpec defines the desired state of GrafanaNotificationPolicyRoute
    true
    statusobjectThe most recent observed state of a Grafana resource
    false

    GrafanaNotificationPolicyRoute.spec

    ↩ Parent

    GrafanaNotificationPolicyRouteSpec defines the desired state of GrafanaNotificationPolicyRoute

    NameTypeDescriptionRequired
    receiverstringreceiver
    true
    active_time_intervals[]string
    false
    continuebooleancontinue
    false
    group_by[]stringgroup by
    false
    group_intervalstringgroup interval
    false
    group_waitstringgroup wait
    false
    match_remap[string]stringmatch re
    false
    matchers[]objectmatchers
    false
    mute_time_intervals[]stringmute time intervals
    false
    object_matchers[][]stringobject matchers
    false
    provenancestringprovenance
    false
    repeat_intervalstringrepeat interval
    false
    routeSelectorobjectselects GrafanaNotificationPolicyRoutes to merge in when specified mutually exclusive with Routes
    false
    routesJSONroutes, mutually exclusive with RouteSelector
    false

    GrafanaNotificationPolicyRoute.spec.matchers[index]

    ↩ Parent

    NameTypeDescriptionRequired
    isRegexbooleanis regex
    true
    valuestringvalue
    true
    isEqualbooleanis equal
    false
    namestringname
    false

    GrafanaNotificationPolicyRoute.spec.routeSelector

    ↩ Parent

    selects GrafanaNotificationPolicyRoutes to merge in when specified mutually exclusive with Routes

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaNotificationPolicyRoute.spec.routeSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaNotificationPolicyRoute.status

    ↩ Parent

    The most recent observed state of a Grafana resource

    NameTypeDescriptionRequired
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false

    GrafanaNotificationPolicyRoute.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaNotificationTemplate

    ↩ Parent

    GrafanaNotificationTemplate is the Schema for the GrafanaNotificationTemplate API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaNotificationTemplatetrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaNotificationTemplateSpec defines the desired state of GrafanaNotificationTemplate

    Validations:
  • ((!has(oldSelf.editable) && !has(self.editable)) || (has(oldSelf.editable) && has(self.editable))): spec.editable is immutable
  • !oldSelf.allowCrossNamespaceImport || (oldSelf.allowCrossNamespaceImport && self.allowCrossNamespaceImport): disabling spec.allowCrossNamespaceImport requires a recreate to ensure desired state
  • true
    statusobjectThe most recent observed state of a Grafana resource
    false

    GrafanaNotificationTemplate.spec

    ↩ Parent

    GrafanaNotificationTemplateSpec defines the desired state of GrafanaNotificationTemplate

    NameTypeDescriptionRequired
    instanceSelectorobjectSelects Grafana instances for import

    Validations:
  • self == oldSelf: spec.instanceSelector is immutable
  • true
    namestringTemplate name
    true
    allowCrossNamespaceImportbooleanAllow the Operator to match this resource with Grafanas outside the current namespace

    Default: false
    false
    editablebooleanWhether to enable or disable editing of the notification template in Grafana UI

    Validations:
  • self == oldSelf: spec.editable is immutable
  • false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set
    false
    suspendbooleanSuspend pauses synchronizing attempts and tells the operator to ignore changes
    false
    templatestringTemplate content
    false

    GrafanaNotificationTemplate.spec.instanceSelector

    ↩ Parent

    Selects Grafana instances for import

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    GrafanaNotificationTemplate.spec.instanceSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    GrafanaNotificationTemplate.status

    ↩ Parent

    The most recent observed state of a Grafana resource

    NameTypeDescriptionRequired
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false

    GrafanaNotificationTemplate.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    Grafana

    ↩ Parent

    Grafana is the Schema for the grafanas API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanatrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaSpec defines the desired state of Grafana
    true
    statusobjectGrafanaStatus defines the observed state of Grafana
    false

    Grafana.spec

    ↩ Parent

    GrafanaSpec defines the desired state of Grafana

    NameTypeDescriptionRequired
    clientobjectClient defines how the grafana-operator talks to the grafana instance.
    false
    configmap[string]map[string]stringConfig defines how your grafana ini file should looks like.
    false
    deploymentobjectDeployment sets how the deployment object should look like with your grafana instance, contains a number of defaults.
    false
    disableDefaultAdminSecretbooleanDisableDefaultAdminSecret prevents operator from creating default admin-credentials secret
    false
    disableDefaultSecurityContextenumDisableDefaultSecurityContext prevents the operator from populating securityContext on deployments

    Enum: Pod, Container, All
    false
    externalobjectExternal enables you to configure external grafana instances that is not managed by the operator.
    false
    httpRouteobjectHTTPRoute customizes the GatewayAPI HTTPRoute Object. It will not be created if this is not set
    false
    ingressobjectIngress sets how the ingress object should look like with your grafana instance.
    false
    jsonnetobject
    false
    persistentVolumeClaimobjectPersistentVolumeClaim creates a PVC if you need to attach one to your grafana instance.
    false
    preferencesobjectPreferences holds the Grafana Preferences settings
    false
    routeobjectRoute sets how the ingress object should look like with your grafana instance, this only works in Openshift.
    false
    serviceobjectService sets how the service object should look like with your grafana instance, contains a number of defaults.
    false
    serviceAccountobjectServiceAccount sets how the ServiceAccount object should look like with your grafana instance, contains a number of defaults.
    false
    suspendbooleanSuspend pauses reconciliation of owned resources like deployments, Services, Etc. upon changes
    false
    versionstringVersion sets the tag of the default image: docker.io/grafana/grafana. Allows full image refs with/without sha256checksum: "registry/repo/image:tag@sha" default: 12.3.0
    false

    Grafana.spec.client

    ↩ Parent

    Client defines how the grafana-operator talks to the grafana instance.

    NameTypeDescriptionRequired
    headersmap[string]stringCustom HTTP headers to use when interacting with this Grafana.
    false
    preferIngressbooleanIf the operator should send it's request through the grafana instances ingress object instead of through the service.
    false
    timeoutinteger
    false
    tlsobjectTLS Configuration used to talk with the grafana instance.

    Validations:
  • (has(self.insecureSkipVerify) && !(has(self.certSecretRef))) || (has(self.certSecretRef) && !(has(self.insecureSkipVerify))): insecureSkipVerify and certSecretRef cannot be set at the same time
  • false
    useKubeAuthbooleanUse Kubernetes Serviceaccount as authentication Requires configuring [auth.jwt] in the instance
    false

    Grafana.spec.client.tls

    ↩ Parent

    TLS Configuration used to talk with the grafana instance.

    NameTypeDescriptionRequired
    certSecretRefobjectUse a secret as a reference to give TLS Certificate information
    false
    insecureSkipVerifybooleanDisable the CA check of the server
    false

    Grafana.spec.client.tls.certSecretRef

    ↩ Parent

    Use a secret as a reference to give TLS Certificate information

    NameTypeDescriptionRequired
    namestringname is unique within a namespace to reference a secret resource.
    false
    namespacestringnamespace defines the space within which the secret name must be unique.
    false

    Grafana.spec.deployment

    ↩ Parent

    Deployment sets how the deployment object should look like with your grafana instance, contains a number of defaults.

    NameTypeDescriptionRequired
    metadataobject
    false
    specobject
    false

    Grafana.spec.deployment.metadata

    ↩ Parent

    NameTypeDescriptionRequired
    annotationsmap[string]string
    false
    labelsmap[string]string
    false

    Grafana.spec.deployment.spec

    ↩ Parent

    NameTypeDescriptionRequired
    minReadySecondsinteger

    Format: int32
    false
    pausedboolean
    false
    progressDeadlineSecondsinteger

    Format: int32
    false
    replicasinteger

    Format: int32
    false
    revisionHistoryLimitinteger

    Format: int32
    false
    selectorobject
    false
    strategyobject
    false
    templateobject
    false

    Grafana.spec.deployment.spec.selector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.selector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.strategy

    ↩ Parent

    NameTypeDescriptionRequired
    rollingUpdateobject
    false
    typestring
    false

    Grafana.spec.deployment.spec.strategy.rollingUpdate

    ↩ Parent

    NameTypeDescriptionRequired
    maxSurgeint or string
    false
    maxUnavailableint or string
    false

    Grafana.spec.deployment.spec.template

    ↩ Parent

    NameTypeDescriptionRequired
    metadataobject
    false
    specobject
    false

    Grafana.spec.deployment.spec.template.metadata

    ↩ Parent

    NameTypeDescriptionRequired
    annotationsmap[string]string
    false
    labelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec

    ↩ Parent

    NameTypeDescriptionRequired
    activeDeadlineSecondsinteger

    Format: int64
    false
    affinityobject
    false
    automountServiceAccountTokenboolean
    false
    containers[]object
    false
    dnsConfigobject
    false
    dnsPolicystring
    false
    enableServiceLinksboolean
    false
    ephemeralContainers[]object
    false
    hostAliases[]object
    false
    hostIPCboolean
    false
    hostNetworkboolean
    false
    hostPIDboolean
    false
    hostUsersboolean
    false
    hostnamestring
    false
    imagePullSecrets[]object
    false
    initContainers[]object
    false
    nodeNamestring
    false
    nodeSelectormap[string]string
    false
    osobject
    false
    overheadmap[string]int or string
    false
    preemptionPolicystring
    false
    priorityinteger

    Format: int32
    false
    priorityClassNamestring
    false
    readinessGates[]object
    false
    restartPolicystring
    false
    runtimeClassNamestring
    false
    schedulerNamestring
    false
    securityContextobject
    false
    serviceAccountstring
    false
    serviceAccountNamestring
    false
    setHostnameAsFQDNboolean
    false
    shareProcessNamespaceboolean
    false
    subdomainstring
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    tolerations[]object
    false
    topologySpreadConstraints[]object
    false
    volumes[]object
    false

    Grafana.spec.deployment.spec.template.spec.affinity

    ↩ Parent

    NameTypeDescriptionRequired
    nodeAffinityobject
    false
    podAffinityobject
    false
    podAntiAffinityobject
    false

    Grafana.spec.deployment.spec.template.spec.affinity.nodeAffinity

    ↩ Parent

    NameTypeDescriptionRequired
    preferredDuringSchedulingIgnoredDuringExecution[]object
    false
    requiredDuringSchedulingIgnoredDuringExecutionobject
    false

    Grafana.spec.deployment.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index]

    ↩ Parent

    NameTypeDescriptionRequired
    preferenceobject
    true
    weightinteger

    Format: int32
    true

    Grafana.spec.deployment.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchFields[]object
    false

    Grafana.spec.deployment.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

    ↩ Parent

    NameTypeDescriptionRequired
    nodeSelectorTerms[]object
    true

    Grafana.spec.deployment.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index]

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchFields[]object
    false

    Grafana.spec.deployment.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity

    ↩ Parent

    NameTypeDescriptionRequired
    preferredDuringSchedulingIgnoredDuringExecution[]object
    false
    requiredDuringSchedulingIgnoredDuringExecution[]object
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[index]

    ↩ Parent

    NameTypeDescriptionRequired
    podAffinityTermobject
    true
    weightinteger

    Format: int32
    true

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm

    ↩ Parent

    NameTypeDescriptionRequired
    topologyKeystring
    true
    labelSelectorobject
    false
    matchLabelKeys[]string
    false
    mismatchLabelKeys[]string
    false
    namespaceSelectorobject
    false
    namespaces[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm.labelSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm.labelSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm.namespaceSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm.namespaceSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[index]

    ↩ Parent

    NameTypeDescriptionRequired
    topologyKeystring
    true
    labelSelectorobject
    false
    matchLabelKeys[]string
    false
    mismatchLabelKeys[]string
    false
    namespaceSelectorobject
    false
    namespaces[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[index].labelSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[index].labelSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[index].namespaceSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[index].namespaceSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity

    ↩ Parent

    NameTypeDescriptionRequired
    preferredDuringSchedulingIgnoredDuringExecution[]object
    false
    requiredDuringSchedulingIgnoredDuringExecution[]object
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[index]

    ↩ Parent

    NameTypeDescriptionRequired
    podAffinityTermobject
    true
    weightinteger

    Format: int32
    true

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm

    ↩ Parent

    NameTypeDescriptionRequired
    topologyKeystring
    true
    labelSelectorobject
    false
    matchLabelKeys[]string
    false
    mismatchLabelKeys[]string
    false
    namespaceSelectorobject
    false
    namespaces[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm.labelSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm.labelSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm.namespaceSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].podAffinityTerm.namespaceSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[index]

    ↩ Parent

    NameTypeDescriptionRequired
    topologyKeystring
    true
    labelSelectorobject
    false
    matchLabelKeys[]string
    false
    mismatchLabelKeys[]string
    false
    namespaceSelectorobject
    false
    namespaces[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[index].labelSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[index].labelSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[index].namespaceSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[index].namespaceSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.containers[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    args[]string
    false
    command[]string
    false
    env[]object
    false
    envFrom[]object
    false
    imagestring
    false
    imagePullPolicystring
    false
    lifecycleobject
    false
    livenessProbeobject
    false
    ports[]object
    false
    readinessProbeobject
    false
    resizePolicy[]object
    false
    resourcesobject
    false
    restartPolicystring
    false
    restartPolicyRules[]object
    false
    securityContextobject
    false
    startupProbeobject
    false
    stdinboolean
    false
    stdinOnceboolean
    false
    terminationMessagePathstring
    false
    terminationMessagePolicystring
    false
    ttyboolean
    false
    volumeDevices[]object
    false
    volumeMounts[]object
    false
    workingDirstring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].env[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    false
    valueFromobject
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].env[index].valueFrom

    ↩ Parent

    NameTypeDescriptionRequired
    configMapKeyRefobject
    false
    fieldRefobject
    false
    fileKeyRefobject
    false
    resourceFieldRefobject
    false
    secretKeyRefobject
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].env[index].valueFrom.configMapKeyRef

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].env[index].valueFrom.fieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    fieldPathstring
    true
    apiVersionstring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].env[index].valueFrom.fileKeyRef

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    pathstring
    true
    volumeNamestring
    true
    optionalboolean

    Default: false
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].env[index].valueFrom.resourceFieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    resourcestring
    true
    containerNamestring
    false
    divisorint or string
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].env[index].valueFrom.secretKeyRef

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].envFrom[index]

    ↩ Parent

    NameTypeDescriptionRequired
    configMapRefobject
    false
    prefixstring
    false
    secretRefobject
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].envFrom[index].configMapRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].envFrom[index].secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle

    ↩ Parent

    NameTypeDescriptionRequired
    postStartobject
    false
    preStopobject
    false
    stopSignalstring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.postStart

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    httpGetobject
    false
    sleepobject
    false
    tcpSocketobject
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.postStart.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.postStart.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.postStart.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.postStart.sleep

    ↩ Parent

    NameTypeDescriptionRequired
    secondsinteger

    Format: int64
    true

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.postStart.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.preStop

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    httpGetobject
    false
    sleepobject
    false
    tcpSocketobject
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.preStop.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.preStop.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.preStop.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.preStop.sleep

    ↩ Parent

    NameTypeDescriptionRequired
    secondsinteger

    Format: int64
    true

    Grafana.spec.deployment.spec.template.spec.containers[index].lifecycle.preStop.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].livenessProbe

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    failureThresholdinteger

    Format: int32
    false
    grpcobject
    false
    httpGetobject
    false
    initialDelaySecondsinteger

    Format: int32
    false
    periodSecondsinteger

    Format: int32
    false
    successThresholdinteger

    Format: int32
    false
    tcpSocketobject
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    timeoutSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].livenessProbe.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].livenessProbe.grpc

    ↩ Parent

    NameTypeDescriptionRequired
    portinteger

    Format: int32
    true
    servicestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].livenessProbe.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].livenessProbe.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.containers[index].livenessProbe.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].ports[index]

    ↩ Parent

    NameTypeDescriptionRequired
    containerPortinteger

    Format: int32
    true
    hostIPstring
    false
    hostPortinteger

    Format: int32
    false
    namestring
    false
    protocolstring

    Default: TCP
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].readinessProbe

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    failureThresholdinteger

    Format: int32
    false
    grpcobject
    false
    httpGetobject
    false
    initialDelaySecondsinteger

    Format: int32
    false
    periodSecondsinteger

    Format: int32
    false
    successThresholdinteger

    Format: int32
    false
    tcpSocketobject
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    timeoutSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].readinessProbe.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].readinessProbe.grpc

    ↩ Parent

    NameTypeDescriptionRequired
    portinteger

    Format: int32
    true
    servicestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].readinessProbe.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].readinessProbe.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.containers[index].readinessProbe.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].resizePolicy[index]

    ↩ Parent

    NameTypeDescriptionRequired
    resourceNamestring
    true
    restartPolicystring
    true

    Grafana.spec.deployment.spec.template.spec.containers[index].resources

    ↩ Parent

    NameTypeDescriptionRequired
    claims[]object
    false
    limitsmap[string]int or string
    false
    requestsmap[string]int or string
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].resources.claims[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    requeststring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].restartPolicyRules[index]

    ↩ Parent

    NameTypeDescriptionRequired
    actionstring
    true
    exitCodesobject
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].restartPolicyRules[index].exitCodes

    ↩ Parent

    NameTypeDescriptionRequired
    operatorstring
    true
    values[]integer
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].securityContext

    ↩ Parent

    NameTypeDescriptionRequired
    allowPrivilegeEscalationboolean
    false
    appArmorProfileobject
    false
    capabilitiesobject
    false
    privilegedboolean
    false
    procMountstring
    false
    readOnlyRootFilesystemboolean
    false
    runAsGroupinteger

    Format: int64
    false
    runAsNonRootboolean
    false
    runAsUserinteger

    Format: int64
    false
    seLinuxOptionsobject
    false
    seccompProfileobject
    false
    windowsOptionsobject
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].securityContext.appArmorProfile

    ↩ Parent

    NameTypeDescriptionRequired
    typestring
    true
    localhostProfilestring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].securityContext.capabilities

    ↩ Parent

    NameTypeDescriptionRequired
    add[]string
    false
    drop[]string
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].securityContext.seLinuxOptions

    ↩ Parent

    NameTypeDescriptionRequired
    levelstring
    false
    rolestring
    false
    typestring
    false
    userstring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].securityContext.seccompProfile

    ↩ Parent

    NameTypeDescriptionRequired
    typestring
    true
    localhostProfilestring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].securityContext.windowsOptions

    ↩ Parent

    NameTypeDescriptionRequired
    gmsaCredentialSpecstring
    false
    gmsaCredentialSpecNamestring
    false
    hostProcessboolean
    false
    runAsUserNamestring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].startupProbe

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    failureThresholdinteger

    Format: int32
    false
    grpcobject
    false
    httpGetobject
    false
    initialDelaySecondsinteger

    Format: int32
    false
    periodSecondsinteger

    Format: int32
    false
    successThresholdinteger

    Format: int32
    false
    tcpSocketobject
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    timeoutSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].startupProbe.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].startupProbe.grpc

    ↩ Parent

    NameTypeDescriptionRequired
    portinteger

    Format: int32
    true
    servicestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].startupProbe.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].startupProbe.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.containers[index].startupProbe.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.containers[index].volumeDevices[index]

    ↩ Parent

    NameTypeDescriptionRequired
    devicePathstring
    true
    namestring
    true

    Grafana.spec.deployment.spec.template.spec.containers[index].volumeMounts[index]

    ↩ Parent

    NameTypeDescriptionRequired
    mountPathstring
    true
    namestring
    true
    mountPropagationstring
    false
    readOnlyboolean
    false
    recursiveReadOnlystring
    false
    subPathstring
    false
    subPathExprstring
    false

    Grafana.spec.deployment.spec.template.spec.dnsConfig

    ↩ Parent

    NameTypeDescriptionRequired
    nameservers[]string
    false
    options[]object
    false
    searches[]string
    false

    Grafana.spec.deployment.spec.template.spec.dnsConfig.options[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    false
    valuestring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    args[]string
    false
    command[]string
    false
    env[]object
    false
    envFrom[]object
    false
    imagestring
    false
    imagePullPolicystring
    false
    lifecycleobject
    false
    livenessProbeobject
    false
    ports[]object
    false
    readinessProbeobject
    false
    resizePolicy[]object
    false
    resourcesobject
    false
    restartPolicystring
    false
    restartPolicyRules[]object
    false
    securityContextobject
    false
    startupProbeobject
    false
    stdinboolean
    false
    stdinOnceboolean
    false
    targetContainerNamestring
    false
    terminationMessagePathstring
    false
    terminationMessagePolicystring
    false
    ttyboolean
    false
    volumeDevices[]object
    false
    volumeMounts[]object
    false
    workingDirstring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].env[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    false
    valueFromobject
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].env[index].valueFrom

    ↩ Parent

    NameTypeDescriptionRequired
    configMapKeyRefobject
    false
    fieldRefobject
    false
    fileKeyRefobject
    false
    resourceFieldRefobject
    false
    secretKeyRefobject
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].env[index].valueFrom.configMapKeyRef

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].env[index].valueFrom.fieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    fieldPathstring
    true
    apiVersionstring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].env[index].valueFrom.fileKeyRef

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    pathstring
    true
    volumeNamestring
    true
    optionalboolean

    Default: false
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].env[index].valueFrom.resourceFieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    resourcestring
    true
    containerNamestring
    false
    divisorint or string
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].env[index].valueFrom.secretKeyRef

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].envFrom[index]

    ↩ Parent

    NameTypeDescriptionRequired
    configMapRefobject
    false
    prefixstring
    false
    secretRefobject
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].envFrom[index].configMapRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].envFrom[index].secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle

    ↩ Parent

    NameTypeDescriptionRequired
    postStartobject
    false
    preStopobject
    false
    stopSignalstring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.postStart

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    httpGetobject
    false
    sleepobject
    false
    tcpSocketobject
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.postStart.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.postStart.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.postStart.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.postStart.sleep

    ↩ Parent

    NameTypeDescriptionRequired
    secondsinteger

    Format: int64
    true

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.postStart.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.preStop

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    httpGetobject
    false
    sleepobject
    false
    tcpSocketobject
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.preStop.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.preStop.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.preStop.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.preStop.sleep

    ↩ Parent

    NameTypeDescriptionRequired
    secondsinteger

    Format: int64
    true

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].lifecycle.preStop.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].livenessProbe

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    failureThresholdinteger

    Format: int32
    false
    grpcobject
    false
    httpGetobject
    false
    initialDelaySecondsinteger

    Format: int32
    false
    periodSecondsinteger

    Format: int32
    false
    successThresholdinteger

    Format: int32
    false
    tcpSocketobject
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    timeoutSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].livenessProbe.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].livenessProbe.grpc

    ↩ Parent

    NameTypeDescriptionRequired
    portinteger

    Format: int32
    true
    servicestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].livenessProbe.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].livenessProbe.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].livenessProbe.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].ports[index]

    ↩ Parent

    NameTypeDescriptionRequired
    containerPortinteger

    Format: int32
    true
    hostIPstring
    false
    hostPortinteger

    Format: int32
    false
    namestring
    false
    protocolstring

    Default: TCP
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].readinessProbe

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    failureThresholdinteger

    Format: int32
    false
    grpcobject
    false
    httpGetobject
    false
    initialDelaySecondsinteger

    Format: int32
    false
    periodSecondsinteger

    Format: int32
    false
    successThresholdinteger

    Format: int32
    false
    tcpSocketobject
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    timeoutSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].readinessProbe.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].readinessProbe.grpc

    ↩ Parent

    NameTypeDescriptionRequired
    portinteger

    Format: int32
    true
    servicestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].readinessProbe.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].readinessProbe.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].readinessProbe.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].resizePolicy[index]

    ↩ Parent

    NameTypeDescriptionRequired
    resourceNamestring
    true
    restartPolicystring
    true

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].resources

    ↩ Parent

    NameTypeDescriptionRequired
    claims[]object
    false
    limitsmap[string]int or string
    false
    requestsmap[string]int or string
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].resources.claims[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    requeststring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].restartPolicyRules[index]

    ↩ Parent

    NameTypeDescriptionRequired
    actionstring
    true
    exitCodesobject
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].restartPolicyRules[index].exitCodes

    ↩ Parent

    NameTypeDescriptionRequired
    operatorstring
    true
    values[]integer
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].securityContext

    ↩ Parent

    NameTypeDescriptionRequired
    allowPrivilegeEscalationboolean
    false
    appArmorProfileobject
    false
    capabilitiesobject
    false
    privilegedboolean
    false
    procMountstring
    false
    readOnlyRootFilesystemboolean
    false
    runAsGroupinteger

    Format: int64
    false
    runAsNonRootboolean
    false
    runAsUserinteger

    Format: int64
    false
    seLinuxOptionsobject
    false
    seccompProfileobject
    false
    windowsOptionsobject
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].securityContext.appArmorProfile

    ↩ Parent

    NameTypeDescriptionRequired
    typestring
    true
    localhostProfilestring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].securityContext.capabilities

    ↩ Parent

    NameTypeDescriptionRequired
    add[]string
    false
    drop[]string
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].securityContext.seLinuxOptions

    ↩ Parent

    NameTypeDescriptionRequired
    levelstring
    false
    rolestring
    false
    typestring
    false
    userstring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].securityContext.seccompProfile

    ↩ Parent

    NameTypeDescriptionRequired
    typestring
    true
    localhostProfilestring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].securityContext.windowsOptions

    ↩ Parent

    NameTypeDescriptionRequired
    gmsaCredentialSpecstring
    false
    gmsaCredentialSpecNamestring
    false
    hostProcessboolean
    false
    runAsUserNamestring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].startupProbe

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    failureThresholdinteger

    Format: int32
    false
    grpcobject
    false
    httpGetobject
    false
    initialDelaySecondsinteger

    Format: int32
    false
    periodSecondsinteger

    Format: int32
    false
    successThresholdinteger

    Format: int32
    false
    tcpSocketobject
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    timeoutSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].startupProbe.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].startupProbe.grpc

    ↩ Parent

    NameTypeDescriptionRequired
    portinteger

    Format: int32
    true
    servicestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].startupProbe.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].startupProbe.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].startupProbe.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].volumeDevices[index]

    ↩ Parent

    NameTypeDescriptionRequired
    devicePathstring
    true
    namestring
    true

    Grafana.spec.deployment.spec.template.spec.ephemeralContainers[index].volumeMounts[index]

    ↩ Parent

    NameTypeDescriptionRequired
    mountPathstring
    true
    namestring
    true
    mountPropagationstring
    false
    readOnlyboolean
    false
    recursiveReadOnlystring
    false
    subPathstring
    false
    subPathExprstring
    false

    Grafana.spec.deployment.spec.template.spec.hostAliases[index]

    ↩ Parent

    NameTypeDescriptionRequired
    ipstring
    true
    hostnames[]string
    false

    Grafana.spec.deployment.spec.template.spec.imagePullSecrets[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    args[]string
    false
    command[]string
    false
    env[]object
    false
    envFrom[]object
    false
    imagestring
    false
    imagePullPolicystring
    false
    lifecycleobject
    false
    livenessProbeobject
    false
    ports[]object
    false
    readinessProbeobject
    false
    resizePolicy[]object
    false
    resourcesobject
    false
    restartPolicystring
    false
    restartPolicyRules[]object
    false
    securityContextobject
    false
    startupProbeobject
    false
    stdinboolean
    false
    stdinOnceboolean
    false
    terminationMessagePathstring
    false
    terminationMessagePolicystring
    false
    ttyboolean
    false
    volumeDevices[]object
    false
    volumeMounts[]object
    false
    workingDirstring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].env[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    false
    valueFromobject
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].env[index].valueFrom

    ↩ Parent

    NameTypeDescriptionRequired
    configMapKeyRefobject
    false
    fieldRefobject
    false
    fileKeyRefobject
    false
    resourceFieldRefobject
    false
    secretKeyRefobject
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].env[index].valueFrom.configMapKeyRef

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].env[index].valueFrom.fieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    fieldPathstring
    true
    apiVersionstring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].env[index].valueFrom.fileKeyRef

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    pathstring
    true
    volumeNamestring
    true
    optionalboolean

    Default: false
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].env[index].valueFrom.resourceFieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    resourcestring
    true
    containerNamestring
    false
    divisorint or string
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].env[index].valueFrom.secretKeyRef

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].envFrom[index]

    ↩ Parent

    NameTypeDescriptionRequired
    configMapRefobject
    false
    prefixstring
    false
    secretRefobject
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].envFrom[index].configMapRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].envFrom[index].secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle

    ↩ Parent

    NameTypeDescriptionRequired
    postStartobject
    false
    preStopobject
    false
    stopSignalstring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.postStart

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    httpGetobject
    false
    sleepobject
    false
    tcpSocketobject
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.postStart.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.postStart.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.postStart.sleep

    ↩ Parent

    NameTypeDescriptionRequired
    secondsinteger

    Format: int64
    true

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.postStart.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.preStop

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    httpGetobject
    false
    sleepobject
    false
    tcpSocketobject
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.preStop.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.preStop.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.preStop.sleep

    ↩ Parent

    NameTypeDescriptionRequired
    secondsinteger

    Format: int64
    true

    Grafana.spec.deployment.spec.template.spec.initContainers[index].lifecycle.preStop.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].livenessProbe

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    failureThresholdinteger

    Format: int32
    false
    grpcobject
    false
    httpGetobject
    false
    initialDelaySecondsinteger

    Format: int32
    false
    periodSecondsinteger

    Format: int32
    false
    successThresholdinteger

    Format: int32
    false
    tcpSocketobject
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    timeoutSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].livenessProbe.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].livenessProbe.grpc

    ↩ Parent

    NameTypeDescriptionRequired
    portinteger

    Format: int32
    true
    servicestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].livenessProbe.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].livenessProbe.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.initContainers[index].livenessProbe.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].ports[index]

    ↩ Parent

    NameTypeDescriptionRequired
    containerPortinteger

    Format: int32
    true
    hostIPstring
    false
    hostPortinteger

    Format: int32
    false
    namestring
    false
    protocolstring

    Default: TCP
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].readinessProbe

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    failureThresholdinteger

    Format: int32
    false
    grpcobject
    false
    httpGetobject
    false
    initialDelaySecondsinteger

    Format: int32
    false
    periodSecondsinteger

    Format: int32
    false
    successThresholdinteger

    Format: int32
    false
    tcpSocketobject
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    timeoutSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].readinessProbe.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].readinessProbe.grpc

    ↩ Parent

    NameTypeDescriptionRequired
    portinteger

    Format: int32
    true
    servicestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].readinessProbe.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].readinessProbe.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.initContainers[index].readinessProbe.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].resizePolicy[index]

    ↩ Parent

    NameTypeDescriptionRequired
    resourceNamestring
    true
    restartPolicystring
    true

    Grafana.spec.deployment.spec.template.spec.initContainers[index].resources

    ↩ Parent

    NameTypeDescriptionRequired
    claims[]object
    false
    limitsmap[string]int or string
    false
    requestsmap[string]int or string
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].resources.claims[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    requeststring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].restartPolicyRules[index]

    ↩ Parent

    NameTypeDescriptionRequired
    actionstring
    true
    exitCodesobject
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].restartPolicyRules[index].exitCodes

    ↩ Parent

    NameTypeDescriptionRequired
    operatorstring
    true
    values[]integer
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].securityContext

    ↩ Parent

    NameTypeDescriptionRequired
    allowPrivilegeEscalationboolean
    false
    appArmorProfileobject
    false
    capabilitiesobject
    false
    privilegedboolean
    false
    procMountstring
    false
    readOnlyRootFilesystemboolean
    false
    runAsGroupinteger

    Format: int64
    false
    runAsNonRootboolean
    false
    runAsUserinteger

    Format: int64
    false
    seLinuxOptionsobject
    false
    seccompProfileobject
    false
    windowsOptionsobject
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].securityContext.appArmorProfile

    ↩ Parent

    NameTypeDescriptionRequired
    typestring
    true
    localhostProfilestring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].securityContext.capabilities

    ↩ Parent

    NameTypeDescriptionRequired
    add[]string
    false
    drop[]string
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].securityContext.seLinuxOptions

    ↩ Parent

    NameTypeDescriptionRequired
    levelstring
    false
    rolestring
    false
    typestring
    false
    userstring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].securityContext.seccompProfile

    ↩ Parent

    NameTypeDescriptionRequired
    typestring
    true
    localhostProfilestring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].securityContext.windowsOptions

    ↩ Parent

    NameTypeDescriptionRequired
    gmsaCredentialSpecstring
    false
    gmsaCredentialSpecNamestring
    false
    hostProcessboolean
    false
    runAsUserNamestring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].startupProbe

    ↩ Parent

    NameTypeDescriptionRequired
    execobject
    false
    failureThresholdinteger

    Format: int32
    false
    grpcobject
    false
    httpGetobject
    false
    initialDelaySecondsinteger

    Format: int32
    false
    periodSecondsinteger

    Format: int32
    false
    successThresholdinteger

    Format: int32
    false
    tcpSocketobject
    false
    terminationGracePeriodSecondsinteger

    Format: int64
    false
    timeoutSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].startupProbe.exec

    ↩ Parent

    NameTypeDescriptionRequired
    command[]string
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].startupProbe.grpc

    ↩ Parent

    NameTypeDescriptionRequired
    portinteger

    Format: int32
    true
    servicestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].startupProbe.httpGet

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false
    httpHeaders[]object
    false
    pathstring
    false
    schemestring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].startupProbe.httpGet.httpHeaders[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.initContainers[index].startupProbe.tcpSocket

    ↩ Parent

    NameTypeDescriptionRequired
    portint or string
    true
    hoststring
    false

    Grafana.spec.deployment.spec.template.spec.initContainers[index].volumeDevices[index]

    ↩ Parent

    NameTypeDescriptionRequired
    devicePathstring
    true
    namestring
    true

    Grafana.spec.deployment.spec.template.spec.initContainers[index].volumeMounts[index]

    ↩ Parent

    NameTypeDescriptionRequired
    mountPathstring
    true
    namestring
    true
    mountPropagationstring
    false
    readOnlyboolean
    false
    recursiveReadOnlystring
    false
    subPathstring
    false
    subPathExprstring
    false

    Grafana.spec.deployment.spec.template.spec.os

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true

    Grafana.spec.deployment.spec.template.spec.readinessGates[index]

    ↩ Parent

    NameTypeDescriptionRequired
    conditionTypestring
    true

    Grafana.spec.deployment.spec.template.spec.securityContext

    ↩ Parent

    NameTypeDescriptionRequired
    appArmorProfileobject
    false
    fsGroupinteger

    Format: int64
    false
    fsGroupChangePolicystring
    false
    runAsGroupinteger

    Format: int64
    false
    runAsNonRootboolean
    false
    runAsUserinteger

    Format: int64
    false
    seLinuxChangePolicystring
    false
    seLinuxOptionsobject
    false
    seccompProfileobject
    false
    supplementalGroups[]integer
    false
    supplementalGroupsPolicystring
    false
    sysctls[]object
    false
    windowsOptionsobject
    false

    Grafana.spec.deployment.spec.template.spec.securityContext.appArmorProfile

    ↩ Parent

    NameTypeDescriptionRequired
    typestring
    true
    localhostProfilestring
    false

    Grafana.spec.deployment.spec.template.spec.securityContext.seLinuxOptions

    ↩ Parent

    NameTypeDescriptionRequired
    levelstring
    false
    rolestring
    false
    typestring
    false
    userstring
    false

    Grafana.spec.deployment.spec.template.spec.securityContext.seccompProfile

    ↩ Parent

    NameTypeDescriptionRequired
    typestring
    true
    localhostProfilestring
    false

    Grafana.spec.deployment.spec.template.spec.securityContext.sysctls[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    valuestring
    true

    Grafana.spec.deployment.spec.template.spec.securityContext.windowsOptions

    ↩ Parent

    NameTypeDescriptionRequired
    gmsaCredentialSpecstring
    false
    gmsaCredentialSpecNamestring
    false
    hostProcessboolean
    false
    runAsUserNamestring
    false

    Grafana.spec.deployment.spec.template.spec.tolerations[index]

    ↩ Parent

    NameTypeDescriptionRequired
    effectstring
    false
    keystring
    false
    operatorstring
    false
    tolerationSecondsinteger

    Format: int64
    false
    valuestring
    false

    Grafana.spec.deployment.spec.template.spec.topologySpreadConstraints[index]

    ↩ Parent

    NameTypeDescriptionRequired
    maxSkewinteger

    Format: int32
    true
    topologyKeystring
    true
    whenUnsatisfiablestring
    true
    labelSelectorobject
    false
    matchLabelKeys[]string
    false
    minDomainsinteger

    Format: int32
    false
    nodeAffinityPolicystring
    false
    nodeTaintsPolicystring
    false

    Grafana.spec.deployment.spec.template.spec.topologySpreadConstraints[index].labelSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.topologySpreadConstraints[index].labelSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index]

    ↩ Parent

    NameTypeDescriptionRequired
    namestring
    true
    awsElasticBlockStoreobject
    false
    azureDiskobject
    false
    azureFileobject
    false
    cephfsobject
    false
    cinderobject
    false
    configMapobject
    false
    csiobject
    false
    downwardAPIobject
    false
    emptyDirobject
    false
    ephemeralobject
    false
    fcobject
    false
    flexVolumeobject
    false
    flockerobject
    false
    gcePersistentDiskobject
    false
    gitRepoobject
    false
    glusterfsobject
    false
    hostPathobject
    false
    imageobject
    false
    iscsiobject
    false
    nfsobject
    false
    persistentVolumeClaimobject
    false
    photonPersistentDiskobject
    false
    portworxVolumeobject
    false
    projectedobject
    false
    quobyteobject
    false
    rbdobject
    false
    scaleIOobject
    false
    secretobject
    false
    storageosobject
    false
    vsphereVolumeobject
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].awsElasticBlockStore

    ↩ Parent

    NameTypeDescriptionRequired
    volumeIDstring
    true
    fsTypestring
    false
    partitioninteger

    Format: int32
    false
    readOnlyboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].azureDisk

    ↩ Parent

    NameTypeDescriptionRequired
    diskNamestring
    true
    diskURIstring
    true
    cachingModestring
    false
    fsTypestring

    Default: ext4
    false
    kindstring
    false
    readOnlyboolean

    Default: false
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].azureFile

    ↩ Parent

    NameTypeDescriptionRequired
    secretNamestring
    true
    shareNamestring
    true
    readOnlyboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].cephfs

    ↩ Parent

    NameTypeDescriptionRequired
    monitors[]string
    true
    pathstring
    false
    readOnlyboolean
    false
    secretFilestring
    false
    secretRefobject
    false
    userstring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].cephfs.secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].cinder

    ↩ Parent

    NameTypeDescriptionRequired
    volumeIDstring
    true
    fsTypestring
    false
    readOnlyboolean
    false
    secretRefobject
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].cinder.secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].configMap

    ↩ Parent

    NameTypeDescriptionRequired
    defaultModeinteger

    Format: int32
    false
    items[]object
    false
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].configMap.items[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    pathstring
    true
    modeinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].csi

    ↩ Parent

    NameTypeDescriptionRequired
    driverstring
    true
    fsTypestring
    false
    nodePublishSecretRefobject
    false
    readOnlyboolean
    false
    volumeAttributesmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].csi.nodePublishSecretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].downwardAPI

    ↩ Parent

    NameTypeDescriptionRequired
    defaultModeinteger

    Format: int32
    false
    items[]object
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].downwardAPI.items[index]

    ↩ Parent

    NameTypeDescriptionRequired
    pathstring
    true
    fieldRefobject
    false
    modeinteger

    Format: int32
    false
    resourceFieldRefobject
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].downwardAPI.items[index].fieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    fieldPathstring
    true
    apiVersionstring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].downwardAPI.items[index].resourceFieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    resourcestring
    true
    containerNamestring
    false
    divisorint or string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].emptyDir

    ↩ Parent

    NameTypeDescriptionRequired
    mediumstring
    false
    sizeLimitint or string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].ephemeral

    ↩ Parent

    NameTypeDescriptionRequired
    volumeClaimTemplateobject
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].ephemeral.volumeClaimTemplate

    ↩ Parent

    NameTypeDescriptionRequired
    specobject
    true
    metadataobject
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].ephemeral.volumeClaimTemplate.spec

    ↩ Parent

    NameTypeDescriptionRequired
    accessModes[]string
    false
    dataSourceobject
    false
    dataSourceRefobject
    false
    resourcesobject
    false
    selectorobject
    false
    storageClassNamestring
    false
    volumeAttributesClassNamestring
    false
    volumeModestring
    false
    volumeNamestring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSource

    ↩ Parent

    NameTypeDescriptionRequired
    kindstring
    true
    namestring
    true
    apiGroupstring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSourceRef

    ↩ Parent

    NameTypeDescriptionRequired
    kindstring
    true
    namestring
    true
    apiGroupstring
    false
    namespacestring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].ephemeral.volumeClaimTemplate.spec.resources

    ↩ Parent

    NameTypeDescriptionRequired
    limitsmap[string]int or string
    false
    requestsmap[string]int or string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].ephemeral.volumeClaimTemplate.spec.selector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].fc

    ↩ Parent

    NameTypeDescriptionRequired
    fsTypestring
    false
    luninteger

    Format: int32
    false
    readOnlyboolean
    false
    targetWWNs[]string
    false
    wwids[]string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].flexVolume

    ↩ Parent

    NameTypeDescriptionRequired
    driverstring
    true
    fsTypestring
    false
    optionsmap[string]string
    false
    readOnlyboolean
    false
    secretRefobject
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].flexVolume.secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].flocker

    ↩ Parent

    NameTypeDescriptionRequired
    datasetNamestring
    false
    datasetUUIDstring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].gcePersistentDisk

    ↩ Parent

    NameTypeDescriptionRequired
    pdNamestring
    true
    fsTypestring
    false
    partitioninteger

    Format: int32
    false
    readOnlyboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].gitRepo

    ↩ Parent

    NameTypeDescriptionRequired
    repositorystring
    true
    directorystring
    false
    revisionstring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].glusterfs

    ↩ Parent

    NameTypeDescriptionRequired
    endpointsstring
    true
    pathstring
    true
    readOnlyboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].hostPath

    ↩ Parent

    NameTypeDescriptionRequired
    pathstring
    true
    typestring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].image

    ↩ Parent

    NameTypeDescriptionRequired
    pullPolicystring
    false
    referencestring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].iscsi

    ↩ Parent

    NameTypeDescriptionRequired
    iqnstring
    true
    luninteger

    Format: int32
    true
    targetPortalstring
    true
    chapAuthDiscoveryboolean
    false
    chapAuthSessionboolean
    false
    fsTypestring
    false
    initiatorNamestring
    false
    iscsiInterfacestring

    Default: default
    false
    portals[]string
    false
    readOnlyboolean
    false
    secretRefobject
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].iscsi.secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].nfs

    ↩ Parent

    NameTypeDescriptionRequired
    pathstring
    true
    serverstring
    true
    readOnlyboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].persistentVolumeClaim

    ↩ Parent

    NameTypeDescriptionRequired
    claimNamestring
    true
    readOnlyboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].photonPersistentDisk

    ↩ Parent

    NameTypeDescriptionRequired
    pdIDstring
    true
    fsTypestring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].portworxVolume

    ↩ Parent

    NameTypeDescriptionRequired
    volumeIDstring
    true
    fsTypestring
    false
    readOnlyboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected

    ↩ Parent

    NameTypeDescriptionRequired
    defaultModeinteger

    Format: int32
    false
    sources[]object
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index]

    ↩ Parent

    NameTypeDescriptionRequired
    clusterTrustBundleobject
    false
    configMapobject
    false
    downwardAPIobject
    false
    podCertificateobject
    false
    secretobject
    false
    serviceAccountTokenobject
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].clusterTrustBundle

    ↩ Parent

    NameTypeDescriptionRequired
    pathstring
    true
    labelSelectorobject
    false
    namestring
    false
    optionalboolean
    false
    signerNamestring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector

    ↩ Parent

    NameTypeDescriptionRequired
    matchExpressions[]object
    false
    matchLabelsmap[string]string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector.matchExpressions[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    operatorstring
    true
    values[]string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].configMap

    ↩ Parent

    NameTypeDescriptionRequired
    items[]object
    false
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].configMap.items[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    pathstring
    true
    modeinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].downwardAPI

    ↩ Parent

    NameTypeDescriptionRequired
    items[]object
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].downwardAPI.items[index]

    ↩ Parent

    NameTypeDescriptionRequired
    pathstring
    true
    fieldRefobject
    false
    modeinteger

    Format: int32
    false
    resourceFieldRefobject
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    fieldPathstring
    true
    apiVersionstring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef

    ↩ Parent

    NameTypeDescriptionRequired
    resourcestring
    true
    containerNamestring
    false
    divisorint or string
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].podCertificate

    ↩ Parent

    NameTypeDescriptionRequired
    keyTypestring
    true
    signerNamestring
    true
    certificateChainPathstring
    false
    credentialBundlePathstring
    false
    keyPathstring
    false
    maxExpirationSecondsinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].secret

    ↩ Parent

    NameTypeDescriptionRequired
    items[]object
    false
    namestring

    Default:
    false
    optionalboolean
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].secret.items[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    pathstring
    true
    modeinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].projected.sources[index].serviceAccountToken

    ↩ Parent

    NameTypeDescriptionRequired
    pathstring
    true
    audiencestring
    false
    expirationSecondsinteger

    Format: int64
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].quobyte

    ↩ Parent

    NameTypeDescriptionRequired
    registrystring
    true
    volumestring
    true
    groupstring
    false
    readOnlyboolean
    false
    tenantstring
    false
    userstring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].rbd

    ↩ Parent

    NameTypeDescriptionRequired
    imagestring
    true
    monitors[]string
    true
    fsTypestring
    false
    keyringstring

    Default: /etc/ceph/keyring
    false
    poolstring

    Default: rbd
    false
    readOnlyboolean
    false
    secretRefobject
    false
    userstring

    Default: admin
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].rbd.secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].scaleIO

    ↩ Parent

    NameTypeDescriptionRequired
    gatewaystring
    true
    secretRefobject
    true
    systemstring
    true
    fsTypestring

    Default: xfs
    false
    protectionDomainstring
    false
    readOnlyboolean
    false
    sslEnabledboolean
    false
    storageModestring

    Default: ThinProvisioned
    false
    storagePoolstring
    false
    volumeNamestring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].scaleIO.secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].secret

    ↩ Parent

    NameTypeDescriptionRequired
    defaultModeinteger

    Format: int32
    false
    items[]object
    false
    optionalboolean
    false
    secretNamestring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].secret.items[index]

    ↩ Parent

    NameTypeDescriptionRequired
    keystring
    true
    pathstring
    true
    modeinteger

    Format: int32
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].storageos

    ↩ Parent

    NameTypeDescriptionRequired
    fsTypestring
    false
    readOnlyboolean
    false
    secretRefobject
    false
    volumeNamestring
    false
    volumeNamespacestring
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].storageos.secretRef

    ↩ Parent

    NameTypeDescriptionRequired
    namestring

    Default:
    false

    Grafana.spec.deployment.spec.template.spec.volumes[index].vsphereVolume

    ↩ Parent

    NameTypeDescriptionRequired
    volumePathstring
    true
    fsTypestring
    false
    storagePolicyIDstring
    false
    storagePolicyNamestring
    false

    Grafana.spec.external

    ↩ Parent

    External enables you to configure external grafana instances that is not managed by the operator.

    NameTypeDescriptionRequired
    urlstringURL of the external grafana instance you want to manage.
    true
    adminPasswordobjectAdminPassword key to talk to the external grafana instance.
    false
    adminUserobjectAdminUser key to talk to the external grafana instance.
    false
    apiKeyobjectThe API key to talk to the external grafana instance, you need to define ether apiKey or adminUser/adminPassword.
    false
    tlsobjectDEPRECATED, use top level `tls` instead.

    Validations:
  • (has(self.insecureSkipVerify) && !(has(self.certSecretRef))) || (has(self.certSecretRef) && !(has(self.insecureSkipVerify))): insecureSkipVerify and certSecretRef cannot be set at the same time
  • false

    Grafana.spec.external.adminPassword

    ↩ Parent

    AdminPassword key to talk to the external grafana instance.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    Grafana.spec.external.adminUser

    ↩ Parent

    AdminUser key to talk to the external grafana instance.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    Grafana.spec.external.apiKey

    ↩ Parent

    The API key to talk to the external grafana instance, you need to define ether apiKey or adminUser/adminPassword.

    NameTypeDescriptionRequired
    keystringThe key of the secret to select from. Must be a valid secret key.
    true
    namestringName 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

    Default:
    false
    optionalbooleanSpecify whether the Secret or its key must be defined
    false

    Grafana.spec.external.tls

    ↩ Parent

    DEPRECATED, use top level tls instead.

    NameTypeDescriptionRequired
    certSecretRefobjectUse a secret as a reference to give TLS Certificate information
    false
    insecureSkipVerifybooleanDisable the CA check of the server
    false

    Grafana.spec.external.tls.certSecretRef

    ↩ Parent

    Use a secret as a reference to give TLS Certificate information

    NameTypeDescriptionRequired
    namestringname is unique within a namespace to reference a secret resource.
    false
    namespacestringnamespace defines the space within which the secret name must be unique.
    false

    Grafana.spec.httpRoute

    ↩ Parent

    HTTPRoute customizes the GatewayAPI HTTPRoute Object. It will not be created if this is not set

    NameTypeDescriptionRequired
    metadataobjectObjectMeta 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).
    false
    specobjectHTTPRouteSpec defines the desired state of HTTPRoute
    false

    Grafana.spec.httpRoute.metadata

    ↩ Parent

    ObjectMeta contains only a subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.

    NameTypeDescriptionRequired
    annotationsmap[string]string
    false
    labelsmap[string]string
    false

    Grafana.spec.httpRoute.spec

    ↩ Parent

    HTTPRouteSpec defines the desired state of HTTPRoute

    NameTypeDescriptionRequired
    hostnames[]stringHostnames defines a set of hostnames that should match against the HTTP Host header to select a HTTPRoute used to process the request. Implementations MUST ignore any port value specified in the HTTP Host header while performing a match and (absent of any applicable header modification configuration) MUST forward this header unmodified to the backend.

    Valid values for Hostnames are determined by RFC 1123 definition of a hostname with 2 notable exceptions:

    1. IPs are not allowed.
    2. A hostname may be prefixed with a wildcard label (*.). The wildcard label must appear by itself as the first label.

    If a hostname is specified by both the Listener and HTTPRoute, there must be at least one intersecting hostname for the HTTPRoute to be attached to the Listener. For example:

    • A Listener with test.example.com as the hostname matches HTTPRoutes that have either not specified any hostnames, or have specified at least one of test.example.com or *.example.com.
    • A Listener with *.example.com as the hostname matches HTTPRoutes that have either not specified any hostnames or have specified at least one hostname that matches the Listener hostname. For example, *.example.com, test.example.com, and foo.test.example.com would all match. On the other hand, example.com and test.example.net would not match.

    Hostnames that are prefixed with a wildcard label (*.) are interpreted as a suffix match. That means that a match for *.example.com would match both test.example.com, and foo.test.example.com, but not example.com.

    If both the Listener and HTTPRoute have specified hostnames, any HTTPRoute hostnames that do not match the Listener hostname MUST be ignored. For example, if a Listener specified *.example.com, and the HTTPRoute specified test.example.com and test.example.net, test.example.net must not be considered for a match.

    If both the Listener and HTTPRoute have specified hostnames, and none match with the criteria above, then the HTTPRoute is not accepted. The implementation must raise an ‘Accepted’ Condition with a status of False in the corresponding RouteParentStatus.

    In the event that multiple HTTPRoutes specify intersecting hostnames (e.g. overlapping wildcard matching and exact matching hostnames), precedence must be given to rules from the HTTPRoute with the largest number of:

    • Characters in a matching non-wildcard hostname.
    • Characters in a matching hostname.

    If ties exist across multiple Routes, the matching precedence rules for HTTPRouteMatches takes over.

    Support: Core

    false
    parentRefs[]objectParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a “producer” route, or the mesh implementation must support and allow “consumer” routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a “producer” route for a Service in a different namespace from the Route.

    There are two kinds of parent resources with “Core” support:

    • Gateway (Gateway conformance profile)
    • Service (Mesh conformance profile, ClusterIP Services only)

    This API may be extended in the future to support additional kinds of parent resources.

    ParentRefs must be distinct. This means either that:

    • They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by group, kind, namespace, and name must be unique across all parentRef entries in the Route.
    • They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination.

    Some examples:

    • If one ParentRef sets sectionName, all ParentRefs referencing the same object must also set sectionName.
    • If one ParentRef sets port, all ParentRefs referencing the same object must also set port.
    • If one ParentRef sets sectionName and port, all ParentRefs referencing the same object must also set sectionName and port.

    It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged.

    Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference.

    gateway:experimental:description ParentRefs from a Route to a Service in the same namespace are “producer” routes, which apply default routing rules to inbound connections from any namespace to the Service.

    ParentRefs from a Route to a Service in a different namespace are “consumer” routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. </gateway:experimental:description>

    <gateway:standard:validation:XValidation:message=“sectionName must be specified when parentRefs includes 2 or more references to the same parent”,rule=“self.all(p1, self.all(p2, p1.group == p2.group && p1.kind == p2.kind && p1.name == p2.name && (((!has(p1.namespace) || p1.namespace == ‘’) && (!has(p2.namespace) || p2.namespace == ‘’)) || (has(p1.namespace) && has(p2.namespace) && p1.namespace == p2.namespace )) ? ((!has(p1.sectionName) || p1.sectionName == ‘’) == (!has(p2.sectionName) || p2.sectionName == ‘’)) : true))"> <gateway:standard:validation:XValidation:message=“sectionName must be unique when parentRefs includes 2 or more references to the same parent”,rule=“self.all(p1, self.exists_one(p2, p1.group == p2.group && p1.kind == p2.kind && p1.name == p2.name && (((!has(p1.namespace) || p1.namespace == ‘’) && (!has(p2.namespace) || p2.namespace == ‘’)) || (has(p1.namespace) && has(p2.namespace) && p1.namespace == p2.namespace )) && (((!has(p1.sectionName) || p1.sectionName == ‘’) && (!has(p2.sectionName) || p2.sectionName == ‘’)) || (has(p1.sectionName) && has(p2.sectionName) && p1.sectionName == p2.sectionName))))"> <gateway:experimental:validation:XValidation:message=“sectionName or port must be specified when parentRefs includes 2 or more references to the same parent”,rule=“self.all(p1, self.all(p2, p1.group == p2.group && p1.kind == p2.kind && p1.name == p2.name && (((!has(p1.namespace) || p1.namespace == ‘’) && (!has(p2.namespace) || p2.namespace == ‘’)) || (has(p1.namespace) && has(p2.namespace) && p1.namespace == p2.namespace)) ? ((!has(p1.sectionName) || p1.sectionName == ‘’) == (!has(p2.sectionName) || p2.sectionName == ‘’) && (!has(p1.port) || p1.port == 0) == (!has(p2.port) || p2.port == 0)): true))"> <gateway:experimental:validation:XValidation:message=“sectionName or port must be unique when parentRefs includes 2 or more references to the same parent”,rule=“self.all(p1, self.exists_one(p2, p1.group == p2.group && p1.kind == p2.kind && p1.name == p2.name && (((!has(p1.namespace) || p1.namespace == ‘’) && (!has(p2.namespace) || p2.namespace == ‘’)) || (has(p1.namespace) && has(p2.namespace) && p1.namespace == p2.namespace )) && (((!has(p1.sectionName) || p1.sectionName == ‘’) && (!has(p2.sectionName) || p2.sectionName == ‘’)) || ( has(p1.sectionName) && has(p2.sectionName) && p1.sectionName == p2.sectionName)) && (((!has(p1.port) || p1.port == 0) && (!has(p2.port) || p2.port == 0)) || (has(p1.port) && has(p2.port) && p1.port == p2.port))))">

    false
    rules[]objectRules are a list of HTTP matchers, filters and actions.

    <gateway:experimental:validation:XValidation:message=“Rule name must be unique within the route”,rule=“self.all(l1, !has(l1.name) || self.exists_one(l2, has(l2.name) && l1.name == l2.name))">

    Validations:

  • (self.size() > 0 ? self[0].matches.size() : 0) + (self.size() > 1 ? self[1].matches.size() : 0) + (self.size() > 2 ? self[2].matches.size() : 0) + (self.size() > 3 ? self[3].matches.size() : 0) + (self.size() > 4 ? self[4].matches.size() : 0) + (self.size() > 5 ? self[5].matches.size() : 0) + (self.size() > 6 ? self[6].matches.size() : 0) + (self.size() > 7 ? self[7].matches.size() : 0) + (self.size() > 8 ? self[8].matches.size() : 0) + (self.size() > 9 ? self[9].matches.size() : 0) + (self.size() > 10 ? self[10].matches.size() : 0) + (self.size() > 11 ? self[11].matches.size() : 0) + (self.size() > 12 ? self[12].matches.size() : 0) + (self.size() > 13 ? self[13].matches.size() : 0) + (self.size() > 14 ? self[14].matches.size() : 0) + (self.size() > 15 ? self[15].matches.size() : 0) <= 128: While 16 rules and 64 matches per rule are allowed, the total number of matches across all rules in a route must be less than 128
  • Default: [map[matches:[map[path:map[type:PathPrefix value:/]]]]]
    false

    Grafana.spec.httpRoute.spec.parentRefs[index]

    ↩ Parent

    ParentReference identifies an API object (usually a Gateway) that can be considered a parent of this resource (usually a route). There are two kinds of parent resources with “Core” support:

    • Gateway (Gateway conformance profile)
    • Service (Mesh conformance profile, ClusterIP Services only)

    This API may be extended in the future to support additional kinds of parent resources.

    The API object must be valid in the cluster; the Group and Kind must be registered in the cluster for this reference to be valid.

    NameTypeDescriptionRequired
    namestringName is the name of the referent.

    Support: Core

    true
    groupstringGroup is the group of the referent. When unspecified, “gateway.networking.k8s.io” is inferred. To set the core API group (such as for a “Service” kind referent), Group must be explicitly set to "” (empty string).

    Support: Core

    Default: gateway.networking.k8s.io

    false
    kindstringKind is kind of the referent.

    There are two kinds of parent resources with “Core” support:

    • Gateway (Gateway conformance profile)
    • Service (Mesh conformance profile, ClusterIP Services only)

    Support for other resources is Implementation-Specific.

    Default: Gateway

    false
    namespacestringNamespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route.

    Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference.

    gateway:experimental:description ParentRefs from a Route to a Service in the same namespace are “producer” routes, which apply default routing rules to inbound connections from any namespace to the Service.

    ParentRefs from a Route to a Service in a different namespace are “consumer” routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. </gateway:experimental:description>

    Support: Core

    false
    portintegerPort is the network port this Route targets. It can be interpreted differently based on the type of parent resource.

    When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It’s not recommended to set Port unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values.

    gateway:experimental:description When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. </gateway:experimental:description>

    Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted.

    For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway.

    Support: Extended

    Format: int32
    Minimum: 1
    Maximum: 65535

    false
    sectionNamestringSectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following:

    • Gateway: Listener name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values.
    • Service: Port name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values.

    Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted.

    When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway.

    Support: Core

    false

    Grafana.spec.httpRoute.spec.rules[index]

    ↩ Parent

    HTTPRouteRule defines semantics for matching an HTTP request based on conditions (matches), processing it (filters), and forwarding the request to an API object (backendRefs).

    NameTypeDescriptionRequired
    backendRefs[]objectBackendRefs defines the backend(s) where matching requests should be sent.

    Failure behavior here depends on how many BackendRefs are specified and how many are invalid.

    If all entries in BackendRefs are invalid, and there are also no filters specified in this route rule, all traffic which matches this rule MUST receive a 500 status code.

    See the HTTPBackendRef definition for the rules about what makes a single HTTPBackendRef invalid.

    When a HTTPBackendRef is invalid, 500 status codes MUST be returned for requests that would have otherwise been routed to an invalid backend. If multiple backends are specified, and some are invalid, the proportion of requests that would otherwise have been routed to an invalid backend MUST receive a 500 status code.

    For example, if two backends are specified with equal weights, and one is invalid, 50 percent of traffic must receive a 500. Implementations may choose how that 50 percent is determined.

    When a HTTPBackendRef refers to a Service that has no ready endpoints, implementations SHOULD return a 503 for requests to that backend instead. If an implementation chooses to do this, all of the above rules for 500 responses MUST also apply for responses that return a 503.

    Support: Core for Kubernetes Service

    Support: Extended for Kubernetes ServiceImport

    Support: Implementation-specific for any other resource

    Support for weight: Core

    false
    filters[]objectFilters define the filters that are applied to requests that match this rule.

    Wherever possible, implementations SHOULD implement filters in the order they are specified.

    Implementations MAY choose to implement this ordering strictly, rejecting any combination or order of filters that cannot be supported. If implementations choose a strict interpretation of filter ordering, they MUST clearly document that behavior.

    To reject an invalid combination or order of filters, implementations SHOULD consider the Route Rules with this configuration invalid. If all Route Rules in a Route are invalid, the entire Route would be considered invalid. If only a portion of Route Rules are invalid, implementations MUST set the “PartiallyInvalid” condition for the Route.

    Conformance-levels at this level are defined based on the type of filter:

    • ALL core filters MUST be supported by all implementations.
    • Implementers are encouraged to support extended filters.
    • Implementation-specific custom filters have no API guarantees across implementations.

    Specifying the same filter multiple times is not supported unless explicitly indicated in the filter.

    All filters are expected to be compatible with each other except for the URLRewrite and RequestRedirect filters, which may not be combined. If an implementation cannot support other combinations of filters, they must clearly document that limitation. In cases where incompatible or unsupported filters are specified and cause the Accepted condition to be set to status False, implementations may use the IncompatibleFilters reason to specify this configuration error.

    Support: Core

    Validations:

  • !(self.exists(f, f.type == ‘RequestRedirect’) && self.exists(f, f.type == ‘URLRewrite’)): May specify either httpRouteFilterRequestRedirect or httpRouteFilterRequestRewrite, but not both
  • self.filter(f, f.type == ‘RequestHeaderModifier’).size() <= 1: RequestHeaderModifier filter cannot be repeated
  • self.filter(f, f.type == ‘ResponseHeaderModifier’).size() <= 1: ResponseHeaderModifier filter cannot be repeated
  • self.filter(f, f.type == ‘RequestRedirect’).size() <= 1: RequestRedirect filter cannot be repeated
  • self.filter(f, f.type == ‘URLRewrite’).size() <= 1: URLRewrite filter cannot be repeated
  • false
    matches[]objectMatches define conditions used for matching the rule against incoming HTTP requests. Each match is independent, i.e. this rule will be matched if any one of the matches is satisfied.

    For example, take the following matches configuration:

    matches:
    - path:
        value: "/foo"
      headers:
      - name: "version"
        value: "v2"
    - path:
        value: "/v2/foo"
    

    For a request to match against this rule, a request must satisfy EITHER of the two conditions:

    • path prefixed with /foo AND contains the header version: v2
    • path prefix of /v2/foo

    See the documentation for HTTPRouteMatch on how to specify multiple match conditions that should be ANDed together.

    If no matches are specified, the default is a prefix path match on “/”, which has the effect of matching every HTTP request.

    Proxy or Load Balancer routing configuration generated from HTTPRoutes MUST prioritize matches based on the following criteria, continuing on ties. Across all rules specified on applicable Routes, precedence must be given to the match having:

    • “Exact” path match.
    • “Prefix” path match with largest number of characters.
    • Method match.
    • Largest number of header matches.
    • Largest number of query param matches.

    Note: The precedence of RegularExpression path matches are implementation-specific.

    If ties still exist across multiple Routes, matching precedence MUST be determined in order of the following criteria, continuing on ties:

    • The oldest Route based on creation timestamp.
    • The Route appearing first in alphabetical order by “{namespace}/{name}”.

    If ties still exist within an HTTPRoute, matching precedence MUST be granted to the FIRST matching rule (in list order) with a match meeting the above criteria.

    When no rules matching a request have been successfully attached to the parent a request is coming from, a HTTP 404 status code MUST be returned.

    Default: [map[path:map[type:PathPrefix value:/]]]

    false
    namestringName is the name of the route rule. This name MUST be unique within a Route if it is set.

    Support: Extended gateway:experimental

    false
    retryobjectRetry defines the configuration for when to retry an HTTP request.

    Support: Extended

    gateway:experimental

    false
    sessionPersistenceobjectSessionPersistence defines and configures session persistence for the route rule.

    Support: Extended

    gateway:experimental

    Validations:

  • !has(self.cookieConfig) || !has(self.cookieConfig.lifetimeType) || self.cookieConfig.lifetimeType != ‘Permanent’ || has(self.absoluteTimeout): AbsoluteTimeout must be specified when cookie lifetimeType is Permanent
  • false
    timeoutsobjectTimeouts defines the timeouts that can be configured for an HTTP request.

    Support: Extended

    Validations:

  • !(has(self.request) && has(self.backendRequest) && duration(self.request) != duration(‘0s’) && duration(self.backendRequest) > duration(self.request)): backendRequest timeout cannot be longer than request timeout
  • false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index]

    ↩ Parent

    HTTPBackendRef defines how a HTTPRoute forwards a HTTP request.

    Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace’s owner to accept the reference. See the ReferenceGrant documentation for details.

    gateway:experimental:description

    When the BackendRef points to a Kubernetes Service, implementations SHOULD honor the appProtocol field if it is set for the target Service Port.

    Implementations supporting appProtocol SHOULD recognize the Kubernetes Standard Application Protocols defined in KEP-3726.

    If a Service appProtocol isn’t specified, an implementation MAY infer the backend protocol through its own means. Implementations MAY infer the protocol from the Route type referring to the backend Service.

    If a Route is not able to send traffic to the backend using the specified protocol then the backend is considered invalid. Implementations MUST set the “ResolvedRefs” condition to “False” with the “UnsupportedProtocol” reason.

    </gateway:experimental:description>

    NameTypeDescriptionRequired
    namestringName is the name of the referent.
    true
    filters[]objectFilters defined at this level should be executed if and only if the request is being forwarded to the backend defined here.

    Support: Implementation-specific (For broader support of filters, use the Filters field in HTTPRouteRule.)

    Validations:

  • !(self.exists(f, f.type == ‘RequestRedirect’) && self.exists(f, f.type == ‘URLRewrite’)): May specify either httpRouteFilterRequestRedirect or httpRouteFilterRequestRewrite, but not both
  • !(self.exists(f, f.type == ‘RequestRedirect’) && self.exists(f, f.type == ‘URLRewrite’)): May specify either httpRouteFilterRequestRedirect or httpRouteFilterRequestRewrite, but not both
  • self.filter(f, f.type == ‘RequestHeaderModifier’).size() <= 1: RequestHeaderModifier filter cannot be repeated
  • self.filter(f, f.type == ‘ResponseHeaderModifier’).size() <= 1: ResponseHeaderModifier filter cannot be repeated
  • self.filter(f, f.type == ‘RequestRedirect’).size() <= 1: RequestRedirect filter cannot be repeated
  • self.filter(f, f.type == ‘URLRewrite’).size() <= 1: URLRewrite filter cannot be repeated
  • false
    groupstringGroup is the group of the referent. For example, “gateway.networking.k8s.io”. When unspecified or empty string, core API group is inferred.

    Default:
    false
    kindstringKind is the Kubernetes resource kind of the referent. For example “Service”.

    Defaults to “Service” when not specified.

    ExternalName services can refer to CNAME DNS records that may live outside of the cluster and as such are difficult to reason about in terms of conformance. They also may not be safe to forward to (see CVE-2021-25740 for more information). Implementations SHOULD NOT support ExternalName Services.

    Support: Core (Services with a type other than ExternalName)

    Support: Implementation-specific (Services with type ExternalName)

    Default: Service

    false
    namespacestringNamespace is the namespace of the backend. When unspecified, the local namespace is inferred.

    Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace’s owner to accept the reference. See the ReferenceGrant documentation for details.

    Support: Core

    false
    portintegerPort specifies the destination port number to use for this resource. Port is required when the referent is a Kubernetes Service. In this case, the port number is the service port number, not the target port. For other resources, destination port might be derived from the referent resource or this field.

    Format: int32
    Minimum: 1
    Maximum: 65535
    false
    weightintegerWeight specifies the proportion of requests forwarded to the referenced backend. This is computed as weight/(sum of all weights in this BackendRefs list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. Weight is not a percentage and the sum of weights does not need to equal 100.

    If only one backend is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weight is set to 0, no traffic should be forwarded for this entry. If unspecified, weight defaults to 1.

    Support for this field varies based on the context where used.

    Format: int32
    Default: 1
    Minimum: 0
    Maximum: 1e+06

    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index]

    ↩ Parent

    HTTPRouteFilter defines processing steps that must be completed during the request or response lifecycle. HTTPRouteFilters are meant as an extension point to express processing that may be done in Gateway implementations. Some examples include request or response modification, implementing authentication strategies, rate-limiting, and traffic shaping. API guarantee/conformance is defined based on the type of the filter.

    <gateway:experimental:validation:XValidation:message=“filter.cors must be nil if the filter.type is not CORS”,rule=”!(has(self.cors) && self.type != ‘CORS’)"> <gateway:experimental:validation:XValidation:message=“filter.cors must be specified for CORS filter.type”,rule=”!(!has(self.cors) && self.type == ‘CORS’)">

    NameTypeDescriptionRequired
    typeenumType identifies the type of filter to apply. As with other API fields, types are classified into three conformance levels:
    • Core: Filter types and their corresponding configuration defined by “Support: Core” in this package, e.g. “RequestHeaderModifier”. All implementations must support core filters.

    • Extended: Filter types and their corresponding configuration defined by “Support: Extended” in this package, e.g. “RequestMirror”. Implementers are encouraged to support extended filters.

    • Implementation-specific: Filters that are defined and supported by specific vendors. In the future, filters showing convergence in behavior across multiple implementations will be considered for inclusion in extended or core conformance levels. Filter-specific configuration for such filters is specified using the ExtensionRef field. Type should be set to “ExtensionRef” for custom filters.

    Implementers are encouraged to define custom implementation types to extend the core API with implementation-specific behavior.

    If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by that filter MUST receive a HTTP error response.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    gateway:experimental:validation:Enum=RequestHeaderModifier;ResponseHeaderModifier;RequestMirror;RequestRedirect;URLRewrite;ExtensionRef;CORS

    Enum: RequestHeaderModifier, ResponseHeaderModifier, RequestMirror, RequestRedirect, URLRewrite, ExtensionRef

    true
    corsobjectCORS defines a schema for a filter that responds to the cross-origin request based on HTTP response header.

    Support: Extended

    gateway:experimental

    false
    extensionRefobjectExtensionRef is an optional, implementation-specific extension to the “filter” behavior. For example, resource “myroutefilter” in group “networking.example.net”). ExtensionRef MUST NOT be used for core and extended filters.

    This filter can be used multiple times within the same rule.

    Support: Implementation-specific

    false
    requestHeaderModifierobjectRequestHeaderModifier defines a schema for a filter that modifies request headers.

    Support: Core

    false
    requestMirrorobjectRequestMirror defines a schema for a filter that mirrors requests. Requests are sent to the specified destination, but responses from that destination are ignored.

    This filter can be used multiple times within the same rule. Note that not all implementations will be able to support mirroring to multiple backends.

    Support: Extended

    Validations:

  • !(has(self.percent) && has(self.fraction)): Only one of percent or fraction may be specified in HTTPRequestMirrorFilter
  • false
    requestRedirectobjectRequestRedirect defines a schema for a filter that responds to the request with an HTTP redirection.

    Support: Core

    false
    responseHeaderModifierobjectResponseHeaderModifier defines a schema for a filter that modifies response headers.

    Support: Extended

    false
    urlRewriteobjectURLRewrite defines a schema for a filter that modifies a request during forwarding.

    Support: Extended

    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].cors

    ↩ Parent

    CORS defines a schema for a filter that responds to the cross-origin request based on HTTP response header.

    Support: Extended

    gateway:experimental

    NameTypeDescriptionRequired
    allowCredentialsbooleanAllowCredentials indicates whether the actual cross-origin request allows to include credentials.

    The only valid value for the Access-Control-Allow-Credentials response header is true (case-sensitive).

    If the credentials are not allowed in cross-origin requests, the gateway will omit the header Access-Control-Allow-Credentials entirely rather than setting its value to false.

    Support: Extended

    Enum: true

    false
    allowHeaders[]stringAllowHeaders indicates which HTTP request headers are supported for accessing the requested resource.

    Header names are not case sensitive.

    Multiple header names in the value of the Access-Control-Allow-Headers response header are separated by a comma (”,”).

    When the AllowHeaders field is configured with one or more headers, the gateway must return the Access-Control-Allow-Headers response header which value is present in the AllowHeaders field.

    If any header name in the Access-Control-Request-Headers request header is not included in the list of header names specified by the response header Access-Control-Allow-Headers, it will present an error on the client side.

    If any header name in the Access-Control-Allow-Headers response header does not recognize by the client, it will also occur an error on the client side.

    A wildcard indicates that the requests with all HTTP headers are allowed. The Access-Control-Allow-Headers response header can only use * wildcard as value when the AllowCredentials field is unspecified.

    When the AllowCredentials field is specified and AllowHeaders field specified with the * wildcard, the gateway must specify one or more HTTP headers in the value of the Access-Control-Allow-Headers response header. The value of the header Access-Control-Allow-Headers is same as the Access-Control-Request-Headers header provided by the client. If the header Access-Control-Request-Headers is not included in the request, the gateway will omit the Access-Control-Allow-Headers response header, instead of specifying the * wildcard. A Gateway implementation may choose to add implementation-specific default headers.

    Support: Extended

    false
    allowMethods[]enumAllowMethods indicates which HTTP methods are supported for accessing the requested resource.

    Valid values are any method defined by RFC9110, along with the special value *, which represents all HTTP methods are allowed.

    Method names are case sensitive, so these values are also case-sensitive. (See https://www.rfc-editor.org/rfc/rfc2616#section-5.1.1)

    Multiple method names in the value of the Access-Control-Allow-Methods response header are separated by a comma (",").

    A CORS-safelisted method is a method that is GET, HEAD, or POST. (See https://fetch.spec.whatwg.org/#cors-safelisted-method) The CORS-safelisted methods are always allowed, regardless of whether they are specified in the AllowMethods field.

    When the AllowMethods field is configured with one or more methods, the gateway must return the Access-Control-Allow-Methods response header which value is present in the AllowMethods field.

    If the HTTP method of the Access-Control-Request-Method request header is not included in the list of methods specified by the response header Access-Control-Allow-Methods, it will present an error on the client side.

    The Access-Control-Allow-Methods response header can only use * wildcard as value when the AllowCredentials field is unspecified.

    When the AllowCredentials field is specified and AllowMethods field specified with the * wildcard, the gateway must specify one HTTP method in the value of the Access-Control-Allow-Methods response header. The value of the header Access-Control-Allow-Methods is same as the Access-Control-Request-Method header provided by the client. If the header Access-Control-Request-Method is not included in the request, the gateway will omit the Access-Control-Allow-Methods response header, instead of specifying the * wildcard. A Gateway implementation may choose to add implementation-specific default methods.

    Support: Extended

    Validations:

  • !(’’ in self && self.size() > 1): AllowMethods cannot contain ‘’ alongside other methods
  • Enum: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, *
    false
    allowOrigins[]stringAllowOrigins indicates whether the response can be shared with requested resource from the given Origin.

    The Origin consists of a scheme and a host, with an optional port, and takes the form <scheme>://<host>(:<port>).

    Valid values for scheme are: http and https.

    Valid values for port are any integer between 1 and 65535 (the list of available TCP/UDP ports). Note that, if not included, port 80 is assumed for http scheme origins, and port 443 is assumed for https origins. This may affect origin matching.

    The host part of the origin may contain the wildcard character *. These wildcard characters behave as follows:

    • * is a greedy match to the left, including any number of DNS labels to the left of its position. This also means that * will include any number of period . characters to the left of its position.
    • A wildcard by itself matches all hosts.

    An origin value that includes only the * character indicates requests from all Origins are allowed.

    When the AllowOrigins field is configured with multiple origins, it means the server supports clients from multiple origins. If the request Origin matches the configured allowed origins, the gateway must return the given Origin and sets value of the header Access-Control-Allow-Origin same as the Origin header provided by the client.

    The status code of a successful response to a “preflight” request is always an OK status (i.e., 204 or 200).

    If the request Origin does not match the configured allowed origins, the gateway returns 204/200 response but doesn’t set the relevant cross-origin response headers. Alternatively, the gateway responds with 403 status to the “preflight” request is denied, coupled with omitting the CORS headers. The cross-origin request fails on the client side. Therefore, the client doesn’t attempt the actual cross-origin request.

    The Access-Control-Allow-Origin response header can only use * wildcard as value when the AllowCredentials field is unspecified.

    When the AllowCredentials field is specified and AllowOrigins field specified with the * wildcard, the gateway must return a single origin in the value of the Access-Control-Allow-Origin response header, instead of specifying the * wildcard. The value of the header Access-Control-Allow-Origin is same as the Origin header provided by the client.

    Support: Extended

    false
    exposeHeaders[]stringExposeHeaders indicates which HTTP response headers can be exposed to client-side scripts in response to a cross-origin request.

    A CORS-safelisted response header is an HTTP header in a CORS response that it is considered safe to expose to the client scripts. The CORS-safelisted response headers include the following headers: Cache-Control Content-Language Content-Length Content-Type Expires Last-Modified Pragma (See https://fetch.spec.whatwg.org/#cors-safelisted-response-header-name) The CORS-safelisted response headers are exposed to client by default.

    When an HTTP header name is specified using the ExposeHeaders field, this additional header will be exposed as part of the response to the client.

    Header names are not case sensitive.

    Multiple header names in the value of the Access-Control-Expose-Headers response header are separated by a comma (",").

    A wildcard indicates that the responses with all HTTP headers are exposed to clients. The Access-Control-Expose-Headers response header can only use * wildcard as value when the AllowCredentials field is unspecified.

    Support: Extended

    false
    maxAgeintegerMaxAge indicates the duration (in seconds) for the client to cache the results of a “preflight” request.

    The information provided by the Access-Control-Allow-Methods and Access-Control-Allow-Headers response headers can be cached by the client until the time specified by Access-Control-Max-Age elapses.

    The default value of Access-Control-Max-Age response header is 5 (seconds).

    Format: int32
    Default: 5
    Minimum: 1

    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].extensionRef

    ↩ Parent

    ExtensionRef is an optional, implementation-specific extension to the “filter” behavior. For example, resource “myroutefilter” in group “networking.example.net”). ExtensionRef MUST NOT be used for core and extended filters.

    This filter can be used multiple times within the same rule.

    Support: Implementation-specific

    NameTypeDescriptionRequired
    groupstringGroup is the group of the referent. For example, "gateway.networking.k8s.io". When unspecified or empty string, core API group is inferred.
    true
    kindstringKind is kind of the referent. For example "HTTPRoute" or "Service".
    true
    namestringName is the name of the referent.
    true

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].requestHeaderModifier

    ↩ Parent

    RequestHeaderModifier defines a schema for a filter that modifies request headers.

    Support: Core

    NameTypeDescriptionRequired
    add[]objectAdd adds the given header(s) (name, value) to the request before the action. It appends to any existing values associated with the header name.

    Input: GET /foo HTTP/1.1 my-header: foo

    Config: add:

    • name: “my-header” value: “bar,baz”

    Output: GET /foo HTTP/1.1 my-header: foo,bar,baz

    false
    remove[]stringRemove the given header(s) from the HTTP request before the action. The value of Remove is a list of HTTP header names. Note that the header names are case-insensitive (see https://datatracker.ietf.org/doc/html/rfc2616#section-4.2).

    Input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

    Config: remove: [“my-header1”, “my-header3”]

    Output: GET /foo HTTP/1.1 my-header2: bar

    false
    set[]objectSet overwrites the request with the given header (name, value) before the action.

    Input: GET /foo HTTP/1.1 my-header: foo

    Config: set:

    • name: “my-header” value: “bar”

    Output: GET /foo HTTP/1.1 my-header: bar

    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].requestHeaderModifier.add[index]

    ↩ Parent

    HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP Header to be matched. Name matching MUST be case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).

    If multiple entries specify equivalent header names, the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent header name MUST be ignored. Due to the case-insensitivity of header names, “foo” and “Foo” are considered equivalent.

    true
    valuestringValue is the value of HTTP Header to be matched.
    true

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].requestHeaderModifier.set[index]

    ↩ Parent

    HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP Header to be matched. Name matching MUST be case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).

    If multiple entries specify equivalent header names, the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent header name MUST be ignored. Due to the case-insensitivity of header names, “foo” and “Foo” are considered equivalent.

    true
    valuestringValue is the value of HTTP Header to be matched.
    true

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].requestMirror

    ↩ Parent

    RequestMirror defines a schema for a filter that mirrors requests. Requests are sent to the specified destination, but responses from that destination are ignored.

    This filter can be used multiple times within the same rule. Note that not all implementations will be able to support mirroring to multiple backends.

    Support: Extended

    NameTypeDescriptionRequired
    backendRefobjectBackendRef references a resource where mirrored requests are sent.

    Mirrored requests must be sent only to a single destination endpoint within this BackendRef, irrespective of how many endpoints are present within this BackendRef.

    If the referent cannot be found, this BackendRef is invalid and must be dropped from the Gateway. The controller must ensure the “ResolvedRefs” condition on the Route status is set to status: False and not configure this backend in the underlying implementation.

    If there is a cross-namespace reference to an existing object that is not allowed by a ReferenceGrant, the controller must ensure the “ResolvedRefs” condition on the Route is set to status: False, with the “RefNotPermitted” reason and not configure this backend in the underlying implementation.

    In either error case, the Message of the ResolvedRefs Condition should be used to provide more detail about the problem.

    Support: Extended for Kubernetes Service

    Support: Implementation-specific for any other resource

    Validations:

  • (size(self.group) == 0 && self.kind == ‘Service’) ? has(self.port) : true: Must have port for Service reference
  • true
    fractionobjectFraction represents the fraction of requests that should be mirrored to BackendRef.

    Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored.

    Validations:

  • self.numerator <= self.denominator: numerator must be less than or equal to denominator
  • false
    percentintegerPercent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests).

    Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored.

    Format: int32
    Minimum: 0
    Maximum: 100

    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].requestMirror.backendRef

    ↩ Parent

    BackendRef references a resource where mirrored requests are sent.

    Mirrored requests must be sent only to a single destination endpoint within this BackendRef, irrespective of how many endpoints are present within this BackendRef.

    If the referent cannot be found, this BackendRef is invalid and must be dropped from the Gateway. The controller must ensure the “ResolvedRefs” condition on the Route status is set to status: False and not configure this backend in the underlying implementation.

    If there is a cross-namespace reference to an existing object that is not allowed by a ReferenceGrant, the controller must ensure the “ResolvedRefs” condition on the Route is set to status: False, with the “RefNotPermitted” reason and not configure this backend in the underlying implementation.

    In either error case, the Message of the ResolvedRefs Condition should be used to provide more detail about the problem.

    Support: Extended for Kubernetes Service

    Support: Implementation-specific for any other resource

    NameTypeDescriptionRequired
    namestringName is the name of the referent.
    true
    groupstringGroup is the group of the referent. For example, "gateway.networking.k8s.io". When unspecified or empty string, core API group is inferred.

    Default:
    false
    kindstringKind is the Kubernetes resource kind of the referent. For example "Service".

    Defaults to “Service” when not specified.

    ExternalName services can refer to CNAME DNS records that may live outside of the cluster and as such are difficult to reason about in terms of conformance. They also may not be safe to forward to (see CVE-2021-25740 for more information). Implementations SHOULD NOT support ExternalName Services.

    Support: Core (Services with a type other than ExternalName)

    Support: Implementation-specific (Services with type ExternalName)

    Default: Service

    false
    namespacestringNamespace is the namespace of the backend. When unspecified, the local namespace is inferred.

    Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace’s owner to accept the reference. See the ReferenceGrant documentation for details.

    Support: Core

    false
    portintegerPort specifies the destination port number to use for this resource. Port is required when the referent is a Kubernetes Service. In this case, the port number is the service port number, not the target port. For other resources, destination port might be derived from the referent resource or this field.

    Format: int32
    Minimum: 1
    Maximum: 65535
    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].requestMirror.fraction

    ↩ Parent

    Fraction represents the fraction of requests that should be mirrored to BackendRef.

    Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored.

    NameTypeDescriptionRequired
    numeratorinteger

    Format: int32
    Minimum: 0
    true
    denominatorinteger

    Format: int32
    Default: 100
    Minimum: 1
    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].requestRedirect

    ↩ Parent

    RequestRedirect defines a schema for a filter that responds to the request with an HTTP redirection.

    Support: Core

    NameTypeDescriptionRequired
    hostnamestringHostname is the hostname to be used in the value of the `Location` header in the response. When empty, the hostname in the `Host` header of the request is used.

    Support: Core

    false
    pathobjectPath defines parameters used to modify the path of the incoming request. The modified path is then used to construct the Location header. When empty, the request path is used as-is.

    Support: Extended

    Validations:

  • self.type == ‘ReplaceFullPath’ ? has(self.replaceFullPath) : true: replaceFullPath must be specified when type is set to ‘ReplaceFullPath’
  • has(self.replaceFullPath) ? self.type == ‘ReplaceFullPath’ : true: type must be ‘ReplaceFullPath’ when replaceFullPath is set
  • self.type == ‘ReplacePrefixMatch’ ? has(self.replacePrefixMatch) : true: replacePrefixMatch must be specified when type is set to ‘ReplacePrefixMatch’
  • has(self.replacePrefixMatch) ? self.type == ‘ReplacePrefixMatch’ : true: type must be ‘ReplacePrefixMatch’ when replacePrefixMatch is set
  • false
    portintegerPort is the port to be used in the value of the Location header in the response.

    If no port is specified, the redirect port MUST be derived using the following rules:

    • If redirect scheme is not-empty, the redirect port MUST be the well-known port associated with the redirect scheme. Specifically “http” to port 80 and “https” to port 443. If the redirect scheme does not have a well-known port, the listener port of the Gateway SHOULD be used.
    • If redirect scheme is empty, the redirect port MUST be the Gateway Listener port.

    Implementations SHOULD NOT add the port number in the ‘Location’ header in the following cases:

    • A Location header that will use HTTP (whether that is determined via the Listener protocol or the Scheme field) and use port 80.
    • A Location header that will use HTTPS (whether that is determined via the Listener protocol or the Scheme field) and use port 443.

    Support: Extended

    Format: int32
    Minimum: 1
    Maximum: 65535

    false
    schemeenumScheme is the scheme to be used in the value of the Location header in the response. When empty, the scheme of the request is used.

    Scheme redirects can affect the port of the redirect, for more information, refer to the documentation for the port field of this filter.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    Support: Extended

    Enum: http, https

    false
    statusCodeintegerStatusCode is the HTTP status code to be used in response.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    Support: Core

    Enum: 301, 302
    Default: 302

    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].requestRedirect.path

    ↩ Parent

    Path defines parameters used to modify the path of the incoming request. The modified path is then used to construct the Location header. When empty, the request path is used as-is.

    Support: Extended

    NameTypeDescriptionRequired
    typeenumType defines the type of path modifier. Additional types may be added in a future release of the API.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    Enum: ReplaceFullPath, ReplacePrefixMatch

    true
    replaceFullPathstringReplaceFullPath specifies the value with which to replace the full path of a request during a rewrite or redirect.
    false
    replacePrefixMatchstringReplacePrefixMatch specifies the value with which to replace the prefix match of a request during a rewrite or redirect. For example, a request to “/foo/bar” with a prefix match of “/foo” and a ReplacePrefixMatch of “/xyz” would be modified to “/xyz/bar”.

    Note that this matches the behavior of the PathPrefix match type. This matches full path elements. A path element refers to the list of labels in the path split by the / separator. When specified, a trailing / is ignored. For example, the paths /abc, /abc/, and /abc/def would all match the prefix /abc, but the path /abcd would not.

    ReplacePrefixMatch is only compatible with a PathPrefix HTTPRouteMatch. Using any other HTTPRouteMatch type on the same HTTPRouteRule will result in the implementation setting the Accepted Condition for the Route to status: False.

    Request Path | Prefix Match | Replace Prefix | Modified Path

    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].responseHeaderModifier

    ↩ Parent

    ResponseHeaderModifier defines a schema for a filter that modifies response headers.

    Support: Extended

    NameTypeDescriptionRequired
    add[]objectAdd adds the given header(s) (name, value) to the request before the action. It appends to any existing values associated with the header name.

    Input: GET /foo HTTP/1.1 my-header: foo

    Config: add:

    • name: “my-header” value: “bar,baz”

    Output: GET /foo HTTP/1.1 my-header: foo,bar,baz

    false
    remove[]stringRemove the given header(s) from the HTTP request before the action. The value of Remove is a list of HTTP header names. Note that the header names are case-insensitive (see https://datatracker.ietf.org/doc/html/rfc2616#section-4.2).

    Input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

    Config: remove: [“my-header1”, “my-header3”]

    Output: GET /foo HTTP/1.1 my-header2: bar

    false
    set[]objectSet overwrites the request with the given header (name, value) before the action.

    Input: GET /foo HTTP/1.1 my-header: foo

    Config: set:

    • name: “my-header” value: “bar”

    Output: GET /foo HTTP/1.1 my-header: bar

    false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].responseHeaderModifier.add[index]

    ↩ Parent

    HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP Header to be matched. Name matching MUST be case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).

    If multiple entries specify equivalent header names, the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent header name MUST be ignored. Due to the case-insensitivity of header names, “foo” and “Foo” are considered equivalent.

    true
    valuestringValue is the value of HTTP Header to be matched.
    true

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].responseHeaderModifier.set[index]

    ↩ Parent

    HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP Header to be matched. Name matching MUST be case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).

    If multiple entries specify equivalent header names, the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent header name MUST be ignored. Due to the case-insensitivity of header names, “foo” and “Foo” are considered equivalent.

    true
    valuestringValue is the value of HTTP Header to be matched.
    true

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].urlRewrite

    ↩ Parent

    URLRewrite defines a schema for a filter that modifies a request during forwarding.

    Support: Extended

    NameTypeDescriptionRequired
    hostnamestringHostname is the value to be used to replace the Host header value during forwarding.

    Support: Extended

    false
    pathobjectPath defines a path rewrite.

    Support: Extended

    Validations:

  • self.type == ‘ReplaceFullPath’ ? has(self.replaceFullPath) : true: replaceFullPath must be specified when type is set to ‘ReplaceFullPath’
  • has(self.replaceFullPath) ? self.type == ‘ReplaceFullPath’ : true: type must be ‘ReplaceFullPath’ when replaceFullPath is set
  • self.type == ‘ReplacePrefixMatch’ ? has(self.replacePrefixMatch) : true: replacePrefixMatch must be specified when type is set to ‘ReplacePrefixMatch’
  • has(self.replacePrefixMatch) ? self.type == ‘ReplacePrefixMatch’ : true: type must be ‘ReplacePrefixMatch’ when replacePrefixMatch is set
  • false

    Grafana.spec.httpRoute.spec.rules[index].backendRefs[index].filters[index].urlRewrite.path

    ↩ Parent

    Path defines a path rewrite.

    Support: Extended

    NameTypeDescriptionRequired
    typeenumType defines the type of path modifier. Additional types may be added in a future release of the API.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    Enum: ReplaceFullPath, ReplacePrefixMatch

    true
    replaceFullPathstringReplaceFullPath specifies the value with which to replace the full path of a request during a rewrite or redirect.
    false
    replacePrefixMatchstringReplacePrefixMatch specifies the value with which to replace the prefix match of a request during a rewrite or redirect. For example, a request to “/foo/bar” with a prefix match of “/foo” and a ReplacePrefixMatch of “/xyz” would be modified to “/xyz/bar”.

    Note that this matches the behavior of the PathPrefix match type. This matches full path elements. A path element refers to the list of labels in the path split by the / separator. When specified, a trailing / is ignored. For example, the paths /abc, /abc/, and /abc/def would all match the prefix /abc, but the path /abcd would not.

    ReplacePrefixMatch is only compatible with a PathPrefix HTTPRouteMatch. Using any other HTTPRouteMatch type on the same HTTPRouteRule will result in the implementation setting the Accepted Condition for the Route to status: False.

    Request Path | Prefix Match | Replace Prefix | Modified Path

    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index]

    ↩ Parent

    HTTPRouteFilter defines processing steps that must be completed during the request or response lifecycle. HTTPRouteFilters are meant as an extension point to express processing that may be done in Gateway implementations. Some examples include request or response modification, implementing authentication strategies, rate-limiting, and traffic shaping. API guarantee/conformance is defined based on the type of the filter.

    <gateway:experimental:validation:XValidation:message=“filter.cors must be nil if the filter.type is not CORS”,rule="!(has(self.cors) && self.type != ‘CORS’)"> <gateway:experimental:validation:XValidation:message=“filter.cors must be specified for CORS filter.type”,rule="!(!has(self.cors) && self.type == ‘CORS’)">

    NameTypeDescriptionRequired
    typeenumType identifies the type of filter to apply. As with other API fields, types are classified into three conformance levels:
    • Core: Filter types and their corresponding configuration defined by “Support: Core” in this package, e.g. “RequestHeaderModifier”. All implementations must support core filters.

    • Extended: Filter types and their corresponding configuration defined by “Support: Extended” in this package, e.g. “RequestMirror”. Implementers are encouraged to support extended filters.

    • Implementation-specific: Filters that are defined and supported by specific vendors. In the future, filters showing convergence in behavior across multiple implementations will be considered for inclusion in extended or core conformance levels. Filter-specific configuration for such filters is specified using the ExtensionRef field. Type should be set to “ExtensionRef” for custom filters.

    Implementers are encouraged to define custom implementation types to extend the core API with implementation-specific behavior.

    If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by that filter MUST receive a HTTP error response.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    gateway:experimental:validation:Enum=RequestHeaderModifier;ResponseHeaderModifier;RequestMirror;RequestRedirect;URLRewrite;ExtensionRef;CORS

    Enum: RequestHeaderModifier, ResponseHeaderModifier, RequestMirror, RequestRedirect, URLRewrite, ExtensionRef

    true
    corsobjectCORS defines a schema for a filter that responds to the cross-origin request based on HTTP response header.

    Support: Extended

    gateway:experimental

    false
    extensionRefobjectExtensionRef is an optional, implementation-specific extension to the “filter” behavior. For example, resource “myroutefilter” in group “networking.example.net”). ExtensionRef MUST NOT be used for core and extended filters.

    This filter can be used multiple times within the same rule.

    Support: Implementation-specific

    false
    requestHeaderModifierobjectRequestHeaderModifier defines a schema for a filter that modifies request headers.

    Support: Core

    false
    requestMirrorobjectRequestMirror defines a schema for a filter that mirrors requests. Requests are sent to the specified destination, but responses from that destination are ignored.

    This filter can be used multiple times within the same rule. Note that not all implementations will be able to support mirroring to multiple backends.

    Support: Extended

    Validations:

  • !(has(self.percent) && has(self.fraction)): Only one of percent or fraction may be specified in HTTPRequestMirrorFilter
  • false
    requestRedirectobjectRequestRedirect defines a schema for a filter that responds to the request with an HTTP redirection.

    Support: Core

    false
    responseHeaderModifierobjectResponseHeaderModifier defines a schema for a filter that modifies response headers.

    Support: Extended

    false
    urlRewriteobjectURLRewrite defines a schema for a filter that modifies a request during forwarding.

    Support: Extended

    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].cors

    ↩ Parent

    CORS defines a schema for a filter that responds to the cross-origin request based on HTTP response header.

    Support: Extended

    gateway:experimental

    NameTypeDescriptionRequired
    allowCredentialsbooleanAllowCredentials indicates whether the actual cross-origin request allows to include credentials.

    The only valid value for the Access-Control-Allow-Credentials response header is true (case-sensitive).

    If the credentials are not allowed in cross-origin requests, the gateway will omit the header Access-Control-Allow-Credentials entirely rather than setting its value to false.

    Support: Extended

    Enum: true

    false
    allowHeaders[]stringAllowHeaders indicates which HTTP request headers are supported for accessing the requested resource.

    Header names are not case sensitive.

    Multiple header names in the value of the Access-Control-Allow-Headers response header are separated by a comma (",").

    When the AllowHeaders field is configured with one or more headers, the gateway must return the Access-Control-Allow-Headers response header which value is present in the AllowHeaders field.

    If any header name in the Access-Control-Request-Headers request header is not included in the list of header names specified by the response header Access-Control-Allow-Headers, it will present an error on the client side.

    If any header name in the Access-Control-Allow-Headers response header does not recognize by the client, it will also occur an error on the client side.

    A wildcard indicates that the requests with all HTTP headers are allowed. The Access-Control-Allow-Headers response header can only use * wildcard as value when the AllowCredentials field is unspecified.

    When the AllowCredentials field is specified and AllowHeaders field specified with the * wildcard, the gateway must specify one or more HTTP headers in the value of the Access-Control-Allow-Headers response header. The value of the header Access-Control-Allow-Headers is same as the Access-Control-Request-Headers header provided by the client. If the header Access-Control-Request-Headers is not included in the request, the gateway will omit the Access-Control-Allow-Headers response header, instead of specifying the * wildcard. A Gateway implementation may choose to add implementation-specific default headers.

    Support: Extended

    false
    allowMethods[]enumAllowMethods indicates which HTTP methods are supported for accessing the requested resource.

    Valid values are any method defined by RFC9110, along with the special value *, which represents all HTTP methods are allowed.

    Method names are case sensitive, so these values are also case-sensitive. (See https://www.rfc-editor.org/rfc/rfc2616#section-5.1.1)

    Multiple method names in the value of the Access-Control-Allow-Methods response header are separated by a comma (",").

    A CORS-safelisted method is a method that is GET, HEAD, or POST. (See https://fetch.spec.whatwg.org/#cors-safelisted-method) The CORS-safelisted methods are always allowed, regardless of whether they are specified in the AllowMethods field.

    When the AllowMethods field is configured with one or more methods, the gateway must return the Access-Control-Allow-Methods response header which value is present in the AllowMethods field.

    If the HTTP method of the Access-Control-Request-Method request header is not included in the list of methods specified by the response header Access-Control-Allow-Methods, it will present an error on the client side.

    The Access-Control-Allow-Methods response header can only use * wildcard as value when the AllowCredentials field is unspecified.

    When the AllowCredentials field is specified and AllowMethods field specified with the * wildcard, the gateway must specify one HTTP method in the value of the Access-Control-Allow-Methods response header. The value of the header Access-Control-Allow-Methods is same as the Access-Control-Request-Method header provided by the client. If the header Access-Control-Request-Method is not included in the request, the gateway will omit the Access-Control-Allow-Methods response header, instead of specifying the * wildcard. A Gateway implementation may choose to add implementation-specific default methods.

    Support: Extended

    Validations:

  • !(’’ in self && self.size() > 1): AllowMethods cannot contain ‘’ alongside other methods
  • Enum: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, *
    false
    allowOrigins[]stringAllowOrigins indicates whether the response can be shared with requested resource from the given Origin.

    The Origin consists of a scheme and a host, with an optional port, and takes the form <scheme>://<host>(:<port>).

    Valid values for scheme are: http and https.

    Valid values for port are any integer between 1 and 65535 (the list of available TCP/UDP ports). Note that, if not included, port 80 is assumed for http scheme origins, and port 443 is assumed for https origins. This may affect origin matching.

    The host part of the origin may contain the wildcard character *. These wildcard characters behave as follows:

    • * is a greedy match to the left, including any number of DNS labels to the left of its position. This also means that * will include any number of period . characters to the left of its position.
    • A wildcard by itself matches all hosts.

    An origin value that includes only the * character indicates requests from all Origins are allowed.

    When the AllowOrigins field is configured with multiple origins, it means the server supports clients from multiple origins. If the request Origin matches the configured allowed origins, the gateway must return the given Origin and sets value of the header Access-Control-Allow-Origin same as the Origin header provided by the client.

    The status code of a successful response to a “preflight” request is always an OK status (i.e., 204 or 200).

    If the request Origin does not match the configured allowed origins, the gateway returns 204/200 response but doesn’t set the relevant cross-origin response headers. Alternatively, the gateway responds with 403 status to the “preflight” request is denied, coupled with omitting the CORS headers. The cross-origin request fails on the client side. Therefore, the client doesn’t attempt the actual cross-origin request.

    The Access-Control-Allow-Origin response header can only use * wildcard as value when the AllowCredentials field is unspecified.

    When the AllowCredentials field is specified and AllowOrigins field specified with the * wildcard, the gateway must return a single origin in the value of the Access-Control-Allow-Origin response header, instead of specifying the * wildcard. The value of the header Access-Control-Allow-Origin is same as the Origin header provided by the client.

    Support: Extended

    false
    exposeHeaders[]stringExposeHeaders indicates which HTTP response headers can be exposed to client-side scripts in response to a cross-origin request.

    A CORS-safelisted response header is an HTTP header in a CORS response that it is considered safe to expose to the client scripts. The CORS-safelisted response headers include the following headers: Cache-Control Content-Language Content-Length Content-Type Expires Last-Modified Pragma (See https://fetch.spec.whatwg.org/#cors-safelisted-response-header-name) The CORS-safelisted response headers are exposed to client by default.

    When an HTTP header name is specified using the ExposeHeaders field, this additional header will be exposed as part of the response to the client.

    Header names are not case sensitive.

    Multiple header names in the value of the Access-Control-Expose-Headers response header are separated by a comma (",").

    A wildcard indicates that the responses with all HTTP headers are exposed to clients. The Access-Control-Expose-Headers response header can only use * wildcard as value when the AllowCredentials field is unspecified.

    Support: Extended

    false
    maxAgeintegerMaxAge indicates the duration (in seconds) for the client to cache the results of a “preflight” request.

    The information provided by the Access-Control-Allow-Methods and Access-Control-Allow-Headers response headers can be cached by the client until the time specified by Access-Control-Max-Age elapses.

    The default value of Access-Control-Max-Age response header is 5 (seconds).

    Format: int32
    Default: 5
    Minimum: 1

    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].extensionRef

    ↩ Parent

    ExtensionRef is an optional, implementation-specific extension to the “filter” behavior. For example, resource “myroutefilter” in group “networking.example.net”). ExtensionRef MUST NOT be used for core and extended filters.

    This filter can be used multiple times within the same rule.

    Support: Implementation-specific

    NameTypeDescriptionRequired
    groupstringGroup is the group of the referent. For example, "gateway.networking.k8s.io". When unspecified or empty string, core API group is inferred.
    true
    kindstringKind is kind of the referent. For example "HTTPRoute" or "Service".
    true
    namestringName is the name of the referent.
    true

    Grafana.spec.httpRoute.spec.rules[index].filters[index].requestHeaderModifier

    ↩ Parent

    RequestHeaderModifier defines a schema for a filter that modifies request headers.

    Support: Core

    NameTypeDescriptionRequired
    add[]objectAdd adds the given header(s) (name, value) to the request before the action. It appends to any existing values associated with the header name.

    Input: GET /foo HTTP/1.1 my-header: foo

    Config: add:

    • name: “my-header” value: “bar,baz”

    Output: GET /foo HTTP/1.1 my-header: foo,bar,baz

    false
    remove[]stringRemove the given header(s) from the HTTP request before the action. The value of Remove is a list of HTTP header names. Note that the header names are case-insensitive (see https://datatracker.ietf.org/doc/html/rfc2616#section-4.2).

    Input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

    Config: remove: [“my-header1”, “my-header3”]

    Output: GET /foo HTTP/1.1 my-header2: bar

    false
    set[]objectSet overwrites the request with the given header (name, value) before the action.

    Input: GET /foo HTTP/1.1 my-header: foo

    Config: set:

    • name: “my-header” value: “bar”

    Output: GET /foo HTTP/1.1 my-header: bar

    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].requestHeaderModifier.add[index]

    ↩ Parent

    HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP Header to be matched. Name matching MUST be case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).

    If multiple entries specify equivalent header names, the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent header name MUST be ignored. Due to the case-insensitivity of header names, “foo” and “Foo” are considered equivalent.

    true
    valuestringValue is the value of HTTP Header to be matched.
    true

    Grafana.spec.httpRoute.spec.rules[index].filters[index].requestHeaderModifier.set[index]

    ↩ Parent

    HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP Header to be matched. Name matching MUST be case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).

    If multiple entries specify equivalent header names, the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent header name MUST be ignored. Due to the case-insensitivity of header names, “foo” and “Foo” are considered equivalent.

    true
    valuestringValue is the value of HTTP Header to be matched.
    true

    Grafana.spec.httpRoute.spec.rules[index].filters[index].requestMirror

    ↩ Parent

    RequestMirror defines a schema for a filter that mirrors requests. Requests are sent to the specified destination, but responses from that destination are ignored.

    This filter can be used multiple times within the same rule. Note that not all implementations will be able to support mirroring to multiple backends.

    Support: Extended

    NameTypeDescriptionRequired
    backendRefobjectBackendRef references a resource where mirrored requests are sent.

    Mirrored requests must be sent only to a single destination endpoint within this BackendRef, irrespective of how many endpoints are present within this BackendRef.

    If the referent cannot be found, this BackendRef is invalid and must be dropped from the Gateway. The controller must ensure the “ResolvedRefs” condition on the Route status is set to status: False and not configure this backend in the underlying implementation.

    If there is a cross-namespace reference to an existing object that is not allowed by a ReferenceGrant, the controller must ensure the “ResolvedRefs” condition on the Route is set to status: False, with the “RefNotPermitted” reason and not configure this backend in the underlying implementation.

    In either error case, the Message of the ResolvedRefs Condition should be used to provide more detail about the problem.

    Support: Extended for Kubernetes Service

    Support: Implementation-specific for any other resource

    Validations:

  • (size(self.group) == 0 && self.kind == ‘Service’) ? has(self.port) : true: Must have port for Service reference
  • true
    fractionobjectFraction represents the fraction of requests that should be mirrored to BackendRef.

    Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored.

    Validations:

  • self.numerator <= self.denominator: numerator must be less than or equal to denominator
  • false
    percentintegerPercent represents the percentage of requests that should be mirrored to BackendRef. Its minimum value is 0 (indicating 0% of requests) and its maximum value is 100 (indicating 100% of requests).

    Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored.

    Format: int32
    Minimum: 0
    Maximum: 100

    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].requestMirror.backendRef

    ↩ Parent

    BackendRef references a resource where mirrored requests are sent.

    Mirrored requests must be sent only to a single destination endpoint within this BackendRef, irrespective of how many endpoints are present within this BackendRef.

    If the referent cannot be found, this BackendRef is invalid and must be dropped from the Gateway. The controller must ensure the “ResolvedRefs” condition on the Route status is set to status: False and not configure this backend in the underlying implementation.

    If there is a cross-namespace reference to an existing object that is not allowed by a ReferenceGrant, the controller must ensure the “ResolvedRefs” condition on the Route is set to status: False, with the “RefNotPermitted” reason and not configure this backend in the underlying implementation.

    In either error case, the Message of the ResolvedRefs Condition should be used to provide more detail about the problem.

    Support: Extended for Kubernetes Service

    Support: Implementation-specific for any other resource

    NameTypeDescriptionRequired
    namestringName is the name of the referent.
    true
    groupstringGroup is the group of the referent. For example, "gateway.networking.k8s.io". When unspecified or empty string, core API group is inferred.

    Default:
    false
    kindstringKind is the Kubernetes resource kind of the referent. For example "Service".

    Defaults to “Service” when not specified.

    ExternalName services can refer to CNAME DNS records that may live outside of the cluster and as such are difficult to reason about in terms of conformance. They also may not be safe to forward to (see CVE-2021-25740 for more information). Implementations SHOULD NOT support ExternalName Services.

    Support: Core (Services with a type other than ExternalName)

    Support: Implementation-specific (Services with type ExternalName)

    Default: Service

    false
    namespacestringNamespace is the namespace of the backend. When unspecified, the local namespace is inferred.

    Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace’s owner to accept the reference. See the ReferenceGrant documentation for details.

    Support: Core

    false
    portintegerPort specifies the destination port number to use for this resource. Port is required when the referent is a Kubernetes Service. In this case, the port number is the service port number, not the target port. For other resources, destination port might be derived from the referent resource or this field.

    Format: int32
    Minimum: 1
    Maximum: 65535
    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].requestMirror.fraction

    ↩ Parent

    Fraction represents the fraction of requests that should be mirrored to BackendRef.

    Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored.

    NameTypeDescriptionRequired
    numeratorinteger

    Format: int32
    Minimum: 0
    true
    denominatorinteger

    Format: int32
    Default: 100
    Minimum: 1
    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].requestRedirect

    ↩ Parent

    RequestRedirect defines a schema for a filter that responds to the request with an HTTP redirection.

    Support: Core

    NameTypeDescriptionRequired
    hostnamestringHostname is the hostname to be used in the value of the `Location` header in the response. When empty, the hostname in the `Host` header of the request is used.

    Support: Core

    false
    pathobjectPath defines parameters used to modify the path of the incoming request. The modified path is then used to construct the Location header. When empty, the request path is used as-is.

    Support: Extended

    Validations:

  • self.type == ‘ReplaceFullPath’ ? has(self.replaceFullPath) : true: replaceFullPath must be specified when type is set to ‘ReplaceFullPath’
  • has(self.replaceFullPath) ? self.type == ‘ReplaceFullPath’ : true: type must be ‘ReplaceFullPath’ when replaceFullPath is set
  • self.type == ‘ReplacePrefixMatch’ ? has(self.replacePrefixMatch) : true: replacePrefixMatch must be specified when type is set to ‘ReplacePrefixMatch’
  • has(self.replacePrefixMatch) ? self.type == ‘ReplacePrefixMatch’ : true: type must be ‘ReplacePrefixMatch’ when replacePrefixMatch is set
  • false
    portintegerPort is the port to be used in the value of the Location header in the response.

    If no port is specified, the redirect port MUST be derived using the following rules:

    • If redirect scheme is not-empty, the redirect port MUST be the well-known port associated with the redirect scheme. Specifically “http” to port 80 and “https” to port 443. If the redirect scheme does not have a well-known port, the listener port of the Gateway SHOULD be used.
    • If redirect scheme is empty, the redirect port MUST be the Gateway Listener port.

    Implementations SHOULD NOT add the port number in the ‘Location’ header in the following cases:

    • A Location header that will use HTTP (whether that is determined via the Listener protocol or the Scheme field) and use port 80.
    • A Location header that will use HTTPS (whether that is determined via the Listener protocol or the Scheme field) and use port 443.

    Support: Extended

    Format: int32
    Minimum: 1
    Maximum: 65535

    false
    schemeenumScheme is the scheme to be used in the value of the Location header in the response. When empty, the scheme of the request is used.

    Scheme redirects can affect the port of the redirect, for more information, refer to the documentation for the port field of this filter.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    Support: Extended

    Enum: http, https

    false
    statusCodeintegerStatusCode is the HTTP status code to be used in response.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    Support: Core

    Enum: 301, 302
    Default: 302

    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].requestRedirect.path

    ↩ Parent

    Path defines parameters used to modify the path of the incoming request. The modified path is then used to construct the Location header. When empty, the request path is used as-is.

    Support: Extended

    NameTypeDescriptionRequired
    typeenumType defines the type of path modifier. Additional types may be added in a future release of the API.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    Enum: ReplaceFullPath, ReplacePrefixMatch

    true
    replaceFullPathstringReplaceFullPath specifies the value with which to replace the full path of a request during a rewrite or redirect.
    false
    replacePrefixMatchstringReplacePrefixMatch specifies the value with which to replace the prefix match of a request during a rewrite or redirect. For example, a request to “/foo/bar” with a prefix match of “/foo” and a ReplacePrefixMatch of “/xyz” would be modified to “/xyz/bar”.

    Note that this matches the behavior of the PathPrefix match type. This matches full path elements. A path element refers to the list of labels in the path split by the / separator. When specified, a trailing / is ignored. For example, the paths /abc, /abc/, and /abc/def would all match the prefix /abc, but the path /abcd would not.

    ReplacePrefixMatch is only compatible with a PathPrefix HTTPRouteMatch. Using any other HTTPRouteMatch type on the same HTTPRouteRule will result in the implementation setting the Accepted Condition for the Route to status: False.

    Request Path | Prefix Match | Replace Prefix | Modified Path

    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].responseHeaderModifier

    ↩ Parent

    ResponseHeaderModifier defines a schema for a filter that modifies response headers.

    Support: Extended

    NameTypeDescriptionRequired
    add[]objectAdd adds the given header(s) (name, value) to the request before the action. It appends to any existing values associated with the header name.

    Input: GET /foo HTTP/1.1 my-header: foo

    Config: add:

    • name: “my-header” value: “bar,baz”

    Output: GET /foo HTTP/1.1 my-header: foo,bar,baz

    false
    remove[]stringRemove the given header(s) from the HTTP request before the action. The value of Remove is a list of HTTP header names. Note that the header names are case-insensitive (see https://datatracker.ietf.org/doc/html/rfc2616#section-4.2).

    Input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz

    Config: remove: [“my-header1”, “my-header3”]

    Output: GET /foo HTTP/1.1 my-header2: bar

    false
    set[]objectSet overwrites the request with the given header (name, value) before the action.

    Input: GET /foo HTTP/1.1 my-header: foo

    Config: set:

    • name: “my-header” value: “bar”

    Output: GET /foo HTTP/1.1 my-header: bar

    false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].responseHeaderModifier.add[index]

    ↩ Parent

    HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP Header to be matched. Name matching MUST be case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).

    If multiple entries specify equivalent header names, the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent header name MUST be ignored. Due to the case-insensitivity of header names, “foo” and “Foo” are considered equivalent.

    true
    valuestringValue is the value of HTTP Header to be matched.
    true

    Grafana.spec.httpRoute.spec.rules[index].filters[index].responseHeaderModifier.set[index]

    ↩ Parent

    HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP Header to be matched. Name matching MUST be case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).

    If multiple entries specify equivalent header names, the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent header name MUST be ignored. Due to the case-insensitivity of header names, “foo” and “Foo” are considered equivalent.

    true
    valuestringValue is the value of HTTP Header to be matched.
    true

    Grafana.spec.httpRoute.spec.rules[index].filters[index].urlRewrite

    ↩ Parent

    URLRewrite defines a schema for a filter that modifies a request during forwarding.

    Support: Extended

    NameTypeDescriptionRequired
    hostnamestringHostname is the value to be used to replace the Host header value during forwarding.

    Support: Extended

    false
    pathobjectPath defines a path rewrite.

    Support: Extended

    Validations:

  • self.type == ‘ReplaceFullPath’ ? has(self.replaceFullPath) : true: replaceFullPath must be specified when type is set to ‘ReplaceFullPath’
  • has(self.replaceFullPath) ? self.type == ‘ReplaceFullPath’ : true: type must be ‘ReplaceFullPath’ when replaceFullPath is set
  • self.type == ‘ReplacePrefixMatch’ ? has(self.replacePrefixMatch) : true: replacePrefixMatch must be specified when type is set to ‘ReplacePrefixMatch’
  • has(self.replacePrefixMatch) ? self.type == ‘ReplacePrefixMatch’ : true: type must be ‘ReplacePrefixMatch’ when replacePrefixMatch is set
  • false

    Grafana.spec.httpRoute.spec.rules[index].filters[index].urlRewrite.path

    ↩ Parent

    Path defines a path rewrite.

    Support: Extended

    NameTypeDescriptionRequired
    typeenumType defines the type of path modifier. Additional types may be added in a future release of the API.

    Note that values may be added to this enum, implementations must ensure that unknown values will not cause a crash.

    Unknown values here must result in the implementation setting the Accepted Condition for the Route to status: False, with a Reason of UnsupportedValue.

    Enum: ReplaceFullPath, ReplacePrefixMatch

    true
    replaceFullPathstringReplaceFullPath specifies the value with which to replace the full path of a request during a rewrite or redirect.
    false
    replacePrefixMatchstringReplacePrefixMatch specifies the value with which to replace the prefix match of a request during a rewrite or redirect. For example, a request to “/foo/bar” with a prefix match of “/foo” and a ReplacePrefixMatch of “/xyz” would be modified to “/xyz/bar”.

    Note that this matches the behavior of the PathPrefix match type. This matches full path elements. A path element refers to the list of labels in the path split by the / separator. When specified, a trailing / is ignored. For example, the paths /abc, /abc/, and /abc/def would all match the prefix /abc, but the path /abcd would not.

    ReplacePrefixMatch is only compatible with a PathPrefix HTTPRouteMatch. Using any other HTTPRouteMatch type on the same HTTPRouteRule will result in the implementation setting the Accepted Condition for the Route to status: False.

    Request Path | Prefix Match | Replace Prefix | Modified Path

    false

    Grafana.spec.httpRoute.spec.rules[index].matches[index]

    ↩ Parent

    HTTPRouteMatch defines the predicate used to match requests to a given action. Multiple match types are ANDed together, i.e. the match will evaluate to true only if all conditions are satisfied.

    For example, the match below will match a HTTP request only if its path starts with /foo AND it contains the version: v1 header:

    match:
    
    	path:
    	  value: "/foo"
    	headers:
    	- name: "version"
    	  value "v1"
    

    NameTypeDescriptionRequired
    headers[]objectHeaders specifies HTTP request header matchers. Multiple match values are ANDed together, meaning, a request must match all the specified headers to select the route.
    false
    methodenumMethod specifies HTTP method matcher. When specified, this route will be matched only if the request has the specified method.

    Support: Extended

    Enum: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH

    false
    pathobjectPath specifies a HTTP request path matcher. If this field is not specified, a default prefix match on the “/” path is provided.

    Validations:
  • (self.type in [‘Exact’,‘PathPrefix’]) ? self.value.startsWith(’/’) : true: value must be an absolute path and start with ‘/’ when type one of [‘Exact’, ‘PathPrefix’]
  • (self.type in [‘Exact’,‘PathPrefix’]) ? !self.value.contains(’//’) : true: must not contain ‘//’ when type one of [‘Exact’, ‘PathPrefix’]
  • (self.type in [‘Exact’,‘PathPrefix’]) ? !self.value.contains(’/./’) : true: must not contain ‘/./’ when type one of [‘Exact’, ‘PathPrefix’]
  • (self.type in [‘Exact’,‘PathPrefix’]) ? !self.value.contains(’/../’) : true: must not contain ‘/../’ when type one of [‘Exact’, ‘PathPrefix’]
  • (self.type in [‘Exact’,‘PathPrefix’]) ? !self.value.contains(’%2f’) : true: must not contain ‘%2f’ when type one of [‘Exact’, ‘PathPrefix’]
  • (self.type in [‘Exact’,‘PathPrefix’]) ? !self.value.contains(’%2F’) : true: must not contain ‘%2F’ when type one of [‘Exact’, ‘PathPrefix’]
  • (self.type in [‘Exact’,‘PathPrefix’]) ? !self.value.contains(’#’) : true: must not contain ‘#’ when type one of [‘Exact’, ‘PathPrefix’]
  • (self.type in [‘Exact’,‘PathPrefix’]) ? !self.value.endsWith(’/..’) : true: must not end with ‘/..’ when type one of [‘Exact’, ‘PathPrefix’]
  • (self.type in [‘Exact’,‘PathPrefix’]) ? !self.value.endsWith(’/.’) : true: must not end with ‘/.’ when type one of [‘Exact’, ‘PathPrefix’]
  • self.type in [‘Exact’,‘PathPrefix’] || self.type == ‘RegularExpression’: type must be one of [‘Exact’, ‘PathPrefix’, ‘RegularExpression’]
  • (self.type in [‘Exact’,‘PathPrefix’]) ? self.value.matches(r"""^(?:[-A-Za-z0-9/.~!$&’()*+,;=:@]|[%][0-9a-fA-F]{2})+$""") : true: must only contain valid characters (matching ^(?:[-A-Za-z0-9/.~!$&’()*+,;=:@]|[%][0-9a-fA-F]{2})+$) for types [‘Exact’, ‘PathPrefix’]
  • Default: map[type:PathPrefix value:/]
    false
    queryParams[]objectQueryParams specifies HTTP query parameter matchers. Multiple match values are ANDed together, meaning, a request must match all the specified query parameters to select the route.

    Support: Extended

    false

    Grafana.spec.httpRoute.spec.rules[index].matches[index].headers[index]

    ↩ Parent

    HTTPHeaderMatch describes how to select a HTTP route by matching HTTP request headers.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP Header to be matched. Name matching MUST be case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).

    If multiple entries specify equivalent header names, only the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent header name MUST be ignored. Due to the case-insensitivity of header names, “foo” and “Foo” are considered equivalent.

    When a header is repeated in an HTTP request, it is implementation-specific behavior as to how this is represented. Generally, proxies should follow the guidance from the RFC: https://www.rfc-editor.org/rfc/rfc7230.html#section-3.2.2 regarding processing a repeated header, with special handling for “Set-Cookie”.

    true
    valuestringValue is the value of HTTP Header to be matched.
    true
    typeenumType specifies how to match against the value of the header.

    Support: Core (Exact)

    Support: Implementation-specific (RegularExpression)

    Since RegularExpression HeaderMatchType has implementation-specific conformance, implementations can support POSIX, PCRE or any other dialects of regular expressions. Please read the implementation’s documentation to determine the supported dialect.

    Enum: Exact, RegularExpression
    Default: Exact

    false

    Grafana.spec.httpRoute.spec.rules[index].matches[index].path

    ↩ Parent

    Path specifies a HTTP request path matcher. If this field is not specified, a default prefix match on the “/” path is provided.

    NameTypeDescriptionRequired
    typeenumType specifies how to match against the path Value.

    Support: Core (Exact, PathPrefix)

    Support: Implementation-specific (RegularExpression)

    Enum: Exact, PathPrefix, RegularExpression
    Default: PathPrefix

    false
    valuestringValue of the HTTP path to match against.

    Default: /
    false

    Grafana.spec.httpRoute.spec.rules[index].matches[index].queryParams[index]

    ↩ Parent

    HTTPQueryParamMatch describes how to select a HTTP route by matching HTTP query parameters.

    NameTypeDescriptionRequired
    namestringName is the name of the HTTP query param to be matched. This must be an exact string match. (See https://tools.ietf.org/html/rfc7230#section-2.7.3).

    If multiple entries specify equivalent query param names, only the first entry with an equivalent name MUST be considered for a match. Subsequent entries with an equivalent query param name MUST be ignored.

    If a query param is repeated in an HTTP request, the behavior is purposely left undefined, since different data planes have different capabilities. However, it is recommended that implementations should match against the first value of the param if the data plane supports it, as this behavior is expected in other load balancing contexts outside of the Gateway API.

    Users SHOULD NOT route traffic based on repeated query params to guard themselves against potential differences in the implementations.

    true
    valuestringValue is the value of HTTP query param to be matched.
    true
    typeenumType specifies how to match against the value of the query parameter.

    Support: Extended (Exact)

    Support: Implementation-specific (RegularExpression)

    Since RegularExpression QueryParamMatchType has Implementation-specific conformance, implementations can support POSIX, PCRE or any other dialects of regular expressions. Please read the implementation’s documentation to determine the supported dialect.

    Enum: Exact, RegularExpression
    Default: Exact

    false

    Grafana.spec.httpRoute.spec.rules[index].retry

    ↩ Parent

    Retry defines the configuration for when to retry an HTTP request.

    Support: Extended

    gateway:experimental

    NameTypeDescriptionRequired
    attemptsintegerAttempts specifies the maximum number of times an individual request from the gateway to a backend should be retried.

    If the maximum number of retries has been attempted without a successful response from the backend, the Gateway MUST return an error.

    When this field is unspecified, the number of times to attempt to retry a backend request is implementation-specific.

    Support: Extended

    false
    backoffstringBackoff specifies the minimum duration a Gateway should wait between retry attempts and is represented in Gateway API Duration formatting.

    For example, setting the rules[].retry.backoff field to the value 100ms will cause a backend request to first be retried approximately 100 milliseconds after timing out or receiving a response code configured to be retryable.

    An implementation MAY use an exponential or alternative backoff strategy for subsequent retry attempts, MAY cap the maximum backoff duration to some amount greater than the specified minimum, and MAY add arbitrary jitter to stagger requests, as long as unsuccessful backend requests are not retried before the configured minimum duration.

    If a Request timeout (rules[].timeouts.request) is configured on the route, the entire duration of the initial request and any retry attempts MUST not exceed the Request timeout duration. If any retry attempts are still in progress when the Request timeout duration has been reached, these SHOULD be canceled if possible and the Gateway MUST immediately return a timeout error.

    If a BackendRequest timeout (rules[].timeouts.backendRequest) is configured on the route, any retry attempts which reach the configured BackendRequest timeout duration without a response SHOULD be canceled if possible and the Gateway should wait for at least the specified backoff duration before attempting to retry the backend request again.

    If a BackendRequest timeout is not configured on the route, retry attempts MAY time out after an implementation default duration, or MAY remain pending until a configured Request timeout or implementation default duration for total request time is reached.

    When this field is unspecified, the time to wait between retry attempts is implementation-specific.

    Support: Extended

    false
    codes[]integerCodes defines the HTTP response status codes for which a backend request should be retried.

    Support: Extended

    false

    Grafana.spec.httpRoute.spec.rules[index].sessionPersistence

    ↩ Parent

    SessionPersistence defines and configures session persistence for the route rule.

    Support: Extended

    gateway:experimental

    NameTypeDescriptionRequired
    absoluteTimeoutstringAbsoluteTimeout defines the absolute timeout of the persistent session. Once the AbsoluteTimeout duration has elapsed, the session becomes invalid.

    Support: Extended

    false
    cookieConfigobjectCookieConfig provides configuration settings that are specific to cookie-based session persistence.

    Support: Core

    false
    idleTimeoutstringIdleTimeout defines the idle timeout of the persistent session. Once the session has been idle for more than the specified IdleTimeout duration, the session becomes invalid.

    Support: Extended

    false
    sessionNamestringSessionName defines the name of the persistent session token which may be reflected in the cookie or the header. Users should avoid reusing session names to prevent unintended consequences, such as rejection or unpredictable behavior.

    Support: Implementation-specific

    false
    typeenumType defines the type of session persistence such as through the use a header or cookie. Defaults to cookie based session persistence.

    Support: Core for “Cookie” type

    Support: Extended for “Header” type

    Enum: Cookie, Header
    Default: Cookie

    false

    Grafana.spec.httpRoute.spec.rules[index].sessionPersistence.cookieConfig

    ↩ Parent

    CookieConfig provides configuration settings that are specific to cookie-based session persistence.

    Support: Core

    NameTypeDescriptionRequired
    lifetimeTypeenumLifetimeType specifies whether the cookie has a permanent or session-based lifetime. A permanent cookie persists until its specified expiry time, defined by the Expires or Max-Age cookie attributes, while a session cookie is deleted when the current session ends.

    When set to “Permanent”, AbsoluteTimeout indicates the cookie’s lifetime via the Expires or Max-Age cookie attributes and is required.

    When set to “Session”, AbsoluteTimeout indicates the absolute lifetime of the cookie tracked by the gateway and is optional.

    Defaults to “Session”.

    Support: Core for “Session” type

    Support: Extended for “Permanent” type

    Enum: Permanent, Session
    Default: Session

    false

    Grafana.spec.httpRoute.spec.rules[index].timeouts

    ↩ Parent

    Timeouts defines the timeouts that can be configured for an HTTP request.

    Support: Extended

    NameTypeDescriptionRequired
    backendRequeststringBackendRequest specifies a timeout for an individual request from the gateway to a backend. This covers the time from when the request first starts being sent from the gateway to when the full response has been received from the backend.

    Setting a timeout to the zero duration (e.g. “0s”) SHOULD disable the timeout completely. Implementations that cannot completely disable the timeout MUST instead interpret the zero duration as the longest possible value to which the timeout can be set.

    An entire client HTTP transaction with a gateway, covered by the Request timeout, may result in more than one call from the gateway to the destination backend, for example, if automatic retries are supported.

    The value of BackendRequest must be a Gateway API Duration string as defined by GEP-2257. When this field is unspecified, its behavior is implementation-specific; when specified, the value of BackendRequest must be no more than the value of the Request timeout (since the Request timeout encompasses the BackendRequest timeout).

    Support: Extended

    false
    requeststringRequest specifies the maximum duration for a gateway to respond to an HTTP request. If the gateway has not been able to respond before this deadline is met, the gateway MUST return a timeout error.

    For example, setting the rules.timeouts.request field to the value 10s in an HTTPRoute will cause a timeout if a client request is taking longer than 10 seconds to complete.

    Setting a timeout to the zero duration (e.g. “0s”) SHOULD disable the timeout completely. Implementations that cannot completely disable the timeout MUST instead interpret the zero duration as the longest possible value to which the timeout can be set.

    This timeout is intended to cover as close to the whole request-response transaction as possible although an implementation MAY choose to start the timeout after the entire request stream has been received instead of immediately after the transaction is initiated by the client.

    The value of Request is a Gateway API Duration string as defined by GEP-2257. When this field is unspecified, request timeout behavior is implementation-specific.

    Support: Extended

    false

    Grafana.spec.ingress

    ↩ Parent

    Ingress sets how the ingress object should look like with your grafana instance.

    NameTypeDescriptionRequired
    metadataobjectObjectMeta 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).
    false
    specobjectIngressSpec describes the Ingress the user wishes to exist.
    false

    Grafana.spec.ingress.metadata

    ↩ Parent

    ObjectMeta contains only a subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.

    NameTypeDescriptionRequired
    annotationsmap[string]string
    false
    labelsmap[string]string
    false

    Grafana.spec.ingress.spec

    ↩ Parent

    IngressSpec describes the Ingress the user wishes to exist.

    NameTypeDescriptionRequired
    defaultBackendobjectdefaultBackend 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.
    false
    ingressClassNamestringingressClassName 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.
    false
    rules[]objectrules 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.
    false
    tls[]objecttls 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.
    false

    Grafana.spec.ingress.spec.defaultBackend

    ↩ Parent

    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.

    NameTypeDescriptionRequired
    resourceobjectresource 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".
    false
    serviceobjectservice references a service as a backend. This is a mutually exclusive setting with "Resource".
    false

    Grafana.spec.ingress.spec.defaultBackend.resource

    ↩ Parent

    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”.

    NameTypeDescriptionRequired
    kindstringKind is the type of resource being referenced
    true
    namestringName is the name of resource being referenced
    true
    apiGroupstringAPIGroup 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.
    false

    Grafana.spec.ingress.spec.defaultBackend.service

    ↩ Parent

    service references a service as a backend. This is a mutually exclusive setting with “Resource”.

    NameTypeDescriptionRequired
    namestringname is the referenced service. The service must exist in the same namespace as the Ingress object.
    true
    portobjectport of the referenced service. A port name or port number is required for a IngressServiceBackend.
    false

    Grafana.spec.ingress.spec.defaultBackend.service.port

    ↩ Parent

    port of the referenced service. A port name or port number is required for a IngressServiceBackend.

    NameTypeDescriptionRequired
    namestringname is the name of the port on the Service. This is a mutually exclusive setting with "Number".
    false
    numberintegernumber is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with "Name".

    Format: int32
    false

    Grafana.spec.ingress.spec.rules[index]

    ↩ Parent

    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.

    NameTypeDescriptionRequired
    hoststringhost is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the "host" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the IP in the Spec of the parent Ingress. 2. The `:` delimiter is not respected because ports are not allowed. Currently the port of an Ingress is implicitly :80 for http and :443 for https. Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.

    host can be “precise” which is a domain name without the terminating dot of a network host (e.g. “foo.bar.com”) or “wildcard”, which is a domain name prefixed with a single wildcard label (e.g. “.foo.com”). The wildcard character ‘’ must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == “*”). Requests will be matched against the Host field in the following way:

    1. If host is precise, the request matches this rule if the http host header is equal to Host.
    2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.
    false
    httpobjectHTTPIngressRuleValue is a list of http selectors pointing to backends.

    In the example: http:///? -> 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 ‘#’.

    false

    Grafana.spec.ingress.spec.rules[index].http

    ↩ Parent

    HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http:///? -> 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 ‘#’.

    NameTypeDescriptionRequired
    paths[]objectpaths is a collection of paths that map requests to backends.
    true

    Grafana.spec.ingress.spec.rules[index].http.paths[index]

    ↩ Parent

    HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.

    NameTypeDescriptionRequired
    backendobjectbackend defines the referenced service endpoint to which the traffic will be forwarded to.
    true
    pathTypestringpathType 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.
    true
    pathstringpath 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".
    false

    Grafana.spec.ingress.spec.rules[index].http.paths[index].backend

    ↩ Parent

    backend defines the referenced service endpoint to which the traffic will be forwarded to.

    NameTypeDescriptionRequired
    resourceobjectresource 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".
    false
    serviceobjectservice references a service as a backend. This is a mutually exclusive setting with "Resource".
    false

    Grafana.spec.ingress.spec.rules[index].http.paths[index].backend.resource

    ↩ Parent

    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”.

    NameTypeDescriptionRequired
    kindstringKind is the type of resource being referenced
    true
    namestringName is the name of resource being referenced
    true
    apiGroupstringAPIGroup 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.
    false

    Grafana.spec.ingress.spec.rules[index].http.paths[index].backend.service

    ↩ Parent

    service references a service as a backend. This is a mutually exclusive setting with “Resource”.

    NameTypeDescriptionRequired
    namestringname is the referenced service. The service must exist in the same namespace as the Ingress object.
    true
    portobjectport of the referenced service. A port name or port number is required for a IngressServiceBackend.
    false

    Grafana.spec.ingress.spec.rules[index].http.paths[index].backend.service.port

    ↩ Parent

    port of the referenced service. A port name or port number is required for a IngressServiceBackend.

    NameTypeDescriptionRequired
    namestringname is the name of the port on the Service. This is a mutually exclusive setting with "Number".
    false
    numberintegernumber is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with "Name".

    Format: int32
    false

    Grafana.spec.ingress.spec.tls[index]

    ↩ Parent

    IngressTLS describes the transport layer security associated with an ingress.

    NameTypeDescriptionRequired
    hosts[]stringhosts 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.
    false
    secretNamestringsecretName 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.
    false

    Grafana.spec.jsonnet

    ↩ Parent

    NameTypeDescriptionRequired
    libraryLabelSelectorobjectA 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.
    false

    Grafana.spec.jsonnet.libraryLabelSelector

    ↩ Parent

    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.

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    Grafana.spec.jsonnet.libraryLabelSelector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    Grafana.spec.persistentVolumeClaim

    ↩ Parent

    PersistentVolumeClaim creates a PVC if you need to attach one to your grafana instance.

    NameTypeDescriptionRequired
    metadataobjectObjectMeta 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).
    false
    specobject
    false

    Grafana.spec.persistentVolumeClaim.metadata

    ↩ Parent

    ObjectMeta contains only a subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.

    NameTypeDescriptionRequired
    annotationsmap[string]string
    false
    labelsmap[string]string
    false

    Grafana.spec.persistentVolumeClaim.spec

    ↩ Parent

    NameTypeDescriptionRequired
    accessModes[]string
    false
    dataSourceobjectTypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.
    false
    dataSourceRefobjectTypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.
    false
    resourcesobjectResourceRequirements describes the compute resource requirements.
    false
    selectorobjectA 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.
    false
    storageClassNamestring
    false
    volumeModestringPersistentVolumeMode describes how a volume is intended to be consumed, either Block or Filesystem.
    false
    volumeNamestringVolumeName is the binding reference to the PersistentVolume backing this claim.
    false

    Grafana.spec.persistentVolumeClaim.spec.dataSource

    ↩ Parent

    TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.

    NameTypeDescriptionRequired
    kindstringKind is the type of resource being referenced
    true
    namestringName is the name of resource being referenced
    true
    apiGroupstringAPIGroup 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.
    false

    Grafana.spec.persistentVolumeClaim.spec.dataSourceRef

    ↩ Parent

    TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.

    NameTypeDescriptionRequired
    kindstringKind is the type of resource being referenced
    true
    namestringName is the name of resource being referenced
    true
    apiGroupstringAPIGroup 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.
    false

    Grafana.spec.persistentVolumeClaim.spec.resources

    ↩ Parent

    ResourceRequirements describes the compute resource requirements.

    NameTypeDescriptionRequired
    claims[]objectClaims 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.

    false
    limitsmap[string]int or stringLimits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
    false
    requestsmap[string]int or stringRequests 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/
    false

    Grafana.spec.persistentVolumeClaim.spec.resources.claims[index]

    ↩ Parent

    ResourceClaim references one entry in PodSpec.ResourceClaims.

    NameTypeDescriptionRequired
    namestringName 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.
    true
    requeststringRequest 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.
    false

    Grafana.spec.persistentVolumeClaim.spec.selector

    ↩ Parent

    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.

    NameTypeDescriptionRequired
    matchExpressions[]objectmatchExpressions is a list of label selector requirements. The requirements are ANDed.
    false
    matchLabelsmap[string]stringmatchLabels 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.
    false

    Grafana.spec.persistentVolumeClaim.spec.selector.matchExpressions[index]

    ↩ Parent

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    NameTypeDescriptionRequired
    keystringkey is the label key that the selector applies to.
    true
    operatorstringoperator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    true
    values[]stringvalues 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.
    false

    Grafana.spec.preferences

    ↩ Parent

    Preferences holds the Grafana Preferences settings

    NameTypeDescriptionRequired
    homeDashboardUidstring
    false

    Grafana.spec.route

    ↩ Parent

    Route sets how the ingress object should look like with your grafana instance, this only works in Openshift.

    NameTypeDescriptionRequired
    metadataobjectObjectMeta 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).
    false
    specobject
    false

    Grafana.spec.route.metadata

    ↩ Parent

    ObjectMeta contains only a subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.

    NameTypeDescriptionRequired
    annotationsmap[string]string
    false
    labelsmap[string]string
    false

    Grafana.spec.route.spec

    ↩ Parent

    NameTypeDescriptionRequired
    alternateBackends[]object
    false
    hoststring
    false
    pathstring
    false
    portobjectRoutePort defines a port mapping from a router to an endpoint in the service endpoints.
    false
    subdomainstring
    false
    tlsobjectTLSConfig defines config used to secure a route and provide termination

    Validations:
  • has(self.termination) && has(self.insecureEdgeTerminationPolicy) ? !((self.termination=='passthrough') && (self.insecureEdgeTerminationPolicy=='Allow')) : true: cannot have both spec.tls.termination: passthrough and spec.tls.insecureEdgeTerminationPolicy: Allow
  • false
    toobjectRouteTargetReference specifies the target that resolve into endpoints. Only the 'Service' kind is allowed. Use 'weight' field to emphasize one over others.
    false
    wildcardPolicystringWildcardPolicyType indicates the type of wildcard support needed by routes.
    false

    Grafana.spec.route.spec.alternateBackends[index]

    ↩ Parent

    RouteTargetReference specifies the target that resolve into endpoints. Only the ‘Service’ kind is allowed. Use ‘weight’ field to emphasize one over others.

    NameTypeDescriptionRequired
    kindenumThe kind of target that the route is referring to. Currently, only 'Service' is allowed

    Enum: Service,
    Default: Service
    true
    namestringname of the service/target that is being referred to. e.g. name of the service
    true
    weightintegerweight 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
    Default: 100
    Minimum: 0
    Maximum: 256
    false

    Grafana.spec.route.spec.port

    ↩ Parent

    RoutePort defines a port mapping from a router to an endpoint in the service endpoints.

    NameTypeDescriptionRequired
    targetPortint or stringThe 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
    true

    Grafana.spec.route.spec.tls

    ↩ Parent

    TLSConfig defines config used to secure a route and provide termination

    NameTypeDescriptionRequired
    terminationenumtermination 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

    true
    caCertificatestringcaCertificate provides the cert authority certificate contents
    false
    certificatestringcertificate provides certificate contents. This should be a single serving certificate, not a certificate chain. Do not include a CA certificate.
    false
    destinationCACertificatestringdestinationCACertificate 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.
    false
    externalCertificateobjectexternalCertificate 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.
    false
    insecureEdgeTerminationPolicyenuminsecureEdgeTerminationPolicy 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,

    false
    keystringkey provides key file contents
    false

    Grafana.spec.route.spec.tls.externalCertificate

    ↩ Parent

    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.

    NameTypeDescriptionRequired
    namestringname of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
    false

    Grafana.spec.route.spec.to

    ↩ Parent

    RouteTargetReference specifies the target that resolve into endpoints. Only the ‘Service’ kind is allowed. Use ‘weight’ field to emphasize one over others.

    NameTypeDescriptionRequired
    kindenumThe kind of target that the route is referring to. Currently, only 'Service' is allowed

    Enum: Service,
    Default: Service
    true
    namestringname of the service/target that is being referred to. e.g. name of the service
    true
    weightintegerweight 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
    Default: 100
    Minimum: 0
    Maximum: 256
    false

    Grafana.spec.service

    ↩ Parent

    Service sets how the service object should look like with your grafana instance, contains a number of defaults.

    NameTypeDescriptionRequired
    metadataobjectObjectMeta 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).
    false
    specobjectServiceSpec describes the attributes that a user creates on a service.
    false

    Grafana.spec.service.metadata

    ↩ Parent

    ObjectMeta contains only a subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.

    NameTypeDescriptionRequired
    annotationsmap[string]string
    false
    labelsmap[string]string
    false

    Grafana.spec.service.spec

    ↩ Parent

    ServiceSpec describes the attributes that a user creates on a service.

    NameTypeDescriptionRequired
    allocateLoadBalancerNodePortsbooleanallocateLoadBalancerNodePorts 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.
    false
    clusterIPstringclusterIP 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
    false
    clusterIPs[]stringClusterIPs 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

    false
    externalIPs[]stringexternalIPs 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.
    false
    externalNamestringexternalName 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”.
    false
    externalTrafficPolicystringexternalTrafficPolicy 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.
    false
    healthCheckNodePortintegerhealthCheckNodePort 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
    false
    internalTrafficPolicystringInternalTrafficPolicy 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).
    false
    ipFamilies[]stringIPFamilies 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.

    false
    ipFamilyPolicystringIPFamilyPolicy 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.
    false
    loadBalancerClassstringloadBalancerClass 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.
    false
    loadBalancerIPstringOnly 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.
    false
    loadBalancerSourceRanges[]stringIf 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/
    false
    ports[]objectThe list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
    false
    publishNotReadyAddressesbooleanpublishNotReadyAddresses 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.
    false
    selectormap[string]stringRoute 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/
    false
    sessionAffinitystringSupports “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
    false
    sessionAffinityConfigobjectsessionAffinityConfig contains the configurations of session affinity.
    false
    trafficDistributionstringTrafficDistribution 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.
    false
    typestringtype 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
    false

    Grafana.spec.service.spec.ports[index]

    ↩ Parent

    ServicePort contains information on service’s port.

    NameTypeDescriptionRequired
    portintegerThe port that will be exposed by this service.

    Format: int32
    true
    appProtocolstringThe 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:false
    namestringThe 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.
    false
    nodePortintegerThe 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
    false
    protocolstringThe IP protocol for this port. Supports “TCP”, “UDP”, and “SCTP”. Default is TCP.

    Default: TCP
    false
    targetPortint or stringNumber 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
    false

    Grafana.spec.service.spec.sessionAffinityConfig

    ↩ Parent

    sessionAffinityConfig contains the configurations of session affinity.

    NameTypeDescriptionRequired
    clientIPobjectclientIP contains the configurations of Client IP based session affinity.
    false

    Grafana.spec.service.spec.sessionAffinityConfig.clientIP

    ↩ Parent

    clientIP contains the configurations of Client IP based session affinity.

    NameTypeDescriptionRequired
    timeoutSecondsintegertimeoutSeconds 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
    false

    Grafana.spec.serviceAccount

    ↩ Parent

    ServiceAccount sets how the ServiceAccount object should look like with your grafana instance, contains a number of defaults.

    NameTypeDescriptionRequired
    automountServiceAccountTokenboolean
    false
    imagePullSecrets[]object
    false
    metadataobjectObjectMeta 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).
    false
    secrets[]object
    false

    Grafana.spec.serviceAccount.imagePullSecrets[index]

    ↩ Parent

    LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.

    NameTypeDescriptionRequired
    namestringName 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

    Default:
    false

    Grafana.spec.serviceAccount.metadata

    ↩ Parent

    ObjectMeta contains only a subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.

    NameTypeDescriptionRequired
    annotationsmap[string]string
    false
    labelsmap[string]string
    false

    Grafana.spec.serviceAccount.secrets[index]

    ↩ Parent

    ObjectReference contains enough information to let you inspect or modify the referred object.

    NameTypeDescriptionRequired
    apiVersionstringAPI version of the referent.
    false
    fieldPathstringIf 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.
    false
    kindstringKind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
    false
    namestringName of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
    false
    namespacestringNamespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
    false
    resourceVersionstringSpecific 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
    false
    uidstringUID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
    false

    Grafana.status

    ↩ Parent

    GrafanaStatus defines the observed state of Grafana

    NameTypeDescriptionRequired
    adminUrlstring
    false
    alertRuleGroups[]string
    false
    conditions[]object
    false
    contactPoints[]string
    false
    dashboards[]string
    false
    datasources[]string
    false
    folders[]string
    false
    lastMessagestring
    false
    libraryPanels[]string
    false
    muteTimings[]string
    false
    notificationTemplates[]string
    false
    serviceaccounts[]string
    false
    stagestring
    false
    stageStatusstring
    false
    versionstring
    false

    Grafana.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false

    GrafanaServiceAccount

    ↩ Parent

    GrafanaServiceAccount is the Schema for the grafanaserviceaccounts API

    NameTypeDescriptionRequired
    apiVersionstringgrafana.integreatly.org/v1beta1true
    kindstringGrafanaServiceAccounttrue
    metadataobjectRefer to the Kubernetes API documentation for the fields of the `metadata` field.true
    specobjectGrafanaServiceAccountSpec defines the desired state of a GrafanaServiceAccount.
    false
    statusobjectGrafanaServiceAccountStatus defines the observed state of a GrafanaServiceAccount
    false

    GrafanaServiceAccount.spec

    ↩ Parent

    GrafanaServiceAccountSpec defines the desired state of a GrafanaServiceAccount.

    NameTypeDescriptionRequired
    instanceNamestringName of the Grafana instance to create the service account for

    Validations:
  • self == oldSelf: spec.instanceName is immutable
  • true
    namestringName of the service account in Grafana

    Validations:
  • self == oldSelf: spec.name is immutable
  • true
    roleenumRole of the service account (Viewer, Editor, Admin)

    Enum: Viewer, Editor, Admin
    true
    isDisabledbooleanWhether the service account is disabled

    Default: false
    false
    resyncPeriodstringHow often the resource is synced, defaults to 10m0s if not set

    Validations:
  • duration(self) > duration('0s'): spec.resyncPeriod must be greater than 0
  • false
    suspendbooleanSuspend pauses reconciliation of the service account

    Default: false
    false
    tokens[]objectTokens to create for the service account
    false

    GrafanaServiceAccount.spec.tokens[index]

    ↩ Parent

    GrafanaServiceAccountTokenSpec defines a token for a service account

    NameTypeDescriptionRequired
    namestringName of the token
    true
    expiresstringExpiration date of the token. If not set, the token never expires

    Format: date-time
    false
    secretNamestringName of the secret to store the token. If not set, a name will be generated
    false

    GrafanaServiceAccount.status

    ↩ Parent

    GrafanaServiceAccountStatus defines the observed state of a GrafanaServiceAccount

    NameTypeDescriptionRequired
    accountobjectInfo contains the Grafana service account information
    false
    conditions[]objectResults when synchonizing resource with Grafana instances
    false
    lastResyncstringLast time the resource was synchronized with Grafana instances

    Format: date-time
    false

    GrafanaServiceAccount.status.account

    ↩ Parent

    Info contains the Grafana service account information

    NameTypeDescriptionRequired
    idintegerID of the service account in Grafana

    Format: int64
    true
    isDisabledbooleanIsDisabled indicates if the service account is disabled
    true
    loginstring
    true
    namestring
    true
    rolestringRole is the Grafana role for the service account (Viewer, Editor, Admin)
    true
    tokens[]objectInformation about tokens
    false

    GrafanaServiceAccount.status.account.tokens[index]

    ↩ Parent

    GrafanaServiceAccountTokenStatus describes a token created in Grafana.

    NameTypeDescriptionRequired
    idintegerID of the token in Grafana

    Format: int64
    true
    namestring
    true
    expiresstringExpiration 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
    false
    secretobjectName of the secret containing the token
    false

    GrafanaServiceAccount.status.account.tokens[index].secret

    ↩ Parent

    Name of the secret containing the token

    NameTypeDescriptionRequired
    namestring
    false
    namespacestring
    false

    GrafanaServiceAccount.status.conditions[index]

    ↩ Parent

    Condition contains details for one aspect of the current state of this API Resource.

    NameTypeDescriptionRequired
    lastTransitionTimestringlastTransitionTime 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
    true
    messagestringmessage is a human readable message indicating details about the transition. This may be an empty string.
    true
    reasonstringreason 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.
    true
    statusenumstatus of the condition, one of True, False, Unknown.

    Enum: True, False, Unknown
    true
    typestringtype of condition in CamelCase or in foo.example.com/CamelCase.
    true
    observedGenerationintegerobservedGeneration 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
    false