2.3.1
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.
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:
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:
Resoto Shell is also able to suggest deeply nested properties, since it knows the complete model structure:
The kinds
command can be used to lookup the model behind a nested property path:
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.
-
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 Google Cloud.
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
8dba845
k8s Add deferred edges to digitalocean (#921)396205a
k8s Migrate from v1 config (#933)c28fb7f
resotometrics Turn metrics type into enum (#912)5a8d960
k8s Order status conditions by time. (#926)9f32c24
k8s Add edge from node to pod (#924)829f363
resotocore Improve nested path handling (#922)8fea151
resotocore Send event when usage metrics are turned off (#918)bf3b286
k8s Implement tag update, tag delete and resource delete (#920)7171c99
k8s Configure access directly or via file (#911)68bab3c
resotoworker Outer edge support - part 4/4 (#916)5f0e440
k8s Define successors (#917)ba317bf
resotocore Uml model shows dependant complex types (#913)ea63d67
resotocore Make EdgeType typed (#909)33a4649
k8s Add collector test (#908)9097d08
resotocore Outer Edges collection support - Part 3/4: (#902)e1694a0
k8s Implement kuberenetes plugin (#903)c873cc9
resotolib Extend update check to distinguish between stable and pre-releases (#898)9f97b56
Remove trailing slash (#905)941eaca
Outer edge collection support - Part 2/4 (#892)25cb049
resotolib Use 120 lines length for formatting (#896)ad42bd4
Add a package to install all resoto components at once (#890)fb7c25b
resotolib Update check (#895)552feeb
Initial DNS support (#894)973a9be
resotocore format --json prettifies json (#893)99c09e7
resotoeventlog Genesis of resotoeventlog (#883)503b736
resotocore Add typed ConfigId (#886)3909d5b
fix: resotolib/requirements.txt to reduce vulnerabilities (#888)2d9bf57
resotocore Typed WorkerId (#885)9ad54b0
resotocore Typed Ids: TaskId (#882)b009c2c
resotocore Typed Ids: SubscriberId (#881)c5a4b2b
resotocore Sort config based on model order (#875)6bb14fd
resotocore Rename config option analytics_opt_out -> usage_metrics (#874)9bc4086
resotocore Outer edge collection support - Part 1/4 (#877)d53b757
resotocore Add sort properties to list output (#870)
Fixes
7537283
docker Only build amd images (#947)81f5966
resotoshell Use correct url (#931)5723e1b
resotoworker Wrap collector plugins in try/except block (#929)e62206e
resotometrics Fix metrics type (#928)43d1588
k8s Handle optional properties correctly (#930)b2faf77
resotoeventlog Update PyPI secret name (#927)b0374ee
digitalocean Type validation (#900)df85e18
k8s Fix api client handling (#925)418c488
resotoworker Retry sending of graph data (#923)c7eedf8
resotolib Units are computed correctly (#915)a726bdd
resotocore Search and coerce for arrays and backticks (#914)7e389ab
Update git repo check in setup_venv script (#910)3afe204
resotocore Typed NodeId (#897)c31cfe5
resotocore search navigation after tail (#891)6650606
resotocore Allow complex config override values (#887)a0a511d
resotocore Make helm test more reliable (#884)80cc046
resotocore package need to be marked as module (#880)0fdbfc7
resotocore Content disposition header for ca certificate (#879)55dfbf8
ci Properly handle commits without associated PRs in release notes generator (#878)b79b14a
docker Increase file limits for ArangoDB (#845)dc08974
docker Use TLS setup for prometheus (#873)5b326a5
resotocore Make query parser more strict (#869)d9a2617
digitalocean Rename do -> digitalocean (#871)0db53ce
resotocore Export model in correct format (#868)1b538d5
aws Add extra logging during EKS collection (#866)c47a422
Build and push to PyPI on tag push (#865)
Chores
4e64f64
[resoto][chore] bump release versiona516fbf
[resoto][chore] Bump release version.04399c3
k8s Update Readme. (#939)799911f
Move duration parsing from resotocore to resotolib (#919)f26bd09
Bump versions - take #2 (#907)43ac678
Bump versions (#906)bfcf62d
resotoeventlog Remove experimental eventlog UI (#904)e2f7a33
use 120 characters line length for everything (#899)b2736cf
Update README (#867)637c4ee
Bump 2.3.0a0 (#864)c017e45
k8s Add reference to configmap and secret from env (#932)
Docker Images
somecr.io/someengineering/resotocore:2.3.1
somecr.io/someengineering/resotoworker:2.3.1
somecr.io/someengineering/resotoshell:2.3.1
somecr.io/someengineering/resotometrics:2.3.1