-
Notifications
You must be signed in to change notification settings - Fork 152
Add v2 to v3 migration guide #1843
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
Open
nginx-seanmoloney
wants to merge
17
commits into
main
Choose a base branch
from
agent/upgrade-v2-v3-doc
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
3fcf9ac
Add v2 to v3 migration guide
nginx-seanmoloney 1188708
Improve instructions when running with a mounted file
nginx-seanmoloney ab21ecc
Refactor the update page
nginx-seanmoloney e6137ae
docs(agent): migrate v2→v3 upgrade guide; update installation docs; a…
nginx-seanmoloney c6c4de1
Update content/nginx-one-console/agent/install-upgrade/migration/dock…
nginx-seanmoloney 7fa3b98
Update content/nginx-one-console/agent/install-upgrade/migration/dock…
nginx-seanmoloney 1d62582
Update content/nginx-one-console/agent/install-upgrade/migration/dock…
nginx-seanmoloney d014b58
Update content/nginx-one-console/agent/install-upgrade/migration/dock…
nginx-seanmoloney c4a552a
Update content/nginx-one-console/agent/install-upgrade/migration/dock…
nginx-seanmoloney 840ec70
Update content/nginx-one-console/agent/install-upgrade/migration/kube…
nginx-seanmoloney 241c6c1
Update content/nginx-one-console/agent/install-upgrade/update.md
nginx-seanmoloney 2ce3655
Feedback from pr
nginx-seanmoloney 76790e3
Update content/nginx-one-console/agent/install-upgrade/migration/kube…
nginx-seanmoloney c52cb11
Update content/nginx-one-console/agent/install-upgrade/migration/kube…
nginx-seanmoloney b78b317
Update content/nginx-one-console/agent/install-upgrade/migration/vm.md
nginx-seanmoloney 672a005
Update content/nginx-one-console/agent/install-upgrade/migration/vm.md
nginx-seanmoloney 61a6fea
Update content/nginx-one-console/agent/install-upgrade/migration/vm.md
nginx-seanmoloney File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
content/nginx-one-console/agent/install-upgrade/migration/_index.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| --- | ||
| title: Migrate NGINX Agent v2 to v3 | ||
| weight: 590 | ||
| toc: true | ||
| nd-docs: DOCS-1227 | ||
| nd-content-type: how-to | ||
| nd-product: NAGENT | ||
| aliases: | ||
| - /nginx-one-console/agent/install-upgrade/upgrade-v2-v3/ | ||
| --- |
31 changes: 31 additions & 0 deletions
31
.../nginx-one-console/agent/install-upgrade/migration/breaking-changes-overview.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| --- | ||
| title: Breaking Changes | ||
| weight: 590 | ||
| toc: true | ||
| nd-docs: DOCS-1227 | ||
| nd-content-type: how-to | ||
| nd-product: NAGENT | ||
| aliases: | ||
| - /nginx-one-console/agent/install-upgrade/upgrade-v2-v3/ | ||
| --- | ||
|
|
||
| Use this section to choose the environment‑specific guide for migrating from NGINX Agent v2 to NGINX Agent v3. | ||
|
|
||
| {{< call-out class="warning" title="Breaking changes" >}} | ||
|
|
||
| - Environment variables renamed (v2 → v3): | ||
| - NGINX_AGENT_SERVER_HOST → NGINX_AGENT_COMMAND_SERVER_HOST | ||
| - NGINX_AGENT_SERVER_GRPCPORT → NGINX_AGENT_COMMAND_SERVER_PORT | ||
| - NGINX_AGENT_SERVER_TOKEN → NGINX_AGENT_COMMAND_AUTH_TOKEN | ||
| - Ensure the new variables are set correctly before deployment. | ||
| - [Complete list of Agent v3 environment variables:]({{< ref "/nginx-one-console/agent/configure-instances/configuration-overview/" >}}) | ||
|
|
||
|
|
||
| - Config Sync Groups: | ||
| - In v3, apply the label using: NGINX_AGENT_LABELS: config-sync-group=<config-sync-group-name> | ||
| {{< /call-out >}} | ||
|
|
||
| {{< call-out class="caution" title="Plan and test your migration" >}} | ||
| Do not run v2 and v3 concurrently on the same host, pod, or container. Test in a non‑production environment first and schedule a maintenance window for production. | ||
| {{< /call-out >}} | ||
|
|
63 changes: 63 additions & 0 deletions
63
content/nginx-one-console/agent/install-upgrade/migration/docker-compose.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| --- | ||
| title: Migrate with Docker Compose | ||
| toc: true | ||
| weight: 120 | ||
| nd-content-type: how-to | ||
| nd-product: NAGENT | ||
| --- | ||
|
|
||
| ## Before you begin | ||
| - Ensure you have: | ||
| - Docker compose installed | ||
| - Registry credentials (if required) | ||
| - `NGINX_LICENSE_JWT` and the NGINX Agent command auth token (data plane key) | ||
| - Back up your existing docker-compose.yaml. | ||
| - Plan a maintenance window and test this procedure in a non‑production environment first. | ||
|
|
||
| {{< call-out class="caution" title="Do not run v2 and v3 concurrently" >}} | ||
| Do not run NGINX Agent v2 and v3 concurrently in the same container or on the same host. | ||
| {{< /call-out >}} | ||
|
|
||
| ## Migrate | ||
|
|
||
| 1. Update your compose file to use the v3 image and environment variables. Example: | ||
| ```yaml | ||
| version: "3.8" | ||
| services: | ||
| nginx-agent: | ||
| image: <registry>/nginx-plus/agent/debian:<v3-tag> | ||
| environment: | ||
| NGINX_AGENT_COMMAND_SERVER_HOST: agent.connect.nginx.com | ||
| NGINX_AGENT_COMMAND_SERVER_PORT: "443" | ||
| NGINX_AGENT_COMMAND_TLS_SKIP_VERIFY: "false" | ||
| NGINX_AGENT_COMMAND_AUTH_TOKEN: ${NGINX_AGENT_COMMAND_AUTH_TOKEN} | ||
| NGINX_LICENSE_JWT: ${NGINX_LICENSE_JWT} | ||
| # Optional: If using Config Sync Groups | ||
| # NGINX_AGENT_LABELS: config-sync-group=<config-sync-group-name> | ||
| ``` | ||
|
|
||
| 2. Restart the service: | ||
| ```shell | ||
| docker compose down | ||
| docker compose up -d | ||
| ``` | ||
|
|
||
| 3. Validate the migration: | ||
| ```shell | ||
| docker logs <nginx-agent-container-name> | ||
| ``` | ||
| - Look for: msg="Agent connected" | ||
| - Verify the instance is Online in the NGINX One Console. | ||
|
|
||
| ## Rollback | ||
|
|
||
| - Restore the previous docker-compose.yaml and run: | ||
| ```shell | ||
| docker compose down && docker compose up -d | ||
| ``` | ||
|
|
||
| ## References | ||
|
|
||
| - [Agent v3 environment variables:]({{< ref "/nginx-one-console/agent/configure-instances/configuration-overview/" >}}) | ||
| - [Docker images:]({{< ref "https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/" >}}) | ||
| - Config conversion script: https://raw.githubusercontent.com/nginx/agent/v3/scripts/packages/upgrade-agent-config.sh |
65 changes: 65 additions & 0 deletions
65
content/nginx-one-console/agent/install-upgrade/migration/docker-standalone.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| --- | ||
| title: Migrate in a Docker container | ||
| toc: true | ||
| weight: 130 | ||
| nd-content-type: how-to | ||
| nd-product: NAGENT | ||
| --- | ||
|
|
||
| ## Before you begin | ||
| - Ensure you have: | ||
| - Docker installed | ||
| - Registry access for agent v3 images. | ||
| - NGINX_LICENSE_JWT and the NGINX Agent command auth token (data plane key). | ||
| - Plan a maintenance window and test this procedure in a non‑production environment first. | ||
|
|
||
| {{< call-out class="caution" title="Do not run v2 and v3 concurrently" >}} | ||
| Do not run NGINX Agent v2 and v3 concurrently in the same container or on the same host. | ||
| {{< /call-out >}} | ||
|
|
||
| ## Migrate | ||
|
|
||
| 1. Pull the v3 image: | ||
| ```shell | ||
| docker pull <registry>/nginx-plus/agentv3:debian | ||
| ``` | ||
|
|
||
| 2. Run the container: | ||
| ```shell | ||
| docker run -d \ | ||
| --restart=always \ | ||
| -e NGINX_LICENSE_JWT="<jwt>" \ | ||
| -e NGINX_AGENT_COMMAND_SERVER_HOST=agent.connect.nginx.com \ | ||
| -e NGINX_AGENT_COMMAND_SERVER_PORT=443 \ | ||
| -e NGINX_AGENT_COMMAND_AUTH_TOKEN="<data-plane-key>" \ | ||
| -e NGINX_AGENT_COMMAND_TLS_SKIP_VERIFY=false \ | ||
| <registry>/nginx-plus/agentv3:debian | ||
| ``` | ||
|
|
||
| 3. (Optional) Convert a mounted v2 config file to v3: | ||
| ```shell | ||
| wget https://raw.githubusercontent.com/nginx/agent/v3/scripts/packages/upgrade-agent-config.sh | ||
| chmod +x upgrade-agent-config.sh | ||
| ./upgrade-agent-config.sh --v2-config-file=./nginx-agent-v2.conf --v3-config-file=./nginx-agent-v3.conf | ||
| ``` | ||
| - If you used Config Sync Groups in v2, add to the v3 config: | ||
| - NGINX_AGENT_LABELS=config-sync-group=<config-sync-group-name> | ||
|
|
||
| ## Validate | ||
|
|
||
| - Check logs for a successful connection message: | ||
| ```shell | ||
| docker logs <container> | ||
| ``` | ||
| - Look for: msg="Agent connected" | ||
| - Verify the instance is Online in the NGINX One Console. | ||
|
|
||
| ## Rollback | ||
|
|
||
| - Stop/remove the v3 container and run the previous v2 image. | ||
|
|
||
| ## References | ||
|
|
||
| - [Agent v3 environment variables:]({{< ref "/nginx-one-console/agent/configure-instances/configuration-overview/" >}}) | ||
| - [Docker images:]({{< ref "https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/" >}}) | ||
| - Config conversion script: https://raw.githubusercontent.com/nginx/agent/v3/scripts/packages/upgrade-agent-config.sh |
102 changes: 102 additions & 0 deletions
102
content/nginx-one-console/agent/install-upgrade/migration/kubernetes.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,102 @@ | ||
| --- | ||
| title: Migrate on Kubernetes | ||
| toc: true | ||
| weight: 110 | ||
| nd-content-type: how-to | ||
| nd-product: NAGENT | ||
| --- | ||
|
|
||
| ## Before you begin | ||
| - Ensure you have: | ||
| - kubectl context set to the target cluster and namespace. | ||
| - Permissions to deploy to the namespace. | ||
| - Required registry credentials available. | ||
| - A Secret for NGINX_LICENSE_JWT or that you can create one. | ||
| - Plan a maintenance window and test in a non‑production environment first. | ||
|
|
||
| - kubectl context is set to the target cluster and namespace. | ||
| - You have permissions to deploy to the namespace. | ||
| - Registry credentials are available if required. | ||
| - A Secret exists for NGINX_LICENSE_JWT or you can create one. | ||
| - Plan a maintenance window and test in a non‑production environment first. | ||
|
|
||
| {{< call-out class="caution" title="Do not run v2 and v3 concurrently" >}} | ||
| Do not run NGINX Agent v2 and v3 in the same pod or on the same node as part of the migration. | ||
| {{< /call-out >}} | ||
|
|
||
| ## Migrate | ||
|
|
||
| 1. Prepare the Deployment manifest for NGINX Agent v3. Example: | ||
| ```yaml | ||
| apiVersion: apps/v1 | ||
| kind: Deployment | ||
| metadata: | ||
| name: nginx-agent | ||
| namespace: <namespace> | ||
| spec: | ||
| replicas: 1 | ||
| selector: | ||
| matchLabels: | ||
| app: nginx-agent | ||
| template: | ||
| metadata: | ||
| labels: | ||
| app: nginx-agent | ||
| spec: | ||
| containers: | ||
| - name: nginx-agent | ||
| image: <registry>/nginx-plus/agent/debian:<v3-tag> | ||
| env: | ||
| - name: NGINX_AGENT_COMMAND_SERVER_HOST | ||
| value: "agent.connect.nginx.com" | ||
| - name: NGINX_AGENT_COMMAND_SERVER_PORT | ||
| value: "443" | ||
| - name: NGINX_AGENT_COMMAND_TLS_SKIP_VERIFY | ||
| value: "false" | ||
| - name: NGINX_AGENT_COMMAND_AUTH_TOKEN | ||
| value: "<auth-token>" | ||
| - name: NGINX_LICENSE_JWT | ||
| valueFrom: | ||
| secretKeyRef: | ||
| name: nginx-secret | ||
| key: NGINX_LICENSE_JWT | ||
| # Optional: If using Config Sync Groups | ||
| # - name: NGINX_AGENT_LABELS | ||
| # value: "config-sync-group=<config-sync-group-name>" | ||
| ``` | ||
|
|
||
| 2. Apply the Deployment and monitor the rollout: | ||
| ```shell | ||
| kubectl apply -n <namespace> -f nginx-agent-v3-deployment.yaml | ||
| kubectl rollout status deployment/nginx-agent -n <namespace> | ||
| ``` | ||
|
|
||
| 3. Validate the replacement: | ||
| ```shell | ||
| kubectl get pods -n <namespace> | ||
| kubectl logs <pod-name> -n <namespace> | ||
| ``` | ||
| - Look for: msg="Agent connected" in the logs. | ||
|
|
||
| 4. Verify in NGINX One Console: | ||
| - The instance appears Online in the Instances view. | ||
| - If using Config Sync Groups, confirm group members are Online. | ||
|
|
||
| ## Troubleshoot | ||
|
|
||
| - Describe the pod to verify env vars and image tag: | ||
| ```shell | ||
| kubectl describe pod <pod-name> -n <namespace> | ||
| ``` | ||
|
|
||
| ## Rollback | ||
|
|
||
| - Reapply the previous v2 Deployment manifest: | ||
| ```shell | ||
| kubectl apply -f nginx-agent-v2-deployment.yaml | ||
| ``` | ||
|
|
||
| ## References | ||
| - [Agent v3 environment variables:]({{< ref "/nginx-one-console/agent/configure-instances/configuration-overview/" >}}) | ||
| - [Docker images:]({{< ref "https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/" >}}) | ||
| - Config conversion script: https://raw.githubusercontent.com/nginx/agent/v3/scripts/packages/upgrade-agent-config.sh | ||
63 changes: 63 additions & 0 deletions
63
content/nginx-one-console/agent/install-upgrade/migration/vm.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,63 @@ | ||||||
| --- | ||||||
| title: Migrate on VMs (RPM/DEB) | ||||||
| toc: true | ||||||
| weight: 100 | ||||||
| nd-content-type: how-to | ||||||
| nd-product: NAGENT | ||||||
| --- | ||||||
|
|
||||||
| ## Before you begin | ||||||
|
|
||||||
| - Ensure you have the following: | ||||||
| - NGINX_LICENSE_JWT | ||||||
| - NGINX Agent command auth token (data plane key) | ||||||
| - Repository access and package manager permissions for your distribution | ||||||
| - Back up configuration: | ||||||
| - /etc/nginx-agent | ||||||
| - Every configuration directory specified as a `config_dirs` value in /etc/nginx-agent/nginx-agent.conf | ||||||
| - Plan a maintenance window and test this procedure in a non‑production environment first. | ||||||
|
|
||||||
| {{< call-out class="caution" title="Do not run v2 and v3 concurrently" >}} | ||||||
| Do not run NGINX Agent v2 and v3 concurrently on the same host. | ||||||
| {{< /call-out >}} | ||||||
|
|
||||||
| ## Migrate | ||||||
|
|
||||||
| 1. If you are using a version older than NGINX Agent v2.31.0, stop the agent before upgrading and start it again after the upgrade. | ||||||
| - sudo systemctl stop nginx-agent | ||||||
|
|
||||||
| 2. Upgrade the package to v3. | ||||||
| - CentOS, RHEL (RPM‑based): | ||||||
| ```shell | ||||||
| sudo yum -y makecache | ||||||
| sudo yum update -y nginx-agent | ||||||
| ``` | ||||||
| - Debian, Ubuntu (DEB‑based): | ||||||
| ```shell | ||||||
| sudo apt-get update | ||||||
| sudo apt-get install -y --only-upgrade nginx-agent -o Dpkg::Options::="--force-confold" | ||||||
| ``` | ||||||
|
|
||||||
| 3. If you are using a config file, ensure required values are present. If you used Config Sync Groups in v2, add the following label in v3: | ||||||
| - NGINX_AGENT_LABELS: config-sync-group=<config-sync-group-name> | ||||||
|
|
||||||
| ## Validate | ||||||
|
|
||||||
| - Check service status and logs for a successful connection, for example: msg="Agent connected". | ||||||
| - Verify the instance appears Online in the NGINX One Console. | ||||||
|
|
||||||
| ## Troubleshoot | ||||||
|
|
||||||
| - Review the nginx-agent service status and logs for authentication or configuration errors. | ||||||
| - View logs by running: `sudo journalctl -u nginx-agent -xe` | ||||||
| - Confirm that credentials (NGINX_LICENSE_JWT, data plane key) are valid. | ||||||
|
|
||||||
| ## Rollback | ||||||
|
|
||||||
| - Reinstall the previous v2 package and restore your configuration backup if required. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done! |
||||||
|
|
||||||
| ## References | ||||||
|
|
||||||
| - [Agent v3 environment variables:]({{< ref "/nginx-one-console/agent/configure-instances/configuration-overview/" >}}) | ||||||
| - [Docker images:]({{< ref "https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/" >}}) | ||||||
| - Config conversion script: https://raw.githubusercontent.com/nginx/agent/v3/scripts/packages/upgrade-agent-config.sh | ||||||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.