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

Support for BlueGreen rollout preview endpoint #199

Merged

Conversation

itsLucario
Copy link
Collaborator

@itsLucario itsLucario commented Mar 18, 2022

Currently when Admiral generates endpoint for Rollouts with bluegreen it always uses active/stable service as destination. This PR will adds a feature to generate an additional mesh endpoint that would point to the preview service of the blugreen stack.

@aattuluri aattuluri added the WIP Work In Progress label Mar 18, 2022
@aattuluri aattuluri removed the WIP Work In Progress label Mar 29, 2022
admiral/cmd/admiral/cmd/root.go Outdated Show resolved Hide resolved
admiral/pkg/clusters/serviceentry.go Show resolved Hide resolved
admiral/pkg/clusters/serviceentry.go Outdated Show resolved Hide resolved
@itsLucario itsLucario force-pushed the bluegreen-preview-endpoint-rollout branch from c36fb50 to 50c0ce5 Compare March 31, 2022 10:08
nbn01 added 2 commits March 31, 2022 20:02
@itsLucario itsLucario force-pushed the bluegreen-preview-endpoint-rollout branch from 5a2e8b7 to c97ed13 Compare April 1, 2022 07:05
@codecov-commenter
Copy link

codecov-commenter commented Apr 1, 2022

Codecov Report

Merging #199 (47d290d) into master (4c9ef81) will increase coverage by 0.60%.
The diff coverage is 93.18%.

@@            Coverage Diff             @@
##           master     #199      +/-   ##
==========================================
+ Coverage   74.42%   75.02%   +0.60%     
==========================================
  Files          26       26              
  Lines        2530     2567      +37     
==========================================
+ Hits         1883     1926      +43     
+ Misses        516      512       -4     
+ Partials      131      129       -2     
Impacted Files Coverage Δ
admiral/pkg/controller/common/types.go 88.76% <ø> (ø)
admiral/pkg/clusters/serviceentry.go 81.06% <91.89%> (+1.64%) ⬆️
admiral/pkg/clusters/handler.go 60.55% <100.00%> (+1.50%) ⬆️
admiral/pkg/controller/common/common.go 98.29% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4c9ef81...47d290d. Read the comment docs.

Copy link
Contributor

@aattuluri aattuluri left a comment

Choose a reason for hiding this comment

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

lgtm, added a question

admiral/pkg/clusters/serviceentry.go Show resolved Hide resolved
Copy link
Contributor

@aattuluri aattuluri left a comment

Choose a reason for hiding this comment

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

lgtm

@aattuluri
Copy link
Contributor

@itsLucario There are lint errors, fix them before we can merge.

@itsLucario itsLucario force-pushed the bluegreen-preview-endpoint-rollout branch 2 times, most recently from bac0a2b to c97ed13 Compare April 5, 2022 12:17
@itsLucario
Copy link
Collaborator Author

itsLucario commented Apr 6, 2022

@itsLucario There are lint errors, fix them before we can merge.

golangci-lint was using go1.18 that caused the panic. I added a fix to the workflow to use go1.17.7.

@aattuluri aattuluri merged commit 845e7da into istio-ecosystem:master Apr 6, 2022
psikka1 pushed a commit to psikka1/admiral that referenced this pull request Jun 14, 2022
…m#199)

* Changes to support preview endpoint for bluegreen rollout

Signed-off-by: nbn01 <[email protected]>

* Updated integration test for preview endpoint

Signed-off-by: nbn01 <[email protected]>

* Minor check fixes

Signed-off-by: nbn01 <[email protected]>

* Reverted integration test changes

Signed-off-by: nbn01 <[email protected]>

* Update unit tests

Signed-off-by: nbn01 <[email protected]>

* Add integration test for preview endpoint of bluegreen rollout

Signed-off-by: nbn01 <[email protected]>

* Update makefile

Signed-off-by: nbn01 <[email protected]>

* Modified permissions

Signed-off-by: nbn01 <[email protected]>

* Reverting argo_rollouts default to false

Signed-off-by: nbn01 <[email protected]>

* Updated unit tests to check when preview service not defined

Signed-off-by: nbn01 <[email protected]>

* Improved integration test for bluegreen rollout

Signed-off-by: nbn01 <[email protected]>

* Continue with normal flow if preview condition fails

