-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1520579 - RFC for identifier length
- Loading branch information
Showing
1 changed file
with
43 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# RFC <number> - Increase identifier length from 20 to 44 | ||
* Comments: [#<number>](https://api.github.com/repos/taskcluster/taskcluster-rfcs/pull/<number>) | ||
* Proposed by: @djmitche / @mitchhentges | ||
|
||
# Summary | ||
|
||
For identifiers that typically contain structure (vs. those containing only | ||
slugid's), increase the maximum length from 22 to 40 characters, while ensuring | ||
that we do not overflow AMQP routing key lengths. | ||
|
||
## Motivation | ||
|
||
We have an established pattern of encoding meaning into some identifiers, such as workerTypes (e.g., `aws-provisioner-v1/gecko-1-b-*`), but these are limited to 22 characters. | ||
That is too short to encode much meaning. | ||
We cannot allow arbitrary lengths, as these identifiers are included in AMQP routes which have a hard limit of 255 characters. | ||
We can, however, allow more than 22 characters. | ||
|
||
# Details | ||
|
||
We will define two types of identifiers: | ||
|
||
* "identifiers" -- up to 40 characters, generally containing human-readable identifiers | ||
* `provisionerId`, `workerType`, `workerGroup`, `workerId` | ||
* `schedulerId` | ||
* `organization`, `repository` (in tc-github) | ||
|
||
* "slugids" -- up to 22 characters, always a slugid | ||
* `taskGroupId` | ||
* `taskId` | ||
|
||
This change requires changes to schemas and API declarations in services in the monorepo, as well as to `aws-provisioner` and possibly `ec2-manager`, workers, and client libraries. | ||
Much of this work has [already been done](https://github.com/taskcluster/taskcluster/pull/110) by @OjaswinM. | ||
|
||
We already have checks on AMQP routing key lengths, and the increased length does not cause any failures in that code. | ||
|
||
# Open Questions | ||
|
||
TBD | ||
|
||
# Implementation | ||
|
||
* https://github.com/taskcluster/taskcluster/pull/110 | ||
* TBD |