Ejemplo n.º 1
0
// Perform a rolling update of a collection of pods.
// 'name' points to a replication controller.
// 'client' is used for updating pods.
// 'updatePeriod' is the time between pod updates.
func Update(name string, client client.ClientInterface, updatePeriod time.Duration) error {
	controller, err := client.GetReplicationController(name)
	if err != nil {
		return err
	}
	labels := controller.DesiredState.ReplicasInSet

	podList, err := client.ListPods(labels)
	if err != nil {
		return err
	}
	for _, pod := range podList.Items {
		_, err = client.UpdatePod(pod)
		if err != nil {
			return err
		}
		time.Sleep(updatePeriod)
	}
	return nil
}