Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions api/operator/v1/vlagent_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -484,13 +484,13 @@ func (cr *VLAgent) IsOwnsServiceAccount() bool {
}

// AsURL - returns url for http access
func (cr *VLAgent) AsURL(isExtra bool) string {
func (cr *VLAgent) AsURL(isExtra bool) (string, error) {
specPort := cr.Spec.Port
if specPort == "" {
specPort = "9429"
}
svcName, port := vmv1beta1.ResolveServiceURL(cr.PrefixedName(), specPort, "http", cr.Spec.ServiceSpec, isExtra)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port), nil
}

// ProbePath implements build.probeCRD interface
Expand Down
16 changes: 10 additions & 6 deletions api/operator/v1/vlcluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -866,14 +866,14 @@ func (cr *VLCluster) IsOwnsServiceAccount() bool {

// AsURL implements stub for interface.
// nolint:dupl,lll
func (cr *VLCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) string {
func (cr *VLCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) (string, error) {
var defaultPort string
var svcSpec *vmv1beta1.AdditionalServiceSpec
var extraArgs map[string]string
switch kind {
case vmv1beta1.ClusterComponentSelect:
if cr.Spec.VLSelect == nil {
return ""
return "", fmt.Errorf("vlcluster %q has no spec.vlSelect configured", cr.Name)
}
defaultPort = "9471"
if cr.Spec.VLSelect.Port != "" {
Expand All @@ -883,7 +883,7 @@ func (cr *VLCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) string
extraArgs = cr.Spec.VLSelect.ExtraArgs
case vmv1beta1.ClusterComponentInsert:
if cr.Spec.VLInsert == nil {
return ""
return "", fmt.Errorf("vlcluster %q has no spec.vlInsert configured", cr.Name)
}
defaultPort = "9481"
if cr.Spec.VLInsert.Port != "" {
Expand All @@ -893,7 +893,7 @@ func (cr *VLCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) string
extraArgs = cr.Spec.VLInsert.ExtraArgs
case vmv1beta1.ClusterComponentStorage:
if cr.Spec.VLStorage == nil {
return ""
return "", fmt.Errorf("vlcluster %q has no spec.vlStorage configured", cr.Name)
}
defaultPort = "9491"
if cr.Spec.VLStorage.Port != "" {
Expand All @@ -905,12 +905,16 @@ func (cr *VLCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) string
panic("BUG unsupported cluster kind=" + string(kind))
}
svcName, port := vmv1beta1.ResolveServiceURL(cr.PrefixedName(kind), defaultPort, "http", svcSpec, isExtra)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(extraArgs), svcName, cr.Namespace, port)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(extraArgs), svcName, cr.Namespace, port), nil
}

// GetRemoteWriteURL returns the insert URL for VLCluster (used by VLDistributed)
func (cr *VLCluster) GetRemoteWriteURL() string {
return cr.AsURL(vmv1beta1.ClusterComponentInsert, false) + "/insert/native"
url, err := cr.AsURL(vmv1beta1.ClusterComponentInsert, false)
if err != nil {
return ""
}
return url + "/insert/native"
}

// +kubebuilder:object:root=true
Expand Down
10 changes: 7 additions & 3 deletions api/operator/v1/vlsingle_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -337,13 +337,13 @@ func (cr *VLSingle) IsOwnsServiceAccount() bool {
return cr.Spec.ServiceAccountName == ""
}

func (cr *VLSingle) AsURL(isExtra bool) string {
func (cr *VLSingle) AsURL(isExtra bool) (string, error) {
specPort := cr.Spec.Port
if specPort == "" {
specPort = "9428"
}
svcName, port := vmv1beta1.ResolveServiceURL(cr.PrefixedName(), specPort, "http", cr.Spec.ServiceSpec, isExtra)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port), nil
}

// LastSpecUpdated compares spec with last applied spec stored, replaces old spec and returns true if it's updated
Expand All @@ -364,5 +364,9 @@ func (cr *VLSingle) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec {

// GetRemoteWriteURL returns the native insert URL for VLSingle (used by VLDistributed)
func (cr *VLSingle) GetRemoteWriteURL() string {
return cr.AsURL(false) + "/insert/native"
url, err := cr.AsURL(false)
if err != nil {
return ""
}
return url + "/insert/native"
}
4 changes: 2 additions & 2 deletions api/operator/v1/vmanomaly_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -483,9 +483,9 @@ func (*VMAnomaly) ProbeNeedLiveness() bool {

// AsURL returns url for http access to the first replica.
// Returns empty string if spec.server.port is not configured.
func (cr *VMAnomaly) AsURL(isExtra bool) string {
func (cr *VMAnomaly) AsURL(isExtra bool) (string, error) {
svcName, port := vmv1beta1.ResolveServiceURL(cr.PrefixedName(), cr.Port(), "http", nil, isExtra)
return fmt.Sprintf("http://%s.%s.svc:%s", svcName, cr.Namespace, port)
return fmt.Sprintf("http://%s.%s.svc:%s", svcName, cr.Namespace, port), nil
}

// Validate performs semantic validation for component
Expand Down
16 changes: 10 additions & 6 deletions api/operator/v1/vtcluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -655,7 +655,11 @@ func (cr *VTCluster) Validate() error {
}
storageNodes := sets.New[string]()
if cr.Spec.Storage != nil {
storageNodes.Insert(cr.AsURL(vmv1beta1.ClusterComponentStorage, false))
storageURL, err := cr.AsURL(vmv1beta1.ClusterComponentStorage, false)
if err != nil {
return err
}
storageNodes.Insert(storageURL)
vts := cr.Spec.Storage
name := cr.PrefixedName(vmv1beta1.ClusterComponentStorage)
if vts.ServiceSpec != nil && vts.ServiceSpec.Name == name {
Expand Down Expand Up @@ -777,14 +781,14 @@ func (cr *VTCluster) IsOwnsServiceAccount() bool {

// AsURL implements stub for interface.
// nolint:dupl,lll
func (cr *VTCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) string {
func (cr *VTCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) (string, error) {
var defaultPort string
var svcSpec *vmv1beta1.AdditionalServiceSpec
var extraArgs map[string]string
switch kind {
case vmv1beta1.ClusterComponentSelect:
if cr.Spec.Select == nil {
return ""
return "", fmt.Errorf("vtcluster %q has no spec.select configured", cr.Name)
}
defaultPort = "10471"
if cr.Spec.Select.Port != "" {
Expand All @@ -794,7 +798,7 @@ func (cr *VTCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) string
extraArgs = cr.Spec.Select.ExtraArgs
case vmv1beta1.ClusterComponentInsert:
if cr.Spec.Insert == nil {
return ""
return "", fmt.Errorf("vtcluster %q has no spec.insert configured", cr.Name)
}
defaultPort = "10481"
if cr.Spec.Insert.Port != "" {
Expand All @@ -804,7 +808,7 @@ func (cr *VTCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) string
extraArgs = cr.Spec.Insert.ExtraArgs
case vmv1beta1.ClusterComponentStorage:
if cr.Spec.Storage == nil {
return ""
return "", fmt.Errorf("vtcluster %q has no spec.storage configured", cr.Name)
}
defaultPort = "10491"
if cr.Spec.Storage.Port != "" {
Expand All @@ -816,7 +820,7 @@ func (cr *VTCluster) AsURL(kind vmv1beta1.ClusterComponent, isExtra bool) string
panic("BUG unsupported cluster kind=" + string(kind))
}
svcName, port := vmv1beta1.ResolveServiceURL(cr.PrefixedName(kind), defaultPort, "http", svcSpec, isExtra)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(extraArgs), svcName, cr.Namespace, port)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(extraArgs), svcName, cr.Namespace, port), nil
}

// +kubebuilder:object:root=true
Expand Down
4 changes: 2 additions & 2 deletions api/operator/v1/vtsingle_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -334,13 +334,13 @@ func (cr *VTSingle) IsOwnsServiceAccount() bool {
}

// AsURL returns URL for components access
func (cr *VTSingle) AsURL(isExtra bool) string {
func (cr *VTSingle) AsURL(isExtra bool) (string, error) {
specPort := cr.Spec.Port
if specPort == "" {
specPort = "10428"
}
svcName, port := vmv1beta1.ResolveServiceURL(cr.PrefixedName(), specPort, "http", cr.Spec.ServiceSpec, isExtra)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port)
return fmt.Sprintf("%s://%s.%s.svc:%s", vmv1beta1.HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port), nil
}

// LastSpecUpdated compares spec with last applied spec stored, replaces old spec and returns true if it's updated
Expand Down
4 changes: 2 additions & 2 deletions api/operator/v1beta1/vlogs_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -299,13 +299,13 @@ func (cr *VLogs) IsOwnsServiceAccount() bool {
return cr.Spec.ServiceAccountName == ""
}

func (cr *VLogs) AsURL(isExtra bool) string {
func (cr *VLogs) AsURL(isExtra bool) (string, error) {
specPort := cr.Spec.Port
if specPort == "" {
specPort = "9428"
}
svcName, port := ResolveServiceURL(cr.PrefixedName(), specPort, "http", cr.Spec.ServiceSpec, isExtra)
return fmt.Sprintf("%s://%s.%s.svc:%s", HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port)
return fmt.Sprintf("%s://%s.%s.svc:%s", HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port), nil
}

// LastSpecUpdated compares spec with last applied spec stored, replaces old spec and returns true if it's updated
Expand Down
4 changes: 2 additions & 2 deletions api/operator/v1beta1/vmagent_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -612,13 +612,13 @@ func (cr *VMAgent) GetRBACName() string {
}

// AsURL - returns url for http access
func (cr *VMAgent) AsURL(isExtra bool) string {
func (cr *VMAgent) AsURL(isExtra bool) (string, error) {
specPort := cr.Spec.Port
if specPort == "" {
specPort = "8429"
}
svcName, port := ResolveServiceURL(cr.PrefixedName(), specPort, "http", cr.Spec.ServiceSpec, isExtra)
return fmt.Sprintf("%s://%s.%s.svc:%s", HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port)
return fmt.Sprintf("%s://%s.%s.svc:%s", HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port), nil
}

func (cr *VMAgent) ProbePath() string {
Expand Down
4 changes: 2 additions & 2 deletions api/operator/v1beta1/vmalert_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -516,13 +516,13 @@ func (cr *VMAlert) IsOwnsServiceAccount() bool {
return cr.Spec.ServiceAccountName == ""
}

func (cr *VMAlert) AsURL(isExtra bool) string {
func (cr *VMAlert) AsURL(isExtra bool) (string, error) {
specPort := cr.Spec.Port
if specPort == "" {
specPort = "8080"
}
svcName, port := ResolveServiceURL(cr.PrefixedName(), specPort, "http", cr.Spec.ServiceSpec, isExtra)
return fmt.Sprintf("%s://%s.%s.svc:%s", HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port)
return fmt.Sprintf("%s://%s.%s.svc:%s", HTTPProtoFromFlags(cr.Spec.ExtraArgs), svcName, cr.Namespace, port), nil
}

// IsUnmanaged checks if object should managed any config objects
Expand Down
4 changes: 2 additions & 2 deletions api/operator/v1beta1/vmalertmanager_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -404,13 +404,13 @@ func (cr *VMAlertmanager) Port() string {

// AsURL returns url for accessing alertmanager
// via corresponding service
func (cr *VMAlertmanager) AsURL(isExtra bool) string {
func (cr *VMAlertmanager) AsURL(isExtra bool) (string, error) {
portName := cr.Spec.PortName
if portName == "" {
portName = "web"
}
svcName, port := ResolveServiceURL(cr.PrefixedName(), cr.Port(), portName, cr.Spec.ServiceSpec, isExtra)
return fmt.Sprintf("%s://%s.%s.svc:%s", cr.accessScheme(), svcName, cr.Namespace, port)
return fmt.Sprintf("%s://%s.%s.svc:%s", cr.accessScheme(), svcName, cr.Namespace, port), nil
}

// returns fqdn for direct pod access
Expand Down
Loading