Skip to main content

What's Changed​

Features​

  • 8d462c68 resoto update the secret name
  • 38532da1 resoto update the workflow to always publish from a branch
  • e380b5c1 resoto update the dependencies in resoto-bundle

Fixes​

  • fb669cb0 resotocore Fix api test setup (#1192)
  • 04a0dbd5 digitalocean Fix the snapshots regions collection (#1194)

Chores​

  • f74ed976 resoto bump 2.4.2
  • 7bd2252e ci Correct file path & link for release notes (#1211)
  • d1d0d668 ci Update path to helm chart yaml (#1210)
  • 461547be ci Update CI for versioned docs (#1164)
  • 459f8dde ci Fix release notes generator when no PR, bump helm-charts versions (#1148)
  • 655b4ff1 ci Handle reversed component/group in release notes generator (#1078)

What's Changed​

Features​

Fixes​

Chores​

Hello everyone, here's an update for July!

In June, we released Resoto 2.3.2. The key update that we shipped is a feature that a lot of users have asked forβ€”support for Kubernetes! 😎

Configuration UI​

Last month we introduced our new config system, with the ability to edit your Resoto configuration on the fly via Resoto Shell. Not everyone is comfortable working with the shell though, and so we added a new web-based UI.

Kubernetes Support​

So far, Resoto has worked out-of-the-box for the "native" cloud providers AWS, GCP, and DigitalOcean. But our users have been telling us that they're not just running "bare metal" on these clouds. No surpriseβ€”most of them use Kubernetes for orchestration. You can now point Resoto to your kubeconfig file, with which Resoto will collect all available contexts.

note

Resoto's unified data model still applies. Common Resoto types like resource, instance, and volume are still relevant with Kubernetes. We went "deep" on Kubernetes from day one, meaning we support the entire set of 100+ Kubernetes properties. Full-text search, piping commands, and performing jobs (like tag and cleanup) also work for Kubernetes.

We think you will be delighted to use Resoto with Kubernetes. For more details, check out Matthias' blog post.

Nested Properties​

To add Kubernetes support, we first had to build new capabilities into our data model. Nested properties is one such capability.

The first version of Resoto supported simple structuresβ€”think "a resource with a property." This simple structure unfortunately doesn't work well with the nested structures commonplace in Kubernetes. For example, one Kubernetes pod can contain multiple containers. Within each of those containers, you then have a long list of possible properties (from the 100+ mentioned above). Each of those nested properties can be accessed and used for filtering or information retrieval.

Resoto now supports arbitrary complex models with nested properties. We also made sure autocomplete in Resoto Shell works with complex models. You can (literally) navigate through nested properties as you type.

Multi-Cloud Graph Edges​

Another fundamental capability we launched with Kubernetes support is support for graph edges between different clouds.

Data collection and definition of resource dependencies within Resoto happens with cloud-specific collectors. Since collectors are cloud-specific, so far Resoto has only supported dependencies within a cloud, not between clouds.

Kubernetes resources are abstracted away from the underlying cloud provider. The Kubernetes collector knows nothing about AWS or EC2 instances, while the AWS collector only knows AWS services like EC2 and EKS. With multi-cloud edge support, Resoto can now track relationships between the two, creating the complete call graph for a view of the entire stack from ingress, via pod, deployment, k8s node, or compute instance down to the hardware.

This new feature provides insights across multi-cloud infrastructure. Since we see a lot of multi-cloud deployments in the enterprise, we will continue to extend our collectors to provide additional insights into relationships across clouds.

Read more about nested properties and multi-cloud graph edges in the release notes.

What's Changed​

Fixes​

Highlights​

Support for Kubernetes​

Kubernetes is the de-facto standard for orchestrating containerized applications. It is the go-to solution no matter where your infrastructure is running. This release adds support for Kubernetes resources. All standard Kubernetes resources are supported and fully covered.

Kubernetes

Further Reading​

UI to Configure Resoto​

We now ship a user interface (UI) in Resoto Core, from which it is possible to configure Resoto.

If you are running Resoto locally via Docker, the UI is accessible via https://localhost:8900/ui:

Config UI

Complex Model Handling​

Resoto had limited support to handle complex models. This release adds the ability to handle any deeply structured type while also introspecting them.

Resoto Shell now provides better, type-aware suggestions:

Complex Kind

Resoto Shell is also able to suggest deeply nested properties, since it knows the complete model structure:

Complex Kind

The kinds command can be used to lookup the model behind a nested property path:

Complex Kind

And last but not least, the UML model endpoint can generate diagrams with complex models.

Support for Graph Edges Between Clouds​

Resoto uses collectors to retrieve data from a specific cloud provider. Those collectors are not only able to collect the resource data, but also define the relationships between the resources. Some relationships cannot be resolved inside the collector, since the relationship points to resources that are not part of this cloud.

Examples
  • A Kubernetes node is running on an AWS EC2 instance. The Kubernetes collector is unable to resolve the reference, since it points to a resource provided by AWS.
  • A load balancer in AWS that points to compute resources in Google Cloud. The AWS collector does not know anything about GCP.

Resoto now has support for creating edges that cannot be resolved during the phase of collecting the data but are resolved once all collectors have delivered their current snapshot. Going forward, we will continue extend our collectors to provide insights into relationships across cloud providers.

What's Changed​

Features​

Fixes​

  • edc3ae4 resoto Build and push to PyPI on tag push (#865)
  • 080441d resotocore format also supports yaml which was not listed (#863)
  • 3eab4e2 plugins Use Gb instead of Mb for DO instances (#861)
  • 69749ef resoto Escape inputs to mute snyk (#859)
  • 449d79b resotoworker Better logging of cleanup (#858)
  • 21b60af resotolib Send action reply via object ref not local (#856)
  • 190d2fb resotolib Handle failure to save config after load gracefully (#854)
  • 5116ab1 resotolib Change severity of auto-recovering info and error messages (#848)
  • 923aaaf resotoshell handle wrong PSK (#846)
  • 0f7284b resotocore Handle connection errors more gracefully (#844)
  • a09e53d resotolib Use debug instead of error log severity (#842)
  • 44a5a54 resotoshell Graceful exception handling (#843)
  • 9ffb7b2 resotocore CLI info for all commands (#841)
  • a4440ba resoto Remove type ignores for pypy 3.8 (#836)
  • 60c92ce resotocore Revert bumping arangodb driver (#840)
  • c7a7165 resotoshell shutdown the client thread (#839)
  • 95fd4d2 resotoshell Bump resotoclient (#838)
  • ee17313 resotoshell Fix sort suggestion and improve option information (#829)
  • d59e0c7 plugins Remove _ from plugin package names (#830)
  • 22cba64 resotolib close fds more targeted during restart (#827)

Chores​

What's Changed​

Features​

  • 0aad50b resotoshell Add aggregate completer (#825)
  • 2d0aa6a resoto Use json as logging output format (#824)
  • f6aea4a resotoshell Use resotoclient in resotoshell (#822)
  • 121709d resotoshell Check resotocore returned filename for invalid path element (#821)
  • 2952fe9 resotoshell Better startup error messages (#820)
  • 140b06b resotoshell Improve search completion (#816)
  • bdb1585 resotoshell Add debug output containing the http error code on resh error (#819)
  • 1206f52 resotolib Send regular pings over websocket (#818)
  • 8fc5688 resotoshell Add autocomplete in interactive shell session (#811)
  • c968f88 resotocore Export available command line arguments (#813)
  • 9f9c03d helm Simplify helm chart deployment (#805)
  • 7c808a7 resotocore Improve analytics data (#800)
  • 90c6905 resoto add more script documentation (#773)
  • 7cd260d docker Add someengineering/resh container (#789)

Fixes​

  • 9cb6277 resotocore Validate tarfile content (#823)
  • f13e8cc resoto Add .dccache to .gitignore (#817)
  • 860ec68 plugins Fix aws excluded accounts default and update gcp severity (#815)
  • c494d90 resotoshell Compare config checksum instead of ctime/mtime (#814)
  • a143f57 resoto Define the UI by default in helm chart (#812)
  • cce1444 resotocore Use resotoclient in tests (#809)
  • dee2cd9 docker Add cache version to cache key for easy invalidation (#810)
  • e471bbb docker copy ArangoDB dump/restore client binaries (#806)
  • 1bcf470 docker Add vi and nano to Docker images (#804)
  • 35467b7 resotolib Update TLS certificate files on disk after a certain time has passed (#803)
  • 32e3923 plugins Rename protect_snowflakes -> protector and make plugins restart on enable (#794)
  • dff92da docker Allow docker-compose run resotoshell (#798)
  • 89f509a resotocore write ca bundle periodically to tmp (#797)
  • c04aec0 resotocore No analytics in CI (#799)
  • 4248c8a resotocore Not should affect only the next simple term (#793)
  • 6d51d8b docs Update all plugin READMEs (#790)
  • 3ddd92a docker Use released 2.0.0 version in docker-compose (#787)

Documentation​

  • 8a87218 resoto fix typo in render_dot readme (#807)
  • e048ae3 resoto Update rendering script docs (#796)
  • f82e3ea resoto Add the instruction for the graph rendering script (#795)

Chores​

What's Changed​

Features​

Fixes​

  • fb209b6 resotoshell Fix rich dependency
  • 6ffc7f4 docker Add cache version to cache key for easy invalidation (#810)
  • 3692fcf resotocore Fix rich dependency
  • 82e64d0 docker copy ArangoDB dump/restore client binaries (#806)
  • 81fc02d docker Add vi and nano to Docker images (#804)
  • b087485 resotolib Update TLS certificate files on disk after a certain time has passed (#803)
  • 5bbea70 plugins Rename protect_snowflakes -> protector and make plugins restart on enable (#794)
  • f70079a docker Allow docker-compose run resotoshell (#798)
  • 2e2e92f resotocore write ca bundle periodically to tmp (#797)
  • 7875cc5 resotocore No analytics in CI (#799)

Documentation​

  • 0282425 resoto Update rendering script docs (#796)
  • cdd3f5a resoto Add the instruction for the graph rendering script (#795)

Chores​

  • e4aa797 resoto Bump 2.0.2
  • 2f1c040 resoto use version 2.0 as docker version in compose
  • 1763105 resoto Add documentation as release note section (#792)