Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 434a9ff

Browse files
committed
Merge pull request #8552 from thockin/rc-default-1
Change v1 API to default RC replicas to 1
2 parents 9674956 + fd07de6 commit 434a9ff

File tree

5 files changed

+146
-67
lines changed

5 files changed

+146
-67
lines changed

pkg/api/v1/conversion.go

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,12 @@ import (
2525
)
2626

2727
func addConversionFuncs() {
28+
// Add non-generated conversion functions
2829
err := api.Scheme.AddConversionFuncs(
2930
convert_api_StatusDetails_To_v1_StatusDetails,
3031
convert_v1_StatusDetails_To_api_StatusDetails,
32+
convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec,
33+
convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec,
3134
)
3235
if err != nil {
3336
// 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
175178
out.Field = in.Field
176179
return nil
177180
}
181+
182+
func convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *api.ReplicationControllerSpec, out *ReplicationControllerSpec, s conversion.Scope) error {
183+
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
184+
defaulting.(func(*api.ReplicationControllerSpec))(in)
185+
}
186+
out.Replicas = new(int)
187+
*out.Replicas = in.Replicas
188+
if in.Selector != nil {
189+
out.Selector = make(map[string]string)
190+
for key, val := range in.Selector {
191+
out.Selector[key] = val
192+
}
193+
} else {
194+
out.Selector = nil
195+
}
196+
if in.TemplateRef != nil {
197+
out.TemplateRef = new(ObjectReference)
198+
if err := convert_api_ObjectReference_To_v1_ObjectReference(in.TemplateRef, out.TemplateRef, s); err != nil {
199+
return err
200+
}
201+
} else {
202+
out.TemplateRef = nil
203+
}
204+
if in.Template != nil {
205+
out.Template = new(PodTemplateSpec)
206+
if err := convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
207+
return err
208+
}
209+
} else {
210+
out.Template = nil
211+
}
212+
return nil
213+
}
214+
215+
func convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec(in *ReplicationControllerSpec, out *api.ReplicationControllerSpec, s conversion.Scope) error {
216+
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
217+
defaulting.(func(*ReplicationControllerSpec))(in)
218+
}
219+
out.Replicas = *in.Replicas
220+
if in.Selector != nil {
221+
out.Selector = make(map[string]string)
222+
for key, val := range in.Selector {
223+
out.Selector[key] = val
224+
}
225+
} else {
226+
out.Selector = nil
227+
}
228+
if in.TemplateRef != nil {
229+
out.TemplateRef = new(api.ObjectReference)
230+
if err := convert_v1_ObjectReference_To_api_ObjectReference(in.TemplateRef, out.TemplateRef, s); err != nil {
231+
return err
232+
}
233+
} else {
234+
out.TemplateRef = nil
235+
}
236+
if in.Template != nil {
237+
out.Template = new(api.PodTemplateSpec)
238+
if err := convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil {
239+
return err
240+
}
241+
} else {
242+
out.Template = nil
243+
}
244+
return nil
245+
}

pkg/api/v1/conversion_generated.go

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1700,38 +1700,6 @@ func convert_api_ReplicationControllerList_To_v1_ReplicationControllerList(in *a
17001700
return nil
17011701
}
17021702

