diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 4f9094f48f..defb7c4da6 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -1,8 +1,2 @@ The maintainers of the Linkerd website are the Linkerd maintainers listed in -https://github.com/linkerd/linkerd2/blob/main/MAINTAINERS.md, plus: - -- Paul Michael Armstrong (@PaulMichaelArmstrong) -- Charles Pretzer (@cpretzer) -- William Morgan (@wmorgan) - -If you'd like to become a maintainer, just come talk to us! +https://github.com/linkerd/linkerd2/blob/main/MAINTAINERS.md. diff --git a/linkerd.io/.htmltest.yml b/linkerd.io/.htmltest.yml index ca0c87b84e..ef55bda507 100644 --- a/linkerd.io/.htmltest.yml +++ b/linkerd.io/.htmltest.yml @@ -23,6 +23,7 @@ IgnoreURLs: - https://godaddy.com/ - https://www.linkedin.com/ - https://tools.ietf.org/ + - ^/2/* DirectoryPath: public TestFilesConcurrently: true DocumentConcurrencyLimit: 16 diff --git a/linkerd.io/content/2-edge/tasks/distributed-tracing.md b/linkerd.io/content/2-edge/tasks/distributed-tracing.md index ad532d71d0..4fb66ff3e7 100644 --- a/linkerd.io/content/2-edge/tasks/distributed-tracing.md +++ b/linkerd.io/content/2-edge/tasks/distributed-tracing.md @@ -209,7 +209,7 @@ The YAML file is merged with the [Helm values.yaml][helm-values] which shows other possible values that can be configured. -[helm-values]: https://github.com/linkerd/linkerd2/blob/stable-{{% latest-linkerd2-stable-version %}}.0/jaeger/charts/linkerd-jaeger/values.yaml +[helm-values]: https://github.com/linkerd/linkerd2/blob/main/jaeger/charts/linkerd-jaeger/values.yaml It is also possible to manually edit the OpenCensus configuration to have it export to any backend which it supports. See the diff --git a/linkerd.io/content/2.11/tasks/distributed-tracing.md b/linkerd.io/content/2.11/tasks/distributed-tracing.md index 3c7431709f..453c92c194 100644 --- a/linkerd.io/content/2.11/tasks/distributed-tracing.md +++ b/linkerd.io/content/2.11/tasks/distributed-tracing.md @@ -207,7 +207,7 @@ The YAML file is merged with the [Helm values.yaml][helm-values] which shows other possible values that can be configured. -[helm-values]: https://github.com/linkerd/linkerd2/blob/stable-{{% latest-linkerd2-stable-version %}}.0/jaeger/charts/linkerd-jaeger/values.yaml +[helm-values]: https://github.com/linkerd/linkerd2/blob/main/jaeger/charts/linkerd-jaeger/values.yaml It is also possible to manually edit the OpenCensus configuration to have it export to any backend which it supports. See the diff --git a/linkerd.io/content/2.12/tasks/distributed-tracing.md b/linkerd.io/content/2.12/tasks/distributed-tracing.md index 3d673a2c3d..b18d5c1c89 100644 --- a/linkerd.io/content/2.12/tasks/distributed-tracing.md +++ b/linkerd.io/content/2.12/tasks/distributed-tracing.md @@ -207,7 +207,7 @@ The YAML file is merged with the [Helm values.yaml][helm-values] which shows other possible values that can be configured. -[helm-values]: https://github.com/linkerd/linkerd2/blob/stable-{{% latest-linkerd2-stable-version %}}.0/jaeger/charts/linkerd-jaeger/values.yaml +[helm-values]: https://github.com/linkerd/linkerd2/blob/main/jaeger/charts/linkerd-jaeger/values.yaml It is also possible to manually edit the OpenCensus configuration to have it export to any backend which it supports. See the diff --git a/linkerd.io/content/2.13/tasks/distributed-tracing.md b/linkerd.io/content/2.13/tasks/distributed-tracing.md index ad532d71d0..4fb66ff3e7 100644 --- a/linkerd.io/content/2.13/tasks/distributed-tracing.md +++ b/linkerd.io/content/2.13/tasks/distributed-tracing.md @@ -209,7 +209,7 @@ The YAML file is merged with the [Helm values.yaml][helm-values] which shows other possible values that can be configured. -[helm-values]: https://github.com/linkerd/linkerd2/blob/stable-{{% latest-linkerd2-stable-version %}}.0/jaeger/charts/linkerd-jaeger/values.yaml +[helm-values]: https://github.com/linkerd/linkerd2/blob/main/jaeger/charts/linkerd-jaeger/values.yaml It is also possible to manually edit the OpenCensus configuration to have it export to any backend which it supports. See the diff --git a/linkerd.io/content/2.14/tasks/distributed-tracing.md b/linkerd.io/content/2.14/tasks/distributed-tracing.md index ad532d71d0..4fb66ff3e7 100644 --- a/linkerd.io/content/2.14/tasks/distributed-tracing.md +++ b/linkerd.io/content/2.14/tasks/distributed-tracing.md @@ -209,7 +209,7 @@ The YAML file is merged with the [Helm values.yaml][helm-values] which shows other possible values that can be configured. -[helm-values]: https://github.com/linkerd/linkerd2/blob/stable-{{% latest-linkerd2-stable-version %}}.0/jaeger/charts/linkerd-jaeger/values.yaml +[helm-values]: https://github.com/linkerd/linkerd2/blob/main/jaeger/charts/linkerd-jaeger/values.yaml It is also possible to manually edit the OpenCensus configuration to have it export to any backend which it supports. See the diff --git a/linkerd.io/content/2.15/getting-started/_index.md b/linkerd.io/content/2.15/getting-started/_index.md index cba8805f0d..4083e74f3a 100644 --- a/linkerd.io/content/2.15/getting-started/_index.md +++ b/linkerd.io/content/2.15/getting-started/_index.md @@ -23,11 +23,7 @@ install the *CLI* (command-line interface) onto your local machine. Using this CLI, you'll then install the *control plane* onto your Kubernetes cluster. Finally, you'll "mesh" an application by adding Linkerd's *data plane* to it. -{{< note >}} -This page contains quick start instructions intended for non-production -installations. For production-oriented configurations, we suggest reviewing -resources in [Going to Production](/going-to-production/). -{{< /note >}} +{{< releases >}} ## Step 0: Setup diff --git a/linkerd.io/content/2.15/reference/helm-chart-version-matrix.md b/linkerd.io/content/2.15/reference/helm-chart-version-matrix.md new file mode 100644 index 0000000000..5785c30ab3 --- /dev/null +++ b/linkerd.io/content/2.15/reference/helm-chart-version-matrix.md @@ -0,0 +1,13 @@ ++++ +title = "Helm Chart Version Matrix" ++++ + +The following version matrices include only the latest versions of the stable +releases along with corresponding app and Helm versions for Linkerd and +extensions. Use these to guide you to the right Helm chart version or to +automate workflows you might have. + +* [YAML matrix](/releases/release_matrix.yaml) +* [JSON matrix](/releases/release_matrix.json) + +{{< release-data-table />}} diff --git a/linkerd.io/content/2.15/tasks/distributed-tracing.md b/linkerd.io/content/2.15/tasks/distributed-tracing.md index ad532d71d0..4fb66ff3e7 100644 --- a/linkerd.io/content/2.15/tasks/distributed-tracing.md +++ b/linkerd.io/content/2.15/tasks/distributed-tracing.md @@ -209,7 +209,7 @@ The YAML file is merged with the [Helm values.yaml][helm-values] which shows other possible values that can be configured. -[helm-values]: https://github.com/linkerd/linkerd2/blob/stable-{{% latest-linkerd2-stable-version %}}.0/jaeger/charts/linkerd-jaeger/values.yaml +[helm-values]: https://github.com/linkerd/linkerd2/blob/main/jaeger/charts/linkerd-jaeger/values.yaml It is also possible to manually edit the OpenCensus configuration to have it export to any backend which it supports. See the diff --git a/linkerd.io/content/2.15/tasks/install-helm.md b/linkerd.io/content/2.15/tasks/install-helm.md index b604602aea..0628274ef2 100644 --- a/linkerd.io/content/2.15/tasks/install-helm.md +++ b/linkerd.io/content/2.15/tasks/install-helm.md @@ -6,43 +6,34 @@ description = "Install Linkerd onto your Kubernetes cluster using Helm." Linkerd can be installed via Helm rather than with the `linkerd install` command. This is recommended for production, since it allows for repeatability. -{{< trylpt >}} +{{< releases >}} -## Prerequisite: generate identity certificates +## Prerequisite: generate mTLS certificates To do [automatic mutual TLS](../../features/automatic-mtls/), Linkerd requires trust anchor certificate and an issuer certificate and key pair. When you're -using `linkerd install`, we can generate these for you. However, for Helm, -you will need to generate these yourself. +using `linkerd install`, we can generate these for you. However, for Helm, you +will need to generate these yourself. -Please follow the instructions in [Generating your own mTLS root -certificates](../generate-certificates/) to generate these. +Please follow the instructions in +[Generating your own mTLS root certificates](../generate-certificates/) to +generate these. -## Helm install procedure for stable releases +## Helm install procedure ```bash -# To add the repo for Linkerd stable releases: -helm repo add linkerd https://helm.linkerd.io/stable - -# To add the repo for Linkerd edge releases: +# Add the Helm repo for Linkerd edge releases: helm repo add linkerd-edge https://helm.linkerd.io/edge ``` -The following instructions use the `linkerd` repo. For installing an edge -release, just replace with `linkerd-edge`, and add the `--devel` flag to all -commands. - -## Helm install procedure - You need to install two separate charts in succession: first `linkerd-crds` and then `linkerd-control-plane`. -{{< note >}} -If installing Linkerd in a cluster that uses Cilium in kube-proxy replacement -mode, additional steps may be needed to ensure service discovery works as -intended. Instrunctions are on the [Cilium cluster -configuration](../../reference/cluster-configuration/#cilium) page. -{{< /note >}} +{{< note >}} If installing Linkerd in a cluster that uses Cilium in kube-proxy +replacement mode, additional steps may be needed to ensure service discovery +works as intended. Instrunctions are on the +[Cilium cluster configuration](../../reference/cluster-configuration/#cilium) +page. {{< /note >}} ### linkerd-crds @@ -53,15 +44,12 @@ helm install linkerd-crds linkerd/linkerd-crds \ -n linkerd --create-namespace ``` -{{< note >}} -This will create the `linkerd` namespace. If it already exists or you're -creating it beforehand elsewhere in your pipeline, just omit the -`--create-namespace` flag. -{{< /note >}} +{{< note >}} This will create the `linkerd` namespace. If it already exists or +you're creating it beforehand elsewhere in your pipeline, just omit the +`--create-namespace` flag. {{< /note >}} -{{< note >}} -If you are using [Linkerd's CNI plugin](../../features/cni/), you must also add the -`--set cniEnabled=true` flag to your `helm install` command. +{{< note >}} If you are using [Linkerd's CNI plugin](../../features/cni/), you +must also add the `--set cniEnabled=true` flag to your `helm install` command. {{< /note >}} ### linkerd-control-plane @@ -77,17 +65,17 @@ helm install linkerd-control-plane \ linkerd/linkerd-control-plane ``` -{{< note >}} -If you are using [Linkerd's CNI plugin](../../features/cni/), you must also add the -`--set cniEnabled=true` flag to your `helm install` command. +{{< note >}} If you are using [Linkerd's CNI plugin](../../features/cni/), you +must also add the `--set cniEnabled=true` flag to your `helm install` command. {{< /note >}} ## Enabling high availability mode -The `linkerd-control-plane` chart contains a file `values-ha.yaml` that overrides -some default values to set things up under a high-availability scenario, analogous -to the `--ha` option in `linkerd install`. Values such as higher number of -replicas, higher memory/cpu limits, and affinities are specified in those files. +The `linkerd-control-plane` chart contains a file `values-ha.yaml` that +overrides some default values to set things up under a high-availability +scenario, analogous to the `--ha` option in `linkerd install`. Values such as +higher number of replicas, higher memory/cpu limits, and affinities are +specified in those files. You can get `values-ha.yaml` by fetching the chart file: @@ -117,36 +105,33 @@ helm repo update helm search repo linkerd NAME CHART VERSION APP VERSION DESCRIPTION linkerd/linkerd-crds Linkerd gives you observability, reliability, and securit... -linkerd/linkerd-control-plane {{% latestversion %}} Linkerd gives you observability, reliability, and securit... +linkerd/linkerd-control-plane {{% latestedge %}} Linkerd gives you observability, reliability, and securit... ``` During an upgrade, you must choose whether you want to reuse the values in the -chart or move to the values specified in the newer chart. Our advice is to use -a `values.yaml` file that stores all custom overrides that you have for your +chart or move to the values specified in the newer chart. Our advice is to use a +`values.yaml` file that stores all custom overrides that you have for your chart. The `helm upgrade` command has a number of flags that allow you to customize its behavior. Special attention should be paid to `--reuse-values` and `--reset-values` and how they behave when charts change from version to version -and/or overrides are applied through `--set` and `--set-file`. For example: +and/or overrides are applied through `--set` and `--set-file`. For example: - `--reuse-values` with no overrides - all values are reused - `--reuse-values` with overrides - all except the values that are overridden -are reused -- `--reset-values` with no overrides - no values are reused and all changes -from provided release are applied during the upgrade + are reused +- `--reset-values` with no overrides - no values are reused and all changes from + provided release are applied during the upgrade - `--reset-values` with overrides - no values are reused and changed from -provided release are applied together with the overrides + provided release are applied together with the overrides - no flag and no overrides - `--reuse-values` will be used by default - no flag and overrides - `--reset-values` will be used by default -Finally, before upgrading, check whether there are breaking changes to the chart -(i.e. renamed or moved keys, etc). You can consult the -[stable](https://artifacthub.io/packages/helm/linkerd2/linkerd-control-plane#values) -or the -[edge](https://artifacthub.io/packages/helm/linkerd2-edge/linkerd-control-plane#values) -chart docs, depending on -which one your are upgrading to. If there are, make the corresponding changes to +Finally, before upgrading, you can consult the +[edge chart](https://artifacthub.io/packages/helm/linkerd2-edge/linkerd-control-plane#values) +docs to check whether there are breaking changes to the chart (i.e. +renamed or moved keys, etc). If there are, make the corresponding changes to your `values.yaml` file. Then you can use: ```bash diff --git a/linkerd.io/content/2.15/tasks/install.md b/linkerd.io/content/2.15/tasks/install.md index db824e4c14..da26967ce9 100644 --- a/linkerd.io/content/2.15/tasks/install.md +++ b/linkerd.io/content/2.15/tasks/install.md @@ -16,13 +16,13 @@ Linkerd's control plane can be installed in two ways: with the CLI and with Helm. The CLI is convenient and easy, but for production use cases we recommend Helm which allows for repeatability. -{{< trylpt >}} - In either case, we recommend installing the CLI itself so that you can validate the success of the installation. See the [Getting Started Guide](../../getting-started/) for how to install the CLI if you haven't done this already. +{{< releases >}} + ## Requirements Linkerd requires a Kubernetes cluster on which to run. Where this cluster lives diff --git a/linkerd.io/content/2.15/tasks/upgrade.md b/linkerd.io/content/2.15/tasks/upgrade.md index c34c8fe026..9b66adb6a7 100644 --- a/linkerd.io/content/2.15/tasks/upgrade.md +++ b/linkerd.io/content/2.15/tasks/upgrade.md @@ -10,18 +10,22 @@ aliases = [ In this guide, we'll walk you through how to perform zero-downtime upgrades for Linkerd. +{{< note >}} +This page contains instructions for the latest edge release of Linkerd. If +you have installed a [stable distribution](/releases/#stable) of Linkerd, the +vendor may have additional guidance on how to upgrade. +{{< /note >}} + Read through this guide carefully. Additionally, before starting a specific upgrade, please read through the version-specific upgrade notices below, which may contain important information about your version. -- [Upgrade notice: stable-2.14.0](#upgrade-notice-stable-2-14-0) -- [Upgrade notice: stable-2.13.0](#upgrade-notice-stable-2-13-0) -- [Upgrade notice: stable-2.12.0](#upgrade-notice-stable-2-12-0) -- [Upgrade notice: stable-2.11.0](#upgrade-notice-stable-2-11-0) -- [Upgrade notice: stable-2.10.0](#upgrade-notice-stable-2-10-0) -- [Upgrade notice: stable-2.9.4](#upgrade-notice-stable-2-9-4) -- [Upgrade notice: stable-2.9.3](#upgrade-notice-stable-2-9-3) -- [Upgrade notice: stable-2.9.0](#upgrade-notice-stable-2-9-0) +- [Upgrade notice: 2.15 and beyond](#upgrade-notice-stable-215-and-beyond) +- [Upgrade notice: stable-2.14.0](#upgrade-notice-stable-2140) +- [Upgrade notice: stable-2.13.0](#upgrade-notice-stable-2130) +- [Upgrade notice: stable-2.12.0](#upgrade-notice-stable-2120) +- [Upgrade notice: stable-2.11.0](#upgrade-notice-stable-2110) +- [Upgrade notice: stable-2.10.0](#upgrade-notice-stable-2100) ## Version numbering @@ -113,7 +117,7 @@ linkerd version --client ## Upgrading the control plane -### With the Linkerd CLI +### Upgrading the control plane with the CLI For users who have installed Linkerd via the CLI, the `linkerd upgrade` command will upgrade the control plane. This command ensures that all of the control @@ -133,7 +137,7 @@ present in the previous version but should not be present in this one. linkerd prune | kubectl delete -f - ``` -### With Helm +### Upgrading the control plane with Helm For Helm control plane installations, please follow the instructions at [Helm upgrade procedure](../install-helm/#helm-upgrade-procedure). @@ -234,6 +238,17 @@ version. ## Upgrade notices +This section contains release-specific information about upgrading. + +### Upgrade notice: stable-2.15 and beyond + +As of February 2024, the Linkerd project is no longer producing open source +stable release artifacts. Please read the [2.15 +announcement](/2024/02/21/announcing-linkerd-2.15/#a-new-model-for-stable-releases) +for details. + +See [the full list of Linkerd releases](/releases/) for ways to get Linkerd. + ### Upgrade notice: stable-2.14.0 For this release, if you're using the multicluster extension, you should re-link @@ -621,79 +636,3 @@ dropped, moving the config values underneath it into the root scope. Any values you had customized there will need to be migrated; in particular `identityTrustAnchorsPEM` in order to conserve the value you set during install." - -### Upgrade notice: stable-2.9.4 - -See upgrade notes for 2.9.3 below. - -### Upgrade notice: stable-2.9.3 - -#### Linkerd Repair - -Due to a known issue in versions stable-2.9.0, stable-2.9.1, and stable-2.9.2, -users who upgraded to one of those versions with the --prune flag (as described -above) will have deleted the `secret/linkerd-config-overrides` resource which is -necessary for performing any subsequent upgrades. Linkerd stable-2.9.3 includes -a new `linkerd repair` command which restores this deleted resource. If you see -unexpected error messages during upgrade such as "failed to read CA: not -PEM-encoded", please upgrade your CLI to stable-2.9.3 and run: - -```bash -linkerd repair | kubectl apply -f - -``` - -This will restore the `secret/linkerd-config-overrides` resource and allow you -to proceed with upgrading your control plane. - -### Upgrade notice: stable-2.9.0 - -#### Images are now hosted on ghcr.io - -As of this version images are now hosted under `ghcr.io` instead of `gcr.io`. If -you're pulling images into a private repo please make the necessary changes. - -#### Upgrading multicluster environments - -Linkerd 2.9 changes the way that some of the multicluster components work and -are installed compared to Linkerd 2.8.x. Users installing the multicluster -components for the first time with Linkerd 2.9 can ignore these instructions and -instead refer directly to the [installing -multicluster instructions](../installing-multicluster/). - -Users who installed the multicluster component in Linkerd 2.8.x and wish to -upgrade to Linkerd 2.9 should follow the [upgrade multicluster -instructions](/2.11/tasks/upgrade-multicluster/). - -#### Ingress behavior changes - -In previous versions when you injected your ingress controller (Nginx, Traefik, -Ambassador, etc), then the ingress' balancing/routing choices would be -overridden with Linkerd's (using service profiles, traffic splits, etc.). - -As of 2.9 the ingress's choices are honored instead, which allows preserving -things like session-stickiness. Note however that this means per-route metrics -are not collected, traffic splits will not be honored and retries/timeouts are -not applied. - -If you want to revert to the previous behavior, inject the proxy into the -ingress controller using the annotation `linkerd.io/inject: ingress`, as -explained in [using ingress](../using-ingress/) - -#### Breaking changes in Helm charts - -Some entries like `controllerLogLevel` and all the Prometheus config have -changed their position in the settings hierarchy. To get a precise view of what -has changed you can compare the -[stable-2.8.1](https://github.com/linkerd/linkerd2/blob/stable-2.8.1/charts/linkerd2/values.yaml) -and -[stable-2.9.0](https://github.com/linkerd/linkerd2/blob/stable-2.9.0/charts/linkerd2/values.yaml) -`values.yaml` files. - -#### Post-upgrade cleanup - -In order to better support cert-manager, the secrets -`linkerd-proxy-injector-tls`, `linkerd-sp-validator-tls` and `linkerd-tap-tls` -have been replaced by the secrets `linkerd-proxy-injector-k8s-tls`, -`linkerd-sp-validator-k8s-tls` and `linkerd-tap-k8s-tls` respectively. If you -upgraded through the CLI, please delete the old ones (if you upgraded through -Helm the cleanup was automated). diff --git a/linkerd.io/content/design-principles/_index.md b/linkerd.io/content/design-principles/_index.md index dbaf615c83..49ce8a8eb4 100644 --- a/linkerd.io/content/design-principles/_index.md +++ b/linkerd.io/content/design-principles/_index.md @@ -3,8 +3,8 @@ title = "Design Principles" weight = 19 +++ -Linkerd is built for you, the operator, SRE, architect, and platform owner. -It's designed to give you power over your own fate: to provide fundamental +Linkerd is built for you, the operator, SRE, architect, and platform owner. It's +designed to give you power over your own fate: to provide fundamental visibility, reliability, and security capabilities at the platform level. The goal of Linkerd is to give you these powers in a way that's uniform across all code running in the entire compute environment, and totally independent of @@ -14,47 +14,45 @@ Since Linkerd is built for operators, this also means that Linkerd has do all that while also imposing the absolute minimum operational complexity. To do this, we've designed Linkerd with three core principles in mind: -1. **Keep it simple**. Linkerd should be operationally simple with low -cognitive overhead. Operators should find its components clear and its behavior -understandable and predictable, with a minimum of magic. +1. **Keep it simple**. Linkerd should be operationally simple with low cognitive + overhead. Operators should find its components clear and its behavior + understandable and predictable, with a minimum of magic. 2. **Minimize resource requirements**. Linkerd should impose as minimal a -performance and resource cost as possible--especially at the data plane layer. + performance and resource cost as possible--especially at the data plane + layer. 3. **Just work**. Linkerd should not break existing applications, nor should it -require complex configuration to get started or to do something simple. + require complex configuration to get started or to do something simple. The first principle is the most important: _keep it simple_. Simplicity doesn't -mean that Linkerd can't have powerful features, or that it has to have -one-click wizards take care of everything for you. In fact, it means the -opposite: every aspect of Linkerd's behavior should be explicit, clear, -well-defined, bounded, understandable, and introspectable. For example, -Linkerd's [control plane](/{{% latest-linkerd2-stable-version -%}}/reference/architecture/#control-plane) is split into several operational -components based on their functional boundaries ("web”, "api”, etc.) These -components aren't just exposed directly to you in the Linkerd dashboard and CLI, -they run on the same data plane as your application does, allowing you to use -the same tooling to inspect their behavior. +mean that Linkerd can't have powerful features, or that it has to have one-click +wizards take care of everything for you. In fact, it means the opposite: every +aspect of Linkerd's behavior should be explicit, clear, well-defined, bounded, +understandable, and introspectable. For example, Linkerd's +[control plane](/2/reference/architecture/#control-plane) is split into several +operational components based on their functional boundaries ("web”, "api”, etc.) +These components aren't just exposed directly to you in the Linkerd dashboard +and CLI, they run on the same data plane as your application does, allowing you +to use the same tooling to inspect their behavior. _Minimize resource requirements_ means that Linkerd, and especially Linkerd's -[data plane proxies](/{{% latest-linkerd2-stable-version -%}}/reference/architecture/#data-plane), should consume the smallest amount of -memory and CPU possible. On the control plane side, we've taken care to ensure -that components scale gracefully in the presence of traffic. On the data plane -side, we've build Linkerd's proxy (called simply "linkerd-proxy”) for -performance, safety, and low resource consumption. Today, a single linkerd-proxy -instance can proxy many thousands of requests per second in under 10mb of memory -and a quarter of a core, all with a p99 tail latency of under 1ms. In the -future, we can probably improve even that! +[data plane proxies](/2/reference/architecture/#data-plane), should consume the +smallest amount of memory and CPU possible. On the control plane side, we've +taken care to ensure that components scale gracefully in the presence of +traffic. On the data plane side, we've build Linkerd's proxy (called simply +"linkerd-proxy”) for performance, safety, and low resource consumption. Today, a +single linkerd-proxy instance can proxy many thousands of requests per second in +under 10mb of memory and a quarter of a core, all with a p99 tail latency of +under 1ms. In the future, we can probably improve even that! Finally, _just work_ means that adding Linkerd to a functioning Kubernetes application shouldn't break anything, and shouldn't even require configuration. (Of course, configuration will be necessary to customize Linkerd's behavior--but it shouldn't be necessary simply to get things working.) To do this, we've -invested heavily in things like [automatic L7 protocol detection](/{{% -latest-linkerd2-stable-version %}}/features/protocol-detection/), and [automatic -re-routing of TCP traffic within a pod](/{{% latest-linkerd2-stable-version -%}}/features/proxy-injection/). +invested heavily in things like +[automatic L7 protocol detection](/2/features/protocol-detection/), and +[automatic re-routing of TCP traffic within a pod](/2/features/proxy-injection/). Together, these three principles give us a framework for weighing product and engineering tradeoffs in Linkerd. We hope they're also useful for understanding diff --git a/linkerd.io/content/releases/_index.md b/linkerd.io/content/releases/_index.md index 97b4db01b3..a44d8d0480 100644 --- a/linkerd.io/content/releases/_index.md +++ b/linkerd.io/content/releases/_index.md @@ -1,62 +1,42 @@ +++ -title = "Releases and Versions" +title = "Releases" aliases = [ "edge" ] weight = 18 +++ -Linkerd is developed in the [Linkerd GitHub -repository](https://github.com/linkerd/linkerd2). Releases and packages of -Linkerd are available in several different forms. +Releases and packages of Linkerd are available in several different forms. -## Edge (latest version: {{% latestedge %}}) +## Edge releases -All Linkerd development happens "on main": all changes, whether in support of -upcoming new features, refactors, bug fixes, or something else, land on the main -branch where they are merged together. +All Linkerd development happens "on main": all changes, whether security +patches, new features, refactors, bug fixes, or something else, land on the main +branch. -Edge releases contain the latest code in from the main branch at the point in -time when they were cut. This means they have the latest features and fixes, but -it also means they don't have stability guarantees. Upgrading between edge -releases may involve breaking changes, and may involve partial features that are -later modified or backed out. +Edge release artifacts contain the latest code in from the main branch, at the +point in time when they were cut. This means they have the latest features and +fixes, but it also means may involve partial features that are later modified or +backed out. They may involve breaking changes—of course, we do our best to avoid +this. -**Note:** Edge releases may introduce breaking changes. +Using edge release artifacts and reporting bugs is a great way to help Linkerd. - -Edge releases follow a version numbering scheme of the form `..`. For example, `edge-24.1.2` is the -second edge release of January 2024. - +The full list of edge release artifacts can be found on +[the Linkerd GitHub releases page](https://github.com/linkerd/linkerd2/releases). -To install the latest edge release via the CLI, you can run: + -```bash -curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install-edge | sh -``` +Latest version: **{{% latestedge %}}** [[release +notes](https://github.com/linkerd/linkerd2/releases/tag/{{% latestedge %}})]. -The full list of edge releases can be found on -[GitHub](https://github.com/linkerd/linkerd2/releases). +## Stable releases -## Stable +As of February 2024, the Linkerd project is no longer producing open source +stable release artifacts. Instead, the vendor community around Linkerd is +responsible for supported, stable release artifacts. -As of Linkerd 2.15.0, the open source project no longer publishes stable -releases. Instead, the vendor community around Linkerd is responsible for -supported, stable releases. +Known distributions of Linkerd with stable release artifacts include: -Known stable distributions of Linkerd include: - -* [Buoyant Enterprise for - Linkerd](https://docs.buoyant.io/buoyant-enterprise-linkerd) from Buoyant, - creators of Linkerd. - -## Helm Chart Version Matrix - -The following version matrices include only the latest versions of the stable -releases along with corresponding app and Helm versions for Linkerd and -extensions. Use these to guide you to the right Helm chart version or to -automate workflows you might have. - -* [YAML matrix](./release_matrix.yaml) -* [JSON matrix](./release_matrix.json) - -{{< release-data-table />}} +- [Buoyant Enterprise for Linkerd](https://docs.buoyant.io/buoyant-enterprise-linkerd) + from Buoyant, creators of Linkerd. + Latest version: **enterprise-2.15.2** + [[release notes](https://docs.buoyant.io/release-notes/buoyant-enterprise-linkerd/enterprise-2.15.2/)]. diff --git a/linkerd.io/layouts/partials/admonition.html b/linkerd.io/layouts/partials/admonition.html index c207d5913c..0f68e51ce7 100644 --- a/linkerd.io/layouts/partials/admonition.html +++ b/linkerd.io/layouts/partials/admonition.html @@ -4,10 +4,11 @@ {{end}} role="alert">
-

+ {{ if .title }} +

 {{ .title }}

- + {{ end }} {{ .content | markdownify }}
\ No newline at end of file diff --git a/linkerd.io/layouts/partials/sidebar-2.html b/linkerd.io/layouts/partials/sidebar-2.html index ec30e39c16..3907a2e991 100644 --- a/linkerd.io/layouts/partials/sidebar-2.html +++ b/linkerd.io/layouts/partials/sidebar-2.html @@ -98,7 +98,7 @@