aws / aws/containers-roadmap

[ECS] [request]: Support version and label filters for parameter store

Open
#859 4 comments 31 reactions 0 assignees View on GitHub
ECS Proposed
Dominant language
Shell
Stars
5.4k
Forks
334
PR merge metrics
No merged PRs in 30d

Description

### Community Note

* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment

**Tell us about your request**

The Parameter Store API allows the user to specify a version or label simply by appending it to the parameter name:

```
# version
aws ssm get-parameters --names "/hello-world/config.json:2"

# label
aws ssm get-parameters --names "/hello-world/config.json:testlabel"
```

However, there is no (documented) way to specify a version or label of a Parameter Store value in our task definition.

In our task definition, we've tried appending a version in a similar way:

```json
"secrets": [
{
"name": "SERVICE_CONFIG_JSON",
"valueFrom": "/hello-world/config.json:2"
}
]
```

However, this results in the following error:

> The Systems Manager parameter name specified for secret SERVICE_CONFIG_JSON is invalid. The parameter name can be up to 2048 characters and include the following letters and symbols: a-zA-Z0-9_.-,

**Which service(s) is this request for?**

ECS

**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**

We wish to use the version or labeling feature provided by Parameter Store in our task definitions. Instead, we must use completely separate, but mostly duplicated parameters.

We are suggesting supporting the colon-delimited format of the Parameter Store API to specify the version and label of configs in the `valueFrom` parameter, or otherwise allow us to specify this value in our task definitions through a new `secrets` parameter, ie `selector`:

```json
"secrets": [
{
"name": "SERVICE_CONFIG_JSON",
"valueFrom": "/hello-world/config.json",
"selector": "label or version"
}
]
```

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the ECS task-definition secrets behavior and the Systems Manager Parameter Store syntax shown in the issue. Determine whether version and label selection belongs in valueFrom or a new selector field, then verify that the completed behavior retrieves the requested parameter version or label without requiring duplicate parameters.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws
Domain
cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.