-
Notifications
You must be signed in to change notification settings - Fork 256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: merge shuttle-ecs-common to main #1753
Conversation
* feat: runtime healthcheck, start runtime on 0.0.0.0 running on unspecified ip was necessary for the runner to be able to reach the runtime when they are running in separate containers * feat(proto): update runtime::get_client to work with * misc(proto): get client takes u16 port * feat: add health toggle to runtime * feat: set runtime to unhealthy if it doesn't start within 60s * feat: change runtime::get_client to take address * feat: kill runtime if it doesn't become healthy in time * feat: increase provisioning timeout duration
…1732) * feat(cargo-shuttle): beta flag * nit: client name * fix: delete beta endpoint
* fix: debug runtime panic * fix: try without service stop channel * fix: move tx take into conditional kill block * fix: revert other changes, use arc for kill tx * refactor: use cancellation token instead of oneshot * misc: revert timeout change * misc: remove extra clone, switch panic to print * fix: panic on error or cancellation
* common: updated deployment models * cargo-shuttle: update deploy cmd * common: add more information in a deployment response * cargo-shuttle: add project uri in deploy output * fix: Jocelyn's comments on fronted output * cargo-shuttle: when deploying use the beta field on the Shuttle type * cargo-shuttle: split beta/alpha deploy functions in client * cargo-shuttle: addressed left over of alpha deployments table change * cargo-shuttle: remove pub for beta flag on client * cargo-shuttle: remove leftover comment * address Jocelyn review comments
* feat(cargo-shuttle): make zip file on beta deploy * feat(cargo-shuttle, service): deployment package name discovery * fix: clippy
* common: add failed deployment state * cargo-shuttle: add stopping ecs state * cargo-shuttle: add the beta deployment status cmd handler
* feat(common): add new line for the logger * feat(cargo): add support for logs of new platform * fix(cargo): remove useless error handling * fix(cargo): remove id from LogItemBeta
* cargo-shuttle: make EcsResponse uri optional * cargo-shuttle: add pending ecs state * cargo-shuttle: add deployment list for beta platform
Co-authored-by: jonaro00 <54029719+jonaro00@users.noreply.github.com>
44e43bc
to
85a8d54
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The runtime compatibility changes LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doing if beta
checks everywhere seems to be a recipe for disaster. We should try to reduce this by making new structs for the beta code and diverting the code flow to them as early as possible.
@@ -43,7 +43,7 @@ where | |||
.tracing() | |||
.with_exporter( | |||
opentelemetry_otlp::new_exporter() | |||
.tonic() | |||
.http() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are we making this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Making it compatible with an ALB on beta platform IIRC
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, I had some trouble making gRPC work in front of the load balancer. I can try again though, I'll let you know how it goes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep can confirm, it's a PITA. We have an ALB in front of OTEL, which requires an HTTPS listener when targeting a gRPC target group. The issue is that to have an HTTPS listener, you need to have a valid ACM certificate attached to it, and to get a valid ACM certificate, you need to be able to verify it, which isn't possible for internal facing address.
I think we might be able to use ACM PCA (Private Certificate Authority), but that's not my priority right now.
api_url: String, | ||
api_key: Option<ApiKey>, | ||
/// alter behaviour to interact with the new platform | ||
beta: bool, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would recommend rather creating a new client for beta rather than passing this flag around everywhere
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The number of beta changes thus far is small enough for me to justify this. We might extract it later, but there will still be many places outside of this client that will do the same thing (modify behaviour based on passed flag).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, that more points to why it would have been a good idea to do it now instead of later when it will be harder.
No description provided.