Skip to content
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

[DX-1047] Upgrade Guides #4102

Draft
wants to merge 56 commits into
base: master
Choose a base branch
from
Draft

[DX-1047] Upgrade Guides #4102

wants to merge 56 commits into from

Conversation

dcs3spp
Copy link
Contributor

@dcs3spp dcs3spp commented Feb 7, 2024

For internal users - Please add a Jira DX PR ticket to the subject!


DX-1047

Preview Link

Draft Overview
Upgrade PreRequisites
Upgrade Strategy
Self Managed Go Plugins
Self Managed Debian
Self Managed RPM
Hybrid
Cloud Saas

Description


This PR adds the template structure for adding the Go plugins upgrade documents. For quicker review and release a separate PR will be created for the other deployment upgrade guides

Screenshots (if appropriate)


Checklist

  • I have added a preview link to the PR description.
  • I have reviewed the guidelines for contributing to this repository.
  • I have read the technical guidelines for contributing to this repository.
  • Make sure you have started your change off our latest master.
  • I labelled the PR

Copy link

netlify bot commented Feb 7, 2024

PS. Pls add /docs/nightly to the end of url

Name Link
🔨 Latest commit 5cd0f8c
🔍 Latest deploy log https://app.netlify.com/sites/tyk-docs/deploys/65c3c19db81d9a000793bfec
😎 Deploy Preview https://deploy-preview-4102--tyk-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

netlify bot commented Feb 7, 2024

PS. Pls add /docs/nightly to the end of url

Name Link
🔨 Latest commit c621fce
🔍 Latest deploy log https://app.netlify.com/sites/tyk-docs/deploys/66439398f248380008c95392
😎 Deploy Preview https://deploy-preview-4102--tyk-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@dcs3spp dcs3spp changed the title [DX-1047] Add template structure for Go Plugins [DX-1047] Add template structure for Go Plugins Upgrade Guides Feb 13, 2024
@dcs3spp
Copy link
Contributor Author

dcs3spp commented Feb 15, 2024

@allaneyles To facilitate reviewing the PR queue we are closing some PRs that are in draft status, e.g. awaiting docker images, videos, images etc. You can still update the PR and then open it again when ready for review.

cc: @letzya

@dcs3spp dcs3spp closed this Feb 15, 2024
@dcs3spp dcs3spp reopened this Feb 27, 2024
Copy link
Contributor Author

@dcs3spp dcs3spp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @allaneyles @Fadzli-fast @Monica-Cedeno @nerdydread I have had a read through upgrade guides and content looks good! Review comments so far:

Self-Managed Custom Go Plugins

  • Section headings do not match up with the version range in the table
  • Are there some steps missing in bundling the plugins section:
    • Upload the plugin bundle to a webserver
    • Configure Gateway to download plugins from the webserver
    • Add the plugin bundle filename (e.g. my-plugin-bundle.zip) as the ID in the Advanced options for an API in the Dashboard screen
  • Should the bundling guide be included for each go plugin initialisation sections rather than just the section for versions > 5.1?

Pre-upgrade checks

  • For this line Was Tyk deployed via a repository or .rpm (specifically for CentOS or RHEL)? Do you mean a package repository or an RPM file?
  • For this line _Is the targeted version available on packagecloud.io or the intended version?_

Should this read "is the targeted version available on packagecloud.io or in local package repository?"


Upgrade Strategy

  • For this paragraph A VM snapshot is a good way to replicate the environment but you may use other methods such as a new deployment process or the blue environment. If the latter is your choice, you may skip this manual and follow the deployment instructions on our documentation - https://tyk.io/docs
    • Should blue environment be removed from this sentence since it is not a method to replicate the environment, e.g. the blue environment could itself be produced from a virtual machine snapshot.

    • What is the deployment document that you wish to link to? Currently the PR links to https://tyk.io/docs?

Self-Managed RPM & DEB Guides

  • What is the action of the target package version step in the guide?
  • Images of building bundles, available versions of Tyk components are difficult to read.

Self Managed Hybrid

  • Awaiting content to review

Cloud Saas

  • Add supporting images to the guide
  • Does the Go Plugins table match the section headings?
  • Is there a guide that can link to for how to upgrade the Tyk Data Plane (Gateway)

I have refactored the structure in a separate PR, with a preview link available here for review. It creates separate pages for upgrade checklist, self-managed custom plugins and upgrade strategy to prevent duplicate content. If approved I can merge the suggested/reviewed structure into this PR.

@dcs3spp dcs3spp mentioned this pull request Mar 4, 2024
5 tasks
@dcs3spp dcs3spp changed the title [DX-1047] Add template structure for Go Plugins Upgrade Guides [DX-1047] Upgrade Guides Mar 4, 2024
Simon Pears and others added 7 commits April 3, 2024 17:29
* draft commit to refactor upgrading Tyk
* update upgrading tyk structure
* refactor upgrading tyk to link to new guides
* add link to backup guide in prequisites
* reorder important information steps

