Skip to content

Commit 1a29c94

Browse files
authored
chore!: add ExactlyOneOf validation for SCM provider fields (#586)
* chore!: add ExactlyOneOf validation for SCM provider fields Signed-off-by: Michael Crenshaw <[email protected]> * fix tests Signed-off-by: Michael Crenshaw <[email protected]> * simplify Signed-off-by: Michael Crenshaw <[email protected]> --------- Signed-off-by: Michael Crenshaw <[email protected]>
1 parent f5816c0 commit 1a29c94

9 files changed

+40
-0
lines changed

api/v1alpha1/gitrepository_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
2525

2626
// GitRepositorySpec defines the desired state of GitRepository
27+
// +kubebuilder:validation:ExactlyOneOf=github;gitlab;forgejo;fake
2728
type GitRepositorySpec struct {
2829
GitHub *GitHubRepo `json:"github,omitempty"`
2930
GitLab *GitLabRepo `json:"gitlab,omitempty"`

api/v1alpha1/scmprovider_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
var ScmProviderKind = reflect.TypeOf(ScmProvider{}).Name()
3232

3333
// ScmProviderSpec defines the desired state of ScmProvider
34+
// +kubebuilder:validation:ExactlyOneOf=github;gitlab;forgejo;fake
3435
type ScmProviderSpec struct {
3536
// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
3637
// Important: Run "make" to regenerate code after modifying this file

config/crd/bases/promoter.argoproj.io_clusterscmproviders.yaml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/promoter.argoproj.io_gitrepositories.yaml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/promoter.argoproj.io_scmproviders.yaml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/install.yaml

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/controller/clusterscmprovider_controller_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222

2323
. "github.com/onsi/ginkgo/v2"
2424
. "github.com/onsi/gomega"
25+
2526
"k8s.io/apimachinery/pkg/api/errors"
2627
"k8s.io/apimachinery/pkg/types"
2728
"sigs.k8s.io/controller-runtime/pkg/reconcile"
@@ -62,6 +63,9 @@ var _ = Describe("ClusterScmProvider Controller", func() {
6263
Name: resourceName,
6364
Namespace: "default",
6465
},
66+
Spec: promoterv1alpha1.ScmProviderSpec{
67+
Fake: &promoterv1alpha1.Fake{},
68+
},
6569
// TODO(user): Specify other spec details if needed.
6670
}
6771
Expect(k8sClient.Create(ctx, resource)).To(Succeed())

internal/controller/gitrepository_controller_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ var _ = Describe("GitRepository Controller", func() {
6363
Namespace: "default",
6464
},
6565
Spec: promoterv1alpha1.GitRepositorySpec{
66+
Fake: &promoterv1alpha1.FakeRepo{},
6667
ScmProviderRef: promoterv1alpha1.ScmProviderObjectReference{
6768
Kind: promoterv1alpha1.ScmProviderKind,
6869
},

internal/controller/scmprovider_controller_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ var _ = Describe("ScmProvider Controller", func() {
6262
Name: resourceName,
6363
Namespace: "default",
6464
},
65+
Spec: promoterv1alpha1.ScmProviderSpec{
66+
Fake: &promoterv1alpha1.Fake{},
67+
},
6568
// TODO(user): Specify other spec details if needed.
6669
}
6770
Expect(k8sClient.Create(ctx, resource)).To(Succeed())

0 commit comments

Comments
 (0)