Skip to content
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

feat(ecs): Implement load balancer views #8186

Merged
merged 3 commits into from
Apr 24, 2020
Merged

Conversation

allisaurus
Copy link
Contributor

@allisaurus allisaurus commented Apr 16, 2020

Implements spinnaker/spinnaker#4797

Depends on: spinnaker/clouddriver#4526

Adds basic ECS load balancer and target group views to deck.

screenshots

  • ECS load balancers on /loadBalaners page

ecs_lbs

  • ECS load balancers detail pane

ecs_lb_details

  • ECS target group detail pane

ecs_tg_details

  • ECS load balanced server group display (SG pane unchanged, notice center highlight)

ecs_lb_serverGroups_single_tg

  • ECS load balanced server group display for service with multiple target groups (SG pane unchanged, notice center highlight)

ecs_lb_serverGroups_multi_tgs

@spinnakerbot
Copy link
Contributor

The following commits need their title changed:

Please format your commit title into the form:

<type>(<scope>): <subject>, e.g. fix(kubernetes): address NPE in status check

This allows us to easily generate changelogs & determine semantic version numbers when cutting releases. You can read more about commit conventions here.

@allisaurus allisaurus force-pushed the ecs-lbs branch 2 times, most recently from 4c0500d to b486dd7 Compare April 22, 2020 02:28
vpcName?: string;
}

export interface IALBListener {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, what do we do for NetworkLoadBalancers/Listeners? Do we have an INLBListener?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice catch! right now we don't do anything differently, and I believe NLB listeners would contain a subset of the fields returned for ALBs (no rules, for example). Since ECS services could use either I'll rename this to be more general.

userInfoEndpoint: string;
}

export interface IForwardConfig {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-forwardconfig.html, it looks like there's another property called TargetGroupStickinessConfig. Is that something we should add (whether we have the logic or not)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking of only adding properties we need to reference in the code, vs. everything that might exist. Though if it's confusing we can be exhaustive and add them.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense. Should we also display these properties?

clientSecret?: string;
idpLogoutUrl?: string;
issuer: string;
scope: string;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_AuthenticateOidcActionConfig.html Scope is actually optional. Wouldn't this throw an exception if scope is not provided?

idpLogoutUrl?: string;
issuer: string;
scope: string;
sessionCookieName: string;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

type: IListenerActionType;
}

export interface IAuthenticateOidcActionConfig {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_AuthenticateOidcActionConfig.html - There are 2 optional properties that are not specified here: UseExistingClientSecret and OnUnauthenticatedRequest. Are these properties that we want to expose?

}

// see https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_Action.html
export interface IListenerAction {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


public render(): React.ReactElement<EcsLoadBalancerClusterContainer> {
const { loadBalancer, showInstances, showServerGroups } = this.props;
const alb = loadBalancer as IEcsLoadBalancer;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we assuming that all loadbalancers will be ALBs?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we shouldn't! will update

Copy link
Contributor

@piradeepk piradeepk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ship it! 💯

@clareliguori clareliguori added the ready to merge Reviewed and ready for merge label Apr 24, 2020
@mergify mergify bot merged commit 9dbf6bc into spinnaker:master Apr 24, 2020
yunzhangit pushed a commit to yunzhangit/deck that referenced this pull request Mar 28, 2021
* feat(ecs): Implement load balancer views

* accomodate NLB and optional fields

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready to merge Reviewed and ready for merge target-release/1.20
Projects
None yet
4 participants