Skip to content

Commit 23a6c79

Browse files
committed
fix: move Makefile out of report structure as it can generate the structure
1 parent b75d158 commit 23a6c79

File tree

3 files changed

+225
-159
lines changed

3 files changed

+225
-159
lines changed
Lines changed: 11 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -1,153 +1,23 @@
1-
# Istio (Gateway Profile Conformance)
1+
# Istio (Gateway Profile Conformance) - v0.4.0
22

3+
## Test Results
34

4-
## Table of Contents
5+
This directory contains conformance test results for Gateway API Inference Extension v0.4.0 testing against Istio implementations using the Gateway profile.
56

67
| Extension Version Tested | Profile Tested | Implementation Version | Mode | Report | Status |
78
|--------------------------|----------------|------------------------|---------|--------|--------|
89
| v1.3.0 | Gateway | 1.27-alpha.0551127f00634403cddd4634567e65a8ecc499a7 | default | [1.27-alpha.0551127f00634403cddd4634567e65a8ecc499a7-default-gateway-report.yaml](./1.27-alpha.0551127f00634403cddd4634567e65a8ecc499a7-default-gateway-report.yaml) | PASS |
910
| ... | ... | ... | ... | ... | ... |
1011

11-
## Reproduce
12+
## Running the Tests
1213

13-
To reproduce the test environment and run the conformance tests, choose **one** of these deployment environments:
14+
For instructions on how to reproduce these test results and run the conformance tests yourself, see the [Istio Conformance Testing README](../../../../scripts/istio/README.md).
1415

15-
### Option A: Minikube Environment
16+
## About This Version
1617

