mirror of https://github.com/k3s-io/k3s
Merge pull request #8552 from thockin/rc-default-1
Change v1 API to default RC replicas to 1pull/6/head
commit
434a9ff57b
|
@ -25,9 +25,12 @@ import (
|
|||
)
|
||||
|
||||
func addConversionFuncs() {
|
||||
// Add non-generated conversion functions
|
||||
err := api.Scheme.AddConversionFuncs(
|
||||
convert_api_StatusDetails_To_v1_StatusDetails,
|
||||
convert_v1_StatusDetails_To_api_StatusDetails,
|
||||
convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec,
|
||||
convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec,
|
||||
)
|
||||
if err != nil {
|
||||
// If one of the conversion functions is malformed, detect it immediately.
|
||||
|
@ -175,3 +178,68 @@ func convert_api_StatusCause_To_v1_StatusCause(in *api.StatusCause, out *StatusC
|
|||
out.Field = in.Field
|
||||
return nil
|
||||
}
|
||||
|
||||
func convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *api.ReplicationControllerSpec, out *ReplicationControllerSpec, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*api.ReplicationControllerSpec))(in)
|
||||
}
|
||||
out.Replicas = new(int)
|
||||
*out.Replicas = in.Replicas
|
||||
if in.Selector != nil {
|
||||
out.Selector = make(map[string]string)
|
||||
for key, val := range in.Selector {
|
||||
out.Selector[key] = val
|
||||
}
|
||||
} else {
|
||||
out.Selector = nil
|
||||
}
|
||||
if in.TemplateRef != nil {
|
||||
out.TemplateRef = new(ObjectReference)
|
||||
if err := convert_api_ObjectReference_To_v1_ObjectReference(in.TemplateRef, out.TemplateRef, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.TemplateRef = nil
|
||||
}
|
||||
if in.Template != nil {
|
||||
out.Template = new(PodTemplateSpec)
|
||||
if err := convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Template = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec(in *ReplicationControllerSpec, out *api.ReplicationControllerSpec, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*ReplicationControllerSpec))(in)
|
||||
}
|
||||
out.Replicas = *in.Replicas
|
||||
if in.Selector != nil {
|
||||
out.Selector = make(map[string]string)
|
||||
for key, val := range in.Selector {
|
||||
out.Selector[key] = val
|
||||
}
|
||||
} else {
|
||||
out.Selector = nil
|
||||
}
|
||||
if in.TemplateRef != nil {
|
||||
out.TemplateRef = new(api.ObjectReference)
|
||||
if err := convert_v1_ObjectReference_To_api_ObjectReference(in.TemplateRef, out.TemplateRef, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.TemplateRef = nil
|
||||
}
|
||||
if in.Template != nil {
|
||||
out.Template = new(api.PodTemplateSpec)
|
||||
if err := convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Template = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -1700,38 +1700,6 @@ func convert_api_ReplicationControllerList_To_v1_ReplicationControllerList(in *a
|
|||
return nil
|
||||
}
|
||||
|
||||
func convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *api.ReplicationControllerSpec, out *ReplicationControllerSpec, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*api.ReplicationControllerSpec))(in)
|
||||
}
|
||||
out.Replicas = in.Replicas
|
||||
if in.Selector != nil {
|
||||
out.Selector = make(map[string]string)
|
||||
for key, val := range in.Selector {
|
||||
out.Selector[key] = val
|
||||
}
|
||||
} else {
|
||||
out.Selector = nil
|
||||
}
|
||||
if in.TemplateRef != nil {
|
||||
out.TemplateRef = new(ObjectReference)
|
||||
if err := convert_api_ObjectReference_To_v1_ObjectReference(in.TemplateRef, out.TemplateRef, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.TemplateRef = nil
|
||||
}
|
||||
if in.Template != nil {
|
||||
out.Template = new(PodTemplateSpec)
|
||||
if err := convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Template = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in *api.ReplicationControllerStatus, out *ReplicationControllerStatus, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*api.ReplicationControllerStatus))(in)
|
||||
|
@ -3958,38 +3926,6 @@ func convert_v1_ReplicationControllerList_To_api_ReplicationControllerList(in *R
|
|||
return nil
|
||||
}
|
||||
|
||||
func convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec(in *ReplicationControllerSpec, out *api.ReplicationControllerSpec, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*ReplicationControllerSpec))(in)
|
||||
}
|
||||
out.Replicas = in.Replicas
|
||||
if in.Selector != nil {
|
||||
out.Selector = make(map[string]string)
|
||||
for key, val := range in.Selector {
|
||||
out.Selector[key] = val
|
||||
}
|
||||
} else {
|
||||
out.Selector = nil
|
||||
}
|
||||
if in.TemplateRef != nil {
|
||||
out.TemplateRef = new(api.ObjectReference)
|
||||
if err := convert_v1_ObjectReference_To_api_ObjectReference(in.TemplateRef, out.TemplateRef, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.TemplateRef = nil
|
||||
}
|
||||
if in.Template != nil {
|
||||
out.Template = new(api.PodTemplateSpec)
|
||||
if err := convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Template = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus(in *ReplicationControllerStatus, out *api.ReplicationControllerStatus, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*ReplicationControllerStatus))(in)
|
||||
|
@ -4626,7 +4562,6 @@ func init() {
|
|||
convert_api_RBDVolumeSource_To_v1_RBDVolumeSource,
|
||||
convert_api_RangeAllocation_To_v1_RangeAllocation,
|
||||
convert_api_ReplicationControllerList_To_v1_ReplicationControllerList,
|
||||
convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec,
|
||||
convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus,
|
||||
convert_api_ReplicationController_To_v1_ReplicationController,
|
||||
convert_api_ResourceQuotaList_To_v1_ResourceQuotaList,
|
||||
|
@ -4736,7 +4671,6 @@ func init() {
|
|||
convert_v1_RBDVolumeSource_To_api_RBDVolumeSource,
|
||||
convert_v1_RangeAllocation_To_api_RangeAllocation,
|
||||
convert_v1_ReplicationControllerList_To_api_ReplicationControllerList,
|
||||
convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec,
|
||||
convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus,
|
||||
convert_v1_ReplicationController_To_api_ReplicationController,
|
||||
convert_v1_ResourceQuotaList_To_api_ResourceQuotaList,
|
||||
|
|
|
@ -39,6 +39,10 @@ func addDefaultingFuncs() {
|
|||
obj.Labels = labels
|
||||
}
|
||||
}
|
||||
if obj.Spec.Replicas == nil {
|
||||
obj.Spec.Replicas = new(int)
|
||||
*obj.Spec.Replicas = 1
|
||||
}
|
||||
},
|
||||
func(obj *Volume) {
|
||||
if util.AllPtrFieldsNil(&obj.VolumeSource) {
|
||||
|
|
|
@ -155,6 +155,79 @@ func TestSetDefaultReplicationController(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func newInt(val int) *int {
|
||||
p := new(int)
|
||||
*p = val
|
||||
return p
|
||||
}
|
||||
|
||||
func TestSetDefaultReplicationControllerReplicas(t *testing.T) {
|
||||
tests := []struct {
|
||||
rc versioned.ReplicationController
|
||||
expectReplicas int
|
||||
}{
|
||||
{
|
||||
rc: versioned.ReplicationController{
|
||||
Spec: versioned.ReplicationControllerSpec{
|
||||
Template: &versioned.PodTemplateSpec{
|
||||
ObjectMeta: versioned.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expectReplicas: 1,
|
||||
},
|
||||
{
|
||||
rc: versioned.ReplicationController{
|
||||
Spec: versioned.ReplicationControllerSpec{
|
||||
Replicas: newInt(0),
|
||||
Template: &versioned.PodTemplateSpec{
|
||||
ObjectMeta: versioned.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expectReplicas: 0,
|
||||
},
|
||||
{
|
||||
rc: versioned.ReplicationController{
|
||||
Spec: versioned.ReplicationControllerSpec{
|
||||
Replicas: newInt(3),
|
||||
Template: &versioned.PodTemplateSpec{
|
||||
ObjectMeta: versioned.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
"foo": "bar",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expectReplicas: 3,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
rc := &test.rc
|
||||
obj2 := roundTrip(t, runtime.Object(rc))
|
||||
rc2, ok := obj2.(*versioned.ReplicationController)
|
||||
if !ok {
|
||||
t.Errorf("unexpected object: %v", rc2)
|
||||
t.FailNow()
|
||||
}
|
||||
if rc2.Spec.Replicas == nil {
|
||||
t.Errorf("unexpected nil Replicas")
|
||||
} else if test.expectReplicas != *rc2.Spec.Replicas {
|
||||
t.Errorf("expected: %d replicas, got: %d", test.expectReplicas, *rc2.Spec.Replicas)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSetDefaultService(t *testing.T) {
|
||||
svc := &versioned.Service{}
|
||||
obj2 := roundTrip(t, runtime.Object(svc))
|
||||
|
|
|
@ -937,7 +937,7 @@ type PodTemplateList struct {
|
|||
// ReplicationControllerSpec is the specification of a replication controller.
|
||||
type ReplicationControllerSpec struct {
|
||||
// Replicas is the number of desired replicas.
|
||||
Replicas int `json:"replicas,omitempty" description:"number of replicas desired"`
|
||||
Replicas *int `json:"replicas,omitempty" description:"number of replicas desired; defaults to 1"`
|
||||
|
||||
// Selector is a label query over pods that should match the Replicas count.
|
||||
// If Selector is empty, it is defaulted to the labels present on the Pod template.
|
||||
|
|
Loading…
Reference in New Issue