Linkerd can also be installed with a number of Add-ons, allowing users to get a great out of the box experience around popular service mesh use-cases. These optional add-ons extend Linkerd with more features and integrate well with the existing Linkerd installation and upgrade workflow.
Add-ons in Linkerd are optional and configurable. A configuration file is passed
to the install operation (available both through Helm and CLI).
This configuration is also stored as a configmap called
allowing upgrades to work seamlessly without having user to pass the configuration
file again. Configuration can be updated during upgrades
by applying configuration in the same manner as that of install.
You can find the list of add-ons present in the Linkerd2 Add-ons charts directory along with their configuration options.
Now, let’s understand some common concepts that are applicable across all add-ons.
Add-ons can be toggled by using the
Apart from this, all the other flags will be specific to the add-on while making
sure common fields like
resources, etc are referred in the same manner everywhere.
The following is an example configuration file w.r.t tracing Add-On.
cat > config.yaml << EOF
The same configuration file can be used both through the CLI and Helm.
Installation through CLI
linkerd CLI now supports a
config flag, which is used to pass the configuration
of add-ons. Now, the above configuration file can be passed as
# Install Linkerd with additional configuration from `./config.yaml`
linkerd install --config ./config.yaml
--config is also available through upgrades to change existing configuration.
Installation through Helm
First, You have to follow the usual process of installing Linkerd2 through Helm, . Only the final installation command is changed to include the Add-On configuration.
Now, we pass the add-on configuration file to the helm install command.
# Install Linkerd through Helm with additional configuration from `./config.yaml`
helm install \
--set-file global.identityTrustAnchorsPEM=ca.crt \
--set-file identity.issuer.tls.crtPEM=issuer.crt \
--set-file identity.issuer.tls.keyPEM=issuer.key \
--set identity.issuer.crtExpiry=$exp \
--set global.controlPlaneTracing=true \
-f config.yaml \
Example of Tracing Add-On installation can be found here