Navigating Resources
Resource Navigator
The Navigator shows all resources found in the current project. Resources are grouped into sections/subsections based on their usage in Kubernetes. Selecting a resource automatically highlights both the file containing that resource and any other resourced linked to the selected one:
In this screenshot:
- The
argo-rollouts-metrics
service is selected. - The associated
argo-rollouts-metrics-service.yaml
file is highlighted to the left in the File Explorer. - The linked
argo-rollouts-metrics
Deployment (via the selector in the Service manifest) is highlighted. - The Service manifest is shown in the Editor to the right (with highlighting of the link to the Deployment on line 16).
Resource Links
Links between resources are indicated by link icons to the left and right each resource name:
- Links to the left indicate there are incoming links to the resource. For example, a ConfigMap might have an incoming link from a Deployment.
- Links to the right indicate there are outgoing links from the resource. For example, a Service might have a selector that selects a Deployment.
Hovering over a link icon will show a popup with all links (either incoming or outgoing) allowing you to click on a link to take you to that resource in the navigator.
In the following image, the popup shows the outgoing link from the argo-rollouts
Service to the argo-rollouts
Deployment
(via the selector in the Service manifest).
If a link is "unfulfilled", i.e., not referring to any object currently in the navigator, it is marked with a warning triangle, making it easy to identify broken resource links in your manifests:
In this screenshot the rollouts-demo-root
RoleBinding contains a reference to an rollouts-demo
Role, which
doesn't exist in the current manifests. Clicking on broken links will open the corresponding reference in the editor so you
can easily fix it.
Resource Filtering
Resource filters allow you to filter the resources based on various properties such as:
- Name
- Kind
- Namespace
- Labels
- Annotations
Click on the filter button on the top of the navigator to launch the dialog for configuration.
Users can also add or remove filters by highlighting and hovering over labels, annotations or other metadata properties in the code editor:
Navigation History
You can easily navigate back and forth between the selected resources with the help of the Navigation button. The highlight arrow will indicate when navigation to previous or next resource is available.
Expand/Collapse Sections
In the resource navigator, clicking on the section name will expand or collapse individual sections.
Recent Projects
The Recent Projects option has been added to the system menu to make it easy to switch between your favorite resource-manifest folders.
Action: File > Recent Projects
Supported Resource Links
Monokle Desktop currently finds and visualizes the following links between Kubernetes resources - please let us know if we missed something or got it wrong!
Resource Type | Outgoing Link(s) identified |
---|---|
Secret | metadata.annotations.kubernetes.io/service-account.name => ServiceAccount metadata.name (optional) |
Service | content.spec.selector => Deployment `spec.template.metadata.labels`` |
PodSpec in Deployment / Pod / DaemonSet / Job / StatefulSet / ReplicaSet / CronJob / ReplicationController | ..configMapRef.name => ConfigMap metadata.name , ..configMapKeyRef.name => ConfigMap metadata.name , ..volumes[*].configMap.name => ConfigMap metadata.name , ..volumes[*].secret.secretMame => Secret metadata.name , ..secretKeyRef.name => Secret metadata.name , ..imagePullSecrets => Secret metadata.name , ..serviceAccountName => ServiceAccount metadata.name |
ServiceAccount | ..secrets => Secret metadata.name |
PersistentVolume | spec.claimRef.name => PersistentVolumeClaim metadata.name |
PersistentVolumeClaim | spec.volumeName => PersistentVolume metadata.name |
Endpoints | metadata.name => Service metadata.name |
ClusterRoleBinding | roleRef.name => ClusterRole metadata.name |
RoleBinding | roleRef.name => ClusterRoleBinding or Role metadata.name |
Ingress | ..backend.service.name => Service metadata.name , ..resource.* => any object in same namespace |