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

Remove Istio trust domain #9713

Merged
merged 32 commits into from
Jul 11, 2024
Merged

Remove Istio trust domain #9713

merged 32 commits into from
Jul 11, 2024

Conversation

npolshakova
Copy link
Contributor

@npolshakova npolshakova commented Jul 1, 2024

Description

  • Removes trust domain arg for Edge and K8s gateway.
  • Removes gloo edge gateway from e2e tests when k8s controller is enabled

Fill out any of the following sections that are relevant and remove the others

API changes

None

Code changes

  • Removes --trust-domain arg from Istio container

CI changes

Adds new Istio integration test e2e scenarios:

  • Gloo Edge Gateway w/t Istio installed with revisions
  • Gloo k8s Gateway w/t Istio installed with revisions

These tests were added to cluster-two since that cluster has a total runtime of 16m: https://github.com/solo-io/gloo/actions/runs/9787855207/job/27025026149

Docs changes

None

Context

We don't currently have a way to change the trust domain in the Edge Gateway or Gloo k8s Gateway.

This is not an issue because the istio-proxy is not running Envoy (the env DISABLE_ENVOY=true is set), only the agent for the CSR request. Leaving the --trust-domain flag can cause confusion since it's not configurable and does not need to be set for the agent to do the CSR.

See slack discussion: https://solo-io-corp.slack.com/archives/C07077NS0NP/p1719594402696959

Interesting decisions

None

Testing steps

Manually verification:

  • New e2e tests also confirm revisions work as expected.
  • Manually confirmed removing --trust-domain does not break Istio integration

Notes for reviewers

None

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works

BOT NOTES:
resolves https://github.com/solo-io/solo-projects/issues/6472

@github-actions github-actions bot added the keep pr updated signals bulldozer to keep pr up to date with base branch label Jul 1, 2024
@solo-changelog-bot
Copy link

Issues linked to changelog:
https://github.com/solo-io/solo-projects/issues/6472

@npolshakova npolshakova marked this pull request as ready for review July 1, 2024 14:50
@npolshakova npolshakova requested a review from a team as a code owner July 1, 2024 14:50
Copy link

github-actions bot commented Jul 1, 2024

Visit the preview URL for this PR (updated for commit 0ff8863):

https://gloo-edge--pr9713-npolshak-add-trust-d-bv7z2z6u.web.app

