48 lines
1013 B
Go
48 lines
1013 B
Go
package k8s
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/metrue/fx/packer"
|
|
"github.com/metrue/fx/types"
|
|
)
|
|
|
|
func TestK8SDeployer(t *testing.T) {
|
|
name := "hellohello"
|
|
bindings := []types.PortBinding{
|
|
types.PortBinding{
|
|
ServiceBindingPort: 80,
|
|
ContainerExposePort: 3000,
|
|
},
|
|
types.PortBinding{
|
|
ServiceBindingPort: 443,
|
|
ContainerExposePort: 3000,
|
|
},
|
|
}
|
|
kubeconfig := os.Getenv("KUBECONFIG")
|
|
username := os.Getenv("DOCKER_USERNAME")
|
|
password := os.Getenv("DOCKER_PASSWORD")
|
|
if kubeconfig == "" || username == "" || password == "" {
|
|
t.Skip("skip test since no KUBECONFIG, DOCKER_USERNAME and DOCKER_PASSWORD given in environment variable")
|
|
}
|
|
k8s, err := Create("")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
data, err := packer.PackIntoK8SConfigMapFile("./fixture")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
ctx := context.Background()
|
|
if err := k8s.Deploy(ctx, data, name, name, bindings); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if err := k8s.Destroy(ctx, name); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|