Class ThanosRulerSpec

    • Method Detail

      • getAdditionalArgs

        public List<Argument> getAdditionalArgs()
        additionalArgs defines how to add additional arguments for the ThanosRuler container. It is intended for e.g. activating hidden flags which are not supported by the dedicated configuration options yet. The arguments are passed as-is to the ThanosRuler container which may cause issues if they are invalid or not supported by the given ThanosRuler version. In case of an argument conflict (e.g. an argument which is already set by the operator itself) or when providing an invalid argument the reconciliation will fail and an error will be logged.
      • setAdditionalArgs

        public void setAdditionalArgs​(List<Argument> additionalArgs)
        additionalArgs defines how to add additional arguments for the ThanosRuler container. It is intended for e.g. activating hidden flags which are not supported by the dedicated configuration options yet. The arguments are passed as-is to the ThanosRuler container which may cause issues if they are invalid or not supported by the given ThanosRuler version. In case of an argument conflict (e.g. an argument which is already set by the operator itself) or when providing an invalid argument the reconciliation will fail and an error will be logged.
      • getAffinity

        public Affinity getAffinity()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setAffinity

        public void setAffinity​(Affinity affinity)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getAlertDropLabels

        public List<String> getAlertDropLabels()
        alertDropLabels defines the label names which should be dropped in Thanos Ruler alerts.


        The replica label `thanos_ruler_replica` will always be dropped from the alerts.

      • setAlertDropLabels

        public void setAlertDropLabels​(List<String> alertDropLabels)
        alertDropLabels defines the label names which should be dropped in Thanos Ruler alerts.


        The replica label `thanos_ruler_replica` will always be dropped from the alerts.

      • getAlertQueryUrl

        public String getAlertQueryUrl()
        alertQueryUrl defines how Thanos Ruler will set in the 'Source' field of all alerts. Maps to the '--alert.query-url' CLI arg.
      • setAlertQueryUrl

        public void setAlertQueryUrl​(String alertQueryUrl)
        alertQueryUrl defines how Thanos Ruler will set in the 'Source' field of all alerts. Maps to the '--alert.query-url' CLI arg.
      • getAlertRelabelConfigFile

        public String getAlertRelabelConfigFile()
        alertRelabelConfigFile defines the path to the alert relabeling configuration file.


        Alert relabel configuration must have the form as specified in the official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs


        The operator performs no validation of the configuration file.


        This field takes precedence over `alertRelabelConfig`.

      • setAlertRelabelConfigFile

        public void setAlertRelabelConfigFile​(String alertRelabelConfigFile)
        alertRelabelConfigFile defines the path to the alert relabeling configuration file.


        Alert relabel configuration must have the form as specified in the official Prometheus documentation: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs


        The operator performs no validation of the configuration file.


        This field takes precedence over `alertRelabelConfig`.

      • getAlertRelabelConfigs

        public SecretKeySelector getAlertRelabelConfigs()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setAlertRelabelConfigs

        public void setAlertRelabelConfigs​(SecretKeySelector alertRelabelConfigs)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getAlertmanagersConfig

        public SecretKeySelector getAlertmanagersConfig()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setAlertmanagersConfig

        public void setAlertmanagersConfig​(SecretKeySelector alertmanagersConfig)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getAlertmanagersUrl

        public List<String> getAlertmanagersUrl()
        alertmanagersUrl defines the list of Alertmanager endpoints to send alerts to.


        For Thanos >= v0.10.0, it is recommended to use `alertmanagersConfig` instead.


        `alertmanagersConfig` takes precedence over this field.

      • setAlertmanagersUrl

        public void setAlertmanagersUrl​(List<String> alertmanagersUrl)
        alertmanagersUrl defines the list of Alertmanager endpoints to send alerts to.


        For Thanos >= v0.10.0, it is recommended to use `alertmanagersConfig` instead.


        `alertmanagersConfig` takes precedence over this field.

      • getContainers

        public List<Container> getContainers()
        containers allows injecting additional containers or modifying operator generated containers. This can be used to allow adding an authentication proxy to the Pods or to change the behavior of an operator generated container. Containers described here modify an operator generated container if they share the same name and modifications are done via a strategic merge patch.


        The names of containers managed by the operator are: * `thanos-ruler` * `config-reloader`


        Overriding containers which are managed by the operator require careful testing, especially when upgrading to a new version of the operator.

      • setContainers

        public void setContainers​(List<Container> containers)
        containers allows injecting additional containers or modifying operator generated containers. This can be used to allow adding an authentication proxy to the Pods or to change the behavior of an operator generated container. Containers described here modify an operator generated container if they share the same name and modifications are done via a strategic merge patch.


        The names of containers managed by the operator are: * `thanos-ruler` * `config-reloader`


        Overriding containers which are managed by the operator require careful testing, especially when upgrading to a new version of the operator.

      • getDnsConfig

        public PodDNSConfig getDnsConfig()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setDnsConfig

        public void setDnsConfig​(PodDNSConfig dnsConfig)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getDnsPolicy

        public String getDnsPolicy()
        dnsPolicy defines the DNS policy for the pods.
      • setDnsPolicy

        public void setDnsPolicy​(String dnsPolicy)
        dnsPolicy defines the DNS policy for the pods.
      • getEnableFeatures

        public List<String> getEnableFeatures()
        enableFeatures defines how to setup Thanos Ruler feature flags. By default, no features are enabled.


        Enabling features which are disabled by default is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.


        For more information see https://thanos.io/tip/components/rule.md/


        It requires Thanos >= 0.39.0.

      • setEnableFeatures

        public void setEnableFeatures​(List<String> enableFeatures)
        enableFeatures defines how to setup Thanos Ruler feature flags. By default, no features are enabled.


        Enabling features which are disabled by default is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice.


        For more information see https://thanos.io/tip/components/rule.md/


        It requires Thanos >= 0.39.0.

      • getEnableServiceLinks

        public Boolean getEnableServiceLinks()
        enableServiceLinks defines whether information about services should be injected into pod's environment variables
      • setEnableServiceLinks

        public void setEnableServiceLinks​(Boolean enableServiceLinks)
        enableServiceLinks defines whether information about services should be injected into pod's environment variables
      • getEnforcedNamespaceLabel

        public String getEnforcedNamespaceLabel()
        enforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created. The label value will always be the namespace of the object that is being created.
      • setEnforcedNamespaceLabel

        public void setEnforcedNamespaceLabel​(String enforcedNamespaceLabel)
        enforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created. The label value will always be the namespace of the object that is being created.
      • getEvaluationInterval

        public String getEvaluationInterval()
        evaluationInterval defines the interval between consecutive evaluations.
      • setEvaluationInterval

        public void setEvaluationInterval​(String evaluationInterval)
        evaluationInterval defines the interval between consecutive evaluations.
      • getExcludedFromEnforcement

        public List<ObjectReference> getExcludedFromEnforcement()
        excludedFromEnforcement defines the list of references to PrometheusRule objects to be excluded from enforcing a namespace label of origin. Applies only if enforcedNamespaceLabel set to true.
      • setExcludedFromEnforcement

        public void setExcludedFromEnforcement​(List<ObjectReference> excludedFromEnforcement)
        excludedFromEnforcement defines the list of references to PrometheusRule objects to be excluded from enforcing a namespace label of origin. Applies only if enforcedNamespaceLabel set to true.
      • getExternalPrefix

        public String getExternalPrefix()
        externalPrefix defines the Thanos Ruler instances will be available under. This is necessary to generate correct URLs. This is necessary if Thanos Ruler is not served from root of a DNS name.
      • setExternalPrefix

        public void setExternalPrefix​(String externalPrefix)
        externalPrefix defines the Thanos Ruler instances will be available under. This is necessary to generate correct URLs. This is necessary if Thanos Ruler is not served from root of a DNS name.
      • getGrpcServerTlsConfig

        public GRPCServerTLSConfig getGrpcServerTlsConfig()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setGrpcServerTlsConfig

        public void setGrpcServerTlsConfig​(GRPCServerTLSConfig grpcServerTlsConfig)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getHostAliases

        public List<HostAlias> getHostAliases()
        hostAliases defines pods' hostAliases configuration
      • setHostAliases

        public void setHostAliases​(List<HostAlias> hostAliases)
        hostAliases defines pods' hostAliases configuration
      • getHostUsers

        public Boolean getHostUsers()
        hostUsers supports the user space in Kubernetes.


        More info: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/


        The feature requires at least Kubernetes 1.28 with the `UserNamespacesSupport` feature gate enabled. Starting Kubernetes 1.33, the feature is enabled by default.

      • setHostUsers

        public void setHostUsers​(Boolean hostUsers)
        hostUsers supports the user space in Kubernetes.


        More info: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/


        The feature requires at least Kubernetes 1.28 with the `UserNamespacesSupport` feature gate enabled. Starting Kubernetes 1.33, the feature is enabled by default.

      • getImage

        public String getImage()
        image defines Thanos container image URL.
      • setImage

        public void setImage​(String image)
        image defines Thanos container image URL.
      • getImagePullPolicy

        public String getImagePullPolicy()
        imagePullPolicy defines for the 'thanos', 'init-config-reloader' and 'config-reloader' containers. See https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.


        Possible enum values:

        - `"Always"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.

        - `"IfNotPresent"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.

        - `"Never"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present

      • setImagePullPolicy

        public void setImagePullPolicy​(String imagePullPolicy)
        imagePullPolicy defines for the 'thanos', 'init-config-reloader' and 'config-reloader' containers. See https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy for more details.


        Possible enum values:

        - `"Always"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.

        - `"IfNotPresent"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.

        - `"Never"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present

      • getImagePullSecrets

        public List<LocalObjectReference> getImagePullSecrets()
        imagePullSecrets defines an optional list of references to secrets in the same namespace to use for pulling thanos images from registries see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod
      • setImagePullSecrets

        public void setImagePullSecrets​(List<LocalObjectReference> imagePullSecrets)
        imagePullSecrets defines an optional list of references to secrets in the same namespace to use for pulling thanos images from registries see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod
      • getInitContainers

        public List<Container> getInitContainers()
        initContainers allows injecting initContainers to the Pod definition. Those can be used to e.g. fetch secrets for injection into the configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
      • setInitContainers

        public void setInitContainers​(List<Container> initContainers)
        initContainers allows injecting initContainers to the Pod definition. Those can be used to e.g. fetch secrets for injection into the configuration from external sources. Any errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
      • getLabels

        public Map<String,​String> getLabels()
        labels defines the external label pairs of the ThanosRuler resource.


        A default replica label `thanos_ruler_replica` will be always added as a label with the value of the pod's name.

      • setLabels

        public void setLabels​(Map<String,​String> labels)
        labels defines the external label pairs of the ThanosRuler resource.


        A default replica label `thanos_ruler_replica` will be always added as a label with the value of the pod's name.

      • getListenLocal

        public Boolean getListenLocal()
        listenLocal defines the Thanos ruler listen on loopback, so that it does not bind against the Pod IP.
      • setListenLocal

        public void setListenLocal​(Boolean listenLocal)
        listenLocal defines the Thanos ruler listen on loopback, so that it does not bind against the Pod IP.
      • getLogFormat

        public String getLogFormat()
        logFormat for ThanosRuler to be configured with.
      • setLogFormat

        public void setLogFormat​(String logFormat)
        logFormat for ThanosRuler to be configured with.
      • getLogLevel

        public String getLogLevel()
        logLevel for ThanosRuler to be configured with.
      • setLogLevel

        public void setLogLevel​(String logLevel)
        logLevel for ThanosRuler to be configured with.
      • getMinReadySeconds

        public Integer getMinReadySeconds()
        minReadySeconds defines the minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available.


        If unset, pods will be considered available as soon as they are ready.

      • setMinReadySeconds

        public void setMinReadySeconds​(Integer minReadySeconds)
        minReadySeconds defines the minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available.


        If unset, pods will be considered available as soon as they are ready.

      • getNodeSelector

        public Map<String,​String> getNodeSelector()
        nodeSelector defines which Nodes the Pods are scheduled on.
      • setNodeSelector

        public void setNodeSelector​(Map<String,​String> nodeSelector)
        nodeSelector defines which Nodes the Pods are scheduled on.
      • getObjectStorageConfig

        public SecretKeySelector getObjectStorageConfig()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setObjectStorageConfig

        public void setObjectStorageConfig​(SecretKeySelector objectStorageConfig)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getObjectStorageConfigFile

        public String getObjectStorageConfigFile()
        objectStorageConfigFile defines the path of the object storage configuration file.


        The configuration format is defined at https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage


        The operator performs no validation of the configuration file.


        This field takes precedence over `objectStorageConfig`.

      • setObjectStorageConfigFile

        public void setObjectStorageConfigFile​(String objectStorageConfigFile)
        objectStorageConfigFile defines the path of the object storage configuration file.


        The configuration format is defined at https://thanos.io/tip/thanos/storage.md/#configuring-access-to-object-storage


        The operator performs no validation of the configuration file.


        This field takes precedence over `objectStorageConfig`.

      • getPaused

        public Boolean getPaused()
        paused defines when a ThanosRuler deployment is paused, no actions except for deletion will be performed on the underlying objects.
      • setPaused

        public void setPaused​(Boolean paused)
        paused defines when a ThanosRuler deployment is paused, no actions except for deletion will be performed on the underlying objects.
      • getPodManagementPolicy

        public String getPodManagementPolicy()
        podManagementPolicy defines the policy for creating/deleting pods when scaling up and down.


        Unlike the default StatefulSet behavior, the default policy is `Parallel` to avoid manual intervention in case a pod gets stuck during a rollout.


        Note that updating this value implies the recreation of the StatefulSet which incurs a service outage.

      • setPodManagementPolicy

        public void setPodManagementPolicy​(String podManagementPolicy)
        podManagementPolicy defines the policy for creating/deleting pods when scaling up and down.


        Unlike the default StatefulSet behavior, the default policy is `Parallel` to avoid manual intervention in case a pod gets stuck during a rollout.


        Note that updating this value implies the recreation of the StatefulSet which incurs a service outage.

      • getPodMetadata

        public EmbeddedObjectMetadata getPodMetadata()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setPodMetadata

        public void setPodMetadata​(EmbeddedObjectMetadata podMetadata)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getPortName

        public String getPortName()
        portName defines the port name used for the pods and governing service. Defaults to `web`.
      • setPortName

        public void setPortName​(String portName)
        portName defines the port name used for the pods and governing service. Defaults to `web`.
      • getPriorityClassName

        public String getPriorityClassName()
        priorityClassName defines the priority class assigned to the Pods
      • setPriorityClassName

        public void setPriorityClassName​(String priorityClassName)
        priorityClassName defines the priority class assigned to the Pods
      • getPrometheusRulesExcludedFromEnforce

        public List<PrometheusRuleExcludeConfig> getPrometheusRulesExcludedFromEnforce()
        prometheusRulesExcludedFromEnforce defines a list of Prometheus rules to be excluded from enforcing of adding namespace labels. Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair Deprecated: use excludedFromEnforcement instead.
      • setPrometheusRulesExcludedFromEnforce

        public void setPrometheusRulesExcludedFromEnforce​(List<PrometheusRuleExcludeConfig> prometheusRulesExcludedFromEnforce)
        prometheusRulesExcludedFromEnforce defines a list of Prometheus rules to be excluded from enforcing of adding namespace labels. Works only if enforcedNamespaceLabel set to true. Make sure both ruleNamespace and ruleName are set for each pair Deprecated: use excludedFromEnforcement instead.
      • getQueryConfig

        public SecretKeySelector getQueryConfig()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setQueryConfig

        public void setQueryConfig​(SecretKeySelector queryConfig)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getQueryEndpoints

        public List<String> getQueryEndpoints()
        queryEndpoints defines the list of Thanos Query endpoints from which to query metrics.


        For Thanos >= v0.11.0, it is recommended to use `queryConfig` instead.


        `queryConfig` takes precedence over this field.

      • setQueryEndpoints

        public void setQueryEndpoints​(List<String> queryEndpoints)
        queryEndpoints defines the list of Thanos Query endpoints from which to query metrics.


        For Thanos >= v0.11.0, it is recommended to use `queryConfig` instead.


        `queryConfig` takes precedence over this field.

      • getRemoteWrite

        public List<RemoteWriteSpec> getRemoteWrite()
        remoteWrite defines the list of remote write configurations.


        When the list isn't empty, the ruler is configured with stateless mode.


        It requires Thanos >= 0.24.0.

      • setRemoteWrite

        public void setRemoteWrite​(List<RemoteWriteSpec> remoteWrite)
        remoteWrite defines the list of remote write configurations.


        When the list isn't empty, the ruler is configured with stateless mode.


        It requires Thanos >= 0.24.0.

      • getReplicas

        public Integer getReplicas()
        replicas defines the number of thanos ruler instances to deploy.
      • setReplicas

        public void setReplicas​(Integer replicas)
        replicas defines the number of thanos ruler instances to deploy.
      • getResendDelay

        public String getResendDelay()
        resendDelay defines the minimum amount of time to wait before resending an alert to Alertmanager.
      • setResendDelay

        public void setResendDelay​(String resendDelay)
        resendDelay defines the minimum amount of time to wait before resending an alert to Alertmanager.
      • getResources

        public ResourceRequirements getResources()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setResources

        public void setResources​(ResourceRequirements resources)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getRetention

        public String getRetention()
        retention defines the time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression `[0-9]+(ms|s|m|h|d|w|y)` (milliseconds seconds minutes hours days weeks years).


        The field has no effect when remote-write is configured since the Ruler operates in stateless mode.

      • setRetention

        public void setRetention​(String retention)
        retention defines the time duration ThanosRuler shall retain data for. Default is '24h', and must match the regular expression `[0-9]+(ms|s|m|h|d|w|y)` (milliseconds seconds minutes hours days weeks years).


        The field has no effect when remote-write is configured since the Ruler operates in stateless mode.

      • getRoutePrefix

        public String getRoutePrefix()
        routePrefix defines the route prefix ThanosRuler registers HTTP handlers for. This allows thanos UI to be served on a sub-path.
      • setRoutePrefix

        public void setRoutePrefix​(String routePrefix)
        routePrefix defines the route prefix ThanosRuler registers HTTP handlers for. This allows thanos UI to be served on a sub-path.
      • getRuleConcurrentEval

        public Integer getRuleConcurrentEval()
        ruleConcurrentEval defines how many rules can be evaluated concurrently. It requires Thanos >= v0.37.0.
      • setRuleConcurrentEval

        public void setRuleConcurrentEval​(Integer ruleConcurrentEval)
        ruleConcurrentEval defines how many rules can be evaluated concurrently. It requires Thanos >= v0.37.0.
      • getRuleGracePeriod

        public String getRuleGracePeriod()
        ruleGracePeriod defines the minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than grace period. It requires Thanos >= v0.30.0.
      • setRuleGracePeriod

        public void setRuleGracePeriod​(String ruleGracePeriod)
        ruleGracePeriod defines the minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than grace period. It requires Thanos >= v0.30.0.
      • getRuleNamespaceSelector

        public LabelSelector getRuleNamespaceSelector()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setRuleNamespaceSelector

        public void setRuleNamespaceSelector​(LabelSelector ruleNamespaceSelector)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getRuleOutageTolerance

        public String getRuleOutageTolerance()
        ruleOutageTolerance defines the max time to tolerate prometheus outage for restoring "for" state of alert. It requires Thanos >= v0.30.0.
      • setRuleOutageTolerance

        public void setRuleOutageTolerance​(String ruleOutageTolerance)
        ruleOutageTolerance defines the max time to tolerate prometheus outage for restoring "for" state of alert. It requires Thanos >= v0.30.0.
      • getRuleQueryOffset

        public String getRuleQueryOffset()
        ruleQueryOffset defines the default rule group's query offset duration to use. It requires Thanos >= v0.38.0.
      • setRuleQueryOffset

        public void setRuleQueryOffset​(String ruleQueryOffset)
        ruleQueryOffset defines the default rule group's query offset duration to use. It requires Thanos >= v0.38.0.
      • getRuleSelector

        public LabelSelector getRuleSelector()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setRuleSelector

        public void setRuleSelector​(LabelSelector ruleSelector)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getSchedulerName

        public String getSchedulerName()
        schedulerName defines the scheduler to use for Pod scheduling. If not specified, the default scheduler is used.
      • setSchedulerName

        public void setSchedulerName​(String schedulerName)
        schedulerName defines the scheduler to use for Pod scheduling. If not specified, the default scheduler is used.
      • getSecurityContext

        public PodSecurityContext getSecurityContext()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setSecurityContext

        public void setSecurityContext​(PodSecurityContext securityContext)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getServiceAccountName

        public String getServiceAccountName()
        serviceAccountName defines the name of the ServiceAccount to use to run the Thanos Ruler Pods.
      • setServiceAccountName

        public void setServiceAccountName​(String serviceAccountName)
        serviceAccountName defines the name of the ServiceAccount to use to run the Thanos Ruler Pods.
      • getServiceName

        public String getServiceName()
        serviceName defines the name of the service name used by the underlying StatefulSet(s) as the governing service. If defined, the Service must be created before the ThanosRuler resource in the same namespace and it must define a selector that matches the pod labels. If empty, the operator will create and manage a headless service named `thanos-ruler-operated` for ThanosRuler resources. When deploying multiple ThanosRuler resources in the same namespace, it is recommended to specify a different value for each. See https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id for more details.
      • setServiceName

        public void setServiceName​(String serviceName)
        serviceName defines the name of the service name used by the underlying StatefulSet(s) as the governing service. If defined, the Service must be created before the ThanosRuler resource in the same namespace and it must define a selector that matches the pod labels. If empty, the operator will create and manage a headless service named `thanos-ruler-operated` for ThanosRuler resources. When deploying multiple ThanosRuler resources in the same namespace, it is recommended to specify a different value for each. See https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id for more details.
      • getStorage

        public StorageSpec getStorage()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setStorage

        public void setStorage​(StorageSpec storage)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getTerminationGracePeriodSeconds

        public Long getTerminationGracePeriodSeconds()
        terminationGracePeriodSeconds defines the optional duration in seconds the pod needs to terminate gracefully. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down) which may lead to data corruption.


        Defaults to 120 seconds.

      • setTerminationGracePeriodSeconds

        public void setTerminationGracePeriodSeconds​(Long terminationGracePeriodSeconds)
        terminationGracePeriodSeconds defines the optional duration in seconds the pod needs to terminate gracefully. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down) which may lead to data corruption.


        Defaults to 120 seconds.

      • getTolerations

        public List<Toleration> getTolerations()
        tolerations defines when specified, the pod's tolerations.
      • setTolerations

        public void setTolerations​(List<Toleration> tolerations)
        tolerations defines when specified, the pod's tolerations.
      • getTopologySpreadConstraints

        public List<TopologySpreadConstraint> getTopologySpreadConstraints()
        topologySpreadConstraints defines the pod's topology spread constraints.
      • setTopologySpreadConstraints

        public void setTopologySpreadConstraints​(List<TopologySpreadConstraint> topologySpreadConstraints)
        topologySpreadConstraints defines the pod's topology spread constraints.
      • getTracingConfig

        public SecretKeySelector getTracingConfig()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setTracingConfig

        public void setTracingConfig​(SecretKeySelector tracingConfig)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getTracingConfigFile

        public String getTracingConfigFile()
        tracingConfigFile defines the path of the tracing configuration file.


        The configuration format is defined at https://thanos.io/tip/thanos/tracing.md/#configuration


        This is an *experimental feature*, it may change in any upcoming release in a breaking way.


        The operator performs no validation of the configuration file.


        This field takes precedence over `tracingConfig`.

      • setTracingConfigFile

        public void setTracingConfigFile​(String tracingConfigFile)
        tracingConfigFile defines the path of the tracing configuration file.


        The configuration format is defined at https://thanos.io/tip/thanos/tracing.md/#configuration


        This is an *experimental feature*, it may change in any upcoming release in a breaking way.


        The operator performs no validation of the configuration file.


        This field takes precedence over `tracingConfig`.

      • getUpdateStrategy

        public StatefulSetUpdateStrategy getUpdateStrategy()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setUpdateStrategy

        public void setUpdateStrategy​(StatefulSetUpdateStrategy updateStrategy)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getVersion

        public String getVersion()
        version of Thanos to be deployed.
      • setVersion

        public void setVersion​(String version)
        version of Thanos to be deployed.
      • getVolumeMounts

        public List<VolumeMount> getVolumeMounts()
        volumeMounts defines how the configuration of additional VolumeMounts on the output StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the ruler container, that are generated as a result of StorageSpec objects.
      • setVolumeMounts

        public void setVolumeMounts​(List<VolumeMount> volumeMounts)
        volumeMounts defines how the configuration of additional VolumeMounts on the output StatefulSet definition. VolumeMounts specified will be appended to other VolumeMounts in the ruler container, that are generated as a result of StorageSpec objects.
      • getVolumes

        public List<Volume> getVolumes()
        volumes defines how configuration of additional volumes on the output StatefulSet definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.
      • setVolumes

        public void setVolumes​(List<Volume> volumes)
        volumes defines how configuration of additional volumes on the output StatefulSet definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.
      • getWeb

        public ThanosRulerWebSpec getWeb()
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • setWeb

        public void setWeb​(ThanosRulerWebSpec web)
        ThanosRulerSpec is a specification of the desired behavior of the ThanosRuler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
      • getAdditionalProperties

        public Map<String,​Object> getAdditionalProperties()
      • setAdditionalProperty

        public void setAdditionalProperty​(String name,
                                          Object value)
      • setAdditionalProperties

        public void setAdditionalProperties​(Map<String,​Object> additionalProperties)