Dockershim has added a label `io.kubernetes.docker.type` for at least
four years, where the pause container is of type `podsandbox`. This
should be more reliable than trying to keep up with everyone's name
for the pause container.
This dependency makes it harder to see the structure of the program,
and sometimes complicates compilation.
Mostly just changing the source of strings that are already exported
from the report package. A few new strings have to be moved there,
plus the function `IsPauseImageName()`.
This covers:
- Implementation of the job resource in probe
- Reporter changes for the job
- Add Describe Control to the job
- Pass job object to the kube controller renderer
ToDo:
- Need to decide the shape for the Job.
Signed-off-by: Satyam Zode <satyamzode@gmail.com>
This commit will add a new control i.e. Describe
which will describe a k8s resource similar to kubectl describe.
Signed-off-by: Akash Srivastava <akashsrivastava4927@gmail.com>
This will
Upgrade:
- k8s.io/client-go v10.0.0
- k8s.io/api version to kubernetes-1.13.0
- k8s.io/apimachinery version to kubernetes-1.13.0
- github.com/imdario/mergo to v0.3.5
Add:
- k8s.io/klog v0.1.0
- sigs.k8s.io/yaml v1.1.0
Changes:
- modified: probe/kubernetes/client.go
- modified: probe/kubernetes/controls.go
To ScaleUp and ScaleDown a Deployment, Scale method was used,
which is removed in client-go-10.0.0
Instead of Scale use UpdateScale method of Deployment to
ScaleUp and ScaleDown the Deployment.
Signed-off-by: Akash Srivastava <akashsrivastava4927@gmail.com>
Read all the PVC source from a pod spec
and add adjacency between the pod and its PVCs.
Signed-off-by: Akash Srivastava <akashsrivastava4927@gmail.com>
This avoids side-effects from reporting Kubernetes from a
cluster-level probe, and removes a lie from the probe data.
Rather than do the work every time the probe sends a report, we do it
every time the app renders endpoints, which should be once per merged
report set.
- Add control on volume snapshot to take clone
- Add control on volume snapshot to delete it
Signed-off-by: Akash Srivastava <akash.srivastava@openebs.io>
- Add a new client in probe/kubernetes/client.go
which will be used to fetch details of Snapshot CRD
- Visualize VolumeSnapshot and VolumeSnapshotData
- Add adjacency between PV and VolumeSnapshot
- Add adjacency between VolumeSnapshot and VolumeSnapshotData
- Add snapshot filter to hide and show snapshots
Signed-off-by: Akash Srivastava <akash.srivastava@openebs.io>
- Refactor dotted edge logic.
- Change Storage view to show storage components as well as all
the pods.
- Sentence case storage related variables.
Signed-off-by: Satyam Zode <satyam.zode@openebs.io>
This will:
- Add StorageClass resource. Storage classes are mentioned
in the PVC spec. We're using storage class name from PVC spec to
add adjacency to the PVC node.
- Add square sheet shape for StorageClass.
- Add storage filter in the PODS topology.
Storage Filter will allow user to see distinct view of
stateful applications.
- Add visually distinct edge to show storage adjacency.
Signed-off-by: Satyam Zode <satyam.zode@openebs.io>
- Kubernetes storage components such as PV and PVC are connected based on two
parameters Persistent volume claim name and Persistent Volume name.
- PVC contains the volume name which is, PV name itself. Hence, we can
show edge for PVC and PV.
- This will bring higher level visibility for kubernetes storage components.
Signed-off-by: Satyam Zode <satyam.zode@openebs.io>
This will
- Add Kubernetes volume resources such as PV, PVC.
- Add shapes for Kubernetes PV and PVC
- Add `Cylinder` shape for PV and `Dotted Cylinder` shape for PVC.
Signed-off-by: Satyam Zode <satyam.zode@openebs.io>
* Sentence cased text everywhere
Follows Weave Cloud's direction of sentence case on most things.
* More space between sorter caret and label
* Use full topology name for table header
* Refactor: func has already access to probeID
* Allow controls for more k8s topologies
Controls for nodes generally need to know about the probe that is in
control of them.
This PR appends the probe ID info to k8s topologies CronJob, DaemonSet,
Service, and StatefulSet. Therefore allowing plugins to append controls.
* Remove superfluous error check
* Add some tests to verify controls allowance
Reflectors are created and run within the same function, asynchronously from the main thread.
Creating reflectors may require calls to the kubernetes api, which can return errors.
API errors are not handled in the main thread, but are handled asynchronously by retries.