Skip to content

Letter From The Devs

Hello Everyone!

We've got a JUICY release of the Open AMT Cloud Toolkit, v.1.4.0 is out now! We've decided to push out LTS until next release given the amount of changes in this release. We've got a few more breaking changes in this release, so please read the release notes and changelogs carefully if you haven't already.

For this release, we have primarily focused on scaling. Our last release, didn't have any updates for scaling so we felt it was time to give it some much needed attention. Firstly, we removed all *.bat scripts required for deploying the Kubernetes (K8s) stack. They were super helpful if you were on Windows, but not so helpful for other platforms. Additionally, they were a bit opinionated on how things should be deployed and obfuscated how the services were deployed. We've taken what was in those scripts, streamlined many of the operations and provided some documentation for each command that is required to help guide you through each step. Secondly, we've begun the process of making the K8s deployment cloud platform agnostic. Previously, v1.2 scaling focused solely on Azure Kubernetes Service (AKS), and the work required to support other cloud providers was a bit much to ask of our users (basically starting from scratch). With this release, we've ensured our Helm charts work on a local K8s cluster (for development without the need of a cloud), and AKS. Additionally, we have restructured our helm charts to be flexible for use in Amazon EKS, Google's GKE, or other cloud environments. While we haven't tested these other cloud providers, we are confident that the Helm charts are in a much better state for flexibility. In the next release, we will continue modifications to our Helm deployment to make it as stateless as possible. Namely, we will be removing PostgreSQL from the K8s deployment requiring users to bring their own managed database as this avoids high risk of managing state in a K8s cluster (backups, resiliency, cloud permissions, etc...). We will also make some modifications around how certificates are handled for MPS, and are also exploring mTLS between services for extra security.

Speaking of security, we've taken a look at some of our practices and started making some changes as to how we treat deployments. For the past few releases, we've provided default usernames/passwords to make it easy to get up and running quickly and easily. The unfortunate reality is that often times, these default usernames/passwords can easily end up inadvertently in a production environment thus compromising a deployment. So while we sacrifice a bit of speed to get up and running in the beginning, we felt it a small enough change to remove default usernames and passwords, and instead ask our users to provide them in either k8s secrets, or environment variable at deploy time. Also in this release, we now require a JWT for KVM/SOL connections, this should have been in our last release but it didn't quite make it. We will continue to focus on security as we move towards our LTS release and will ensure stronger user provided or randomly generated passwords.

Next up is the ui-toolkit. We've renamed the package! It is now called @open-amt-cloud-toolkit/ui-toolkit, and even better yet, you can now install from NPM with npm install @open-amt-cloud-toolkit/ui-toolkit!!! This is something that we should have been doing from the start. An open source project should NOT being asking their users to install an npm dependency outside the node/npm ecosystem against the industry norm. Going forward, our ui-toolkit releases will be tagged on github for you to get the source material as well as available on npm to use in your projects. Enjoy!

Lastly, MPS Events! We have added an optional preview feature that leverages MQTT to publish events that occur in MPS. Namely, you can subscribe to the mps/events topic to see when and what AMT calls are happening through MPS, and whether they are succeeding or failing. This is a really good way to gain some insight into the health of your devices. We'll continue to expand this to RPS, and potentially change the schema a bit as this feature matures. If you have any input, feel free to join the discussion.

Whew! That's quite a bit! I am very proud of everything our team has accomplished! I mentioned we will be pushing out our LTS release just a bit, additionally this will be a version 2.0.0 to very clearly indicate that any previous release is not compatible with it. Going forward after LTS, semantic versioning (SemVer) will be strictly adhered to. We have been loosely following this, but from version to version since v1 we've had breaking changes and if we were following SemVer, we'd be on 4.0.0 by now. You can read more about SemVer at (https://semver.org/)[https://semver.org/].

As always, if any issues are found -- please file them on our github issues and we'll be sure to take a look and address them as we can. That's all for now, until next time!

- Mike