github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/caas/kubernetes/provider/upgrade_test.go (about) 1 // Copyright 2020 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package provider 5 6 import ( 7 "fmt" 8 9 jc "github.com/juju/testing/checkers" 10 "github.com/juju/version/v2" 11 gc "gopkg.in/check.v1" 12 core "k8s.io/api/core/v1" 13 14 "github.com/juju/juju/cloudconfig/podcfg" 15 ) 16 17 type UpgraderSuite struct { 18 } 19 20 var _ = gc.Suite(&UpgraderSuite{}) 21 22 func (u *UpgraderSuite) TestUpgradePodTemplateSpec(c *gc.C) { 23 tests := []struct { 24 ExpectedPodTemplateSpec core.PodTemplateSpec 25 PodTemplateSpec core.PodTemplateSpec 26 ImagePath string 27 Version version.Number 28 }{ 29 { 30 ExpectedPodTemplateSpec: core.PodTemplateSpec{ 31 Spec: core.PodSpec{ 32 Containers: []core.Container{ 33 { 34 Image: fmt.Sprintf("%s/%s:2.6.7", podcfg.JujudOCINamespace, podcfg.JujudOCIName), 35 }, 36 }, 37 }, 38 }, 39 PodTemplateSpec: core.PodTemplateSpec{ 40 Spec: core.PodSpec{ 41 Containers: []core.Container{ 42 { 43 Image: fmt.Sprintf("%s/%s:2.6.6", podcfg.JujudOCINamespace, podcfg.JujudOCIName), 44 }, 45 }, 46 }, 47 }, 48 Version: version.MustParse("2.6.7"), 49 }, 50 } 51 52 for _, test := range tests { 53 containers, err := upgradePodTemplateSpec(test.PodTemplateSpec.Spec.Containers, test.ImagePath, test.Version) 54 c.Assert(err, jc.ErrorIsNil) 55 c.Assert(test.ExpectedPodTemplateSpec.Spec.Containers[0].Image, gc.Equals, containers[0].Image) 56 } 57 }