1703-
func convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *api.ReplicationControllerSpec, out *ReplicationControllerSpec, s conversion.Scope) error {
1704-
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
1705-
defaulting.(func(*api.ReplicationControllerSpec))(in)
1706-
}
1707-
out.Replicas = in.Replicas
1708-
if in.Selector != nil {
1709-
out.Selector = make(map[string]string)
1710-
for key, val := range in.Selector {
1711-
out.Selector[key] = val
1712-
}
1713-
} else {
1714-
out.Selector = nil
1715-
}
1716-
if in.TemplateRef != nil {
1717-
out.TemplateRef = new(ObjectReference)
1718-
if err := convert_api_ObjectReference_To_v1_ObjectReference(in.TemplateRef, out.TemplateRef, s); err != nil {
1719-
return err
1720-
}
1721-
} else {
1722-
out.TemplateRef = nil
1723-
}
1724-
if in.Template != nil {
1725-
out.Template = new(PodTemplateSpec)
1726-
if err := convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
1727-
return err
1728-
}
1729-
} else {
1730-
out.Template = nil
1731-
}
1732-
return nil
1733-
}
1734-
17351703
func convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in *api.ReplicationControllerStatus, out *ReplicationControllerStatus, s conversion.Scope) error {
17361704
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
17371705
defaulting.(func(*api.ReplicationControllerStatus))(in)
@@ -3958,38 +3926,6 @@ func convert_v1_ReplicationControllerList_To_api_ReplicationControllerList(in *R
39583926
return nil
39593927
}
39603928

3961-
func convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec(in *ReplicationControllerSpec, out *api.ReplicationControllerSpec, s conversion.Scope) error {
3962-
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
3963-
defaulting.(func(*ReplicationControllerSpec))(in)
3964-
}
3965-
out.Replicas = in.Replicas
3966-
if in.Selector != nil {
3967-
out.Selector = make(map[string]string)
3968-
for key, val := range in.Selector {
3969-
out.Selector[key] = val
3970-
}
3971-
} else {
3972-
out.Selector = nil
3973-
}
3974-
if in.TemplateRef != nil {
3975-
out.TemplateRef = new(api.ObjectReference)
3976-
if err := convert_v1_ObjectReference_To_api_ObjectReference(in.TemplateRef, out.TemplateRef, s); err != nil {
3977-
return err
3978-
}
3979-
} else {
3980-
out.TemplateRef = nil
3981-
}
3982-
if in.Template != nil {
3983-
out.Template = new(api.PodTemplateSpec)
3984-
if err := convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil {
3985-
return err
3986-
}
3987-
} else {
3988-
out.Template = nil
3989-
}
3990-
return nil
3991-
}
3992-
39933929
func convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus(in *ReplicationControllerStatus, out *api.ReplicationControllerStatus, s conversion.Scope) error {
39943930
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
39953931
defaulting.(func(*ReplicationControllerStatus))(in)
@@ -4626,7 +4562,6 @@ func init() {
46264562
convert_api_RBDVolumeSource_To_v1_RBDVolumeSource,
46274563
convert_api_RangeAllocation_To_v1_RangeAllocation,
46284564
convert_api_ReplicationControllerList_To_v1_ReplicationControllerList,
4629-
convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec,
46304565
convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus,
46314566
convert_api_ReplicationController_To_v1_ReplicationController,
46324567
convert_api_ResourceQuotaList_To_v1_ResourceQuotaList,
@@ -4736,7 +4671,6 @@ func init() {
47364671
convert_v1_RBDVolumeSource_To_api_RBDVolumeSource,
47374672
convert_v1_RangeAllocation_To_api_RangeAllocation,
47384673
convert_v1_ReplicationControllerList_To_api_ReplicationControllerList,
4739-
convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec,
47404674
convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus,
47414675
convert_v1_ReplicationController_To_api_ReplicationController,
47424676
convert_v1_ResourceQuotaList_To_api_ResourceQuotaList,

pkg/api/v1/defaults.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ func addDefaultingFuncs() {
3939
obj.Labels = labels
4040
}
4141
}
42+
if obj.Spec.Replicas == nil {
43+
obj.Spec.Replicas = new(int)
44+
*obj.Spec.Replicas = 1
45+
}
4246
},
4347
func(obj *Volume) {
4448
if util.AllPtrFieldsNil(&obj.VolumeSource) {

pkg/api/v1/defaults_test.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,79 @@ func TestSetDefaultReplicationController(t *testing.T) {
155155
}
156156
}
157157

158+
func newInt(val int) *int {
159+
p := new(int)
160+
*p = val
161+
return p
162+
}
163+
164+
func TestSetDefaultReplicationControllerReplicas(t *testing.T) {
165+
tests := []struct {
166+
rc versioned.ReplicationController
167+
expectReplicas int
168+
}{
169+
{
170+
rc: versioned.ReplicationController{
171+
Spec: versioned.ReplicationControllerSpec{
172+
Template: &versioned.PodTemplateSpec{
173+
ObjectMeta: versioned.ObjectMeta{
174+
Labels: map[string]string{
175+
"foo": "bar",
176+
},
177+
},
178+
},
179+
},
180+
},
181+
expectReplicas: 1,
182+
},
183+
{
184+
rc: versioned.ReplicationController{
185+
Spec: versioned.ReplicationControllerSpec{
186+
Replicas: newInt(0),
187+
Template: &versioned.PodTemplateSpec{
188+
ObjectMeta: versioned.ObjectMeta{
189+
Labels: map[string]string{
190+
"foo": "bar",
191+
},
192+
},
193+
},
194+
},
195+
},
196+
expectReplicas: 0,
197+
},
198+
{
199+
rc: versioned.ReplicationController{
200+
Spec: versioned.ReplicationControllerSpec{
201+
Replicas: newInt(3),
202+
Template: &versioned.PodTemplateSpec{
203+
ObjectMeta: versioned.ObjectMeta{
204+
Labels: map[string]string{
205+
"foo": "bar",
206+
},
207+
},
208+
},
209+
},
210+
},
211+
expectReplicas: 3,
212+
},
213+
}
214+
215+
for _, test := range tests {
216+
rc := &test.rc
217+
obj2 := roundTrip(t, runtime.Object(rc))
218+
rc2, ok := obj2.(*versioned.ReplicationController)
219+
if !ok {
220+
t.Errorf("unexpected object: %v", rc2)
221+
t.FailNow()
222+
}
223+
if rc2.Spec.Replicas == nil {
224+
t.Errorf("unexpected nil Replicas")
225+
} else if test.expectReplicas != *rc2.Spec.Replicas {
226+
t.Errorf("expected: %d replicas, got: %d", test.expectReplicas, *rc2.Spec.Replicas)
227+
}
228+
}
229+
}
230+
158231
func TestSetDefaultService(t *testing.T) {
159232
svc := &versioned.Service{}
160233
obj2 := roundTrip(t, runtime.Object(svc))

pkg/api/v1/types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -937,7 +937,7 @@ type PodTemplateList struct {
937937
// ReplicationControllerSpec is the specification of a replication controller.
938938
type ReplicationControllerSpec struct {
939939
// Replicas is the number of desired replicas.
940-
Replicas int `json:"replicas,omitempty" description:"number of replicas desired"`
940+
Replicas *int `json:"replicas,omitempty" description:"number of replicas desired; defaults to 1"`
941941

942942
// Selector is a label query over pods that should match the Replicas count.
943943
// If Selector is empty, it is defaulted to the labels present on the Pod template.

0 commit comments

Comments
 (0)