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  }