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  }