build: update build configuration to use internal metadata package and improve ldflags injection, fix defer resp.Body.Close() usage, replace os.Setenv with t.Setenv in tests, correct error message casing, and adjust Dockerfile and Makefile for cmd/reloader structure

This commit is contained in:
TheiLLeniumStudios
2025-12-28 08:47:57 +01:00
parent 841f6f3868
commit 0c40064872
10 changed files with 43 additions and 45 deletions
+1 -1
View File
@@ -46,7 +46,7 @@ func (c *httpClient) post(ctx context.Context, url string, body []byte) error {
if err != nil {
return fmt.Errorf("sending request: %w", err)
}
defer resp.Body.Close()
defer func() { _ = resp.Body.Close() }()
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
body, _ := io.ReadAll(resp.Body)
+9 -23
View File
@@ -3,7 +3,6 @@ package metadata
import (
"context"
"encoding/json"
"os"
"testing"
"github.com/go-logr/logr"
@@ -112,12 +111,8 @@ func TestNewReloaderOptions(t *testing.T) {
func TestMetaInfo_ToConfigMap(t *testing.T) {
// Set environment variables
os.Setenv(EnvReloaderNamespace, "reloader-ns")
os.Setenv(EnvReloaderDeploymentName, "reloader-deploy")
defer func() {
os.Unsetenv(EnvReloaderNamespace)
os.Unsetenv(EnvReloaderDeploymentName)
}()
t.Setenv(EnvReloaderNamespace, "reloader-ns")
t.Setenv(EnvReloaderDeploymentName, "reloader-deploy")
cfg := config.NewDefault()
metaInfo := NewMetaInfo(cfg)
@@ -164,8 +159,8 @@ func TestMetaInfo_ToConfigMap(t *testing.T) {
}
func TestPublisher_Publish_NoNamespace(t *testing.T) {
// Ensure RELOADER_NAMESPACE is not set
os.Unsetenv(EnvReloaderNamespace)
// Ensure RELOADER_NAMESPACE is not set (empty value)
t.Setenv(EnvReloaderNamespace, "")
scheme := runtime.NewScheme()
_ = corev1.AddToScheme(scheme)
@@ -182,12 +177,8 @@ func TestPublisher_Publish_NoNamespace(t *testing.T) {
func TestPublisher_Publish_CreateNew(t *testing.T) {
// Set environment variables
os.Setenv(EnvReloaderNamespace, "test-ns")
os.Setenv(EnvReloaderDeploymentName, "test-deploy")
defer func() {
os.Unsetenv(EnvReloaderNamespace)
os.Unsetenv(EnvReloaderDeploymentName)
}()
t.Setenv(EnvReloaderNamespace, "test-ns")
t.Setenv(EnvReloaderDeploymentName, "test-deploy")
scheme := runtime.NewScheme()
_ = corev1.AddToScheme(scheme)
@@ -215,12 +206,8 @@ func TestPublisher_Publish_CreateNew(t *testing.T) {
func TestPublisher_Publish_UpdateExisting(t *testing.T) {
// Set environment variables
os.Setenv(EnvReloaderNamespace, "test-ns")
os.Setenv(EnvReloaderDeploymentName, "test-deploy")
defer func() {
os.Unsetenv(EnvReloaderNamespace)
os.Unsetenv(EnvReloaderDeploymentName)
}()
t.Setenv(EnvReloaderNamespace, "test-ns")
t.Setenv(EnvReloaderDeploymentName, "test-deploy")
scheme := runtime.NewScheme()
_ = corev1.AddToScheme(scheme)
@@ -273,8 +260,7 @@ func TestPublisher_Publish_UpdateExisting(t *testing.T) {
func TestPublishMetaInfoConfigMap(t *testing.T) {
// Set environment variables
os.Setenv(EnvReloaderNamespace, "test-ns")
defer os.Unsetenv(EnvReloaderNamespace)
t.Setenv(EnvReloaderNamespace, "test-ns")
scheme := runtime.NewScheme()
_ = corev1.AddToScheme(scheme)
+4 -7
View File
@@ -1,7 +1,6 @@
package metrics
import (
"os"
"testing"
"github.com/prometheus/client_golang/prometheus"
@@ -97,8 +96,7 @@ func TestRecordReload_MultipleIncrements(t *testing.T) {
func TestRecordReload_WithNamespaceTracking(t *testing.T) {
// Enable namespace tracking
os.Setenv("METRICS_COUNT_BY_NAMESPACE", "enabled")
defer os.Unsetenv("METRICS_COUNT_BY_NAMESPACE")
t.Setenv("METRICS_COUNT_BY_NAMESPACE", "enabled")
collectors := NewCollectors()
collectors.RecordReload(true, "kube-system")
@@ -117,8 +115,8 @@ func TestRecordReload_WithNamespaceTracking(t *testing.T) {
}
func TestRecordReload_WithoutNamespaceTracking(t *testing.T) {
// Ensure namespace tracking is disabled
os.Unsetenv("METRICS_COUNT_BY_NAMESPACE")
// Ensure namespace tracking is disabled (t.Setenv to empty resets it)
t.Setenv("METRICS_COUNT_BY_NAMESPACE", "")
collectors := NewCollectors()
collectors.RecordReload(true, "kube-system")
@@ -139,8 +137,7 @@ func TestNilCollectors_NoPanic(t *testing.T) {
}
func TestRecordReload_DifferentNamespaces(t *testing.T) {
os.Setenv("METRICS_COUNT_BY_NAMESPACE", "enabled")
defer os.Unsetenv("METRICS_COUNT_BY_NAMESPACE")
t.Setenv("METRICS_COUNT_BY_NAMESPACE", "enabled")
collectors := NewCollectors()
collectors.RecordReload(true, "namespace-a")
+1 -1
View File
@@ -73,7 +73,7 @@ func (c *Client) Send(ctx context.Context, payload Payload) error {
if err != nil {
return fmt.Errorf("sending request: %w", err)
}
defer resp.Body.Close()
defer func() { _ = resp.Body.Close() }()
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
return fmt.Errorf("webhook returned status %d", resp.StatusCode)
+1 -1
View File
@@ -74,7 +74,7 @@ func TestSend_MarshalPayload(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
body, _ := io.ReadAll(r.Body)
json.Unmarshal(body, &receivedPayload)
_ = json.Unmarshal(body, &receivedPayload)
w.WriteHeader(http.StatusOK)
}))
defer server.Close()
+1 -1
View File
@@ -73,7 +73,7 @@ func (r *Registry) FromObject(obj client.Object) (WorkloadAccessor, error) {
return NewCronJobWorkload(o), nil
case *argorolloutv1alpha1.Rollout:
if !r.argoRolloutsEnabled {
return nil, fmt.Errorf("Argo Rollouts support is not enabled")
return nil, fmt.Errorf("argo Rollouts support is not enabled")
}
return NewRolloutWorkload(o), nil
default: