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(provider/cloudrun): Added cloudrun functionality to deck #9931

Merged
merged 10 commits into from
Mar 10, 2023

Conversation

siddhu-opsmx
Copy link
Collaborator

This is part of spinnaker/governance#302

Added cloudrun provider functionality in deck.

@siddhu-opsmx
Copy link
Collaborator Author

@mattgogerly, @caseyhebebrand could you please review the PR.

Copy link
Member

@mattgogerly mattgogerly left a comment

Choose a reason for hiding this comment

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

I've left some comments, but mainly I'm confused why so much of this is written with Angular. We've been trying to move away from Angular for a long time, so this should be using React.

module(CLOUDRUN_MODULE, requires).config(() => {
CloudProviderRegistry.registerProvider('cloudrun', {
name: 'cloudrun',
//adHocInfrastructureWritesEnabled: SETTINGS.cloudrunAdHocInfraWritesEnabled,
Copy link
Member

Choose a reason for hiding this comment

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

Is this commented for a reason?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Removed redundant code

<div class="col-md-offset-{{ $ctrl.columnOffset || 0 }} col-md-{{ $ctrl.columns || 12 }}">
<div class="well">
<p>
<span ng-if="$ctrl.showCreateMessage">Spinnaker cannot create a load balancer for Cloudrun.</span>
Copy link
Member

Choose a reason for hiding this comment

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

s/Cloudrun/Cloud Run

applies throughout

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Done

Comment on lines 6 to 12
A Spinnaker load balancer maps to an Cloudrun service, which along with a Revision are created from Create
Server Group page using a yaml file.
</p>

<p>
If a service does not exist when a version is deployed, it will be created. It will then be editable as a load
balancer within Spinnaker.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
A Spinnaker load balancer maps to an Cloudrun service, which along with a Revision are created from Create
Server Group page using a yaml file.
</p>
<p>
If a service does not exist when a version is deployed, it will be created. It will then be editable as a load
balancer within Spinnaker.
A Spinnaker load balancer maps to an Cloud Run Service, which will be created automatically alongside a Revision. Once created, the Service can be edited as a Load Balancer.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Done

@@ -0,0 +1,13 @@
import { module } from 'angular';

const cloudrunLoadBalancerMessageComponent: ng.IComponentOptions = {
Copy link
Member

Choose a reason for hiding this comment

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

s/cloudrun/cloudRun

applies throughout

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Done

public state = { loading: true };
public instance: ICloudrunInstance;
public instanceIdNotFound: string;
public upToolTip = "An Cloudrun instance is 'Up' if a load balancer is directing traffic to its server group.";
Copy link
Member

Choose a reason for hiding this comment

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

s/An/A

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Done

public instanceIdNotFound: string;
public upToolTip = "An Cloudrun instance is 'Up' if a load balancer is directing traffic to its server group.";
public outOfServiceToolTip = `
An Cloudrun instance is 'Out Of Service' if no load balancers are directing traffic to its server group.`;
Copy link
Member

Choose a reason for hiding this comment

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

s/An/A

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Done

@siddhu-opsmx
Copy link
Collaborator Author

@sanopsmx , @j-sandy Could you please review this code.

Copy link
Contributor

@sanopsmx sanopsmx left a comment

Choose a reason for hiding this comment

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

lgtm

@mattgogerly
Copy link
Member

As mentioned above, the issue with this PR is that it's using Angular. We're trying to move away from Angular to React, so we're reluctant to merge new code using it.

@dbyron-sf @link108 any thoughts?

@link108
Copy link
Member

link108 commented Mar 7, 2023

+1 on moving away from Angular to React

@siddhu-opsmx
Copy link
Collaborator Author

In Cloud Run we have used Angular as well as React to developed secondary component because we need to adopt same functionality as we have in Kubernetes and Appengine , So we reused most of code written in those module to reduce testing effort and to gain surety about the code quality.
cc: @mattgogerly @link108

@sanopsmx
Copy link
Contributor

sanopsmx commented Mar 8, 2023

As mentioned above, the issue with this PR is that it's using Angular. We're trying to move away from Angular to React, so we're reluctant to merge new code using it.

@dbyron-sf @link108 any thoughts?

@mattgogerly

This cloudrun feature was developed on similar lines to k8s and appengine. Now it will too difficult for us to move the complete code to React. Anyways @siddhu-opsmx is evaluating this.

Now the effort for testing and regression tests also need to be taken care of, which needs time. There are customers waiting for this feature in 1.30.x release. If we can merge these PR's for now. Extensive testing was also done. Please consider only this case. Thanks in advance.

From now on , if we develop any new functionality we will develop only in React.

The back end functionality is implemented and merged into OSS. These are the PR's.

spinnaker/clouddriver#5751
spinnaker/orca#4311

One more set of PR's also needs to be raised. Orca, Clouddriver PR's are raised. Deck PR needs to be raised.
spinnaker/orca#4396
spinnaker/clouddriver#5880

@link108
Copy link
Member

link108 commented Mar 9, 2023

I'm OK to let this in - for future PRs to deck, please use react instead of angular.
I've created #9953 to make it more clear

@j-sandy j-sandy added the ready to merge Reviewed and ready for merge label Mar 10, 2023
@mergify mergify bot added the auto merged Merged automatically by a bot label Mar 10, 2023
@mergify mergify bot merged commit 3611e95 into spinnaker:master Mar 10, 2023
siddhu-opsmx added a commit to OpsMx/deck-oes-1 that referenced this pull request Apr 12, 2023
…ker#9931)

* feat(provider/cloudrun): Added cloudrun functionality to deck

* feat(provider/cloudrun): Incorporated Suggested Changes

* feat(provider/cloudRun): Fixed build issue

---------

Co-authored-by: rsinghsidhu <[email protected]>
yugaa22 pushed a commit to OpsMx/deck-oes that referenced this pull request Jun 26, 2023
…ker#9931)

* feat(provider/cloudrun): Added cloudrun functionality to deck

* feat(provider/cloudrun): Incorporated Suggested Changes

* feat(provider/cloudRun): Fixed build issue

---------

Co-authored-by: rsinghsidhu <[email protected]>
ryanjohnsontv added a commit to homedepot/deck that referenced this pull request Sep 12, 2024
* fix(core): Do not set static document base URL (spinnaker#9890) (spinnaker#9892)

The previous change to enable optional path-based routing (spinnaker#9802) added a `<base>` tag, which regressed serving hash-based routing at non-root public paths.

This change returns to AngularJS's default behavior when using hash-based routing.  Note that path-based routing will continue to only function when served from a domain root.

Resolves spinnaker/spinnaker#6723

(cherry picked from commit 5ac7516)

Co-authored-by: jcavanagh <[email protected]>

* fix(aws): fix instance type selector by allowing instance types that can't be validated. (spinnaker#9893) (spinnaker#9895)

* fix(aws): fix instance type selector by allowing instance types that can't be validated.

spinnaker/spinnaker#6734

* fix(aws): adding test for instance type selector fix

spinnaker/spinnaker#6734
(cherry picked from commit 563b6f6)

Co-authored-by: Prathibha Datta Kumar <[email protected]>

* fix(links): update link to spinnaker release changelog (spinnaker#9897) (spinnaker#9900)

* fix(links): update link to spinnaker release changelog

* prettier

(cherry picked from commit 1591513)

Co-authored-by: Jared Stehler <[email protected]>

* fix(aws): Fixing bugs related to clone CX when instance types are incompatible with image/region (spinnaker#9901) (spinnaker#9907)

* fix(aws): Fixing bugs related to clone UX when instance types are incompatible with image/region

Displaying warnings when incompatible instance types are removed

spinnaker/spinnaker#6734

* fix(aws): PR feedback

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit d7290c4)

Co-authored-by: Prathibha Datta Kumar <[email protected]>

* chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#9916) (spinnaker#9927)

Co-authored-by: root <root@2dd4f76bffcc>
(cherry picked from commit 64d03bc)

Co-authored-by: spinnakerbot <[email protected]>

* feat(pipeline): added feature flag for pipeline when mj stage child (spinnaker#9914) (spinnaker#9921)

* feat(pipeline): added feature flag for pipeline when mj stage child

* fix(pipeline): added verification for sub pipe data

* added guard verification for undefined data

Co-authored-by: Fernando Freire <[email protected]>
(cherry picked from commit 4b6fd53)

Co-authored-by: Oscar Michel Herrera <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* fix(timeout): Added feature flag for rollback timeout ui input. (backport spinnaker#9937) (spinnaker#9941)

* fix(timeout): Added feature flag for rollback timeout ui input. (spinnaker#9937)

* fix(timeout): Added feature flag for rollback timeout ui input.

* fix(timeout): Added feature flag for rollback timeout ui input.

(cherry picked from commit e239be3)

# Conflicts:
#	packages/amazon/src/pipeline/stages/rollbackCluster/rollbackClusterStage.html

* fix(timeout): Added feature flag for rollback timeout ui input. (spinnaker#9944)

---------

Co-authored-by: DanielaS12 <[email protected]>

* [CN-1890] disable deploy options

* fix(google): Resolved typo errors in GCE Autoscaler feature (spinnaker#9947)

* Publish packages to NPM (spinnaker#9949)

* chore(publish): publish packages (2250a47)

 - [email protected]
 - @spinnaker/[email protected]

* feat(peerdep-sync): Synchronize peerdependencies

* chore(publish): publish peerdeps (2250a47)

 - @spinnaker/[email protected]

---------

Co-authored-by: spinnakerbot <[email protected]>

* [CN-1890] remove extra true

* fix(6755): Resolved issue regarding warning reporting when cloning a server group in AWS (spinnaker#9948)

* Revert "feat(Blue/Green): Add warning label and enhance disable/enable manifest stage with Deployment kind." (spinnaker#9951)

* chore(dev): specifying React code for Deck PRs (spinnaker#9953)

Co-authored-by: Cameron Motevasselani <[email protected]>

* feat(provider/cloudrun): Added cloudrun functionality to deck (spinnaker#9931)

* feat(provider/cloudrun): Added cloudrun functionality to deck

* feat(provider/cloudrun): Incorporated Suggested Changes

* feat(provider/cloudRun): Fixed build issue

---------

Co-authored-by: rsinghsidhu <[email protected]>

* chore(feature-flag): mj parent pipeline enabled by default (spinnaker#9954)

Co-authored-by: ovidiupopa07 <[email protected]>

* Publish packages to NPM (spinnaker#9955)

* chore(publish): publish packages (e1b8d70)

 - [email protected]

* feat(peerdep-sync): Synchronize peerdependencies

* chore(publish): publish peerdeps (e1b8d70)

 - @spinnaker/[email protected]

---------

Co-authored-by: spinnakerbot <[email protected]>

* feat(deck): make StageFailureMessage component overridable (backport spinnaker#9994) (spinnaker#10007)

* feat(deck): make StageFailureMessage component overridable (spinnaker#9994)

(cherry picked from commit 39f70cc)

# Conflicts:
#	version.json

* chore(build): fix backport merge conflict

---------

Co-authored-by: Matt <[email protected]>

* Revert "fix(core): conditionally hide expression evaluation warning messages (spinnaker#9771)" (spinnaker#10021) (spinnaker#10024)

This reverts commit 7e3dd50.

(cherry picked from commit 62033d0)

Co-authored-by: Matt Gogerly <[email protected]>

* fix: Scaling bounds should parse float not int (spinnaker#10026) (spinnaker#10031)

* fix: Scaling bounds should parse float not int

Currently the API can do this, the model supports this, but the parseInt removes decimals from the UI

* fix: Decimal support for upper/lower bound ASG tests

(cherry picked from commit b763cae)

Co-authored-by: Jason <[email protected]>

* feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (spinnaker#10036) (spinnaker#10046)

- These input fields will not be pre-populated with versions of the target cluster available in the environment.

- They will become part of the bake result.

- Added API_VERSIONS_ENABLED env variable flag

(cherry picked from commit d968183)

Co-authored-by: Krystian <[email protected]>

* fix: Updating Lambda functions available Runtimes (spinnaker#10055) (spinnaker#10056)

(cherry picked from commit 669d1ed)

Co-authored-by: Christos Arvanitis <[email protected]>

* Update 1.29.7 (#3)

* fix: UI crashes when running pipeline(s) with many stages. (backport spinnaker#9960) (spinnaker#9974)

Co-authored-by: armory-abedonik <[email protected]>

* Revert "fix(core): conditionally hide expression evaluation warning messages (spinnaker#9771)" (spinnaker#10021) (spinnaker#10025)

This reverts commit 7e3dd50.

(cherry picked from commit 62033d0)

Co-authored-by: Matt Gogerly <[email protected]>

* fix: Scaling bounds should parse float not int (spinnaker#10026) (spinnaker#10035)

* fix: Scaling bounds should parse float not int

Currently the API can do this, the model supports this, but the parseInt removes decimals from the UI

* fix: Decimal support for upper/lower bound ASG tests

(cherry picked from commit b763cae)

Co-authored-by: Jason <[email protected]>

* Fix CreateSecurityGroups ternary

* Remove failing test for disabled action

* Temporally adding GH workflows to build Docker from this branch

* Temporally disabling other GHA workflows

* Adding 'thd' prefix to IMAGE_NAME env var

* Changing image name from 'deck' to 'thd-deck'

* Apply master GHA changes

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: armory-abedonik <[email protected]>
Co-authored-by: Matt Gogerly <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Rodrigo Tovar <[email protected]>

* Update GHA branch name

* Disable cloudrun "Edit Load Balancer"

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: jcavanagh <[email protected]>
Co-authored-by: Prathibha Datta Kumar <[email protected]>
Co-authored-by: Jared Stehler <[email protected]>
Co-authored-by: spinnakerbot <[email protected]>
Co-authored-by: Oscar Michel Herrera <[email protected]>
Co-authored-by: DanielaS12 <[email protected]>
Co-authored-by: pjberry16 <[email protected]>
Co-authored-by: SusmithaGundu <[email protected]>
Co-authored-by: Spinnaker Bot <[email protected]>
Co-authored-by: spinnakerbot <[email protected]>
Co-authored-by: pjberry16 <[email protected]>
Co-authored-by: Rajinderpal Singh Siddhu <[email protected]>
Co-authored-by: Cameron Motevasselani <[email protected]>
Co-authored-by: Cameron Motevasselani <[email protected]>
Co-authored-by: rsinghsidhu <[email protected]>
Co-authored-by: Krzysztof Kotula <[email protected]>
Co-authored-by: ovidiupopa07 <[email protected]>
Co-authored-by: Matt <[email protected]>
Co-authored-by: Jason <[email protected]>
Co-authored-by: Krystian <[email protected]>
Co-authored-by: Christos Arvanitis <[email protected]>
Co-authored-by: armory-abedonik <[email protected]>
Co-authored-by: Rodrigo Tovar <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto merged Merged automatically by a bot ready to merge Reviewed and ready for merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants