github.com/mponton/terratest@v0.44.0/modules/k8s/version_test.go (about) 1 //go:build kubeall || kubernetes 2 // +build kubeall kubernetes 3 4 // NOTE: we have build tags to differentiate kubernetes tests from non-kubernetes tests. This is done because minikube 5 // is heavy and can interfere with docker related tests in terratest. Specifically, many of the tests start to fail with 6 // `connection refused` errors from `minikube`. To avoid overloading the system, we run the kubernetes tests and helm 7 // tests separately from the others. This may not be necessary if you have a sufficiently powerful machine. We 8 // recommend at least 4 cores and 16GB of RAM if you want to run all the tests together. 9 10 package k8s 11 12 import ( 13 "encoding/json" 14 "testing" 15 16 "github.com/stretchr/testify/assert" 17 "github.com/stretchr/testify/require" 18 ) 19 20 type KubectlVersion struct { 21 ServerVersion struct { 22 GitVersion string `json:"gitVersion"` 23 } `json:"serverVersion"` 24 } 25 26 func TestGetKubernetesClusterVersionE(t *testing.T) { 27 t.Parallel() 28 29 kubernetesClusterVersion, err := GetKubernetesClusterVersionE(t) 30 require.NoError(t, err) 31 32 options := NewKubectlOptions("", "", "") 33 kubernetesClusterVersionFromKubectl, err := RunKubectlAndGetOutputE(t, options, "version", "-o", "json") 34 require.NoError(t, err) 35 36 var kctlClusterVersion KubectlVersion 37 require.NoError( 38 t, 39 json.Unmarshal([]byte(kubernetesClusterVersionFromKubectl), &kctlClusterVersion), 40 ) 41 42 assert.EqualValues(t, kubernetesClusterVersion, kctlClusterVersion.ServerVersion.GitVersion) 43 } 44 45 func TestGetKubernetesClusterVersionWithOptionsE(t *testing.T) { 46 t.Parallel() 47 48 options := NewKubectlOptions("", "", "") 49 kubernetesClusterVersion, err := GetKubernetesClusterVersionWithOptionsE(t, options) 50 require.NoError(t, err) 51 52 kubernetesClusterVersionFromKubectl, err := RunKubectlAndGetOutputE(t, options, "version", "-o", "json") 53 require.NoError(t, err) 54 55 var kctlClusterVersion KubectlVersion 56 require.NoError( 57 t, 58 json.Unmarshal([]byte(kubernetesClusterVersionFromKubectl), &kctlClusterVersion), 59 ) 60 61 assert.EqualValues(t, kubernetesClusterVersion, kctlClusterVersion.ServerVersion.GitVersion) 62 }