Files
komodo/changelog.md
Maxwell Becker 678767c24b [v1.13 - Komodo] Docker compose support with the Stack resource (#24) Co-authored with @karamvirsingh98
* add some network stuff to container summary

* improve settings tables UI

* periphery build supports additional tags

* fix variable container sizing

* alert types newline wrap

* plumbing for Stack resource

* plumbing for Stack resource

* mount stack api

* stack resource sync

* get remote compose file

* support image_name and image_tag

* add server config placeholders. default server config address

* configure image name and image tag

* deployment work with build image_name and image_tag

* stack UI

* fe builds

* configure registry provider and account

* implement periphery stack api

* stack poll interval

* add UI provider management

* deploy stacks

* build push commit hash tag.

* Destroy stack

* update default core port to 9120

* remove git_account alias

* finish stack (and container) api

* frontend builds

* cant cancel server based builds

* fix

* use git pull -f

* 9120

* start UI updates (#15)

* fix  From<Stack> for CloneArgs

* remove unused imports

* UI Updates (#16)

* cleanup dashboard charts for resources

* bring back solid scrollbars

* enable sidebar scrolling

* remove alerts from all resources

* pass jwt secret

* stacks dont delete the target

* parse services from yaml

* stacks deploy

* close

* looking good

* closer

* destroy stack when file missing. onboard stacks

* figure out stack container name matching

* get stack state correct

* work with service views

* UI Updates - Sidebar, Topbar Alerts, and All Resources page (#17)

* move sidebar to use fixed positioning instead of sticky

* add alert details dialog to topbar alerts

* cleanup all resources page layout

* ensure resource links don't propagate clicks

* periphery support passing env with --env-file

* StackServicePage

* default run_directory to ./ for clarify

* add stack webhook listeners

* add default compose name of stack name

* stacks controlled with project name

* migrate to dotenvy

* add stack to dashboard

* remove deploying / destroying stack services

* update config files

* fix getting service logs

* git / docker provider management api

* implement passing git / registry token from db

* rename system user Github to Git Webhook

* seperate deployed and latest services on stack info

* add stack service level operations

* UI Updates - Update Shadcn/UI components, prevent navbar menu layout shift (#20)

* add dashboard pie for resource syncs

* dashboard items same height

* update shadcn components

* ensure centered following sheet update

* cleanup layout, prevent navbar menu layout shifts

* add manual filter, fix toast call

* guard webhooks

* remove deployed_message, latest_message from StackListItemInfo

* stop all containers on server correctly

* support multiple compose files

* cache all containers networks images projects

* remove project missing from db cache

* work on sync deploy stuff

* rework deployment sync deploy to support stacks. they can depend on each other.

* UI Updates - Remove topbar transparency, pretty status badges, tidy resource page layout with a 'back' button (#21)

* remove topbar transparency

* cleanup unused

* responsive dashboard

* better mobile header

* dont need to calc 64px less since header is using position fixed

* add status badge component

* update status badges

* further simplify layout

* allow undefined status as prop

* use new status badges for alerts

* update status badges for all resources

* undo layout change

* tidy up resource page layout, add back button

* no need for button wrapper

* remove unused

* build cancel log

* update ts types

* fix fe type changes

* fe tweaks

* remove on build logs

* core refresh cache immediately on startup

* jwt_ttl

* canonicalize run directory on host

* update canonicalize error message

* core use docker-compose

* fix incorrect project missing, add status string to stack info

* remove entries in "after" that aren't deploying

* fix dockerfiel

* build custom tag postfix

* sync fixes

* ensure UpdateGitProviderAccount doesn't change id

* ensure UpdateDockerRegistryAccount doesn't change id

*  configure providers in the UI

* add // comment support to env, conversions

* add updates for provider deletes

* improve sync pending deploy log

* add more deployment actions

* add backward compat with v1.12 for clone repo

* stack deploy format

* fe

* alert menus clone when click resource link

* rename stacks

* don't close on click

* snake case stack state, in line with deployment state

* sync redeploy stack if newer hash (optional behind resource field 'latest_hash')

* remove nav to tree

* RefreshStack/Sync debug instruments

* improve inline UI docs

* implement resource base_permission backend

* plumbing for Repo build

* build repos

* write env file repos

* add latest hash / message to build info

* add optional hash to update

* keep built_hash updated

* add backend for build / repo latest hash management

* remove unused resources

* clean up repo dirs after cache update

* fix repo info deser error

* add build / repo git status

* fix page layouts

* improve layout responsive

* most config incline docs

* add descriptions for all resource types

* default local auth false

* fix omnibar arrow keys issue

* add compose file to example config

* image registry

* dashboard display no resources messge

* update deps.

* show when no config

* resource sync use config git_provider

* fix networks

* fix deploy error due to after

* update lots of docs

* fix server stat charts not working

* update screenshots

* update changelog

* add a disclaimer

* remove file paths docs stuff

* build repo

* v1.13 - Komodo

* update docs for cli

* fill out the compose example more

---------

Co-authored-by: Karamvir Singh <67458484+karamvirsingh98@users.noreply.github.com>
2024-08-10 09:33:14 -07:00

5.9 KiB

Changelog

Monitor v1.13 - Komodo (Aug 2024)

  • This is the first named release, as I think it is really big. The Komodo Dragon is the largest species of Monitor lizard.
  • Deploy docker compose with the new Stack resource.
    • Can define the compose file in the UI, or direct Monitor to clone a git repo containing compose files.
    • Use webhooks to redeploy the stack on push to the repo
    • Manage the environment variables passed to the compose command.
  • Builds can now be configured with an alternate repository name to push the image under. -An optional tag can also be configured to be postfixed onto the version, like image:1.13-aarch64. This helps for pushing alternate build configurations under the same image repo, just under different tags.
  • Repos can now be "built" using builders. The idea is, you spawn an AWS instance, clone a repo, execute a shell command (like running a script in the repo), and terminating the instance. The script can build a binary, and push it to some binary repository. Users will have to manage their own versioning though.
  • High level UI Updates courtesy of @karamvirsingh98

v1.12 (July 2024)

  • Break free of Github dependance. Use other git providers, including self hosted ones.
  • Same for Docker registry. You can also now use any docker registry for your images.

v1 (Spring 2024)

  • New resource types:

    • Repo: Clone / pull configured repositories on desired Server. Run shell commands in the repo on every clone / pull to acheive automation. Listen for pushes to a particular branch to automatically pull the repo and run the command.
    • Procedure: Combine multiple executions (Deploy, RunBuild) and run them in sequence or in parallel. RunProcedure is an execution type, meaning procedures can run other procedures.
    • Builder: Ephemeral builder configuration has moved to being an API / UI managed entity for greater observability and ease of management.
    • Alerter: Define multiple alerting endpoints and manage them via the API / UI.
      • Slack support continues with the Slack Alerter variant.
      • Send JSON serialized alert data to any HTTP endpoint with the Custom Alerter variant.
    • Template: Define a template for your cloud provider's VM configuration
      • Launch VMs based on the template and automatically add them as Monitor servers.
      • Supports AWS EC2 and Hetzner Cloud.
    • Sync: Sync resources declared in toml files in Github repos.
      • Manage resources declaratively, with git history for configuration rollbacks.
      • See the actions which will be performed in the UI, and execute them upon manual confirmation.
      • Use a Github webhook to automatically execute syncs on git push.
  • Resource Tagging

    • Attach multiple tags to resources, which can be used to group related resources together. These can be used to filter resources in the UI.
    • For example, resources can be given tags for environment, like Prod, Uat, or Dev. This can be combined with tags for the larger system the resource is a part of, such as Authentication, Logging, or Messaging.
    • Proper tagging will make it easy to find resources and visualize system components, even as the number of resources grows large.
  • Variables

    • Manage global, non-secret key-value pairs using the API / UI.
    • These values can be interpolated into deployment environments and build build_args
  • Core Accounts and Secrets

    • Docker / Github accounts and Secrets can now be configured in the Core configuration file.
    • They can still be added to the Periphery configuration as before. Accounts / Secrets defined in the Core configuration will be preferentially used over like ones defined in Periphery configuration.
  • User Groups

    • Admins can now create User Groups and assign permissions to them as if they were a user.
    • Multiple users can then be added to the group, and a user can be added to multiple groups.
    • Users in the group inherit the group's permissions.
  • Builds

    • Build log displays the latest commit hash and message.
    • In-progress builds are able to be cancelled before completion.
    • Specify a specific commit hash to build from.
  • Deployments

    • Filter log lines using multiple search terms.
  • Alerting

    • The alerting system has been redesigned with a stateful model.
    • Alerts can be in an Open or a Resolved state, and alerts are only sent on state changes.
    • For example, say a server has just crossed 80% memory usage, the configured memory threshold. An alert will be created in the Open state and the alert data will be sent out. Later, it has dropped down to 70%. The alert will be changed to the Resolved state and the alert data will again be sent.
    • In addition to server usage alerts, Monitor now supports deployment state change alerts. These are sent when a deployment's state changes without being caused by a Monitor action. For example, if a deployment goes from the Running state to the Exited state unexpectedly, say from a crash, an alert will be sent.
    • Current and past alerts can be retrieved using the API and viewed on the UI.
  • New UI:

    • The Monitor UI has been revamped to support the new features and improve the user experience.

v0 (Winter 2022)

  • Move Core and Periphery implementation to Rust.
  • Add AWS Ec2 ephemeral build instance support.
    • Configuration added to core configuration file.
  • Automatic build versioning system, supporting image rollback.
  • Realtime and historical system stats - CPU, memory, disk.
  • Simple stats alerting based on out-of-bounds values for system stats.
    • Support sending alerts to Slack.

Pre-versioned releases

  • Defined main resource types:
    • Server
    • Deployment
    • Build
  • Basics of Monitor:
    • Build docker images from Github repos.
    • Manage image deployment on connected servers, see container status, get container logs.
    • Add account credentials in Periphery configuration.
  • Core and Periphery implemented in Typescript.