Skip to content

Separate control plane and data plane; support multiple Gateways #3318

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

Merged
merged 32 commits into from
May 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
8362868
CP/DP Split: Remove NGINX manager and deployment (#2936)
sjberman Dec 30, 2024
814c550
CP/DP Split: Add agent/nginx container and deployment (#2958)
sjberman Jan 2, 2025
b6a6dd6
CP/DP Split: track agent connections (#2970)
sjberman Jan 6, 2025
2a45ba3
Support NginxProxy at the Gateway level (#3058)
kate-osborn Jan 28, 2025
f94dbe0
CP/DP Split: write configuration to agent (#2999)
sjberman Jan 28, 2025
94b295f
CP/DP Split: Fix empty plus file, blocking calls (#3078)
sjberman Jan 31, 2025
3164943
CP/DP split: Add leader election (#3092)
bjee19 Feb 10, 2025
0ac4d53
CP/DP Split: Support basic NGINX OSS provisioning (#3114)
sjberman Feb 13, 2025
1e7f4d9
Revert "CP/DP split: Add leader election (#3092)"
salonichf5 Feb 14, 2025
0bdd7a6
Fix revert commit for leader election (#3136)
salonichf5 Feb 18, 2025
38cd73a
CP/DP split: Support nginx debug mode when provisioning Data Plane (#…
bjee19 Feb 20, 2025
a3caad7
CP/DP Split: provision NGINX Plus (#3148)
sjberman Feb 25, 2025
49353cb
CP/DP Split: remove unneeded provisioner mode (#3180)
sjberman Mar 4, 2025
64955f1
Update counterfeiter commands
sjberman Mar 4, 2025
cab059e
CP/DP split: update/delete user secrets (#3193)
sjberman Mar 5, 2025
01bb416
CP/DP Split: Update functional tests (#3207)
bjee19 Mar 23, 2025
8e83ddd
CP/DP split: Secure connection (#3244)
sjberman Mar 24, 2025
bf3faa9
CP/DP Split: handle kill signal (#3260)
sjberman Mar 31, 2025
0592d90
CP/DP Split: Openshift support (#3278)
sjberman Apr 7, 2025
d3b5319
Add support for multiple gateways (#3275)
salonichf5 Apr 22, 2025
1598552
CP/DP Update non-functional tests (#3305)
bjee19 Apr 22, 2025
7766279
Fix lint issue on rebase
sjberman Apr 23, 2025
79b55b8
Fix helm README generation
sjberman Apr 23, 2025
c4da0bb
CP/DP Split: Add ability to set loadBalancerClass for load balancer S…
bjee19 Apr 28, 2025
eb0ede6
CP/DP Split: optimize configuration events (#3320)
sjberman Apr 28, 2025
9f6cab3
CP/DP Split: Remove prometheus logger (#3349)
sjberman Apr 30, 2025
87f44ff
CP/DP Split: Support configuring NodePorts (#3343)
sjberman Apr 30, 2025
700af68
CP/DP Split: Update documentation on accessing nginx container (#3338)
bjee19 Apr 30, 2025
ba08495
CP/DP Split: Collect telemetry for cp dp split (#3352)
bjee19 May 1, 2025
b422854
CP/DP Split: update a few more container references (#3359)
sjberman May 6, 2025
34094d5
CP/DP Split: fix label updates (#3370)
sjberman May 14, 2025
a66267b
Remove unused service annotations (#3362)
bjee19 May 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ A clear and concise description of what you expected to happen.
* Version of Kubernetes
* Kubernetes platform (e.g. Mini-kube or GCP)
* Details on how you expose the NGINX Gateway Fabric Pod (e.g. Service of type LoadBalancer or port-forward)
* Logs of NGINX container: `kubectl -n nginx-gateway logs -l app=nginx-gateway -c nginx`
* NGINX Configuration: `kubectl -n nginx-gateway exec <gateway-pod> -c nginx -- nginx -T`
* Logs of NGINX container: `kubectl -n <nginx-deployment-namespace> logs deployments/<nginx-deployment>`
* NGINX Configuration: `kubectl -n <nginx-deployment-namespace> exec -it deployments/<nginx-deployment> -- nginx -T`

**Additional context**
Add any other context about the problem here. Any log files you want to share.
8 changes: 0 additions & 8 deletions .github/workflows/conformance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,6 @@ jobs:
type=ref,event=pr
type=ref,event=branch,suffix=-rc,enable=${{ startsWith(github.ref, 'refs/heads/release') }}

- name: Generate static deployment
run: |
ngf_prefix=ghcr.io/nginx/nginx-gateway-fabric
ngf_tag=${{ steps.ngf-meta.outputs.version }}
make generate-static-deployment PLUS_ENABLED=${{ inputs.image == 'plus' && 'true' || 'false' }} PREFIX=${ngf_prefix} TAG=${ngf_tag}
working-directory: ./tests

- name: Build binary
uses: goreleaser/goreleaser-action@9c156ee8a17a598857849441385a2041ef570552 # v6.3.0
with:
Expand Down Expand Up @@ -151,7 +144,6 @@ jobs:
ngf_tag=${{ steps.ngf-meta.outputs.version }}
if [ ${{ github.event_name }} == "schedule" ]; then export GW_API_VERSION=main; fi
make helm-install-local${{ inputs.image == 'plus' && '-with-plus' || ''}} PREFIX=${ngf_prefix} TAG=${ngf_tag}
make deploy-updated-provisioner PREFIX=${ngf_prefix} TAG=${ngf_tag}
working-directory: ./tests

- name: Run conformance tests
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/helm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -176,4 +176,4 @@ jobs:
--set=nginx.plus=${{ inputs.image == 'plus' }} \
--set=nginx.image.tag=nightly \
--set=nginxGateway.productTelemetry.enable=false \
${{ inputs.image == 'plus' && '--set=serviceAccount.imagePullSecret=nginx-plus-registry-secret --set=nginx.image.repository=private-registry.nginx.com/nginx-gateway-fabric/nginx-plus' || '' }}"
${{ inputs.image == 'plus' && '--set=nginx.imagePullSecret=nginx-plus-registry-secret --set=nginx.image.repository=private-registry.nginx.com/nginx-gateway-fabric/nginx-plus' || '' }}"
7 changes: 7 additions & 0 deletions .github/workflows/nfr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,13 @@ jobs:
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}

- name: Login to GAR
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
with:
registry: us-docker.pkg.dev
username: oauth2accesstoken
password: ${{ steps.auth.outputs.access_token }}

- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4
with:
Expand Down
7 changes: 4 additions & 3 deletions .yamllint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
ignore:
- charts/nginx-gateway-fabric/templates
- config/crd/bases/
- deploy/crds.yaml
- deploy/*nginx-plus
- deploy
- site/static

rules:
Expand All @@ -15,7 +14,9 @@ rules:
require-starting-space: true
ignore-shebangs: true
min-spaces-from-content: 1
comments-indentation: enable
comments-indentation:
ignore: |
charts/nginx-gateway-fabric/values.yaml
document-end: disable
document-start: disable
empty-lines: enable
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -226,13 +226,13 @@ install-ngf-local-build-with-plus: check-for-plus-usage-endpoint build-images-wi

.PHONY: helm-install-local
helm-install-local: install-gateway-crds ## Helm install NGF on configured kind cluster with local images. To build, load, and install with helm run make install-ngf-local-build.
helm install nginx-gateway $(CHART_DIR) --set nginx.image.repository=$(NGINX_PREFIX) --create-namespace --wait --set nginxGateway.image.pullPolicy=Never --set service.type=NodePort --set nginxGateway.image.repository=$(PREFIX) --set nginxGateway.image.tag=$(TAG) --set nginx.image.tag=$(TAG) --set nginx.image.pullPolicy=Never --set nginxGateway.gwAPIExperimentalFeatures.enable=$(ENABLE_EXPERIMENTAL) -n nginx-gateway $(HELM_PARAMETERS)
helm install nginx-gateway $(CHART_DIR) --set nginx.image.repository=$(NGINX_PREFIX) --create-namespace --wait --set nginxGateway.image.pullPolicy=Never --set nginx.service.type=NodePort --set nginxGateway.image.repository=$(PREFIX) --set nginxGateway.image.tag=$(TAG) --set nginx.image.tag=$(TAG) --set nginx.image.pullPolicy=Never --set nginxGateway.gwAPIExperimentalFeatures.enable=$(ENABLE_EXPERIMENTAL) -n nginx-gateway $(HELM_PARAMETERS)

.PHONY: helm-install-local-with-plus
helm-install-local-with-plus: check-for-plus-usage-endpoint install-gateway-crds ## Helm install NGF with NGINX Plus on configured kind cluster with local images. To build, load, and install with helm run make install-ngf-local-build-with-plus.
kubectl create namespace nginx-gateway || true
kubectl -n nginx-gateway create secret generic nplus-license --from-file $(PLUS_LICENSE_FILE) || true
helm install nginx-gateway $(CHART_DIR) --set nginx.image.repository=$(NGINX_PLUS_PREFIX) --wait --set nginxGateway.image.pullPolicy=Never --set service.type=NodePort --set nginxGateway.image.repository=$(PREFIX) --set nginxGateway.image.tag=$(TAG) --set nginx.image.tag=$(TAG) --set nginx.image.pullPolicy=Never --set nginxGateway.gwAPIExperimentalFeatures.enable=$(ENABLE_EXPERIMENTAL) -n nginx-gateway --set nginx.plus=true --set nginx.usage.endpoint=$(PLUS_USAGE_ENDPOINT) $(HELM_PARAMETERS)
helm install nginx-gateway $(CHART_DIR) --set nginx.image.repository=$(NGINX_PLUS_PREFIX) --wait --set nginxGateway.image.pullPolicy=Never --set nginx.service.type=NodePort --set nginxGateway.image.repository=$(PREFIX) --set nginxGateway.image.tag=$(TAG) --set nginx.image.tag=$(TAG) --set nginx.image.pullPolicy=Never --set nginxGateway.gwAPIExperimentalFeatures.enable=$(ENABLE_EXPERIMENTAL) -n nginx-gateway --set nginx.plus=true --set nginx.usage.endpoint=$(PLUS_USAGE_ENDPOINT) $(HELM_PARAMETERS)

.PHONY: check-for-plus-usage-endpoint
check-for-plus-usage-endpoint: ## Checks that the PLUS_USAGE_ENDPOINT is set in the environment. This env var is required when deploying or testing with N+.
Expand Down
282 changes: 0 additions & 282 deletions apis/v1alpha1/nginxproxy_types.go

This file was deleted.

2 changes: 0 additions & 2 deletions apis/v1alpha1/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&NginxGateway{},
&NginxGatewayList{},
&NginxProxy{},
&NginxProxyList{},
&ObservabilityPolicy{},
&ObservabilityPolicyList{},
&ClientSettingsPolicy{},
Expand Down
Loading
Loading