| package kubenat |
| |
| import ( |
| "context" |
| "flag" |
| "net" |
| "testing" |
| ) |
| |
| func TestResolvePod(t *testing.T) { |
| t.Skip("needs containerd running on host and unhardcoded test data") |
| flag.Set("logtostderr", "true") |
| |
| ctx, ctxC := context.WithCancel(context.Background()) |
| defer ctxC() |
| |
| r, err := NewResolver(ctx, "/tmp/conntrack", "/tmp/containerd.sock") |
| if err != nil { |
| t.Fatalf("NewResolver: %v", err) |
| } |
| |
| pi, err := r.ResolvePod(ctx, &Tuple4{ |
| RemoteIP: net.IPv4(185, 191, 225, 10), |
| RemotePort: 6697, |
| LocalIP: net.IPv4(185, 236, 240, 36), |
| LocalPort: 53449, |
| }) |
| if err != nil { |
| t.Fatalf("ResolvePod: %v", err) |
| } |
| if want, got := net.IPv4(10, 10, 26, 23), pi.PodIP; !want.Equal(got) { |
| t.Errorf("Wanted pod IP %v, got %v", want, got) |
| } |
| if want, got := uint16(54782), pi.PodTranslatedPort; want != got { |
| t.Errorf("Wanted pod port %d, got %d", want, got) |
| } |
| if want, got := "matrix", pi.KubernetesNamespace; want != got { |
| t.Errorf("Wanted pod namespace %q, got %q", want, got) |
| } |
| if want, got := "appservice-irc-freenode-68977cdd5f-kfzl6", pi.Name; want != got { |
| t.Errorf("Wanted pod name %q, got %q", want, got) |
| } |
| } |