func statefulSetFromManifest(fileName, ns string) *apps.StatefulSet { var ps apps.StatefulSet framework.Logf("Parsing statefulset from %v", fileName) data, err := ioutil.ReadFile(fileName) Expect(err).NotTo(HaveOccurred()) json, err := utilyaml.ToJSON(data) Expect(err).NotTo(HaveOccurred()) Expect(runtime.DecodeInto(api.Codecs.UniversalDecoder(), json, &ps)).NotTo(HaveOccurred()) ps.Namespace = ns if ps.Spec.Selector == nil { ps.Spec.Selector = &unversioned.LabelSelector{ MatchLabels: ps.Spec.Template.Labels, } } return &ps }
func autoConvert_v1beta1_StatefulSet_To_apps_StatefulSet(in *StatefulSet, out *apps.StatefulSet, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta if err := Convert_v1beta1_StatefulSetSpec_To_apps_StatefulSetSpec(&in.Spec, &out.Spec, s); err != nil { return err } if err := Convert_v1beta1_StatefulSetStatus_To_apps_StatefulSetStatus(&in.Status, &out.Status, s); err != nil { return err } return nil }
// updatePetCount attempts to update the Status.Replicas of the given StatefulSet, with a single GET/PUT retry. func updatePetCount(psClient appsclientset.StatefulSetsGetter, ps apps.StatefulSet, numPets int) (updateErr error) { if ps.Status.Replicas == int32(numPets) || psClient == nil { return nil } var getErr error for i, ps := 0, &ps; ; i++ { glog.V(4).Infof(fmt.Sprintf("Updating replica count for StatefulSet: %s/%s, ", ps.Namespace, ps.Name) + fmt.Sprintf("replicas %d->%d (need %d), ", ps.Status.Replicas, numPets, ps.Spec.Replicas)) ps.Status = apps.StatefulSetStatus{Replicas: int32(numPets)} _, updateErr = psClient.StatefulSets(ps.Namespace).UpdateStatus(ps) if updateErr == nil || i >= statusUpdateRetries { return updateErr } if ps, getErr = psClient.StatefulSets(ps.Namespace).Get(ps.Name); getErr != nil { return getErr } } }