Skip to content

Commit

Permalink
controllers: adds healthCheck scheme based on extraArgs tls param
Browse files Browse the repository at this point in the history
it should help to build correct ready checks with enabld TLS at extra args
  • Loading branch information
f41gh7 committed Aug 16, 2022
1 parent b9fb074 commit e43a4d5
Show file tree
Hide file tree
Showing 20 changed files with 421 additions and 115 deletions.
21 changes: 21 additions & 0 deletions api/v1beta1/vmagent_types.go
Expand Up @@ -612,6 +612,27 @@ func (cr *VMAgent) AsCRDOwner() []metav1.OwnerReference {
return GetCRDAsOwner(Agent)
}

func (cr *VMAgent) Probe() *EmbeddedProbes {
return cr.Spec.EmbeddedProbes
}

func (cr *VMAgent) ProbePath() string {

return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr *VMAgent) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.Spec.ExtraArgs))
}

func (cr VMAgent) ProbePort() string {
return cr.Spec.Port
}

func (cr VMAgent) ProbeNeedLiveness() bool {
return true
}

func init() {
SchemeBuilder.Register(&VMAgent{}, &VMAgentList{})
}
25 changes: 22 additions & 3 deletions api/v1beta1/vmalert_types.go
Expand Up @@ -362,6 +362,27 @@ type VMAlert struct {
Status VMAlertStatus `json:"status,omitempty"`
}

func (cr *VMAlert) Probe() *EmbeddedProbes {
return cr.Spec.EmbeddedProbes
}

func (cr *VMAlert) ProbePath() string {

return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr *VMAlert) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.Spec.ExtraArgs))
}

func (cr VMAlert) ProbePort() string {
return cr.Spec.Port
}

func (cr VMAlert) ProbeNeedLiveness() bool {
return true
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

// VMAlertList contains a list of VMAlert
Expand Down Expand Up @@ -435,9 +456,7 @@ func (cr VMAlert) PrefixedName() string {
func (cr VMAlert) TLSAssetName() string {
return fmt.Sprintf("tls-assets-vmalert-%s", cr.Name)
}
func (cr VMAlert) HealthPath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr VMAlert) MetricPath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, metricPath)
}
Expand Down
24 changes: 24 additions & 0 deletions api/v1beta1/vmalertmanager_types.go
Expand Up @@ -430,6 +430,30 @@ func (cr *VMAlertmanager) GetVolumeName() string {
return fmt.Sprintf("vmalertmanager-%s-db", cr.Name)
}

func (cr *VMAlertmanager) Probe() *EmbeddedProbes {
return cr.Spec.EmbeddedProbes
}

func (cr *VMAlertmanager) ProbePath() string {
webRoutePrefix := "/"
if cr.Spec.RoutePrefix != "" {
webRoutePrefix = cr.Spec.RoutePrefix
}
return path.Clean(webRoutePrefix + "/-/healthy")
}

func (cr *VMAlertmanager) ProbePort() string {
return cr.Spec.PortName
}

func (cr *VMAlertmanager) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.Spec.ExtraArgs))
}

func (cr *VMAlertmanager) ProbeNeedLiveness() bool {
return true
}

func init() {
SchemeBuilder.Register(&VMAlertmanager{}, &VMAlertmanagerList{})
}
25 changes: 21 additions & 4 deletions api/v1beta1/vmauth_types.go
Expand Up @@ -220,6 +220,27 @@ type VMAuth struct {
Status VMAuthStatus `json:"status,omitempty"`
}

func (cr *VMAuth) Probe() *EmbeddedProbes {
return cr.Spec.EmbeddedProbes
}

func (cr *VMAuth) ProbePath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr *VMAuth) ProbeScheme() string {

return strings.ToUpper(protoFromFlags(cr.Spec.ExtraArgs))
}

func (cr *VMAuth) ProbePort() string {
return cr.Spec.Port
}

func (cr *VMAuth) ProbeNeedLiveness() bool {
return true
}

// +kubebuilder:object:root=true

// VMAuthList contains a list of VMAuth
Expand Down Expand Up @@ -295,10 +316,6 @@ func (cr VMAuth) ConfigSecretName() string {
return fmt.Sprintf("vmauth-config-%s", cr.Name)
}

