Facing 400 Error while Saving Canary Configuration


Issue

After enabling the Kayenta service in Armory, users face an issue where if adding a Canary config, it cannot be saved, as the following error message appears:

The was an error saving your config: 400


As seen in the following screenshot:

Cause

Currently, Armory Spinnaker supports Canary service integration including AWS, Google, New Relic, Prometheus, Datadog, and SignalFX

Before using the Canary analysis service in Armory, at least one metrics service must be configured, along with at least one storage service. The most common setup is to have one metrics service configured and one storage service (e.g. S3, GCS, etc) configured. 

Solution

Please check the Armory/Spinnaker configuration and make sure to have the CONFIGURATION_STORE and OBJECT_STORE parameters in the canary configuration section.

These two parameters are needed to point to the location to save any canary objects and configuration. 

For example, if using Google as the Canary/Kayenta service, please refer to the below configuration:

kayenta:
  aws:
    accounts: []
    enabled: false
  datadog:
    accounts: []
    enabled: false
  gcs:
    enabled: true
  google:
    accounts:
    - bucket: example-canary-bucket
      jsonPath: encrypted:vault!e:secret!p:example-project/spinnakerconfigfiles!k:spinnaker-account.json
      name: example-canary-account
      project: example-project
      rootFolder: kayenta
      supportedTypes:
      - METRICS_STORE
      - CONFIGURATION_STORE
      - OBJECT_STORE
    enabled: true

Reference: Please refer to Armory doc below to input all necessary Canary configuration parameters: 
https://docs.armory.io/docs/installation/operator-reference/canary/

As Tested On Version

All versions