---------

Co-authored-by: Simon Pears <[email protected]>
The sections below explain how to upgrade Tyk Gateway on:
- [Docker](#docker)
- [Kubernetes](#k8s)
- [Linux](#linux)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we put the above in the same order of the content below?

Copy link
Collaborator

@letzya letzya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

per my comment below the current upgrading tyk guide needs to be looked at. Currently it feels like it's disconnected from the new content.

Also please rebase the PR

@@ -181,79 +186,6 @@ Instructions for upgrading Tyk gateway. You should follow the same flow for Tyk
<br>
Check the [helm upgrade docs](https://helm.sh/docs/helm/helm_upgrade/) for more details on the `upgrade` command.


### Other installation choices
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is this content? what is the purpose of this page? if it's an overview, shouldn't we have links to the content that was moved out of this page to another place?

Why did we leave k8s, help and docker but took out the rest?

This page provides guidance for upgrading your Tyk installation. When upgrading Tyk, you need to consider each component (e.g. Gateway, Pump, Dashboard) separately, taking into account the deployment style you've implemented. We have structured this guide by deployment type (e.g. Cloud, Self-Managed, etc.) to keep all the information you need in one place.

## Important to know
All our components adhere to a few common standards:
Copy link
Collaborator

@letzya letzya Jun 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
All our components adhere to a few common standards:
## Upgrade standards and recommendations
All our components adhere to a few common standards:


## Next Steps {#next-steps}

Consult our [upgrade strategy]({{< ref "developer-support/upgrading-tyk/upgrade-strategy" >}}) guidelines to help you decide between a [Rolling]({{< ref "developer-support/upgrading-tyk/upgrade-strategy#rolling-upgrade" >}}) or [Blue-Green]({{< ref "developer-support/upgrading-tyk/upgrade-strategy#blue-green" >}}) upgrade.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Consult our [upgrade strategy]({{< ref "developer-support/upgrading-tyk/upgrade-strategy" >}}) guidelines to help you decide between a [Rolling]({{< ref "developer-support/upgrading-tyk/upgrade-strategy#rolling-upgrade" >}}) or [Blue-Green]({{< ref "developer-support/upgrading-tyk/upgrade-strategy#blue-green" >}}) upgrade.
Review our [upgrade strategy guidelines]({{< ref "developer-support/upgrading-tyk/upgrade-strategy" >}}) to decide between a [Rolling]({{< ref "developer-support/upgrading-tyk/upgrade-strategy#rolling-upgrade" >}}) or [Blue-Green]({{< ref "developer-support/upgrading-tyk/upgrade-strategy#blue-green" >}}) upgrade.


| Platform | Guide | Description |
| ---------------- | ---------------- | ----------- |
| Tyk Cloud | [Cloud SaaS]({{< ref "developer-support/upgrading-tyk/cloud/cloud-saas" >}}) | Guide for Tyk Cloud SaaS (Software As A Service) |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dcs3spp Not sure I don't get this. Why we have only linux here? where's docker and k8s?

- Redis instance
- Tyk Pump (optional)

After reviewing your [upgrade pre-requisites]({{< ref "developer-support/upgrading-tyk/upgrade-prerequisites" >}}),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why pre-requisites and not prerequisites?

@@ -0,0 +1,36 @@
---
title: "Upgrade Pre-Requisites"
Copy link
Collaborator

@letzya letzya Jun 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's is read more as "Pre Upgrade Considerations" than "Upgrade Pre-Requisites" to me, or maybe both? "Pre Upgrade Considerations and requirements". What do you think


| Upgrade Path | Current Version | Target Version |
| ---- | --------------- | -------------- |
| [1](#path-1) | < 4.1.0 | < 4.1.0 |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| [1](#path-1) | < 4.1.0 | < 4.1.0 |
| [Path 1](#path-1) | < 4.1.0 | < 4.1.0 |

| Upgrade Path | Current Version | Target Version |
| ---- | --------------- | -------------- |
| [1](#path-1) | < 4.1.0 | < 4.1.0 |
| [2](#path-2) | < 4.1.0 | \>= 4.1.0 |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| [2](#path-2) | < 4.1.0 | \>= 4.1.0 |
| [Path 2](#path-2) | < 4.1.0 | \>= 4.1.0 |

| ---- | --------------- | -------------- |
| [1](#path-1) | < 4.1.0 | < 4.1.0 |
| [2](#path-2) | < 4.1.0 | \>= 4.1.0 |
| [3](#path-3) | \>= 4.1.0 | \>=5.1.0 |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| [3](#path-3) | \>= 4.1.0 | \>=5.1.0 |
| [Path 3](#path-3) | \>= 4.1.0 | \>=5.1.0 |

go mod vendor
```

3. Download the plugin compiler for the target version you’re upgrading to (e.g. 4.0.9). See the Tyk Docker Hub [repo](https://hub.docker.com/r/tykio/tyk-plugin-compiler) for available versions.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. Download the plugin compiler for the target version you’re upgrading to (e.g. 4.0.9). See the Tyk Docker Hub [repo](https://hub.docker.com/r/tykio/tyk-plugin-compiler) for available versions.
3. Download the plugin compiler for the target version you’re upgrading to (e.g. 4.0.9). See the Tyk Docker Hub [repo](https://hub.docker.com/r/tykio/tyk-plugin-compiler/tags) for available versions.

go mod vendor
```

3. Download the plugin compiler for the target version you’re upgrading to (e.g. 4.0.9). See the Tyk Docker Hub [repo](https://hub.docker.com/r/tykio/tyk-plugin-compiler) for available versions.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. Download the plugin compiler for the target version you’re upgrading to (e.g. 4.0.9). See the Tyk Docker Hub [repo](https://hub.docker.com/r/tykio/tyk-plugin-compiler) for available versions.
3. Download the plugin compiler for the target version you’re upgrading to (e.g. for v5.3 `docker pull tykio/tyk-plugin-compiler:v5.3`). See the Tyk Docker Hub [repo](https://hub.docker.com/r/tykio/tyk-plugin-compiler) for available versions.

```

3. Download the plugin compiler for the target version you’re upgrading to (e.g. 4.0.9). See the Tyk Docker Hub [repo](https://hub.docker.com/r/tykio/tyk-plugin-compiler) for available versions.
4. [Compile]({{< ref "plugins/supported-languages/golang#building-the-plugin">}}) your plugin using this compiler
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dcs3spp can we give a better link? more direct to the compile command?


## Upgrade Guide Video

Please refer to our supporting [video](https://tyk-1.wistia.com/medias/t0oamm63ae) below for further guidance.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it "further guidance" ?


## Upgrade Guide Video

Please refer to our supporting [video](https://tyk-1.wistia.com/medias/t0oamm63ae) below for further guidance.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Please refer to our supporting [video](https://tyk-1.wistia.com/medias/t0oamm63ae) below for further guidance.
Please refer to our [upgrade guide video](https://tyk-1.wistia.com/medias/t0oamm63ae) below for visual guidance:


6. [Upload this bundle]({{< ref "tyk-cloud/configuration-options/using-plugins/uploading-bundle" >}}) to your configured S3 bucket.
7. Update the [custom_middleware_bundle]({{< ref "plugins/how-to-serve-plugins/plugin-bundles#per-api--local-parameters" >}}) field in the API Definitions of all APIs that use your plugin. The field should be updated to use the new bundle file you created in step 5.
8. Validate that your plugin is working per your expectations as at this stage, your Gateway will be running the plugin for your current version still.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
8. Validate that your plugin is working per your expectations as at this stage, your Gateway will be running the plugin for your current version still.
8. Ensure that your plugin is functioning as expected, as at this stage, your Gateway will still be running the plugin for the current version.

- MongoDB
- Redis (Master Instance)
- Management Gateway
- MDCB
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why don't we call it "control plane"?

## 1. Upgrade your Control Plane
See Tyk Guide for how to [Upgrade Control Planes]({{< ref "tyk-cloud/environments-&-deployments/managing-control-planes#upgrade-control-planes" >}})

## 2. Upgrade your Go Plugins
Copy link
Collaborator

@letzya letzya Jun 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dcs3spp we need to underatand from Travis why this info is repeated in saas and hybrid. Do we have to have duplicated content? I'd rather having a page "upgrade Tyk compiler".

For example, step 8 that I improved in the other page, now needs to be improved here. Duplicated content is a very bad idea


## 3. Upgrade your Data Plane Hybrid Gateway(s){#upgrading-data-plane-hybrid-gateways}
Follow the instructions for component deployment type:
- **Docker**
Copy link
Collaborator

@letzya letzya Jun 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

now we have this section and also this page https://deploy-preview-4102--tyk-docs.netlify.app/docs/nightly/developer-support/upgrading-tyk/other-upgrade-options/docker/ - they essentially do the same thing. Can you please improve this to avoid dup of content? same for helm.

Same for Linux distro. We have content her but also a separate page for it https://deploy-preview-4102--tyk-docs.netlify.app/docs/nightly/developer-support/upgrading-tyk/self-managed/linux-distributions/self-managed-rpm/


In a production environment, where we recommend installing the Dashboard, Gateway, and Pump on separate machines, you should upgrade components in the following sequence:

1. Tyk Gateway
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dcs3spp The order here is not consistent with the order we currently have in our docs.

Copy link
Collaborator

@letzya letzya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dcs3spp Added a few comments. Also the order of the upgrade in self managed is not consistent.
Could you kindly check why and re-review the whole content in holistic way to make sure the rest is consistent, the guide is flowing and the navigation makes sense (currently it needs work)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants