Skip to content

[E2E] Add Istio profile for E2E testing framework #656

@Xunzhuo

Description

@Xunzhuo

Description

Add a new Istio profile to the E2E testing framework to test Semantic Router integration with Istio GW.

Background

The E2E testing framework introduced in #655 provides an extensible profile-based architecture. We need to add an Istio profile to test Semantic Router deployment and functionality in an Istio service mesh environment.

Tasks

  • Create e2e/profiles/istio/ directory structure
  • Implement Profile interface for Istio
    • Setup: Deploy Istio control plane and data plane
    • Setup: Deploy Semantic Router with Istio sidecar injection
    • Setup: Configure Istio VirtualService and DestinationRule
    • Teardown: Clean up Istio resources
  • Implement test cases:
    • Basic health check with Istio sidecar
    • Traffic routing through Istio gateway
    • mTLS verification
    • Request tracing and observability
  • Add documentation for Istio profile usage
  • Update CI workflow to run Istio tests

Implementation Details

Profile Structure

type Profile struct {
    verbose bool
}

func (p *Profile) Setup(ctx context.Context, opts *framework.SetupOptions) error {
    // 1. Deploy Istio using istioctl or Helm
    // 2. Enable sidecar injection for namespace
    // 3. Deploy Semantic Router
    // 4. Configure Istio resources (VirtualService, Gateway, etc.)
}

Test Cases

  1. Istio Sidecar Health Check: Verify Envoy sidecar is injected and healthy
  2. Traffic Routing: Test request routing through Istio ingress gateway
  3. mTLS Verification: Verify mutual TLS between services
  4. Observability: Check distributed tracing and metrics collection

Acceptance Criteria

  • Istio profile can be run with make e2e-test PROFILE=istio
  • All test cases pass successfully
  • Documentation is complete and clear
  • CI integration works correctly

References

Related Issues

Part of the E2E testing framework expansion effort.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions