diff --git a/Makefile b/Makefile
index eff4be3f3..5feba911e 100644
--- a/Makefile
+++ b/Makefile
@@ -58,7 +58,7 @@ manager: generate fmt vet
go build $(GO_STATIC_FLAGS) -o $(BUILD_DIR)/bin/manager main.go
KUBEBUILDER_ASSETS?="$(shell $(ENVTEST) --arch=$(ENVTEST_ARCH) use -i $(ENVTEST_KUBERNETES_VERSION) --bin-dir=$(ENVTEST_ASSETS_DIR) -p path)"
-test: install-envtest test-api ## Run all tests
+test: fix install-envtest test-api ## Run all tests
HTTPS_PROXY="" HTTP_PROXY="" \
KUBEBUILDER_ASSETS=$(KUBEBUILDER_ASSETS) \
GIT_CONFIG_GLOBAL=/dev/null \
@@ -115,6 +115,10 @@ fmt: ## Run go fmt against code
go fmt ./...
cd api; go fmt ./...
+fix: ## Run go fix against code
+ go fix ./...
+ cd api ; go fix ./...
+
vet: ## Run go vet against code
go vet ./...
cd api; go vet ./...
@@ -204,7 +208,7 @@ fuzz-smoketest: fuzz-build
bash -c "/runner.sh"
# Run fuzz tests for the duration set in FUZZ_TIME.
-fuzz-native:
+fuzz-native:
KUBEBUILDER_ASSETS=$(KUBEBUILDER_ASSETS) \
FUZZ_TIME=$(FUZZ_TIME) \
./tests/fuzz/native_go_run.sh
diff --git a/internal/bucket/azure/blob.go b/internal/bucket/azure/blob.go
index da861abec..4bbb9584d 100644
--- a/internal/bucket/azure/blob.go
+++ b/internal/bucket/azure/blob.go
@@ -30,7 +30,6 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud"
- "github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror"
@@ -259,7 +258,7 @@ func ValidateSecret(secret *corev1.Secret) error {
// exists, or returns a (client) error.
func (c *BlobClient) BucketExists(ctx context.Context, bucketName string) (bool, error) {
items := c.Client.NewListBlobsFlatPager(bucketName, &azblob.ListBlobsFlatOptions{
- MaxResults: to.Ptr(int32(1)),
+ MaxResults: new(int32(1)),
})
// We call next page only once since we just want to see if we get an error
if _, err := items.NextPage(ctx); err != nil {
diff --git a/internal/bucket/gcp/gcp_test.go b/internal/bucket/gcp/gcp_test.go
index 6c2ef7699..0832fe751 100644
--- a/internal/bucket/gcp/gcp_test.go
+++ b/internal/bucket/gcp/gcp_test.go
@@ -35,7 +35,6 @@ import (
"cloud.google.com/go/compute/metadata"
gcpstorage "cloud.google.com/go/storage"
. "github.com/onsi/gomega"
- "google.golang.org/api/googleapi"
"google.golang.org/api/option"
raw "google.golang.org/api/storage/v1"
corev1 "k8s.io/api/core/v1"
@@ -61,40 +60,32 @@ var (
close func()
err error
secret = corev1.Secret{
- ObjectMeta: v1.ObjectMeta{
- Name: "gcp-secret",
- Namespace: "default",
- },
+ Name: "gcp-secret",
+ Namespace: "default",
Data: map[string][]byte{
"serviceaccount": []byte(serviceAccountJSON),
},
Type: "Opaque",
}
badSecret = corev1.Secret{
- ObjectMeta: v1.ObjectMeta{
- Name: "gcp-secret",
- Namespace: "default",
- },
+ Name: "gcp-secret",
+ Namespace: "default",
Data: map[string][]byte{
"username": []byte("test-user"),
},
Type: "Opaque",
}
malformedSecret = corev1.Secret{
- ObjectMeta: v1.ObjectMeta{
- Name: "gcp-secret",
- Namespace: "default",
- },
+ Name: "gcp-secret",
+ Namespace: "default",
Data: map[string][]byte{
"serviceaccount": []byte("not-json"),
},
Type: "Opaque",
}
externalAccountSecret = corev1.Secret{
- ObjectMeta: v1.ObjectMeta{
- Name: "gcp-secret",
- Namespace: "default",
- },
+ Name: "gcp-secret",
+ Namespace: "default",
Data: map[string][]byte{
"serviceaccount": []byte(externalAccountJSON),
},
@@ -134,10 +125,8 @@ const externalAccountJSON = `{
// createTestBucket creates a test bucket for testing purposes
func createTestBucket() *sourcev1.Bucket {
return &sourcev1.Bucket{
- ObjectMeta: v1.ObjectMeta{
- Name: "test-bucket",
- Namespace: "default",
- },
+ Name: "test-bucket",
+ Namespace: "default",
Spec: sourcev1.BucketSpec{
BucketName: bucketName,
Endpoint: "storage.googleapis.com",
@@ -325,7 +314,6 @@ func TestProxy(t *testing.T) {
}
for _, tt := range tests {
- tt := tt
t.Run(tt.name, func(t *testing.T) {
opts := []Option{WithProxyURL(tt.proxyURL)}
opts = append(opts, func(o *options) {
@@ -567,7 +555,7 @@ func getBucket() *raw.Bucket {
},
Condition: &raw.BucketLifecycleRuleCondition{
Age: &age,
- IsLive: googleapi.Bool(true),
+ IsLive: new(true),
CreatedBefore: "2021-01-02",
MatchesStorageClass: matchClasses,
NumNewerVersions: 3,
diff --git a/internal/bucket/minio/minio_test.go b/internal/bucket/minio/minio_test.go
index 8d5878f49..039c7dcab 100644
--- a/internal/bucket/minio/minio_test.go
+++ b/internal/bucket/minio/minio_test.go
@@ -38,7 +38,6 @@ import (
"github.com/minio/minio-go/v7/pkg/credentials"
. "github.com/onsi/gomega"
corev1 "k8s.io/api/core/v1"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/fluxcd/pkg/apis/meta"
"github.com/fluxcd/pkg/sourceignore"
@@ -80,10 +79,8 @@ var (
bucketName = "test-bucket-minio" + uuid.New().String()
prefix = ""
secret = corev1.Secret{
- ObjectMeta: v1.ObjectMeta{
- Name: "minio-secret",
- Namespace: "default",
- },
+ Name: "minio-secret",
+ Namespace: "default",
Data: map[string][]byte{
"accesskey": []byte(testAccessKey),
"secretkey": []byte(testSecretKey),
@@ -91,18 +88,14 @@ var (
Type: "Opaque",
}
emptySecret = corev1.Secret{
- ObjectMeta: v1.ObjectMeta{
- Name: "minio-secret",
- Namespace: "default",
- },
- Data: map[string][]byte{},
- Type: "Opaque",
+ Name: "minio-secret",
+ Namespace: "default",
+ Data: map[string][]byte{},
+ Type: "Opaque",
}
bucket = sourcev1.Bucket{
- ObjectMeta: v1.ObjectMeta{
- Name: "minio-test-bucket",
- Namespace: "default",
- },
+ Name: "minio-test-bucket",
+ Namespace: "default",
Spec: sourcev1.BucketSpec{
BucketName: bucketName,
Provider: "generic",
@@ -112,10 +105,8 @@ var (
},
}
bucketAwsProvider = sourcev1.Bucket{
- ObjectMeta: v1.ObjectMeta{
- Name: "minio-test-bucket",
- Namespace: "default",
- },
+ Name: "minio-test-bucket",
+ Namespace: "default",
Spec: sourcev1.BucketSpec{
BucketName: bucketName,
Provider: "aws",
@@ -193,10 +184,8 @@ func TestNewClientEmptySecret(t *testing.T) {
func TestNewClientAWSProvider(t *testing.T) {
t.Run("with secret", func(t *testing.T) {
validSecret := corev1.Secret{
- ObjectMeta: v1.ObjectMeta{
- Name: "valid-secret",
- Namespace: "default",
- },
+ Name: "valid-secret",
+ Namespace: "default",
Data: map[string][]byte{
"accesskey": []byte(testAccessKey),
"secretkey": []byte(testSecretKey),
@@ -716,7 +705,7 @@ func TestValidateSTSSecret(t *testing.T) {
{
name: "empty ldap secret",
provider: "ldap",
- secret: &corev1.Secret{ObjectMeta: v1.ObjectMeta{Name: "ldap-secret"}},
+ secret: &corev1.Secret{Name: "ldap-secret"},
err: "invalid 'ldap-secret' secret data for 'ldap' STS provider: required fields username, password",
},
{
diff --git a/internal/cache/cache.go b/internal/cache/cache.go
index 6f8ee8608..beb143396 100644
--- a/internal/cache/cache.go
+++ b/internal/cache/cache.go
@@ -27,7 +27,7 @@ type Cache struct {
// Item is an item stored in the cache.
type Item struct {
// Object is the item's value.
- Object interface{}
+ Object any
// Expiration is the item's expiration time.
Expiration int64
}
@@ -50,7 +50,7 @@ func (c *cache) ItemCount() int {
return n
}
-func (c *cache) set(key string, value interface{}, expiration time.Duration) {
+func (c *cache) set(key string, value any, expiration time.Duration) {
var e int64
if expiration > 0 {
e = time.Now().Add(expiration).UnixNano()
@@ -65,7 +65,7 @@ func (c *cache) set(key string, value interface{}, expiration time.Duration) {
// Set adds an item to the cache, replacing any existing item.
// If expiration is zero, the item never expires.
// If the cache is full, Set will return an error.
-func (c *cache) Set(key string, value interface{}, expiration time.Duration) error {
+func (c *cache) Set(key string, value any, expiration time.Duration) error {
c.mu.Lock()
_, found := c.Items[key]
if found {
@@ -87,7 +87,7 @@ func (c *cache) Set(key string, value interface{}, expiration time.Duration) err
// Add an item to the cache, existing items will not be overwritten.
// To overwrite existing items, use Set.
// If the cache is full, Add will return an error.
-func (c *cache) Add(key string, value interface{}, expiration time.Duration) error {
+func (c *cache) Add(key string, value any, expiration time.Duration) error {
c.mu.Lock()
_, found := c.Items[key]
if found {
@@ -107,7 +107,7 @@ func (c *cache) Add(key string, value interface{}, expiration time.Duration) err
// Get an item from the cache. Returns the item or nil, and a bool indicating
// whether the key was found.
-func (c *cache) Get(key string) (interface{}, bool) {
+func (c *cache) Get(key string) (any, bool) {
c.mu.RLock()
item, found := c.Items[key]
if !found {
diff --git a/internal/controller/artifact_matchers_test.go b/internal/controller/artifact_matchers_test.go
index af716e086..36a688e68 100644
--- a/internal/controller/artifact_matchers_test.go
+++ b/internal/controller/artifact_matchers_test.go
@@ -36,7 +36,7 @@ type matchArtifact struct {
expected *meta.Artifact
}
-func (m matchArtifact) Match(actual interface{}) (success bool, err error) {
+func (m matchArtifact) Match(actual any) (success bool, err error) {
actualArtifact, ok := actual.(*meta.Artifact)
if !ok {
return false, fmt.Errorf("actual should be a pointer to an Artifact")
@@ -59,10 +59,10 @@ func (m matchArtifact) Match(actual interface{}) (success bool, err error) {
return ok, err
}
-func (m matchArtifact) FailureMessage(actual interface{}) (message string) {
+func (m matchArtifact) FailureMessage(actual any) (message string) {
return fmt.Sprintf("expected\n\t%#v\nto match\n\t%#v\n", actual, m.expected)
}
-func (m matchArtifact) NegatedFailureMessage(actual interface{}) (message string) {
+func (m matchArtifact) NegatedFailureMessage(actual any) (message string) {
return fmt.Sprintf("expected\n\t%#v\nto not match\n\t%#v\n", actual, m.expected)
}
diff --git a/internal/controller/bucket_controller.go b/internal/controller/bucket_controller.go
index 8406a1c08..a90e5608c 100644
--- a/internal/controller/bucket_controller.go
+++ b/internal/controller/bucket_controller.go
@@ -447,12 +447,10 @@ func (r *BucketReconciler) reconcileSource(ctx context.Context, sp *patch.Serial
provider, err := r.createBucketProvider(ctx, obj, creds)
if err != nil {
- var stallingErr *serror.Stalling
- var genericErr *serror.Generic
- if errors.As(err, &stallingErr) {
+ if stallingErr, ok := errors.AsType[*serror.Stalling](err); ok {
conditions.MarkTrue(obj, sourcev1.FetchFailedCondition, stallingErr.Reason, "%s", stallingErr)
return sreconcile.ResultEmpty, stallingErr
- } else if errors.As(err, &genericErr) {
+ } else if genericErr, ok := errors.AsType[*serror.Generic](err); ok {
conditions.MarkTrue(obj, sourcev1.FetchFailedCondition, genericErr.Reason, "%s", genericErr)
return sreconcile.ResultEmpty, genericErr
} else {
diff --git a/internal/controller/bucket_controller_fetch_test.go b/internal/controller/bucket_controller_fetch_test.go
index 9f9c31a12..2c21bb73f 100644
--- a/internal/controller/bucket_controller_fetch_test.go
+++ b/internal/controller/bucket_controller_fetch_test.go
@@ -319,7 +319,7 @@ func Test_fetchFiles(t *testing.T) {
tmp := t.TempDir()
client := mockBucketClient{bucketName: bucketName}
- for i := 0; i < 2*maxConcurrentBucketFetches; i++ {
+ for i := range 2 * maxConcurrentBucketFetches {
f := fmt.Sprintf("file-%d", i)
client.addObject(f, mockBucketObject{etag: f, data: f})
}
diff --git a/internal/controller/bucket_controller_test.go b/internal/controller/bucket_controller_test.go
index 6ec912dfe..6fbd50d2b 100644
--- a/internal/controller/bucket_controller_test.go
+++ b/internal/controller/bucket_controller_test.go
@@ -62,7 +62,7 @@ func TestBucketReconciler_deleteBeforeFinalizer(t *testing.T) {
namespaceName := "bucket-" + randStringRunes(5)
namespace := &corev1.Namespace{
- ObjectMeta: metav1.ObjectMeta{Name: namespaceName},
+ Name: namespaceName,
}
g.Expect(k8sClient.Create(ctx, namespace)).ToNot(HaveOccurred())
t.Cleanup(func() {
@@ -113,10 +113,8 @@ func TestBucketReconciler_Reconcile(t *testing.T) {
g.Expect(err).NotTo(HaveOccurred())
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "bucket-reconcile-",
- Namespace: "default",
- },
+ GenerateName: "bucket-reconcile-",
+ Namespace: "default",
Data: map[string][]byte{
"accesskey": []byte("key"),
"secretkey": []byte("secret"),
@@ -126,10 +124,8 @@ func TestBucketReconciler_Reconcile(t *testing.T) {
defer testEnv.Delete(ctx, secret)
origObj := &sourcev1.Bucket{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "bucket-reconcile-",
- Namespace: "default",
- },
+ GenerateName: "bucket-reconcile-",
+ Namespace: "default",
Spec: sourcev1.BucketSpec{
Provider: "generic",
BucketName: s3Server.BucketName,
@@ -234,7 +230,7 @@ func TestBucketReconciler_reconcileStorage(t *testing.T) {
Revision: "d",
Digest: "sha256:18ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4",
URL: testStorage.Hostname + "/reconcile-storage/d.txt",
- Size: int64p(int64(len("d"))),
+ Size: new(int64(len("d"))),
},
assertPaths: []string{
"/reconcile-storage/d.txt",
@@ -363,7 +359,7 @@ func TestBucketReconciler_reconcileStorage(t *testing.T) {
Revision: "f",
Digest: "sha256:3b9c358f36f0a31b6ad3e14f309c7cf198ac9246e8316f9ce543d5b19ac02b80",
URL: testStorage.Hostname + "/reconcile-storage/hostname.txt",
- Size: int64p(int64(len("file"))),
+ Size: new(int64(len("file"))),
},
assertConditions: []metav1.Condition{
*conditions.TrueCondition(meta.ReadyCondition, "foo", "bar"),
@@ -389,10 +385,8 @@ func TestBucketReconciler_reconcileStorage(t *testing.T) {
}
obj := &sourcev1.Bucket{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-",
- Generation: 1,
- },
+ GenerateName: "test-",
+ Generation: 1,
}
if tt.beforeFunc != nil {
g.Expect(tt.beforeFunc(obj, testStorage)).To(Succeed())
@@ -493,9 +487,7 @@ func TestBucketReconciler_reconcileSource_generic(t *testing.T) {
name: "Observes invalid secretRef",
bucketName: "dummy",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "dummy",
- },
+ Name: "dummy",
},
beforeFunc: func(obj *sourcev1.Bucket) {
obj.Spec.SecretRef = &meta.LocalObjectReference{
@@ -534,9 +526,7 @@ func TestBucketReconciler_reconcileSource_generic(t *testing.T) {
name: "Observes invalid certSecretRef",
bucketName: "dummy",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "dummy",
- },
+ Name: "dummy",
},
beforeFunc: func(obj *sourcev1.Bucket) {
obj.Spec.CertSecretRef = &meta.LocalObjectReference{
@@ -575,9 +565,7 @@ func TestBucketReconciler_reconcileSource_generic(t *testing.T) {
name: "Observes invalid proxySecretRef",
bucketName: "dummy",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "dummy",
- },
+ Name: "dummy",
Data: map[string][]byte{},
},
beforeFunc: func(obj *sourcev1.Bucket) {
@@ -617,9 +605,7 @@ func TestBucketReconciler_reconcileSource_generic(t *testing.T) {
name: "Observes invalid sts.secretRef",
bucketName: "dummy",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "dummy",
- },
+ Name: "dummy",
},
beforeFunc: func(obj *sourcev1.Bucket) {
obj.Spec.Provider = "generic"
@@ -661,9 +647,7 @@ func TestBucketReconciler_reconcileSource_generic(t *testing.T) {
name: "Observes invalid sts.certSecretRef",
bucketName: "dummy",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "dummy",
- },
+ Name: "dummy",
},
beforeFunc: func(obj *sourcev1.Bucket) {
obj.Spec.Provider = "generic"
@@ -926,10 +910,8 @@ func TestBucketReconciler_reconcileSource_generic(t *testing.T) {
tmpDir := t.TempDir()
obj := &sourcev1.Bucket{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-bucket-",
- Generation: 1,
- },
+ GenerateName: "test-bucket-",
+ Generation: 1,
Spec: sourcev1.BucketSpec{
Timeout: &metav1.Duration{Duration: timeout},
},
@@ -1026,9 +1008,7 @@ func TestBucketReconciler_reconcileSource_gcs(t *testing.T) {
},
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "dummy",
- },
+ Name: "dummy",
Data: map[string][]byte{
"accesskey": []byte("key"),
"secretkey": []byte("secret"),
@@ -1072,9 +1052,7 @@ func TestBucketReconciler_reconcileSource_gcs(t *testing.T) {
name: "Observes invalid secretRef",
bucketName: "dummy",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "dummy",
- },
+ Name: "dummy",
},
beforeFunc: func(obj *sourcev1.Bucket) {
obj.Spec.SecretRef = &meta.LocalObjectReference{
@@ -1096,9 +1074,7 @@ func TestBucketReconciler_reconcileSource_gcs(t *testing.T) {
name: "Observes unsupported credential type in secretRef",
bucketName: "dummy",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "dummy",
- },
+ Name: "dummy",
Data: map[string][]byte{
"serviceaccount": []byte(gcsExternalAccountConfig),
},
@@ -1143,9 +1119,7 @@ func TestBucketReconciler_reconcileSource_gcs(t *testing.T) {
name: "Observes invalid proxySecretRef",
bucketName: "dummy",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "dummy",
- },
+ Name: "dummy",
},
beforeFunc: func(obj *sourcev1.Bucket) {
obj.Spec.ProxySecretRef = &meta.LocalObjectReference{
@@ -1355,9 +1329,7 @@ func TestBucketReconciler_reconcileSource_gcs(t *testing.T) {
},
},
serviceAccount: &corev1.ServiceAccount{
- ObjectMeta: metav1.ObjectMeta{
- Name: "test-sa",
- },
+ Name: "test-sa",
},
beforeFunc: func(obj *sourcev1.Bucket) {
obj.Spec.ServiceAccountName = "test-sa"
@@ -1423,10 +1395,8 @@ func TestBucketReconciler_reconcileSource_gcs(t *testing.T) {
// Test bucket object.
obj := &sourcev1.Bucket{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-bucket-",
- Generation: 1,
- },
+ GenerateName: "test-bucket-",
+ Generation: 1,
Spec: sourcev1.BucketSpec{
BucketName: tt.bucketName,
Timeout: &metav1.Duration{Duration: timeout},
@@ -1617,10 +1587,8 @@ func TestBucketReconciler_reconcileArtifact(t *testing.T) {
}
obj := &sourcev1.Bucket{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-bucket-",
- Generation: 1,
- },
+ GenerateName: "test-bucket-",
+ Generation: 1,
Spec: sourcev1.BucketSpec{
Timeout: &metav1.Duration{Duration: timeout},
},
@@ -1711,14 +1679,10 @@ func TestBucketReconciler_statusConditions(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.Bucket{
- TypeMeta: metav1.TypeMeta{
- APIVersion: sourcev1.GroupVersion.String(),
- Kind: sourcev1.BucketKind,
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "test-bucket",
- Namespace: "foo",
- },
+ APIVersion: sourcev1.GroupVersion.String(),
+ Kind: sourcev1.BucketKind,
+ Name: "test-bucket",
+ Namespace: "foo",
}
c := fakeclient.NewClientBuilder().
@@ -2014,10 +1978,8 @@ func TestBucketReconciler_APIServerValidation_STS(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.Bucket{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "bucket-reconcile-",
- Namespace: "default",
- },
+ GenerateName: "bucket-reconcile-",
+ Namespace: "default",
Spec: sourcev1.BucketSpec{
Provider: tt.bucketProvider,
BucketName: "test",
diff --git a/internal/controller/gitrepository_controller.go b/internal/controller/gitrepository_controller.go
index bfc44d199..eaefa27f0 100644
--- a/internal/controller/gitrepository_controller.go
+++ b/internal/controller/gitrepository_controller.go
@@ -693,8 +693,7 @@ func (r *GitRepositoryReconciler) getAuthOpts(ctx context.Context, obj *sourcev1
// Check if SSH identity key is encrypted but no password was provided.
if opts.Transport == git.SSH && len(opts.Identity) > 0 && opts.Password == "" {
_, err := ssh.ParseRawPrivateKey(opts.Identity)
- var missingErr *ssh.PassphraseMissingError
- if errors.As(err, &missingErr) {
+ if _, ok := errors.AsType[*ssh.PassphraseMissingError](err); ok {
e := serror.NewGeneric(
fmt.Errorf("SSH identity key is encrypted but no 'password' field was provided in the secret '%s/%s'",
obj.GetNamespace(), obj.Spec.SecretRef.Name),
diff --git a/internal/controller/gitrepository_controller_test.go b/internal/controller/gitrepository_controller_test.go
index 38aadca4d..93d44c50f 100644
--- a/internal/controller/gitrepository_controller_test.go
+++ b/internal/controller/gitrepository_controller_test.go
@@ -39,7 +39,6 @@ import (
sshtestdata "golang.org/x/crypto/ssh/testdata"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/utils/ptr"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
fakeclient "sigs.k8s.io/controller-runtime/pkg/client/fake"
@@ -208,7 +207,7 @@ func TestGitRepositoryReconciler_deleteBeforeFinalizer(t *testing.T) {
namespaceName := "gitrepo-" + randStringRunes(5)
namespace := &corev1.Namespace{
- ObjectMeta: metav1.ObjectMeta{Name: namespaceName},
+ Name: namespaceName,
}
g.Expect(k8sClient.Create(ctx, namespace)).ToNot(HaveOccurred())
t.Cleanup(func() {
@@ -253,10 +252,8 @@ func TestGitRepositoryReconciler_Reconcile(t *testing.T) {
g.Expect(err).NotTo(HaveOccurred())
origObj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "gitrepository-reconcile-",
- Namespace: "default",
- },
+ GenerateName: "gitrepository-reconcile-",
+ Namespace: "default",
Spec: sourcev1.GitRepositorySpec{
Interval: metav1.Duration{Duration: interval},
URL: server.HTTPAddress() + repoPath,
@@ -326,10 +323,8 @@ func TestGitRepositoryReconciler_reconcileSource_emptyRepository(t *testing.T) {
defer server.StopHTTP()
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "empty-",
- Generation: 1,
- },
+ GenerateName: "empty-",
+ Generation: 1,
Spec: sourcev1.GitRepositorySpec{
Interval: metav1.Duration{Duration: interval},
Timeout: &metav1.Duration{Duration: timeout},
@@ -405,9 +400,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
password: "1234",
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "basic-auth",
- },
+ Name: "basic-auth",
Data: map[string][]byte{
"username": []byte("git"),
"password": []byte("1234"),
@@ -431,9 +424,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "mtls-certs",
- },
+ Name: "mtls-certs",
Data: map[string][]byte{
"ca.crt": tlsCA,
"tls.crt": clientPublicKey,
@@ -458,9 +449,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "invalid-mtls-certs",
- },
+ Name: "invalid-mtls-certs",
Data: map[string][]byte{
"ca.crt": tlsCA,
"tls.crt": clientPublicKey,
@@ -488,9 +477,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- },
+ Name: "ca-file",
Data: map[string][]byte{
"caFile": tlsCA,
},
@@ -513,9 +500,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- },
+ Name: "ca-file",
Data: map[string][]byte{
"ca.crt": tlsCA,
"caFile": []byte("invalid"),
@@ -539,9 +524,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "invalid-ca",
- },
+ Name: "invalid-ca",
Data: map[string][]byte{
"caFile": []byte("invalid"),
},
@@ -572,7 +555,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{Name: "gh-app-no-ca"},
+ Name: "gh-app-no-ca",
Data: map[string][]byte{
githubapp.KeyAppID: []byte("123"),
githubapp.KeyAppInstallationID: []byte("456"),
@@ -607,7 +590,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
password: "some-enterprise-token",
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{Name: "gh-app-ca"},
+ Name: "gh-app-ca",
Data: map[string][]byte{
githubapp.KeyAppID: []byte("123"),
githubapp.KeyAppInstallationID: []byte("456"),
@@ -652,9 +635,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
username: "git",
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "private-key",
- },
+ Name: "private-key",
Data: map[string][]byte{
"username": []byte("git"),
"identity": sshtestdata.PEMBytes["rsa"],
@@ -676,9 +657,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
username: "git",
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "private-key",
- },
+ Name: "private-key",
Data: map[string][]byte{
"username": []byte("git"),
"identity": sshtestdata.PEMEncryptedKeys[2].PEMBytes,
@@ -720,9 +699,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
password: "1234",
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "basic-auth",
- },
+ Name: "basic-auth",
Data: map[string][]byte{
"username": []byte("git"),
"password": []byte("1234"),
@@ -768,9 +745,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
name: "empty provider with github app data in secret makes FetchFailed=True",
protocol: "http",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "github-app-secret",
- },
+ Name: "github-app-secret",
Data: map[string][]byte{
githubapp.KeyAppID: []byte("1111"),
},
@@ -794,9 +769,7 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
name: "github provider without github app data in secret makes FetchFailed=True",
protocol: "http",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "github-basic-auth",
- },
+ Name: "github-basic-auth",
Data: map[string][]byte{
"username": []byte("abc"),
"password": []byte("1234"),
@@ -823,10 +796,8 @@ func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "auth-strategy-",
- Generation: 1,
- },
+ GenerateName: "auth-strategy-",
+ Generation: 1,
Spec: sourcev1.GitRepositorySpec{
Interval: metav1.Duration{Duration: interval},
Timeout: &metav1.Duration{Duration: timeout},
@@ -972,9 +943,7 @@ func TestGitRepositoryReconciler_getAuthOpts_provider(t *testing.T) {
name: "github provider with github app data in secret",
url: "https://example.com/org/repo",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "githubAppSecret",
- },
+ Name: "githubAppSecret",
Data: map[string][]byte{
githubapp.KeyAppID: []byte("123"),
githubapp.KeyAppInstallationID: []byte("456"),
@@ -993,9 +962,7 @@ func TestGitRepositoryReconciler_getAuthOpts_provider(t *testing.T) {
name: "generic provider with github app data in secret",
url: "https://example.com/org/repo",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "githubAppSecret",
- },
+ Name: "githubAppSecret",
Data: map[string][]byte{
githubapp.KeyAppID: []byte("123"),
},
@@ -1012,9 +979,7 @@ func TestGitRepositoryReconciler_getAuthOpts_provider(t *testing.T) {
name: "generic provider with github app client id in secret",
url: "https://example.com/org/repo",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "githubAppSecret",
- },
+ Name: "githubAppSecret",
Data: map[string][]byte{
githubapp.KeyAppClientID: []byte("Iv23liXXXXXXX"),
},
@@ -1031,9 +996,7 @@ func TestGitRepositoryReconciler_getAuthOpts_provider(t *testing.T) {
name: "github provider with basic auth secret",
url: "https://github.com/org/repo.git",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "basic-auth-secret",
- },
+ Name: "basic-auth-secret",
Data: map[string][]byte{
"username": []byte("abc"),
"password": []byte("1234"),
@@ -1256,7 +1219,7 @@ func TestGitRepositoryReconciler_reconcileSource_checkoutStrategy(t *testing.T)
},
beforeFunc: func(obj *sourcev1.GitRepository, latestRev string) {
// Set new ignore value.
- obj.Spec.Ignore = ptr.To("foo")
+ obj.Spec.Ignore = new("foo")
// Add existing artifact on the object and storage.
obj.Status = sourcev1.GitRepositoryStatus{
Artifact: &meta.Artifact{
@@ -1313,10 +1276,8 @@ func TestGitRepositoryReconciler_reconcileSource_checkoutStrategy(t *testing.T)
g := NewWithT(t)
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "checkout-strategy-",
- Generation: 1,
- },
+ GenerateName: "checkout-strategy-",
+ Generation: 1,
Spec: sourcev1.GitRepositorySpec{
Interval: metav1.Duration{Duration: interval},
Timeout: &metav1.Duration{Duration: timeout},
@@ -1430,7 +1391,7 @@ func TestGitRepositoryReconciler_reconcileArtifact(t *testing.T) {
dir: "testdata/git/repository",
beforeFunc: func(obj *sourcev1.GitRepository) {
obj.Spec.Interval = metav1.Duration{Duration: interval}
- obj.Spec.Ignore = ptr.To("!**.txt\n")
+ obj.Spec.Ignore = new("!**.txt\n")
},
afterFunc: func(t *WithT, obj *sourcev1.GitRepository) {
t.Expect(obj.GetArtifact()).ToNot(BeNil())
@@ -1513,11 +1474,9 @@ func TestGitRepositoryReconciler_reconcileArtifact(t *testing.T) {
}
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "reconcile-artifact-",
- Generation: 1,
- },
- Status: sourcev1.GitRepositoryStatus{},
+ GenerateName: "reconcile-artifact-",
+ Generation: 1,
+ Status: sourcev1.GitRepositoryStatus{},
}
if tt.beforeFunc != nil {
@@ -1629,9 +1588,7 @@ func TestGitRepositoryReconciler_reconcileInclude(t *testing.T) {
var depObjs []client.Object
for _, d := range tt.dependencies {
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: d.name,
- },
+ Name: d.name,
Status: sourcev1.GitRepositoryStatus{
Conditions: d.conditions,
},
@@ -1664,9 +1621,7 @@ func TestGitRepositoryReconciler_reconcileInclude(t *testing.T) {
}
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "reconcile-include",
- },
+ Name: "reconcile-include",
Spec: sourcev1.GitRepositorySpec{
Interval: metav1.Duration{Duration: interval},
},
@@ -1764,7 +1719,7 @@ func TestGitRepositoryReconciler_reconcileStorage(t *testing.T) {
Revision: "d",
Digest: "sha256:18ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4",
URL: testStorage.Hostname + "/reconcile-storage/d.txt",
- Size: int64p(int64(len("d"))),
+ Size: new(int64(len("d"))),
},
assertPaths: []string{
"/reconcile-storage/d.txt",
@@ -1893,7 +1848,7 @@ func TestGitRepositoryReconciler_reconcileStorage(t *testing.T) {
Revision: "f",
Digest: "sha256:3b9c358f36f0a31b6ad3e14f309c7cf198ac9246e8316f9ce543d5b19ac02b80",
URL: testStorage.Hostname + "/reconcile-storage/hostname.txt",
- Size: int64p(int64(len("file"))),
+ Size: new(int64(len("file"))),
},
assertConditions: []metav1.Condition{
*conditions.TrueCondition(meta.ReadyCondition, "foo", "bar"),
@@ -1919,10 +1874,8 @@ func TestGitRepositoryReconciler_reconcileStorage(t *testing.T) {
}
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-",
- Generation: 1,
- },
+ GenerateName: "test-",
+ Generation: 1,
}
if tt.beforeFunc != nil {
g.Expect(tt.beforeFunc(obj, testStorage)).To(Succeed())
@@ -1972,12 +1925,10 @@ func TestGitRepositoryReconciler_reconcileDelete(t *testing.T) {
}
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "reconcile-delete-",
- DeletionTimestamp: &metav1.Time{Time: time.Now()},
- Finalizers: []string{
- sourcev1.SourceFinalizer,
- },
+ Name: "reconcile-delete-",
+ DeletionTimestamp: &metav1.Time{Time: time.Now()},
+ Finalizers: []string{
+ sourcev1.SourceFinalizer,
},
Status: sourcev1.GitRepositoryStatus{},
}
@@ -2007,9 +1958,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Valid commit with mode=HEAD makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
Data: map[string][]byte{
"foo": []byte(armoredKeyRingFixture),
},
@@ -2029,7 +1978,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitHEAD),
+ wantSourceVerificationMode: new(sourcev1.ModeGitHEAD),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- commit 'shasum' with key '5982D0279C227FFD'"),
},
@@ -2037,9 +1986,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Valid commit with mode=head makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
Data: map[string][]byte{
"foo": []byte(armoredKeyRingFixture),
},
@@ -2059,7 +2006,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitHEAD),
+ wantSourceVerificationMode: new(sourcev1.ModeGitHEAD),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- commit 'shasum' with key '5982D0279C227FFD'"),
},
@@ -2067,9 +2014,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Valid tag with mode=tag makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
Data: map[string][]byte{
"foo": []byte(armoredKeyRingFixture),
},
@@ -2095,7 +2040,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTag),
+ wantSourceVerificationMode: new(sourcev1.ModeGitTag),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- tag 'v0.1.0@shasum' with key '5982D0279C227FFD'"),
},
@@ -2103,9 +2048,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Valid tag and commit with mode=TagAndHEAD makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
Data: map[string][]byte{
"foo": []byte(armoredKeyRingFixture),
},
@@ -2134,7 +2077,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTagAndHEAD),
+ wantSourceVerificationMode: new(sourcev1.ModeGitTagAndHEAD),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- tag 'v0.1.0@shasum' with key '5982D0279C227FFD'\n\t- commit 'shasum' with key '5982D0279C227FFD'"),
},
@@ -2142,7 +2085,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Source verification mode in status is unset if there's no verification in spec",
beforeFunc: func(obj *sourcev1.GitRepository) {
- obj.Status.SourceVerificationMode = ptrToVerificationMode(sourcev1.ModeGitHEAD)
+ obj.Status.SourceVerificationMode = new(sourcev1.ModeGitHEAD)
obj.Status.SourceVerificationFingerprint = "stale-fingerprint"
obj.Spec.Verification = nil
},
@@ -2151,9 +2094,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Verification of tag with no tag ref SourceVerifiedCondition=False and returns a stalling error",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
Data: map[string][]byte{
"foo": []byte(armoredKeyRingFixture),
},
@@ -2182,9 +2123,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Unsigned tag with mode=tag makes SourceVerifiedCondition=False",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
Data: map[string][]byte{
"foo": []byte(armoredKeyRingFixture),
},
@@ -2216,9 +2155,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Partially successful verification makes SourceVerifiedCondition=False",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
Data: map[string][]byte{
"foo": []byte(armoredKeyRingFixture),
},
@@ -2254,9 +2191,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "No PGP keys in secret makes SourceVerifiedCondition=False and returns error",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
},
commit: git.Commit{
Hash: []byte("shasum"),
@@ -2280,9 +2215,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Invalid tag signature with mode=tag makes SourceVerifiedCondition=False",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
Data: map[string][]byte{
"foo": []byte(armoredKeyRingFixture),
},
@@ -2315,9 +2248,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Invalid PGP key makes SourceVerifiedCondition=False and returns error",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "invalid",
- },
+ Name: "invalid",
Data: map[string][]byte{
"foo": []byte("invalid PGP public key"),
},
@@ -2379,9 +2310,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Valid SSH-signed commit with mode=HEAD makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ssh-keys",
- },
+ Name: "ssh-keys",
Data: map[string][]byte{
"author1.sshpub": []byte(sshAuthorizedKeysFixture),
},
@@ -2401,7 +2330,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitHEAD),
+ wantSourceVerificationMode: new(sourcev1.ModeGitHEAD),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- commit 'shasum' with key 'SHA256:SDB4adE/BP2VLwX9Pdf7aFUwW9JNdzoPSsHjd/wZIw4'"),
},
@@ -2409,9 +2338,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Valid SSH-signed tag with mode=Tag makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ssh-keys",
- },
+ Name: "ssh-keys",
Data: map[string][]byte{
"author1.sshpub": []byte(sshAuthorizedKeysFixture),
},
@@ -2437,7 +2364,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTag),
+ wantSourceVerificationMode: new(sourcev1.ModeGitTag),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- tag 'v0.1.0@shasum' with key 'SHA256:SDB4adE/BP2VLwX9Pdf7aFUwW9JNdzoPSsHjd/wZIw4'"),
},
@@ -2445,9 +2372,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Valid SSH-signed tag and commit with mode=TagAndHEAD makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ssh-keys",
- },
+ Name: "ssh-keys",
Data: map[string][]byte{
"author1.sshpub": []byte(sshAuthorizedKeysFixture),
},
@@ -2476,7 +2401,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTagAndHEAD),
+ wantSourceVerificationMode: new(sourcev1.ModeGitTagAndHEAD),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- tag 'v0.1.0@shasum' with key 'SHA256:SDB4adE/BP2VLwX9Pdf7aFUwW9JNdzoPSsHjd/wZIw4'\n\t- commit 'shasum' with key 'SHA256:SDB4adE/BP2VLwX9Pdf7aFUwW9JNdzoPSsHjd/wZIw4'"),
},
@@ -2484,9 +2409,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "SSH-signed commit but Secret only has .asc keys makes SourceVerifiedCondition=False",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "pgp-keys-only",
- },
+ Name: "pgp-keys-only",
Data: map[string][]byte{
"author1.asc": []byte(armoredKeyRingFixture),
},
@@ -2513,9 +2436,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "PGP-signed commit but Secret only has .sshpub keys makes SourceVerifiedCondition=False",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ssh-keys-only",
- },
+ Name: "ssh-keys-only",
Data: map[string][]byte{
"author1.sshpub": []byte(sshAuthorizedKeysFixture),
},
@@ -2542,9 +2463,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "SSH-signed tag but Secret only has .asc keys makes SourceVerifiedCondition=False",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "pgp-keys-only",
- },
+ Name: "pgp-keys-only",
Data: map[string][]byte{
"author1.asc": []byte(armoredKeyRingFixture),
},
@@ -2577,9 +2496,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Invalid SSH key in .sshpub entry makes SourceVerifiedCondition=False",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "invalid-ssh-key",
- },
+ Name: "invalid-ssh-key",
Data: map[string][]byte{
"author1.sshpub": []byte("ssh-ed25519 INVALIDKEY test@example.com"),
},
@@ -2606,9 +2523,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Mixed: PGP-signed tag and SSH-signed commit with both key types in Secret and mode=TagAndHEAD makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "mixed-keys",
- },
+ Name: "mixed-keys",
Data: map[string][]byte{
"author1.asc": []byte(armoredKeyRingFixture),
"author1.sshpub": []byte(sshAuthorizedKeysFixture),
@@ -2638,7 +2553,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTagAndHEAD),
+ wantSourceVerificationMode: new(sourcev1.ModeGitTagAndHEAD),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- tag 'v0.1.0@shasum' with key '5982D0279C227FFD'\n\t- commit 'shasum' with key 'SHA256:SDB4adE/BP2VLwX9Pdf7aFUwW9JNdzoPSsHjd/wZIw4'"),
},
@@ -2646,9 +2561,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Mixed: SSH-signed tag and PGP-signed commit with both key types in Secret and mode=TagAndHEAD makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "mixed-keys-reverse",
- },
+ Name: "mixed-keys-reverse",
Data: map[string][]byte{
"author1.asc": []byte(armoredKeyRingFixture),
"author1.sshpub": []byte(sshAuthorizedKeysFixture),
@@ -2678,7 +2591,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTagAndHEAD),
+ wantSourceVerificationMode: new(sourcev1.ModeGitTagAndHEAD),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- tag 'v0.1.0@shasum' with key 'SHA256:SDB4adE/BP2VLwX9Pdf7aFUwW9JNdzoPSsHjd/wZIw4'\n\t- commit 'shasum' with key '5982D0279C227FFD'"),
},
@@ -2686,9 +2599,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Unsupported signature type makes SourceVerifiedCondition=False",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "existing",
- },
+ Name: "existing",
Data: map[string][]byte{
"foo": []byte(armoredKeyRingFixture),
},
@@ -2715,9 +2626,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
{
name: "Valid commit with explicit .asc key suffix makes SourceVerifiedCondition=True",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "explicit-asc",
- },
+ Name: "explicit-asc",
Data: map[string][]byte{
"foo.asc": []byte(armoredKeyRingFixture),
},
@@ -2737,7 +2646,7 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
},
want: sreconcile.ResultSuccess,
- wantSourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitHEAD),
+ wantSourceVerificationMode: new(sourcev1.ModeGitHEAD),
assertConditions: []metav1.Condition{
*conditions.TrueCondition(sourcev1.SourceVerifiedCondition, meta.SucceededReason, "verified signature of\n\t- commit 'shasum' with key '5982D0279C227FFD'"),
},
@@ -2763,11 +2672,9 @@ func TestGitRepositoryReconciler_verifySignature(t *testing.T) {
}
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "verify-commit-",
- Generation: 1,
- },
- Status: sourcev1.GitRepositoryStatus{},
+ GenerateName: "verify-commit-",
+ Generation: 1,
+ Status: sourcev1.GitRepositoryStatus{},
}
if tt.beforeFunc != nil {
@@ -2890,11 +2797,9 @@ func TestGitRepositoryReconciler_ConditionsUpdate(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "condition-update",
- Namespace: "default",
- Finalizers: []string{sourcev1.SourceFinalizer},
- },
+ Name: "condition-update",
+ Namespace: "default",
+ Finalizers: []string{sourcev1.SourceFinalizer},
Spec: sourcev1.GitRepositorySpec{
URL: server.HTTPAddress() + repoPath,
Interval: metav1.Duration{Duration: interval},
@@ -3138,14 +3043,10 @@ func TestGitRepositoryReconciler_statusConditions(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.GitRepository{
- TypeMeta: metav1.TypeMeta{
- APIVersion: sourcev1.GroupVersion.String(),
- Kind: sourcev1.GitRepositoryKind,
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "gitrepo",
- Namespace: "foo",
- },
+ APIVersion: sourcev1.GroupVersion.String(),
+ Kind: sourcev1.GitRepositoryKind,
+ Name: "gitrepo",
+ Namespace: "foo",
}
clientBuilder := fakeclient.NewClientBuilder().
@@ -3438,9 +3339,7 @@ func TestGitRepositoryReconciler_fetchIncludes(t *testing.T) {
var depObjs []client.Object
for _, d := range tt.dependencies {
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: d.name,
- },
+ Name: d.name,
Status: sourcev1.GitRepositoryStatus{
Conditions: d.conditions,
},
@@ -3470,9 +3369,7 @@ func TestGitRepositoryReconciler_fetchIncludes(t *testing.T) {
}
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "reconcile-include",
- },
+ Name: "reconcile-include",
Spec: sourcev1.GitRepositorySpec{
Interval: metav1.Duration{Duration: interval},
},
@@ -3680,15 +3577,15 @@ func TestGitContentConfigChanged(t *testing.T) {
{
name: "unobserved ignore",
obj: sourcev1.GitRepository{
- Spec: sourcev1.GitRepositorySpec{Ignore: ptr.To("foo")},
+ Spec: sourcev1.GitRepositorySpec{Ignore: new("foo")},
},
want: true,
},
{
name: "observed ignore",
obj: sourcev1.GitRepository{
- Spec: sourcev1.GitRepositorySpec{Ignore: ptr.To("foo")},
- Status: sourcev1.GitRepositoryStatus{ObservedIgnore: ptr.To("foo")},
+ Spec: sourcev1.GitRepositorySpec{Ignore: new("foo")},
+ Status: sourcev1.GitRepositoryStatus{ObservedIgnore: new("foo")},
},
want: false,
},
@@ -4017,7 +3914,7 @@ func Test_requiresVerification(t *testing.T) {
},
},
Status: sourcev1.GitRepositoryStatus{
- SourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTag),
+ SourceVerificationMode: new(sourcev1.ModeGitTag),
},
},
want: true,
@@ -4031,7 +3928,7 @@ func Test_requiresVerification(t *testing.T) {
},
},
Status: sourcev1.GitRepositoryStatus{
- SourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTag),
+ SourceVerificationMode: new(sourcev1.ModeGitTag),
},
},
want: true,
@@ -4045,7 +3942,7 @@ func Test_requiresVerification(t *testing.T) {
},
},
Status: sourcev1.GitRepositoryStatus{
- SourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitHEAD),
+ SourceVerificationMode: new(sourcev1.ModeGitHEAD),
},
},
want: true,
@@ -4059,7 +3956,7 @@ func Test_requiresVerification(t *testing.T) {
},
},
Status: sourcev1.GitRepositoryStatus{
- SourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitHEAD),
+ SourceVerificationMode: new(sourcev1.ModeGitHEAD),
},
},
want: true,
@@ -4073,7 +3970,7 @@ func Test_requiresVerification(t *testing.T) {
},
},
Status: sourcev1.GitRepositoryStatus{
- SourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTagAndHEAD),
+ SourceVerificationMode: new(sourcev1.ModeGitTagAndHEAD),
},
},
want: false,
@@ -4087,7 +3984,7 @@ func Test_requiresVerification(t *testing.T) {
},
},
Status: sourcev1.GitRepositoryStatus{
- SourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitTagAndHEAD),
+ SourceVerificationMode: new(sourcev1.ModeGitTagAndHEAD),
},
},
want: false,
@@ -4133,17 +4030,17 @@ func Test_verificationFingerprint(t *testing.T) {
func TestGitRepositoryReconciler_verificationPolicyChanged(t *testing.T) {
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{Name: "keys", Namespace: "default"},
- Data: map[string][]byte{"foo": []byte(armoredKeyRingFixture)},
+ Name: "keys", Namespace: "default",
+ Data: map[string][]byte{"foo": []byte(armoredKeyRingFixture)},
}
rotatedSecret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{Name: "keys", Namespace: "default"},
- Data: map[string][]byte{"foo": []byte(armoredKeyRingFixture + "\n")},
+ Name: "keys", Namespace: "default",
+ Data: map[string][]byte{"foo": []byte(armoredKeyRingFixture + "\n")},
}
newObj := func(mode sourcev1.GitVerificationMode, fingerprint string) *sourcev1.GitRepository {
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{Name: "repo", Namespace: "default"},
+ Name: "repo", Namespace: "default",
Spec: sourcev1.GitRepositorySpec{
Verification: &sourcev1.GitRepositoryVerification{
Mode: mode,
@@ -4234,8 +4131,8 @@ func TestGitRepositoryReconciler_reconcileSource_verificationPolicyChange(t *tes
g.Expect(remoteBranchForHead(localRepo, headRef, "staging")).To(Succeed())
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{Name: "keys", Namespace: "default"},
- Data: map[string][]byte{"foo": []byte(armoredKeyRingFixture)},
+ Name: "keys", Namespace: "default",
+ Data: map[string][]byte{"foo": []byte(armoredKeyRingFixture)},
}
tests := []struct {
@@ -4259,11 +4156,9 @@ func TestGitRepositoryReconciler_reconcileSource_verificationPolicyChange(t *tes
g := NewWithT(t)
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "verification-policy-",
- Namespace: "default",
- Generation: 1,
- },
+ GenerateName: "verification-policy-",
+ Namespace: "default",
+ Generation: 1,
Spec: sourcev1.GitRepositorySpec{
Interval: metav1.Duration{Duration: interval},
Timeout: &metav1.Duration{Duration: timeout},
@@ -4281,7 +4176,7 @@ func TestGitRepositoryReconciler_reconcileSource_verificationPolicyChange(t *tes
Revision: "staging@sha1:" + headRef.Hash().String(),
Path: randStringRunes(10),
},
- SourceVerificationMode: ptrToVerificationMode(sourcev1.ModeGitHEAD),
+ SourceVerificationMode: new(sourcev1.ModeGitHEAD),
SourceVerificationFingerprint: tt.fingerprint,
},
}
@@ -4316,6 +4211,7 @@ func TestGitRepositoryReconciler_reconcileSource_verificationPolicyChange(t *tes
}
}
+//go:fix inline
func ptrToVerificationMode(mode sourcev1.GitVerificationMode) *sourcev1.GitVerificationMode {
- return &mode
+ return new(mode)
}
diff --git a/internal/controller/helmchart_controller_test.go b/internal/controller/helmchart_controller_test.go
index 94c6f7de4..c10943c60 100644
--- a/internal/controller/helmchart_controller_test.go
+++ b/internal/controller/helmchart_controller_test.go
@@ -86,7 +86,7 @@ func TestHelmChartReconciler_deleteBeforeFinalizer(t *testing.T) {
namespaceName := "helmchart-" + randStringRunes(5)
namespace := &corev1.Namespace{
- ObjectMeta: metav1.ObjectMeta{Name: namespaceName},
+ Name: namespaceName,
}
g.Expect(k8sClient.Create(ctx, namespace)).ToNot(HaveOccurred())
t.Cleanup(func() {
@@ -293,10 +293,8 @@ func TestHelmChartReconciler_Reconcile(t *testing.T) {
defer func() { g.Expect(testEnv.Delete(ctx, ns)).To(Succeed()) }()
repository := sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-",
- Namespace: ns.Name,
- },
+ GenerateName: "helmrepository-",
+ Namespace: ns.Name,
Spec: sourcev1.HelmRepositorySpec{
URL: server.URL(),
},
@@ -310,10 +308,8 @@ func TestHelmChartReconciler_Reconcile(t *testing.T) {
defer func() { g.Expect(testEnv.Delete(ctx, &repository)).To(Succeed()) }()
obj := sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-reconcile-",
- Namespace: ns.Name,
- },
+ GenerateName: "helmrepository-reconcile-",
+ Namespace: ns.Name,
Spec: sourcev1.HelmChartSpec{
Chart: chartName,
Version: chartVersion,
@@ -371,7 +367,7 @@ func TestHelmChartReconciler_reconcileStorage(t *testing.T) {
Revision: "d",
Digest: "sha256:18ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4",
URL: testStorage.Hostname + "/reconcile-storage/d.txt",
- Size: int64p(int64(len("d"))),
+ Size: new(int64(len("d"))),
},
assertPaths: []string{
"/reconcile-storage/d.txt",
@@ -500,7 +496,7 @@ func TestHelmChartReconciler_reconcileStorage(t *testing.T) {
Revision: "f",
Digest: "sha256:3b9c358f36f0a31b6ad3e14f309c7cf198ac9246e8316f9ce543d5b19ac02b80",
URL: testStorage.Hostname + "/reconcile-storage/hostname.txt",
- Size: int64p(int64(len("file"))),
+ Size: new(int64(len("file"))),
},
assertConditions: []metav1.Condition{
*conditions.TrueCondition(meta.ReadyCondition, "foo", "bar"),
@@ -526,10 +522,8 @@ func TestHelmChartReconciler_reconcileStorage(t *testing.T) {
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-",
- Generation: 1,
- },
+ GenerateName: "test-",
+ Generation: 1,
}
if tt.beforeFunc != nil {
g.Expect(tt.beforeFunc(obj, testStorage)).To(Succeed())
@@ -602,10 +596,8 @@ func TestHelmChartReconciler_reconcileSource(t *testing.T) {
{
name: "Observes Artifact revision and build result",
source: &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "gitrepository",
- Namespace: "default",
- },
+ Name: "gitrepository",
+ Namespace: "default",
Status: sourcev1.GitRepositoryStatus{
Artifact: gitArtifact,
},
@@ -637,10 +629,8 @@ func TestHelmChartReconciler_reconcileSource(t *testing.T) {
{
name: "Existing artifact makes AritfactOutdated=True",
source: &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "gitrepository",
- Namespace: "default",
- },
+ Name: "gitrepository",
+ Namespace: "default",
Status: sourcev1.GitRepositoryStatus{
Artifact: gitArtifact,
},
@@ -718,10 +708,8 @@ func TestHelmChartReconciler_reconcileSource(t *testing.T) {
{
name: "Stalling on persistent build error",
source: &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "gitrepository",
- Namespace: "default",
- },
+ Name: "gitrepository",
+ Namespace: "default",
Status: sourcev1.GitRepositoryStatus{
Artifact: gitArtifact,
},
@@ -751,11 +739,9 @@ func TestHelmChartReconciler_reconcileSource(t *testing.T) {
{
name: "ResultRequeue when source artifact is unavailable",
source: &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "gitrepository",
- Namespace: "default",
- },
- Status: sourcev1.GitRepositoryStatus{},
+ Name: "gitrepository",
+ Namespace: "default",
+ Status: sourcev1.GitRepositoryStatus{},
},
beforeFunc: func(obj *sourcev1.HelmChart) {
obj.Spec.Chart = "testdata/charts/helmchart-0.1.0.tgz"
@@ -801,12 +787,10 @@ func TestHelmChartReconciler_reconcileSource(t *testing.T) {
}
obj := sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "chart",
- Namespace: "default",
- Generation: 1,
- },
- Spec: sourcev1.HelmChartSpec{},
+ GenerateName: "chart",
+ Namespace: "default",
+ Generation: 1,
+ Spec: sourcev1.HelmChartSpec{},
}
if tt.beforeFunc != nil {
tt.beforeFunc(&obj)
@@ -901,9 +885,7 @@ func TestHelmChartReconciler_buildFromHelmRepository(t *testing.T) {
password: "bar",
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth",
- },
+ Name: "auth",
Data: map[string][]byte{
"username": []byte("foo"),
"password": []byte("bar"),
@@ -1139,9 +1121,7 @@ func TestHelmChartReconciler_buildFromHelmRepository(t *testing.T) {
}
repository := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-",
- },
+ GenerateName: "helmrepository-",
Spec: sourcev1.HelmRepositorySpec{
URL: server.URL(),
Timeout: &metav1.Duration{Duration: timeout},
@@ -1153,10 +1133,8 @@ func TestHelmChartReconciler_buildFromHelmRepository(t *testing.T) {
},
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-",
- },
- Spec: sourcev1.HelmChartSpec{},
+ GenerateName: "helmrepository-",
+ Spec: sourcev1.HelmChartSpec{},
}
if tt.beforeFunc != nil {
@@ -1229,9 +1207,7 @@ func TestHelmChartReconciler_buildFromOCIHelmRepository(t *testing.T) {
{
name: "Reconciles chart build with docker repository credentials",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth",
- },
+ Name: "auth",
Type: corev1.SecretTypeDockerConfigJson,
Data: map[string][]byte{
".dockerconfigjson": []byte(`{"auths":{"` +
@@ -1258,9 +1234,7 @@ func TestHelmChartReconciler_buildFromOCIHelmRepository(t *testing.T) {
{
name: "Reconciles chart build with repository credentials",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth",
- },
+ Name: "auth",
Data: map[string][]byte{
"username": []byte(testRegistryUsername),
"password": []byte(testRegistryPassword),
@@ -1301,9 +1275,7 @@ func TestHelmChartReconciler_buildFromOCIHelmRepository(t *testing.T) {
{
name: "Forces build on generation change",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth",
- },
+ Name: "auth",
Data: map[string][]byte{
"username": []byte(testRegistryUsername),
"password": []byte(testRegistryPassword),
@@ -1392,9 +1364,7 @@ func TestHelmChartReconciler_buildFromOCIHelmRepository(t *testing.T) {
}
repository := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-",
- },
+ GenerateName: "helmrepository-",
Spec: sourcev1.HelmRepositorySpec{
URL: fmt.Sprintf("oci://%s/testrepo", testRegistryServer.registryHost),
Timeout: &metav1.Duration{Duration: timeout},
@@ -1404,10 +1374,8 @@ func TestHelmChartReconciler_buildFromOCIHelmRepository(t *testing.T) {
},
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-",
- },
- Spec: sourcev1.HelmChartSpec{},
+ GenerateName: "helmrepository-",
+ Spec: sourcev1.HelmChartSpec{},
}
if tt.beforeFunc != nil {
@@ -1634,11 +1602,9 @@ func TestHelmChartReconciler_buildFromTarballArtifact(t *testing.T) {
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- Name: "artifact",
- Namespace: "default",
- },
- Spec: sourcev1.HelmChartSpec{},
+ Name: "artifact",
+ Namespace: "default",
+ Spec: sourcev1.HelmChartSpec{},
}
if tt.beforeFunc != nil {
tt.beforeFunc(obj)
@@ -1844,11 +1810,9 @@ func TestHelmChartReconciler_reconcileArtifact(t *testing.T) {
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "reconcile-artifact-",
- Generation: 1,
- },
- Status: sourcev1.HelmChartStatus{},
+ GenerateName: "reconcile-artifact-",
+ Generation: 1,
+ Status: sourcev1.HelmChartStatus{},
}
if tt.beforeFunc != nil {
tt.beforeFunc(obj)
@@ -1875,34 +1839,22 @@ func TestHelmChartReconciler_reconcileArtifact(t *testing.T) {
func TestHelmChartReconciler_getSource(t *testing.T) {
mocks := []client.Object{
&sourcev1.HelmRepository{
- TypeMeta: metav1.TypeMeta{
- Kind: sourcev1.HelmRepositoryKind,
- APIVersion: sourcev1.GroupVersion.String(),
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "helmrepository",
- Namespace: "foo",
- },
+ Kind: sourcev1.HelmRepositoryKind,
+ APIVersion: sourcev1.GroupVersion.String(),
+ Name: "helmrepository",
+ Namespace: "foo",
},
&sourcev1.GitRepository{
- TypeMeta: metav1.TypeMeta{
- Kind: sourcev1.GitRepositoryKind,
- APIVersion: sourcev1.GroupVersion.String(),
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "gitrepository",
- Namespace: "foo",
- },
+ Kind: sourcev1.GitRepositoryKind,
+ APIVersion: sourcev1.GroupVersion.String(),
+ Name: "gitrepository",
+ Namespace: "foo",
},
&sourcev1.Bucket{
- TypeMeta: metav1.TypeMeta{
- Kind: sourcev1.BucketKind,
- APIVersion: sourcev1.GroupVersion.String(),
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "bucket",
- Namespace: "foo",
- },
+ Kind: sourcev1.BucketKind,
+ APIVersion: sourcev1.GroupVersion.String(),
+ Name: "bucket",
+ Namespace: "foo",
},
}
@@ -1925,9 +1877,7 @@ func TestHelmChartReconciler_getSource(t *testing.T) {
{
name: "Get HelmRepository source for reference",
obj: &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- Namespace: mocks[0].GetNamespace(),
- },
+ Namespace: mocks[0].GetNamespace(),
Spec: sourcev1.HelmChartSpec{
SourceRef: sourcev1.LocalHelmChartSourceReference{
Name: mocks[0].GetName(),
@@ -1940,9 +1890,7 @@ func TestHelmChartReconciler_getSource(t *testing.T) {
{
name: "Get GitRepository source for reference",
obj: &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- Namespace: mocks[1].GetNamespace(),
- },
+ Namespace: mocks[1].GetNamespace(),
Spec: sourcev1.HelmChartSpec{
SourceRef: sourcev1.LocalHelmChartSourceReference{
Name: mocks[1].GetName(),
@@ -1955,9 +1903,7 @@ func TestHelmChartReconciler_getSource(t *testing.T) {
{
name: "Get Bucket source for reference",
obj: &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- Namespace: mocks[2].GetNamespace(),
- },
+ Namespace: mocks[2].GetNamespace(),
Spec: sourcev1.HelmChartSpec{
SourceRef: sourcev1.LocalHelmChartSourceReference{
Name: mocks[2].GetName(),
@@ -1970,9 +1916,7 @@ func TestHelmChartReconciler_getSource(t *testing.T) {
{
name: "Error on client error",
obj: &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- Namespace: mocks[2].GetNamespace(),
- },
+ Namespace: mocks[2].GetNamespace(),
Spec: sourcev1.HelmChartSpec{
SourceRef: sourcev1.LocalHelmChartSourceReference{
Name: mocks[1].GetName(),
@@ -2035,12 +1979,10 @@ func TestHelmChartReconciler_reconcileDelete(t *testing.T) {
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- Name: "reconcile-delete-",
- DeletionTimestamp: &metav1.Time{Time: time.Now()},
- Finalizers: []string{
- sourcev1.SourceFinalizer,
- },
+ Name: "reconcile-delete-",
+ DeletionTimestamp: &metav1.Time{Time: time.Now()},
+ Finalizers: []string{
+ sourcev1.SourceFinalizer,
},
Status: sourcev1.HelmChartStatus{},
}
@@ -2173,10 +2115,8 @@ func TestHelmChartReconciler_reconcileSubRecs(t *testing.T) {
patchOptions: getPatchOptions(helmChartReadyCondition.Owned, "sc"),
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-",
- Generation: tt.generation,
- },
+ GenerateName: "test-",
+ Generation: tt.generation,
Status: sourcev1.HelmChartStatus{
ObservedGeneration: tt.observedGeneration,
},
@@ -2275,14 +2215,10 @@ func TestHelmChartReconciler_statusConditions(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.HelmChart{
- TypeMeta: metav1.TypeMeta{
- Kind: sourcev1.HelmChartKind,
- APIVersion: sourcev1.GroupVersion.String(),
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "helmchart",
- Namespace: "foo",
- },
+ Kind: sourcev1.HelmChartKind,
+ APIVersion: sourcev1.GroupVersion.String(),
+ Name: "helmchart",
+ Namespace: "foo",
}
clientBuilder := fakeclient.NewClientBuilder().
@@ -2493,9 +2429,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_authStrategy(t *testing.T) {
password: testRegistryPassword,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-secretref",
- },
+ Name: "auth-secretref",
Type: corev1.SecretTypeDockerConfigJson,
Data: map[string][]byte{},
},
@@ -2517,9 +2451,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_authStrategy(t *testing.T) {
password: "wrong-pass",
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-secretref",
- },
+ Name: "auth-secretref",
Type: corev1.SecretTypeDockerConfigJson,
Data: map[string][]byte{},
},
@@ -2549,9 +2481,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_authStrategy(t *testing.T) {
password: testRegistryPassword,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-secretref",
- },
+ Name: "auth-secretref",
Type: corev1.SecretTypeDockerConfigJson,
Data: map[string][]byte{},
},
@@ -2573,16 +2503,12 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_authStrategy(t *testing.T) {
password: testRegistryPassword,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-secretref",
- },
+ Name: "auth-secretref",
Type: corev1.SecretTypeDockerConfigJson,
Data: map[string][]byte{},
},
certSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "certs-secretref",
- },
+ Name: "certs-secretref",
Data: map[string][]byte{
"ca.crt": []byte("invalid caFile"),
},
@@ -2598,9 +2524,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_authStrategy(t *testing.T) {
withTLS: true,
},
certSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "certs-secretref",
- },
+ Name: "certs-secretref",
Type: corev1.SecretTypeOpaque,
Data: map[string][]byte{
"ca.crt": tlsCA,
@@ -2619,9 +2543,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_authStrategy(t *testing.T) {
withClientCertAuth: true,
},
certSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "certs-secretref",
- },
+ Name: "certs-secretref",
Data: map[string][]byte{
"ca.crt": tlsCA,
"tls.crt": clientPublicKey,
@@ -2643,9 +2565,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_authStrategy(t *testing.T) {
withClientCertAuth: true,
},
certSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "certs-secretref",
- },
+ Name: "certs-secretref",
Data: map[string][]byte{
"ca.crt": tlsCA,
"tls.crt": clientInvalidPublicKey,
@@ -2683,9 +2603,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_authStrategy(t *testing.T) {
g.Expect(err).ToNot(HaveOccurred())
repo := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "auth-strategy-",
- },
+ GenerateName: "auth-strategy-",
Spec: sourcev1.HelmRepositorySpec{
Interval: metav1.Duration{Duration: interval},
Timeout: &metav1.Duration{Duration: timeout},
@@ -2728,9 +2646,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_authStrategy(t *testing.T) {
clientBuilder.WithObjects(repo)
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "auth-strategy-",
- },
+ GenerateName: "auth-strategy-",
Spec: sourcev1.HelmChartSpec{
Chart: metadata.Name,
Version: metadata.Version,
@@ -2889,9 +2805,7 @@ func TestHelmChartRepository_reconcileSource_verifyOCISourceSignature_keyless(t
clientBuilder := fakeclient.NewClientBuilder()
repository := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-",
- },
+ GenerateName: "helmrepository-",
Spec: sourcev1.HelmRepositorySpec{
URL: "oci://ghcr.io/stefanprodan/charts",
Timeout: &metav1.Duration{Duration: timeout},
@@ -2911,9 +2825,7 @@ func TestHelmChartRepository_reconcileSource_verifyOCISourceSignature_keyless(t
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmchart-",
- },
+ GenerateName: "helmchart-",
Spec: sourcev1.HelmChartSpec{
SourceRef: sourcev1.LocalHelmChartSourceReference{
Kind: sourcev1.HelmRepositoryKind,
@@ -3158,9 +3070,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_verifySignatureNotation(t *t
clientBuilder := fakeclient.NewClientBuilder()
repository := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-",
- },
+ GenerateName: "helmrepository-",
Spec: sourcev1.HelmRepositorySpec{
URL: fmt.Sprintf("oci://%s/testrepo", server.registryHost),
Timeout: &metav1.Duration{Duration: timeout},
@@ -3190,17 +3100,13 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_verifySignatureNotation(t *t
}
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "notation-config",
- },
+ Name: "notation-config",
Data: data,
}
caSecret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "valid-trust-store",
- Generation: 1,
- },
+ Name: "valid-trust-store",
+ Generation: 1,
Data: map[string][]byte{
"ca.crt": tlsCA,
},
@@ -3218,9 +3124,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_verifySignatureNotation(t *t
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmchart-",
- },
+ GenerateName: "helmchart-",
Spec: sourcev1.HelmChartSpec{
SourceRef: sourcev1.LocalHelmChartSourceReference{
Kind: sourcev1.HelmRepositoryKind,
@@ -3250,10 +3154,8 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_verifySignatureNotation(t *t
signatureMediaType := cose.MediaTypeEnvelope
signOptions := notation.SignOptions{
- SignerSignOptions: notation.SignerSignOptions{
- SignatureMediaType: signatureMediaType,
- },
- ArtifactReference: artifact,
+ SignatureMediaType: signatureMediaType,
+ ArtifactReference: artifact,
}
_, err = notation.Sign(ctx, sg, repo, signOptions)
@@ -3440,9 +3342,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_verifySignatureCosign(t *tes
clientBuilder := fakeclient.NewClientBuilder()
repository := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-",
- },
+ GenerateName: "helmrepository-",
Spec: sourcev1.HelmRepositorySpec{
URL: fmt.Sprintf("oci://%s/testrepo", server.registryHost),
Timeout: &metav1.Duration{Duration: timeout},
@@ -3453,9 +3353,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_verifySignatureCosign(t *tes
}
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "cosign-key",
- },
+ Name: "cosign-key",
Data: map[string][]byte{
"cosign.pub": keys.PublicBytes,
}}
@@ -3472,9 +3370,7 @@ func TestHelmChartReconciler_reconcileSourceFromOCI_verifySignatureCosign(t *tes
}
obj := &sourcev1.HelmChart{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmchart-",
- },
+ GenerateName: "helmchart-",
Spec: sourcev1.HelmChartSpec{
SourceRef: sourcev1.LocalHelmChartSourceReference{
Kind: sourcev1.HelmRepositoryKind,
diff --git a/internal/controller/helmrepository_controller_test.go b/internal/controller/helmrepository_controller_test.go
index 68f1e77f9..fb6a628f5 100644
--- a/internal/controller/helmrepository_controller_test.go
+++ b/internal/controller/helmrepository_controller_test.go
@@ -65,7 +65,7 @@ func TestHelmRepositoryReconciler_deleteBeforeFinalizer(t *testing.T) {
namespaceName := "helmrepo-" + randStringRunes(5)
namespace := &corev1.Namespace{
- ObjectMeta: metav1.ObjectMeta{Name: namespaceName},
+ Name: namespaceName,
}
g.Expect(k8sClient.Create(ctx, namespace)).ToNot(HaveOccurred())
t.Cleanup(func() {
@@ -109,10 +109,8 @@ func TestHelmRepositoryReconciler_Reconcile(t *testing.T) {
defer testServer.Stop()
origObj := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-reconcile-",
- Namespace: "default",
- },
+ GenerateName: "helmrepository-reconcile-",
+ Namespace: "default",
Spec: sourcev1.HelmRepositorySpec{
Interval: metav1.Duration{Duration: interval},
URL: testServer.URL(),
@@ -211,7 +209,7 @@ func TestHelmRepositoryReconciler_reconcileStorage(t *testing.T) {
Revision: "d",
Digest: "sha256:18ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4",
URL: testStorage.Hostname + "/reconcile-storage/d.txt",
- Size: int64p(int64(len("d"))),
+ Size: new(int64(len("d"))),
},
assertPaths: []string{
"/reconcile-storage/d.txt",
@@ -343,7 +341,7 @@ func TestHelmRepositoryReconciler_reconcileStorage(t *testing.T) {
Revision: "f",
Digest: "sha256:3b9c358f36f0a31b6ad3e14f309c7cf198ac9246e8316f9ce543d5b19ac02b80",
URL: testStorage.Hostname + "/reconcile-storage/hostname.txt",
- Size: int64p(int64(len("file"))),
+ Size: new(int64(len("file"))),
},
assertConditions: []metav1.Condition{
*conditions.TrueCondition(meta.ReadyCondition, "foo", "bar"),
@@ -367,10 +365,8 @@ func TestHelmRepositoryReconciler_reconcileStorage(t *testing.T) {
}
obj := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-",
- Generation: 1,
- },
+ GenerateName: "test-",
+ Generation: 1,
}
if tt.beforeFunc != nil {
g.Expect(tt.beforeFunc(obj, testStorage)).To(Succeed())
@@ -451,10 +447,8 @@ func TestHelmRepositoryReconciler_reconcileSource(t *testing.T) {
want: sreconcile.ResultSuccess,
wantErr: false,
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- Namespace: "default",
- },
+ Name: "ca-file",
+ Namespace: "default",
Data: map[string][]byte{
"ca.crt": tlsCA,
},
@@ -476,10 +470,8 @@ func TestHelmRepositoryReconciler_reconcileSource(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- Namespace: "default",
- },
+ Name: "ca-file",
+ Namespace: "default",
Data: map[string][]byte{
"ca.crt": tlsCA,
},
@@ -528,10 +520,8 @@ func TestHelmRepositoryReconciler_reconcileSource(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- Namespace: "default",
- },
+ Name: "ca-file",
+ Namespace: "default",
Data: map[string][]byte{
"caFile": tlsCA,
},
@@ -581,10 +571,8 @@ func TestHelmRepositoryReconciler_reconcileSource(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- Namespace: "default",
- },
+ Name: "ca-file",
+ Namespace: "default",
Data: map[string][]byte{
"caFile": tlsCA,
},
@@ -665,10 +653,8 @@ func TestHelmRepositoryReconciler_reconcileSource(t *testing.T) {
password: "1234",
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "basic-auth",
- Namespace: "default",
- },
+ Name: "basic-auth",
+ Namespace: "default",
Data: map[string][]byte{
"username": []byte("git"),
"password": []byte("1234"),
@@ -719,10 +705,8 @@ func TestHelmRepositoryReconciler_reconcileSource(t *testing.T) {
password: "1234",
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "basic-auth",
- Namespace: "default",
- },
+ Name: "basic-auth",
+ Namespace: "default",
Data: map[string][]byte{
"username": []byte("git"),
"password": []byte("1234"),
@@ -774,10 +758,8 @@ func TestHelmRepositoryReconciler_reconcileSource(t *testing.T) {
ca: tlsCA,
},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "invalid-ca",
- Namespace: "default",
- },
+ Name: "invalid-ca",
+ Namespace: "default",
Data: map[string][]byte{
"ca.crt": []byte("invalid"),
},
@@ -869,10 +851,8 @@ func TestHelmRepositoryReconciler_reconcileSource(t *testing.T) {
name: "Malformed secret returns FetchFailed=True and returns error",
protocol: "http",
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "malformed-basic-auth",
- Namespace: "default",
- },
+ Name: "malformed-basic-auth",
+ Namespace: "default",
Data: map[string][]byte{
"username": []byte("git"),
},
@@ -978,11 +958,9 @@ func TestHelmRepositoryReconciler_reconcileSource(t *testing.T) {
for _, tt := range tests {
obj := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "auth-strategy-",
- Generation: 1,
- Namespace: "default",
- },
+ GenerateName: "auth-strategy-",
+ Generation: 1,
+ Namespace: "default",
Spec: sourcev1.HelmRepositorySpec{
Interval: metav1.Duration{Duration: interval},
Timeout: &metav1.Duration{Duration: timeout},
@@ -1116,11 +1094,9 @@ func TestHelmRepositoryReconciler_reconcileSource_cachedIndexFile(t *testing.T)
newObject := func(url string) *sourcev1.HelmRepository {
return &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "index-cache",
- Namespace: "default",
- Generation: 1,
- },
+ Name: "index-cache",
+ Namespace: "default",
+ Generation: 1,
Spec: sourcev1.HelmRepositorySpec{
Interval: metav1.Duration{Duration: interval},
Timeout: &metav1.Duration{Duration: timeout},
@@ -1384,14 +1360,10 @@ func TestHelmRepositoryReconciler_reconcileArtifact(t *testing.T) {
}
obj := &sourcev1.HelmRepository{
- TypeMeta: metav1.TypeMeta{
- Kind: sourcev1.HelmRepositoryKind,
- },
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-bucket-",
- Generation: 1,
- Namespace: "default",
- },
+ Kind: sourcev1.HelmRepositoryKind,
+ GenerateName: "test-bucket-",
+ Generation: 1,
+ Namespace: "default",
Spec: sourcev1.HelmRepositorySpec{
Timeout: &metav1.Duration{Duration: timeout},
URL: "https://example.com/index.yaml",
@@ -1461,13 +1433,9 @@ func TestHelmRepositoryReconciler_garbageCollectEvictsCache(t *testing.T) {
}
obj := &sourcev1.HelmRepository{
- TypeMeta: metav1.TypeMeta{
- Kind: sourcev1.HelmRepositoryKind,
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "cache-evict",
- Namespace: "default",
- },
+ Kind: sourcev1.HelmRepositoryKind,
+ Name: "cache-evict",
+ Namespace: "default",
}
artifact := testStorage.NewArtifactFor(obj.Kind, obj, "existing", "index-existing.yaml")
obj.Status.Artifact = &artifact
@@ -1599,10 +1567,8 @@ func TestHelmRepositoryReconciler_reconcileSubRecs(t *testing.T) {
patchOptions: getPatchOptions(helmRepositoryReadyCondition.Owned, "sc"),
}
obj := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-",
- Generation: tt.generation,
- },
+ GenerateName: "test-",
+ Generation: tt.generation,
Status: sourcev1.HelmRepositoryStatus{
ObservedGeneration: tt.observedGeneration,
},
@@ -1678,14 +1644,10 @@ func TestHelmRepositoryReconciler_statusConditions(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.HelmRepository{
- TypeMeta: metav1.TypeMeta{
- Kind: sourcev1.HelmRepositoryKind,
- APIVersion: sourcev1.GroupVersion.String(),
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "helmrepo",
- Namespace: "foo",
- },
+ Kind: sourcev1.HelmRepositoryKind,
+ APIVersion: sourcev1.GroupVersion.String(),
+ Name: "helmrepo",
+ Namespace: "foo",
}
clientBuilder := fakeclient.NewClientBuilder().
@@ -1873,10 +1835,8 @@ func TestHelmRepositoryReconciler_ReconcileTypeUpdatePredicateFilter(t *testing.
defer testServer.Stop()
obj := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-reconcile-",
- Namespace: "default",
- },
+ GenerateName: "helmrepository-reconcile-",
+ Namespace: "default",
Spec: sourcev1.HelmRepositorySpec{
Interval: metav1.Duration{Duration: interval},
URL: testServer.URL(),
@@ -1962,10 +1922,8 @@ func TestHelmRepositoryReconciler_ReconcileSpecUpdatePredicateFilter(t *testing.
defer testServer.Stop()
obj := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-reconcile-",
- Namespace: "default",
- },
+ GenerateName: "helmrepository-reconcile-",
+ Namespace: "default",
Spec: sourcev1.HelmRepositorySpec{
Interval: metav1.Duration{Duration: interval},
URL: testServer.URL(),
@@ -2064,10 +2022,8 @@ func TestHelmRepositoryReconciler_InMemoryCaching(t *testing.T) {
defer func() { g.Expect(testEnv.Delete(ctx, ns)).To(Succeed()) }()
helmRepo := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "helmrepository-",
- Namespace: ns.Name,
- },
+ GenerateName: "helmrepository-",
+ Namespace: ns.Name,
Spec: sourcev1.HelmRepositorySpec{
URL: testServer.URL(),
},
@@ -2123,10 +2079,8 @@ func TestHelmRepositoryReconciler_ociMigration(t *testing.T) {
})
hr := &sourcev1.HelmRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: fmt.Sprintf("hr-%s", randStringRunes(5)),
- Namespace: testns.Name,
- },
+ Name: fmt.Sprintf("hr-%s", randStringRunes(5)),
+ Namespace: testns.Name,
}
hrKey := client.ObjectKeyFromObject(hr)
diff --git a/internal/controller/ocirepository_controller_test.go b/internal/controller/ocirepository_controller_test.go
index 8907d84d0..41c7f45eb 100644
--- a/internal/controller/ocirepository_controller_test.go
+++ b/internal/controller/ocirepository_controller_test.go
@@ -52,7 +52,6 @@ import (
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
- "k8s.io/utils/ptr"
oras "oras.land/oras-go/v2/registry/remote"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -90,7 +89,7 @@ func TestOCIRepositoryReconciler_deleteBeforeFinalizer(t *testing.T) {
namespaceName := "ocirepo-" + randStringRunes(5)
namespace := &corev1.Namespace{
- ObjectMeta: metav1.ObjectMeta{Name: namespaceName},
+ Name: namespaceName,
}
g.Expect(k8sClient.Create(ctx, namespace)).ToNot(HaveOccurred())
t.Cleanup(func() {
@@ -126,7 +125,7 @@ func TestOCIRepository_CELValidation(t *testing.T) {
namespaceName := "ocirepo-" + randStringRunes(5)
namespace := &corev1.Namespace{
- ObjectMeta: metav1.ObjectMeta{Name: namespaceName},
+ Name: namespaceName,
}
g.Expect(k8sClient.Create(ctx, namespace)).ToNot(HaveOccurred())
t.Cleanup(func() {
@@ -135,7 +134,7 @@ func TestOCIRepository_CELValidation(t *testing.T) {
tests := []struct {
name string
- spec map[string]interface{}
+ spec map[string]any
wantErr []string
}{
{
@@ -144,26 +143,26 @@ func TestOCIRepository_CELValidation(t *testing.T) {
},
{
name: "empty spec",
- spec: map[string]interface{}{},
+ spec: map[string]any{},
wantErr: []string{"spec.url is required", "spec.interval is required"},
},
{
name: "missing url",
- spec: map[string]interface{}{
+ spec: map[string]any{
"interval": "1m",
},
wantErr: []string{"spec.url is required"},
},
{
name: "missing interval",
- spec: map[string]interface{}{
+ spec: map[string]any{
"url": "oci://example.com",
},
wantErr: []string{"spec.interval is required"},
},
{
name: "valid",
- spec: map[string]interface{}{
+ spec: map[string]any{
"url": "oci://example.com",
"interval": "1m",
},
@@ -269,10 +268,8 @@ func TestOCIRepository_Reconcile(t *testing.T) {
defer func() { g.Expect(testEnv.Delete(ctx, ns)).To(Succeed()) }()
origObj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "ocirepository-reconcile",
- Namespace: ns.Name,
- },
+ GenerateName: "ocirepository-reconcile",
+ Namespace: ns.Name,
Spec: sourcev1.OCIRepositorySpec{
URL: tt.url,
Interval: &metav1.Duration{Duration: 60 * time.Minute},
@@ -437,10 +434,8 @@ func TestOCIRepository_Reconcile_MediaType(t *testing.T) {
defer func() { g.Expect(testEnv.Delete(ctx, ns)).To(Succeed()) }()
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "ocirepository-reconcile",
- Namespace: ns.Name,
- },
+ GenerateName: "ocirepository-reconcile",
+ Namespace: ns.Name,
Spec: sourcev1.OCIRepositorySpec{
URL: tt.url,
Interval: &metav1.Duration{Duration: 60 * time.Minute},
@@ -655,9 +650,7 @@ func TestOCIRepository_reconcileSource_authStrategy(t *testing.T) {
}),
},
tlsCertSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- },
+ Name: "ca-file",
Data: map[string][]byte{
"ca.crt": tlsCA,
},
@@ -680,9 +673,7 @@ func TestOCIRepository_reconcileSource_authStrategy(t *testing.T) {
}),
},
tlsCertSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- },
+ Name: "ca-file",
Data: map[string][]byte{
"caFile": tlsCA,
},
@@ -723,9 +714,7 @@ func TestOCIRepository_reconcileSource_authStrategy(t *testing.T) {
}),
},
tlsCertSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- },
+ Name: "ca-file",
Data: map[string][]byte{
"ca.crt": []byte("invalid"),
},
@@ -747,9 +736,7 @@ func TestOCIRepository_reconcileSource_authStrategy(t *testing.T) {
}),
},
tlsCertSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- },
+ Name: "ca-file",
Data: map[string][]byte{
"ca.crt": tlsCA,
"caFile": []byte("invalid"),
@@ -808,10 +795,8 @@ func TestOCIRepository_reconcileSource_authStrategy(t *testing.T) {
WithStatusSubresource(&sourcev1.OCIRepository{})
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "auth-strategy-",
- Generation: 1,
- },
+ GenerateName: "auth-strategy-",
+ Generation: 1,
Spec: sourcev1.OCIRepositorySpec{
Interval: &metav1.Duration{Duration: interval},
Timeout: &metav1.Duration{Duration: timeout},
@@ -844,9 +829,7 @@ func TestOCIRepository_reconcileSource_authStrategy(t *testing.T) {
if tt.secretOpts.username != "" && tt.secretOpts.password != "" {
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-secretref",
- },
+ Name: "auth-secretref",
Type: corev1.SecretTypeDockerConfigJson,
Data: map[string][]byte{
".dockerconfigjson": fmt.Appendf(nil, `{"auths": {%q: {"username": %q, "password": %q}}}`,
@@ -857,9 +840,7 @@ func TestOCIRepository_reconcileSource_authStrategy(t *testing.T) {
if tt.secretOpts.includeSA {
serviceAccount := &corev1.ServiceAccount{
- ObjectMeta: metav1.ObjectMeta{
- Name: "sa-ocitest",
- },
+ Name: "sa-ocitest",
ImagePullSecrets: []corev1.LocalObjectReference{{Name: secret.Name}},
}
clientBuilder.WithObjects(serviceAccount)
@@ -1014,11 +995,9 @@ func TestOCIRepository_CertSecret(t *testing.T) {
defer func() { g.Expect(testEnv.Delete(ctx, ns)).To(Succeed()) }()
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "ocirepository-test-resource",
- Namespace: ns.Name,
- Generation: 1,
- },
+ GenerateName: "ocirepository-test-resource",
+ Namespace: ns.Name,
+ Generation: 1,
Spec: sourcev1.OCIRepositorySpec{
URL: tt.url,
Interval: &metav1.Duration{Duration: 60 * time.Minute},
@@ -1140,11 +1119,9 @@ func TestOCIRepository_ProxySecret(t *testing.T) {
defer func() { g.Expect(testEnv.Delete(ctx, ns)).To(Succeed()) }()
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "ocirepository-test-resource",
- Namespace: ns.Name,
- Generation: 1,
- },
+ GenerateName: "ocirepository-test-resource",
+ Namespace: ns.Name,
+ Generation: 1,
Spec: sourcev1.OCIRepositorySpec{
URL: tt.url,
Interval: &metav1.Duration{Duration: 60 * time.Minute},
@@ -1354,10 +1331,8 @@ func TestOCIRepository_reconcileSource_remoteReference(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "checkout-strategy-",
- Generation: 1,
- },
+ GenerateName: "checkout-strategy-",
+ Generation: 1,
Spec: sourcev1.OCIRepositorySpec{
URL: fmt.Sprintf("oci://%s/podinfo", server.registryHost),
Interval: &metav1.Duration{Duration: interval},
@@ -1598,10 +1573,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceSignatureNotation(t *testi
g.Expect(err).NotTo(HaveOccurred())
caSecret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "valid-trust-store",
- Generation: 1,
- },
+ Name: "valid-trust-store",
+ Generation: 1,
Data: map[string][]byte{
"ca.crt": tlsCA,
},
@@ -1623,10 +1596,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceSignatureNotation(t *testi
})
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "verify-oci-source-signature-",
- Generation: 1,
- },
+ GenerateName: "verify-oci-source-signature-",
+ Generation: 1,
Spec: sourcev1.OCIRepositorySpec{
URL: fmt.Sprintf("oci://%s/podinfo", server.registryHost),
Verify: &sourcev1.OCIRepositoryVerification{
@@ -1652,10 +1623,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceSignatureNotation(t *testi
data["trustpolicy.json"] = policy
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "notation-config-",
- },
- Data: data,
+ GenerateName: "notation-config-",
+ Data: data,
}
g.Expect(r.Create(ctx, secret)).NotTo(HaveOccurred())
@@ -1717,10 +1686,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceSignatureNotation(t *testi
signatureMediaType := cose.MediaTypeEnvelope
signOptions := notation.SignOptions{
- SignerSignOptions: notation.SignerSignOptions{
- SignatureMediaType: signatureMediaType,
- },
- ArtifactReference: artifactRef.String(),
+ SignatureMediaType: signatureMediaType,
+ ArtifactReference: artifactRef.String(),
}
_, err = notation.Sign(ctx, signer, repo, signOptions)
@@ -1960,10 +1927,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceTrustPolicyNotation(t *tes
})
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "verify-oci-source-signature-",
- Generation: 1,
- },
+ GenerateName: "verify-oci-source-signature-",
+ Generation: 1,
Spec: sourcev1.OCIRepositorySpec{
URL: fmt.Sprintf("oci://%s/podinfo", server.registryHost),
Verify: &sourcev1.OCIRepositoryVerification{
@@ -2005,10 +1970,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceTrustPolicyNotation(t *tes
data["notation.crt"] = certTuple.Cert.Raw
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "notation-",
- },
- Data: data,
+ GenerateName: "notation-",
+ Data: data,
}
g.Expect(r.Create(ctx, secret)).NotTo(HaveOccurred())
@@ -2048,10 +2011,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceTrustPolicyNotation(t *tes
signatureMediaType := cose.MediaTypeEnvelope
signOptions := notation.SignOptions{
- SignerSignOptions: notation.SignerSignOptions{
- SignatureMediaType: signatureMediaType,
- },
- ArtifactReference: artifactRef.String(),
+ SignatureMediaType: signatureMediaType,
+ ArtifactReference: artifactRef.String(),
}
_, err = notation.Sign(ctx, signer, repo, signOptions)
@@ -2268,9 +2229,7 @@ func TestOCIRepository_reconcileSource_verifyOCISourceSignatureCosign(t *testing
g.Expect(err).ToNot(HaveOccurred())
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "cosign-key",
- },
+ Name: "cosign-key",
Data: map[string][]byte{
"cosign.pub": keys.PublicBytes,
}}
@@ -2278,10 +2237,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceSignatureCosign(t *testing
g.Expect(r.Create(ctx, secret)).NotTo(HaveOccurred())
caSecret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-cert-cosign",
- Generation: 1,
- },
+ Name: "ca-cert-cosign",
+ Generation: 1,
Data: map[string][]byte{
"ca.crt": tlsCA,
},
@@ -2304,10 +2261,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceSignatureCosign(t *testing
})
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "verify-oci-source-signature-",
- Generation: 1,
- },
+ GenerateName: "verify-oci-source-signature-",
+ Generation: 1,
Spec: sourcev1.OCIRepositorySpec{
URL: fmt.Sprintf("oci://%s/podinfo", server.registryHost),
Verify: &sourcev1.OCIRepositoryVerification{
@@ -2534,10 +2489,8 @@ func TestOCIRepository_reconcileSource_verifyOCISourceSignature_keyless(t *testi
g := NewWithT(t)
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "verify-oci-source-signature-",
- Generation: 1,
- },
+ GenerateName: "verify-oci-source-signature-",
+ Generation: 1,
Spec: sourcev1.OCIRepositorySpec{
URL: "oci://ghcr.io/stefanprodan/manifests/podinfo",
Verify: &sourcev1.OCIRepositoryVerification{
@@ -2626,7 +2579,7 @@ func TestOCIRepository_reconcileSource_noop(t *testing.T) {
{
name: "full reconcile - same rev, unobserved ignore",
beforeFunc: func(obj *sourcev1.OCIRepository) {
- obj.Status.ObservedIgnore = ptr.To("aaa")
+ obj.Status.ObservedIgnore = new("aaa")
obj.Status.Artifact = &meta.Artifact{
Revision: testRevision,
}
@@ -2638,8 +2591,8 @@ func TestOCIRepository_reconcileSource_noop(t *testing.T) {
{
name: "noop - same rev, observed ignore",
beforeFunc: func(obj *sourcev1.OCIRepository) {
- obj.Spec.Ignore = ptr.To("aaa")
- obj.Status.ObservedIgnore = ptr.To("aaa")
+ obj.Spec.Ignore = new("aaa")
+ obj.Status.ObservedIgnore = new("aaa")
obj.Status.Artifact = &meta.Artifact{
Revision: testRevision,
}
@@ -2719,10 +2672,8 @@ func TestOCIRepository_reconcileSource_noop(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "noop-",
- Generation: 1,
- },
+ GenerateName: "noop-",
+ Generation: 1,
Spec: sourcev1.OCIRepositorySpec{
URL: fmt.Sprintf("oci://%s/podinfo", server.registryHost),
Reference: &sourcev1.OCIRepositoryRef{Tag: "6.1.5"},
@@ -2794,7 +2745,7 @@ func TestOCIRepository_reconcileArtifact(t *testing.T) {
targetPath: "testdata/oci/repository",
artifact: &meta.Artifact{Revision: "revision"},
beforeFunc: func(obj *sourcev1.OCIRepository) {
- obj.Spec.Ignore = ptr.To("foo.txt")
+ obj.Spec.Ignore = new("foo.txt")
},
want: sreconcile.ResultSuccess,
assertPaths: []string{
@@ -2834,7 +2785,7 @@ func TestOCIRepository_reconcileArtifact(t *testing.T) {
},
beforeFunc: func(obj *sourcev1.OCIRepository) {
obj.Status.Artifact = &meta.Artifact{Revision: "revision"}
- obj.Spec.Ignore = ptr.To("aaa")
+ obj.Spec.Ignore = new("aaa")
},
want: sreconcile.ResultSuccess,
assertPaths: []string{
@@ -2901,10 +2852,10 @@ func TestOCIRepository_reconcileArtifact(t *testing.T) {
Revision: "revision",
},
beforeFunc: func(obj *sourcev1.OCIRepository) {
- obj.Spec.Ignore = ptr.To("aaa")
+ obj.Spec.Ignore = new("aaa")
obj.Spec.LayerSelector = &sourcev1.OCILayerSelector{MediaType: "foo"}
obj.Status.Artifact = &meta.Artifact{Revision: "revision"}
- obj.Status.ObservedIgnore = ptr.To("aaa")
+ obj.Status.ObservedIgnore = new("aaa")
obj.Status.ObservedLayerSelector = &sourcev1.OCILayerSelector{MediaType: "foo"}
},
want: sreconcile.ResultSuccess,
@@ -2953,10 +2904,8 @@ func TestOCIRepository_reconcileArtifact(t *testing.T) {
_ = resetChmod(tt.targetPath, 0o755, 0o644)
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "reconcile-artifact-",
- Generation: 1,
- },
+ GenerateName: "reconcile-artifact-",
+ Generation: 1,
}
if tt.beforeFunc != nil {
tt.beforeFunc(obj)
@@ -3114,9 +3063,7 @@ func TestOCIRepository_getArtifactRef(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "artifact-url-",
- },
+ GenerateName: "artifact-url-",
Spec: sourcev1.OCIRepositorySpec{
URL: tt.url,
Interval: &metav1.Duration{Duration: interval},
@@ -3152,10 +3099,8 @@ func TestOCIRepository_invalidURL(t *testing.T) {
defer func() { g.Expect(testEnv.Delete(ctx, ns)).To(Succeed()) }()
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "ocirepository-reconcile",
- Namespace: ns.Name,
- },
+ GenerateName: "ocirepository-reconcile",
+ Namespace: ns.Name,
Spec: sourcev1.OCIRepositorySpec{
URL: "oci://ghcr.io/test/test:v1",
Interval: &metav1.Duration{Duration: 60 * time.Minute},
@@ -3194,22 +3139,18 @@ func TestOCIRepository_genericWorkloadIdentity(t *testing.T) {
defer func() { g.Expect(testEnv.Delete(ctx, ns)).To(Succeed()) }()
err = testEnv.Create(ctx, &corev1.ServiceAccount{
- ObjectMeta: metav1.ObjectMeta{
- Namespace: ns.Name,
- Name: "test",
- Annotations: map[string]string{
- cryptov1.AnnotationCredentialProvider: cryptov1.CredentialProviderKubernetes,
- cryptov1.AnnotationCredentialType: cryptov1.CredentialTypeJWT,
- },
+ Namespace: ns.Name,
+ Name: "test",
+ Annotations: map[string]string{
+ cryptov1.AnnotationCredentialProvider: cryptov1.CredentialProviderKubernetes,
+ cryptov1.AnnotationCredentialType: cryptov1.CredentialTypeJWT,
},
})
g.Expect(err).NotTo(HaveOccurred())
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "ocirepository-generic-olwi-",
- Namespace: ns.Name,
- },
+ GenerateName: "ocirepository-generic-olwi-",
+ Namespace: ns.Name,
Spec: sourcev1.OCIRepositorySpec{
URL: "oci://ghcr.io/stefanprodan/manifests/podinfo",
Interval: &metav1.Duration{Duration: 60 * time.Minute},
@@ -3286,7 +3227,7 @@ func TestOCIRepository_reconcileStorage(t *testing.T) {
Revision: "d",
Digest: "sha256:18ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4",
URL: testStorage.Hostname + "/oci-reconcile-storage/d.txt",
- Size: int64p(int64(len("d"))),
+ Size: new(int64(len("d"))),
},
assertPaths: []string{
"/oci-reconcile-storage/d.txt",
@@ -3415,7 +3356,7 @@ func TestOCIRepository_reconcileStorage(t *testing.T) {
Revision: "f",
Digest: "sha256:3b9c358f36f0a31b6ad3e14f309c7cf198ac9246e8316f9ce543d5b19ac02b80",
URL: testStorage.Hostname + "/oci-reconcile-storage/hostname.txt",
- Size: int64p(int64(len("file"))),
+ Size: new(int64(len("file"))),
},
assertConditions: []metav1.Condition{
*conditions.TrueCondition(meta.ReadyCondition, "foo", "bar"),
@@ -3439,10 +3380,8 @@ func TestOCIRepository_reconcileStorage(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-",
- Generation: 1,
- },
+ GenerateName: "test-",
+ Generation: 1,
}
if tt.beforeFunc != nil {
@@ -3499,12 +3438,10 @@ func TestOCIRepository_ReconcileDelete(t *testing.T) {
}
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{
- Name: "reconcile-delete-",
- DeletionTimestamp: &metav1.Time{Time: time.Now()},
- Finalizers: []string{
- sourcev1.SourceFinalizer,
- },
+ Name: "reconcile-delete-",
+ DeletionTimestamp: &metav1.Time{Time: time.Now()},
+ Finalizers: []string{
+ sourcev1.SourceFinalizer,
},
Status: sourcev1.OCIRepositoryStatus{},
}
@@ -3554,10 +3491,8 @@ func TestOCIRepositoryReconciler_notify(t *testing.T) {
}
},
wantEvent: &corev1.Event{
- ObjectMeta: metav1.ObjectMeta{
- Annotations: map[string]string{
- fmt.Sprintf("%s/%s", sourcev1.GroupVersion.Group, eventv1.MetaOriginRevisionKey): "6.1.8/b3b00fe35424a45d373bf4c7214178bc36fd7872",
- },
+ Annotations: map[string]string{
+ fmt.Sprintf("%s/%s", sourcev1.GroupVersion.Group, eventv1.MetaOriginRevisionKey): "6.1.8/b3b00fe35424a45d373bf4c7214178bc36fd7872",
},
Type: corev1.EventTypeNormal,
Reason: sourcev1.NewArtifactReason,
@@ -3586,10 +3521,8 @@ func TestOCIRepositoryReconciler_notify(t *testing.T) {
conditions.MarkTrue(obj, meta.ReadyCondition, meta.SucceededReason, "ready")
},
wantEvent: &corev1.Event{
- ObjectMeta: metav1.ObjectMeta{
- Annotations: map[string]string{
- fmt.Sprintf("%s/%s", sourcev1.GroupVersion.Group, eventv1.MetaOriginRevisionKey): "6.1.8/b3b00fe35424a45d373bf4c7214178bc36fd7872",
- },
+ Annotations: map[string]string{
+ fmt.Sprintf("%s/%s", sourcev1.GroupVersion.Group, eventv1.MetaOriginRevisionKey): "6.1.8/b3b00fe35424a45d373bf4c7214178bc36fd7872",
},
Type: corev1.EventTypeNormal,
Reason: meta.SucceededReason,
@@ -3760,7 +3693,7 @@ func pushMultiplePodinfoImages(serverURL string, insecure bool, versions ...stri
}
opts = append(opts, crane.WithTransport(transport))
}
- for i := 0; i < len(versions); i++ {
+ for i := range versions {
pi, err := createPodinfoImageFromTar(fmt.Sprintf("podinfo-%s.tar", versions[i]), versions[i], serverURL, opts...)
if err != nil {
return nil, err
@@ -3791,34 +3724,34 @@ func TestOCIContentConfigChanged(t *testing.T) {
{
name: "same ignore, no layer selector",
spec: sourcev1.OCIRepositorySpec{
- Ignore: ptr.To("nnn"),
+ Ignore: new("nnn"),
},
status: sourcev1.OCIRepositoryStatus{
- ObservedIgnore: ptr.To("nnn"),
+ ObservedIgnore: new("nnn"),
},
want: false,
},
{
name: "different ignore, no layer selector",
spec: sourcev1.OCIRepositorySpec{
- Ignore: ptr.To("nnn"),
+ Ignore: new("nnn"),
},
status: sourcev1.OCIRepositoryStatus{
- ObservedIgnore: ptr.To("mmm"),
+ ObservedIgnore: new("mmm"),
},
want: true,
},
{
name: "same ignore, same layer selector",
spec: sourcev1.OCIRepositorySpec{
- Ignore: ptr.To("nnn"),
+ Ignore: new("nnn"),
LayerSelector: &sourcev1.OCILayerSelector{
MediaType: "foo",
Operation: sourcev1.OCILayerExtract,
},
},
status: sourcev1.OCIRepositoryStatus{
- ObservedIgnore: ptr.To("nnn"),
+ ObservedIgnore: new("nnn"),
ObservedLayerSelector: &sourcev1.OCILayerSelector{
MediaType: "foo",
Operation: sourcev1.OCILayerExtract,
@@ -3829,14 +3762,14 @@ func TestOCIContentConfigChanged(t *testing.T) {
{
name: "same ignore, different layer selector operation",
spec: sourcev1.OCIRepositorySpec{
- Ignore: ptr.To("nnn"),
+ Ignore: new("nnn"),
LayerSelector: &sourcev1.OCILayerSelector{
MediaType: "foo",
Operation: sourcev1.OCILayerCopy,
},
},
status: sourcev1.OCIRepositoryStatus{
- ObservedIgnore: ptr.To("nnn"),
+ ObservedIgnore: new("nnn"),
ObservedLayerSelector: &sourcev1.OCILayerSelector{
MediaType: "foo",
Operation: sourcev1.OCILayerExtract,
@@ -3847,14 +3780,14 @@ func TestOCIContentConfigChanged(t *testing.T) {
{
name: "same ignore, different layer selector mediatype",
spec: sourcev1.OCIRepositorySpec{
- Ignore: ptr.To("nnn"),
+ Ignore: new("nnn"),
LayerSelector: &sourcev1.OCILayerSelector{
MediaType: "bar",
Operation: sourcev1.OCILayerExtract,
},
},
status: sourcev1.OCIRepositoryStatus{
- ObservedIgnore: ptr.To("nnn"),
+ ObservedIgnore: new("nnn"),
ObservedLayerSelector: &sourcev1.OCILayerSelector{
MediaType: "foo",
Operation: sourcev1.OCILayerExtract,
@@ -3951,17 +3884,17 @@ func Test_verificationMaterialFingerprint(t *testing.T) {
func TestOCIRepositoryReconciler_verificationPolicyChanged(t *testing.T) {
secret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{Name: "cosign-key", Namespace: "default"},
- Data: map[string][]byte{"cosign.pub": []byte("key")},
+ Name: "cosign-key", Namespace: "default",
+ Data: map[string][]byte{"cosign.pub": []byte("key")},
}
rotatedSecret := &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{Name: "cosign-key", Namespace: "default"},
- Data: map[string][]byte{"cosign.pub": []byte("rotated-key")},
+ Name: "cosign-key", Namespace: "default",
+ Data: map[string][]byte{"cosign.pub": []byte("rotated-key")},
}
newObj := func(secretRef *meta.LocalObjectReference, fingerprint string) *sourcev1.OCIRepository {
obj := &sourcev1.OCIRepository{
- ObjectMeta: metav1.ObjectMeta{Name: "oci", Namespace: "default"},
+ Name: "oci", Namespace: "default",
Spec: sourcev1.OCIRepositorySpec{
Verify: &sourcev1.OCIRepositoryVerification{Provider: "cosign"},
},
diff --git a/internal/controller/ocirepository_verify_test.go b/internal/controller/ocirepository_verify_test.go
index 1c347027e..7429eab3d 100644
--- a/internal/controller/ocirepository_verify_test.go
+++ b/internal/controller/ocirepository_verify_test.go
@@ -23,7 +23,6 @@ import (
"github.com/fluxcd/pkg/apis/meta"
. "github.com/onsi/gomega"
corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
)
@@ -45,10 +44,8 @@ func TestReadTrustedRootFromSecret(t *testing.T) {
namespace: "default",
ref: &meta.LocalObjectReference{Name: "sigstore-root"},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "sigstore-root",
- Namespace: "default",
- },
+ Name: "sigstore-root",
+ Namespace: "default",
Data: map[string][]byte{
"trusted_root.json": []byte(`{"mediaType":"application/vnd.dev.sigstore.trustedroot+json;version=0.1"}`),
},
@@ -66,10 +63,8 @@ func TestReadTrustedRootFromSecret(t *testing.T) {
namespace: "default",
ref: &meta.LocalObjectReference{Name: "no-key-secret"},
secret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "no-key-secret",
- Namespace: "default",
- },
+ Name: "no-key-secret",
+ Namespace: "default",
Data: map[string][]byte{
"other-key": []byte("data"),
},
diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go
index 8023923fb..56b9294a7 100644
--- a/internal/controller/suite_test.go
+++ b/internal/controller/suite_test.go
@@ -169,7 +169,7 @@ func setupRegistryServer(ctx context.Context, workspaceDir string, opts registry
config.HTTP.Addr = fmt.Sprintf(":%d", port)
config.HTTP.DrainTimeout = time.Duration(10) * time.Second
- config.Storage = map[string]configuration.Parameters{"inmemory": map[string]interface{}{}}
+ config.Storage = map[string]configuration.Parameters{"inmemory": map[string]any{}}
if opts.withBasicAuth {
// create htpasswd file (w BCrypt, which is required)
@@ -513,8 +513,9 @@ func randStringRunes(n int) string {
return string(b)
}
+//go:fix inline
func int64p(i int64) *int64 {
- return &i
+ return new(i)
}
func logOCIRepoStatus(t *testing.T, obj *sourcev1.OCIRepository) {
diff --git a/internal/error/error.go b/internal/error/error.go
index cb3a8cd78..650ffb26a 100644
--- a/internal/error/error.go
+++ b/internal/error/error.go
@@ -80,13 +80,11 @@ func NewStalling(err error, reason string) *Stalling {
// Stalling errors are not returned to the runtime. Log it explicitly.
// Since this failure requires user interaction, send warning notification.
return &Stalling{
- Reason: reason,
- Err: err,
- Config: Config{
- Event: corev1.EventTypeWarning,
- Log: true,
- Notification: true,
- },
+ Reason: reason,
+ Err: err,
+ Event: corev1.EventTypeWarning,
+ Log: true,
+ Notification: true,
}
}
@@ -124,10 +122,8 @@ func NewWaiting(err error, reason string) *Waiting {
return &Waiting{
Reason: reason,
Err: err,
- Config: Config{
- Event: corev1.EventTypeNormal,
- Log: true,
- },
+ Event: corev1.EventTypeNormal,
+ Log: true,
}
}
@@ -157,11 +153,9 @@ func NewGeneric(err error, reason string) *Generic {
// Since it's a generic error, it'll be returned to the runtime and logged
// automatically, do not log it. Send failure notification.
return &Generic{
- Reason: reason,
- Err: err,
- Config: Config{
- Event: corev1.EventTypeWarning,
- Notification: true,
- },
+ Reason: reason,
+ Err: err,
+ Event: corev1.EventTypeWarning,
+ Notification: true,
}
}
diff --git a/internal/helm/chart/builder_local.go b/internal/helm/chart/builder_local.go
index 44399a80a..d9638c559 100644
--- a/internal/helm/chart/builder_local.go
+++ b/internal/helm/chart/builder_local.go
@@ -146,7 +146,7 @@ func (b *localChartBuilder) Build(ctx context.Context, ref Reference, p string,
// Merge chart values, if instructed
var (
- mergedValues map[string]interface{}
+ mergedValues map[string]any
valuesFiles []string
)
if len(opts.GetValuesFiles()) > 0 {
@@ -199,8 +199,8 @@ func (b *localChartBuilder) Build(ctx context.Context, ref Reference, p string,
// file is considered an error. If ignoreMissing is true, missing files are ignored.
// It returns the merge result and the list of files that contributed to that result,
// or an error.
-func mergeFileValues(baseDir string, paths []string, ignoreMissing bool) (map[string]interface{}, []string, error) {
- mergedValues := make(map[string]interface{})
+func mergeFileValues(baseDir string, paths []string, ignoreMissing bool) (map[string]any, []string, error) {
+ mergedValues := make(map[string]any)
valuesFiles := make([]string, 0, len(paths))
for _, p := range paths {
secureP, err := securejoin.SecureJoin(baseDir, p)
@@ -222,7 +222,7 @@ func mergeFileValues(baseDir string, paths []string, ignoreMissing bool) (map[st
if err != nil {
return nil, nil, fmt.Errorf("could not read values from file '%s': %w", p, err)
}
- values := make(map[string]interface{})
+ values := make(map[string]any)
err = yaml.Unmarshal(b, &values)
if err != nil {
return nil, nil, fmt.Errorf("unmarshaling values from '%s' failed: %w", p, err)
diff --git a/internal/helm/chart/builder_local_test.go b/internal/helm/chart/builder_local_test.go
index cf9d6a742..9b8b5b512 100644
--- a/internal/helm/chart/builder_local_test.go
+++ b/internal/helm/chart/builder_local_test.go
@@ -285,7 +285,7 @@ func Test_mergeFileValues(t *testing.T) {
files []*common.File
paths []string
ignoreMissing bool
- wantValues map[string]interface{}
+ wantValues map[string]any
wantFiles []string
wantErr string
}{
@@ -297,7 +297,7 @@ func Test_mergeFileValues(t *testing.T) {
{Name: "c.yaml", Data: []byte("b: d")},
},
paths: []string{"a.yaml", "b.yaml", "c.yaml"},
- wantValues: map[string]interface{}{
+ wantValues: map[string]any{
"a": "b",
"b": "d",
},
@@ -328,7 +328,7 @@ func Test_mergeFileValues(t *testing.T) {
},
paths: []string{"a.yaml", "b.yaml"},
ignoreMissing: true,
- wantValues: map[string]interface{}{
+ wantValues: map[string]any{
"a": "b",
},
wantFiles: []string{"a.yaml"},
@@ -337,7 +337,7 @@ func Test_mergeFileValues(t *testing.T) {
name: "all files missing",
paths: []string{"a.yaml"},
ignoreMissing: true,
- wantValues: map[string]interface{}{},
+ wantValues: map[string]any{},
wantFiles: []string{},
},
}
diff --git a/internal/helm/chart/builder_remote.go b/internal/helm/chart/builder_remote.go
index dbe3addca..2cd76c112 100644
--- a/internal/helm/chart/builder_remote.go
+++ b/internal/helm/chart/builder_remote.go
@@ -235,8 +235,8 @@ func setBuildMetaData(version, versionMetadata string) (*semver.Version, error)
// missing files are ignored.
// It returns the merge result and the list of files that contributed to that result,
// or an error.
-func mergeChartValues(chart *helmchart.Chart, paths []string, ignoreMissing bool) (map[string]interface{}, []string, error) {
- mergedValues := make(map[string]interface{})
+func mergeChartValues(chart *helmchart.Chart, paths []string, ignoreMissing bool) (map[string]any, []string, error) {
+ mergedValues := make(map[string]any)
valuesFiles := make([]string, 0, len(paths))
for _, p := range paths {
cfn := filepath.Clean(p)
@@ -258,7 +258,7 @@ func mergeChartValues(chart *helmchart.Chart, paths []string, ignoreMissing bool
}
return nil, nil, fmt.Errorf("no values file found at path '%s'", p)
}
- values := make(map[string]interface{})
+ values := make(map[string]any)
if err := yaml.Unmarshal(b, &values); err != nil {
return nil, nil, fmt.Errorf("unmarshaling values from '%s' failed: %w", p, err)
}
diff --git a/internal/helm/chart/builder_remote_test.go b/internal/helm/chart/builder_remote_test.go
index 4301f0630..bf6534606 100644
--- a/internal/helm/chart/builder_remote_test.go
+++ b/internal/helm/chart/builder_remote_test.go
@@ -456,7 +456,7 @@ func Test_mergeChartValues(t *testing.T) {
chart *helmchart.Chart
paths []string
ignoreMissing bool
- wantValues map[string]interface{}
+ wantValues map[string]any
wantFiles []string
wantErr string
}{
@@ -470,7 +470,7 @@ func Test_mergeChartValues(t *testing.T) {
},
},
paths: []string{"a.yaml", "b.yaml", "c.yaml"},
- wantValues: map[string]interface{}{
+ wantValues: map[string]any{
"a": "b",
"b": "d",
},
@@ -482,12 +482,12 @@ func Test_mergeChartValues(t *testing.T) {
Files: []*common.File{
{Name: "c.yaml", Data: []byte("b: d")},
},
- Values: map[string]interface{}{
+ Values: map[string]any{
"a": "b",
},
},
paths: []string{chartutil.ValuesfileName, "c.yaml"},
- wantValues: map[string]interface{}{
+ wantValues: map[string]any{
"a": "b",
"b": "d",
},
@@ -518,7 +518,7 @@ func Test_mergeChartValues(t *testing.T) {
},
paths: []string{"a.yaml", "b.yaml"},
ignoreMissing: true,
- wantValues: map[string]interface{}{
+ wantValues: map[string]any{
"a": "b",
},
wantFiles: []string{"a.yaml"},
@@ -528,19 +528,19 @@ func Test_mergeChartValues(t *testing.T) {
chart: &helmchart.Chart{},
paths: []string{"a.yaml"},
ignoreMissing: true,
- wantValues: map[string]interface{}{},
+ wantValues: map[string]any{},
wantFiles: []string{},
},
{
name: "uses chart values ignoring missing file",
chart: &helmchart.Chart{
- Values: map[string]interface{}{
+ Values: map[string]any{
"a": "b",
},
},
paths: []string{chartutil.ValuesfileName, "c.yaml"},
ignoreMissing: true,
- wantValues: map[string]interface{}{
+ wantValues: map[string]any{
"a": "b",
},
wantFiles: []string{chartutil.ValuesfileName},
diff --git a/internal/helm/chart/secureloader/ignore/rules.go b/internal/helm/chart/secureloader/ignore/rules.go
index d8054b44d..57858f432 100644
--- a/internal/helm/chart/secureloader/ignore/rules.go
+++ b/internal/helm/chart/secureloader/ignore/rules.go
@@ -170,10 +170,10 @@ func (r *Rules) parseRule(rule string) error {
rule = strings.TrimSuffix(rule, "/")
}
- if strings.HasPrefix(rule, "/") {
+ if after, ok := strings.CutPrefix(rule, "/"); ok {
// Require path matches the root path.
p.match = func(n string, fi os.FileInfo) bool {
- rule = strings.TrimPrefix(rule, "/")
+ rule = after
ok, err := filepath.Match(rule, n)
if err != nil {
log.Printf("Failed to compile %q: %s", rule, err)
diff --git a/internal/helm/getter/client_opts_test.go b/internal/helm/getter/client_opts_test.go
index 87247b6a8..5d18b9873 100644
--- a/internal/helm/getter/client_opts_test.go
+++ b/internal/helm/getter/client_opts_test.go
@@ -51,17 +51,13 @@ func TestGetClientOpts(t *testing.T) {
{
name: "HelmRepository with certSecretRef discards TLS config in secretRef",
certSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- },
+ Name: "ca-file",
Data: map[string][]byte{
"ca.crt": tlsCA,
},
},
authSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth",
- },
+ Name: "auth",
Data: map[string][]byte{
"username": []byte("user"),
"password": []byte("pass"),
@@ -75,9 +71,7 @@ func TestGetClientOpts(t *testing.T) {
{
name: "HelmRepository with TLS config only in secretRef is marked as deprecated",
authSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-tls",
- },
+ Name: "auth-tls",
Data: map[string][]byte{
"username": []byte("user"),
"password": []byte("pass"),
@@ -93,9 +87,7 @@ func TestGetClientOpts(t *testing.T) {
{
name: "OCI HelmRepository with secretRef has auth configured",
authSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-oci",
- },
+ Name: "auth-oci",
Data: map[string][]byte{
"username": []byte("user"),
"password": []byte("pass"),
@@ -117,9 +109,7 @@ func TestGetClientOpts(t *testing.T) {
{
name: "OCI HelmRepository with insecure repository",
authSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-oci",
- },
+ Name: "auth-oci",
Data: map[string][]byte{
"username": []byte("user"),
"password": []byte("pass"),
@@ -192,17 +182,13 @@ func TestGetClientOpts_registryTLSLoginOption(t *testing.T) {
{
name: "with valid caFile",
certSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- },
+ Name: "ca-file",
Data: map[string][]byte{
"ca.crt": tlsCA,
},
},
authSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-oci",
- },
+ Name: "auth-oci",
Data: map[string][]byte{
"username": []byte("user"),
"password": []byte("pass"),
@@ -214,15 +200,11 @@ func TestGetClientOpts_registryTLSLoginOption(t *testing.T) {
{
name: "without caFile",
certSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "ca-file",
- },
+ Name: "ca-file",
Data: map[string][]byte{},
},
authSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-oci",
- },
+ Name: "auth-oci",
Data: map[string][]byte{
"username": []byte("user"),
"password": []byte("pass"),
@@ -234,9 +216,7 @@ func TestGetClientOpts_registryTLSLoginOption(t *testing.T) {
name: "without cert secret",
certSecret: nil,
authSecret: &corev1.Secret{
- ObjectMeta: metav1.ObjectMeta{
- Name: "auth-oci",
- },
+ Name: "auth-oci",
Data: map[string][]byte{
"username": []byte("user"),
"password": []byte("pass"),
diff --git a/internal/helm/registry/auth_test.go b/internal/helm/registry/auth_test.go
index c0e3ffde5..b61d1b523 100644
--- a/internal/helm/registry/auth_test.go
+++ b/internal/helm/registry/auth_test.go
@@ -123,10 +123,10 @@ func TestLoginOptionFromSecret(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
g := NewWithT(t)
- secret := corev1.Secret{}
- secret.Name = "test-secret"
- secret.Data = tt.secretData
- secret.Type = tt.secretType
+ secret := corev1.Secret{
+ Name: "test-secret",
+ Data: tt.secretData,
+ Type: tt.secretType}
_, err := KeychainFromSecret(tt.url, secret)
g.Expect(err != nil).To(Equal(tt.wantErr))
diff --git a/internal/helm/repository/chart_repository.go b/internal/helm/repository/chart_repository.go
index 4e2f7dfc4..e82f93f90 100644
--- a/internal/helm/repository/chart_repository.go
+++ b/internal/helm/repository/chart_repository.go
@@ -27,6 +27,7 @@ import (
"net/url"
"os"
"path"
+ "slices"
"sort"
"strings"
"sync"
@@ -88,19 +89,19 @@ func IndexFromBytes(b []byte) (*repo.IndexFile, error) {
}
for name, cvs := range i.Entries {
- for idx := len(cvs) - 1; idx >= 0; idx-- {
- if cvs[idx] == nil {
+ for idx, cv := range slices.Backward(cvs) {
+ if cv == nil {
cvs = append(cvs[:idx], cvs[idx+1:]...)
continue
}
// When metadata section missing, initialize with no data
- if cvs[idx].Metadata == nil {
- cvs[idx].Metadata = &chart.Metadata{}
+ if cv.Metadata == nil {
+ cv.Metadata = &chart.Metadata{}
}
- if cvs[idx].APIVersion == "" {
- cvs[idx].APIVersion = chart.APIVersionV1
+ if cv.APIVersion == "" {
+ cv.APIVersion = chart.APIVersionV1
}
- if err := cvs[idx].Validate(); ignoreSkippableChartValidationError(err) != nil {
+ if err := cv.Validate(); ignoreSkippableChartValidationError(err) != nil {
cvs = append(cvs[:idx], cvs[idx+1:]...)
}
}
@@ -503,7 +504,7 @@ func (r *ChartRepository) VerifyChart(_ context.Context, _ *repo.ChartVersion) (
//
// Can potentially be replaced when Helm PR for JSON support has been merged.
// xref: https://github.com/helm/helm/pull/12245
-func jsonOrYamlUnmarshal(b []byte, i interface{}) error {
+func jsonOrYamlUnmarshal(b []byte, i any) error {
if json.Valid(b) {
return json.Unmarshal(b, i)
}
diff --git a/internal/helm/repository/chart_repository_test.go b/internal/helm/repository/chart_repository_test.go
index c9aadf8a2..cb41acf68 100644
--- a/internal/helm/repository/chart_repository_test.go
+++ b/internal/helm/repository/chart_repository_test.go
@@ -94,7 +94,6 @@ func TestIndexFromFile(t *testing.T) {
}
for _, tt := range tests {
- tt := tt
t.Run(tt.name, func(t *testing.T) {
g := NewWithT(t)
@@ -158,7 +157,6 @@ entries:
},
}
for _, tt := range tests {
- tt := tt
t.Run(tt.name, func(t *testing.T) {
g := NewWithT(t)
t.Parallel()
@@ -366,7 +364,6 @@ func TestChartRepository_DownloadChart(t *testing.T) {
},
}
for _, tt := range tests {
- tt := tt
t.Run(tt.name, func(t *testing.T) {
g := NewWithT(t)
t.Parallel()
diff --git a/internal/helm/repository/oci_chart_repository_test.go b/internal/helm/repository/oci_chart_repository_test.go
index b63aef8da..b10f25be6 100644
--- a/internal/helm/repository/oci_chart_repository_test.go
+++ b/internal/helm/repository/oci_chart_repository_test.go
@@ -255,7 +255,6 @@ func TestOCIChartRepository_DownloadChart(t *testing.T) {
}
for _, tc := range testCases {
- tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
diff --git a/internal/index/digest.go b/internal/index/digest.go
index 1f7bd642f..de9ea1f8e 100644
--- a/internal/index/digest.go
+++ b/internal/index/digest.go
@@ -19,6 +19,7 @@ package index
import (
"fmt"
"io"
+ "maps"
"sort"
"strings"
"sync"
@@ -54,9 +55,7 @@ func WithIndex(i map[string]string) DigesterOption {
if d.index == nil {
d.index = make(map[string]string, len(i))
}
- for k, v := range i {
- d.index[k] = v
- }
+ maps.Copy(d.index, i)
d.reset()
}
}
@@ -118,9 +117,7 @@ func (i *Digester) Index() map[string]string {
defer i.mu.RUnlock()
index := make(map[string]string, len(i.index))
- for k, v := range i.index {
- index[k] = v
- }
+ maps.Copy(index, i.index)
return index
}
diff --git a/internal/mock/s3/server.go b/internal/mock/s3/server.go
index ae5835308..b5e0644fa 100644
--- a/internal/mock/s3/server.go
+++ b/internal/mock/s3/server.go
@@ -103,17 +103,17 @@ func (s *Server) handler(w http.ResponseWriter, r *http.Request) {
return
}
- contents := ""
+ var contents strings.Builder
for _, o := range s.Objects {
etag := md5.Sum(o.Content)
- contents += fmt.Sprintf(`
+ contents.WriteString(fmt.Sprintf(`
%s
%s
%d
"%x"
STANDARD
- `, o.Key, o.LastModified.UTC().Format(time.RFC3339), len(o.Content), etag)
+ `, o.Key, o.LastModified.UTC().Format(time.RFC3339), len(o.Content), etag))
}
fmt.Fprintf(w, `
@@ -127,7 +127,7 @@ func (s *Server) handler(w http.ResponseWriter, r *http.Request) {
false
%s
- `, s.BucketName, len(s.Objects), contents)
+ `, s.BucketName, len(s.Objects), contents.String())
default:
if !strings.HasPrefix(r.URL.Path, "/"+s.BucketName+"/") {
writeError(w, r, http.StatusNotFound, "NoSuchBucket", "The specified bucket does not exist")
diff --git a/internal/oci/notation/notation_test.go b/internal/oci/notation/notation_test.go
index 1a547617d..3a3b2fa61 100644
--- a/internal/oci/notation/notation_test.go
+++ b/internal/oci/notation/notation_test.go
@@ -654,7 +654,7 @@ func TestRemoteRepoAuthTokenReuse(t *testing.T) {
// setting the scope hint on the context exactly like the ORAS repository
// methods do during verification.
doRequests := func(client *oauth.Client, n int) {
- for i := 0; i < n; i++ {
+ for range n {
ctx := oauth.WithScopesForHost(context.Background(), host, scope)
req, err := http.NewRequestWithContext(ctx, http.MethodGet,
fmt.Sprintf("%s/v2/%s/manifests/latest", baseURL, repository), nil)
@@ -787,15 +787,15 @@ func (t *testLogger) Enabled(level int) bool {
return true
}
-func (t *testLogger) Info(level int, msg string, keysAndValues ...interface{}) {
+func (t *testLogger) Info(level int, msg string, keysAndValues ...any) {
t.doLog(msg)
}
-func (t *testLogger) Error(err error, msg string, keysAndValues ...interface{}) {
+func (t *testLogger) Error(err error, msg string, keysAndValues ...any) {
t.doLog(msg)
}
-func (t *testLogger) WithValues(keysAndValues ...interface{}) logr.LogSink {
+func (t *testLogger) WithValues(keysAndValues ...any) logr.LogSink {
return t
}
diff --git a/internal/reconcile/event.go b/internal/reconcile/event.go
index 57ebf4eb4..cfb800b27 100644
--- a/internal/reconcile/event.go
+++ b/internal/reconcile/event.go
@@ -39,7 +39,7 @@ import (
// The action identifies the reconcile stage that produced the event and is
// recorded in the event's action field. Callers pass the relevant
// sourcev1.Action for the stage.
-func EventLogf(ctx context.Context, rec events.Recorder, obj runtime.Object, eventType string, reason string, action sourcev1.Action, messageFmt string, args ...interface{}) {
+func EventLogf(ctx context.Context, rec events.Recorder, obj runtime.Object, eventType string, reason string, action sourcev1.Action, messageFmt string, args ...any) {
msg := fmt.Sprintf(messageFmt, args...)
if eventType == corev1.EventTypeWarning {
ctrl.LoggerFrom(ctx).Error(errors.New(reason), msg)
diff --git a/internal/reconcile/reconcile_test.go b/internal/reconcile/reconcile_test.go
index e22f370b5..ef3978d4c 100644
--- a/internal/reconcile/reconcile_test.go
+++ b/internal/reconcile/reconcile_test.go
@@ -174,9 +174,7 @@ func TestComputeReconcileResult(t *testing.T) {
},
recErr: &serror.Generic{
Err: fmt.Errorf("some error"), Reason: "some reason",
- Config: serror.Config{
- Ignore: true,
- },
+ Ignore: true,
},
wantResult: ctrl.Result{RequeueAfter: testSuccessInterval},
afterFunc: func(t *WithT, obj conditions.Setter, patchOpts *patch.HelperOptions) {
diff --git a/internal/reconcile/summarize/matchers_test.go b/internal/reconcile/summarize/matchers_test.go
index b71aa99c8..ea09a82ea 100644
--- a/internal/reconcile/summarize/matchers_test.go
+++ b/internal/reconcile/summarize/matchers_test.go
@@ -39,7 +39,7 @@ type haveStatusObservedGeneration struct {
actual int64
}
-func (m *haveStatusObservedGeneration) Match(actual interface{}) (success bool, err error) {
+func (m *haveStatusObservedGeneration) Match(actual any) (success bool, err error) {
obj, ok := actual.(runtime.Object)
if !ok {
return false, fmt.Errorf("actual should be a runtime object")
@@ -54,11 +54,11 @@ func (m *haveStatusObservedGeneration) Match(actual interface{}) (success bool,
return Equal(m.expected).Match(og)
}
-func (m *haveStatusObservedGeneration) FailureMessage(actual interface{}) (message string) {
+func (m *haveStatusObservedGeneration) FailureMessage(actual any) (message string) {
return fmt.Sprintf("expected\n\t%d\nto match\n\t%d\n", m.actual, m.expected)
}
-func (m *haveStatusObservedGeneration) NegatedFailureMessage(actual interface{}) (message string) {
+func (m *haveStatusObservedGeneration) NegatedFailureMessage(actual any) (message string) {
return fmt.Sprintf("expected\n\t%d\nto not match\n\t%d\n", m.actual, m.expected)
}
@@ -75,7 +75,7 @@ type haveStatusLastHandledReconcileAt struct {
actual string
}
-func (m *haveStatusLastHandledReconcileAt) Match(actual interface{}) (success bool, err error) {
+func (m *haveStatusLastHandledReconcileAt) Match(actual any) (success bool, err error) {
obj, ok := actual.(runtime.Object)
if !ok {
return false, fmt.Errorf("actual should be a runtime object")
@@ -90,10 +90,10 @@ func (m *haveStatusLastHandledReconcileAt) Match(actual interface{}) (success bo
return Equal(m.expected).Match(ra)
}
-func (m *haveStatusLastHandledReconcileAt) FailureMessage(actual interface{}) (message string) {
+func (m *haveStatusLastHandledReconcileAt) FailureMessage(actual any) (message string) {
return fmt.Sprintf("expected\n\t%s\nto match\n\t%s\n", m.actual, m.expected)
}
-func (m *haveStatusLastHandledReconcileAt) NegatedFailureMessage(actual interface{}) (message string) {
+func (m *haveStatusLastHandledReconcileAt) NegatedFailureMessage(actual any) (message string) {
return fmt.Sprintf("expected\n\t%s\nto not match\n\t%s\n", m.actual, m.expected)
}
diff --git a/internal/reconcile/summarize/processor.go b/internal/reconcile/summarize/processor.go
index 2b1fdddb6..4dda3c508 100644
--- a/internal/reconcile/summarize/processor.go
+++ b/internal/reconcile/summarize/processor.go
@@ -72,7 +72,7 @@ func ErrorActionHandler(ctx context.Context, recorder events.Recorder, obj clien
}
// logError logs error based on the passed error configurations.
-func logError(ctx context.Context, eventType string, err error, msg string, keysAndValues ...interface{}) {
+func logError(ctx context.Context, eventType string, err error, msg string, keysAndValues ...any) {
switch eventType {
case corev1.EventTypeNormal, serror.EventTypeNone:
ctrl.LoggerFrom(ctx).Info(msg, keysAndValues...)
diff --git a/internal/reconcile/summarize/processor_test.go b/internal/reconcile/summarize/processor_test.go
index d7af0a00f..652516b14 100644
--- a/internal/reconcile/summarize/processor_test.go
+++ b/internal/reconcile/summarize/processor_test.go
@@ -21,7 +21,6 @@ import (
"testing"
. "github.com/onsi/gomega"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/fluxcd/pkg/apis/meta"
@@ -109,9 +108,7 @@ func TestRecordReconcileReq(t *testing.T) {
g := NewWithT(t)
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-obj",
- },
+ GenerateName: "test-obj",
}
if tt.beforeFunc != nil {
diff --git a/internal/reconcile/summarize/summary_test.go b/internal/reconcile/summarize/summary_test.go
index c9acbca38..afbf9312c 100644
--- a/internal/reconcile/summarize/summary_test.go
+++ b/internal/reconcile/summarize/summary_test.go
@@ -328,10 +328,8 @@ func TestSummarizeAndPatch(t *testing.T) {
g.Expect(sourcev1.AddToScheme(scheme)).To(Succeed())
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-",
- Generation: tt.generation,
- },
+ GenerateName: "test-",
+ Generation: tt.generation,
Spec: sourcev1.GitRepositorySpec{
Interval: metav1.Duration{Duration: 5 * time.Second},
},
@@ -458,9 +456,7 @@ func TestSummarizeAndPatch_Intermediate(t *testing.T) {
Build()
obj := &sourcev1.GitRepository{
- ObjectMeta: metav1.ObjectMeta{
- GenerateName: "test-",
- },
+ GenerateName: "test-",
Spec: sourcev1.GitRepositorySpec{
Interval: metav1.Duration{Duration: interval},
},
diff --git a/internal/util/temp_test.go b/internal/util/temp_test.go
index 2f98079c6..a5e85fc38 100644
--- a/internal/util/temp_test.go
+++ b/internal/util/temp_test.go
@@ -23,7 +23,6 @@ import (
. "github.com/onsi/gomega"
corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
)
@@ -75,12 +74,8 @@ func Test_pattern(t *testing.T) {
func mockObj() client.Object {
return &corev1.Secret{
- TypeMeta: metav1.TypeMeta{
- Kind: "Secret",
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "foo",
- Namespace: "default",
- },
+ Kind: "Secret",
+ Name: "foo",
+ Namespace: "default",
}
}
diff --git a/main.go b/main.go
index 7379b1346..7720169f7 100644
--- a/main.go
+++ b/main.go
@@ -32,7 +32,6 @@ import (
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
- "k8s.io/utils/ptr"
ctrl "sigs.k8s.io/controller-runtime"
ctrlcache "sigs.k8s.io/controller-runtime/pkg/cache"
ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"
@@ -461,7 +460,7 @@ func mustSetupManager(metricsAddr, healthAddr string, maxConcurrent int,
ExtraHandlers: pprof.GetHandlers(),
},
Controller: ctrlcfg.Controller{
- RecoverPanic: ptr.To(true),
+ RecoverPanic: new(true),
MaxConcurrentReconciles: maxConcurrent,
},
}
diff --git a/tests/registry/registry.go b/tests/registry/registry.go
index 28b36fd20..b8a550d17 100644
--- a/tests/registry/registry.go
+++ b/tests/registry/registry.go
@@ -51,7 +51,7 @@ func New(t *testing.T) string {
config := &configuration.Configuration{}
config.HTTP.Addr = addr
config.HTTP.DrainTimeout = time.Duration(10) * time.Second
- config.Storage = map[string]configuration.Parameters{"inmemory": map[string]interface{}{}}
+ config.Storage = map[string]configuration.Parameters{"inmemory": map[string]any{}}
config.Log.AccessLog.Disabled = true
config.Log.Level = "error"
logrus.SetOutput(io.Discard)