Signed-off-by: nbn01 <[email protected]>

* Uncomment clean up

Signed-off-by: nbn01 <[email protected]>

* make "preview" standard prefix name for bluegreen

Signed-off-by: nbn01 <[email protected]>

* abstract update preview endpoint to method

Signed-off-by: nbn01 <[email protected]>

* Add unit test

Signed-off-by: nbn01 <[email protected]>

* fix golintci lint to use go1.17.7

Signed-off-by: nbn01 <[email protected]>

Co-authored-by: nbn01 <[email protected]>
psikka1 pushed a commit to psikka1/admiral that referenced this pull request Jun 15, 2022
…m#199)

* Changes to support preview endpoint for bluegreen rollout

Signed-off-by: nbn01 <[email protected]>

* Updated integration test for preview endpoint

Signed-off-by: nbn01 <[email protected]>

* Minor check fixes

Signed-off-by: nbn01 <[email protected]>

* Reverted integration test changes

Signed-off-by: nbn01 <[email protected]>

* Update unit tests

Signed-off-by: nbn01 <[email protected]>

* Add integration test for preview endpoint of bluegreen rollout

Signed-off-by: nbn01 <[email protected]>

* Update makefile

Signed-off-by: nbn01 <[email protected]>

* Modified permissions

Signed-off-by: nbn01 <[email protected]>

* Reverting argo_rollouts default to false

Signed-off-by: nbn01 <[email protected]>

* Updated unit tests to check when preview service not defined

Signed-off-by: nbn01 <[email protected]>

* Improved integration test for bluegreen rollout

Signed-off-by: nbn01 <[email protected]>

* Continue with normal flow if preview condition fails

Signed-off-by: nbn01 <[email protected]>

* Uncomment clean up

Signed-off-by: nbn01 <[email protected]>

* make "preview" standard prefix name for bluegreen

Signed-off-by: nbn01 <[email protected]>

* abstract update preview endpoint to method

Signed-off-by: nbn01 <[email protected]>

* Add unit test

Signed-off-by: nbn01 <[email protected]>

* fix golintci lint to use go1.17.7

Signed-off-by: nbn01 <[email protected]>

Co-authored-by: nbn01 <[email protected]>
Signed-off-by: psikka1 <[email protected]>
asushanthk pushed a commit that referenced this pull request Jul 21, 2022
* Changes to support preview endpoint for bluegreen rollout

Signed-off-by: nbn01 <[email protected]>

* Updated integration test for preview endpoint

Signed-off-by: nbn01 <[email protected]>

* Minor check fixes

Signed-off-by: nbn01 <[email protected]>

* Reverted integration test changes

Signed-off-by: nbn01 <[email protected]>

* Update unit tests

Signed-off-by: nbn01 <[email protected]>

* Add integration test for preview endpoint of bluegreen rollout

Signed-off-by: nbn01 <[email protected]>

* Update makefile

Signed-off-by: nbn01 <[email protected]>

* Modified permissions

Signed-off-by: nbn01 <[email protected]>

* Reverting argo_rollouts default to false

Signed-off-by: nbn01 <[email protected]>

* Updated unit tests to check when preview service not defined

Signed-off-by: nbn01 <[email protected]>

* Improved integration test for bluegreen rollout

Signed-off-by: nbn01 <[email protected]>

* Continue with normal flow if preview condition fails

Signed-off-by: nbn01 <[email protected]>

* Uncomment clean up

Signed-off-by: nbn01 <[email protected]>

* make "preview" standard prefix name for bluegreen

Signed-off-by: nbn01 <[email protected]>

* abstract update preview endpoint to method

Signed-off-by: nbn01 <[email protected]>

* Add unit test

Signed-off-by: nbn01 <[email protected]>

* fix golintci lint to use go1.17.7

Signed-off-by: nbn01 <[email protected]>

Co-authored-by: nbn01 <[email protected]>
Signed-off-by: sa <[email protected]>
kpharasi pushed a commit that referenced this pull request Dec 19, 2024
* Temporary jenkins file to deploy only in qal

* Only Build in new jenkins - testing

* boilerplate code for traffic config crd

* envoy filter creation code

* WIP - refactored to separate Traffic Controller and Remote controllers

* adding code for decoupled logic

