mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
[Federation] Add a new helper function to create replicasets with name for updates in e2es.
This commit is contained in:
parent
442e920085
commit
ce81111609
@ -41,7 +41,7 @@ import (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
FederationReplicaSetPrefix = "federation-replicaset-"
|
FederationReplicaSetPrefix = "federation-replicaset-"
|
||||||
FederatedReplicaSetTimeout = 120 * time.Second
|
FederatedReplicaSetTimeout = 2 * time.Minute
|
||||||
)
|
)
|
||||||
|
|
||||||
// Create/delete replicaset api objects
|
// Create/delete replicaset api objects
|
||||||
@ -93,6 +93,9 @@ var _ = framework.KubeDescribe("Federation replicasets [Feature:Federation]", fu
|
|||||||
// cleanup. deletion of replicasets is not supported for underling clusters
|
// cleanup. deletion of replicasets is not supported for underling clusters
|
||||||
By(fmt.Sprintf("zero replicas then delete replicaset %q/%q", nsName, rs.Name))
|
By(fmt.Sprintf("zero replicas then delete replicaset %q/%q", nsName, rs.Name))
|
||||||
zeroReplicas := int32(0)
|
zeroReplicas := int32(0)
|
||||||
|
rs.GenerateName = ""
|
||||||
|
rs.ResourceVersion = ""
|
||||||
|
rs.Generation = 0
|
||||||
rs.Spec.Replicas = &zeroReplicas
|
rs.Spec.Replicas = &zeroReplicas
|
||||||
updateReplicaSetOrFail(f.FederationClientset, rs)
|
updateReplicaSetOrFail(f.FederationClientset, rs)
|
||||||
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, nil)
|
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, nil)
|
||||||
@ -108,7 +111,7 @@ var _ = framework.KubeDescribe("Federation replicasets [Feature:Federation]", fu
|
|||||||
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, nil)
|
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, nil)
|
||||||
By(fmt.Sprintf("Successfuly created and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
By(fmt.Sprintf("Successfuly created and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
||||||
|
|
||||||
rs = newReplicaSet(nsName, FederationReplicaSetPrefix, 15, nil)
|
rs = newReplicaSetWithName(nsName, rs.Name, 15, nil)
|
||||||
updateReplicaSetOrFail(f.FederationClientset, rs)
|
updateReplicaSetOrFail(f.FederationClientset, rs)
|
||||||
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, nil)
|
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, nil)
|
||||||
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
||||||
@ -117,18 +120,18 @@ var _ = framework.KubeDescribe("Federation replicasets [Feature:Federation]", fu
|
|||||||
// test for replicaset prefs with weight, min and max replicas
|
// test for replicaset prefs with weight, min and max replicas
|
||||||
createAndUpdateFn := func(pref *federation.FederatedReplicaSetPreferences, replicas int32, expect map[string]int32) {
|
createAndUpdateFn := func(pref *federation.FederatedReplicaSetPreferences, replicas int32, expect map[string]int32) {
|
||||||
rs := newReplicaSet(nsName, FederationReplicaSetPrefix, replicas, pref)
|
rs := newReplicaSet(nsName, FederationReplicaSetPrefix, replicas, pref)
|
||||||
createReplicaSetOrFail(f.FederationClientset, rs)
|
rs = createReplicaSetOrFail(f.FederationClientset, rs)
|
||||||
defer cleanupFn(rs)
|
defer cleanupFn(rs)
|
||||||
|
|
||||||
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect)
|
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect)
|
||||||
By(fmt.Sprintf("Successfuly created and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
By(fmt.Sprintf("Successfuly created and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
||||||
|
|
||||||
rs = newReplicaSet(nsName, FederationReplicaSetPrefix, 0, pref)
|
rs = newReplicaSetWithName(nsName, rs.Name, 0, pref)
|
||||||
updateReplicaSetOrFail(f.FederationClientset, rs)
|
updateReplicaSetOrFail(f.FederationClientset, rs)
|
||||||
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, nil)
|
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, nil)
|
||||||
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
||||||
|
|
||||||
rs = newReplicaSet(nsName, FederationReplicaSetPrefix, replicas, pref)
|
rs = newReplicaSetWithName(nsName, rs.Name, replicas, pref)
|
||||||
updateReplicaSetOrFail(f.FederationClientset, rs)
|
updateReplicaSetOrFail(f.FederationClientset, rs)
|
||||||
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect)
|
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect)
|
||||||
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
||||||
@ -146,13 +149,13 @@ var _ = framework.KubeDescribe("Federation replicasets [Feature:Federation]", fu
|
|||||||
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect1)
|
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect1)
|
||||||
By(fmt.Sprintf("Successfuly created and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
By(fmt.Sprintf("Successfuly created and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
||||||
|
|
||||||
rs = newReplicaSet(nsName, FederationReplicaSetPrefix, replicas, pref2)
|
rs = newReplicaSetWithName(nsName, rs.Name, replicas, pref2)
|
||||||
updateReplicaSetOrFail(f.FederationClientset, rs)
|
updateReplicaSetOrFail(f.FederationClientset, rs)
|
||||||
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect1)
|
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect1)
|
||||||
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
||||||
|
|
||||||
pref2 = updateFedRePrefsRebalance(pref2, true)
|
pref2 = updateFedRePrefsRebalance(pref2, true)
|
||||||
rs = newReplicaSet(nsName, FederationReplicaSetPrefix, replicas, pref2)
|
rs = newReplicaSetWithName(nsName, rs.Name, replicas, pref2)
|
||||||
updateReplicaSetOrFail(f.FederationClientset, rs)
|
updateReplicaSetOrFail(f.FederationClientset, rs)
|
||||||
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect2)
|
waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect2)
|
||||||
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
By(fmt.Sprintf("Successfuly updated and synced replicaset %q/%q (%v/%v) to clusters", nsName, rs.Name, *rs.Spec.Replicas, rs.Status.Replicas))
|
||||||
@ -423,19 +426,30 @@ func updateReplicaSetOrFail(clientset *fedclientset.Clientset, replicaset *v1bet
|
|||||||
}
|
}
|
||||||
By(fmt.Sprintf("Updating federation replicaset %q in namespace %q", replicaset.Name, namespace))
|
By(fmt.Sprintf("Updating federation replicaset %q in namespace %q", replicaset.Name, namespace))
|
||||||
|
|
||||||
newRs, err := clientset.ReplicaSets(namespace).Update(replicaset)
|
var newRS *v1beta1.ReplicaSet
|
||||||
|
err := wait.Poll(5*time.Second, FederatedReplicaSetTimeout, func() (bool, error) {
|
||||||
|
var err error
|
||||||
|
newRS, err = clientset.ReplicaSets(namespace).Update(replicaset)
|
||||||
|
if !errors.IsConflict(err) {
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
framework.Logf("Retrying due to an update failure: %v", err)
|
||||||
|
return false, nil
|
||||||
|
})
|
||||||
framework.ExpectNoError(err, "Updating replicaset %q in namespace %q", replicaset.Name, namespace)
|
framework.ExpectNoError(err, "Updating replicaset %q in namespace %q", replicaset.Name, namespace)
|
||||||
By(fmt.Sprintf("Successfully updated federation replicaset %q in namespace %q", replicaset.Name, namespace))
|
By(fmt.Sprintf("Successfully updated federation replicaset %q in namespace %q", replicaset.Name, namespace))
|
||||||
|
|
||||||
return newRs
|
return newRS
|
||||||
}
|
}
|
||||||
|
|
||||||
func newReplicaSet(namespace string, prefix string, replicas int32, pref *federation.FederatedReplicaSetPreferences) *v1beta1.ReplicaSet {
|
func newReplicaSetObj(namespace string, replicas int32, pref *federation.FederatedReplicaSetPreferences) *v1beta1.ReplicaSet {
|
||||||
rs := v1beta1.ReplicaSet{
|
rs := &v1beta1.ReplicaSet{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
GenerateName: prefix,
|
Namespace: namespace,
|
||||||
Namespace: namespace,
|
Annotations: map[string]string{},
|
||||||
Annotations: map[string]string{},
|
|
||||||
},
|
},
|
||||||
Spec: v1beta1.ReplicaSetSpec{
|
Spec: v1beta1.ReplicaSetSpec{
|
||||||
Replicas: &replicas,
|
Replicas: &replicas,
|
||||||
@ -462,7 +476,20 @@ func newReplicaSet(namespace string, prefix string, replicas int32, pref *federa
|
|||||||
prefString := string(prefBytes)
|
prefString := string(prefBytes)
|
||||||
rs.Annotations[fedreplicsetcontroller.FedReplicaSetPreferencesAnnotation] = prefString
|
rs.Annotations[fedreplicsetcontroller.FedReplicaSetPreferencesAnnotation] = prefString
|
||||||
}
|
}
|
||||||
return &rs
|
return rs
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func newReplicaSet(namespace string, prefix string, replicas int32, pref *federation.FederatedReplicaSetPreferences) *v1beta1.ReplicaSet {
|
||||||
|
rs := newReplicaSetObj(namespace, replicas, pref)
|
||||||
|
rs.GenerateName = prefix
|
||||||
|
return rs
|
||||||
|
}
|
||||||
|
|
||||||
|
func newReplicaSetWithName(namespace string, name string, replicas int32, pref *federation.FederatedReplicaSetPreferences) *v1beta1.ReplicaSet {
|
||||||
|
rs := newReplicaSetObj(namespace, replicas, pref)
|
||||||
|
rs.Name = name
|
||||||
|
return rs
|
||||||
}
|
}
|
||||||
|
|
||||||
func extraceClusterNames(clusters map[string]*cluster) []string {
|
func extraceClusterNames(clusters map[string]*cluster) []string {
|
||||||
|
Loading…
Reference in New Issue
Block a user