17-
```bash
18-
# Set up the complete environment (minikube, istio, CRDs, TLS)
19-
make setup-env-minikube
18+
- **Extension Version**: v0.4.0
19+
- **Profile**: Gateway
20+
- **Implementation**: Istio
21+
- **Test Mode**: Default
2022

21-
# Run conformance tests
22-
make run-tests
23-
24-
# Clean up resources when done
25-
make clean
26-
```
27-
28-
### Option B: Kind Environment
29-
30-
```bash
31-
# Set up the complete environment (kind, istio, CRDs, TLS)
32-
make setup-env-kind
33-
34-
# Run conformance tests
35-
make run-tests
36-
37-
# Clean up resources when done
38-
make clean
39-
```
40-
41-
### Option C: OpenShift Environment
42-
43-
```bash
44-
# Set up the complete environment (openshift, istio, CRDs, TLS)
45-
make setup-env-openshift
46-
47-
# Run conformance tests
48-
make run-tests
49-
50-
# Clean up resources when done
51-
make clean
52-
```
53-
54-
### Individual Setup Steps
55-
56-
If you prefer to run individual setup steps:
57-
58-
```bash
59-
# Choose ONE of these deployment environments:
60-
make setup-minikube # Option A: Set up minikube with metallb
61-
# OR
62-
make setup-kind # Option B: Set up kind cluster with metallb
63-
# OR
64-
make setup-openshift # Option C: Set up OpenShift environment
65-
66-
# Use specific Kubernetes version (works for both kind and minikube):
67-
make setup-minikube KUBERNETES_VERSION=v1.31.9
68-
make setup-kind KUBERNETES_VERSION=v1.31.9
69-
70-
# Then continue with common setup steps:
71-
make setup-istio # Install Istio (automatically detects hub)
72-
# OR use environment-specific targets:
73-
make setup-istio-minikube # Install Istio for minikube environment
74-
make setup-istio-kind # Install Istio for kind environment
75-
make setup-istio-openshift # Install Istio for OpenShift environment
76-
77-
make setup-gateway-api-crds # Apply Gateway API CRDs
78-
make setup-inference-extension-crds # Apply Inference Extension CRDs
79-
# OR
80-
make setup-crds # Apply all CRDs (convenience target)
81-
make setup-tls # Set up TLS for EPP
82-
```
83-
84-
### CRD Setup Options
85-
86-
The CRD setup is split into two targets for flexibility:
87-
88-
- `make setup-gateway-api-crds` - Install only Gateway API CRDs (if you have a base Gateway API environment)
89-
- `make setup-inference-extension-crds` - Install only Inference Extension CRDs (if Gateway API is already installed)
90-
- `make setup-crds` - Install both (convenience target for full setup)
91-
92-
Different environments might require different combinations depending on what's already installed.
93-
94-
### Version Configuration
95-
96-
The Makefile uses configurable version variables that can be overridden:
97-
98-
```bash
99-
# Use default versions
100-
make setup-env-minikube
101-
102-
# Override specific versions
103-
make setup-env-minikube ISTIO_VERSION=1.28.0
104-
make setup-env-kind GATEWAY_API_VERSION=v1.4.0 INFERENCE_EXTENSION_VERSION=v0.5.0
105-
make setup-env-openshift GATEWAY_API_VERSION=v1.4.0 INFERENCE_EXTENSION_VERSION=v0.5.0
106-
107-
# Use specific Kubernetes version (works for both kind and minikube)
108-
make setup-env-minikube KUBERNETES_VERSION=v1.31.9
109-
make setup-env-kind KUBERNETES_VERSION=v1.31.9
110-
111-
# Combine version overrides
112-
make setup-env-minikube KUBERNETES_VERSION=v1.31.9 ISTIO_VERSION=1.28.0
113-
114-
# Use environment-specific Istio installation
115-
make setup-istio-minikube # Install Istio for minikube environment
116-
make setup-istio-kind # Install Istio for kind environment
117-
make setup-istio-openshift # Install Istio for OpenShift environment
118-
119-
# Run conformance tests
120-
make run-tests # Run all conformance tests
121-
make run-tests RUN_TEST=InferencePoolAccepted # Run specific test only
122-
123-
# See all available options
124-
make help
125-
```
126-
127-
### Available Variables:
128-
129-
**Main Variables:**
130-
- `GATEWAY_API_VERSION` - Gateway API version (default: v1.3.0)
131-
- `INFERENCE_EXTENSION_VERSION` - Inference Extension version (default: v0.4.0)
132-
- `KUBERNETES_VERSION` - Kubernetes version for kind/minikube (default: v1.30.13)
133-
- `ISTIO_VERSION` - Istio version (default: 1.27-alpha.0551127f00634403cddd4634567e65a8ecc499a7)
134-
135-
**Conformance Test Variables:**
136-
- `MODE` - Test mode (default: default)
137-
- `PROFILE` - Conformance profile (default: gateway)
138-
- `ORGANIZATION` - Organization name (default: istio)
139-
- `PROJECT` - Project name (default: istio)
140-
- `URL` - Project URL (default: https://istio.io)
141-
- `CONTACT` - Contact information (default: @istio/maintainers)
142-
- `RUN_TEST` - Run specific test (default: empty, runs all tests)
143-
144-
**Advanced Variables:**
145-
For advanced users who need to customize internal behavior, additional variables are available including `ISTIO_HUB`, `ISTIO_PROFILE`, `TEST_BASE_DIR`, `REPORT_BASE_DIR`, and others. See `make help` for a complete list.
146-
147-
> **Note**: This Makefile expects to be run from within the `gateway-api-inference-extension` repository structure. The test suite is located at the repository root, while conformance reports are generated in the current directory.
148-
149-
### Conformance Testing
150-
151-
For detailed information about conformance testing, report generation, and requirements, see the [conformance README](../../../README.md).
152-
153-
For available commands and options specific to this Istio implementation, run `make help` or see the `Makefile` in this directory.
23+
For detailed information about conformance testing, report generation, and requirements, see the [main conformance README](../../../../../README.md).

conformance/reports/v0.4.0/gateway/istio/Makefile renamed to conformance/scripts/istio/Makefile

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ CONTACT ?= @istio/maintainers
1717
RUN_TEST ?=
1818

1919
# Directory variables
20-
TEST_BASE_DIR ?= ../../../../..
21-
REPORT_BASE_DIR ?= .
20+
TEST_BASE_DIR ?= ../../..
21+
REPORT_BASE_DIR ?= ../../reports/$(INFERENCE_EXTENSION_VERSION)/$(PROFILE)/$(PROJECT)
2222

2323
# Kubernetes version (shared between kind and minikube)
2424
KUBERNETES_VERSION ?= v1.30.13
@@ -91,7 +91,7 @@ spec:
9191
insecureSkipVerify: true
9292
endef
9393

94-
.PHONY: setup-env-minikube setup-env-kind setup-env-openshift setup-minikube setup-kind setup-openshift setup-istio setup-istio-minikube setup-istio-kind setup-istio-openshift setup-gateway-api-crds setup-inference-extension-crds setup-crds setup-tls run-tests update-readme clean clean-reports help
94+
.PHONY: setup-env-minikube setup-env-kind setup-env-openshift setup-minikube setup-kind setup-openshift setup-istio setup-istio-minikube setup-istio-kind setup-istio-openshift setup-gateway-api-crds setup-inference-extension-crds setup-crds setup-tls run-tests update-readme clean clean-reports help ensure-report-dir
9595

9696
# Setup complete environment with minikube
9797
setup-env-minikube: setup-minikube setup-istio-minikube setup-gateway-api-crds setup-inference-extension-crds setup-tls
@@ -157,6 +157,12 @@ help:
157157
@echo " INFERENCE_EXTENSION_VERSION - Inference Extension version (current: $(INFERENCE_EXTENSION_VERSION))"
158158
@echo " KUBERNETES_VERSION - Kubernetes version for kind/minikube (current: $(KUBERNETES_VERSION))"
159159
@echo " ISTIO_VERSION - Istio version (current: $(ISTIO_VERSION))"
160+
@echo " PROFILE - Conformance profile (current: $(PROFILE))"
161+
@echo " PROJECT - Project name (current: $(PROJECT))"
162+
@echo ""
163+
@echo "📁 REPORT STRUCTURE:"
164+
@echo " Reports will be generated in: $(REPORT_BASE_DIR)/"
165+
@echo " This structure is based on: reports/[INFERENCE_EXTENSION_VERSION]/[PROFILE]/[PROJECT]/"
160166
@echo ""
161167
@echo "📥 Automatic istioctl Management:"
162168
@echo " • istioctl binary will be automatically downloaded based on ISTIO_VERSION"
@@ -167,9 +173,7 @@ help:
167173
@echo ""
168174
@echo "Conformance test variables (can be overridden):"
169175
@echo " MODE - Test mode (current: $(MODE))"
170-
@echo " PROFILE - Conformance profile (current: $(PROFILE))"
171176
@echo " ORGANIZATION - Organization name (current: $(ORGANIZATION))"
172-
@echo " PROJECT - Project name (current: $(PROJECT))"
173177
@echo " URL - Project URL (current: $(URL))"
174178
@echo " CONTACT - Contact information (current: $(CONTACT))"
175179
@echo " RUN_TEST - Run specific test (current: $(RUN_TEST))"
@@ -217,11 +221,17 @@ help:
217221
@echo ""
218222
@echo "🧪 Testing Examples:"
219223
@echo " make run-tests - Run conformance tests with default settings"
220-
@echo " make run-tests TEST_BASE_DIR=../../../../../ - Run tests from custom directory"
224+
@echo " make run-tests TEST_BASE_DIR=.. - Run tests from custom directory"
221225
@echo " make run-tests RUN_TEST=InferencePoolAccepted - Run specific test only"
226+
@echo " make run-tests PROJECT=envoy PROFILE=mesh - Run tests for different project/profile"
222227
@echo " make update-readme - Update README table with all available reports"
223228
@echo ""
224229

230+
# Ensure report directory exists
231+
ensure-report-dir:
232+
@echo "Ensuring report directory exists: $(REPORT_BASE_DIR)"
233+
@mkdir -p $(REPORT_BASE_DIR)
234+
225235
# Setup minikube with metallb
226236
setup-minikube:
227237
@echo "Setting up minikube with metallb..."
@@ -388,7 +398,7 @@ setup-tls:
388398
@rm -f /tmp/tls-destination-rules.yaml
389399

390400
# Run conformance tests
391-
run-tests:
401+
run-tests: ensure-report-dir
392402
@echo "Running conformance tests..."
393403
@echo "Test base directory: $(TEST_BASE_DIR)"
394404
@echo "Report will be saved as: $(REPORT_BASE_DIR)/$(IMPLEMENTATION_VERSION)-$(MODE)-$(PROFILE)-report.yaml"
@@ -399,7 +409,7 @@ run-tests:
399409
fi
400410
cd $(TEST_BASE_DIR) && go test ./conformance -args -gateway-class istio \
401411
-cleanup-base-resources=false \
402-
-report-output=$(shell pwd)/$(IMPLEMENTATION_VERSION)-$(MODE)-$(PROFILE)-report.yaml \
412+
-report-output=$(shell pwd)/$(REPORT_BASE_DIR)/$(IMPLEMENTATION_VERSION)-$(MODE)-$(PROFILE)-report.yaml \
403413
-organization="$(ORGANIZATION)" \
404414
-project="$(PROJECT)" \
405415
-url="$(URL)" \
@@ -408,14 +418,15 @@ run-tests:
408418
-mode="$(MODE)" \
409419
-run-test="$(RUN_TEST)"
410420
@echo ""
411-
@echo "Test completed! To update the README table, run:"
421+
@echo "Test completed! Report saved to: $(REPORT_BASE_DIR)/$(IMPLEMENTATION_VERSION)-$(MODE)-$(PROFILE)-report.yaml"
422+
@echo "To update the README table, run:"
412423
@echo " make update-readme"
413424

414425
# Update README table with all available reports
415426
update-readme:
416427
@echo "Updating README table with all available reports..."
417-
@echo "Scanning for conformance reports..."
418-
@REPORTS=$$(ls *-*-*-report.yaml 2>/dev/null || echo ""); \
428+
@echo "Scanning for conformance reports in reports/ directory..."
429+
@cd reports && REPORTS=$$(find . -name "*-*-*-report.yaml" -type f 2>/dev/null | sort || echo ""); \
419430
if [ -z "$$REPORTS" ]; then \
420431
echo "No conformance reports found. Run 'make run-tests' to generate reports first."; \
421432
exit 1; \
@@ -458,7 +469,7 @@ update-readme:
458469
TABLE_ENTRIES="$$TABLE_ENTRIES\n$$TABLE_ENTRY"; \
459470
fi; \
460471
done; \
461-
echo "Updating README.md..."; \
472+
cd .. && echo "Updating README.md..."; \
462473
sed -i '/^| Extension Version Tested | Profile Tested | Implementation Version | Mode | Report | Status |$$/,/^| \.\.\. *| \.\.\. *| \.\.\. *| \.\.\. *| \.\.\. *| \.\.\. *|$$/{//!d;}' README.md; \
463474
sed -i '/^| Extension Version Tested | Profile Tested | Implementation Version | Mode | Report | Status |$$/a\|--------------------------|----------------|------------------------|---------|--------|--------|\n'"$$TABLE_ENTRIES" README.md; \
464475
echo "README table updated successfully!"
@@ -477,11 +488,7 @@ clean:
477488
# Clean up generated conformance reports
478489
clean-reports:
479490
@echo "Cleaning up generated conformance reports..."
480-
rm -f *-*-*-report.yaml
491+
rm -f reports/*/*/*/*-*-*-report.yaml
481492
@echo "Cleaning up README table entries..."
482493
@sed -i '/^| [^E][^t].*\.yaml.*|$$/d' README.md
483-
@echo "Conformance reports and README table cleaned up"
484-
485-
486-
487-
494+
@echo "Conformance reports and README table cleaned up"

0 commit comments

Comments
 (0)