Integrations Overview

Armory Continuous Deployment-as-a-Service provides tools to integrate with Spinnaker and GitHub. You can also trigger deployments from any CI system by using the CD-as-a-Service CLI and machine to machine credentials.

Armory integrations

Armory provides and supports the following:

Generic CI systems

You can trigger deployments from any CI system.

  1. Install the CD-as-a-Service CLI natively or run it in Docker.

    Show me how
    brew tap armory-io/armory brew install armory-cli

    You can install the CLI with a one-line script that does the following:

    1. Fetches the correct Armory Version Manager binary (avm) for your operating system
    2. Installs the AVM binary
    3. Uses the AVM to install the CLI binary (armory)
    4. Adds the AVM and the CLI to the path in your bash or zsh profile

    Execute the following script on the machine that has access to your Kubernetes cluster:

    curl -sL go.armory.io/get-cli | bash

    After installation completes, you should start a new terminal session or source your profile.

    1. Download the AVM for your operating system and CPU architecture. You can manually download it from the repo or use the following command:

      curl -LO https://github.com/armory/avm/releases/latest/download/avm-<os>-<architecture>

      For example, the following command downloads the latest version for macOS (Darwin):

      curl -LO https://github.com/armory/avm/releases/latest/download/avm-darwin-amd64

      You can see the full list of available releases in the repo.

    2. Give AVM execute permissions. For example (on macOS):

      chmod +x avm-darwin-amd64
    3. Confirm that /usr/local/bin is on your PATH:

      echo $PATH

      The command returns your PATH, which should now include /usr/local/bin/.

    4. Rename the AVM binary to avm and move it to /usr/local/bin, which is on your PATH. For example (on macOS):

      mv avm-darwin-amd64 /usr/local/bin/avm
    5. Run the following command to install the CLI:

      avm install

      The command installs the CLI and returns a directory that you need to add to your path, such as /Users/milton/.avm/bin.

      If you get an developer cannot be identified error when trying to run AVM, you must allow AVM to run.

      Show me how to allow AVM to run.

      On macOS, go to System Preferences > Security & Privacy > General and click Allow Anyway.

      For more information, see the macOS documentation about how to open a Mac app from an unidentified developer.


    6. Add the directory that AVM returned when you ran avm install to your path.

      Show me how to add the directory.

      You can either add the path directly to /etc/paths or add it to your shell profile. The following steps describe how to add it to your shell profile:

      1. Edit the resource file for your shell, such as .bashrc, .bash_profile, or .zshrc. For example:

        vi ~/.bashrc
      2. In the file, find the line for the PATH that your resource file exports. They follow the format export PATH=$HOME/bin:/usr/local/bin:$PATH.

      3. Insert the path provided by AVM (such as /Users/brianle/.avm/bin) before the ending $PATH. The line should look similar to this:

        export PATH=$HOME/bin:/usr/local/bin::/Users/milton/.avm/bin:$PATH
      4. Save the file.

      5. Reload your terminal, open a new session, or source your terminal profile file (for example, source .bash_profile).


    7. Run the following command to verify that the CLI is installed:

      armory

      The command returns basic information about the CLI, including available commands.

    For the AVM or the CLI, you can use the -h flag for more information about specific commands.

    Armory provides the CD-as-a-Service CLI as a Docker image.

    docker pull armory/armory-cli

    Download the latest armory-cli Windows executable from the repo Releases page. Install on the machine that has access to your Kubernetes cluster.

  2. Create machine to machine credentials to use in your CI system job.

    Show me how
    1. Access the CD-as-a-Service Console.
    2. Go to the Configuration tab.
    3. If you have more than one tenant, make sure you select the desired tenant in the User context menu.
    4. In the left navigation menu, select Access Management > Client Credentials.
    5. In the upper right corner, select New Credential.
    6. Create a credential for your RNA. Use a descriptive name for the credential that matches what it is being used for. For example, name the credentials the same as the account name you assigned the target deployment cluster if creating a credential for an Remote Network Agent (RNA).
    7. Select an RBAC role from the Select Roles list. You must assign an RBAC role in order for the credential to access CD-as-a-Service.
      • If the credential for is a Remote Network Agent, select Remote Network Agent.
      • If you plan to use the credential to deploy from a GitHub Action or similar tool, select Deployments Full Access.
    8. Note the values for both Client ID and Client Secret. You need these values when configuring the RNA or any other service that you want to grant access to. Make sure to store the secret somewhere safe. You are not shown the value again.
  3. Pass these credentials to the CLI when starting a deployment.

    Show me how
    armory deploy start -c <your-client-id> -s <your-client-secret> -f <your-deploy.yaml>

Last modified July 20, 2023: (57b22fa)