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() {
|
func addConversionFuncs() {
|
||||||
|
// Add non-generated conversion functions
|
||||||
err := api.Scheme.AddConversionFuncs(
|
err := api.Scheme.AddConversionFuncs(
|
||||||
convert_api_StatusDetails_To_v1_StatusDetails,
|
convert_api_StatusDetails_To_v1_StatusDetails,
|
||||||
convert_v1_StatusDetails_To_api_StatusDetails,
|
convert_v1_StatusDetails_To_api_StatusDetails,
|
||||||
|
convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec,
|
||||||
|
convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// If one of the conversion functions is malformed, detect it immediately.
|
// 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
|
out.Field = in.Field
|
||||||
return nil
|
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
|
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 {
|
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 {
|
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||||
defaulting.(func(*api.ReplicationControllerStatus))(in)
|
defaulting.(func(*api.ReplicationControllerStatus))(in)
|
||||||
|
@ -3958,38 +3926,6 @@ func convert_v1_ReplicationControllerList_To_api_ReplicationControllerList(in *R
|
||||||
return 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
|
|
||||||
}
|
|
||||||
|
|
||||||
func convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus(in *ReplicationControllerStatus, out *api.ReplicationControllerStatus, s conversion.Scope) error {
|
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 {
|
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||||
defaulting.(func(*ReplicationControllerStatus))(in)
|
defaulting.(func(*ReplicationControllerStatus))(in)
|
||||||
|
@ -4626,7 +4562,6 @@ func init() {
|
||||||
convert_api_RBDVolumeSource_To_v1_RBDVolumeSource,
|
convert_api_RBDVolumeSource_To_v1_RBDVolumeSource,
|
||||||
convert_api_RangeAllocation_To_v1_RangeAllocation,
|
convert_api_RangeAllocation_To_v1_RangeAllocation,
|
||||||
convert_api_ReplicationControllerList_To_v1_ReplicationControllerList,
|
convert_api_ReplicationControllerList_To_v1_ReplicationControllerList,
|
||||||
convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec,
|
|
||||||
convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus,
|
convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus,
|
||||||
convert_api_ReplicationController_To_v1_ReplicationController,
|
convert_api_ReplicationController_To_v1_ReplicationController,
|
||||||
convert_api_ResourceQuotaList_To_v1_ResourceQuotaList,
|
convert_api_ResourceQuotaList_To_v1_ResourceQuotaList,
|
||||||
|
@ -4736,7 +4671,6 @@ func init() {
|
||||||
convert_v1_RBDVolumeSource_To_api_RBDVolumeSource,
|
convert_v1_RBDVolumeSource_To_api_RBDVolumeSource,
|
||||||
convert_v1_RangeAllocation_To_api_RangeAllocation,
|
convert_v1_RangeAllocation_To_api_RangeAllocation,
|
||||||
convert_v1_ReplicationControllerList_To_api_ReplicationControllerList,
|
convert_v1_ReplicationControllerList_To_api_ReplicationControllerList,
|
||||||
convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec,
|
|
||||||
convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus,
|
convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus,
|
||||||
convert_v1_ReplicationController_To_api_ReplicationController,
|
convert_v1_ReplicationController_To_api_ReplicationController,
|
||||||
convert_v1_ResourceQuotaList_To_api_ResourceQuotaList,
|
convert_v1_ResourceQuotaList_To_api_ResourceQuotaList,
|
||||||
|
|
|
@ -39,6 +39,10 @@ func addDefaultingFuncs() {
|
||||||
obj.Labels = labels
|
obj.Labels = labels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if obj.Spec.Replicas == nil {
|
||||||
|
obj.Spec.Replicas = new(int)
|
||||||
|
*obj.Spec.Replicas = 1
|
||||||
|
}
|
||||||
},
|
},
|
||||||
func(obj *Volume) {
|
func(obj *Volume) {
|
||||||
if util.AllPtrFieldsNil(&obj.VolumeSource) {
|
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) {
|
func TestSetDefaultService(t *testing.T) {
|
||||||
svc := &versioned.Service{}
|
svc := &versioned.Service{}
|
||||||
obj2 := roundTrip(t, runtime.Object(svc))
|
obj2 := roundTrip(t, runtime.Object(svc))
|
||||||
|
|
|
@ -937,7 +937,7 @@ type PodTemplateList struct {
|
||||||
// ReplicationControllerSpec is the specification of a replication controller.
|
// ReplicationControllerSpec is the specification of a replication controller.
|
||||||
type ReplicationControllerSpec struct {
|
type ReplicationControllerSpec struct {
|
||||||
// Replicas is the number of desired replicas.
|
// 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.
|
// 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.
|
// If Selector is empty, it is defaulted to the labels present on the Pod template.
|
||||||
|
|
Loading…
Reference in New Issue