func (cr VMAuth) HealthPath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr VMAuth) MetricPath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, metricPath)
}
Expand Down
77 changes: 56 additions & 21 deletions api/v1beta1/vmcluster_types.go
Expand Up @@ -458,6 +458,26 @@ type VMInsert struct {
TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`
}

func (cr *VMInsert) Probe() *EmbeddedProbes {
return cr.EmbeddedProbes
}

func (cr *VMInsert) ProbePath() string {
return buildPathWithPrefixFlag(cr.ExtraArgs, healthPath)
}

func (cr *VMInsert) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.ExtraArgs))
}

func (cr *VMInsert) ProbePort() string {
return cr.Port
}

func (cr *VMInsert) ProbeNeedLiveness() bool {
return true
}

func (i VMInsert) GetNameWithPrefix(clusterName string) string {
if i.Name == "" {
return PrefixedName(clusterName, "vminsert")
Expand Down Expand Up @@ -893,27 +913,6 @@ func (cr *VMCluster) GetLastAppliedSpec() (*VMClusterSpec, error) {
return &prevClusterSpec, nil
}

func (cr VMCluster) HealthPathSelect() string {
if cr.Spec.VMSelect == nil {
return healthPath
}
return buildPathWithPrefixFlag(cr.Spec.VMSelect.ExtraArgs, healthPath)
}

func (cr VMCluster) HealthPathInsert() string {
if cr.Spec.VMInsert == nil {
return healthPath
}
return buildPathWithPrefixFlag(cr.Spec.VMInsert.ExtraArgs, healthPath)
}

func (cr VMCluster) HealthPathStorage() string {
if cr.Spec.VMStorage == nil {
return healthPath
}
return buildPathWithPrefixFlag(cr.Spec.VMStorage.ExtraArgs, healthPath)
}

func (cr VMCluster) MetricPathSelect() string {
if cr.Spec.VMSelect == nil {
return healthPath
Expand Down Expand Up @@ -1036,3 +1035,39 @@ func (cr *VMCluster) AsCRDOwner() []metav1.OwnerReference {
func (cr VMCluster) GetNSName() string {
return cr.GetNamespace()
}

func (cr *VMSelect) Probe() *EmbeddedProbes {
return cr.EmbeddedProbes
}

func (cr *VMSelect) ProbePath() string {
return buildPathWithPrefixFlag(cr.ExtraArgs, healthPath)
}

func (cr *VMSelect) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.ExtraArgs))
}
func (cr *VMSelect) ProbePort() string {
return cr.Port
}
func (cr *VMSelect) ProbeNeedLiveness() bool {
return true
}

func (cr *VMStorage) Probe() *EmbeddedProbes {
return cr.EmbeddedProbes
}

func (cr *VMStorage) ProbePath() string {
return buildPathWithPrefixFlag(cr.ExtraArgs, healthPath)
}

func (cr *VMStorage) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.ExtraArgs))
}
func (cr *VMStorage) ProbePort() string {
return cr.Port
}
func (cr *VMStorage) ProbeNeedLiveness() bool {
return false
}
24 changes: 20 additions & 4 deletions api/v1beta1/vmsingle_types.go
Expand Up @@ -218,6 +218,26 @@ type VMSingle struct {
Status VMSingleStatus `json:"status,omitempty"`
}

func (cr *VMSingle) Probe() *EmbeddedProbes {
return cr.Spec.EmbeddedProbes
}

func (cr *VMSingle) ProbePath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr *VMSingle) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.Spec.ExtraArgs))
}

func (cr *VMSingle) ProbePort() string {
return cr.Spec.Port
}

func (cr *VMSingle) ProbeNeedLiveness() bool {
return false
}

// VMSingleList contains a list of VMSingle
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type VMSingleList struct {
Expand Down Expand Up @@ -288,10 +308,6 @@ func (cr VMSingle) PrefixedName() string {
return fmt.Sprintf("vmsingle-%s", cr.Name)
}

func (cr VMSingle) HealthPath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr VMSingle) MetricPath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, metricPath)
}
Expand Down
21 changes: 21 additions & 0 deletions api/victoriametrics/v1beta1/vmagent_types.go
Expand Up @@ -612,6 +612,27 @@ func (cr *VMAgent) AsCRDOwner() []metav1.OwnerReference {
return GetCRDAsOwner(Agent)
}

func (cr *VMAgent) Probe() *EmbeddedProbes {
return cr.Spec.EmbeddedProbes
}

func (cr *VMAgent) ProbePath() string {

return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr *VMAgent) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.Spec.ExtraArgs))
}

func (cr VMAgent) ProbePort() string {
return cr.Spec.Port
}

func (cr VMAgent) ProbeNeedLiveness() bool {
return true
}

func init() {
SchemeBuilder.Register(&VMAgent{}, &VMAgentList{})
}
25 changes: 22 additions & 3 deletions api/victoriametrics/v1beta1/vmalert_types.go
Expand Up @@ -362,6 +362,27 @@ type VMAlert struct {
Status VMAlertStatus `json:"status,omitempty"`
}

func (cr *VMAlert) Probe() *EmbeddedProbes {
return cr.Spec.EmbeddedProbes
}

func (cr *VMAlert) ProbePath() string {

return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr *VMAlert) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.Spec.ExtraArgs))
}

func (cr VMAlert) ProbePort() string {
return cr.Spec.Port
}

func (cr VMAlert) ProbeNeedLiveness() bool {
return true
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

// VMAlertList contains a list of VMAlert
Expand Down Expand Up @@ -435,9 +456,7 @@ func (cr VMAlert) PrefixedName() string {
func (cr VMAlert) TLSAssetName() string {
return fmt.Sprintf("tls-assets-vmalert-%s", cr.Name)
}
func (cr VMAlert) HealthPath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, healthPath)
}

func (cr VMAlert) MetricPath() string {
return buildPathWithPrefixFlag(cr.Spec.ExtraArgs, metricPath)
}
Expand Down
24 changes: 24 additions & 0 deletions api/victoriametrics/v1beta1/vmalertmanager_types.go
Expand Up @@ -430,6 +430,30 @@ func (cr *VMAlertmanager) GetVolumeName() string {
return fmt.Sprintf("vmalertmanager-%s-db", cr.Name)
}

func (cr *VMAlertmanager) Probe() *EmbeddedProbes {
return cr.Spec.EmbeddedProbes
}

func (cr *VMAlertmanager) ProbePath() string {
webRoutePrefix := "/"
if cr.Spec.RoutePrefix != "" {
webRoutePrefix = cr.Spec.RoutePrefix
}
return path.Clean(webRoutePrefix + "/-/healthy")
}

func (cr *VMAlertmanager) ProbePort() string {
return cr.Spec.PortName
}

func (cr *VMAlertmanager) ProbeScheme() string {
return strings.ToUpper(protoFromFlags(cr.Spec.ExtraArgs))
}

func (cr *VMAlertmanager) ProbeNeedLiveness() bool {
return true
}

func init() {
SchemeBuilder.Register(&VMAlertmanager{}, &VMAlertmanagerList{})
}

0 comments on commit e43a4d5

Please sign in to comment.