diff --git a/.github/CHANGELOG_TEMPLATE.md b/.github/CHANGELOG_TEMPLATE.md index 1c6c08c8cd..a943fd9c54 100644 --- a/.github/CHANGELOG_TEMPLATE.md +++ b/.github/CHANGELOG_TEMPLATE.md @@ -23,10 +23,15 @@ UPGRADE: - +KNOWN ISSUES: + +- + COMPATIBILITY: - The Gateway API version: `` - NGINX version: `` +- NGINX Plus version: `` - Kubernetes version: `` CONTAINER IMAGES: diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 498b8cd383..7d52b30c7a 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -50,6 +50,14 @@ jobs: include: "deploy/helm-chart/*.yaml" regex: false + - name: Find and Replace + uses: jacobtomlinson/gha-find-replace@a51bbcd94d000df9ca0fcb54ec8be69aad8374b0 # v3.0.2 + with: + find: ${{ steps.vars.outputs.current_version }} + replace: ${{ inputs.version }} + include: "deploy/helm-chart/*.yaml" + regex: false + - name: Find and Replace uses: jacobtomlinson/gha-find-replace@a51bbcd94d000df9ca0fcb54ec8be69aad8374b0 # v3.0.2 with: @@ -61,10 +69,11 @@ jobs: - name: Generate manifests and changelog run: | sed -i -e "s/v${{ steps.vars.outputs.current_version }}/v${{ inputs.version }}/g" README.md + sed -i -e "s/\[${{ steps.vars.outputs.current_version }}\]/\[${{ inputs.version }}\]/g" README.md sed -i -e "s/VERSION = edge/VERSION = ${{ inputs.version }}/g" Makefile sed -i -e "s/VERSION = ${{ steps.vars.outputs.current_version }}/VERSION = ${{ inputs.version }}/g" conformance/Makefile sed -i -e "s/TAG = edge/TAG = ${{ inputs.version }}/g" **/Makefile - sed -i "5r .github/CHANGELOG_TEMPLATE.md" CHANGELOG.md + sed -i "6r .github/CHANGELOG_TEMPLATE.md" CHANGELOG.md sed -i -e "s/%%VERSION%%/${{ inputs.version }}/g" CHANGELOG.md make generate-manifests @@ -74,6 +83,7 @@ jobs: token: ${{ secrets.NGINX_PAT }} commit-message: Release ${{ inputs.version }} title: Release ${{ inputs.version }} + draft: true branch: docs/release-${{ inputs.version }} author: nginx-bot committer: nginx-bot diff --git a/CHANGELOG.md b/CHANGELOG.md index 24d147134d..47b53df64c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,59 @@ This document includes a curated changelog for each release. We also publish a c a [GitHub release](https://github.com/nginxinc/nginx-gateway-fabric/releases), which, by contrast, is auto-generated and includes links to all PRs that went into the release. +## Release 1.2.0 + +*March 21, 2024* + +FEATURES: + +- [NGINX Plus](https://docs.nginx.com/nginx-gateway-fabric/overview/nginx-plus) can now be used as the data plane. [PR-1394](https://github.com/nginxinc/nginx-gateway-fabric/pull/1394) + - Supports dynamic upstream reloads. [PR-1469](https://github.com/nginxinc/nginx-gateway-fabric/pull/1469) + - Contains advanced Prometheus metrics. [PR-1394](https://github.com/nginxinc/nginx-gateway-fabric/pull/1394) + - Includes the NGINX Plus monitoring dashboard. [PR-1488](https://github.com/nginxinc/nginx-gateway-fabric/pull/1488) +- Support for [BackendTLSPolicy](https://gateway-api.sigs.k8s.io/api-types/backendtlspolicy/). [PR-1487](https://github.com/nginxinc/nginx-gateway-fabric/pull/1487) +- Support for URLRewrite HTTPRoute Filter. [PR-1396](https://github.com/nginxinc/nginx-gateway-fabric/pull/1396) +- NGINX Gateway Fabric will collect and report product telemetry to an F5 telemetry service every 24h. Read https://docs.nginx.com/nginx-gateway-fabric/overview/product-telemetry/ for more info, including what gets collected and how to opt out. [PR-1699](https://github.com/nginxinc/nginx-gateway-fabric/pull/1699) + +ENHANCEMENTS: + +- Stop processing resources that haven't changed. [PR-1422](https://github.com/nginxinc/nginx-gateway-fabric/pull/1422) Thanks to [Kai-Hsun Chen](https://github.com/kevin85421). +- Maintain Gateway Status order. [PR-1324](https://github.com/nginxinc/nginx-gateway-fabric/pull/1324) Thanks to [Kai-Hsun Chen](https://github.com/kevin85421). + +BUG FIXES: + +- Prevent paths in HTTPRoute matches from conflicting with internal locations in NGINX. [PR-1445](https://github.com/nginxinc/nginx-gateway-fabric/pull/1445) + +DOCUMENTATION: + +- Sample Grafana dashboard added. [PR-1620](https://github.com/nginxinc/nginx-gateway-fabric/pull/1620) +- Add a document about how to get support. [PR-1388](https://github.com/nginxinc/nginx-gateway-fabric/pull/1388) +- [Documentation](https://docs.nginx.com/nginx-gateway-fabric/installation/ngf-images) on how to build or install the NGINX Plus image. + +HELM CHART: + +- The version of the Helm chart is now 1.2.0 +- nodeSelector is now configurable. [PR-1531](https://github.com/nginxinc/nginx-gateway-fabric/pull/1531) Thanks to [Leandro Martins](https://github.com/leandrocostam) + +KNOWN ISSUES: + +- Shutdown of non-leader Pods starts leader jobs. [1738](https://github.com/nginxinc/nginx-gateway-fabric/issues/1738) +- Too many matching conditions can cause reload errors. [1107](https://github.com/nginxinc/nginx-gateway-fabric/issues/1107) +- NGF Pod fails to become ready due to nginx reload failure. [1695](https://github.com/nginxinc/nginx-gateway-fabric/issues/1695) + +COMPATIBILITY: + +- The Gateway API version: `1.0.0` +- NGINX version: `1.25.4` +- NGINX Plus version: `R31` +- Kubernetes version: `1.23+` + +CONTAINER IMAGES: + +- Control plane: `ghcr.io/nginxinc/nginx-gateway-fabric:1.2.0` +- Data plane: `ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.2.0` +- Data plane with NGINX Plus: `private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:1.2.0` + ## Release 1.1.0 *December 14, 2023* diff --git a/Makefile b/Makefile index 0014c27467..a00f452cb4 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # variables that should not be overridden by the user -VERSION = edge +VERSION = 1.2.0 GIT_COMMIT = $(shell git rev-parse HEAD || echo "unknown") DATE = $(shell date -u +"%Y-%m-%dT%H:%M:%SZ") MANIFEST_DIR = $(CURDIR)/deploy/manifests diff --git a/README.md b/README.md index b5d29aca36..e1e59d0ea0 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ You can find the comprehensive NGINX Gateway Fabric user documentation on the [N We publish NGINX Gateway Fabric releases on GitHub. See our [releases page](https://github.com/nginxinc/nginx-gateway-fabric/releases). -The latest release is [1.1.0](https://github.com/nginxinc/nginx-gateway-fabric/releases/tag/v1.1.0). +The latest release is [1.2.0](https://github.com/nginxinc/nginx-gateway-fabric/releases/tag/v1.2.0). The edge version is useful for experimenting with new features that are not yet published in a release. To use, choose the _edge_ version built from the [latest commit](https://github.com/nginxinc/nginx-gateway-fabric/commits/main) @@ -45,7 +45,7 @@ to the correct versions: | Version | Description | Installation Manifests | Documentation and Examples | | -------------- | ---------------------------------------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Latest release | For production use | [Manifests](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.1.0/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.1.0/examples). | +| Latest release | For production use | [Manifests](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.2.0/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.2.0/examples). | | Edge | For experimental use and latest features | [Manifests](https://github.com/nginxinc/nginx-gateway-fabric/tree/main/deploy). | [Documentation](https://github.com/nginxinc/nginx-gateway-fabric/tree/main/site/content). [Examples](https://github.com/nginxinc/nginx-gateway-fabric/tree/main/examples). | ### Versioning @@ -67,6 +67,7 @@ The following table lists the software versions NGINX Gateway Fabric supports. | NGINX Gateway Fabric | Gateway API | Kubernetes | NGINX OSS | NGINX Plus | | -------------------- | ----------- | ---------- | --------- | ---------- | | Edge | 1.0.0 | 1.23+ | 1.25.4 | R31 | +| 1.2.0 | 1.0.0 | 1.23+ | 1.25.4 | R31 | | 1.1.0 | 1.0.0 | 1.23+ | 1.25.3 | n/a | | 1.0.0 | 0.8.1 | 1.23+ | 1.25.2 | n/a | | 0.6.0 | 0.8.0 | 1.23+ | 1.25.2 | n/a | diff --git a/conformance/Makefile b/conformance/Makefile index dcdfb1b70a..40369b8ce1 100644 --- a/conformance/Makefile +++ b/conformance/Makefile @@ -1,4 +1,4 @@ -TAG = edge +TAG = 1.2.0 VERSION = 1.1.0 # NGF version PREFIX = nginx-gateway-fabric NGINX_PREFIX = $(PREFIX)/nginx diff --git a/conformance/provisioner/provisioner.yaml b/conformance/provisioner/provisioner.yaml index 5862ee37ec..fcdd1b046d 100644 --- a/conformance/provisioner/provisioner.yaml +++ b/conformance/provisioner/provisioner.yaml @@ -68,7 +68,7 @@ spec: spec: serviceAccountName: nginx-gateway-provisioner containers: - - image: ghcr.io/nginxinc/nginx-gateway-fabric:edge + - image: ghcr.io/nginxinc/nginx-gateway-fabric:1.2.0 imagePullPolicy: Always name: nginx-gateway-provisioner securityContext: diff --git a/conformance/provisioner/static-deployment.yaml b/conformance/provisioner/static-deployment.yaml index 58396a2a0a..e5157831cb 100644 --- a/conformance/provisioner/static-deployment.yaml +++ b/conformance/provisioner/static-deployment.yaml @@ -8,7 +8,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: replicas: 1 selector: @@ -45,8 +45,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: ghcr.io/nginxinc/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginxinc/nginx-gateway-fabric:1.2.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - name: health @@ -74,8 +74,8 @@ spec: mountPath: /etc/nginx/secrets - name: nginx-run mountPath: /var/run/nginx - - image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:edge - imagePullPolicy: Always + - image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.2.0 + imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 diff --git a/deploy/helm-chart/Chart.yaml b/deploy/helm-chart/Chart.yaml index 7285ae509c..6580304d58 100644 --- a/deploy/helm-chart/Chart.yaml +++ b/deploy/helm-chart/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: nginx-gateway-fabric description: NGINX Gateway Fabric type: application -version: 1.1.0 -appVersion: "edge" +version: 1.2.0 +appVersion: "1.2.0" home: https://github.com/nginxinc/nginx-gateway-fabric icon: https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/main/deploy/helm-chart/chart-icon.png sources: diff --git a/deploy/helm-chart/values.yaml b/deploy/helm-chart/values.yaml index c0dbe5eb6f..28fdc25d89 100644 --- a/deploy/helm-chart/values.yaml +++ b/deploy/helm-chart/values.yaml @@ -38,8 +38,8 @@ nginxGateway: image: ## The NGINX Gateway Fabric image to use repository: ghcr.io/nginxinc/nginx-gateway-fabric - tag: edge - pullPolicy: Always + tag: 1.2.0 + pullPolicy: IfNotPresent securityContext: ## Some environments may need this set to true in order for the control plane to successfully reload NGINX. @@ -64,8 +64,8 @@ nginx: ## The NGINX image to use image: repository: ghcr.io/nginxinc/nginx-gateway-fabric/nginx - tag: edge - pullPolicy: Always + tag: 1.2.0 + pullPolicy: IfNotPresent ## Is NGINX Plus image being used plus: false diff --git a/deploy/manifests/nginx-gateway-experimental.yaml b/deploy/manifests/nginx-gateway-experimental.yaml index 7cf2912885..4936d79822 100644 --- a/deploy/manifests/nginx-gateway-experimental.yaml +++ b/deploy/manifests/nginx-gateway-experimental.yaml @@ -12,7 +12,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" annotations: {} --- @@ -24,7 +24,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" rules: - apiGroups: - "" @@ -127,7 +127,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -146,7 +146,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: replicas: 1 selector: @@ -186,8 +186,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: ghcr.io/nginxinc/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginxinc/nginx-gateway-fabric:1.2.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - name: metrics @@ -217,8 +217,8 @@ spec: mountPath: /etc/nginx/secrets - name: nginx-run mountPath: /var/run/nginx - - image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:edge - imagePullPolicy: Always + - image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.2.0 + imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 @@ -271,7 +271,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: controllerName: gateway.nginx.org/nginx-gateway-controller --- @@ -284,7 +284,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: logging: level: info diff --git a/deploy/manifests/nginx-gateway.yaml b/deploy/manifests/nginx-gateway.yaml index 933e66d4ec..56d415c7a8 100644 --- a/deploy/manifests/nginx-gateway.yaml +++ b/deploy/manifests/nginx-gateway.yaml @@ -12,7 +12,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" annotations: {} --- @@ -24,7 +24,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" rules: - apiGroups: - "" @@ -124,7 +124,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -143,7 +143,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: replicas: 1 selector: @@ -182,8 +182,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: ghcr.io/nginxinc/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginxinc/nginx-gateway-fabric:1.2.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - name: metrics @@ -213,8 +213,8 @@ spec: mountPath: /etc/nginx/secrets - name: nginx-run mountPath: /var/run/nginx - - image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:edge - imagePullPolicy: Always + - image: ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.2.0 + imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 @@ -267,7 +267,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: controllerName: gateway.nginx.org/nginx-gateway-controller --- @@ -280,7 +280,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: logging: level: info diff --git a/deploy/manifests/nginx-plus-gateway-experimental.yaml b/deploy/manifests/nginx-plus-gateway-experimental.yaml index 88b5249c34..b3095b4fb1 100644 --- a/deploy/manifests/nginx-plus-gateway-experimental.yaml +++ b/deploy/manifests/nginx-plus-gateway-experimental.yaml @@ -12,7 +12,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" annotations: {} --- @@ -24,7 +24,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" rules: - apiGroups: - "" @@ -133,7 +133,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -152,7 +152,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: replicas: 1 selector: @@ -193,8 +193,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: ghcr.io/nginxinc/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginxinc/nginx-gateway-fabric:1.2.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - name: metrics @@ -224,8 +224,8 @@ spec: mountPath: /etc/nginx/secrets - name: nginx-run mountPath: /var/run/nginx - - image: nginx-gateway-fabric/nginx-plus:edge - imagePullPolicy: Always + - image: nginx-gateway-fabric/nginx-plus:1.2.0 + imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 @@ -278,7 +278,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: controllerName: gateway.nginx.org/nginx-gateway-controller --- @@ -291,7 +291,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: logging: level: info diff --git a/deploy/manifests/nginx-plus-gateway.yaml b/deploy/manifests/nginx-plus-gateway.yaml index e0de54f541..4c0bb5ee03 100644 --- a/deploy/manifests/nginx-plus-gateway.yaml +++ b/deploy/manifests/nginx-plus-gateway.yaml @@ -12,7 +12,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" annotations: {} --- @@ -24,7 +24,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" rules: - apiGroups: - "" @@ -130,7 +130,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -149,7 +149,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: replicas: 1 selector: @@ -189,8 +189,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: ghcr.io/nginxinc/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginxinc/nginx-gateway-fabric:1.2.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - name: metrics @@ -220,8 +220,8 @@ spec: mountPath: /etc/nginx/secrets - name: nginx-run mountPath: /var/run/nginx - - image: nginx-gateway-fabric/nginx-plus:edge - imagePullPolicy: Always + - image: nginx-gateway-fabric/nginx-plus:1.2.0 + imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 @@ -274,7 +274,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: controllerName: gateway.nginx.org/nginx-gateway-controller --- @@ -287,7 +287,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: logging: level: info diff --git a/deploy/manifests/service/loadbalancer-aws-nlb.yaml b/deploy/manifests/service/loadbalancer-aws-nlb.yaml index ab64f656cf..e3b024c4ec 100644 --- a/deploy/manifests/service/loadbalancer-aws-nlb.yaml +++ b/deploy/manifests/service/loadbalancer-aws-nlb.yaml @@ -8,7 +8,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" annotations: service.beta.kubernetes.io/aws-load-balancer-type: nlb spec: diff --git a/deploy/manifests/service/loadbalancer.yaml b/deploy/manifests/service/loadbalancer.yaml index 660a236579..01d6906420 100644 --- a/deploy/manifests/service/loadbalancer.yaml +++ b/deploy/manifests/service/loadbalancer.yaml @@ -8,7 +8,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: externalTrafficPolicy: Local type: LoadBalancer diff --git a/deploy/manifests/service/nodeport.yaml b/deploy/manifests/service/nodeport.yaml index 83c236da7d..e951a3ac14 100644 --- a/deploy/manifests/service/nodeport.yaml +++ b/deploy/manifests/service/nodeport.yaml @@ -8,7 +8,7 @@ metadata: labels: app.kubernetes.io/name: nginx-gateway app.kubernetes.io/instance: nginx-gateway - app.kubernetes.io/version: "edge" + app.kubernetes.io/version: "1.2.0" spec: type: NodePort selector: diff --git a/site/content/how-to/maintenance/upgrade-apps-without-downtime.md b/site/content/how-to/maintenance/upgrade-apps-without-downtime.md index 39616ca5cf..730708592b 100644 --- a/site/content/how-to/maintenance/upgrade-apps-without-downtime.md +++ b/site/content/how-to/maintenance/upgrade-apps-without-downtime.md @@ -57,7 +57,7 @@ For example, an application can be exposed using a routing rule like below: port: 80 ``` -{{< note >}}See the [Cafe example](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.1.0/examples/cafe-example) for a basic example.{{< /note >}} +{{< note >}}See the [Cafe example](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.2.0/examples/cafe-example) for a basic example.{{< /note >}} The upgrade methods in the next sections cover: @@ -122,4 +122,4 @@ By updating the rule you can further increase the share of traffic the new versi weight: 1 ``` -See the [Traffic splitting example](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.1.0/examples/traffic-splitting) from our repository. +See the [Traffic splitting example](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.2.0/examples/traffic-splitting) from our repository. diff --git a/site/content/how-to/traffic-management/advanced-routing.md b/site/content/how-to/traffic-management/advanced-routing.md index 7cf1fba8ea..92f3a270ef 100644 --- a/site/content/how-to/traffic-management/advanced-routing.md +++ b/site/content/how-to/traffic-management/advanced-routing.md @@ -34,7 +34,7 @@ The goal is to create a set of rules that will result in client requests being s Begin by deploying the `coffee-v1` and `coffee-v2` applications: ```shell -kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.1.0/examples/advanced-routing/coffee.yaml +kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.2.0/examples/advanced-routing/coffee.yaml ``` ### Deploy the Gateway API Resources for the Coffee Applications @@ -154,7 +154,7 @@ Let's deploy a different set of applications now called `tea` and `tea-post`. Th ### Deploy the Tea Applications ```shell -kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.1.0/examples/advanced-routing/tea.yaml +kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.2.0/examples/advanced-routing/tea.yaml ``` ### Deploy the HTTPRoute for the Tea Services diff --git a/site/content/includes/installation/install-gateway-api-resources.md b/site/content/includes/installation/install-gateway-api-resources.md index 5ab5aae8e4..75585d8468 100644 --- a/site/content/includes/installation/install-gateway-api-resources.md +++ b/site/content/includes/installation/install-gateway-api-resources.md @@ -2,7 +2,7 @@ docs: "DOCS-1438" --- -{{}}The [Gateway API resources](https://github.com/kubernetes-sigs/gateway-api) from the standard channel must be installed before deploying NGINX Gateway Fabric. If they are already installed in your cluster, please ensure they are the correct version as supported by the NGINX Gateway Fabric - [see the Technical Specifications](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.1.0/README.md#technical-specifications).{{}} +{{}}The [Gateway API resources](https://github.com/kubernetes-sigs/gateway-api) from the standard channel must be installed before deploying NGINX Gateway Fabric. If they are already installed in your cluster, please ensure they are the correct version as supported by the NGINX Gateway Fabric - [see the Technical Specifications](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.2.0/README.md#technical-specifications).{{}} To install the Gateway API resources, run the following: diff --git a/site/content/installation/expose-nginx-gateway-fabric.md b/site/content/installation/expose-nginx-gateway-fabric.md index ecd0251b08..ad39594839 100644 --- a/site/content/installation/expose-nginx-gateway-fabric.md +++ b/site/content/installation/expose-nginx-gateway-fabric.md @@ -23,7 +23,7 @@ This gateway is associated with the NGINX Gateway Fabric through the **gatewayCl To create a **NodePort** service run the following command: ```shell -kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.1.0/deploy/manifests/service/nodeport.yaml +kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.2.0/deploy/manifests/service/nodeport.yaml ``` A **NodePort** service allocates a port on every cluster node. Access NGINX Gateway Fabric using any node's IP address and the allocated port. @@ -37,7 +37,7 @@ To create a **LoadBalancer** service, use the appropriate manifest for your clou 1. Run the following command: ```shell - kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.1.0/deploy/manifests/service/loadbalancer.yaml + kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.2.0/deploy/manifests/service/loadbalancer.yaml ``` 2. Lookup the public IP of the load balancer, which is reported in the `EXTERNAL-IP` column in the output of the following command: @@ -53,7 +53,7 @@ To create a **LoadBalancer** service, use the appropriate manifest for your clou 1. Run the following command: ```shell - kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.1.0/deploy/manifests/service/loadbalancer-aws-nlb.yaml + kubectl apply -f https://raw.githubusercontent.com/nginxinc/nginx-gateway-fabric/v1.2.0/deploy/manifests/service/loadbalancer-aws-nlb.yaml ``` 2. In AWS, the NLB (Network Load Balancer) DNS (directory name system) name will be reported by Kubernetes instead of a public IP in the `EXTERNAL-IP` column. To get the DNS name, run: diff --git a/site/content/installation/installing-ngf/helm.md b/site/content/installation/installing-ngf/helm.md index fc05b6c09f..a3605ca9cd 100644 --- a/site/content/installation/installing-ngf/helm.md +++ b/site/content/installation/installing-ngf/helm.md @@ -265,7 +265,7 @@ Follow these steps to uninstall NGINX Gateway Fabric and Gateway API from your K ## Additional configuration -For a full list of the Helm Chart configuration parameters, read [the NGINX Gateway Fabric Helm Chart](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.1.0/deploy/helm-chart/README.md#configuration). +For a full list of the Helm Chart configuration parameters, read [the NGINX Gateway Fabric Helm Chart](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.2.0/deploy/helm-chart/README.md#configuration). ## Next steps diff --git a/site/content/installation/installing-ngf/manifests.md b/site/content/installation/installing-ngf/manifests.md index 199ca15ba9..a50c585c98 100644 --- a/site/content/installation/installing-ngf/manifests.md +++ b/site/content/installation/installing-ngf/manifests.md @@ -33,7 +33,7 @@ Deploying NGINX Gateway Fabric with Kubernetes manifests takes only a few steps. #### Stable release ```shell - kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.1.0/crds.yaml + kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.2.0/crds.yaml ``` #### Edge version @@ -56,12 +56,12 @@ Deploying NGINX Gateway Fabric with Kubernetes manifests takes only a few steps. ##### For NGINX ```shell - kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.1.0/nginx-gateway.yaml + kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.2.0/nginx-gateway.yaml ``` ##### For NGINX Plus - Download the [deployment YAML](https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.1.0/nginx-plus-gateway.yaml). + Download the [deployment YAML](https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.2.0/nginx-plus-gateway.yaml). Update the `nginx-plus-gateway.yaml` file to include your chosen NGINX Plus image from the F5 Container registry or your custom image. @@ -164,14 +164,14 @@ To upgrade NGINX Gateway Fabric and get the latest features and improvements, ta - To upgrade the Custom Resource Definitions (CRDs), run: ```shell - kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.1.0/crds.yaml + kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.2.0/crds.yaml ``` 1. **Upgrade NGINX Gateway Fabric deployment:** - To upgrade the deployment, run: ```shell - kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.1.0/nginx-gateway.yaml + kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.2.0/nginx-gateway.yaml ``` @@ -234,11 +234,11 @@ Follow these steps to uninstall NGINX Gateway Fabric and Gateway API from your K - To remove NGINX Gateway Fabric and its custom resource definitions (CRDs), run: ```shell - kubectl delete -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.1.0/nginx-gateway.yaml + kubectl delete -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.2.0/nginx-gateway.yaml ``` ```shell - kubectl delete -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.1.0/crds.yaml + kubectl delete -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.2.0/crds.yaml ``` 1. **Remove the Gateway API resources:** diff --git a/site/content/installation/ngf-images/building-the-images.md b/site/content/installation/ngf-images/building-the-images.md index 274decc469..0cf19d1437 100644 --- a/site/content/installation/ngf-images/building-the-images.md +++ b/site/content/installation/ngf-images/building-the-images.md @@ -28,7 +28,7 @@ If building the NGINX Plus image, you will also need a valid NGINX Plus license 1. Clone the repo and change into the `nginx-gateway-fabric` directory: ```shell - git clone https://github.com/nginxinc/nginx-gateway-fabric.git --branch v1.1.0 + git clone https://github.com/nginxinc/nginx-gateway-fabric.git --branch v1.2.0 cd nginx-gateway-fabric ``` @@ -64,20 +64,20 @@ If building the NGINX Plus image, you will also need a valid NGINX Plus license ``` Set the `PREFIX` variable to the name of the registry you'd like to push the image to. By default, the images will be - named `nginx-gateway-fabric:1.1.0` and `nginx-gateway-fabric/nginx:1.1.0` or `nginx-gateway-fabric/nginx-plus:1.1.0`. + named `nginx-gateway-fabric:1.2.0` and `nginx-gateway-fabric/nginx:1.2.0` or `nginx-gateway-fabric/nginx-plus:1.2.0`. 1. Push the images to your container registry: ```shell - docker push myregistry.example.com/nginx-gateway-fabric:1.1.0 - docker push myregistry.example.com/nginx-gateway-fabric/nginx:1.1.0 + docker push myregistry.example.com/nginx-gateway-fabric:1.2.0 + docker push myregistry.example.com/nginx-gateway-fabric/nginx:1.2.0 ``` or ```shell - docker push myregistry.example.com/nginx-gateway-fabric:1.1.0 - docker push myregistry.example.com/nginx-gateway-fabric/nginx-plus:1.1.0 + docker push myregistry.example.com/nginx-gateway-fabric:1.2.0 + docker push myregistry.example.com/nginx-gateway-fabric/nginx-plus:1.2.0 ``` Make sure to substitute `myregistry.example.com/nginx-gateway-fabric` with your registry. diff --git a/site/content/installation/running-on-kind.md b/site/content/installation/running-on-kind.md index e22d602c63..76626670ae 100644 --- a/site/content/installation/running-on-kind.md +++ b/site/content/installation/running-on-kind.md @@ -58,4 +58,4 @@ kubectl -n nginx-gateway port-forward 8080:80 8443:443 ## Getting Started with NGINX Gateway Fabric -Learn how to use NGINX Gateway Fabric by exploring the tutorials in the [examples](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.1.0/examples) directory. The guides provide practical instructions and scenarios to help you use NGINX Gateway Fabric effectively. +Learn how to use NGINX Gateway Fabric by exploring the tutorials in the [examples](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.2.0/examples) directory. The guides provide practical instructions and scenarios to help you use NGINX Gateway Fabric effectively. diff --git a/site/content/overview/gateway-architecture.md b/site/content/overview/gateway-architecture.md index f3fdeeae63..c0ea4e2791 100644 --- a/site/content/overview/gateway-architecture.md +++ b/site/content/overview/gateway-architecture.md @@ -19,7 +19,7 @@ NGINX Gateway Fabric is an open source project that provides an implementation o For a list of supported Gateway API resources and features, see the [Gateway API Compatibility]({{< relref "/overview/gateway-api-compatibility.md" >}}) documentation. -We have more information regarding our [design principles](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.1.0/docs/developer/design-principles.md) in the project's GitHub repository. +We have more information regarding our [design principles](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.2.0/docs/developer/design-principles.md) in the project's GitHub repository. ## NGINX Gateway Fabric at a high level @@ -70,7 +70,7 @@ The following list describes the connections, preceeded by their types in parent 1. (HTTPS) - Read: _NGF_ reads the _Kubernetes API_ to get the latest versions of the resources in the cluster. - - Write: _NGF_ writes to the _Kubernetes API_ to update the handled resources' statuses and emit events. If there's more than one replica of _NGF_ and [leader election](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.1.0/deploy/helm-chart#configuration) is enabled, only the _NGF_ pod that is leading will write statuses to the _Kubernetes API_. + - Write: _NGF_ writes to the _Kubernetes API_ to update the handled resources' statuses and emit events. If there's more than one replica of _NGF_ and [leader election](https://github.com/nginxinc/nginx-gateway-fabric/tree/v1.2.0/deploy/helm-chart#configuration) is enabled, only the _NGF_ pod that is leading will write statuses to the _Kubernetes API_. 1. (HTTP, HTTPS) _Prometheus_ fetches the `controller-runtime` and NGINX metrics via an HTTP endpoint that _NGF_ exposes (`:9113/metrics` by default). Prometheus is **not** required by NGINX Gateway Fabric, and its endpoint can be turned off. 1. (File I/O) - Write: _NGF_ generates NGINX _configuration_ based on the cluster resources and writes them as `.conf` files to the mounted `nginx-conf` volume, located at `/etc/nginx/conf.d`. It also writes _TLS certificates_ and _keys_ from [TLS secrets](https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets) referenced in the accepted Gateway resource to the `nginx-secrets` volume at the path `/etc/nginx/secrets`. @@ -84,7 +84,7 @@ The following list describes the connections, preceeded by their types in parent 1. (File I/O) - Write: The _NGINX master_ writes to the auxiliary Unix sockets folder, which is located in the `/var/lib/nginx` directory. - - Read: The _NGINX master_ reads the `nginx.conf` file from the `/etc/nginx` directory. This [file](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.1.0/internal/mode/static/nginx/conf/nginx.conf) contains the global and http configuration settings for NGINX. In addition, _NGINX master_ reads the NJS modules referenced in the configuration when it starts or during a reload. NJS modules are stored in the `/usr/lib/nginx/modules` directory. + - Read: The _NGINX master_ reads the `nginx.conf` file from the `/etc/nginx` directory. This [file](https://github.com/nginxinc/nginx-gateway-fabric/blob/v1.2.0/internal/mode/static/nginx/conf/nginx.conf) contains the global and http configuration settings for NGINX. In addition, _NGINX master_ reads the NJS modules referenced in the configuration when it starts or during a reload. NJS modules are stored in the `/usr/lib/nginx/modules` directory. 1. (File I/O) The _NGINX master_ sends logs to its _stdout_ and _stderr_, which are collected by the container runtime. 1. (File I/O) An _NGINX worker_ writes logs to its _stdout_ and _stderr_, which are collected by the container runtime. 1. (Signal) The _NGINX master_ controls the [lifecycle of _NGINX workers_](https://nginx.org/en/docs/control.html#reconfiguration) it creates workers with the new configuration and shutdowns workers with the old configuration. diff --git a/tests/Makefile b/tests/Makefile index d7f6cfa103..70e0540107 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,4 +1,4 @@ -TAG = edge +TAG = 1.2.0 PREFIX = nginx-gateway-fabric NGINX_PREFIX = $(PREFIX)/nginx NGINX_PLUS_PREFIX = $(PREFIX)/nginx-plus