Skip to content

Commit

Permalink
Return an error when receiving no provider or providerRef
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathan-innis committed Feb 2, 2023
1 parent 9766dd1 commit fd93c0e
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 15 deletions.
2 changes: 1 addition & 1 deletion hack/toolchain.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ tools() {
go install github.com/mikefarah/yq/[email protected]
go install github.com/norwoodj/helm-docs/cmd/[email protected]
go install sigs.k8s.io/controller-runtime/tools/[email protected]
go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.8.0
go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.11.2
go install github.com/sigstore/cosign/cmd/[email protected]
go install github.com/gohugoio/[email protected]+extended
go install golang.org/x/vuln/cmd/[email protected]
Expand Down
8 changes: 1 addition & 7 deletions pkg/apis/crds/karpenter.sh_machines.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.8.0
controller-gen.kubebuilder.io/version: v0.11.2
creationTimestamp: null
name: machines.karpenter.sh
spec:
Expand Down Expand Up @@ -327,9 +327,3 @@ spec:
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
10 changes: 3 additions & 7 deletions pkg/apis/crds/karpenter.sh_provisioners.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.8.0
controller-gen.kubebuilder.io/version: v0.11.2
creationTimestamp: null
name: provisioners.karpenter.sh
spec:
Expand Down Expand Up @@ -311,6 +311,8 @@ spec:
minimum: 1
type: integer
type: object
x-kubernetes-validations:
- rule: has(self.provider) || has(self.providerRef)
status:
description: ProvisionerStatus defines the observed state of Provisioner
properties:
Expand Down Expand Up @@ -370,9 +372,3 @@ spec:
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
1 change: 1 addition & 0 deletions pkg/apis/v1alpha5/provisioner.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
// launch nodes in response to pods that are unschedulable. A single provisioner
// is capable of managing a diverse set of nodes. Node properties are determined
// from a combination of provisioner and pod scheduling constraints.
// +kubebuilder:validation:XValidation:rule="has(self.provider) || has(self.providerRef)"
type ProvisionerSpec struct {
// Annotations are applied to every node.
//+optional
Expand Down
3 changes: 3 additions & 0 deletions pkg/apis/v1alpha5/provisioner_validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,9 @@ func (s *ProvisionerSpec) validateProvider() *apis.FieldError {
if s.Provider != nil && s.ProviderRef != nil {
return apis.ErrMultipleOneOf(providerPath, providerRefPath)
}
if s.Provider == nil && s.ProviderRef == nil {
return apis.ErrMissingOneOf(providerPath, providerRefPath)
}
return nil
}

Expand Down

0 comments on commit fd93c0e

Please sign in to comment.