diff --git a/.github/CHANGELOG_TEMPLATE.md b/.github/CHANGELOG_TEMPLATE.md index 1c6c08c8c..a943fd9c5 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 498b8cd38..7d52b30c7 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 24d147134..47b53df64 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 0014c2746..a00f452cb 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 b5d29aca3..e1e59d0ea 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 dcdfb1b70..40369b8ce 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 5862ee37e..fcdd1b046 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 58396a2a0..e5157831c 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 7285ae509..6580304d5 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 c0dbe5eb6..28fdc25d8 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 7cf291288..4936d7982 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 933e66d4e..56d415c7a 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 88b5249c3..b3095b4fb 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 e0de54f54..4c0bb5ee0 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 ab64f656c..e3b024c4e 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 660a23657..01d690642 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 83c236da7..e951a3ac1 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 39616ca5c..730708592 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 7cf1fba8e..92f3a270e 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 5ab5aae8e..75585d846 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 ecd0251b0..ad3959483 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 fc05b6c09..a3605ca9c 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 199ca15ba..a50c585c9 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 274decc46..0cf19d143 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 e22d602c6..76626670a 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 f3fdeeae6..c0ea4e279 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 d7f6cfa10..70e054010 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