Documentation
¶
Index ¶
- Constants
- Variables
- func BuildArgs(args []monitoringv1.Argument, additionalArgs []monitoringv1.Argument) ([]string, error)
- func BuildImagePath(specImage, baseImage, version, tag, sha string) (string, error)
- func CreateConfigReloader(name string, options ...ReloaderOption) v1.Container
- func CurlProber(u string) string
- func FindStatusCondition(conditions []monitoringv1.Condition, conditionType monitoringv1.ConditionType) *monitoringv1.Condition
- func GunzipConfig(b []byte) (string, error)
- func GzipConfig(w io.Writer, conf []byte) error
- func ListMatchingNamespaces(selector labels.Selector, nsInf cache.SharedIndexInformer) ([]string, error)
- func MakeHostAliases(input []monitoringv1.HostAlias) []v1.HostAlias
- func MakeVolumeClaimTemplate(e monitoringv1.EmbeddedPersistentVolumeClaim) *v1.PersistentVolumeClaim
- func SanitizeSTS(sts *appsv1.StatefulSet)
- func StatusPoller(ctx context.Context, sr StatusReconciler)
- func StringPtrValOrDefault(val *string, defaultVal string) string
- func StringValOrDefault(val, defaultVal string) string
- func TestSidecarsResources(t *testing.T, ...)
- func UpdateConditions(conditions []monitoringv1.Condition, newConditions ...monitoringv1.Condition) []monitoringv1.Condition
- func ValidateDurationField(durationField string) error
- func ValidateRule(promRuleSpec monitoringv1.PrometheusRuleSpec) []error
- func ValidateSizeField(sizeField string) error
- func WaitForNamedCacheSync(ctx context.Context, controllerName string, logger log.Logger, ...) bool
- func WgetProber(u string) string
- type Accessor
- type Config
- type ConfigReloader
- type ContainerConfig
- type GoverningObject
- type HandlerEvent
- type Map
- type Metrics
- func (m *Metrics) Collect(ch chan<- prometheus.Metric)
- func (m *Metrics) Describe(ch chan<- *prometheus.Desc)
- func (m *Metrics) MustRegister(metrics ...prometheus.Collector)
- func (m *Metrics) NewInstrumentedListerWatcher(lw cache.ListerWatcher) cache.ListerWatcher
- func (m *Metrics) Ready() prometheus.Gauge
- func (m *Metrics) SetRejectedResources(objKey, resource string, v int)
- func (m *Metrics) SetSelectedResources(objKey, resource string, v int)
- func (m *Metrics) StsDeleteCreateCounter() prometheus.Counter
- func (m *Metrics) TriggerByCounter(triggeredBy string, action HandlerEvent) prometheus.Counter
- type Namespaces
- type Pod
- type PrometheusRuleSelector
- type Quantity
- type ReconcilerMetrics
- type ReconciliationStatus
- type ReconciliationTracker
- func (rt *ReconciliationTracker) Collect(ch chan<- prometheus.Metric)
- func (rt *ReconciliationTracker) Describe(ch chan<- *prometheus.Desc)
- func (rt *ReconciliationTracker) ForgetObject(k string)
- func (rt *ReconciliationTracker) GetCondition(k string, gen int64) monitoringv1.Condition
- func (rt *ReconciliationTracker) SetStatus(k string, err error)
- type ReloaderOption
- func ConfigEnvsubstFile(configEnvsubstFile string) ReloaderOption
- func ConfigFile(configFile string) ReloaderOption
- func ImagePullPolicy(imagePullPolicy v1.PullPolicy) ReloaderOption
- func ListenLocal(listenLocal bool) ReloaderOption
- func LocalHost(localHost string) ReloaderOption
- func LogFormat(logFormat string) ReloaderOption
- func LogLevel(logLevel string) ReloaderOption
- func ReloaderConfig(rc ContainerConfig) ReloaderOption
- func ReloaderRunOnce() ReloaderOption
- func ReloaderURL(reloadURL url.URL) ReloaderOption
- func Shard(shard int32) ReloaderOption
- func VolumeMounts(mounts []v1.VolumeMount) ReloaderOption
- func WatchedDirectories(watchedDirectories []string) ReloaderOption
- type ResourceReconciler
- func (rr *ResourceReconciler) DeletionInProgress(o metav1.Object) bool
- func (rr *ResourceReconciler) EnqueueForReconciliation(obj metav1.Object)
- func (rr *ResourceReconciler) EnqueueForStatus(obj metav1.Object)
- func (rr *ResourceReconciler) OnAdd(obj interface{}, _ bool)
- func (rr *ResourceReconciler) OnDelete(obj interface{})
- func (rr *ResourceReconciler) OnUpdate(old, cur interface{})
- func (rr *ResourceReconciler) Run(ctx context.Context)
- func (rr *ResourceReconciler) Stop()
- type RuleConfigurationFormat
- type ShardedSecret
- type StatefulSetReporter
- type StatusReconciler
- type Syncer
Constants ¶
const ( // ShardEnvVar is the name of the environment variable injected into the // config-reloader container that contains the shard number. ShardEnvVar = "SHARD" // PodNameEnvVar is the name of the environment variable injected in the // config-reloader container that contains the pod name. PodNameEnvVar = "POD_NAME" )
const ( // DefaultAlertmanagerVersion is a default image tag for the prometheus alertmanager DefaultAlertmanagerVersion = "v0.26.0" // DefaultAlertmanagerBaseImage is a base container registry address for the prometheus alertmanager DefaultAlertmanagerBaseImage = "quay.io/prometheus/alertmanager" // DefaultAlertmanagerImage is a default image pulling address for the prometheus alertmanager DefaultAlertmanagerImage = DefaultAlertmanagerBaseImage + ":" + DefaultAlertmanagerVersion // DefaultThanosVersion is a default image tag for the Thanos long-term prometheus storage collector DefaultThanosVersion = "v0.32.2" // DefaultThanosBaseImage is a base container registry address for the Thanos long-term prometheus // storage collector DefaultThanosBaseImage = "quay.io/thanos/thanos" // DefaultThanosImage is a default image pulling address for the Thanos long-term prometheus storage collector DefaultThanosImage = DefaultThanosBaseImage + ":" + DefaultThanosVersion )
const ( AddEvent = HandlerEvent("add") DeleteEvent = HandlerEvent("delete") UpdateEvent = HandlerEvent("update") )
const MaxSecretDataSizeBytes = v1.MaxSecretSize - 50_000
MaxSecretDataSizeBytes is the maximum data size that a single secret shard may use. This is lower than v1.MaxSecretSize in order to reserve space for metadata and the rest of the secret k8s object.
Variables ¶
var ( // DefaultPrometheusVersion is a default image tag for the prometheus DefaultPrometheusVersion = PrometheusCompatibilityMatrix[len(PrometheusCompatibilityMatrix)-1] // DefaultPrometheusBaseImage is a base container registry address for the prometheus DefaultPrometheusBaseImage = "quay.io/prometheus/prometheus" // DefaultPrometheusImage is a default image pulling address for the prometheus DefaultPrometheusImage = DefaultPrometheusBaseImage + ":" + DefaultPrometheusVersion // DefaultPrometheusConfigReloaderImage is an image that will be used as a sidecar to provide dynamic prometheus // configuration reloading DefaultPrometheusConfigReloaderImage = "quay.io/rhobs/obo-prometheus-config-reloader:v" + version.Version // PrometheusCompatibilityMatrix is a list of supported prometheus versions. // prometheus-operator end-to-end tests verify that the operator can deploy from LTS n-1 to the latest stable. // This list should be updated every time a new LTS is released. PrometheusCompatibilityMatrix = []string{ "v2.37.0", "v2.37.1", "v2.37.2", "v2.37.3", "v2.37.4", "v2.37.5", "v2.37.6", "v2.37.7", "v2.37.8", "v2.38.0", "v2.39.0", "v2.39.1", "v2.39.2", "v2.40.0", "v2.40.1", "v2.40.2", "v2.40.3", "v2.40.4", "v2.40.5", "v2.40.6", "v2.40.7", "v2.41.0", "v2.42.0", "v2.43.0", "v2.43.1", "v2.44.0", "v2.45.0", "v2.46.0", "v2.47.0", } )
var ( DefaultReloaderTestConfig = &Config{ ReloaderConfig: ContainerConfig{ CPURequests: Quantity{q: resource.MustParse("100m")}, CPULimits: Quantity{q: resource.MustParse("100m")}, MemoryRequests: Quantity{q: resource.MustParse("50Mi")}, MemoryLimits: Quantity{q: resource.MustParse("50Mi")}, Image: "quay.io/rhobs/obo-prometheus-config-reloader:latest", }, } )
Functions ¶
func BuildArgs ¶
func BuildArgs(args []monitoringv1.Argument, additionalArgs []monitoringv1.Argument) ([]string, error)
BuildArgs takes a list of arguments and a list of additional arguments and returns a []string to use in a container Args
func BuildImagePath ¶
BuildImagePath builds a container image path based on the given parameters. Return specImage if not empty. If image contains a tag or digest then image will be returned. Otherwise, return image suffixed by either SHA, tag or version(in that order). Inspired by kubernetes code handling of image building.
func CreateConfigReloader ¶
func CreateConfigReloader(name string, options ...ReloaderOption) v1.Container
CreateConfigReloader returns the definition of the config-reloader container.
func CurlProber ¶
func FindStatusCondition ¶
func FindStatusCondition(conditions []monitoringv1.Condition, conditionType monitoringv1.ConditionType) *monitoringv1.Condition
FindStatusCondition returns the condition matching the given type. If the condition isn't present, it returns nil.
func GunzipConfig ¶
func ListMatchingNamespaces ¶
func ListMatchingNamespaces(selector labels.Selector, nsInf cache.SharedIndexInformer) ([]string, error)
ListMatchingNamespaces lists all the namespaces that match the provided selector.
func MakeHostAliases ¶
func MakeHostAliases(input []monitoringv1.HostAlias) []v1.HostAlias
MakeHostAliases converts array of monitoringv1 HostAlias to array of corev1 HostAlias
func MakeVolumeClaimTemplate ¶
func MakeVolumeClaimTemplate(e monitoringv1.EmbeddedPersistentVolumeClaim) *v1.PersistentVolumeClaim
func SanitizeSTS ¶
func SanitizeSTS(sts *appsv1.StatefulSet)
SanitizeSTS removes values for APIVersion and Kind from the VolumeClaimTemplates. This prevents update failures due to these fields changing when applied. See https://github.com/kubernetes/kubernetes/issues/87583
func StatusPoller ¶
func StatusPoller(ctx context.Context, sr StatusReconciler)
StatusPoller refreshes regularly the objects for which the Available condition isn't True. It ensures that the status subresource eventually reflects the pods conditions. For instance when a new version of the statefulset is rolled out and the updated pod has non-ready containers, the statefulset status won't see any update because the number of ready/updated replicas doesn't change. Without the periodic refresh, the object's status would report "containers with incomplete status: [init-config-reloader]" forever.
func StringPtrValOrDefault ¶
StringPtrValOrDefault returns the default val if the given string pointer is nil points to an empty/whitespace string. Otherwise returns the value of the string.
func StringValOrDefault ¶
StringValOrDefault returns the default val if the given string is empty/whitespace. Otherwise returns the value of the string..
func TestSidecarsResources ¶
func TestSidecarsResources(t *testing.T, makeStatefulSet func(reloaderConfig ContainerConfig) *appsv1.StatefulSet)
func UpdateConditions ¶
func UpdateConditions(conditions []monitoringv1.Condition, newConditions ...monitoringv1.Condition) []monitoringv1.Condition
UpdateConditions merges the existing conditions with newConditions.
func ValidateDurationField ¶
func ValidateRule ¶
func ValidateRule(promRuleSpec monitoringv1.PrometheusRuleSpec) []error
ValidateRule takes PrometheusRuleSpec and validates it using the upstream prometheus rule validator.
func ValidateSizeField ¶
func WaitForNamedCacheSync ¶
func WaitForNamedCacheSync(ctx context.Context, controllerName string, logger log.Logger, inf cache.SharedIndexInformer) bool
WaitForNamedCacheSync synchronizes the informer's cache and will log a warning every minute if the operation hasn't completed yet, until it reaches a timeout of 10 minutes. Under normal circumstances, the cache sync should be fast. If it takes more than 1 minute, it means that something is stuck and the message will indicate to the admin which informer is the culprit. See https://github.com/rhobs/obo-prometheus-operator/issues/3347.
func WgetProber ¶
Types ¶
type Accessor ¶
type Accessor struct {
// contains filtered or unexported fields
}
Accessor can manipulate objects returned by informers and handlers.
func NewAccessor ¶
func (*Accessor) MetaNamespaceKey ¶
MetaNamespaceKey returns a key from the object's metadata. For namespaced objects, the format is `<namespace>/<name>`, otherwise `name`.
type Config ¶
type Config struct {
Host string
ClusterDomain string
KubeletObject string
KubeletSelector string
ListenAddress string
TLSInsecure bool
TLSConfig rest.TLSClientConfig
ServerTLSConfig server.TLSServerConfig
ReloaderConfig ContainerConfig
AlertmanagerDefaultBaseImage string
PrometheusDefaultBaseImage string
ThanosDefaultBaseImage string
Namespaces Namespaces
Annotations Map
Labels Map
LocalHost string
LogLevel string
LogFormat string
PromSelector string
AlertManagerSelector string
ThanosRulerSelector string
SecretListWatchSelector string
}
Config defines configuration parameters for the Operator.
func DefaultConfig ¶
type ConfigReloader ¶
type ConfigReloader struct {
// contains filtered or unexported fields
}
ConfigReloader contains the options to configure a config-reloader container
type ContainerConfig ¶
type ContainerConfig struct {
CPURequests Quantity
CPULimits Quantity
MemoryRequests Quantity
MemoryLimits Quantity
Image string
EnableProbes bool
}
ContainerConfig holds some configuration for the ConfigReloader sidecar that can be set through prometheus-operator command line arguments
func (ContainerConfig) ResourceRequirements ¶
func (cc ContainerConfig) ResourceRequirements() v1.ResourceRequirements
type GoverningObject ¶
type HandlerEvent ¶
type HandlerEvent string
type Map ¶
func (*Map) Merge ¶
Merge returns a map which is a merge of the original map and the other parameter. The keys of the original map take precedence over other.
func (*Map) SortedKeys ¶
SortedKeys returns a slice of the keys in increasing order.
type Metrics ¶
type Metrics struct {
// contains filtered or unexported fields
}
Metrics represents metrics associated to an operator.
func NewMetrics ¶
func NewMetrics(r prometheus.Registerer) *Metrics
NewMetrics initializes operator metrics and registers them with the given registerer.
func (*Metrics) Collect ¶
func (m *Metrics) Collect(ch chan<- prometheus.Metric)
Collect implements the prometheus.Collector interface.
func (*Metrics) Describe ¶
func (m *Metrics) Describe(ch chan<- *prometheus.Desc)
Describe implements the prometheus.Collector interface.
func (*Metrics) MustRegister ¶
func (m *Metrics) MustRegister(metrics ...prometheus.Collector)
MustRegister registers metrics with the Metrics registerer.
func (*Metrics) NewInstrumentedListerWatcher ¶
func (m *Metrics) NewInstrumentedListerWatcher(lw cache.ListerWatcher) cache.ListerWatcher
NewInstrumentedListerWatcher returns a cache.ListerWatcher with instrumentation.
func (*Metrics) Ready ¶
func (m *Metrics) Ready() prometheus.Gauge
Ready returns a gauge to track whether the controller is ready or not.
func (*Metrics) SetRejectedResources ¶
SetRejectedResources sets the number of resources that the controller rejected for the given object's key.
func (*Metrics) SetSelectedResources ¶
SetSelectedResources sets the number of resources that the controller selected for the given object's key.
func (*Metrics) StsDeleteCreateCounter ¶
func (m *Metrics) StsDeleteCreateCounter() prometheus.Counter
StsDeleteCreateCounter returns a counter to track statefulset's recreations.
func (*Metrics) TriggerByCounter ¶
func (m *Metrics) TriggerByCounter(triggeredBy string, action HandlerEvent) prometheus.Counter
TriggerByCounter returns a counter to track operator actions by resource type and action (add/delete/update).
type Namespaces ¶
type Pod ¶
Pod is an alias for the Kubernetes v1.Pod type.
type PrometheusRuleSelector ¶
type PrometheusRuleSelector struct {
// contains filtered or unexported fields
}
func NewPrometheusRuleSelector ¶
func NewPrometheusRuleSelector(ruleFormat RuleConfigurationFormat, version string, labelSelector *metav1.LabelSelector, nsLabeler *namespacelabeler.Labeler, ruleInformer *informers.ForResource, logger log.Logger) (*PrometheusRuleSelector, error)
type Quantity ¶
type Quantity struct {
// contains filtered or unexported fields
}
type ReconcilerMetrics ¶
type ReconcilerMetrics interface {
TriggerByCounter(string, HandlerEvent) prometheus.Counter
}
ReconcilerMetrics tracks reconciler metrics.
type ReconciliationStatus ¶
type ReconciliationStatus struct {
// contains filtered or unexported fields
}
func (ReconciliationStatus) Message ¶
func (rs ReconciliationStatus) Message() string
func (ReconciliationStatus) Ok ¶
func (rs ReconciliationStatus) Ok() bool
func (ReconciliationStatus) Reason ¶
func (rs ReconciliationStatus) Reason() string
type ReconciliationTracker ¶
type ReconciliationTracker struct {
// contains filtered or unexported fields
}
ReconciliationTracker tracks reconciliation status per object. The zero ReconciliationTracker is ready to use.
func (*ReconciliationTracker) Collect ¶
func (rt *ReconciliationTracker) Collect(ch chan<- prometheus.Metric)
Collect implements the prometheus.Collector interface.
func (*ReconciliationTracker) Describe ¶
func (rt *ReconciliationTracker) Describe(ch chan<- *prometheus.Desc)
Describe implements the prometheus.Collector interface.
func (*ReconciliationTracker) ForgetObject ¶
func (rt *ReconciliationTracker) ForgetObject(k string)
ForgetObject removes the given object from the tracker. It should be called when the controller detects that the object has been deleted.
func (*ReconciliationTracker) GetCondition ¶
func (rt *ReconciliationTracker) GetCondition(k string, gen int64) monitoringv1.Condition
GetCondition returns a monitoringv1.Condition for the last-known reconciliation status of the given object.
func (*ReconciliationTracker) SetStatus ¶
func (rt *ReconciliationTracker) SetStatus(k string, err error)
SetStatus updates the last reconciliation status for the given object.
type ReloaderOption ¶
type ReloaderOption = func(*ConfigReloader)
func ConfigEnvsubstFile ¶
func ConfigEnvsubstFile(configEnvsubstFile string) ReloaderOption
ConfigEnvsubstFile sets the configEnvsubstFile option for the config-reloader container
func ConfigFile ¶
func ConfigFile(configFile string) ReloaderOption
ConfigFile sets the configFile option for the config-reloader container
func ImagePullPolicy ¶
func ImagePullPolicy(imagePullPolicy v1.PullPolicy) ReloaderOption
ImagePullPolicy sets the imagePullPolicy option for the config-reloader container
func ListenLocal ¶
func ListenLocal(listenLocal bool) ReloaderOption
ListenLocal sets the listenLocal option for the config-reloader container
func LocalHost ¶
func LocalHost(localHost string) ReloaderOption
LocalHost sets the localHost option for the config-reloader container
func LogFormat ¶
func LogFormat(logFormat string) ReloaderOption
LogFormat sets the logFormat option for the config-reloader container
func LogLevel ¶
func LogLevel(logLevel string) ReloaderOption
LogLevel sets the logLevel option for the config-reloader container\
func ReloaderConfig ¶
func ReloaderConfig(rc ContainerConfig) ReloaderOption
ReloaderConfig sets the config option for the config-reloader container
func ReloaderRunOnce ¶
func ReloaderRunOnce() ReloaderOption
ReloaderRunOnce sets the runOnce option for the config-reloader container
func ReloaderURL ¶
func ReloaderURL(reloadURL url.URL) ReloaderOption
ReloaderURL sets the reloaderURL option for the config-reloader container
func Shard ¶
func Shard(shard int32) ReloaderOption
Shard sets the shard option for the config-reloader container
func VolumeMounts ¶
func VolumeMounts(mounts []v1.VolumeMount) ReloaderOption
VolumeMounts sets the volumeMounts option for the config-reloader container
func WatchedDirectories ¶
func WatchedDirectories(watchedDirectories []string) ReloaderOption
WatchedDirectories sets the watchedDirectories option for the config-reloader container
type ResourceReconciler ¶
type ResourceReconciler struct {
// contains filtered or unexported fields
}
ResourceReconciler reacts on changes for statefulset-based resources and triggers synchronization of the resources.
ResourceReconciler implements the cache.ResourceEventHandler interface and it can subscribe to resource events like this:
var statefulSetInformer, resourceInformer cache.SharedInformer ... rr := NewResourceReconciler(...) statefulSetInformer.AddEventHandler(rr) resourceInformer.AddEventHandler(rr)
ResourceReconciler will trigger object and status reconciliations based on the events received from the informer.
func NewResourceReconciler ¶
func NewResourceReconciler( l log.Logger, syncer Syncer, metrics ReconcilerMetrics, kind string, reg prometheus.Registerer, ) *ResourceReconciler
NewResourceReconciler returns a reconciler for the "kind" resource.
func (*ResourceReconciler) DeletionInProgress ¶
func (rr *ResourceReconciler) DeletionInProgress(o metav1.Object) bool
DeletionInProgress returns true if the object deletion has been requested.
func (*ResourceReconciler) EnqueueForReconciliation ¶
func (rr *ResourceReconciler) EnqueueForReconciliation(obj metav1.Object)
EnqueueForReconciliation asks for reconciling the object.
func (*ResourceReconciler) EnqueueForStatus ¶
func (rr *ResourceReconciler) EnqueueForStatus(obj metav1.Object)
EnqueueForStatus asks for updating the status of the object.
func (*ResourceReconciler) OnAdd ¶
func (rr *ResourceReconciler) OnAdd(obj interface{}, _ bool)
OnAdd implements the cache.ResourceEventHandler interface.
func (*ResourceReconciler) OnDelete ¶
func (rr *ResourceReconciler) OnDelete(obj interface{})
OnDelete implements the cache.ResourceEventHandler interface.
func (*ResourceReconciler) OnUpdate ¶
func (rr *ResourceReconciler) OnUpdate(old, cur interface{})
OnUpdate implements the cache.ResourceEventHandler interface.
func (*ResourceReconciler) Run ¶
func (rr *ResourceReconciler) Run(ctx context.Context)
Run the goroutines responsible for processing the reconciliation and status queues.
func (*ResourceReconciler) Stop ¶
func (rr *ResourceReconciler) Stop()
Stop the processing queues and wait for goroutines to exit.
type RuleConfigurationFormat ¶
type RuleConfigurationFormat int
const ( PrometheusFormat RuleConfigurationFormat = iota ThanosFormat )
type ShardedSecret ¶
type ShardedSecret struct {
// contains filtered or unexported fields
}
ShardedSecret is k8s secret data that is sharded across multiple enumerated k8s secrets. This is used to circumvent the size limitation of k8s secrets.
func NewShardedSecret ¶
func NewShardedSecret(template *v1.Secret, namePrefix string) *ShardedSecret
NewShardedSecret takes a v1.Secret as template and a secret name prefix and returns a new ShardedSecret.
func (*ShardedSecret) AppendData ¶
func (s *ShardedSecret) AppendData(key string, data []byte)
AppendData adds data to the secrets data portion. Already existing keys get overwritten.
func (*ShardedSecret) ShardNames ¶
func (s *ShardedSecret) ShardNames() []string
ShardNames returns the names of the secret shards. This only returns something after StoreSecrets was called and the actual sharding took place.
func (*ShardedSecret) StoreSecrets ¶
func (s *ShardedSecret) StoreSecrets(ctx context.Context, sClient corev1.SecretInterface) error
StoreSecrets creates the individual secret shards and stores it via sClient.
type StatefulSetReporter ¶
type StatefulSetReporter struct {
Pods []*Pod
// contains filtered or unexported fields
}
func NewStatefulSetReporter ¶
func NewStatefulSetReporter(ctx context.Context, kclient kubernetes.Interface, sset *appsv1.StatefulSet) (*StatefulSetReporter, error)
NewStatefulSetReporter returns a statefulset's reporter.
func (*StatefulSetReporter) IsUpdated ¶
func (sr *StatefulSetReporter) IsUpdated(p *Pod) bool
IsUpdated returns true if the given pod matches with the statefulset's revision.
func (*StatefulSetReporter) ReadyPods ¶
func (sr *StatefulSetReporter) ReadyPods() []*Pod
ReadyPods returns the list of pods that are ready.
func (*StatefulSetReporter) Update ¶
func (sr *StatefulSetReporter) Update(gObj GoverningObject) monitoringv1.Condition
func (*StatefulSetReporter) UpdatedPods ¶
func (sr *StatefulSetReporter) UpdatedPods() []*Pod
UpdatedPods returns the list of pods that match with the statefulset's revision.
type StatusReconciler ¶
type Syncer ¶
type Syncer interface {
// Sync the state of the object identified by its key.
Sync(context.Context, string) error
// UpdateStatus updates the status of the object identified by its key.
UpdateStatus(context.Context, string) error
// Resolve returns the resource associated to the statefulset.
Resolve(*appsv1.StatefulSet) metav1.Object
}
Syncer knows how to synchronize statefulset-based resources.