EngineerBetter / concourse-up

Deprecated - used Control Tower instead
https://github.com/EngineerBetter/control-tower
Apache License 2.0
203 stars 28 forks source link

deployment name is too long. 12 character limit #103

Open hvandenb opened 5 years ago

hvandenb commented 5 years ago

Why is this a limitation? This is a deployment on GCP where I can't change the name of the project.

DanielJonesEB commented 5 years ago

The deployment name is used when creating the name of various components via Terraform, and the concatenation of those with the deployment name means we can't have deployment names greater than 12 characters. GCP has a significantly lower limit than AWS - although off the top of my head, I can't remember which component it is exactly that has the shortest name length limit. We can find out if you like, but it won't change the behaviour of the tool.

I hope that explains things.

hvandenb commented 5 years ago

No worries thanks for the explanation

On Thu, Mar 21, 2019 at 5:15 PM Daniel Jones notifications@github.com wrote:

The deployment name is used when creating the name of various components via Terraform, and the concatenation of those with the deployment name means we can't have deployment names greater than 12 characters. GCP has a significantly lower limit than AWS - although off the top of my head, I can't remember which component it is exactly that has the shortest name length limit. We can find out if you like, but it won't change the behaviour of the tool.

I hope that explains things.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/EngineerBetter/concourse-up/issues/103#issuecomment-475405301, or mute the thread https://github.com/notifications/unsubscribe-auth/AAYeeUaAizludnyYzIV2gK-XETXt9Jytks5vY_ZagaJpZM4cCXN4 .

--

Thanks,

Henri M.B. van den Bulk (c) 317-690-3830

crsimmons commented 5 years ago

To go into more detail the limitation comes from terraform's creation of a GCP service account for BOSH to use. According to the docs the service account name can be maximum 30 characters long to comply with RFC1035 (I haven't read that one).

In Concourse-up the service account name will be concourse-up-<your deployment name>-bosh so the maximum deployment name size is 30-18=12. We made Concourse-up error out early if the name exceeds this because the alternative is a gnarly terraform regex error partway through the apply.

We do have a spike in the backlog to further investigate these limits and how we could address them but there's unfortunately not much room for improvement.

hvandenb commented 5 years ago

The deployment name being used is the project-name on GCP. Would it help to shorten the concourse-up part (12)

On Thu, Mar 21, 2019 at 6:18 PM Colin Simmons notifications@github.com wrote:

To go into more detail the limitation comes from terraform's creation of a GCP service account for BOSH to use. According to the docs https://www.terraform.io/docs/providers/google/r/google_service_account.html#account_id the service account name can be maximum 30 characters long to comply with RFC1035 (I haven't read that one).

In Concourse-up the service account name will be concourse-up-<your deployment name>-bosh so the maximum deployment name size is 30-18=12. We made Concourse-up error out early if the name exceeds this because the alternative is a gnarly terraform regex error partway through the apply.

We do have a spike in the backlog to further investigate these limits and how we could address them but there's unfortunately not much room for improvement.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/EngineerBetter/concourse-up/issues/103#issuecomment-475424578, or mute the thread https://github.com/notifications/unsubscribe-auth/AAYeeY4Snvc4_3u3ouR8umO72Yp_ZVquks5vZAU7gaJpZM4cCXN4 .

DanielJonesEB commented 5 years ago

We have considered that in the past; the downside is that when Terraform renames entities it recreates some of them, meaning that folks could lose state (RDS is a culprit here, I seem to recall). This would require maintaining two code paths for old/new deployments.

Thanks for letting us know that this is causing problems for you - we're running a lean operation, so user feedback is vital in letting us know which features to prioritise.

crsimmons commented 5 years ago

The deployment name in this case should just be whatever you provide in concourse-up deploy --iaas gcp <deployment-name>. Are you able to use a shorter name when you deploy? This name is just used for naming the various components related to the Concourse within your project.