Skip to content

phillipahereza/mattermost-plugin-digitalocean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Mattermost Digital Ocean Plugin

phillipahereza Go Report Card

Table of Contents

1. Configuration

  • Configure the plugin in Mattermost by going to System Console > Plugins > DigitalOcean. Enable the plugin if it's not enabled.
  • Go to Digital Ocean, copy and then add your Digital Ocean team identifier (ID) to the settings under "Unique DigitalOcean Team Identifier"

Screen Shot 2020-02-16 at 09 51 09

config

NB: This can be found as query param on any Digital Ocean Url. From this URL https://cloud.digitalocean.com/projects/9ae5693a-1573-4dc1-a55d-3ebf87579XXX/resources?i=6dXcXX, It would be 6dXcXX

  • Save your settings

2. Features

2.1 Help

Run /do help and get help on all commands.

2.2 Available Commands

  • /do help - Run 'test' to see if you're configured to run do commands

Authentication

token_instructions

  • /do connect <access token> - Associates your DO team personal token with your mattermost account
  • /do disconnect - Remove your DO team personal token with your mattermost account
  • /do token - Provides instructions on getting a personal access token for the configured DigitalOcean team
  • /do show-configured-token - Display your configured access token

Droplets

  • /do create-droplet - Easily create a new droplet from within Mattermost

Click image below to access feature demo

drop

Create process alerts team members of the newly created resource

MM SS

  • /do list-droplets - List all Droplets in your team
  • /do rename-droplet <dropletID> <name> - Rename a droplet
  • /do reboot-droplet <dropletID> - Reboot a droplet
  • /do shutdown-droplet <dropletID> - Shutdown a droplet
  • /do powercycle-droplet <dropletID> - action is similar to pushing the reset button on a physical machine, it's similar to booting from scratch

Domains

domains

  • /do list-domains - Retrieve a list of all of the domains in your team

SSH Keys

SSH

  • /do list-keys - Retrieve a list of all of SSH keys in your team
  • /do retrieve-key <keyID> - Retrieve a single key by its ID
  • /do delete-key <keyID> - Delete single key by its ID
  • /do create-key <name> <publicKey> - Add an SSH key to your team

Databases

  • /do list-clusters - Retrieve a list of all Database Clusters set up in your team
  • /do list-cluster-backups <id> - Retrieve a list of all backups of a Database Cluster
  • /do add-cluster-user <clusterID> <userName> - Add a database user to a cluster
  • /do list-cluster-users <clusterID> - List database cluster users
  • /do delete-cluster-user <clusterID> <userName> - Delete a database user to a cluster
  • /do list-cluster-dbs <clusterID> - List databases in the cluster

Kubernetes

List Kubernetes clusters

list-k8s

List Kubernetes Cluster Nodes

list-nodes

Get cluster kubeconfig

k8s-config

  • /do list-k8s-clusters - List all Kubernetes Clusters in your team
  • /do list-k8s-cluster-nodepools <clusterID> - List Nodepools in a Kubernetes cluster
  • /do list-k8s-cluster-nodes <clusterID> - List Nodes in a Kubernetes cluster
  • /do list-k8s-cluster-upgrades <clusterID> - Retrieve a list of available upgrades for a Kubernetes cluster
  • /do get-k8s-config <clusterID> - Retrieve kubeconfig file in YAML format
  • /do upgrade-k8s-cluster <clusterID> <versionSlug> - Upgrade a Kubernetes cluster to a newer patch release of Kubernetes

2.3 Droplet updates

The bot provides alerts to team members in subscribed channels incase certain thresholds like CPU, Memory Usage etc. are hit. Running /do subcribe in a central channel will set it up to receive these regular updates from the bot. Channels can unsubcribe by running /do unsubscribe

Screen Shot 2020-03-04 at 15 54 19

3. Development

  • Fork this repo
  • Clone your fork and make changes on your branch
  • Run $ make at the root of this project
  • Install the generated tar on your server to see your changes

4. TODO

  • Create Kubernetes Clusters
  • Scaling Kubernetes Clusters
  • Configuring LoadBalancers
  • Connecting to multiple projects within an account/ Being able to switch between projects
  • Block Storage
  • CDNs
  • SSL Certificates