Introducing Aquayman
Introducing Aquayman
This brief article introduces Aquayman, a quay manager that helps manage the Github accounts of your organization by changing a single YAML file.
Jun. 07, 20 · Cloud Zone ·
Comment (0)
Join the DZone community and get the full member experience.
At Loodse, we’re using Quay.io to host our various Docker repositories. Over the last few years, cruft accumulated and we noticed that keeping team memberships up-to-date as employees and customers change became a hassle.
For Github we already make use of Peribolos, a wonderful tool to manage your Github organization declaratively. For quay we unfortunately did not find an equivalent solution, so we made our own.
Say hello to Aquayman (short for “A Quay Manager”). It allows you to manage teams, memberships, and robot accounts for your organization by just editing a single YAML file.
To get started, it’s best to download the latest release and export your current configuration (not just as a starting point, but also as a backup):
xxxxxxxxxx
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
# prepare your configuration file by setting the org name
$ echo "organization: mytestorg" > mytestorg.yaml
# use Aquayman to dump your existing configuration
$ ./aquayman -config mytestorg.yaml -export
2020/05/14 13:56:55 ► Exporting organization mytestorg…
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
0
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
1
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
2
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
3
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
4
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
5
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
6
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
7
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
8
$ wget https://github.com/kubermatic-labs/aquayman/releases/download/v0.1.2/aquayman_0.1.2_linux_amd64.zip
9
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
0
Your mytestorg.yaml
will now be updated and look something like this:
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
1
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
2
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
3
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
4
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
5
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
6
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
7
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
8
$ unzip aquayman_0.1.2_linux_amd64.zip aquayman
9
0
1
2
3
4
5
6
7
8
9
# prepare your configuration file by setting the org name
0
# prepare your configuration file by setting the org name
1
# prepare your configuration file by setting the org name
2
# prepare your configuration file by setting the org name
3
# prepare your configuration file by setting the org name
4
# prepare your configuration file by setting the org name
5
# prepare your configuration file by setting the org name
6
# prepare your configuration file by setting the org name
7
# prepare your configuration file by setting the org name
8
# prepare your configuration file by setting the org name
9
$ echo "organization: mytestorg" > mytestorg.yaml
0
$ echo "organization: mytestorg" > mytestorg.yaml
1
$ echo "organization: mytestorg" > mytestorg.yaml
2
$ echo "organization: mytestorg" > mytestorg.yaml
3
$ echo "organization: mytestorg" > mytestorg.yaml
4
$ echo "organization: mytestorg" > mytestorg.yaml
5
$ echo "organization: mytestorg" > mytestorg.yaml
6
(The Aquayman repository contains a documented example configuration.)
If you start with an existing, messy organization, your next step will probably be to clean up your configuration a bit. Once you are satisfied, you can apply the configuration:
$ echo "organization: mytestorg" > mytestorg.yaml
7
$ echo "organization: mytestorg" > mytestorg.yaml
8
$ echo "organization: mytestorg" > mytestorg.yaml
9
0
1
2
3
4
5
6
7
8
9
# use Aquayman to dump your existing configuration
0
Aquayman shows you a diff-style output, hinting at the actions it would perform. If you are once again happy, you can run it again with the -confirm
flag.
# use Aquayman to dump your existing configuration
1
# use Aquayman to dump your existing configuration
2
# use Aquayman to dump your existing configuration
3
# use Aquayman to dump your existing configuration
4
Congratulations, time to grab a coffee!
At Loodse we manage our configuration in Github, so we get a nice review-workflow whenever permissions need to change, have an audit trail, and can restrict the permissions to manage our organization even further. The less human intervention needed, the better.
Comment (0)
Opinions expressed by DZone contributors are their own.
Cloud Partner Resources
ABOUT US
CONTRIBUTE ON DZONE
LEGAL
CONTACT US
- 600 Park Offices Drive
- Suite 150
- Research Triangle Park, NC 27709
- support@dzone.com
- +1 (919) 678-0300
- {{ node.blurb }}
{{ editionName }}
{{ parent.title || parent.header.title}}
{{ parent.tldr }}
{{ parent.linkDescription }}
{{ message }}
{{ $dialog.title }}