Is your favorite butler, who's able to run and monitor jobs to be executed on virtual machines in the cloud.
- bash
- docker
- ssh
- tar
- zstd
- Install the required dependencies.
- Download Alfred's client binary and put it in your
$PATH. - Your SSH key must be added to Alfred remote server by an administrator. Ask @gnutix.
- Add the Alfred host key to your known_hosts:
ssh-keyscan -H alfred.tipee.dev >> ~/.ssh/known_hosts - You should now be able to run
alfred versionand see the version of the remote server.
Run alfred --help to see the list of available commands and options.
make- Go 1.21+
- Reflex
go install github.com/cespare/reflex@latest
- Protocol Buffer (needed for gRPC)
- Download the protoc compiler archive, unpack it
- Move the
bin/protocfile to/usr/local/bin/protoc - Move the
include/googlefolder to/usr/local/include/google - Install Go plugins :
go install google.golang.org/protobuf/cmd/protoc-gen-go@latestgo install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
- If not done already, add
$(go env GOPATH)/binto your$PATH
Run the server:
make bin/alfred-server
bin/alfred-server [options...]Run the server (with auto-reload):
make run-serverBy default, the alfred client will connect to the production server.
For development, you can override the default remote by setting the ALFRED_REMOTE="localhost:25373" environment variable to point to your local server.
You can also pass the --remote localhost:25373 to alfred's commands each time.
To run alfred server with the OpenStack provisioner, you need credentials to access the OpenStack API. Ask @BastienClement.
Releasing a new version of the client binary is done by creating a release on GitHub. The binaries are automatically created for different platforms by a GitHub Action.
Deployment is done manually using a GitHub Action. Beware that running jobs are stopped during the deployment.
The Alfred nodes' image is maintained using Packer in a separate repository. Ask @BastienClement, he's the only one who can do it for now...