Deployments

Deployments are your way of telling Reliably how plans should be run and declaring required information.

Deployment types

There are three types of deployment, each one associated with a way of running experiments.

Deployment typeUsage
Reliably CloudReliably will run your plan in the Reliably Cloud
GitHubReliably will run your plan as a GitHub Action in a GitHub workflow
Reliably CLIYou will use the Reliably CLI to run your plan in your own environment, such as a CI/CD pipeline
KubernetesReliably will run your plan in your Kubernets cluster as a Kubernetes Job/CronJob

The How it Works page presents flowcharts for a more detailed view of the differences between running a plan with Reliably Cloud, GitHub, or the Reliably CLI.

Create a deployment

Reliably Cloud

Creating a Reliably Cloud deployment will allow you to delegate running your plans entirely to Reliably.

A screenshot of the Reliably App, displaying the form the create a new Reliably Cloud deployment.

Creating a Reliably Cloud deployment requires the following information:

  • A deployment name, which must be unique to your Reliably organization.
  • The deployment type must be set to ‘Reliably Cloud’.

GitHub

Creating a GitHub deployment will allow Reliably to create GitHub Workflows External link will open in a new tab on your behalf. These GitHub Workflows will then be used to install all the dependencies necessary to run the experiments on-demand, according to your plans.

A screenshot of the Reliably App, displaying the form the create a new GitHub deployment.

Creating a GitHub deployment requires the following information:

  • A deployment name, which must be unique to your Reliably organization.
  • The deployment type must be set to ‘GitHub’.
  • A GitHub repository, in the form of a full URL for the repository. Example: github.com/my-org/my-repo.
  • The name of the GitHub environment for this repository where your secrets are stored. Environements are available in the ‘Settings’ section of the repository, and only available to repository collaborators with the right permissions.
  • A GitHub Token External link will open in a new tab to access the repository.

Reliably CLI

Reliably CLI deployments are used to run plans with the Reliably CLI. Using the Reliably CLI allows you to run experiments from anywhere in your system.

A screenshot of the Reliably App, displaying the form the create a new Reliably CLI deployment.

Creating a Reliably CLI deployment requires the following information:

  • A deployment name, which must be unique to your Reliably organization.
  • The deployment type must be set to ‘Reliably CLI’.

Kubernetes

Kubernetes deployments are used to run plans from any Kubernetes cluster directly.

A screenshot of the Reliably App, displaying the form the create a new Reliably Kubernetes deployment.

Creating a Reliably Kubernetes deployment requires the following information:

  • A deployment name, which must be unique to your Reliably organization.
  • The deployment type must be set to ‘Reliably Kubernetes’.
  • The namespace where to create the Kubernetes resources.
  • The image exposing the Reliably CLI as an entrypoint and no command arguments when using the default manifest.
  • Either use a default Kubernetes Pod manifest to run the plan. Or, your own Kubernetes Pod manifest. The first container of the manifest must be using the image that will run the Reliably CLI.
  • The Kubernetes credentials to connect to the cluster.

A few notes:

  • You must create a Service Account in the target namespace. This service account will be attached to the Kubernetes Pod running the Plan
      ---
      kind: ServiceAccount
      apiVersion: v1
      metadata:
          namespace: default
          name: reliably-job
      labels:
          app.kubernetes.io/name: reliably-job
      automountServiceAccountToken: false
  • Make sure to bind the roles matching the expected operations carried by the Experiment.
  • Reliably will create either Kubernetes Job or a Kubernetes Cron Job depending on if the plan uses a CRON schedule or not
  • The Kubernetes Job/CronJob will then create the appropriate Kubernetes Pod to run the Plan
  • The following labels will be set on the Kubernetes Job and Pod:
    • reliably.com/plan set to the Reliably Plan identifier
    • reliably.com/org set to the Reliably Organization
    • app.kubernetes.io/managed-by set to reliably
    • app.kubernetes.io/component set to experiment
    • app.kubernetes.io/name set to plan-<PLAN_ID>
  • For AWS EKS clusters:
    • Reliably supports authenticating with the aws-iam-authenticator.
    • Your credentials configuration must include the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY properties set in the users.user.exec.env section