-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(platform): deployment scenario tree view #492
Conversation
ed639cf
to
e72ba67
Compare
Rebased. |
b0085f6
to
cbc8433
Compare
Got this kinda, more or less working. Here's how it looks right now (`$ http --verify=false https://cryostat-sample-myproject.apps-crc.testing/api/v2/targetEnvironment Authorization:"Bearer $(oc whoami -t)" | jq) with only Cryostat deployed: {
"meta": {
"type": "application/json",
"status": "OK"
},
"data": {
"result": {
"children": [
{
"children": [],
"name": "Custom Targets",
"nodeType": "NAMESPACE",
"labels": {}
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.118:9091/jmxrmi",
"alias": "cryostat-sample-7f6cf9846f-sdm4v"
},
"name": "cryostat-sample-7f6cf9846f-sdm4v",
"nodeType": "ENDPOINT",
"labels": {}
}
],
"name": "cryostat-sample-7f6cf9846f-sdm4v",
"nodeType": "POD",
"labels": {}
}
],
"name": "cryostat-sample-7f6cf9846f",
"nodeType": "REPLICASET",
"labels": {}
}
],
"name": "cryostat-sample",
"nodeType": "DEPLOYMENT",
"labels": {}
}
],
"name": "myproject",
"nodeType": "NAMESPACE",
"labels": {}
}
],
"name": "Universe",
"nodeType": "UNIVERSE",
"labels": {}
}
}
} It currently fails to list anything in the OpenShift namespace if other sample apps are deployed:
|
I edited the {
"meta": {
"type": "application/json",
"status": "OK"
},
"data": {
"result": {
"children": [
{
"children": [],
"name": "Custom Targets",
"nodeType": "NAMESPACE",
"labels": {}
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.118:9091/jmxrmi",
"alias": "cryostat-sample-7f6cf9846f-sdm4v"
},
"name": "cryostat-sample-7f6cf9846f-sdm4v",
"nodeType": "ENDPOINT",
"labels": {}
}
],
"name": "cryostat-sample-7f6cf9846f-sdm4v",
"nodeType": "POD",
"labels": {}
}
],
"name": "cryostat-sample-7f6cf9846f",
"nodeType": "REPLICASET",
"labels": {}
}
],
"name": "cryostat-sample",
"nodeType": "DEPLOYMENT",
"labels": {}
},
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.124:9096/jmxrmi",
"alias": "quarkus-test-1-b6qlj"
},
"name": "quarkus-test-1-b6qlj",
"nodeType": "ENDPOINT",
"labels": {}
}
],
"name": "quarkus-test-1-b6qlj",
"nodeType": "POD",
"labels": {}
}
],
"name": "quarkus-test-1",
"nodeType": "REPLICATIONCONTROLLER",
"labels": {}
}
],
"name": "quarkus-test",
"nodeType": "DEPLOYMENTCONFIG",
"labels": {}
},
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.123:9091/jmxrmi",
"alias": "vertx-fib-demo-1-5sfj6"
},
"name": "vertx-fib-demo-1-5sfj6",
"nodeType": "ENDPOINT",
"labels": {}
}
],
"name": "vertx-fib-demo-1-5sfj6",
"nodeType": "POD",
"labels": {}
}
],
"name": "vertx-fib-demo-1",
"nodeType": "REPLICATIONCONTROLLER",
"labels": {}
}
],
"name": "vertx-fib-demo",
"nodeType": "DEPLOYMENTCONFIG",
"labels": {}
}
],
"name": "myproject",
"nodeType": "NAMESPACE",
"labels": {}
}
],
"name": "Universe",
"nodeType": "UNIVERSE",
"labels": {}
}
}
} |
71646a7
to
0262351
Compare
{
"meta": {
"type": "application/json",
"status": "OK"
},
"data": {
"result": {
"children": [
{
"children": [],
"name": "Custom Targets",
"kind": "Realm",
"labels": {}
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.65:9091/jmxrmi",
"alias": "cryostat-sample-584fdd4d-nk9kc"
},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.65:9091/jmxrmi",
"kind": "Endpoint",
"labels": {}
}
],
"name": "cryostat-sample-584fdd4d-nk9kc",
"kind": "Pod",
"labels": {}
}
],
"name": "cryostat-sample-584fdd4d",
"kind": "ReplicaSet",
"labels": {}
}
],
"name": "cryostat-sample",
"kind": "Deployment",
"labels": {}
},
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.49:9096/jmxrmi",
"alias": "quarkus-test-1-b6qlj"
},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.49:9096/jmxrmi",
"kind": "Endpoint",
"labels": {}
}
],
"name": "quarkus-test-1-b6qlj",
"kind": "Pod",
"labels": {}
}
],
"name": "quarkus-test-1",
"kind": "ReplicationController",
"labels": {}
}
],
"name": "quarkus-test",
"kind": "DeploymentConfig",
"labels": {}
},
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.36:9091/jmxrmi",
"alias": "vertx-fib-demo-1-5sfj6"
},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.36:9091/jmxrmi",
"kind": "Endpoint",
"labels": {}
}
],
"name": "vertx-fib-demo-1-5sfj6",
"kind": "Pod",
"labels": {}
}
],
"name": "vertx-fib-demo-1",
"kind": "ReplicationController",
"labels": {}
}
],
"name": "vertx-fib-demo",
"kind": "DeploymentConfig",
"labels": {}
}
],
"name": "myproject",
"kind": "Namespace",
"labels": {}
}
],
"name": "KubernetesApi",
"kind": "Realm",
"labels": {}
}
],
"name": "Universe",
"kind": "",
"labels": {}
}
}
} Getting into a shape I'm pretty happy with. |
@ebaron this is nearing readiness for proper review, but I'd like to get your feedback first on the general shape of the API response etc. before I start solidifying the implementation and adding unit tests. This can also be rebased on top of #523, in which case the |
The latest version is in |
Is there value in having Endpoints represented in these responses? They're more of an implementation detail than anything. |
Yea, I was wondering about that. I considered just merging them into the Pod they target, but that seemed to only make sense if there would only ever be one Endpoint for a given Pod, which I don't think is necessarily the case - a Pod could have two compatible containers within it on different ports, so two different Endpoints. I guess this could be resolved by changing the leaf node from Endpoint to Pod and also giving the leaf node type a list of ServiceRefs, instead of a single ServiceRef? |
I think ideally the leaf node should be "Container", but we might not have the information for which container(s) are Cryostat-compatible. There's the [1] https://v1-20.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#container-v1-core |
I'm not seeing an obvious way to query for Containers using the KubernetesClient, either. For now I think querying Endpoints but perhaps displaying it some other way in the tree is the best we can do. I could make it so that the Endpoint enum value is replaced by Container easily enough so that the output makes it look like the leaves are Containers, even though we actually query for Endpoints to determine this.
What would this mean - not including whole ServiceRefs, and having the leaf simply be a Pod with a list of port numbers? FWIW, if/when this is rebased on top of #523, each of those ServiceRefs within a leaf node will have the port number (determined by the Endpoint) included in its annotations. |
No I think the ServiceRef is good to have. I think I may have misinterpreted the Endpoint type. It doesn't really refer to the Kubernetes Endpoints object used for discovery, does it? I was thinking the user would be presented with a hierarchy like Deployment (foo) -> ReplicaSet (foo-abc) -> Pod (foo-abc-xyz) -> Endpoints (foo, or some unrelated name), which would be weird. |
Not directly, no. The Endpoints are queried and filtered for ones with compatible ports (9091 or jfr-jmx). Each of those ports is paired up with the EndpointAddress to form a <host, port> tuple, which is then converted into a ServiceRef and packaged into the leaf node with the "Endpoint" type. |
That sounds reasonable to me. |
That's actually the same thing (same method call internally) that the existing |
214bcb9
to
3ae7967
Compare
{
"meta": {
"type": "application/json",
"status": "OK"
},
"data": {
"result": {
"children": [
{
"children": [],
"name": "Custom Targets",
"kind": "Realm",
"labels": {}
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.67:9091/jmxrmi",
"alias": "cryostat-sample-694bc6f9b4-mwrh2",
"labels": {
"app": "cryostat-sample",
"pod-template-hash": "694bc6f9b4",
"kind": "cryostat"
},
"annotations": {
"platform": {
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.67\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/scc": "restricted",
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.67\"\n ],\n \"default\": true,\n \"dns\": {}\n}]"
},
"cryostat": {
"HOST": "10.217.0.67",
"PORT": "9091",
"NAMESPACE": "myproject",
"POD_NAME": "cryostat-sample-694bc6f9b4-mwrh2"
}
}
},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.67:9091/jmxrmi",
"kind": "Endpoint",
"labels": {}
}
],
"name": "cryostat-sample-694bc6f9b4-mwrh2",
"kind": "Pod",
"labels": {
"app": "cryostat-sample",
"kind": "cryostat",
"pod-template-hash": "694bc6f9b4"
}
}
],
"name": "cryostat-sample-694bc6f9b4",
"kind": "ReplicaSet",
"labels": {
"app": "cryostat-sample",
"kind": "cryostat",
"pod-template-hash": "694bc6f9b4"
}
}
],
"name": "cryostat-sample",
"kind": "Deployment",
"labels": {
"app": "cryostat-sample",
"app.kubernetes.io/name": "cryostat",
"kind": "cryostat"
}
},
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.20:9096/jmxrmi",
"alias": "quarkus-test-1-b6qlj",
"labels": {
"app": "quarkus-test",
"deploymentconfig": "quarkus-test",
"deployment": "quarkus-test-1"
},
"annotations": {
"platform": {
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.20\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/deployment-config.latest-version": "1",
"openshift.io/generated-by": "OpenShiftNewApp",
"openshift.io/deployment-config.name": "quarkus-test",
"openshift.io/deployment.name": "quarkus-test-1",
"openshift.io/scc": "restricted",
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.20\"\n ],\n \"default\": true,\n \"dns\": {}\n}]"
},
"cryostat": {
"HOST": "10.217.0.20",
"PORT": "9096",
"NAMESPACE": "myproject",
"POD_NAME": "quarkus-test-1-b6qlj"
}
}
},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.20:9096/jmxrmi",
"kind": "Endpoint",
"labels": {}
}
],
"name": "quarkus-test-1-b6qlj",
"kind": "Pod",
"labels": {
"app": "quarkus-test",
"deployment": "quarkus-test-1",
"deploymentconfig": "quarkus-test"
}
}
],
"name": "quarkus-test-1",
"kind": "ReplicationController",
"labels": {
"app": "quarkus-test",
"openshift.io/deployment-config.name": "quarkus-test"
}
}
],
"name": "quarkus-test",
"kind": "DeploymentConfig",
"labels": {}
},
{
"children": [
{
"children": [
{
"children": [
{
"target": {
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.15:9091/jmxrmi",
"alias": "vertx-fib-demo-1-5sfj6",
"labels": {
"app": "vertx-fib-demo",
"deploymentconfig": "vertx-fib-demo",
"deployment": "vertx-fib-demo-1"
},
"annotations": {
"platform": {
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.15\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/deployment-config.latest-version": "1",
"openshift.io/generated-by": "OpenShiftNewApp",
"openshift.io/deployment-config.name": "vertx-fib-demo",
"openshift.io/deployment.name": "vertx-fib-demo-1",
"openshift.io/scc": "restricted",
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.15\"\n ],\n \"default\": true,\n \"dns\": {}\n}]"
},
"cryostat": {
"HOST": "10.217.0.15",
"PORT": "9091",
"NAMESPACE": "myproject",
"POD_NAME": "vertx-fib-demo-1-5sfj6"
}
}
},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.15:9091/jmxrmi",
"kind": "Endpoint",
"labels": {}
}
],
"name": "vertx-fib-demo-1-5sfj6",
"kind": "Pod",
"labels": {
"app": "vertx-fib-demo",
"deployment": "vertx-fib-demo-1",
"deploymentconfig": "vertx-fib-demo"
}
}
],
"name": "vertx-fib-demo-1",
"kind": "ReplicationController",
"labels": {
"app": "vertx-fib-demo",
"openshift.io/deployment-config.name": "vertx-fib-demo"
}
}
],
"name": "vertx-fib-demo",
"kind": "DeploymentConfig",
"labels": {}
}
],
"name": "myproject",
"kind": "Namespace",
"labels": {}
}
],
"name": "KubernetesApi",
"kind": "Realm",
"labels": {}
}
],
"name": "Universe",
"kind": "",
"labels": {}
}
}
} and
[
{
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.67:9091/jmxrmi",
"alias": "cryostat-sample-694bc6f9b4-mwrh2",
"labels": {
"app": "cryostat-sample",
"pod-template-hash": "694bc6f9b4",
"kind": "cryostat"
},
"annotations": {
"platform": {
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.67\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/scc": "restricted",
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.67\"\n ],\n \"default\": true,\n \"dns\": {}\n}]"
},
"cryostat": {
"HOST": "10.217.0.67",
"PORT": "9091",
"NAMESPACE": "myproject",
"POD_NAME": "cryostat-sample-694bc6f9b4-mwrh2"
}
}
},
{
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.20:9096/jmxrmi",
"alias": "quarkus-test-1-b6qlj",
"labels": {
"app": "quarkus-test",
"deploymentconfig": "quarkus-test",
"deployment": "quarkus-test-1"
},
"annotations": {
"platform": {
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.20\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/deployment-config.latest-version": "1",
"openshift.io/generated-by": "OpenShiftNewApp",
"openshift.io/deployment-config.name": "quarkus-test",
"openshift.io/deployment.name": "quarkus-test-1",
"openshift.io/scc": "restricted",
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.20\"\n ],\n \"default\": true,\n \"dns\": {}\n}]"
},
"cryostat": {
"HOST": "10.217.0.20",
"PORT": "9096",
"NAMESPACE": "myproject",
"POD_NAME": "quarkus-test-1-b6qlj"
}
}
},
{
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.15:9091/jmxrmi",
"alias": "vertx-fib-demo-1-5sfj6",
"labels": {
"app": "vertx-fib-demo",
"deploymentconfig": "vertx-fib-demo",
"deployment": "vertx-fib-demo-1"
},
"annotations": {
"platform": {
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.15\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/deployment-config.latest-version": "1",
"openshift.io/generated-by": "OpenShiftNewApp",
"openshift.io/deployment-config.name": "vertx-fib-demo",
"openshift.io/deployment.name": "vertx-fib-demo-1",
"openshift.io/scc": "restricted",
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.15\"\n ],\n \"default\": true,\n \"dns\": {}\n}]"
},
"cryostat": {
"HOST": "10.217.0.15",
"PORT": "9091",
"NAMESPACE": "myproject",
"POD_NAME": "vertx-fib-demo-1-5sfj6"
}
}
}
] |
The implementation is currently quite ugly/messy, but there's the output anyway. What do you think @ebaron? |
945250c
to
51b1642
Compare
Cache Kubernetes node references to avoid double-lookup of nodes when considering it as a child and then later when re-considering it as a parent
… chain chase-up in parallel for speed
50ff13e
to
76c7a9d
Compare
Nice, I just added a simple guard against the 0 owners case and it looks like it works for the other targets now:
{
"data": {
"result": {
"children": [
{
"children": [],
"kind": "Realm",
"labels": {},
"name": "Custom Targets"
},
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"kind": "Endpoint",
"labels": {},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.65:9091/jmxrmi",
"target": {
"alias": "cryostat-sample-5f84dd5fbf-m9285",
"annotations": {
"cryostat": {
"HOST": "10.217.0.65",
"NAMESPACE": "default",
"POD_NAME": "cryostat-sample-5f84dd5fbf-m9285",
"PORT": "9091"
},
"platform": {
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.65\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.65\"\n ],\n \"default\": true,\n \"dns\": {}\n}]"
}
},
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.65:9091/jmxrmi",
"labels": {
"app": "cryostat-sample",
"kind": "cryostat",
"pod-template-hash": "5f84dd5fbf"
}
}
}
],
"kind": "Pod",
"labels": {
"app": "cryostat-sample",
"kind": "cryostat",
"pod-template-hash": "5f84dd5fbf"
},
"name": "cryostat-sample-5f84dd5fbf-m9285"
}
],
"kind": "ReplicaSet",
"labels": {
"app": "cryostat-sample",
"kind": "cryostat",
"pod-template-hash": "5f84dd5fbf"
},
"name": "cryostat-sample-5f84dd5fbf"
}
],
"kind": "Deployment",
"labels": {
"app": "cryostat-sample",
"app.kubernetes.io/name": "cryostat",
"kind": "cryostat"
},
"name": "cryostat-sample"
},
{
"children": [
{
"children": [
{
"children": [
{
"kind": "Endpoint",
"labels": {},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.23:9093/jmxrmi",
"target": {
"alias": "jmx-listener-1-6klgb",
"annotations": {
"cryostat": {
"HOST": "10.217.0.23",
"NAMESPACE": "default",
"POD_NAME": "jmx-listener-1-6klgb",
"PORT": "9093"
},
"platform": {
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.23\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.23\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/deployment-config.latest-version": "1",
"openshift.io/deployment-config.name": "jmx-listener",
"openshift.io/deployment.name": "jmx-listener-1",
"openshift.io/generated-by": "OpenShiftNewApp"
}
},
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.23:9093/jmxrmi",
"labels": {
"app": "jmx-listener",
"deployment": "jmx-listener-1",
"deploymentconfig": "jmx-listener"
}
}
}
],
"kind": "Pod",
"labels": {
"app": "jmx-listener",
"deployment": "jmx-listener-1",
"deploymentconfig": "jmx-listener"
},
"name": "jmx-listener-1-6klgb"
}
],
"kind": "ReplicationController",
"labels": {
"app": "jmx-listener",
"openshift.io/deployment-config.name": "jmx-listener"
},
"name": "jmx-listener-1"
}
],
"kind": "DeploymentConfig",
"labels": {},
"name": "jmx-listener"
},
{
"children": [
{
"children": [
{
"children": [
{
"kind": "Endpoint",
"labels": {},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.42:9096/jmxrmi",
"target": {
"alias": "quarkus-test-1-kqx42",
"annotations": {
"cryostat": {
"HOST": "10.217.0.42",
"NAMESPACE": "default",
"POD_NAME": "quarkus-test-1-kqx42",
"PORT": "9096"
},
"platform": {
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.42\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.42\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/deployment-config.latest-version": "1",
"openshift.io/deployment-config.name": "quarkus-test",
"openshift.io/deployment.name": "quarkus-test-1",
"openshift.io/generated-by": "OpenShiftNewApp"
}
},
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.42:9096/jmxrmi",
"labels": {
"app": "quarkus-test",
"deployment": "quarkus-test-1",
"deploymentconfig": "quarkus-test"
}
}
}
],
"kind": "Pod",
"labels": {
"app": "quarkus-test",
"deployment": "quarkus-test-1",
"deploymentconfig": "quarkus-test"
},
"name": "quarkus-test-1-kqx42"
}
],
"kind": "ReplicationController",
"labels": {
"app": "quarkus-test",
"openshift.io/deployment-config.name": "quarkus-test"
},
"name": "quarkus-test-1"
}
],
"kind": "DeploymentConfig",
"labels": {},
"name": "quarkus-test"
},
{
"children": [
{
"children": [
{
"children": [
{
"kind": "Endpoint",
"labels": {},
"name": "service:jmx:rmi:///jndi/rmi://10.217.0.31:9091/jmxrmi",
"target": {
"alias": "vertx-fib-demo-1-hbbq6",
"annotations": {
"cryostat": {
"HOST": "10.217.0.31",
"NAMESPACE": "default",
"POD_NAME": "vertx-fib-demo-1-hbbq6",
"PORT": "9091"
},
"platform": {
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.31\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.217.0.31\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/deployment-config.latest-version": "1",
"openshift.io/deployment-config.name": "vertx-fib-demo",
"openshift.io/deployment.name": "vertx-fib-demo-1",
"openshift.io/generated-by": "OpenShiftNewApp"
}
},
"connectUrl": "service:jmx:rmi:///jndi/rmi://10.217.0.31:9091/jmxrmi",
"labels": {
"app": "vertx-fib-demo",
"deployment": "vertx-fib-demo-1",
"deploymentconfig": "vertx-fib-demo"
}
}
}
],
"kind": "Pod",
"labels": {
"app": "vertx-fib-demo",
"deployment": "vertx-fib-demo-1",
"deploymentconfig": "vertx-fib-demo"
},
"name": "vertx-fib-demo-1-hbbq6"
}
],
"kind": "ReplicationController",
"labels": {
"app": "vertx-fib-demo",
"openshift.io/deployment-config.name": "vertx-fib-demo"
},
"name": "vertx-fib-demo-1"
}
],
"kind": "DeploymentConfig",
"labels": {},
"name": "vertx-fib-demo"
}
],
"kind": "Namespace",
"labels": {},
"name": "default"
}
],
"kind": "Realm",
"labels": {},
"name": "KubernetesApi"
}
],
"kind": "Universe",
"labels": {},
"name": "Universe"
}
},
"meta": {
"status": "OK",
"type": "application/json"
}
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good now!
Continuing from #463
Depends on #573
Fixes #421
Related to #495