mirror of https://github.com/k3s-io/k3s
StatefulSet e2e: verify stateful pod hostname
parent
2319c020b9
commit
76ab3a45b7
|
@ -125,11 +125,14 @@ var _ = framework.KubeDescribe("StatefulSet [Slow] [Feature:PetSet]", func() {
|
|||
By("Verifying statefulset mounted data directory is usable")
|
||||
ExpectNoError(pst.checkMount(ps, "/data"))
|
||||
|
||||
By("Verifying statefulset provides a stable hostname for each pod")
|
||||
ExpectNoError(pst.checkHostname(ps))
|
||||
|
||||
cmd := "echo $(hostname) > /data/hostname; sync;"
|
||||
By("Running " + cmd + " in all pets")
|
||||
ExpectNoError(pst.execInPets(ps, cmd))
|
||||
|
||||
By("Restarting pet set " + ps.Name)
|
||||
By("Restarting statefulset " + ps.Name)
|
||||
pst.restart(ps)
|
||||
pst.saturate(ps)
|
||||
|
||||
|
@ -572,6 +575,20 @@ func (p *statefulSetTester) execInPets(ps *apps.StatefulSet, cmd string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (p *statefulSetTester) checkHostname(ps *apps.StatefulSet) error {
|
||||
cmd := "printf $(hostname)"
|
||||
podList := p.getPodList(ps)
|
||||
for _, pet := range podList.Items {
|
||||
hostname, err := framework.RunHostCmd(pet.Namespace, pet.Name, cmd)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if hostname != pet.Name {
|
||||
return fmt.Errorf("unexpected hostname (%s) and stateful pod name (%s) not equal", hostname, pet.Name)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (p *statefulSetTester) saturate(ps *apps.StatefulSet) {
|
||||
// TODO: Watch events and check that creation timestamps don't overlap
|
||||
var i int32
|
||||
|
|
Loading…
Reference in New Issue