diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d4288e..3a8e459 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: extension-ci: uses: steadybit/extension-kit/.github/workflows/reusable-extension-ci.yml@main # NOSONAR githubactions:S7637 - our own action with: - go_version: '^1.25.9' + go_version: '^1.26.2' build_linux_packages: false VERSION_BUMPER_APPID: ${{ vars.GH_APP_STEADYBIT_APP_ID }} secrets: diff --git a/CHANGELOG.md b/CHANGELOG.md index 322027f..dfeb3bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## (next) + +- Bump Go to 1.26.2 + ## v1.0.21 - Bump Go to 1.25.9 diff --git a/extservice/service_check.go b/extservice/service_check.go index d4397ee..0b7e0a1 100644 --- a/extservice/service_check.go +++ b/extservice/service_check.go @@ -60,19 +60,19 @@ func (m *ServiceStatusCheckAction) Describe() action_kit_api.ActionDescription { Label: "StackState Service", Description: "collects information about the service status and optionally verifies that the status has an expected status.", Version: extbuild.GetSemverVersionStringOrUnknown(), - Icon: extutil.Ptr(serviceIcon), - TargetSelection: extutil.Ptr(action_kit_api.TargetSelection{ + Icon: new(serviceIcon), + TargetSelection: new(action_kit_api.TargetSelection{ TargetType: serviceTargetType, QuantityRestriction: extutil.Ptr(action_kit_api.QuantityRestrictionAll), - SelectionTemplates: extutil.Ptr([]action_kit_api.TargetSelectionTemplate{ + SelectionTemplates: new([]action_kit_api.TargetSelectionTemplate{ { Label: "service name", - Description: extutil.Ptr("Find service by cluster, namespace and service"), + Description: new("Find service by cluster, namespace and service"), Query: "k8s.cluster-name=\"\" AND k8s.namespace=\"\" AND k8s.service.name=\"\"", }, }), }), - Technology: extutil.Ptr("StackState"), + Technology: new("StackState"), Kind: action_kit_api.Check, TimeControl: action_kit_api.TimeControlInternal, @@ -80,18 +80,18 @@ func (m *ServiceStatusCheckAction) Describe() action_kit_api.ActionDescription { { Name: "duration", Label: "Duration", - Description: extutil.Ptr(""), + Description: new(""), Type: action_kit_api.ActionParameterTypeDuration, - DefaultValue: extutil.Ptr("30s"), - Order: extutil.Ptr(1), - Required: extutil.Ptr(true), + DefaultValue: new("30s"), + Order: new(1), + Required: new(true), }, { Name: "expectedStatus", Label: "Expected Status", - Description: extutil.Ptr(""), + Description: new(""), Type: action_kit_api.ActionParameterTypeString, - Options: extutil.Ptr([]action_kit_api.ParameterOption{ + Options: new([]action_kit_api.ParameterOption{ action_kit_api.ExplicitParameterOption{ Label: "CLEAR", Value: "CLEAR", @@ -109,16 +109,16 @@ func (m *ServiceStatusCheckAction) Describe() action_kit_api.ActionDescription { Value: "UNKNOWN", }, }), - Required: extutil.Ptr(false), - Order: extutil.Ptr(2), + Required: new(false), + Order: new(2), }, { Name: "statusCheckMode", Label: "Status Check Mode", - Description: extutil.Ptr("How often should the status be expected?"), + Description: new("How often should the status be expected?"), Type: action_kit_api.ActionParameterTypeString, - DefaultValue: extutil.Ptr(statusCheckModeAllTheTime), - Options: extutil.Ptr([]action_kit_api.ParameterOption{ + DefaultValue: new(statusCheckModeAllTheTime), + Options: new([]action_kit_api.ParameterOption{ action_kit_api.ExplicitParameterOption{ Label: "All the time", Value: statusCheckModeAllTheTime, @@ -128,11 +128,11 @@ func (m *ServiceStatusCheckAction) Describe() action_kit_api.ActionDescription { Value: statusCheckModeAtLeastOnce, }, }), - Required: extutil.Ptr(true), - Order: extutil.Ptr(4), + Required: new(true), + Order: new(4), }, }, - Widgets: extutil.Ptr([]action_kit_api.Widget{ + Widgets: new([]action_kit_api.Widget{ action_kit_api.StateOverTimeWidget{ Type: action_kit_api.ComSteadybitWidgetStateOverTime, Title: "StackState Service Status", @@ -148,16 +148,16 @@ func (m *ServiceStatusCheckAction) Describe() action_kit_api.ActionDescription { Tooltip: action_kit_api.StateOverTimeWidgetTooltipConfig{ From: attributeTooltip, }, - Url: extutil.Ptr(action_kit_api.StateOverTimeWidgetUrlConfig{ - From: extutil.Ptr(attributeUrl), + Url: new(action_kit_api.StateOverTimeWidgetUrlConfig{ + From: new(attributeUrl), }), - Value: extutil.Ptr(action_kit_api.StateOverTimeWidgetValueConfig{ - Hide: extutil.Ptr(true), + Value: new(action_kit_api.StateOverTimeWidgetValueConfig{ + Hide: new(true), }), }, }), - Status: extutil.Ptr(action_kit_api.MutatingEndpointReferenceWithCallInterval{ - CallInterval: extutil.Ptr("1s"), + Status: new(action_kit_api.MutatingEndpointReferenceWithCallInterval{ + CallInterval: new("1s"), }), } } @@ -165,7 +165,7 @@ func (m *ServiceStatusCheckAction) Describe() action_kit_api.ActionDescription { func (m *ServiceStatusCheckAction) Prepare(_ context.Context, state *ServiceStatusCheckState, request action_kit_api.PrepareActionRequestBody) (*action_kit_api.PrepareResult, error) { serviceId := request.Target.Attributes[attributeServiceId] if len(serviceId) == 0 { - return nil, extutil.Ptr(extension_kit.ToError("Target is missing the 'stackstate.service.id' attribute.", nil)) + return nil, new(extension_kit.ToError("Target is missing the 'stackstate.service.id' attribute.", nil)) } duration := request.Config["duration"].(float64) @@ -211,7 +211,7 @@ func MonitorStatusCheckStatus(ctx context.Context, state *ServiceStatusCheckStat if len(state.ExpectedStatus) > 0 { componentHealthState := component.State.HealthState if state.StatusCheckMode == statusCheckModeAllTheTime && componentHealthState != state.ExpectedStatus { - checkError = extutil.Ptr(action_kit_api.ActionKitError{ + checkError = new(action_kit_api.ActionKitError{ Title: fmt.Sprintf("Service '%s' (id %s) has status '%s' whereas '%s' is expected.", component.Name, state.ServiceId, @@ -224,7 +224,7 @@ func MonitorStatusCheckStatus(ctx context.Context, state *ServiceStatusCheckStat state.StatusCheckSuccess = true } if completed && !state.StatusCheckSuccess { - checkError = extutil.Ptr(action_kit_api.ActionKitError{ + checkError = new(action_kit_api.ActionKitError{ Title: fmt.Sprintf("Service '%s' (id %s) didn't have status '%s' at least once.", component.Name, state.ServiceId, @@ -247,13 +247,13 @@ func MonitorStatusCheckStatus(ctx context.Context, state *ServiceStatusCheckStat func loadServiceComponent(ctx context.Context, state *ServiceStatusCheckState, api GetSnapshotApi) (*Component, error) { res, stackStateResponse, err := api.GetServiceSnapshot(ctx, state.ServiceId) if err != nil { - return nil, extutil.Ptr(extension_kit.ToError(fmt.Sprintf("Failed to retrieve service states from StackState for Service ID %s. Full response: %v", state.ServiceId, res.String()), err)) + return nil, new(extension_kit.ToError(fmt.Sprintf("Failed to retrieve service states from StackState for Service ID %s. Full response: %v", state.ServiceId, res.String()), err)) } if !res.IsSuccess() { log.Err(err).Msgf("StackState API responded with unexpected status code %d while retrieving service states for Service ID %s. Full response: %v", res.StatusCode(), state.ServiceId, res.String()) serviceIdInt, parseErr := strconv.Atoi(state.ServiceId) if parseErr != nil { - return nil, extutil.Ptr(extension_kit.ToError(fmt.Sprintf("Failed to parse int %s", state.ServiceId), parseErr)) + return nil, new(extension_kit.ToError(fmt.Sprintf("Failed to parse int %s", state.ServiceId), parseErr)) } return &Component{ Id: serviceIdInt, @@ -284,8 +284,8 @@ func toMetric(service *Component, now time.Time) *action_kit_api.Metric { uiBaseUrl := config.Config.ApiBaseUrl[:(len(config.Config.ApiBaseUrl) - 3)] - return extutil.Ptr(action_kit_api.Metric{ - Name: extutil.Ptr("stackstate_service_status"), + return new(action_kit_api.Metric{ + Name: new("stackstate_service_status"), Metric: map[string]string{ attributeServiceId: strconv.Itoa(service.Id), attributeK8ServiceName: service.Name, diff --git a/extservice/service_check_test.go b/extservice/service_check_test.go index 4e22b2a..1a1af16 100644 --- a/extservice/service_check_test.go +++ b/extservice/service_check_test.go @@ -32,7 +32,7 @@ func TestServiceCheck(t *testing.T) { t.Run("Prepare extracts state", func(t *testing.T) { // Given request := extutil.JsonMangle(action_kit_api.PrepareActionRequestBody{ - Config: map[string]interface{}{ + Config: map[string]any{ "duration": 1000 * 60, "expectedStatus": "200", "statusCheckMode": "atLeastOnce", @@ -44,9 +44,9 @@ func TestServiceCheck(t *testing.T) { "k8s.cluster-name": {"test-cluster"}, }, }, - ExecutionContext: extutil.Ptr(action_kit_api.ExecutionContext{ - ExperimentUri: extutil.Ptr(""), - ExecutionUri: extutil.Ptr(""), + ExecutionContext: new(action_kit_api.ExecutionContext{ + ExperimentUri: new(""), + ExecutionUri: new(""), }), }) state := serviceCheckState(statusCheckModeAtLeastOnce) @@ -68,7 +68,7 @@ func TestServiceCheck(t *testing.T) { t.Run("Prepare extracts state without statusCheckMode", func(t *testing.T) { // Given request := extutil.JsonMangle(action_kit_api.PrepareActionRequestBody{ - Config: map[string]interface{}{ + Config: map[string]any{ "duration": 1000 * 60, "expectedStatus": "200", }, @@ -79,9 +79,9 @@ func TestServiceCheck(t *testing.T) { "k8s.cluster-name": {"test-cluster"}, }, }, - ExecutionContext: extutil.Ptr(action_kit_api.ExecutionContext{ - ExperimentUri: extutil.Ptr(""), - ExecutionUri: extutil.Ptr(""), + ExecutionContext: new(action_kit_api.ExecutionContext{ + ExperimentUri: new(""), + ExecutionUri: new(""), }), }) state := serviceCheckState(statusCheckModeAllTheTime) diff --git a/extservice/service_discovery.go b/extservice/service_discovery.go index 6b5db70..be12411 100644 --- a/extservice/service_discovery.go +++ b/extservice/service_discovery.go @@ -16,7 +16,6 @@ import ( "github.com/steadybit/discovery-kit/go/discovery_kit_commons" "github.com/steadybit/discovery-kit/go/discovery_kit_sdk" "github.com/steadybit/extension-kit/extbuild" - "github.com/steadybit/extension-kit/extutil" "github.com/steadybit/extension-stackstate/config" "strconv" "time" @@ -45,7 +44,7 @@ func (d *serviceDiscovery) Describe() discovery_kit_api.DiscoveryDescription { return discovery_kit_api.DiscoveryDescription{ Id: serviceTargetType, Discover: discovery_kit_api.DescribingEndpointReferenceWithCallInterval{ - CallInterval: extutil.Ptr("1m"), + CallInterval: new("1m"), }, } } @@ -54,9 +53,9 @@ func (d *serviceDiscovery) DescribeTarget() discovery_kit_api.TargetDescription return discovery_kit_api.TargetDescription{ Id: serviceTargetType, Label: discovery_kit_api.PluralLabel{One: "StackState Service", Other: "StackState Services"}, - Category: extutil.Ptr("monitoring"), + Category: new("monitoring"), Version: extbuild.GetSemverVersionStringOrUnknown(), - Icon: extutil.Ptr(serviceIcon), + Icon: new(serviceIcon), Table: discovery_kit_api.Table{ Columns: []discovery_kit_api.Column{ {Attribute: attributeK8ServiceName}, diff --git a/go.mod b/go.mod index a1f67f9..cc06245 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/steadybit/extension-stackstate -go 1.25.7 +go 1.26.2 require ( github.com/KimMachineGun/automemlimit v0.7.5