(expires Wed, 17 Jul 2024 18:12:12 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 77c2b86e287749579b7ff9cadb81e099042ef677

@npolshakova npolshakova requested a review from jbohanon July 1, 2024 17:06
.github/workflows/pr-kubernetes-tests.yaml Outdated Show resolved Hide resolved
changelog/v1.18.0-beta5/add-istio-trust-domain.yaml Outdated Show resolved Hide resolved
changelog/v1.18.0-beta5/add-istio-trust-domain.yaml Outdated Show resolved Hide resolved
install/helm/gloo/generate/values.go Outdated Show resolved Hide resolved
test/kubernetes/e2e/test.go Show resolved Hide resolved
projects/gateway2/api/v1alpha1/gateway_parameters.proto Outdated Show resolved Hide resolved
projects/gateway2/deployer/merge.go Outdated Show resolved Hide resolved
projects/gloo/cli/pkg/cmd/istio/util.go Outdated Show resolved Hide resolved
@npolshakova npolshakova changed the title Add Istio trust domain Remove Istio trust domain Jul 3, 2024
@npolshakova npolshakova marked this pull request as draft July 3, 2024 13:20
@npolshakova npolshakova marked this pull request as ready for review July 3, 2024 20:37
@npolshakova npolshakova enabled auto-merge (squash) July 10, 2024 17:57
@npolshakova npolshakova merged commit d67089f into main Jul 11, 2024
20 checks passed
@npolshakova npolshakova deleted the npolshak/add-trust-domain branch July 11, 2024 14:41
@@ -141,6 +141,10 @@ func (i *TestInstallation) InstallMinimalIstio(ctx context.Context) error {
return cluster.InstallMinimalIstio(ctx, i.IstioctlBinary, i.ClusterContext.KubeContext)
}

func (i *TestInstallation) InstallRevisionedIstio(ctx context.Context) error {
return cluster.InstallRevisionedIstio(ctx, i.IstioctlBinary, i.ClusterContext.KubeContext, "1-22-1", "minimal")
Copy link
Contributor

Choose a reason for hiding this comment

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

what is the meaning of 1-22-1? is this an arbitrary string that a user can set?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yep- actually lemme make it configurable at the InstallRevisionedIstio() level!

@@ -0,0 +1,7 @@
changelog:
Copy link
Contributor

Choose a reason for hiding this comment

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

super-nit: the name of this file should be remove-istio-trust-domain.yaml

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah!! Not sure how to change this and make the bot happy- I think it's fine since it's not user facing? 😅

@@ -29,7 +29,8 @@ func TestK8sGatewayIstioAutoMtls(t *testing.T) {
err := testInstallation.AddIstioctl(ctx)
if err != nil {
log.Printf("failed to install: %v\n", err)
t.Fail()
// immediately stop if Istio installation fails
t.Error()
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 the docs Error is equivalent to Log followed by Fail.
can the above log message be moved into the t.Error/Errorf?
(same question for all the other instances of t.Error)

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 think we can combine! This was because of the change from Fail() based on Nathan's suggestion

@@ -0,0 +1,51 @@
global:
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: add -helm suffix to filename

)

// TestRevisionIstioRegression is the function which executes a series of tests against a given installation where
// the k8s Gateway controller is disabled and the deprecated Istio integration values are used to check for regressions
Copy link
Contributor

Choose a reason for hiding this comment

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

do we have somewhere tracking the removal of these tests once we stop supporting the deprecated values?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The removal of which tests? The old Istio values? Those should probably be deleted in 1.18 once the values are removed from the helm chart completely.

These are net new revision tests that will be kept around for a while- I think this comment should be updated though?

func RevisionIstioEdgeGatewaySuiteRunner() e2e.SuiteRunner {
revisionIstioSuiteRunner := e2e.NewSuiteRunner(false)

revisionIstioSuiteRunner.Register("IstioIntegration", istio.NewGlooTestingSuite)
Copy link
Contributor

Choose a reason for hiding this comment

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

i noticed that many other suite runners have registered the name "IstioIntegration" as well - just to confirm, is that ok as long as the name is unique within the suite runner?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yep, it's running the same feature tests, but with a different installation. So as long as the parent is differently named it should be fine. (And probably easier to tell which tests are which)

test/kubernetes/testutils/cluster/istio.go Show resolved Hide resolved
test/kubernetes/testutils/cluster/istio.go Show resolved Hide resolved
npolshakova added a commit that referenced this pull request Jul 11, 2024
* add trust domain

* changelog

* tests

* fix test name

* add to workflow

* Adding changelog file to new location

* Deleting changelog file from old location

* rebalance tests, fix helm

* update workflow with numbers for loadbalancing between e2e test clusters

* pr feedback

* update gateway proxies to be disabled for k8s gateway e2e tests

* cleanup istio install, remove old trust domain tests

* fix merge

* minimal ci change

* fix test name

* fix glooctl test helm chart

* fix istio edge gw manifest

* fix configmap template

* Adding changelog file to new location

* Deleting changelog file from old location

* missing gatewayProxy

* t.Error

* Adding changelog file to new location

* Deleting changelog file from old location

---------

Co-authored-by: changelog-bot <changelog-bot>
Co-authored-by: soloio-bulldozer[bot] <48420018+soloio-bulldozer[bot]@users.noreply.github.com>
soloio-bulldozer bot added a commit that referenced this pull request Jul 15, 2024
* Remove Istio trust domain (#9713)

* add trust domain

* changelog

* tests

* fix test name

* add to workflow

* Adding changelog file to new location

* Deleting changelog file from old location

* rebalance tests, fix helm

* update workflow with numbers for loadbalancing between e2e test clusters

* pr feedback

* update gateway proxies to be disabled for k8s gateway e2e tests

* cleanup istio install, remove old trust domain tests

* fix merge

* minimal ci change

* fix test name

* fix glooctl test helm chart

* fix istio edge gw manifest

* fix configmap template

* Adding changelog file to new location

* Deleting changelog file from old location

* missing gatewayProxy

* t.Error

* Adding changelog file to new location

* Deleting changelog file from old location

---------

Co-authored-by: changelog-bot <changelog-bot>
Co-authored-by: soloio-bulldozer[bot] <48420018+soloio-bulldozer[bot]@users.noreply.github.com>

* move changelog

---------

Co-authored-by: soloio-bulldozer[bot] <48420018+soloio-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Jacob Bohanon <jacob.bohanon@solo.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
keep pr updated signals bulldozer to keep pr up to date with base branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants