Skip to content

Commit

Permalink
wip: use exec instead of go
Browse files Browse the repository at this point in the history
  • Loading branch information
Travis Raines committed Dec 10, 2021
1 parent c1d7336 commit 3da045e
Showing 1 changed file with 37 additions and 12 deletions.
49 changes: 37 additions & 12 deletions test/e2e/all_in_one_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
autoscalingv1 "k8s.io/api/autoscaling/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
//"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/portforward"
Expand All @@ -45,7 +46,7 @@ import (
"github.com/kong/kubernetes-testing-framework/pkg/utils/kubernetes/generators"

"github.com/kong/kubernetes-ingress-controller/v2/internal/annotations"
"github.com/kong/kubernetes-ingress-controller/v2/internal/manager"
//"github.com/kong/kubernetes-ingress-controller/v2/internal/manager"
"github.com/kong/kubernetes-ingress-controller/v2/internal/metrics"
)

Expand Down Expand Up @@ -303,20 +304,40 @@ func TestDeployAllInOnePostgresReplicas(t *testing.T) {
return deployment.Status.ReadyReplicas == *deployment.Spec.Replicas
}, kongComponentWait, time.Second)

restClient, err := rest.RESTClientFor(env.Cluster().Config())
require.NoError(t, err)
//config := env.Cluster().Config()
//negotiatedSerializer := runtime.NewSimpleNegotiatedSerializer(runtime.SerializerInfo{})
//config.NegotiatedSerializer = negotiatedSerializer
//restClient, err := rest.UnversionedRESTClientFor(config)
//require.NoError(t, err)

podList, err = env.Cluster().Client().CoreV1().Pods(deployment.Namespace).List(ctx, forDeployment)
require.NoError(t, err)
for _, pod := range podList.Items {
if pod.Name != initialPod.Name {
fw, stopChan, err := getPortForwarder(pod, []string{fmt.Sprintf("9777:%d", manager.MetricsPort)}, restClient)
require.NoError(t, err)
err = fw.ForwardPorts()
require.NoError(t, err)
defer fw.Close()
defer close(stopChan)
//fw, stopChan, err := getPortForwarder(pod, []string{fmt.Sprintf("9777:%d", manager.MetricsPort)}, restClient)
//require.NoError(t, err)
//err = fw.ForwardPorts()
//require.NoError(t, err)
//defer fw.Close()
//defer close(stopChan)
require.Never(t, func() bool {
t.Log("creating a tempfile for kubeconfig")
kubeconfig, err := generators.NewKubeConfigForRestConfig(env.Name(), env.Cluster().Config())
require.NoError(t, err)
kubeconfigFile, err := os.CreateTemp(os.TempDir(), "manifest-tests-kubeconfig-")
require.NoError(t, err)
defer os.Remove(kubeconfigFile.Name())
defer kubeconfigFile.Close()
written, err := kubeconfigFile.Write(kubeconfig)
require.NoError(t, err)
require.Equal(t, len(kubeconfig), written)
ctx, cancel := context.WithCancel(context.Background())
cmd := exec.CommandContext(ctx, "kubectl", "--kubeconfig", kubeconfigFile.Name(), "port-forward", "-n", pod.Namespace, pod.Name, "9777:cmetrics")
stdout, stderr := new(bytes.Buffer), new(bytes.Buffer)
cmd.Stdout = stdout
cmd.Stderr = stderr
require.NoError(t, cmd.Run(), fmt.Sprintf("STDOUT=(%s), STDERR=(%s)", stdout.String(), stderr.String()))
defer cancel()
client, err := promapi.NewClient(promapi.Config{
Address: "http://localhost:9777",
})
Expand All @@ -331,16 +352,20 @@ func TestDeployAllInOnePostgresReplicas(t *testing.T) {
Step: time.Second,
}
result, _, err := api.QueryRange(context.TODO(), metrics.MetricNameConfigPushCount, queryRange)
t.Logf("idk prometheus: %s", result)
t.Logf("idk prometheus: %v", result)
return false
}, kongComponentWait, time.Second*10)
}, time.Minute, time.Second*10)
}
}
}

func getPortForwarder(pod corev1.Pod, ports []string, client *rest.RESTClient) (*portforward.PortForwarder, chan struct{}, error) {
req := client.Post().Resource("pods").Namespace(pod.Namespace).Name(pod.Name).SubResource("portforward")
transport, upgrader, err := spdy.RoundTripperFor(&rest.Config{})
transport, upgrader, err := spdy.RoundTripperFor(&rest.Config{
TLSClientConfig: rest.TLSClientConfig{
Insecure: true,
},
})
if err != nil {
return nil, nil, err
}
Expand Down

0 comments on commit 3da045e

Please sign in to comment.