-
Read more about Vault integration
-
+
}
/>
@@ -143,14 +142,12 @@ const generateRows = ({
Vault is configured on this controller.
Once all controllers are configured, migrate the
secrets.
-
Read more about Vault integration
-
+
}
/>
@@ -167,14 +164,12 @@ const generateRows = ({
Missing Vault configuration.
-
Read more about Vault integration
-
+
Change the default layout in{" "}
diff --git a/src/app/machines/views/MachineDetails/MachineSummary/WorkloadCard/WorkloadCard.tsx b/src/app/machines/views/MachineDetails/MachineSummary/WorkloadCard/WorkloadCard.tsx
index 7a05f5320f..627ee0da06 100644
--- a/src/app/machines/views/MachineDetails/MachineSummary/WorkloadCard/WorkloadCard.tsx
+++ b/src/app/machines/views/MachineDetails/MachineSummary/WorkloadCard/WorkloadCard.tsx
@@ -1,4 +1,5 @@
-import { Card, Link, Spinner } from "@canonical/react-components";
+import { ExternalLink } from "@canonical/maas-react-components";
+import { Card, Spinner } from "@canonical/react-components";
import { useSelector } from "react-redux";
import { Link as RouterLink } from "react-router-dom";
@@ -81,8 +82,7 @@ const WorkloadCard = ({ id }: Props): JSX.Element => {
/>
-
sendAnalytics(
"Machine summary",
@@ -90,11 +90,10 @@ const WorkloadCard = ({ id }: Props): JSX.Element => {
"Read more"
)
}
- rel="noopener noreferrer"
- target="_blank"
+ to="https://discourse.maas.io/t/machine-workload-annotations/4237"
>
Read more
-
+
{content}
diff --git a/src/app/preferences/views/SSHKeys/SSHKeyList/SSHKeyList.tsx b/src/app/preferences/views/SSHKeys/SSHKeyList/SSHKeyList.tsx
index 900c854f00..b3f5265978 100644
--- a/src/app/preferences/views/SSHKeys/SSHKeyList/SSHKeyList.tsx
+++ b/src/app/preferences/views/SSHKeys/SSHKeyList/SSHKeyList.tsx
@@ -1,4 +1,4 @@
-import { Link } from "@canonical/react-components";
+import { ExternalLink } from "@canonical/maas-react-components";
import BaseSSHKeyList from "app/base/components/SSHKeyList";
import docsUrls from "app/base/docsUrls";
@@ -19,9 +19,7 @@ const SSHKeyList = (): JSX.Element => {
{ label: "Import SSH key", url: urls.preferences.sshKeys.add },
]}
/>
-
- About SSH keys
-
+ About SSH keys
>
);
};
diff --git a/src/app/settings/views/Configuration/GeneralForm/GeneralForm.tsx b/src/app/settings/views/Configuration/GeneralForm/GeneralForm.tsx
index 11703b1ba2..2a53973176 100644
--- a/src/app/settings/views/Configuration/GeneralForm/GeneralForm.tsx
+++ b/src/app/settings/views/Configuration/GeneralForm/GeneralForm.tsx
@@ -1,6 +1,7 @@
import { useEffect, useRef } from "react";
-import { Col, Link, Row } from "@canonical/react-components";
+import { ExternalLink } from "@canonical/maas-react-components";
+import { Col, Row } from "@canonical/react-components";
import { usePrevious } from "@canonical/react-components/dist/hooks";
import { useDispatch, useSelector } from "react-redux";
import * as Yup from "yup";
@@ -166,20 +167,15 @@ const GeneralForm = (): JSX.Element => {
))}
-
Data analytics
The analytics used in MAAS are Google Analytics, Usabilla and Sentry
Error Tracking.{" "}
-
+
Data privacy
-
+
>
}
label="Enable analytics to shape improvements to user experience"
diff --git a/src/app/settings/views/Security/IpmiSettings/IpmiFormFields/IpmiFormFields.tsx b/src/app/settings/views/Security/IpmiSettings/IpmiFormFields/IpmiFormFields.tsx
index 29bae7256d..cd9a8b106a 100644
--- a/src/app/settings/views/Security/IpmiSettings/IpmiFormFields/IpmiFormFields.tsx
+++ b/src/app/settings/views/Security/IpmiSettings/IpmiFormFields/IpmiFormFields.tsx
@@ -1,4 +1,4 @@
-import { Link } from "@canonical/react-components";
+import { ExternalLink } from "@canonical/maas-react-components";
import FormikField from "app/base/components/FormikField";
import TooltipButton from "app/base/components/TooltipButton";
@@ -29,13 +29,7 @@ const IpmiFormFields = (): JSX.Element => {
<>
Specify this key to encrypt all communication between IPMI clients
and the BMC. Leave this blank for no encryption.
-
- IPMI and BMC key
-
+ IPMI and BMC key
>
}
label={
diff --git a/src/app/settings/views/Security/SecretStorage/VaultSettings/VaultSettings.tsx b/src/app/settings/views/Security/SecretStorage/VaultSettings/VaultSettings.tsx
index 94cf7e73d0..d6f2315b01 100644
--- a/src/app/settings/views/Security/SecretStorage/VaultSettings/VaultSettings.tsx
+++ b/src/app/settings/views/Security/SecretStorage/VaultSettings/VaultSettings.tsx
@@ -1,3 +1,4 @@
+import { ExternalLink } from "@canonical/maas-react-components";
import {
Icon,
Spinner,
@@ -79,13 +80,9 @@ const VaultSettings = (): JSX.Element => {
);
diff --git a/src/app/tags/components/DefinitionField/DefinitionField.tsx b/src/app/tags/components/DefinitionField/DefinitionField.tsx
index b780c49ec7..1534c799e5 100644
--- a/src/app/tags/components/DefinitionField/DefinitionField.tsx
+++ b/src/app/tags/components/DefinitionField/DefinitionField.tsx
@@ -1,5 +1,6 @@
import { useEffect, useRef } from "react";
+import { ExternalLink } from "@canonical/maas-react-components";
import { CodeSnippet, Textarea } from "@canonical/react-components";
import type { FormikErrors } from "formik";
import { useFormikContext } from "formik";
@@ -39,13 +40,9 @@ const getDefinitionError = (
return (
The definition is an invalid XPath expression. See our{" "}
-
+
XPath expressions documentation
- {" "}
+ {" "}
for more examples.
);
@@ -94,13 +91,9 @@ export const DefinitionField = ({ id }: Props): JSX.Element => {
Add an XPath expression as a definition. MAAS will auto-assign this tag
to all current and future machines that match this definition.{" "}
-
+
Learn how to use XPath expressions
-
+
.
diff --git a/src/app/tags/components/KernelOptionsField/KernelOptionsField.tsx b/src/app/tags/components/KernelOptionsField/KernelOptionsField.tsx
index dcf666bdf2..a653ada81c 100644
--- a/src/app/tags/components/KernelOptionsField/KernelOptionsField.tsx
+++ b/src/app/tags/components/KernelOptionsField/KernelOptionsField.tsx
@@ -1,3 +1,4 @@
+import { ExternalLink } from "@canonical/maas-react-components";
import { Textarea } from "@canonical/react-components";
import { useFormikContext } from "formik";
import { useSelector } from "react-redux";
@@ -66,13 +67,9 @@ export const KernelOptionsField = ({
<>
Kernel options are appended to the kernel command line during booting
while machines are commissioning or deploying.{" "}
-
+
Read more about kernel options in tag management
-
+
.
>
}
diff --git a/src/app/tags/views/TagList/TagTable/TagTable.tsx b/src/app/tags/views/TagList/TagTable/TagTable.tsx
index ed42559a53..b38fe785da 100644
--- a/src/app/tags/views/TagList/TagTable/TagTable.tsx
+++ b/src/app/tags/views/TagList/TagTable/TagTable.tsx
@@ -1,6 +1,7 @@
import type { ReactNode } from "react";
import { useEffect } from "react";
+import { ExternalLink } from "@canonical/maas-react-components";
import type {
MainTableProps,
PropsWithSpread,
@@ -219,14 +220,12 @@ const TagTable = ({
machine that matches their definition.
-
Check the documentation about automatic tags.
-
+
>
}
position="top-center"
diff --git a/src/app/tags/views/TagUpdate/TagUpdateFormFields/TagUpdateFormFields.tsx b/src/app/tags/views/TagUpdate/TagUpdateFormFields/TagUpdateFormFields.tsx
index cc81d39619..35f8b51604 100644
--- a/src/app/tags/views/TagUpdate/TagUpdateFormFields/TagUpdateFormFields.tsx
+++ b/src/app/tags/views/TagUpdate/TagUpdateFormFields/TagUpdateFormFields.tsx
@@ -1,3 +1,4 @@
+import { ExternalLink } from "@canonical/maas-react-components";
import { Col, Row } from "@canonical/react-components";
import { useSelector } from "react-redux";
@@ -71,13 +72,9 @@ export const TagUpdateFormFields = ({ id }: Props): JSX.Element | null => {
This is a manual tag. Definitions cannot be added to manual
tags. To learn more about this, check our{" "}
-
+
XPath expressions documentation
-
+
.
diff --git a/yarn.lock b/yarn.lock
index c047036d78..b0f69dabf5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2896,10 +2896,10 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@canonical/maas-react-components@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@canonical/maas-react-components/-/maas-react-components-1.0.1.tgz#582527161de6b6203193e0dcd6e78e18616c5673"
- integrity sha512-+o7PQvCj2GUMVOUoco7vC3YryYiIn9KQrxcygfVDl8Safq23BPRiV4Vp7APB1ubp1FNR0J7N/LasR8vQ0r/cRw==
+"@canonical/maas-react-components@1.3.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@canonical/maas-react-components/-/maas-react-components-1.3.0.tgz#5daa2302b7a1a061b4dad3aeb2337646810601cb"
+ integrity sha512-CVB0WHv1u0uViq0LGLvoa6dtbQEZlPP/+ovgHFJhEgbvLj9NxIfsfP/4P3OzmK/6BhGXFtwN5BKMvi55UcWlbg==
"@canonical/macaroon-bakery@1.3.2":
version "1.3.2"