* removed commented code, added functionality for remote worker manager

* changing workerMgrMap from normal map to sync.Map to handle concurrent access

* test checkin

* Bootstrap changes

* add dependency, rollout & service controllers

* add dependency, rollout & service controllers

* service entry not needed for admiral-unification

* implemented decideEnvoyFilter logic

* passing stopCh to processItem to propogate os.exit signal

* added new function to get allkeys of a cache map and improved envoy filter creation

* Branch name correction in jenkins

* Branch name correction in jenkins (#183)

* change to us west2

* Ratelimiting filter logic (#184)

* Branch name correction in jenkins

* change to us west2

* Change default traffic config namespace

* Ratelimiting filter logic (#185)

* Branch name correction in jenkins

* change to us west2

* Change default traffic config namespace

* do not proceed with vs geberation in case of rollout

* Ratelimiting filter logic (#186)

* Branch name correction in jenkins

* change to us west2

* Change default traffic config namespace

* do not proceed with vs geberation in case of rollout

* adding debug statements to identify GetKey() cache panic

* reverting back the envoyfilter namespace to admiral-sync

* Handle remote cluster unavailability (#191)

* Ratelimiting filter logic (#192)

* Handle remote cluster unavailability

* remove unwanted space before api version

* adding new fields to traffic config crd

* completed envoy filter operations

* updated error handling for processItem function

* fixing crd not registered issue

* added workload labels i.e. deployment/rollout labels to envoyfilter

* updating traffic config CRD to add timeout for edgeservice spec and handling nil cache panic

* Ignore updates in passive mode (#197)

* Merge heliograph changes (#198)

* Ignore updates in passive mode

* merge heliograph changes(temporary)

* Ratelimiting filter logic (#199)

* Ignore updates in passive mode

* merge heliograph changes(temporary)

* Update heliograph from admiral-deployment, not from jenkins

* Temporary hack to override heliograph tag (#200)

* Ignore updates in passive mode

* merge heliograph changes(temporary)

* Update heliograph from admiral-deployment, not from jenkins

* temporary hack to override heliograph tag

* undo heliograph changes in jenkins

* undo heliograph changes in jenkins (#201)

* undo heliograph changes in jenkins (#201)

* change envoy filter namespace & move vs creation to a different file

* change envoy filter namespace & move vs creation to a different file (#203)

* undo heliograph changes in jenkins

* change envoy filter namespace & move vs creation to a different file

* fixing context

* vs deletion

* logging improvement, deletion (#205)

* undo heliograph changes in jenkins

* change envoy filter namespace & move vs creation to a different file

* vs deletion

* asseralias to be in lowercase

* debugging labels issue (#207)

* no need of retries in vs

* Deploy label debugging (#209)

* debugging labels issue

* handling map update

* adding code changes to correct envoy filters and logging struct (#210)

* Envofilter formatting (#211)

* adding code changes to correct envoy filters and logging struct

* updating service now image

* Envofilter formatting (#212)

* adding code changes to correct envoy filters and logging struct

* updating service now image

* envoyfilter namespace changed from admiral-sync to istio-system

* changing envoy filter namespace from admiral-sync to istio-system (#213)

* Ns change (#214)

* changing envoy filter namespace from admiral-sync to istio-system

* fixing envoyfilter issue for name and struct

* vs env delete fix

* handling traffic config isDisbaled annotation, also handling update and delete (#217)

* cname identity map pupulation fix

* position gervice entry selector only for admiral

* altering traffic config persona code flow in service entry

* altering traffic config persona code flow in service entry (#221)

* making strings as const in common for resue

* Unification test (#222)

* altering traffic config persona code flow in service entry

* making strings as const in common for resue

* adding adaptive concurrency filter

* altering traffic config persona code flow in service entry

* remove cluster from map upon deletion

* debug traces

* review comments

* null check for virtual service

* worker manager pointer corrected

* add traffic config object for all clusters the asset is in

* envoy filter env crud fix

* admiral-unification in qal east

* handling empty workloadenvselector lable case (#228)

* Delete registry.go_backup

Not needed

* Delete types.go_backup

* Delete virtualservice.go_backup

* Delete envoyfilter-operations.go_backup

* merge conflict for pull req 229

Co-authored-by: Rajendra Gosavi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants