skydive
skydive copied to clipboard
Add Gremlin templating
Adding a WebUI engine for expanding parameterized or composite Gremlin queries.
For the purpose of providing finer filter/highlight/capture capabilities.
Templating
by resources under namespace
G.V().Has("K8s.Namespace", "@1")
@1 --> G.V().Values("K8s.Namespace")
by k8s resouces under namespace
G.V().Has("Manager", "k8s").Has("K8s.Namespace", "@1")
@1 --> G.V().Has("Manager", "k8s").Values("K8s.Namespace")
all containers of a pod
G.V().Has("Manager", "k8s", "Type", "container").Has("K8s.Namespace", "@1").Has("Pod", "@2")
@1 --> G.V().Has("Manager", "k8s", "Type", "container").Values("K8s.Namespace")
@2 --> G.V().Has("Manager", "k8s", "Type", "container").Values("Pod")
pods by namespace (including namespace object)
G.V().Has("Type", "namespace").Has("Name", "@1").As("parent")
.G.V().Has("Type", "pod").Has("K8s.Namespace", "@1").As("children")
.Select("parent", "children")
@1 --> G.V().Values("K8s.Namespace")
AND operator
services under kube-system
G.V()
*AND*
Has("K8s.Namespace", "kube-system")
*AND*
Has("Type", "service")
G.V()
.Has("K8s.Namespace", "kube-system")
.Has("Type", "service")
OR operator
kube-system or istio-system
G.V().Has("K8s.Namespace", "kube-system")
*OR*
G.V().Has("K8s.Namespace", "istio-system")
G.V().Has("K8s.Namespace", "kube-system").As("1")
.G.V().Has("K8s.Namespace", "istio-system").As("2")
.Select("1", "2")