diff --git a/calico-cloud/variables.js b/calico-cloud/variables.js index 1a3d35722d..7c24b1cafa 100644 --- a/calico-cloud/variables.js +++ b/calico-cloud/variables.js @@ -1,4 +1,4 @@ -const releases = require('./releases.json'); +import releases from './releases.json'; const variables = { releaseTitle: 'v3.19.0-1.0', @@ -27,4 +27,4 @@ const variables = { }, }; -module.exports = variables; +export default variables; diff --git a/calico_versioned_docs/version-3.26/_includes/components/AutoHostendpointsMigrate.js b/calico_versioned_docs/version-3.26/_includes/components/AutoHostendpointsMigrate.js index 2fa83d4362..4b4e2d821e 100644 --- a/calico_versioned_docs/version-3.26/_includes/components/AutoHostendpointsMigrate.js +++ b/calico_versioned_docs/version-3.26/_includes/components/AutoHostendpointsMigrate.js @@ -4,8 +4,7 @@ import Admonition from '@theme/Admonition'; import Link from '@docusaurus/Link'; import CodeBlock from '@theme/CodeBlock'; import Heading from '@theme/Heading'; - -import { prodname, baseUrl } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.26/variables'; export default function AutoHostendpointsMigrate(props) { return ( @@ -20,12 +19,12 @@ export default function AutoHostendpointsMigrate(props) { Auto host endpoints have an allow-all profile attached which allows all traffic in the absence of network policy. This may result in unexpected behavior and data. -

In order to migrate existing all-interfaces host endpoints to {prodname}-managed auto host endpoints:

+

In order to migrate existing all-interfaces host endpoints to {variables.prodname}-managed auto host endpoints:

  1. Add any labels on existing all-interfaces host endpoints to their corresponding {props.orch} nodes.{' '} - {prodname} manages labels on automatic host endpoints by syncing labels from their nodes. Any labels on + {variables.prodname} manages labels on automatic host endpoints by syncing labels from their nodes. Any labels on existing all-interfaces host endpoints should be added to their respective nodes. For example, if your existing all-interface host endpoint for node node1 has the label{' '} environment: dev, then you must add that same label to its node: @@ -39,7 +38,7 @@ export default function AutoHostendpointsMigrate(props) {

  2. Enable auto host endpoints by following the{' '} - + enable automatic host endpoints how-to guide . Note that automatic host endpoints are created with a profile attached that allows all traffic in the @@ -52,7 +51,7 @@ export default function AutoHostendpointsMigrate(props) {

  3. - Delete old all-interfaces host endpoints. You can distinguish host endpoints managed by {prodname} from + Delete old all-interfaces host endpoints. You can distinguish host endpoints managed by {variables.prodname} from others in several ways. First, automatic host endpoints have the label{' '} projectcalico.org/created-by: calico-kube-controllers. Secondly, automatic host endpoints' name have the suffix -auto-hep. diff --git a/calico_versioned_docs/version-3.26/_includes/components/CalicoWindowsInstall.js b/calico_versioned_docs/version-3.26/_includes/components/CalicoWindowsInstall.js index 8e3a81fc49..df856e248f 100644 --- a/calico_versioned_docs/version-3.26/_includes/components/CalicoWindowsInstall.js +++ b/calico_versioned_docs/version-3.26/_includes/components/CalicoWindowsInstall.js @@ -2,8 +2,7 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import CodeBlock from '@theme/CodeBlock'; - -import { prodname, prodnameWindows, manifestsUrl } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.26/variables'; function CalicoWindowsInstallFirstStep(props) { if (props.networkingType === 'vxlan') { @@ -11,8 +10,8 @@ function CalicoWindowsInstallFirstStep(props) {

  4. Ensure that BGP is disabled.
  5. -

    Apply the {prodnameWindows} installation manifest.

    +

    Apply the {variables.prodnameWindows} installation manifest.

    kubectl create -f calico-windows.yaml
  6. @@ -173,7 +172,7 @@ kubernetes 172.16.101.157:6443 40m`}

    After the log Calico for Windows installed appears, installation is complete. Next, the{' '} - {prodnameWindows} services are started in separate containers: + {variables.prodnameWindows} services are started in separate containers:

    kubectl logs -f -n calico-system -l k8s-app=calico-node-windows -c node{'\n'} diff --git a/calico_versioned_docs/version-3.26/_includes/components/EnvironmentFile.js b/calico_versioned_docs/version-3.26/_includes/components/EnvironmentFile.js index cdeecc20ee..446aaed277 100644 --- a/calico_versioned_docs/version-3.26/_includes/components/EnvironmentFile.js +++ b/calico_versioned_docs/version-3.26/_includes/components/EnvironmentFile.js @@ -5,8 +5,7 @@ import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import Link from '@docusaurus/Link'; - -import { prodname, baseUrl } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.26/variables'; export default function EnvironmentFile(props) { if (props.target === 'felix') { @@ -31,9 +30,9 @@ export default function EnvironmentFile(props) { host. For more help, see the{' '} {props.install === 'container' ? ( - {props.nodecontainer} configuration reference + {props.nodecontainer} configuration reference ) : ( - Felix configuration reference + Felix configuration reference )}

    @@ -139,9 +138,9 @@ export default function EnvironmentFile(props) { CALICO_IP or CALICO_IP6 - If values are not specified for both, {prodname} uses the currently-configured values for the next hop + If values are not specified for both, {variables.prodname} uses the currently-configured values for the next hop IP addresses for this node—these can be configured through the Node resource. If no next hop addresses - are configured, {prodname} automatically determines an IPv4 next hop address by querying the host + are configured, {variables.prodname} automatically determines an IPv4 next hop address by querying the host interfaces (and configures this value in the Node resource). You can set CALICO_IP to{' '} autodetect for force auto-detection of IP address every time the node starts. If you set IP addresses through these environment variables, it reconfigures any values currently set through the @@ -151,7 +150,7 @@ export default function EnvironmentFile(props) { CALICO_AS - If not specified, {prodname} uses the currently configured value for the AS Number for the node BGP + If not specified, {variables.prodname} uses the currently configured value for the AS Number for the node BGP client—this can be configured through the Node resource. If the Node resource value is not set, Calico inherits the AS Number from the global default value. If you set a value through this environment variable, it reconfigures any value currently set through the Node resource. @@ -160,7 +159,7 @@ export default function EnvironmentFile(props) { NO_DEFAULT_POOLS - Set to true to prevent {prodname} from creating a default pool if one does not exist. Pools are used + Set to true to prevent {variables.prodname} from creating a default pool if one does not exist. Pools are used for workload endpoints and not required for non-cluster hosts. diff --git a/calico_versioned_docs/version-3.26/_includes/components/HostEndpointsUpgrade.js b/calico_versioned_docs/version-3.26/_includes/components/HostEndpointsUpgrade.js index ebacc53bb8..1b5d701cca 100644 --- a/calico_versioned_docs/version-3.26/_includes/components/HostEndpointsUpgrade.js +++ b/calico_versioned_docs/version-3.26/_includes/components/HostEndpointsUpgrade.js @@ -2,8 +2,7 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import CodeBlock from '@theme/CodeBlock'; import Heading from '@theme/Heading'; - -import { prodname, version } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.26/variables'; export default function HostEndpointsUpgrade(props) { return ( @@ -19,7 +18,7 @@ export default function HostEndpointsUpgrade(props) { upgrading. Failure to do so will result in an outage.

    - In versions of {prodname} prior to v3.14, all-interfaces host endpoints (host endpoints with{' '} + In versions of {variables.prodname} prior to v3.14, all-interfaces host endpoints (host endpoints with{' '} interfaceName: *) only supported pre-DNAT policy. The default behavior of all-interfaces host endpoints, in the absence of any policy, was to allow all traffic.

    @@ -31,7 +30,7 @@ export default function HostEndpointsUpgrade(props) { endpoints drop traffic in the absence of policy.

    - Before upgrading to {version}, you must ensure that global network policies are in place that select existing + Before upgrading to {variables.version}, you must ensure that global network policies are in place that select existing all-interfaces host endpoints and explicitly allow existing traffic flows. As a starting point, you can create an allow-all policy that selects existing all-interfaces host endpoints. First, we'll add a label to the existing host endpoints. Get a list of the nodes that have an all-interfaces host endpoint: diff --git a/calico_versioned_docs/version-3.26/_includes/components/InstallOpenShiftManifests.js b/calico_versioned_docs/version-3.26/_includes/components/InstallOpenShiftManifests.js index 9a34a4307f..8661ebb4c2 100644 --- a/calico_versioned_docs/version-3.26/_includes/components/InstallOpenShiftManifests.js +++ b/calico_versioned_docs/version-3.26/_includes/components/InstallOpenShiftManifests.js @@ -1,16 +1,14 @@ import React from 'react'; - import CodeBlock from '@theme/CodeBlock'; - -import { prodname, releaseTitle, calicoReleasesURL } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.26/variables'; export default function InstallOpenShiftManifests() { return ( <> -

    Download the {prodname} manifests for OpenShift and add them to the generated manifests directory:

    +

    Download the {variables.prodname} manifests for OpenShift and add them to the generated manifests directory:

    {`mkdir calico -wget -qO- ${calicoReleasesURL}/${releaseTitle}/ocp.tgz | tar xvz --strip-components=1 -C calico +wget -qO- ${variables.calicoReleasesURL}/${variables.releaseTitle}/ocp.tgz | tar xvz --strip-components=1 -C calico cp calico/* manifests/`} diff --git a/calico_versioned_docs/version-3.26/_includes/components/MaintenanceImageOptionsAlternateRegistry.js b/calico_versioned_docs/version-3.26/_includes/components/MaintenanceImageOptionsAlternateRegistry.js index f937b1cfb5..d06471286b 100644 --- a/calico_versioned_docs/version-3.26/_includes/components/MaintenanceImageOptionsAlternateRegistry.js +++ b/calico_versioned_docs/version-3.26/_includes/components/MaintenanceImageOptionsAlternateRegistry.js @@ -1,10 +1,8 @@ // Temporary component for "calico\maintenance\image-options\alternate-registry.mdx" import React from 'react'; - import CodeBlock from '@theme/CodeBlock'; - -import { imageNames, prodname, registry, releases, tigeraOperator } from '../../variables'; +import variables from '../../variables'; export default function MaintenanceImageOptionsAlternateRegistry() { const cmds1 = renderInstallCommands( @@ -23,10 +21,10 @@ export default function MaintenanceImageOptionsAlternateRegistry() { return (
    1. -

      Use the following commands to pull the required {prodname} images.

      +

      Use the following commands to pull the required {variables.prodname} images.

    2. - docker pull {tigeraOperator.registry}/{tigeraOperator.image}:{tigeraOperator.version} + docker pull {variables.tigeraOperator.registry}/{variables.tigeraOperator.image}:{variables.tigeraOperator.version} {'\n'} {cmds1} @@ -36,8 +34,8 @@ export default function MaintenanceImageOptionsAlternateRegistry() {

      - docker tag {tigeraOperator.registry}/{tigeraOperator.image}:{tigeraOperator.version} $REGISTRY/ - {tigeraOperator.image}:{tigeraOperator.version} + docker tag {variables.tigeraOperator.registry}/{variables.tigeraOperator.image}:{variables.tigeraOperator.version} $REGISTRY/ + {variables.tigeraOperator.image}:{variables.tigeraOperator.version} {'\n'} {cmds2} @@ -45,7 +43,7 @@ export default function MaintenanceImageOptionsAlternateRegistry() {

      Push the images to your registry.

      - docker push $REGISTRY/{tigeraOperator.image}:{tigeraOperator.version} + docker push $REGISTRY/{variables.tigeraOperator.image}:{variables.tigeraOperator.version} {'\n'} {cmds3} @@ -54,15 +52,15 @@ export default function MaintenanceImageOptionsAlternateRegistry() { } function renderInstallCommands(renderCommand) { - const releaseComponents = releases[0].components; + const releaseComponents = variables.releases[0].components; const components = Object.keys(releaseComponents); - const filteredComponents = components.filter((c) => imageNames[c] && !c.includes('flannel')); - const componentNames = filteredComponents.map((c) => imageNames[c]); + const filteredComponents = components.filter((c) => variables.imageNames[c] && !c.includes('flannel')); + const componentNames = filteredComponents.map((c) => variables.imageNames[c]); const result = filteredComponents .map((c, i) => { const componentData = releaseComponents[c]; - const reg = componentData.registry ? `${componentData.registry}/` : registry; + const reg = componentData.registry ? `${componentData.registry}/` : variables.registry; return renderCommand(componentData, reg, componentNames, i); }) diff --git a/calico_versioned_docs/version-3.26/_includes/components/ReleaseNotes.js b/calico_versioned_docs/version-3.26/_includes/components/ReleaseNotes.js index 2422b554f9..94d3df614b 100644 --- a/calico_versioned_docs/version-3.26/_includes/components/ReleaseNotes.js +++ b/calico_versioned_docs/version-3.26/_includes/components/ReleaseNotes.js @@ -8,7 +8,7 @@ import { componentUrl } from '@site/src/components/utils/componentUrl'; import variables from '../../variables'; export default function ReleaseNotes() { - const { prodname, version, imageNames } = variables; + const { imageNames } = variables; const releases = variables.releases.map((release) => { let note = release.note; diff --git a/calico_versioned_docs/version-3.26/_includes/components/ReqsKernel.js b/calico_versioned_docs/version-3.26/_includes/components/ReqsKernel.js index ed796bdf49..ecfb43caf1 100644 --- a/calico_versioned_docs/version-3.26/_includes/components/ReqsKernel.js +++ b/calico_versioned_docs/version-3.26/_includes/components/ReqsKernel.js @@ -1,8 +1,7 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import Heading from '@theme/Heading'; - -import { prodname } from '../../variables'; +import variables from '../../variables'; export default function ReqsKernel() { return ( @@ -18,14 +17,14 @@ export default function ReqsKernel() {

      Due to the large number of distributions and kernel version out there, it’s hard to be precise about the names - of the particular kernel modules that are required to run {prodname}. However, in general, you’ll need: + of the particular kernel modules that are required to run {variables.prodname}. However, in general, you’ll need:

      • The iptables modules (both the “legacy” and “nft” variants are supported). These are typically broken up into many small modules, one for each type of match criteria and one for each type of action.{' '} - {prodname} requires: + {variables.prodname} requires:

        • The “base” modules (including the IPv6 versions if IPv6 is enabled in your cluster).
        • @@ -55,7 +54,7 @@ export default function ReqsKernel() {
        • - IPIP, VXLAN, Wireguard support, if using {prodname} + IPIP, VXLAN, Wireguard support, if using {variables.prodname} networking in one of those modes.

        • diff --git a/calico_versioned_docs/version-3.26/_includes/components/ReqsSys.js b/calico_versioned_docs/version-3.26/_includes/components/ReqsSys.js index 4ad7641c69..61a75e5005 100644 --- a/calico_versioned_docs/version-3.26/_includes/components/ReqsSys.js +++ b/calico_versioned_docs/version-3.26/_includes/components/ReqsSys.js @@ -3,9 +3,9 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import Link from '@docusaurus/Link'; import Heading from '@theme/Heading'; +import variables from '../../variables'; +import globalVariables from '@site/variables'; -import { orchestrators } from '@site/variables'; -import { prodname, baseUrl } from '../../variables'; function NodeRequirementsOSS(props) { return ( @@ -22,9 +22,9 @@ function NodeRequirementsOSS(props) {
        • - {prodname} must be able to manage cali* interfaces on the host. When IPIP is enabled (the - default), {prodname} also needs to be able to manage tunl* interfaces. When VXLAN is enabled,{' '} - {prodname} also needs to be able to manage the + {variables.prodname} must be able to manage cali* interfaces on the host. When IPIP is enabled (the + default), {variables.prodname} also needs to be able to manage tunl* interfaces. When VXLAN is enabled,{' '} + {variables.prodname} also needs to be able to manage the vxlan.calico interface.

        • @@ -32,11 +32,11 @@ function NodeRequirementsOSS(props) {

          Linux kernel 3.10 or later with required dependencies. The following distributions have the required kernel, its dependencies, and are known to work well with{' '} - {prodname} and {props.orch}. + {variables.prodname} and {props.orch}.

          • RedHat Linux 7
          • - {(props.orch === orchestrators.Kubernetes || props.orch === orchestrators.HostProtection) && ( + {(props.orch === globalVariables.orchestrators.Kubernetes || props.orch === globalVariables.orchestrators.HostProtection) && ( <>
          • CentOS 7
          • Flatcar Container Linux
          • @@ -45,12 +45,12 @@ function NodeRequirementsOSS(props) {
          • Debian 8
          • )} - {props.orch === orchestrators.OpenShift && ( + {props.orch === globalVariables.orchestrators.OpenShift && ( <>
          • RedHat Container OS
          • )} - {props.orch === orchestrators.OpenStack && ( + {props.orch === globalVariables.orchestrators.OpenStack && ( <>
          • Ubuntu 18.04
          • CentOS 8
          • @@ -70,25 +70,25 @@ function NotesOSS() {

            Many Linux distributions, such as most of the above, include NetworkManager. By default, NetworkManager does - not allow {prodname} to manage interfaces. If your nodes have NetworkManager, complete the steps in{' '} - - Preventing NetworkManager from controlling {prodname} interfaces + not allow {variables.prodname} to manage interfaces. If your nodes have NetworkManager, complete the steps in{' '} + + Preventing NetworkManager from controlling {variables.prodname} interfaces {' '} - before installing {prodname}. + before installing {variables.prodname}.

            • If your Linux distribution comes with installed Firewalld or another iptables manager it should be disabled. - These may interfere with rules added by {prodname} and result in unexpected behavior. + These may interfere with rules added by {variables.prodname} and result in unexpected behavior.

            - If a host firewall is needed, it can be configured by {prodname} HostEndpoint and GlobalNetworkPolicy. More - information about configuration at Security for host. + If a host firewall is needed, it can be configured by {variables.prodname} HostEndpoint and GlobalNetworkPolicy. More + information about configuration at Security for host.

            @@ -106,13 +106,13 @@ function KeyValueStore(props) { Key/value store

            - {prodname} requires a key/value store accessible by all {prodname} components.  + {variables.prodname} requires a key/value store accessible by all {variables.prodname} components.  { { OpenShift: With OpenShift, the Kubernetes API datastore is used for the key/value store., Kubernetes: ( - On Kubernetes, you can configure {prodname} to access an etcdv3 cluster directly or to use the + On Kubernetes, you can configure {variables.prodname} to access an etcdv3 cluster directly or to use the Kubernetes API datastore. ), @@ -158,23 +158,23 @@ function NetworkRequirementsOSS(props) { - {prodname} networking (BGP) + {variables.prodname} networking (BGP) All Bidirectional TCP 179 - {prodname} networking with IP-in-IP enabled (default) + {variables.prodname} networking with IP-in-IP enabled (default) All Bidirectional IP-in-IP, often represented by its protocol number 4 - {props.orch === orchestrators.OpenShift && ( + {props.orch === globalVariables.orchestrators.OpenShift && ( <> - {prodname} networking with VXLAN enabled + {variables.prodname} networking with VXLAN enabled All Bidirectional UDP 4789 @@ -193,28 +193,28 @@ function NetworkRequirementsOSS(props) { )} - {props.orch === orchestrators.Kubernetes && ( + {props.orch === globalVariables.orchestrators.Kubernetes && ( <> - {prodname} networking with VXLAN enabled + {variables.prodname} networking with VXLAN enabled All Bidirectional UDP 4789 - {prodname} networking with Typha enabled + {variables.prodname} networking with Typha enabled Typha agent hosts Incoming TCP 5473 (default) - {prodname} networking with IPv4 Wireguard enabled + {variables.prodname} networking with IPv4 Wireguard enabled All Bidirectional UDP 51820 (default) - {prodname} networking with IPv6 Wireguard enabled + {variables.prodname} networking with IPv6 Wireguard enabled All Bidirectional UDP 51821 (default) @@ -244,7 +244,7 @@ function NetworkRequirementsOSS(props) { )} - {props.orch !== orchestrators.Kubernetes && props.orch !== orchestrators.OpenShift && ( + {props.orch !== globalVariables.orchestrators.Kubernetes && props.orch !== globalVariables.orchestrators.OpenShift && ( All etcd hosts @@ -259,7 +259,7 @@ function NetworkRequirementsOSS(props) { )} - {(props.orch === orchestrators.Kubernetes || props.orch === orchestrators.OpenShift) && ( + {(props.orch === globalVariables.orchestrators.Kubernetes || props.orch === globalVariables.orchestrators.OpenShift) && (

            *{' '} @@ -269,7 +269,7 @@ function NetworkRequirementsOSS(props) {

            )} - {props.orch === orchestrators.OpenStack && ( + {props.orch === globalVariables.orchestrators.OpenStack && (

            *{' '} @@ -291,15 +291,15 @@ function Privileges(props) { Privileges

            - Ensure that {prodname} has the CAP_SYS_ADMIN privilege. + Ensure that {variables.prodname} has the CAP_SYS_ADMIN privilege.

            - The simplest way to provide the necessary privilege is to run {prodname} as root or in a privileged container. + The simplest way to provide the necessary privilege is to run {variables.prodname} as root or in a privileged container.

            - {props.orch === orchestrators.Kubernetes && ( + {props.orch === globalVariables.orchestrators.Kubernetes && ( <>

            - When installed as a Kubernetes daemon set, {prodname} meets this requirement by running as a privileged + When installed as a Kubernetes daemon set, {variables.prodname} meets this requirement by running as a privileged container. This requires that the kubelet be allowed to run privileged containers. There are two ways this can be achieved.

            diff --git a/calico_versioned_docs/version-3.26/_includes/content/_docker-container-service.mdx b/calico_versioned_docs/version-3.26/_includes/content/_docker-container-service.mdx index e6fe4934cf..a95a500833 100644 --- a/calico_versioned_docs/version-3.26/_includes/content/_docker-container-service.mdx +++ b/calico_versioned_docs/version-3.26/_includes/content/_docker-container-service.mdx @@ -13,7 +13,7 @@ applied to other init daemons such as upstart. ### Step 1: Create environment file diff --git a/calico_versioned_docs/version-3.26/about/kubernetes-training/about-ebpf.mdx b/calico_versioned_docs/version-3.26/about/kubernetes-training/about-ebpf.mdx index e104930933..22fbb8aa6d 100644 --- a/calico_versioned_docs/version-3.26/about/kubernetes-training/about-ebpf.mdx +++ b/calico_versioned_docs/version-3.26/about/kubernetes-training/about-ebpf.mdx @@ -6,7 +6,7 @@ import variables from '@site/calico_versioned_docs/version-3.26/variables'; # About eBPF - +{/* Do not change the canonical_url above *or the title*. Content is shared with Marketing and is used for SEO purposes. If you change the title, it will mess up Marketing metrics. */} :::note diff --git a/calico_versioned_docs/version-3.26/about/kubernetes-training/about-k8s-networking.mdx b/calico_versioned_docs/version-3.26/about/kubernetes-training/about-k8s-networking.mdx index c70ed83155..169c779be1 100644 --- a/calico_versioned_docs/version-3.26/about/kubernetes-training/about-k8s-networking.mdx +++ b/calico_versioned_docs/version-3.26/about/kubernetes-training/about-k8s-networking.mdx @@ -6,7 +6,7 @@ import variables from '@site/calico_versioned_docs/version-3.26/variables'; # About Kubernetes Networking - +{/* Do not change the canonical_url above *or the title*. Content is shared with Marketing and is used for SEO purposes. If you change the title, it will mess up Marketing metrics. */} :::note diff --git a/calico_versioned_docs/version-3.26/getting-started/bare-metal/installation/binary-mgr.mdx b/calico_versioned_docs/version-3.26/getting-started/bare-metal/installation/binary-mgr.mdx index b4ec8880b9..27dd4e48e2 100644 --- a/calico_versioned_docs/version-3.26/getting-started/bare-metal/installation/binary-mgr.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/bare-metal/installation/binary-mgr.mdx @@ -4,11 +4,10 @@ description: Install Calico on non-cluster host using a package manager. import variables from '@site/calico_versioned_docs/version-3.26/variables'; import CodeBlock from '@theme/CodeBlock'; +import FelixInitDatastore from '@site/calico_versioned_docs/version-3.26/_includes/content/_felix-init-datastore.mdx'; # Binary install with package manager -import FelixInitDatastore from '@site/calico_versioned_docs/version-3.26/_includes/content/_felix-init-datastore.mdx'; - ## Big picture Install {variables.prodname} on non-cluster hosts using a package manager. @@ -62,7 +61,7 @@ is in state "wait-for-ready". The default location for the log file is ### Step 2: Configure the datastore connection diff --git a/calico_versioned_docs/version-3.26/getting-started/bare-metal/installation/binary.mdx b/calico_versioned_docs/version-3.26/getting-started/bare-metal/installation/binary.mdx index 430d63d6fd..0734dc65a7 100644 --- a/calico_versioned_docs/version-3.26/getting-started/bare-metal/installation/binary.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/bare-metal/installation/binary.mdx @@ -4,10 +4,10 @@ description: Install Calico binary on non-cluster hosts without a package manage import variables from '@site/calico_versioned_docs/version-3.26/variables'; import CodeBlock from '@theme/CodeBlock'; +import FelixInitDatastore from '@site/calico_versioned_docs/version-3.26/_includes/content/_felix-init-datastore.mdx'; -# Binary install without package manager -import FelixInitDatastore from '@site/calico_versioned_docs/version-3.26/_includes/content/_felix-init-datastore.mdx'; +# Binary install without package manager ## Big picture @@ -77,7 +77,7 @@ Copy the binary from Step 1 to the target machine, using any means (`scp`, `ftp` ### Step 3: Create environment file diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/flannel/install-for-flannel.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/flannel/install-for-flannel.mdx index c136020f29..366733ccb8 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/flannel/install-for-flannel.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/flannel/install-for-flannel.mdx @@ -64,7 +64,7 @@ The procedure differs according to your datastore type. Refer to the section tha The geeky details of what you get: @@ -103,6 +103,6 @@ etcd, complete the following steps. The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/k3s/multi-node-install.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/k3s/multi-node-install.mdx index 0bf277c9b6..29ada069cb 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/k3s/multi-node-install.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/k3s/multi-node-install.mdx @@ -22,7 +22,7 @@ K3s is a lightweight implementation of Kubernetes packaged as a single binary. The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/k3s/quickstart.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/k3s/quickstart.mdx index 11f028aaa5..19cb1b04cb 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/k3s/quickstart.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/k3s/quickstart.mdx @@ -24,7 +24,7 @@ Use this quickstart to quickly and easily try {variables.prodname} features. To The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/kind.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/kind.mdx index 22fe8bce85..96fcd3bfc1 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/kind.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/kind.mdx @@ -22,7 +22,7 @@ kind is a tool for running local Kubernetes clusters using Docker container "nod The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/aks.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/aks.mdx index 3ba41a49f7..af5662c7f8 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/aks.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/aks.mdx @@ -24,7 +24,7 @@ You can also use {variables.prodname} for networking on AKS in place of the defa The geeky details of what you get: @@ -41,7 +41,7 @@ To enable {variables.prodname} network policy enforcement, follow these step-by- The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/eks.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/eks.mdx index eba8aa5c73..6879fe25dd 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/eks.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/eks.mdx @@ -37,7 +37,7 @@ is configured correctly based on the version of Kubernetes being used in your cl The geeky details of what you get: @@ -89,7 +89,7 @@ The geeky details of what you get: The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/gke.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/gke.mdx index ba3586599a..e467f09523 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/gke.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/gke.mdx @@ -22,7 +22,7 @@ To enable {variables.prodname} network policy enforcement, follow these step-by- The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/iks.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/iks.mdx index c2794e6eb2..41528f097b 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/iks.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/managed-public-cloud/iks.mdx @@ -21,7 +21,7 @@ IKS has built-in support for {variables.prodname}, providing a robust implementa The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/microk8s.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/microk8s.mdx index ec06cf9da6..952fc2dc6d 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/microk8s.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/microk8s.mdx @@ -61,7 +61,7 @@ Use this quickstart to quickly and easily try {variables.prodname} features with The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/quickstart.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/quickstart.mdx index f5f07a3744..047737ccb2 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/quickstart.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/quickstart.mdx @@ -51,7 +51,7 @@ resources compared to those presented in this guide. The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/rancher.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/rancher.mdx index 7f9b312f48..2485ea181d 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/rancher.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/rancher.mdx @@ -18,7 +18,7 @@ Install {variables.prodname} as the required CNI for networking and/or network p The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-onprem/onpremises.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-onprem/onpremises.mdx index e9efd14acf..ae7e685bdc 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-onprem/onpremises.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-onprem/onpremises.mdx @@ -77,7 +77,7 @@ installed directly on the cluster as a Deployment, and is configured through one ``` @@ -117,7 +117,7 @@ The option, **Kubernetes API datastore, more than 50 nodes** provides scaling us The geeky details of what you get: @@ -169,7 +169,7 @@ The geeky details of what you get: The geeky details of what you get: @@ -207,7 +207,7 @@ The **etcd** database is not recommended for new installs. However, it is an opt The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/aws.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/aws.mdx index 9d50ecb0cb..22583d51fb 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/aws.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/aws.mdx @@ -73,7 +73,7 @@ To use kops to create a cluster with {variables.prodname} networking and network The geeky details of what you get: {' '} @@ -97,7 +97,7 @@ Then install {variables.prodname} for network policy only after the cluster is u The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/azure.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/azure.mdx index 9d4014a4ad..5276ef6942 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/azure.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/azure.mdx @@ -50,7 +50,7 @@ Then, [follow the aks-engine documentation to deploy your cluster](https://githu The geeky details of what you get: {' '} diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/do.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/do.mdx index 9892b39223..d3fe709646 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/do.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/do.mdx @@ -37,7 +37,7 @@ There are many ways to install and manage Kubernetes in DO. Using Kubernetes Ope The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/gce.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/gce.mdx index a51c177d16..4d87163555 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/gce.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/self-managed-public-cloud/gce.mdx @@ -212,7 +212,7 @@ worker-2 NotReady 5s v1.17.2 The geeky details of what you get: {' '} diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/vpp/getting-started.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/vpp/getting-started.mdx index 31a36a63fd..3f2625db06 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/vpp/getting-started.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/vpp/getting-started.mdx @@ -59,7 +59,7 @@ This guide details two ways to install {variables.prodname} with the VPP datapla In all cases, here are the details of what you will get: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/windows-calico/kubernetes/standard.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/windows-calico/kubernetes/standard.mdx index 49fb509687..744c9bd721 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/windows-calico/kubernetes/standard.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/windows-calico/kubernetes/standard.mdx @@ -40,7 +40,7 @@ Because the Kubernetes and {variables.prodname} control components do not run on The geeky details of what you get by default: diff --git a/calico_versioned_docs/version-3.26/getting-started/kubernetes/windows-calico/quickstart.mdx b/calico_versioned_docs/version-3.26/getting-started/kubernetes/windows-calico/quickstart.mdx index c853e9e0f9..97f6195acf 100644 --- a/calico_versioned_docs/version-3.26/getting-started/kubernetes/windows-calico/quickstart.mdx +++ b/calico_versioned_docs/version-3.26/getting-started/kubernetes/windows-calico/quickstart.mdx @@ -4,12 +4,11 @@ description: Install Calico for Windows on a Kubernetes cluster for testing or d import variables from '@site/calico_versioned_docs/version-3.26/variables'; import CodeBlock from '@theme/CodeBlock'; - -# Quickstart - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +# Quickstart + ## Big picture Install {variables.prodnameWindows} on your Kubernetes cluster in approximately 5 minutes. @@ -55,7 +54,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: @@ -64,7 +63,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: @@ -73,7 +72,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: @@ -82,7 +81,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: diff --git a/calico_versioned_docs/version-3.26/networking/determine-best-networking.mdx b/calico_versioned_docs/version-3.26/networking/determine-best-networking.mdx index 3bb77353d8..6fd87eb4ab 100644 --- a/calico_versioned_docs/version-3.26/networking/determine-best-networking.mdx +++ b/calico_versioned_docs/version-3.26/networking/determine-best-networking.mdx @@ -159,14 +159,14 @@ Flannel routes pod traffic using static per-node CIDRs obtained from the host-lo The most common network setup for {variables.prodname} on-prem is non-overlay mode using [BGP to peer](configuring/bgp.mdx) with the physical network (typically top of rack routers) to make pod IPs routable outside of the cluster. (You can of course configure the rest of your on-prem network to limit the scope of pod IP routing outside of the cluster if desired.) This setup provides a rich range of advanced {variables.prodname} features, including the ability to advertise Kubernetes service IPs (cluster IPs or external IPs), and the ability to control IP address management at the pod, namespace, or node level, to support a wide range of possibilities for integrating with existing enterprise network and security requirements. If peering BGP to the physical network is not an option, you can also run non-overlay mode if the cluster is within a single L2 network, with Calico just peering BGP between the nodes in the cluster. Even though this is not strictly an overlay network, the pod IPs are not routable outside of the cluster, because the broader network does not have routes for the pod IPs. @@ -175,14 +175,14 @@ Alternatively you can run {variables.prodname} in either VXLAN or IP-in-IP overl _Recommended:_ _Alternative:_ @@ -191,14 +191,14 @@ _Alternative:_ If you would like pod IP addresses to be routable outside of the cluster then you must use the Amazon VPC CNI plugin. This is the default networking mode for [EKS](https://aws.amazon.com/eks/), with Calico for network policy. Pod IP addresses are allocated from the underlying VPC and the maximum number of pods per node is dependent on the [instance type](https://github.com/aws/amazon-vpc-cni-k8s#eni-allocation). If you prefer to avoid dependencies on a specific cloud provider, or allocating pod IPs from the underlying VPC is problematic due to IP address range exhaustion challenges, or if the maximum number of pods supported per node by the Amazon VPC CNI plugin is not sufficient for your needs, we recommend using {variables.prodname} networking in cross-subnet overlay mode. Pod IPs will not be routable outside of the cluster, but you can scale the cluster up to the limits of Kubernetes with no dependencies on the underlying cloud network. @@ -209,7 +209,7 @@ You can learn more about Kubernetes Networking on AWS, including how each of the If you would like pod IP addresses to be routable outside of the cluster then you must use the Azure CNI plugin. This is supported by [AKS](https://azure.microsoft.com/en-us/services/kubernetes-service/), with Calico for network policy. Pod IP addresses are allocated from the underlying VNET. @@ -222,14 +222,14 @@ This is referred to as kubenet + Calico in some AKS docs, but it is actually Cal ::: If you aren’t using AKS, and prefer to avoid dependencies on a specific cloud provider or allocating pod IPs from the underlying VNET is problematic due to IP address range exhaustion challenges, we recommend using {variables.prodname} networking in cross-subnet overlay mode. Pod IPs will not be routable outside of the cluster, but you can scale the cluster up to the limits of Kubernetes with no dependencies on the underlying cloud network. @@ -240,7 +240,7 @@ You can learn more about Kubernetes Networking on Azure, including how each of t If you would like pod IP addresses to be routable outside of the cluster then you must use the Google cloud provider integration in conjunction with host-local IPAM CNI plugin. This is supported by [GKE](https://cloud.google.com/kubernetes-engine), with Calico for network policy. Pod IP addresses are allocated from the underlying VPC, and corresponding Alias IP addresses are automatically assigned to nodes. @@ -249,14 +249,14 @@ If you prefer to avoid dependencies on a specific cloud provider, or allocating _Recommended:_ _Alternative:_ @@ -267,7 +267,7 @@ You can learn more about Kubernetes Networking on Google cloud, including how ea If you are using IBM Cloud then we recommend using [IKS](https://www.ibm.com/products/kubernetes-service/), which has Calico built in to provide cross-subnet IP-in-IP overlay. In addition to providing network policy for pods, IKS also uses Calico network policies to [secure the hosts nodes](https://cloud.ibm.com/docs/containers?topic=containers-network_policies#default_policy) within the cluster. @@ -276,7 +276,7 @@ If you are using IBM Cloud then we recommend using [IKS](https://www.ibm.com/pro The above list of environments is obviously not exhaustive. Understanding the concepts and explanations in this guide has hopefully helped you figure out what is right for your environment. If you still aren't sure then you can ask for advice through the Calico Users's Slack or Discourse forum. And remember you can run Calico in VXLAN overlay mode in almost any environment if you want to get started without worrying too deeply about the different options. diff --git a/calico_versioned_docs/version-3.26/operations/calicoctl/install.mdx b/calico_versioned_docs/version-3.26/operations/calicoctl/install.mdx index 2e28dec0a6..9b2fbbe461 100644 --- a/calico_versioned_docs/version-3.26/operations/calicoctl/install.mdx +++ b/calico_versioned_docs/version-3.26/operations/calicoctl/install.mdx @@ -4,20 +4,16 @@ description: Install the CLI for Calico. import variables from '@site/calico_versioned_docs/version-3.26/variables'; import CodeBlock from '@theme/CodeBlock'; - -# Install calicoctl - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; - -import { releaseTitle } from '../../variables.js'; +# Install calicoctl export function buildUrl() { const url = - releaseTitle === 'master' + variables.releaseTitle === 'master' ? 'https://github.com/projectcalico/calico/releases/latest/download' - : `https://github.com/projectcalico/calico/releases/download/${releaseTitle}`; + : `https://github.com/projectcalico/calico/releases/download/${variables.releaseTitle}`; return url; } @@ -72,9 +68,9 @@ is installed. Typically for Kubernetes installations the Kubernetes datastore is You can run `calicoctl` on any host with network access to the {variables.prodname} datastore as either a binary or a container. For step-by-step instructions, refer to the section that corresponds to your desired deployment. - +{/*- Change download URL to latest release if user browsing master branch. -*/} - +{/*- For master, we hard-code a version since we don't host master releases of calicoctl. -*/} ## How to diff --git a/calico_versioned_docs/version-3.26/operations/upgrading/kubernetes-upgrade.mdx b/calico_versioned_docs/version-3.26/operations/upgrading/kubernetes-upgrade.mdx index 71803e761e..bacd5464ab 100644 --- a/calico_versioned_docs/version-3.26/operations/upgrading/kubernetes-upgrade.mdx +++ b/calico_versioned_docs/version-3.26/operations/upgrading/kubernetes-upgrade.mdx @@ -237,7 +237,7 @@ the output and then re-running the command without --dry-run to commit to the ch calicoctl version ``` - It should return a `Cluster Version` of `{variables.version}`. + It should return a `Cluster Version` of {variables.version}. 1. If you have [enabled application layer policy](../../network-policy/istio/app-layer-policy.mdx), follow [the instructions below](#upgrading-if-you-have-application-layer-policy-enabled) to complete your upgrade. Skip this if you are not using Istio with {variables.prodname}. diff --git a/calico_versioned_docs/version-3.26/reference/host-endpoints/connectivity.mdx b/calico_versioned_docs/version-3.26/reference/host-endpoints/connectivity.mdx index 8fa0114abd..c28e9d9af4 100644 --- a/calico_versioned_docs/version-3.26/reference/host-endpoints/connectivity.mdx +++ b/calico_versioned_docs/version-3.26/reference/host-endpoints/connectivity.mdx @@ -35,7 +35,7 @@ policy resource, which: When running this command, replace the placeholders in angle brackets with appropriate values for your deployment. - +{/* */} ```bash cat <` is an optional list of security profiles to apply to the endpoint and labels contains a set of arbitrary key/value pairs that can be used in selector expressions. - +{/* TODO(smc) data-model: Link to new data model docs. */} :::note diff --git a/calico_versioned_docs/version-3.26/release-notes/index.mdx b/calico_versioned_docs/version-3.26/release-notes/index.mdx index 72d4e2a7b4..2f70ceac7a 100644 --- a/calico_versioned_docs/version-3.26/release-notes/index.mdx +++ b/calico_versioned_docs/version-3.26/release-notes/index.mdx @@ -4,7 +4,6 @@ title: Release notes --- import variables from '@site/calico_versioned_docs/version-3.26/variables'; - import ReleaseNotes from '@site/calico_versioned_docs/version-3.26/_includes/components/ReleaseNotes'; # Release notes diff --git a/calico_versioned_docs/version-3.26/variables.js b/calico_versioned_docs/version-3.26/variables.js index 0a0b8c4ecf..e97c5027a3 100644 --- a/calico_versioned_docs/version-3.26/variables.js +++ b/calico_versioned_docs/version-3.26/variables.js @@ -1,4 +1,4 @@ -const releases = require('./releases.json'); +import releases from './releases.json'; const variables = { releaseTitle: 'v3.26.4', @@ -40,4 +40,4 @@ const variables = { }, }; -module.exports = variables; +export default variables; diff --git a/calico_versioned_docs/version-3.27/_includes/components/AutoHostendpointsMigrate.js b/calico_versioned_docs/version-3.27/_includes/components/AutoHostendpointsMigrate.js index 2fa83d4362..9edc7f4a9d 100644 --- a/calico_versioned_docs/version-3.27/_includes/components/AutoHostendpointsMigrate.js +++ b/calico_versioned_docs/version-3.27/_includes/components/AutoHostendpointsMigrate.js @@ -4,8 +4,7 @@ import Admonition from '@theme/Admonition'; import Link from '@docusaurus/Link'; import CodeBlock from '@theme/CodeBlock'; import Heading from '@theme/Heading'; - -import { prodname, baseUrl } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.27/variables'; export default function AutoHostendpointsMigrate(props) { return ( @@ -20,12 +19,12 @@ export default function AutoHostendpointsMigrate(props) { Auto host endpoints have an allow-all profile attached which allows all traffic in the absence of network policy. This may result in unexpected behavior and data. -

            In order to migrate existing all-interfaces host endpoints to {prodname}-managed auto host endpoints:

            +

            In order to migrate existing all-interfaces host endpoints to {variables.prodname}-managed auto host endpoints:

            1. Add any labels on existing all-interfaces host endpoints to their corresponding {props.orch} nodes.{' '} - {prodname} manages labels on automatic host endpoints by syncing labels from their nodes. Any labels on + {variables.prodname} manages labels on automatic host endpoints by syncing labels from their nodes. Any labels on existing all-interfaces host endpoints should be added to their respective nodes. For example, if your existing all-interface host endpoint for node node1 has the label{' '} environment: dev, then you must add that same label to its node: @@ -39,7 +38,7 @@ export default function AutoHostendpointsMigrate(props) {

            2. Enable auto host endpoints by following the{' '} - + enable automatic host endpoints how-to guide . Note that automatic host endpoints are created with a profile attached that allows all traffic in the @@ -52,7 +51,7 @@ export default function AutoHostendpointsMigrate(props) {

            3. - Delete old all-interfaces host endpoints. You can distinguish host endpoints managed by {prodname} from + Delete old all-interfaces host endpoints. You can distinguish host endpoints managed by {variables.prodname} from others in several ways. First, automatic host endpoints have the label{' '} projectcalico.org/created-by: calico-kube-controllers. Secondly, automatic host endpoints' name have the suffix -auto-hep. diff --git a/calico_versioned_docs/version-3.27/_includes/components/CalicoWindowsInstall.js b/calico_versioned_docs/version-3.27/_includes/components/CalicoWindowsInstall.js index 4a7f28f8e9..1debd6c4f7 100644 --- a/calico_versioned_docs/version-3.27/_includes/components/CalicoWindowsInstall.js +++ b/calico_versioned_docs/version-3.27/_includes/components/CalicoWindowsInstall.js @@ -3,8 +3,7 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import CodeBlock from '@theme/CodeBlock'; import Link from '@docusaurus/Link'; - -import { prodname, prodnameWindows } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.27/variables'; function CalicoWindowsInstallFirstStep(props) { if (props.networkingType === 'vxlan') { @@ -12,8 +11,8 @@ function CalicoWindowsInstallFirstStep(props) {

            4. Ensure that BGP is disabled.
                -
              • If you installed {prodname} using the manifest, BGP is already disabled.
              • -
              • If you installed {prodname} using the operator, run this command:
              • +
              • If you installed {variables.prodname} using the manifest, BGP is already disabled.
              • +
              • If you installed {variables.prodname} using the operator, run this command:

              • {`kubectl patch installation default --type=merge -p '{"spec": {"calicoNetwork": {"bgp": "Disabled"}}}'`} @@ -54,9 +53,9 @@ export default function CalicoWindowsInstall(props) {
              • - Get the cluster's Kubernetes API server host and port, which will be used to update the {prodnameWindows}{' '} - config map. The API server host and port is required so that the {prodnameWindows} installation script can - create a kubeconfig file for {prodname} services. If your Windows nodes already have {prodnameWindows}{' '} + Get the cluster's Kubernetes API server host and port, which will be used to update the {variables.prodnameWindows}{' '} + config map. The API server host and port is required so that the {variables.prodnameWindows} installation script can + create a kubeconfig file for {variables.prodname} services. If your Windows nodes already have {variables.prodnameWindows}{' '} installed manually, skip this step. The installation script will use the API server host and port from your node's existing kubeconfig file if the KUBERNETES_SERVICE_HOST and{' '} KUBERNETES_SERVICE_PORT variables are not provided in the calico-windows-config{' '} @@ -114,7 +113,7 @@ kubernetes 172.16.101.157:6443 40m`}

              • Create the kubernetes-services-endpoint ConfigMap with the Kubernetes API server - host and port (discovered in the previous step) used to create a kubeconfig file for {prodname} services. + host and port (discovered in the previous step) used to create a kubeconfig file for {variables.prodname} services. {`kubectl apply -f - << EOF kind: ConfigMap apiVersion: v1 @@ -136,7 +135,7 @@ EOF`}

              • - Add the Kubernetes service CIDR (discovered in the previous step) enable {prodnameWindows} on the Tigera operator installation resource. + Add the Kubernetes service CIDR (discovered in the previous step) enable {variables.prodnameWindows} on the Tigera operator installation resource.

                For example, with a Kubernetes service clusterIP range of 10.96.0.0/12: @@ -159,7 +158,7 @@ EOF`}

              • Monitor the installation.

                - The {prodnameWindows} HPC installation has 2 initContainers: uninstall-calico, which deals with removing previous manually installed {prodnameWindows} services, if any + The {variables.prodnameWindows} HPC installation has 2 initContainers: uninstall-calico, which deals with removing previous manually installed {variables.prodnameWindows} services, if any and install-cni, which installs needed CNI binaries and configuration, when using Calico CNI. kubectl logs -f -n calico-system -l k8s-app=calico-node-windows -c uninstall-calico{'\n'} @@ -167,7 +166,7 @@ EOF`}

                After these initContainers finish their execution, installation is complete. Next, the - {prodnameWindows} services are started in separate containers: + {variables.prodnameWindows} services are started in separate containers:

                kubectl logs -f -n calico-system -l k8s-app=calico-node-windows -c node{'\n'} diff --git a/calico_versioned_docs/version-3.27/_includes/components/ComponentVersions.js b/calico_versioned_docs/version-3.27/_includes/components/ComponentVersions.js index 77373871be..7115b97bc0 100644 --- a/calico_versioned_docs/version-3.27/_includes/components/ComponentVersions.js +++ b/calico_versioned_docs/version-3.27/_includes/components/ComponentVersions.js @@ -7,8 +7,6 @@ import { toKebab } from '@site/src/components/utils/formatters'; import variables from '../../variables'; export default function ComponentVersions() { - const { prodname, version, downloadsurl } = variables; - const releases = variables.releases.map((release) => { return release; }).filter(release => release); diff --git a/calico_versioned_docs/version-3.27/_includes/components/EnvironmentFile.js b/calico_versioned_docs/version-3.27/_includes/components/EnvironmentFile.js index cdeecc20ee..51ad10f6dc 100644 --- a/calico_versioned_docs/version-3.27/_includes/components/EnvironmentFile.js +++ b/calico_versioned_docs/version-3.27/_includes/components/EnvironmentFile.js @@ -5,8 +5,7 @@ import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import Link from '@docusaurus/Link'; - -import { prodname, baseUrl } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.27/variables'; export default function EnvironmentFile(props) { if (props.target === 'felix') { @@ -31,9 +30,9 @@ export default function EnvironmentFile(props) { host. For more help, see the{' '} {props.install === 'container' ? ( - {props.nodecontainer} configuration reference + {props.nodecontainer} configuration reference ) : ( - Felix configuration reference + Felix configuration reference )}

                @@ -139,9 +138,9 @@ export default function EnvironmentFile(props) { CALICO_IP or CALICO_IP6 - If values are not specified for both, {prodname} uses the currently-configured values for the next hop + If values are not specified for both, {variables.prodname} uses the currently-configured values for the next hop IP addresses for this node—these can be configured through the Node resource. If no next hop addresses - are configured, {prodname} automatically determines an IPv4 next hop address by querying the host + are configured, {variables.prodname} automatically determines an IPv4 next hop address by querying the host interfaces (and configures this value in the Node resource). You can set CALICO_IP to{' '} autodetect for force auto-detection of IP address every time the node starts. If you set IP addresses through these environment variables, it reconfigures any values currently set through the @@ -151,7 +150,7 @@ export default function EnvironmentFile(props) { CALICO_AS - If not specified, {prodname} uses the currently configured value for the AS Number for the node BGP + If not specified, {variables.prodname} uses the currently configured value for the AS Number for the node BGP client—this can be configured through the Node resource. If the Node resource value is not set, Calico inherits the AS Number from the global default value. If you set a value through this environment variable, it reconfigures any value currently set through the Node resource. @@ -160,7 +159,7 @@ export default function EnvironmentFile(props) { NO_DEFAULT_POOLS - Set to true to prevent {prodname} from creating a default pool if one does not exist. Pools are used + Set to true to prevent {variables.prodname} from creating a default pool if one does not exist. Pools are used for workload endpoints and not required for non-cluster hosts. diff --git a/calico_versioned_docs/version-3.27/_includes/components/HostEndpointsUpgrade.js b/calico_versioned_docs/version-3.27/_includes/components/HostEndpointsUpgrade.js index ebacc53bb8..29af2603e3 100644 --- a/calico_versioned_docs/version-3.27/_includes/components/HostEndpointsUpgrade.js +++ b/calico_versioned_docs/version-3.27/_includes/components/HostEndpointsUpgrade.js @@ -2,8 +2,7 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import CodeBlock from '@theme/CodeBlock'; import Heading from '@theme/Heading'; - -import { prodname, version } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.27/variables'; export default function HostEndpointsUpgrade(props) { return ( @@ -19,7 +18,7 @@ export default function HostEndpointsUpgrade(props) { upgrading. Failure to do so will result in an outage.

                - In versions of {prodname} prior to v3.14, all-interfaces host endpoints (host endpoints with{' '} + In versions of {variables.prodname} prior to v3.14, all-interfaces host endpoints (host endpoints with{' '} interfaceName: *) only supported pre-DNAT policy. The default behavior of all-interfaces host endpoints, in the absence of any policy, was to allow all traffic.

                @@ -31,7 +30,7 @@ export default function HostEndpointsUpgrade(props) { endpoints drop traffic in the absence of policy.

                - Before upgrading to {version}, you must ensure that global network policies are in place that select existing + Before upgrading to {variables.version}, you must ensure that global network policies are in place that select existing all-interfaces host endpoints and explicitly allow existing traffic flows. As a starting point, you can create an allow-all policy that selects existing all-interfaces host endpoints. First, we'll add a label to the existing host endpoints. Get a list of the nodes that have an all-interfaces host endpoint: diff --git a/calico_versioned_docs/version-3.27/_includes/components/InstallOpenShiftManifests.js b/calico_versioned_docs/version-3.27/_includes/components/InstallOpenShiftManifests.js index 9a34a4307f..48315fbcf0 100644 --- a/calico_versioned_docs/version-3.27/_includes/components/InstallOpenShiftManifests.js +++ b/calico_versioned_docs/version-3.27/_includes/components/InstallOpenShiftManifests.js @@ -1,16 +1,14 @@ import React from 'react'; - import CodeBlock from '@theme/CodeBlock'; - -import { prodname, releaseTitle, calicoReleasesURL } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.27/variables'; export default function InstallOpenShiftManifests() { return ( <> -

                Download the {prodname} manifests for OpenShift and add them to the generated manifests directory:

                +

                Download the {variables.prodname} manifests for OpenShift and add them to the generated manifests directory:

                {`mkdir calico -wget -qO- ${calicoReleasesURL}/${releaseTitle}/ocp.tgz | tar xvz --strip-components=1 -C calico +wget -qO- ${variables.calicoReleasesURL}/${variables.releaseTitle}/ocp.tgz | tar xvz --strip-components=1 -C calico cp calico/* manifests/`} diff --git a/calico_versioned_docs/version-3.27/_includes/components/MaintenanceImageOptionsAlternateRegistry.js b/calico_versioned_docs/version-3.27/_includes/components/MaintenanceImageOptionsAlternateRegistry.js index 498b90bc4f..7756d56188 100644 --- a/calico_versioned_docs/version-3.27/_includes/components/MaintenanceImageOptionsAlternateRegistry.js +++ b/calico_versioned_docs/version-3.27/_includes/components/MaintenanceImageOptionsAlternateRegistry.js @@ -1,10 +1,10 @@ // Temporary component for "calico\maintenance\image-options\alternate-registry.mdx" import React from 'react'; - import CodeBlock from '@theme/CodeBlock'; +import variables from '../../variables'; -import { imageNames, prodname, registry, releases, tigeraOperator } from '../../variables'; +const { imageNames, prodname, registry, releases, tigeraOperator } = variables; export default function MaintenanceImageOptionsAlternateRegistry() { const pullCmds = renderRetagCommands( diff --git a/calico_versioned_docs/version-3.27/_includes/components/ReqsKernel.js b/calico_versioned_docs/version-3.27/_includes/components/ReqsKernel.js index ed796bdf49..ecfb43caf1 100644 --- a/calico_versioned_docs/version-3.27/_includes/components/ReqsKernel.js +++ b/calico_versioned_docs/version-3.27/_includes/components/ReqsKernel.js @@ -1,8 +1,7 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import Heading from '@theme/Heading'; - -import { prodname } from '../../variables'; +import variables from '../../variables'; export default function ReqsKernel() { return ( @@ -18,14 +17,14 @@ export default function ReqsKernel() {

                Due to the large number of distributions and kernel version out there, it’s hard to be precise about the names - of the particular kernel modules that are required to run {prodname}. However, in general, you’ll need: + of the particular kernel modules that are required to run {variables.prodname}. However, in general, you’ll need:

                • The iptables modules (both the “legacy” and “nft” variants are supported). These are typically broken up into many small modules, one for each type of match criteria and one for each type of action.{' '} - {prodname} requires: + {variables.prodname} requires:

                  • The “base” modules (including the IPv6 versions if IPv6 is enabled in your cluster).
                  • @@ -55,7 +54,7 @@ export default function ReqsKernel() {
                  • - IPIP, VXLAN, Wireguard support, if using {prodname} + IPIP, VXLAN, Wireguard support, if using {variables.prodname} networking in one of those modes.

                  • diff --git a/calico_versioned_docs/version-3.27/_includes/components/ReqsSys.js b/calico_versioned_docs/version-3.27/_includes/components/ReqsSys.js index 4ad7641c69..61a75e5005 100644 --- a/calico_versioned_docs/version-3.27/_includes/components/ReqsSys.js +++ b/calico_versioned_docs/version-3.27/_includes/components/ReqsSys.js @@ -3,9 +3,9 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import Link from '@docusaurus/Link'; import Heading from '@theme/Heading'; +import variables from '../../variables'; +import globalVariables from '@site/variables'; -import { orchestrators } from '@site/variables'; -import { prodname, baseUrl } from '../../variables'; function NodeRequirementsOSS(props) { return ( @@ -22,9 +22,9 @@ function NodeRequirementsOSS(props) {
                  • - {prodname} must be able to manage cali* interfaces on the host. When IPIP is enabled (the - default), {prodname} also needs to be able to manage tunl* interfaces. When VXLAN is enabled,{' '} - {prodname} also needs to be able to manage the + {variables.prodname} must be able to manage cali* interfaces on the host. When IPIP is enabled (the + default), {variables.prodname} also needs to be able to manage tunl* interfaces. When VXLAN is enabled,{' '} + {variables.prodname} also needs to be able to manage the vxlan.calico interface.

                  • @@ -32,11 +32,11 @@ function NodeRequirementsOSS(props) {

                    Linux kernel 3.10 or later with required dependencies. The following distributions have the required kernel, its dependencies, and are known to work well with{' '} - {prodname} and {props.orch}. + {variables.prodname} and {props.orch}.

                    • RedHat Linux 7
                    • - {(props.orch === orchestrators.Kubernetes || props.orch === orchestrators.HostProtection) && ( + {(props.orch === globalVariables.orchestrators.Kubernetes || props.orch === globalVariables.orchestrators.HostProtection) && ( <>
                    • CentOS 7
                    • Flatcar Container Linux
                    • @@ -45,12 +45,12 @@ function NodeRequirementsOSS(props) {
                    • Debian 8
                    • )} - {props.orch === orchestrators.OpenShift && ( + {props.orch === globalVariables.orchestrators.OpenShift && ( <>
                    • RedHat Container OS
                    • )} - {props.orch === orchestrators.OpenStack && ( + {props.orch === globalVariables.orchestrators.OpenStack && ( <>
                    • Ubuntu 18.04
                    • CentOS 8
                    • @@ -70,25 +70,25 @@ function NotesOSS() {

                      Many Linux distributions, such as most of the above, include NetworkManager. By default, NetworkManager does - not allow {prodname} to manage interfaces. If your nodes have NetworkManager, complete the steps in{' '} - - Preventing NetworkManager from controlling {prodname} interfaces + not allow {variables.prodname} to manage interfaces. If your nodes have NetworkManager, complete the steps in{' '} + + Preventing NetworkManager from controlling {variables.prodname} interfaces {' '} - before installing {prodname}. + before installing {variables.prodname}.

                      • If your Linux distribution comes with installed Firewalld or another iptables manager it should be disabled. - These may interfere with rules added by {prodname} and result in unexpected behavior. + These may interfere with rules added by {variables.prodname} and result in unexpected behavior.

                      - If a host firewall is needed, it can be configured by {prodname} HostEndpoint and GlobalNetworkPolicy. More - information about configuration at Security for host. + If a host firewall is needed, it can be configured by {variables.prodname} HostEndpoint and GlobalNetworkPolicy. More + information about configuration at Security for host.

                      @@ -106,13 +106,13 @@ function KeyValueStore(props) { Key/value store

                      - {prodname} requires a key/value store accessible by all {prodname} components.  + {variables.prodname} requires a key/value store accessible by all {variables.prodname} components.  { { OpenShift: With OpenShift, the Kubernetes API datastore is used for the key/value store., Kubernetes: ( - On Kubernetes, you can configure {prodname} to access an etcdv3 cluster directly or to use the + On Kubernetes, you can configure {variables.prodname} to access an etcdv3 cluster directly or to use the Kubernetes API datastore. ), @@ -158,23 +158,23 @@ function NetworkRequirementsOSS(props) { - {prodname} networking (BGP) + {variables.prodname} networking (BGP) All Bidirectional TCP 179 - {prodname} networking with IP-in-IP enabled (default) + {variables.prodname} networking with IP-in-IP enabled (default) All Bidirectional IP-in-IP, often represented by its protocol number 4 - {props.orch === orchestrators.OpenShift && ( + {props.orch === globalVariables.orchestrators.OpenShift && ( <> - {prodname} networking with VXLAN enabled + {variables.prodname} networking with VXLAN enabled All Bidirectional UDP 4789 @@ -193,28 +193,28 @@ function NetworkRequirementsOSS(props) { )} - {props.orch === orchestrators.Kubernetes && ( + {props.orch === globalVariables.orchestrators.Kubernetes && ( <> - {prodname} networking with VXLAN enabled + {variables.prodname} networking with VXLAN enabled All Bidirectional UDP 4789 - {prodname} networking with Typha enabled + {variables.prodname} networking with Typha enabled Typha agent hosts Incoming TCP 5473 (default) - {prodname} networking with IPv4 Wireguard enabled + {variables.prodname} networking with IPv4 Wireguard enabled All Bidirectional UDP 51820 (default) - {prodname} networking with IPv6 Wireguard enabled + {variables.prodname} networking with IPv6 Wireguard enabled All Bidirectional UDP 51821 (default) @@ -244,7 +244,7 @@ function NetworkRequirementsOSS(props) { )} - {props.orch !== orchestrators.Kubernetes && props.orch !== orchestrators.OpenShift && ( + {props.orch !== globalVariables.orchestrators.Kubernetes && props.orch !== globalVariables.orchestrators.OpenShift && ( All etcd hosts @@ -259,7 +259,7 @@ function NetworkRequirementsOSS(props) { )} - {(props.orch === orchestrators.Kubernetes || props.orch === orchestrators.OpenShift) && ( + {(props.orch === globalVariables.orchestrators.Kubernetes || props.orch === globalVariables.orchestrators.OpenShift) && (

                      *{' '} @@ -269,7 +269,7 @@ function NetworkRequirementsOSS(props) {

                      )} - {props.orch === orchestrators.OpenStack && ( + {props.orch === globalVariables.orchestrators.OpenStack && (

                      *{' '} @@ -291,15 +291,15 @@ function Privileges(props) { Privileges

                      - Ensure that {prodname} has the CAP_SYS_ADMIN privilege. + Ensure that {variables.prodname} has the CAP_SYS_ADMIN privilege.

                      - The simplest way to provide the necessary privilege is to run {prodname} as root or in a privileged container. + The simplest way to provide the necessary privilege is to run {variables.prodname} as root or in a privileged container.

                      - {props.orch === orchestrators.Kubernetes && ( + {props.orch === globalVariables.orchestrators.Kubernetes && ( <>

                      - When installed as a Kubernetes daemon set, {prodname} meets this requirement by running as a privileged + When installed as a Kubernetes daemon set, {variables.prodname} meets this requirement by running as a privileged container. This requires that the kubelet be allowed to run privileged containers. There are two ways this can be achieved.

                      diff --git a/calico_versioned_docs/version-3.27/_includes/content/_docker-container-service.mdx b/calico_versioned_docs/version-3.27/_includes/content/_docker-container-service.mdx index d472c46b63..57bfaef099 100644 --- a/calico_versioned_docs/version-3.27/_includes/content/_docker-container-service.mdx +++ b/calico_versioned_docs/version-3.27/_includes/content/_docker-container-service.mdx @@ -13,7 +13,7 @@ applied to other init daemons such as upstart. ### Step 1: Create environment file diff --git a/calico_versioned_docs/version-3.27/_includes/release-notes/_master-release-notes.mdx b/calico_versioned_docs/version-3.27/_includes/release-notes/_master-release-notes.mdx index b33d545039..e270eb4bc3 100644 --- a/calico_versioned_docs/version-3.27/_includes/release-notes/_master-release-notes.mdx +++ b/calico_versioned_docs/version-3.27/_includes/release-notes/_master-release-notes.mdx @@ -2,12 +2,12 @@ import variables from '@site/calico_versioned_docs/version-3.27/variables'; import CodeBlock from '@theme/CodeBlock'; _Dateline_ - +*/} ### What's new {#whats-new-v0.1.0} #### New feature 1 diff --git a/calico_versioned_docs/version-3.27/about/kubernetes-training/about-ebpf.mdx b/calico_versioned_docs/version-3.27/about/kubernetes-training/about-ebpf.mdx index f636a9e1ec..8a9033402c 100644 --- a/calico_versioned_docs/version-3.27/about/kubernetes-training/about-ebpf.mdx +++ b/calico_versioned_docs/version-3.27/about/kubernetes-training/about-ebpf.mdx @@ -6,7 +6,7 @@ import variables from '@site/calico_versioned_docs/version-3.27/variables'; # About eBPF - +{/* Do not change the canonical_url above *or the title*. Content is shared with Marketing and is used for SEO purposes. If you change the title, it will mess up Marketing metrics. */} :::note diff --git a/calico_versioned_docs/version-3.27/about/kubernetes-training/about-k8s-networking.mdx b/calico_versioned_docs/version-3.27/about/kubernetes-training/about-k8s-networking.mdx index d6935324ab..58e475d401 100644 --- a/calico_versioned_docs/version-3.27/about/kubernetes-training/about-k8s-networking.mdx +++ b/calico_versioned_docs/version-3.27/about/kubernetes-training/about-k8s-networking.mdx @@ -6,7 +6,7 @@ import variables from '@site/calico_versioned_docs/version-3.27/variables'; # About Kubernetes Networking - +{/* Do not change the canonical_url above *or the title*. Content is shared with Marketing and is used for SEO purposes. If you change the title, it will mess up Marketing metrics. */} :::note diff --git a/calico_versioned_docs/version-3.27/getting-started/bare-metal/installation/binary-mgr.mdx b/calico_versioned_docs/version-3.27/getting-started/bare-metal/installation/binary-mgr.mdx index cfefff6e2b..4ae402326a 100644 --- a/calico_versioned_docs/version-3.27/getting-started/bare-metal/installation/binary-mgr.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/bare-metal/installation/binary-mgr.mdx @@ -4,11 +4,10 @@ description: Install Calico on non-cluster host using a package manager. import variables from '@site/calico_versioned_docs/version-3.27/variables'; import CodeBlock from '@theme/CodeBlock'; +import FelixInitDatastore from '@site/calico_versioned_docs/version-3.27/_includes/content/_felix-init-datastore.mdx'; # Binary install with package manager -import FelixInitDatastore from '@site/calico_versioned_docs/version-3.27/_includes/content/_felix-init-datastore.mdx'; - ## Big picture Install {variables.prodname} on non-cluster hosts using a package manager. @@ -64,7 +63,7 @@ is in state "wait-for-ready". The default location for the log file is ### Step 2: Configure the datastore connection diff --git a/calico_versioned_docs/version-3.27/getting-started/bare-metal/installation/binary.mdx b/calico_versioned_docs/version-3.27/getting-started/bare-metal/installation/binary.mdx index 0a8e822746..8d19b15ae7 100644 --- a/calico_versioned_docs/version-3.27/getting-started/bare-metal/installation/binary.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/bare-metal/installation/binary.mdx @@ -4,11 +4,10 @@ description: Install Calico binary on non-cluster hosts without a package manage import variables from '@site/calico_versioned_docs/version-3.27/variables'; import CodeBlock from '@theme/CodeBlock'; +import FelixInitDatastore from '@site/calico_versioned_docs/version-3.27/_includes/content/_felix-init-datastore.mdx'; # Binary install without package manager -import FelixInitDatastore from '@site/calico_versioned_docs/version-3.27/_includes/content/_felix-init-datastore.mdx'; - ## Big picture Install {variables.prodname} binary on non-cluster hosts without a package manager. @@ -77,7 +76,7 @@ Copy the binary from Step 1 to the target machine, using any means (`scp`, `ftp` ### Step 3: Create environment file diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/flannel/install-for-flannel.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/flannel/install-for-flannel.mdx index e641a67555..52862acf78 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/flannel/install-for-flannel.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/flannel/install-for-flannel.mdx @@ -64,7 +64,7 @@ The procedure differs according to your datastore type. Refer to the section tha The geeky details of what you get: @@ -103,6 +103,6 @@ etcd, complete the following steps. The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/k3s/multi-node-install.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/k3s/multi-node-install.mdx index a62a095516..417fb7d4d6 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/k3s/multi-node-install.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/k3s/multi-node-install.mdx @@ -22,7 +22,7 @@ K3s is a lightweight implementation of Kubernetes packaged as a single binary. The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/k3s/quickstart.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/k3s/quickstart.mdx index 6cbe247c7b..d7bba3b968 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/k3s/quickstart.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/k3s/quickstart.mdx @@ -24,7 +24,7 @@ Use this quickstart to quickly and easily try {variables.prodname} features. To The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/kind.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/kind.mdx index 54732a446b..43ee0ebae2 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/kind.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/kind.mdx @@ -22,7 +22,7 @@ kind is a tool for running local Kubernetes clusters using Docker container "nod The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/aks.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/aks.mdx index 1ad3152878..e1626853e8 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/aks.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/aks.mdx @@ -24,7 +24,7 @@ You can also use {variables.prodname} for networking on AKS in place of the defa The geeky details of what you get: @@ -33,7 +33,7 @@ Alternatively you can run in Azure CNI overlay mode. The geeky details of what you get: @@ -50,7 +50,7 @@ To enable {variables.prodname} network policy enforcement, follow these step-by- The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/eks.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/eks.mdx index 828d19aaea..3f3e6097f6 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/eks.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/eks.mdx @@ -37,7 +37,7 @@ is configured correctly based on the version of Kubernetes being used in your cl The geeky details of what you get: @@ -90,7 +90,7 @@ To enable {variables.prodname} network policy enforcement on an EKS cluster usin The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/gke.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/gke.mdx index cc023d39a1..42100d563e 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/gke.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/gke.mdx @@ -22,7 +22,7 @@ To enable {variables.prodname} network policy enforcement, follow these step-by- The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/iks.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/iks.mdx index 410f99e56a..854e219e5e 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/iks.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/managed-public-cloud/iks.mdx @@ -21,7 +21,7 @@ IKS has built-in support for {variables.prodname}, providing a robust implementa The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/microk8s.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/microk8s.mdx index 5df6099965..d46548fb20 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/microk8s.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/microk8s.mdx @@ -61,7 +61,7 @@ Use this quickstart to quickly and easily try {variables.prodname} features with The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/quickstart.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/quickstart.mdx index 3de6a0bdf3..85427c4587 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/quickstart.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/quickstart.mdx @@ -51,7 +51,7 @@ resources compared to those presented in this guide. The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/rancher.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/rancher.mdx index 51576d6e51..4c38ca3002 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/rancher.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/rancher.mdx @@ -18,7 +18,7 @@ Install {variables.prodname} as the required CNI for networking and/or network p The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-onprem/onpremises.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-onprem/onpremises.mdx index f0d07c6cf7..134f6e10f6 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-onprem/onpremises.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-onprem/onpremises.mdx @@ -77,7 +77,7 @@ installed directly on the cluster as a Deployment, and is configured through one ``` @@ -117,7 +117,7 @@ The option, **Kubernetes API datastore, more than 50 nodes** provides scaling us The geeky details of what you get: @@ -169,7 +169,7 @@ The geeky details of what you get: The geeky details of what you get: @@ -207,7 +207,7 @@ The **etcd** database is not recommended for new installs. However, it is an opt The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/aws.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/aws.mdx index 6aadb666eb..73590396d7 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/aws.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/aws.mdx @@ -73,7 +73,7 @@ To use kops to create a cluster with {variables.prodname} networking and network The geeky details of what you get: {' '} @@ -97,7 +97,7 @@ Then install {variables.prodname} for network policy only after the cluster is u The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/azure.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/azure.mdx index 402b08e506..83b4a30483 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/azure.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/azure.mdx @@ -50,7 +50,7 @@ Then, [follow the aks-engine documentation to deploy your cluster](https://githu The geeky details of what you get: {' '} diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/do.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/do.mdx index 42fc3f52b5..7a0c5827bf 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/do.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/do.mdx @@ -37,7 +37,7 @@ There are many ways to install and manage Kubernetes in DO. Using Kubernetes Ope The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/gce.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/gce.mdx index 3e00524f44..f37fea096c 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/gce.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/self-managed-public-cloud/gce.mdx @@ -212,7 +212,7 @@ worker-2 NotReady 5s v1.17.2 The geeky details of what you get: {' '} diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/vpp/getting-started.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/vpp/getting-started.mdx index f1d5fc8771..ce753ba203 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/vpp/getting-started.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/vpp/getting-started.mdx @@ -58,7 +58,7 @@ This guide details ways to install {variables.prodname} with the VPP dataplane: In all cases, here are the details of what you will get: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/openshift-installation.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/openshift-installation.mdx index 457dae8d52..fe2cd1c7b0 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/openshift-installation.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/openshift-installation.mdx @@ -130,7 +130,7 @@ To get more information, add `-o yaml` to the above command. ::: - +{/*FIXME: check if calicoctl can be replaced by kubectl here (i.e. check if the calico apiserver runs fine with these steps)*/} Next, [install calicoctl](../../../../operations/calicoctl/install.mdx) and ensure strict affinity is true: ```bash @@ -139,8 +139,8 @@ calicoctl patch ipamconfigurations default --type merge --patch='{"spec": {"stri ### Add Windows nodes to the cluster - +{/*FIXME: on more recent openshift versions, there is no WNI and now Windows machines are supposed to be added via the + Red Hat Windows Machine Config Operator (WMCO). This might need substantial changes to this guide.*/} Download the latest [Windows Node Installer (WNI)](https://github.com/openshift/windows-machine-config-bootstrapper/releases) binary `wni` that matches your OpenShift minor version. :::note diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/quickstart.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/quickstart.mdx index fe1518e369..908fbb724b 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/quickstart.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/quickstart.mdx @@ -60,7 +60,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: @@ -69,7 +69,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: @@ -78,7 +78,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: @@ -87,7 +87,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/standard.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/standard.mdx index b42372d71b..136692392e 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/standard.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/manual-install/standard.mdx @@ -48,7 +48,7 @@ Because the Kubernetes and {variables.prodname} control components do not run on The geeky details of what you get by default: @@ -204,7 +204,7 @@ The script will pause at the first stage until {variables.prodname} is installed **If using {variables.prodname} BGP networking** - +{/*FIXME: update for operator linux installation*/} 1. Disable the default {variables.prodname} IP-in-IP networking (which is not compatible with Windows), by modifying the {variables.prodname} manifest, and setting the `CALICO_IPV4POOL_IPIP` environment variable to "Never" before applying the manifest. If you do apply the manifest with the incorrect value, changing the manifest and re-applying will have no effect. To adjust the already-created IP pool: @@ -221,7 +221,7 @@ The script will pause at the first stage until {variables.prodname} is installed **If using {variables.prodname} VXLAN networking** - +{/*FIXME: update for operator linux installation*/} 1. Modify VXLAN as described in [Customize the manifests](../../self-managed-onprem/config-options.mdx) guide. Note the following: - Windows can support only a single type of IP pool so it is important that you use only a single VXLAN IP pool in this mode. @@ -322,7 +322,7 @@ After you run the installer, do not move the directory because the service regis Get-Service -Name CalicoFelix ``` ### Operator install - +{/*FIXME: is there a need for more detailed steps here? should the steps be written out here instead of linking?*/} - Refer to [this guide for the steps to install {variables.prodnameWindows} using the Operator and Windows hostprocess containers (HPC)](../operator.mdx) diff --git a/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/operator.mdx b/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/operator.mdx index 344246a889..51a1fc0d2c 100644 --- a/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/operator.mdx +++ b/calico_versioned_docs/version-3.27/getting-started/kubernetes/windows-calico/operator.mdx @@ -4,12 +4,11 @@ description: Install Calico for Windows on a Kubernetes cluster for testing or d import variables from '@site/calico_versioned_docs/version-3.27/variables'; import CodeBlock from '@theme/CodeBlock'; - -# Install using Operator - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +# Install using Operator + ## Big picture Install {variables.prodnameWindows} on your Kubernetes cluster using the Tigera Operator. diff --git a/calico_versioned_docs/version-3.27/networking/determine-best-networking.mdx b/calico_versioned_docs/version-3.27/networking/determine-best-networking.mdx index 4ab977b238..f075ce6d06 100644 --- a/calico_versioned_docs/version-3.27/networking/determine-best-networking.mdx +++ b/calico_versioned_docs/version-3.27/networking/determine-best-networking.mdx @@ -159,14 +159,14 @@ Flannel routes pod traffic using static per-node CIDRs obtained from the host-lo The most common network setup for {variables.prodname} on-prem is non-overlay mode using [BGP to peer](configuring/bgp.mdx) with the physical network (typically top of rack routers) to make pod IPs routable outside of the cluster. (You can of course configure the rest of your on-prem network to limit the scope of pod IP routing outside of the cluster if desired.) This setup provides a rich range of advanced {variables.prodname} features, including the ability to advertise Kubernetes service IPs (cluster IPs or external IPs), and the ability to control IP address management at the pod, namespace, or node level, to support a wide range of possibilities for integrating with existing enterprise network and security requirements. If peering BGP to the physical network is not an option, you can also run non-overlay mode if the cluster is within a single L2 network, with Calico just peering BGP between the nodes in the cluster. Even though this is not strictly an overlay network, the pod IPs are not routable outside of the cluster, because the broader network does not have routes for the pod IPs. @@ -175,14 +175,14 @@ Alternatively you can run {variables.prodname} in either VXLAN or IP-in-IP overl _Recommended:_ _Alternative:_ @@ -191,14 +191,14 @@ _Alternative:_ If you would like pod IP addresses to be routable outside of the cluster then you must use the Amazon VPC CNI plugin. This is the default networking mode for [EKS](https://aws.amazon.com/eks/), with Calico for network policy. Pod IP addresses are allocated from the underlying VPC and the maximum number of pods per node is dependent on the [instance type](https://github.com/aws/amazon-vpc-cni-k8s#eni-allocation). If you prefer to avoid dependencies on a specific cloud provider, or allocating pod IPs from the underlying VPC is problematic due to IP address range exhaustion challenges, or if the maximum number of pods supported per node by the Amazon VPC CNI plugin is not sufficient for your needs, we recommend using {variables.prodname} networking in cross-subnet overlay mode. Pod IPs will not be routable outside of the cluster, but you can scale the cluster up to the limits of Kubernetes with no dependencies on the underlying cloud network. @@ -209,14 +209,14 @@ You can learn more about Kubernetes Networking on AWS, including how each of the If you would like pod IP addresses to be routable outside of the cluster then you must use the Azure CNI plugin. This is supported by [AKS](https://azure.microsoft.com/en-us/services/kubernetes-service/), with Calico for network policy. Pod IP addresses are allocated from the underlying VNET. Alternatively you can run {variables.prodname} in Azure CNI overlay mode. @@ -229,14 +229,14 @@ This is referred to as kubenet + Calico in some AKS docs, but it is actually Cal ::: If you aren’t using AKS, and prefer to avoid dependencies on a specific cloud provider or allocating pod IPs from the underlying VNET is problematic due to IP address range exhaustion challenges, we recommend using {variables.prodname} networking in cross-subnet overlay mode. Pod IPs will not be routable outside of the cluster, but you can scale the cluster up to the limits of Kubernetes with no dependencies on the underlying cloud network. @@ -247,7 +247,7 @@ You can learn more about Kubernetes Networking on Azure, including how each of t If you would like pod IP addresses to be routable outside of the cluster then you must use the Google cloud provider integration in conjunction with host-local IPAM CNI plugin. This is supported by [GKE](https://cloud.google.com/kubernetes-engine), with Calico for network policy. Pod IP addresses are allocated from the underlying VPC, and corresponding Alias IP addresses are automatically assigned to nodes. @@ -256,14 +256,14 @@ If you prefer to avoid dependencies on a specific cloud provider, or allocating _Recommended:_ _Alternative:_ @@ -274,7 +274,7 @@ You can learn more about Kubernetes Networking on Google cloud, including how ea If you are using IBM Cloud then we recommend using [IKS](https://www.ibm.com/products/kubernetes-service/), which has Calico built in to provide cross-subnet IP-in-IP overlay. In addition to providing network policy for pods, IKS also uses Calico network policies to [secure the hosts nodes](https://cloud.ibm.com/docs/containers?topic=containers-network_policies#default_policy) within the cluster. @@ -283,7 +283,7 @@ If you are using IBM Cloud then we recommend using [IKS](https://www.ibm.com/pro The above list of environments is obviously not exhaustive. Understanding the concepts and explanations in this guide has hopefully helped you figure out what is right for your environment. If you still aren't sure then you can ask for advice through the Calico Users's Slack or Discourse forum. And remember you can run Calico in VXLAN overlay mode in almost any environment if you want to get started without worrying too deeply about the different options. diff --git a/calico_versioned_docs/version-3.27/operations/calicoctl/install.mdx b/calico_versioned_docs/version-3.27/operations/calicoctl/install.mdx index 6be70d7976..bf680f0fa8 100644 --- a/calico_versioned_docs/version-3.27/operations/calicoctl/install.mdx +++ b/calico_versioned_docs/version-3.27/operations/calicoctl/install.mdx @@ -4,20 +4,16 @@ description: Install the CLI for Calico. import variables from '@site/calico_versioned_docs/version-3.27/variables'; import CodeBlock from '@theme/CodeBlock'; - -# Install calicoctl - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; - -import { releaseTitle } from '../../variables.js'; +# Install calicoctl export function buildUrl() { const url = - releaseTitle === 'master' + variables.releaseTitle === 'master' ? 'https://github.com/projectcalico/calico/releases/latest/download' - : `https://github.com/projectcalico/calico/releases/download/${releaseTitle}`; + : `https://github.com/projectcalico/calico/releases/download/${variables.releaseTitle}`; return url; } @@ -72,9 +68,9 @@ is installed. Typically for Kubernetes installations the Kubernetes datastore is You can run `calicoctl` on any host with network access to the {variables.prodname} datastore as either a binary or a container. For step-by-step instructions, refer to the section that corresponds to your desired deployment. - +{/*- Change download URL to latest release if user browsing master branch. -*/} - +{/*- For master, we hard-code a version since we don't host master releases of calicoctl. -*/} ## How to diff --git a/calico_versioned_docs/version-3.27/reference/host-endpoints/connectivity.mdx b/calico_versioned_docs/version-3.27/reference/host-endpoints/connectivity.mdx index 86b3fe02e9..c31d9b4379 100644 --- a/calico_versioned_docs/version-3.27/reference/host-endpoints/connectivity.mdx +++ b/calico_versioned_docs/version-3.27/reference/host-endpoints/connectivity.mdx @@ -35,7 +35,7 @@ policy resource, which: When running this command, replace the placeholders in angle brackets with appropriate values for your deployment. - +{/* */} ```bash cat <` is an optional list of security profiles to apply to the endpoint and labels contains a set of arbitrary key/value pairs that can be used in selector expressions. - +{/* TODO(smc) data-model: Link to new data model docs. */} :::note diff --git a/calico_versioned_docs/version-3.27/release-notes/index.mdx b/calico_versioned_docs/version-3.27/release-notes/index.mdx index 6a0976f125..3beab053ac 100644 --- a/calico_versioned_docs/version-3.27/release-notes/index.mdx +++ b/calico_versioned_docs/version-3.27/release-notes/index.mdx @@ -112,9 +112,9 @@ For more information, see [Enable the eBPF data plane](../operations/ebpf/enabli Do not run Calico in "legacy" iptables mode on a system that is also using `nftables`. Although this combination does not panic or fail (at least on kernels that support both), the interaction between `iptables` "legacy" mode and `nftables` is confusing: both `iptables` and `nftables` rules can be executed on the same packet, leading to policy verdicts being "overturned". - +*/} ## Release details diff --git a/calico_versioned_docs/version-3.27/variables.js b/calico_versioned_docs/version-3.27/variables.js index 72adceff36..d5831ef943 100644 --- a/calico_versioned_docs/version-3.27/variables.js +++ b/calico_versioned_docs/version-3.27/variables.js @@ -1,4 +1,4 @@ -const releases = require('./releases.json'); +import releases from './releases.json'; const variables = { releaseTitle: 'v3.27.4', @@ -43,4 +43,4 @@ const variables = { }, }; -module.exports = variables; +export default variables; diff --git a/calico_versioned_docs/version-3.28/_includes/components/AutoHostendpointsMigrate.js b/calico_versioned_docs/version-3.28/_includes/components/AutoHostendpointsMigrate.js index 2fa83d4362..a97e09218a 100644 --- a/calico_versioned_docs/version-3.28/_includes/components/AutoHostendpointsMigrate.js +++ b/calico_versioned_docs/version-3.28/_includes/components/AutoHostendpointsMigrate.js @@ -4,8 +4,7 @@ import Admonition from '@theme/Admonition'; import Link from '@docusaurus/Link'; import CodeBlock from '@theme/CodeBlock'; import Heading from '@theme/Heading'; - -import { prodname, baseUrl } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.28/variables'; export default function AutoHostendpointsMigrate(props) { return ( @@ -20,12 +19,12 @@ export default function AutoHostendpointsMigrate(props) { Auto host endpoints have an allow-all profile attached which allows all traffic in the absence of network policy. This may result in unexpected behavior and data. -

                      In order to migrate existing all-interfaces host endpoints to {prodname}-managed auto host endpoints:

                      +

                      In order to migrate existing all-interfaces host endpoints to {variables.prodname}-managed auto host endpoints:

                      1. Add any labels on existing all-interfaces host endpoints to their corresponding {props.orch} nodes.{' '} - {prodname} manages labels on automatic host endpoints by syncing labels from their nodes. Any labels on + {variables.prodname} manages labels on automatic host endpoints by syncing labels from their nodes. Any labels on existing all-interfaces host endpoints should be added to their respective nodes. For example, if your existing all-interface host endpoint for node node1 has the label{' '} environment: dev, then you must add that same label to its node: @@ -39,7 +38,7 @@ export default function AutoHostendpointsMigrate(props) {

                      2. Enable auto host endpoints by following the{' '} - + enable automatic host endpoints how-to guide . Note that automatic host endpoints are created with a profile attached that allows all traffic in the @@ -52,7 +51,7 @@ export default function AutoHostendpointsMigrate(props) {

                      3. - Delete old all-interfaces host endpoints. You can distinguish host endpoints managed by {prodname} from + Delete old all-interfaces host endpoints. You can distinguish host endpoints managed by {variables.prodname} from others in several ways. First, automatic host endpoints have the label{' '} projectcalico.org/created-by: calico-kube-controllers. Secondly, automatic host endpoints' name have the suffix -auto-hep. diff --git a/calico_versioned_docs/version-3.28/_includes/components/CalicoWindowsInstall.js b/calico_versioned_docs/version-3.28/_includes/components/CalicoWindowsInstall.js index 4a7f28f8e9..4ab213512d 100644 --- a/calico_versioned_docs/version-3.28/_includes/components/CalicoWindowsInstall.js +++ b/calico_versioned_docs/version-3.28/_includes/components/CalicoWindowsInstall.js @@ -3,8 +3,7 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import CodeBlock from '@theme/CodeBlock'; import Link from '@docusaurus/Link'; - -import { prodname, prodnameWindows } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.28/variables'; function CalicoWindowsInstallFirstStep(props) { if (props.networkingType === 'vxlan') { @@ -12,8 +11,8 @@ function CalicoWindowsInstallFirstStep(props) {

                      4. Ensure that BGP is disabled.
                          -
                        • If you installed {prodname} using the manifest, BGP is already disabled.
                        • -
                        • If you installed {prodname} using the operator, run this command:
                        • +
                        • If you installed {variables.prodname} using the manifest, BGP is already disabled.
                        • +
                        • If you installed {variables.prodname} using the operator, run this command:

                        • {`kubectl patch installation default --type=merge -p '{"spec": {"calicoNetwork": {"bgp": "Disabled"}}}'`} @@ -54,9 +53,9 @@ export default function CalicoWindowsInstall(props) {
                        • - Get the cluster's Kubernetes API server host and port, which will be used to update the {prodnameWindows}{' '} - config map. The API server host and port is required so that the {prodnameWindows} installation script can - create a kubeconfig file for {prodname} services. If your Windows nodes already have {prodnameWindows}{' '} + Get the cluster's Kubernetes API server host and port, which will be used to update the {variables.prodnameWindows}{' '} + config map. The API server host and port is required so that the {variables.prodnameWindows} installation script can + create a kubeconfig file for {variables.prodname} services. If your Windows nodes already have {variables.prodnameWindows}{' '} installed manually, skip this step. The installation script will use the API server host and port from your node's existing kubeconfig file if the KUBERNETES_SERVICE_HOST and{' '} KUBERNETES_SERVICE_PORT variables are not provided in the calico-windows-config{' '} @@ -114,7 +113,7 @@ kubernetes 172.16.101.157:6443 40m`}

                        • Create the kubernetes-services-endpoint ConfigMap with the Kubernetes API server - host and port (discovered in the previous step) used to create a kubeconfig file for {prodname} services. + host and port (discovered in the previous step) used to create a kubeconfig file for {variables.prodname} services. {`kubectl apply -f - << EOF kind: ConfigMap apiVersion: v1 @@ -136,7 +135,7 @@ EOF`}

                        • - Add the Kubernetes service CIDR (discovered in the previous step) enable {prodnameWindows} on the Tigera operator installation resource. + Add the Kubernetes service CIDR (discovered in the previous step) enable {variables.prodnameWindows} on the Tigera operator installation resource.

                          For example, with a Kubernetes service clusterIP range of 10.96.0.0/12: @@ -159,7 +158,7 @@ EOF`}

                        • Monitor the installation.

                          - The {prodnameWindows} HPC installation has 2 initContainers: uninstall-calico, which deals with removing previous manually installed {prodnameWindows} services, if any + The {variables.prodnameWindows} HPC installation has 2 initContainers: uninstall-calico, which deals with removing previous manually installed {variables.prodnameWindows} services, if any and install-cni, which installs needed CNI binaries and configuration, when using Calico CNI. kubectl logs -f -n calico-system -l k8s-app=calico-node-windows -c uninstall-calico{'\n'} @@ -167,7 +166,7 @@ EOF`}

                          After these initContainers finish their execution, installation is complete. Next, the - {prodnameWindows} services are started in separate containers: + {variables.prodnameWindows} services are started in separate containers:

                          kubectl logs -f -n calico-system -l k8s-app=calico-node-windows -c node{'\n'} diff --git a/calico_versioned_docs/version-3.28/_includes/components/ComponentVersions.js b/calico_versioned_docs/version-3.28/_includes/components/ComponentVersions.js index 77373871be..7115b97bc0 100644 --- a/calico_versioned_docs/version-3.28/_includes/components/ComponentVersions.js +++ b/calico_versioned_docs/version-3.28/_includes/components/ComponentVersions.js @@ -7,8 +7,6 @@ import { toKebab } from '@site/src/components/utils/formatters'; import variables from '../../variables'; export default function ComponentVersions() { - const { prodname, version, downloadsurl } = variables; - const releases = variables.releases.map((release) => { return release; }).filter(release => release); diff --git a/calico_versioned_docs/version-3.28/_includes/components/EnvironmentFile.js b/calico_versioned_docs/version-3.28/_includes/components/EnvironmentFile.js index cdeecc20ee..6dbc4005ac 100644 --- a/calico_versioned_docs/version-3.28/_includes/components/EnvironmentFile.js +++ b/calico_versioned_docs/version-3.28/_includes/components/EnvironmentFile.js @@ -5,8 +5,7 @@ import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import Link from '@docusaurus/Link'; - -import { prodname, baseUrl } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.28/variables'; export default function EnvironmentFile(props) { if (props.target === 'felix') { @@ -31,9 +30,9 @@ export default function EnvironmentFile(props) { host. For more help, see the{' '} {props.install === 'container' ? ( - {props.nodecontainer} configuration reference + {props.nodecontainer} configuration reference ) : ( - Felix configuration reference + Felix configuration reference )}

                          @@ -139,9 +138,9 @@ export default function EnvironmentFile(props) { CALICO_IP or CALICO_IP6 - If values are not specified for both, {prodname} uses the currently-configured values for the next hop + If values are not specified for both, {variables.prodname} uses the currently-configured values for the next hop IP addresses for this node—these can be configured through the Node resource. If no next hop addresses - are configured, {prodname} automatically determines an IPv4 next hop address by querying the host + are configured, {variables.prodname} automatically determines an IPv4 next hop address by querying the host interfaces (and configures this value in the Node resource). You can set CALICO_IP to{' '} autodetect for force auto-detection of IP address every time the node starts. If you set IP addresses through these environment variables, it reconfigures any values currently set through the @@ -151,7 +150,7 @@ export default function EnvironmentFile(props) { CALICO_AS - If not specified, {prodname} uses the currently configured value for the AS Number for the node BGP + If not specified, {variables.prodname} uses the currently configured value for the AS Number for the node BGP client—this can be configured through the Node resource. If the Node resource value is not set, Calico inherits the AS Number from the global default value. If you set a value through this environment variable, it reconfigures any value currently set through the Node resource. @@ -160,7 +159,7 @@ export default function EnvironmentFile(props) { NO_DEFAULT_POOLS - Set to true to prevent {prodname} from creating a default pool if one does not exist. Pools are used + Set to true to prevent {variables.prodname} from creating a default pool if one does not exist. Pools are used for workload endpoints and not required for non-cluster hosts. diff --git a/calico_versioned_docs/version-3.28/_includes/components/HostEndpointsUpgrade.js b/calico_versioned_docs/version-3.28/_includes/components/HostEndpointsUpgrade.js index 79c5c06c01..dc3c983e7d 100644 --- a/calico_versioned_docs/version-3.28/_includes/components/HostEndpointsUpgrade.js +++ b/calico_versioned_docs/version-3.28/_includes/components/HostEndpointsUpgrade.js @@ -2,8 +2,7 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import CodeBlock from '@theme/CodeBlock'; import Heading from '@theme/Heading'; - -import { prodname, version } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.28/variables'; export default function HostEndpointsUpgrade(props) { return ( @@ -19,7 +18,7 @@ export default function HostEndpointsUpgrade(props) { upgrading. Failure to do so will result in an outage.

                          - In versions of {prodname} prior to v3.14, all-interfaces host endpoints (host endpoints with{' '} + In versions of {variables.prodname} prior to v3.14, all-interfaces host endpoints (host endpoints with{' '} interfaceName: *) only supported pre-DNAT policy. The default behavior of all-interfaces host endpoints, in the absence of any policy, was to allow all traffic.

                          @@ -31,7 +30,7 @@ export default function HostEndpointsUpgrade(props) { endpoints drop traffic in the absence of policy.

                          - Before upgrading to {version}, you must ensure that global network policies are in place that select existing + Before upgrading to {variables.version}, you must ensure that global network policies are in place that select existing all-interfaces host endpoints and explicitly allow existing traffic flows. As a starting point, you can create an allow-all policy that selects existing all-interfaces host endpoints. First, we'll add a label to the existing host endpoints. Get a list of the nodes that have an all-interfaces host endpoint: diff --git a/calico_versioned_docs/version-3.28/_includes/components/InstallOpenShiftManifests.js b/calico_versioned_docs/version-3.28/_includes/components/InstallOpenShiftManifests.js index 9a34a4307f..2119ba0512 100644 --- a/calico_versioned_docs/version-3.28/_includes/components/InstallOpenShiftManifests.js +++ b/calico_versioned_docs/version-3.28/_includes/components/InstallOpenShiftManifests.js @@ -1,16 +1,14 @@ import React from 'react'; - import CodeBlock from '@theme/CodeBlock'; - -import { prodname, releaseTitle, calicoReleasesURL } from '../../variables'; +import variables from '@site/calico_versioned_docs/version-3.28/variables'; export default function InstallOpenShiftManifests() { return ( <> -

                          Download the {prodname} manifests for OpenShift and add them to the generated manifests directory:

                          +

                          Download the {variables.prodname} manifests for OpenShift and add them to the generated manifests directory:

                          {`mkdir calico -wget -qO- ${calicoReleasesURL}/${releaseTitle}/ocp.tgz | tar xvz --strip-components=1 -C calico +wget -qO- ${variables.calicoReleasesURL}/${variables.releaseTitle}/ocp.tgz | tar xvz --strip-components=1 -C calico cp calico/* manifests/`} diff --git a/calico_versioned_docs/version-3.28/_includes/components/MaintenanceImageOptionsAlternateRegistry.js b/calico_versioned_docs/version-3.28/_includes/components/MaintenanceImageOptionsAlternateRegistry.js index 498b90bc4f..7756d56188 100644 --- a/calico_versioned_docs/version-3.28/_includes/components/MaintenanceImageOptionsAlternateRegistry.js +++ b/calico_versioned_docs/version-3.28/_includes/components/MaintenanceImageOptionsAlternateRegistry.js @@ -1,10 +1,10 @@ // Temporary component for "calico\maintenance\image-options\alternate-registry.mdx" import React from 'react'; - import CodeBlock from '@theme/CodeBlock'; +import variables from '../../variables'; -import { imageNames, prodname, registry, releases, tigeraOperator } from '../../variables'; +const { imageNames, prodname, registry, releases, tigeraOperator } = variables; export default function MaintenanceImageOptionsAlternateRegistry() { const pullCmds = renderRetagCommands( diff --git a/calico_versioned_docs/version-3.28/_includes/components/ReqsKernel.js b/calico_versioned_docs/version-3.28/_includes/components/ReqsKernel.js index ed796bdf49..ecfb43caf1 100644 --- a/calico_versioned_docs/version-3.28/_includes/components/ReqsKernel.js +++ b/calico_versioned_docs/version-3.28/_includes/components/ReqsKernel.js @@ -1,8 +1,7 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import Heading from '@theme/Heading'; - -import { prodname } from '../../variables'; +import variables from '../../variables'; export default function ReqsKernel() { return ( @@ -18,14 +17,14 @@ export default function ReqsKernel() {

                          Due to the large number of distributions and kernel version out there, it’s hard to be precise about the names - of the particular kernel modules that are required to run {prodname}. However, in general, you’ll need: + of the particular kernel modules that are required to run {variables.prodname}. However, in general, you’ll need:

                          • The iptables modules (both the “legacy” and “nft” variants are supported). These are typically broken up into many small modules, one for each type of match criteria and one for each type of action.{' '} - {prodname} requires: + {variables.prodname} requires:

                            • The “base” modules (including the IPv6 versions if IPv6 is enabled in your cluster).
                            • @@ -55,7 +54,7 @@ export default function ReqsKernel() {
                            • - IPIP, VXLAN, Wireguard support, if using {prodname} + IPIP, VXLAN, Wireguard support, if using {variables.prodname} networking in one of those modes.

                            • diff --git a/calico_versioned_docs/version-3.28/_includes/components/ReqsSys.js b/calico_versioned_docs/version-3.28/_includes/components/ReqsSys.js index 4ad7641c69..61a75e5005 100644 --- a/calico_versioned_docs/version-3.28/_includes/components/ReqsSys.js +++ b/calico_versioned_docs/version-3.28/_includes/components/ReqsSys.js @@ -3,9 +3,9 @@ import React from 'react'; import Admonition from '@theme/Admonition'; import Link from '@docusaurus/Link'; import Heading from '@theme/Heading'; +import variables from '../../variables'; +import globalVariables from '@site/variables'; -import { orchestrators } from '@site/variables'; -import { prodname, baseUrl } from '../../variables'; function NodeRequirementsOSS(props) { return ( @@ -22,9 +22,9 @@ function NodeRequirementsOSS(props) {
                            • - {prodname} must be able to manage cali* interfaces on the host. When IPIP is enabled (the - default), {prodname} also needs to be able to manage tunl* interfaces. When VXLAN is enabled,{' '} - {prodname} also needs to be able to manage the + {variables.prodname} must be able to manage cali* interfaces on the host. When IPIP is enabled (the + default), {variables.prodname} also needs to be able to manage tunl* interfaces. When VXLAN is enabled,{' '} + {variables.prodname} also needs to be able to manage the vxlan.calico interface.

                            • @@ -32,11 +32,11 @@ function NodeRequirementsOSS(props) {

                              Linux kernel 3.10 or later with required dependencies. The following distributions have the required kernel, its dependencies, and are known to work well with{' '} - {prodname} and {props.orch}. + {variables.prodname} and {props.orch}.

                              • RedHat Linux 7
                              • - {(props.orch === orchestrators.Kubernetes || props.orch === orchestrators.HostProtection) && ( + {(props.orch === globalVariables.orchestrators.Kubernetes || props.orch === globalVariables.orchestrators.HostProtection) && ( <>
                              • CentOS 7
                              • Flatcar Container Linux
                              • @@ -45,12 +45,12 @@ function NodeRequirementsOSS(props) {
                              • Debian 8
                              • )} - {props.orch === orchestrators.OpenShift && ( + {props.orch === globalVariables.orchestrators.OpenShift && ( <>
                              • RedHat Container OS
                              • )} - {props.orch === orchestrators.OpenStack && ( + {props.orch === globalVariables.orchestrators.OpenStack && ( <>
                              • Ubuntu 18.04
                              • CentOS 8
                              • @@ -70,25 +70,25 @@ function NotesOSS() {

                                Many Linux distributions, such as most of the above, include NetworkManager. By default, NetworkManager does - not allow {prodname} to manage interfaces. If your nodes have NetworkManager, complete the steps in{' '} - - Preventing NetworkManager from controlling {prodname} interfaces + not allow {variables.prodname} to manage interfaces. If your nodes have NetworkManager, complete the steps in{' '} + + Preventing NetworkManager from controlling {variables.prodname} interfaces {' '} - before installing {prodname}. + before installing {variables.prodname}.

                                • If your Linux distribution comes with installed Firewalld or another iptables manager it should be disabled. - These may interfere with rules added by {prodname} and result in unexpected behavior. + These may interfere with rules added by {variables.prodname} and result in unexpected behavior.

                                - If a host firewall is needed, it can be configured by {prodname} HostEndpoint and GlobalNetworkPolicy. More - information about configuration at Security for host. + If a host firewall is needed, it can be configured by {variables.prodname} HostEndpoint and GlobalNetworkPolicy. More + information about configuration at Security for host.

                                @@ -106,13 +106,13 @@ function KeyValueStore(props) { Key/value store

                                - {prodname} requires a key/value store accessible by all {prodname} components.  + {variables.prodname} requires a key/value store accessible by all {variables.prodname} components.  { { OpenShift: With OpenShift, the Kubernetes API datastore is used for the key/value store., Kubernetes: ( - On Kubernetes, you can configure {prodname} to access an etcdv3 cluster directly or to use the + On Kubernetes, you can configure {variables.prodname} to access an etcdv3 cluster directly or to use the Kubernetes API datastore. ), @@ -158,23 +158,23 @@ function NetworkRequirementsOSS(props) { - {prodname} networking (BGP) + {variables.prodname} networking (BGP) All Bidirectional TCP 179 - {prodname} networking with IP-in-IP enabled (default) + {variables.prodname} networking with IP-in-IP enabled (default) All Bidirectional IP-in-IP, often represented by its protocol number 4 - {props.orch === orchestrators.OpenShift && ( + {props.orch === globalVariables.orchestrators.OpenShift && ( <> - {prodname} networking with VXLAN enabled + {variables.prodname} networking with VXLAN enabled All Bidirectional UDP 4789 @@ -193,28 +193,28 @@ function NetworkRequirementsOSS(props) { )} - {props.orch === orchestrators.Kubernetes && ( + {props.orch === globalVariables.orchestrators.Kubernetes && ( <> - {prodname} networking with VXLAN enabled + {variables.prodname} networking with VXLAN enabled All Bidirectional UDP 4789 - {prodname} networking with Typha enabled + {variables.prodname} networking with Typha enabled Typha agent hosts Incoming TCP 5473 (default) - {prodname} networking with IPv4 Wireguard enabled + {variables.prodname} networking with IPv4 Wireguard enabled All Bidirectional UDP 51820 (default) - {prodname} networking with IPv6 Wireguard enabled + {variables.prodname} networking with IPv6 Wireguard enabled All Bidirectional UDP 51821 (default) @@ -244,7 +244,7 @@ function NetworkRequirementsOSS(props) { )} - {props.orch !== orchestrators.Kubernetes && props.orch !== orchestrators.OpenShift && ( + {props.orch !== globalVariables.orchestrators.Kubernetes && props.orch !== globalVariables.orchestrators.OpenShift && ( All etcd hosts @@ -259,7 +259,7 @@ function NetworkRequirementsOSS(props) { )} - {(props.orch === orchestrators.Kubernetes || props.orch === orchestrators.OpenShift) && ( + {(props.orch === globalVariables.orchestrators.Kubernetes || props.orch === globalVariables.orchestrators.OpenShift) && (

                                *{' '} @@ -269,7 +269,7 @@ function NetworkRequirementsOSS(props) {

                                )} - {props.orch === orchestrators.OpenStack && ( + {props.orch === globalVariables.orchestrators.OpenStack && (

                                *{' '} @@ -291,15 +291,15 @@ function Privileges(props) { Privileges

                                - Ensure that {prodname} has the CAP_SYS_ADMIN privilege. + Ensure that {variables.prodname} has the CAP_SYS_ADMIN privilege.

                                - The simplest way to provide the necessary privilege is to run {prodname} as root or in a privileged container. + The simplest way to provide the necessary privilege is to run {variables.prodname} as root or in a privileged container.

                                - {props.orch === orchestrators.Kubernetes && ( + {props.orch === globalVariables.orchestrators.Kubernetes && ( <>

                                - When installed as a Kubernetes daemon set, {prodname} meets this requirement by running as a privileged + When installed as a Kubernetes daemon set, {variables.prodname} meets this requirement by running as a privileged container. This requires that the kubelet be allowed to run privileged containers. There are two ways this can be achieved.

                                diff --git a/calico_versioned_docs/version-3.28/_includes/content/_docker-container-service.mdx b/calico_versioned_docs/version-3.28/_includes/content/_docker-container-service.mdx index 3ecd6f259b..fed2ffd86e 100644 --- a/calico_versioned_docs/version-3.28/_includes/content/_docker-container-service.mdx +++ b/calico_versioned_docs/version-3.28/_includes/content/_docker-container-service.mdx @@ -1,7 +1,7 @@ import variables from '@site/calico_versioned_docs/version-3.28/variables'; import CodeBlock from '@theme/CodeBlock'; -This section describes how to run `{variables.nodecontainer}` as a Docker container. +This section describes how to run {variables.nodecontainer} as a Docker container. :::note @@ -13,7 +13,7 @@ applied to other init daemons such as upstart. ### Step 1: Create environment file diff --git a/calico_versioned_docs/version-3.28/_includes/release-notes/_master-release-notes.mdx b/calico_versioned_docs/version-3.28/_includes/release-notes/_master-release-notes.mdx index 8a7d700b50..cc1f27d1c6 100644 --- a/calico_versioned_docs/version-3.28/_includes/release-notes/_master-release-notes.mdx +++ b/calico_versioned_docs/version-3.28/_includes/release-notes/_master-release-notes.mdx @@ -2,12 +2,12 @@ import variables from '@site/calico_versioned_docs/version-3.28/variables'; import CodeBlock from '@theme/CodeBlock'; _Dateline_ - +releases are displayed. */} + ### What's new {#whats-new-v0.1.0} #### New feature 1 diff --git a/calico_versioned_docs/version-3.28/about/kubernetes-training/about-ebpf.mdx b/calico_versioned_docs/version-3.28/about/kubernetes-training/about-ebpf.mdx index 6a5d91af24..c3114a8556 100644 --- a/calico_versioned_docs/version-3.28/about/kubernetes-training/about-ebpf.mdx +++ b/calico_versioned_docs/version-3.28/about/kubernetes-training/about-ebpf.mdx @@ -6,7 +6,7 @@ import variables from '@site/calico_versioned_docs/version-3.28/variables'; # About eBPF - +{/* Do not change the canonical_url above *or the title*. Content is shared with Marketing and is used for SEO purposes. If you change the title, it will mess up Marketing metrics. */} :::note diff --git a/calico_versioned_docs/version-3.28/about/kubernetes-training/about-k8s-networking.mdx b/calico_versioned_docs/version-3.28/about/kubernetes-training/about-k8s-networking.mdx index d5f03d3a9a..a58c6da13d 100644 --- a/calico_versioned_docs/version-3.28/about/kubernetes-training/about-k8s-networking.mdx +++ b/calico_versioned_docs/version-3.28/about/kubernetes-training/about-k8s-networking.mdx @@ -5,9 +5,8 @@ description: Learn about Kubernetes networking! import variables from '@site/calico_versioned_docs/version-3.28/variables'; # About Kubernetes Networking - - - +{/* Do not change the canonical_url above *or the title*. Content is shared with Marketing and is used for SEO purposes. If you change the title, it will mess up Marketing metrics. */} +{/* */} :::note This guide provides optional background education, not specific to {variables.prodname}. diff --git a/calico_versioned_docs/version-3.28/getting-started/bare-metal/installation/binary-mgr.mdx b/calico_versioned_docs/version-3.28/getting-started/bare-metal/installation/binary-mgr.mdx index 6f7a768448..59aa3e6c95 100644 --- a/calico_versioned_docs/version-3.28/getting-started/bare-metal/installation/binary-mgr.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/bare-metal/installation/binary-mgr.mdx @@ -4,10 +4,10 @@ description: Install Calico on non-cluster host using a package manager. import variables from '@site/calico_versioned_docs/version-3.28/variables'; import CodeBlock from '@theme/CodeBlock'; +import FelixInitDatastore from '@site/calico_versioned_docs/version-3.28/_includes/content/_felix-init-datastore.mdx'; # Binary install with package manager -import FelixInitDatastore from '@site/calico_versioned_docs/version-3.28/_includes/content/_felix-init-datastore.mdx'; ## Big picture @@ -64,7 +64,7 @@ is in state "wait-for-ready". The default location for the log file is ### Step 2: Configure the datastore connection diff --git a/calico_versioned_docs/version-3.28/getting-started/bare-metal/installation/binary.mdx b/calico_versioned_docs/version-3.28/getting-started/bare-metal/installation/binary.mdx index 4e0ab33a84..215007e66e 100644 --- a/calico_versioned_docs/version-3.28/getting-started/bare-metal/installation/binary.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/bare-metal/installation/binary.mdx @@ -4,11 +4,10 @@ description: Install Calico binary on non-cluster hosts without a package manage import variables from '@site/calico_versioned_docs/version-3.28/variables'; import CodeBlock from '@theme/CodeBlock'; +import FelixInitDatastore from '@site/calico_versioned_docs/version-3.28/_includes/content/_felix-init-datastore.mdx'; # Binary install without package manager -import FelixInitDatastore from '@site/calico_versioned_docs/version-3.28/_includes/content/_felix-init-datastore.mdx'; - ## Big picture Install {variables.prodname} binary on non-cluster hosts without a package manager. @@ -77,7 +76,7 @@ Copy the binary from Step 1 to the target machine, using any means (`scp`, `ftp` ### Step 3: Create environment file diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/flannel/install-for-flannel.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/flannel/install-for-flannel.mdx index 4777cc16b6..4be8c97f00 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/flannel/install-for-flannel.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/flannel/install-for-flannel.mdx @@ -64,7 +64,7 @@ The procedure differs according to your datastore type. Refer to the section tha The geeky details of what you get: @@ -103,6 +103,6 @@ etcd, complete the following steps. The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/k3s/multi-node-install.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/k3s/multi-node-install.mdx index 14b4c2c95c..be2fa0bd27 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/k3s/multi-node-install.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/k3s/multi-node-install.mdx @@ -22,7 +22,7 @@ K3s is a lightweight implementation of Kubernetes packaged as a single binary. The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/k3s/quickstart.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/k3s/quickstart.mdx index cb24e28400..cdf1a04d8e 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/k3s/quickstart.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/k3s/quickstart.mdx @@ -24,7 +24,7 @@ Use this quickstart to quickly and easily try {variables.prodname} features. To The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/kind.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/kind.mdx index a12c5330dd..f222ff5b77 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/kind.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/kind.mdx @@ -22,7 +22,7 @@ kind is a tool for running local Kubernetes clusters using Docker container "nod The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/aks.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/aks.mdx index 94f76c3b35..e8d95546bf 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/aks.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/aks.mdx @@ -24,7 +24,7 @@ You can also use {variables.prodname} for networking on AKS in place of the defa The geeky details of what you get: @@ -33,7 +33,7 @@ Alternatively you can run in Azure CNI overlay mode. The geeky details of what you get: @@ -50,7 +50,7 @@ To enable {variables.prodname} network policy enforcement, follow these step-by- The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/eks.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/eks.mdx index e89ea4b44a..f548fb9014 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/eks.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/eks.mdx @@ -37,7 +37,7 @@ is configured correctly based on the version of Kubernetes being used in your cl The geeky details of what you get: @@ -89,7 +89,7 @@ The geeky details of what you get: The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/gke.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/gke.mdx index 463d8ca9a3..706e14396f 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/gke.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/gke.mdx @@ -22,7 +22,7 @@ To enable {variables.prodname} network policy enforcement, follow these step-by- The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/iks.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/iks.mdx index 47c4e6099f..7310b68468 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/iks.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/managed-public-cloud/iks.mdx @@ -21,7 +21,7 @@ IKS has built-in support for {variables.prodname}, providing a robust implementa The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/microk8s.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/microk8s.mdx index 68155f95f6..1cdda3225b 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/microk8s.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/microk8s.mdx @@ -61,7 +61,7 @@ Use this quickstart to quickly and easily try {variables.prodname} features with The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/quickstart.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/quickstart.mdx index 7e850e9e42..65b918bf4c 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/quickstart.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/quickstart.mdx @@ -51,7 +51,7 @@ resources compared to those presented in this guide. The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/rancher.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/rancher.mdx index a6c37ea34d..3d49cebe16 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/rancher.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/rancher.mdx @@ -18,7 +18,7 @@ Install {variables.prodname} as the required CNI for networking and/or network p The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-onprem/onpremises.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-onprem/onpremises.mdx index 44b4cfc6a6..3dfa657189 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-onprem/onpremises.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-onprem/onpremises.mdx @@ -77,7 +77,7 @@ installed directly on the cluster as a Deployment, and is configured through one ``` @@ -117,7 +117,7 @@ The option, **Kubernetes API datastore, more than 50 nodes** provides scaling us The geeky details of what you get: @@ -169,7 +169,7 @@ The geeky details of what you get: The geeky details of what you get: @@ -207,7 +207,7 @@ The **etcd** database is not recommended for new installs. However, it is an opt The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/aws.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/aws.mdx index 59b9d50333..56fa8e193e 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/aws.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/aws.mdx @@ -73,7 +73,7 @@ To use kops to create a cluster with {variables.prodname} networking and network The geeky details of what you get: {' '} @@ -97,7 +97,7 @@ Then install {variables.prodname} for network policy only after the cluster is u The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/azure.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/azure.mdx index ea2d6a1343..26f8bc53b4 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/azure.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/azure.mdx @@ -50,7 +50,7 @@ Then, [follow the aks-engine documentation to deploy your cluster](https://githu The geeky details of what you get: {' '} diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/do.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/do.mdx index c9b4befe7e..178ad8816a 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/do.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/do.mdx @@ -37,7 +37,7 @@ There are many ways to install and manage Kubernetes in DO. Using Kubernetes Ope The geeky details of what you get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/gce.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/gce.mdx index 3043e9f856..a14ae307bc 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/gce.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/self-managed-public-cloud/gce.mdx @@ -212,7 +212,7 @@ worker-2 NotReady 5s v1.17.2 The geeky details of what you get: {' '} diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/vpp/getting-started.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/vpp/getting-started.mdx index 7db10623a8..eefa635cdb 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/vpp/getting-started.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/vpp/getting-started.mdx @@ -58,7 +58,7 @@ This guide details ways to install {variables.prodname} with the VPP dataplane: In all cases, here are the details of what you will get: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/openshift-installation.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/openshift-installation.mdx index a3894f6c99..c46173259f 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/openshift-installation.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/openshift-installation.mdx @@ -130,7 +130,7 @@ To get more information, add `-o yaml` to the above command. ::: - +{/* FIXME: check if calicoctl can be replaced by kubectl here (i.e. check if the calico apiserver runs fine with these steps) */} Next, [install calicoctl](../../../../operations/calicoctl/install.mdx) and ensure strict affinity is true: ```bash @@ -139,8 +139,8 @@ calicoctl patch ipamconfigurations default --type merge --patch='{"spec": {"stri ### Add Windows nodes to the cluster - +{/* FIXME: on more recent openshift versions, there is no WNI and now Windows machines are supposed to be added via the + Red Hat Windows Machine Config Operator (WMCO). This might need substantial changes to this guide. */} Download the latest [Windows Node Installer (WNI)](https://github.com/openshift/windows-machine-config-bootstrapper/releases) binary `wni` that matches your OpenShift minor version. :::note diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/quickstart.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/quickstart.mdx index f1ed1d985b..6094a70dcf 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/quickstart.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/quickstart.mdx @@ -60,7 +60,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: @@ -69,7 +69,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: @@ -78,7 +78,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: @@ -87,7 +87,7 @@ The following steps install a Kubernetes cluster on a single Windows node with a The geeky details of what you get by default: diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/standard.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/standard.mdx index dac63a5ed4..efeec95a14 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/standard.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/manual-install/standard.mdx @@ -48,7 +48,7 @@ Because the Kubernetes and {variables.prodname} control components do not run on The geeky details of what you get by default: @@ -204,7 +204,7 @@ The script will pause at the first stage until {variables.prodname} is installed **If using {variables.prodname} BGP networking** - +{/*FIXME: update for operator linux installation*/} 1. Disable the default {variables.prodname} IP-in-IP networking (which is not compatible with Windows), by modifying the {variables.prodname} manifest, and setting the `CALICO_IPV4POOL_IPIP` environment variable to "Never" before applying the manifest. If you do apply the manifest with the incorrect value, changing the manifest and re-applying will have no effect. To adjust the already-created IP pool: @@ -221,7 +221,7 @@ The script will pause at the first stage until {variables.prodname} is installed **If using {variables.prodname} VXLAN networking** - +{/*FIXME: update for operator linux installation*/} 1. Modify VXLAN as described in [Customize the manifests](../../self-managed-onprem/config-options.mdx) guide. Note the following: - Windows can support only a single type of IP pool so it is important that you use only a single VXLAN IP pool in this mode. @@ -322,7 +322,7 @@ After you run the installer, do not move the directory because the service regis Get-Service -Name CalicoFelix ``` ### Operator install - +{/*FIXME: is there a need for more detailed steps here? should the steps be written out here instead of linking?*/} - Refer to [this guide for the steps to install {variables.prodnameWindows} using the Operator and Windows hostprocess containers (HPC)](../operator.mdx) diff --git a/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/operator.mdx b/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/operator.mdx index 8d72c61d49..8442679edd 100644 --- a/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/operator.mdx +++ b/calico_versioned_docs/version-3.28/getting-started/kubernetes/windows-calico/operator.mdx @@ -4,12 +4,11 @@ description: Install Calico for Windows on a Kubernetes cluster for testing or d import variables from '@site/calico_versioned_docs/version-3.28/variables'; import CodeBlock from '@theme/CodeBlock'; - -# Install using Operator - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +# Install using Operator + ## Big picture Install {variables.prodnameWindows} on your Kubernetes cluster using the Tigera Operator. diff --git a/calico_versioned_docs/version-3.28/networking/determine-best-networking.mdx b/calico_versioned_docs/version-3.28/networking/determine-best-networking.mdx index 7885e84cf9..9479bb64af 100644 --- a/calico_versioned_docs/version-3.28/networking/determine-best-networking.mdx +++ b/calico_versioned_docs/version-3.28/networking/determine-best-networking.mdx @@ -159,14 +159,14 @@ Flannel routes pod traffic using static per-node CIDRs obtained from the host-lo The most common network setup for {variables.prodname} on-prem is non-overlay mode using [BGP to peer](configuring/bgp.mdx) with the physical network (typically top of rack routers) to make pod IPs routable outside of the cluster. (You can of course configure the rest of your on-prem network to limit the scope of pod IP routing outside of the cluster if desired.) This setup provides a rich range of advanced {variables.prodname} features, including the ability to advertise Kubernetes service IPs (cluster IPs or external IPs), and the ability to control IP address management at the pod, namespace, or node level, to support a wide range of possibilities for integrating with existing enterprise network and security requirements. If peering BGP to the physical network is not an option, you can also run non-overlay mode if the cluster is within a single L2 network, with Calico just peering BGP between the nodes in the cluster. Even though this is not strictly an overlay network, the pod IPs are not routable outside of the cluster, because the broader network does not have routes for the pod IPs. @@ -175,14 +175,14 @@ Alternatively you can run {variables.prodname} in either VXLAN or IP-in-IP overl _Recommended:_ _Alternative:_ @@ -191,14 +191,14 @@ _Alternative:_ If you would like pod IP addresses to be routable outside of the cluster then you must use the Amazon VPC CNI plugin. This is the default networking mode for [EKS](https://aws.amazon.com/eks/), with Calico for network policy. Pod IP addresses are allocated from the underlying VPC and the maximum number of pods per node is dependent on the [instance type](https://github.com/aws/amazon-vpc-cni-k8s#eni-allocation). If you prefer to avoid dependencies on a specific cloud provider, or allocating pod IPs from the underlying VPC is problematic due to IP address range exhaustion challenges, or if the maximum number of pods supported per node by the Amazon VPC CNI plugin is not sufficient for your needs, we recommend using {variables.prodname} networking in cross-subnet overlay mode. Pod IPs will not be routable outside of the cluster, but you can scale the cluster up to the limits of Kubernetes with no dependencies on the underlying cloud network. @@ -209,14 +209,14 @@ You can learn more about Kubernetes Networking on AWS, including how each of the If you would like pod IP addresses to be routable outside of the cluster then you must use the Azure CNI plugin. This is supported by [AKS](https://azure.microsoft.com/en-us/services/kubernetes-service/), with Calico for network policy. Pod IP addresses are allocated from the underlying VNET. Alternatively you can run {variables.prodname} in Azure CNI overlay mode. @@ -229,14 +229,14 @@ This is referred to as kubenet + Calico in some AKS docs, but it is actually Cal ::: If you aren’t using AKS, and prefer to avoid dependencies on a specific cloud provider or allocating pod IPs from the underlying VNET is problematic due to IP address range exhaustion challenges, we recommend using {variables.prodname} networking in cross-subnet overlay mode. Pod IPs will not be routable outside of the cluster, but you can scale the cluster up to the limits of Kubernetes with no dependencies on the underlying cloud network. @@ -247,7 +247,7 @@ You can learn more about Kubernetes Networking on Azure, including how each of t If you would like pod IP addresses to be routable outside of the cluster then you must use the Google cloud provider integration in conjunction with host-local IPAM CNI plugin. This is supported by [GKE](https://cloud.google.com/kubernetes-engine), with Calico for network policy. Pod IP addresses are allocated from the underlying VPC, and corresponding Alias IP addresses are automatically assigned to nodes. @@ -256,14 +256,14 @@ If you prefer to avoid dependencies on a specific cloud provider, or allocating _Recommended:_ _Alternative:_ @@ -274,7 +274,7 @@ You can learn more about Kubernetes Networking on Google cloud, including how ea If you are using IBM Cloud then we recommend using [IKS](https://www.ibm.com/products/kubernetes-service/), which has Calico built in to provide cross-subnet IP-in-IP overlay. In addition to providing network policy for pods, IKS also uses Calico network policies to [secure the hosts nodes](https://cloud.ibm.com/docs/containers?topic=containers-network_policies#default_policy) within the cluster. @@ -283,7 +283,7 @@ If you are using IBM Cloud then we recommend using [IKS](https://www.ibm.com/pro The above list of environments is obviously not exhaustive. Understanding the concepts and explanations in this guide has hopefully helped you figure out what is right for your environment. If you still aren't sure then you can ask for advice through the Calico Users's Slack or Discourse forum. And remember you can run Calico in VXLAN overlay mode in almost any environment if you want to get started without worrying too deeply about the different options. diff --git a/calico_versioned_docs/version-3.28/operations/calicoctl/install.mdx b/calico_versioned_docs/version-3.28/operations/calicoctl/install.mdx index 74a289315c..bb6c2f4c90 100644 --- a/calico_versioned_docs/version-3.28/operations/calicoctl/install.mdx +++ b/calico_versioned_docs/version-3.28/operations/calicoctl/install.mdx @@ -4,20 +4,16 @@ description: Install the CLI for Calico. import variables from '@site/calico_versioned_docs/version-3.28/variables'; import CodeBlock from '@theme/CodeBlock'; - -# Install calicoctl - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; - -import { releaseTitle } from '../../variables.js'; +# Install calicoctl export function buildUrl() { const url = - releaseTitle === 'master' + variables.releaseTitle === 'master' ? 'https://github.com/projectcalico/calico/releases/latest/download' - : `https://github.com/projectcalico/calico/releases/download/${releaseTitle}`; + : `https://github.com/projectcalico/calico/releases/download/${variables.releaseTitle}`; return url; } @@ -72,9 +68,9 @@ is installed. Typically for Kubernetes installations the Kubernetes datastore is You can run `calicoctl` on any host with network access to the {variables.prodname} datastore as either a binary or a container. For step-by-step instructions, refer to the section that corresponds to your desired deployment. - +{/*- Change download URL to latest release if user browsing master branch. -*/} - +{/*- For master, we hard-code a version since we don't host master releases of calicoctl. -*/} ## How to diff --git a/calico_versioned_docs/version-3.28/reference/component-versions.mdx b/calico_versioned_docs/version-3.28/reference/component-versions.mdx index 0772d30875..10b4995212 100644 --- a/calico_versioned_docs/version-3.28/reference/component-versions.mdx +++ b/calico_versioned_docs/version-3.28/reference/component-versions.mdx @@ -4,8 +4,6 @@ description: A list of component versions for Calico import variables from '@site/calico_versioned_docs/version-3.28/variables'; -import ComponentVersions from '@site/calico_versioned_docs/version-3.28/_includes/components/ComponentVersions'; - # Component versions \ No newline at end of file diff --git a/calico_versioned_docs/version-3.28/reference/host-endpoints/connectivity.mdx b/calico_versioned_docs/version-3.28/reference/host-endpoints/connectivity.mdx index 7db5cdd877..ad05108170 100644 --- a/calico_versioned_docs/version-3.28/reference/host-endpoints/connectivity.mdx +++ b/calico_versioned_docs/version-3.28/reference/host-endpoints/connectivity.mdx @@ -35,7 +35,7 @@ policy resource, which: When running this command, replace the placeholders in angle brackets with appropriate values for your deployment. - +{/* */} ```bash cat <` is an optional list of security profiles to apply to the endpoint and labels contains a set of arbitrary key/value pairs that can be used in selector expressions. - +{/* TODO(smc) data-model: Link to new data model docs. */} :::note diff --git a/calico_versioned_docs/version-3.28/release-notes/index.mdx b/calico_versioned_docs/version-3.28/release-notes/index.mdx index e90adaf2bc..7c85c6af02 100644 --- a/calico_versioned_docs/version-3.28/release-notes/index.mdx +++ b/calico_versioned_docs/version-3.28/release-notes/index.mdx @@ -135,7 +135,7 @@ These improvements apply only when Calico is running in iptables mode. * Use KUBECONFIG env variable to build cluster config [calico #8549](https://github.com/projectcalico/calico/pull/8549) (@skmatti) - +{/*## Known issues*/} ## Release details diff --git a/calico_versioned_docs/version-3.28/variables.js b/calico_versioned_docs/version-3.28/variables.js index 4c6d68d3e6..75151c7939 100644 --- a/calico_versioned_docs/version-3.28/variables.js +++ b/calico_versioned_docs/version-3.28/variables.js @@ -1,4 +1,4 @@ -const releases = require('./releases.json'); +import releases from './releases.json'; const variables = { releaseTitle: 'v3.28.1', @@ -43,4 +43,4 @@ const variables = { }, }; -module.exports = variables; +export default variables; diff --git a/docusaurus.config.js b/docusaurus.config.js index 7620581c15..6f1872bd16 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,16 +1,11 @@ // @ts-check // Note: type annotations allow type checking and IDEs autocompletion -// const {themes} = require('prism-react-renderer'); import { themes } from 'prism-react-renderer'; -import componentImagePlugin from './src/remark/componentImagePlugin'; const lightCodeTheme = themes.github; const darkCodeTheme = themes.dracula; -const { useCaseSidebar } = require('./sidebars-use-cases'); - - /** @type {import('@docusaurus/types').Config} */ const config = { title: 'Calico Documentation', @@ -21,7 +16,6 @@ const config = { onBrokenMarkdownLinks: 'throw', favicon: 'img/favicon.png', - // Even if you don't use internalization, you can use this field to set useful // metadata like html lang. For example, if your site is Chinese, you may want // to replace "en" with "zh-Hans". @@ -63,21 +57,28 @@ const config = { }, blog: false, theme: { - customCss: [ - require.resolve('./src/css/custom.css'), - require.resolve('./src/css/external-links.scss'), - require.resolve('./src/css/modal.scss'), - ], + customCss: ['./src/css/custom.css', './src/css/external-links.scss', './src/css/modal.scss'], + customCss: ['./src/css/custom.css', './src/css/external-links.scss', './src/css/modal.scss'], }, }), ], ], themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ { metadata: [ - {name: 'keywords', content: 'kubernetes,k8s,kubernetes security,container security,kubernetes networking,kubernetes monitoring,cwpp,cnapp'} + { + name: 'keywords', + content: + 'kubernetes,k8s,kubernetes security,container security,kubernetes networking,kubernetes monitoring,cwpp,cnapp', + }, + { + name: 'keywords', + content: + 'kubernetes,k8s,kubernetes security,container security,kubernetes networking,kubernetes monitoring,cwpp,cnapp', + }, ], algolia: { appId: 'Q4GSZWRKBA', @@ -88,21 +89,25 @@ const config = { }, announcementBar: { id: 'ai-bot-announcement', - content: "🤖 Try exploring Calico Documentation with our new AI bot. Look for the Ask AI button at the" + - " bottom of your screen. 🤖", + content: + '🤖 Try exploring Calico Documentation with our new AI bot. Look for the Ask AI button at the' + + ' bottom of your screen. 🤖', + content: + '🤖 Try exploring Calico Documentation with our new AI bot. Look for the Ask AI button at the' + + ' bottom of your screen. 🤖', backgroundColor: '#FCE181', textColor: '#000', isCloseable: true, }, -// "announcementBar": { -// "id": "calico_ebpf", -// "content": "Use Calico \"eBPF\" dataplane to enhance your Kubernetes networking performance. Click here to learn more.", -// "backgroundColor": "#FCE181", -// "textColor": "#000", -// "isCloseable": true, -// }, + // "announcementBar": { + // "id": "calico_ebpf", + // "content": "Use Calico \"eBPF\" dataplane to enhance your Kubernetes networking performance. Click here to learn more.", + // "backgroundColor": "#FCE181", + // "textColor": "#000", + // "isCloseable": true, + // }, navbar: { logo: { src: 'img/tigera-logo-black.png', @@ -121,20 +126,20 @@ const config = { docsPluginId: 'calico', className: 'navbar-product-link_calico', }, - { - label: 'Calico Cloud', - type: 'docSidebar', - sidebarId: 'calicoCloudSidebar', - docsPluginId: 'calico-cloud', - className: 'navbar-product-link_calico-cloud', - }, - { - label: 'Calico Enterprise', - type: 'docSidebar', - sidebarId: 'calicoEnterpriseSidebar', - docsPluginId: 'calico-enterprise', - className: 'navbar-product-link_calico-enterprise', - }, + // { + // label: 'Calico Cloud', + // type: 'docSidebar', + // sidebarId: 'calicoCloudSidebar', + // docsPluginId: 'calico-cloud', + // className: 'navbar-product-link_calico-cloud', + // }, + // { + // label: 'Calico Enterprise', + // type: 'docSidebar', + // sidebarId: 'calicoEnterpriseSidebar', + // docsPluginId: 'calico-enterprise', + // className: 'navbar-product-link_calico-enterprise', + // }, ], }, { @@ -384,7 +389,7 @@ const config = { path: 'calico', routeBasePath: 'calico', editCurrentVersion: true, - onlyIncludeVersions: ['3.28','3.27','3.26'], + onlyIncludeVersions: ['3.28', '3.27', '3.26'], lastVersion: '3.28', versions: { current: { @@ -395,7 +400,8 @@ const config = { 3.28: { label: '3.28 (latest)', path: 'latest', - banner: 'none' + banner: 'none', + banner: 'none', }, 3.27: { label: '3.27', @@ -408,8 +414,8 @@ const config = { banner: 'none', }, }, - sidebarPath: require.resolve('./sidebars-calico.js'), - beforeDefaultRemarkPlugins: [componentImagePlugin], + sidebarPath: './sidebars-calico.js', + sidebarPath: './sidebars-calico.js', editUrl: generateEditUrl, }, ], @@ -451,7 +457,6 @@ const config = { }, }, sidebarPath: require.resolve('./sidebars-calico-enterprise.js'), - beforeDefaultRemarkPlugins: [componentImagePlugin], editUrl: generateEditUrl, }, ], @@ -477,7 +482,6 @@ const config = { }, }, sidebarPath: require.resolve('./sidebars-calico-cloud.js'), - beforeDefaultRemarkPlugins: [componentImagePlugin], editUrl: generateEditUrl, }, ], diff --git a/package.json b/package.json index 28c13b2385..a9f6dd2d2b 100644 --- a/package.json +++ b/package.json @@ -27,15 +27,15 @@ "@chakra-ui/icons": "1.1.1", "@chakra-ui/react": "^2.8.2", "@chakra-ui/react-types": "^2.0.6", - "@docusaurus/core": "^3.5.1", - "@docusaurus/preset-classic": "^3.5.1", + "@docusaurus/core": "^3.5.2", + "@docusaurus/preset-classic": "^3.5.2", "@emotion/react": "^11.9.3", "@emotion/styled": "^11.9.3", "@jest/globals": "^29.4.1", - "@mdx-js/react": "^1.6.22", + "@mdx-js/react": "^3.0.1", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", - "clsx": "^1.2.1", + "clsx": "^2.1.1", "framer-motion": "^4.1.17", "prism-react-renderer": "^2.1.0", "react": "^18.2.0", @@ -49,8 +49,8 @@ "webpack": "^5.76.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.5.1", - "@docusaurus/tsconfig": "^3.5.1", + "@docusaurus/module-type-aliases": "^3.5.2", + "@docusaurus/tsconfig": "^3.5.2", "@playwright/test": "^1.30.0", "@testing-library/react": "^12.1.5", "@types/jest": "^29.5.0", diff --git a/scripts/docusaurus.config.with-vnext.js b/scripts/docusaurus.config.with-vnext.js index 403e3e85a9..195abc5e42 100644 --- a/scripts/docusaurus.config.with-vnext.js +++ b/scripts/docusaurus.config.with-vnext.js @@ -3,19 +3,18 @@ // 'make start-next' locally. // TODO: Replace this line with the one below it when upgrading to docusaurus v3 -let config = require('../docusaurus.config.js'); -//import { config } from '../docusaurus.config.js'; +import { config } from '../docusaurus.config.js'; for (let i = 0; i < config['plugins'].length; i++) { - let onlyIncludeVersions = config['plugins'][i][1].onlyIncludeVersions; - if (onlyIncludeVersions !== undefined) { - if (!config['plugins'][i][1].onlyIncludeVersions.includes('current')) { - config['plugins'][i][1].onlyIncludeVersions = ['current', ...onlyIncludeVersions]; - console.log(config['plugins'][i][1].onlyIncludeVersions); - } + let onlyIncludeVersions = config['plugins'][i][1].onlyIncludeVersions; + if (onlyIncludeVersions !== undefined) { + if (!config['plugins'][i][1].onlyIncludeVersions.includes('current')) { + config['plugins'][i][1].onlyIncludeVersions = ['current', ...onlyIncludeVersions]; + console.log(config['plugins'][i][1].onlyIncludeVersions); } + } } // TODO: Replace this line with the one below it when upgrading to docusaurus v3 -module.exports = config; +export default config; //export { config }; diff --git a/sidebars-calico-cloud.js b/sidebars-calico-cloud.js index 4edb382f6a..c36050d830 100644 --- a/sidebars-calico-cloud.js +++ b/sidebars-calico-cloud.js @@ -1,4 +1,4 @@ -module.exports = { +export default { calicoCloudSidebar: [ { type: 'category', @@ -304,7 +304,7 @@ module.exports = { { type: 'category', label: 'Compliance and security', - link: {type: 'doc', id: 'compliance/index'}, + link: { type: 'doc', id: 'compliance/index' }, items: [ 'compliance/enable-compliance', 'compliance/overview', diff --git a/sidebars-calico-enterprise.js b/sidebars-calico-enterprise.js index 7b5672f6b9..a501c2d3f7 100644 --- a/sidebars-calico-enterprise.js +++ b/sidebars-calico-enterprise.js @@ -1,6 +1,6 @@ // This is the navigation file for Calico Enterprise -module.exports = { +export default { calicoEnterpriseSidebar: [ { type: 'category', @@ -452,7 +452,7 @@ module.exports = { { type: 'category', label: 'Compliance and security', - link: {type: 'doc', id: 'compliance/index'}, + link: { type: 'doc', id: 'compliance/index' }, items: [ 'compliance/enable-compliance', 'compliance/overview', diff --git a/sidebars-calico.js b/sidebars-calico.js index cc1ba8c0c9..e954b71889 100644 --- a/sidebars-calico.js +++ b/sidebars-calico.js @@ -1,6 +1,6 @@ // This is the navigation file for Calico Open Source -module.exports = { +export default { calicoSidebar: [ { type: 'category', @@ -12,23 +12,23 @@ module.exports = { items: [ 'about/product-comparison', 'about/training-resources', - { - type: 'category', - label: 'Kubernetes training', - link: { - type: 'doc', - id: 'about/kubernetes-training/index', - }, - items: [ - 'about/kubernetes-training/about-k8s-networking', - 'about/kubernetes-training/about-networking', - 'about/kubernetes-training/about-network-policy', - 'about/kubernetes-training/about-kubernetes-ingress', - 'about/kubernetes-training/about-kubernetes-egress', - 'about/kubernetes-training/about-kubernetes-services', - 'about/kubernetes-training/about-ebpf', - ], - }, + { + type: 'category', + label: 'Kubernetes training', + link: { + type: 'doc', + id: 'about/kubernetes-training/index', + }, + items: [ + 'about/kubernetes-training/about-k8s-networking', + 'about/kubernetes-training/about-networking', + 'about/kubernetes-training/about-network-policy', + 'about/kubernetes-training/about-kubernetes-ingress', + 'about/kubernetes-training/about-kubernetes-egress', + 'about/kubernetes-training/about-kubernetes-services', + 'about/kubernetes-training/about-ebpf', + ], + }, ], }, { @@ -85,7 +85,6 @@ module.exports = { items: [ 'getting-started/kubernetes/self-managed-onprem/onpremises', 'getting-started/kubernetes/self-managed-onprem/config-options', - ], }, { @@ -149,10 +148,7 @@ module.exports = { type: 'category', label: 'K3s', link: { type: 'doc', id: 'getting-started/kubernetes/k3s/index' }, - items: [ - 'getting-started/kubernetes/k3s/quickstart', - 'getting-started/kubernetes/k3s/multi-node-install', - ], + items: ['getting-started/kubernetes/k3s/quickstart', 'getting-started/kubernetes/k3s/multi-node-install'], }, 'getting-started/kubernetes/helm', 'getting-started/kubernetes/microk8s', @@ -188,7 +184,7 @@ module.exports = { 'getting-started/kubernetes/vpp/getting-started', 'getting-started/kubernetes/vpp/ipsec', 'getting-started/kubernetes/vpp/specifics', - 'getting-started/kubernetes/vpp/openshift' + 'getting-started/kubernetes/vpp/openshift', ], }, ], @@ -355,7 +351,6 @@ module.exports = { 'network-policy/policy-rules/service-accounts', 'network-policy/policy-rules/external-ips-policy', 'network-policy/policy-rules/icmp-ping', - ], }, { @@ -373,10 +368,7 @@ module.exports = { type: 'category', label: 'Policy for services', link: { type: 'doc', id: 'network-policy/services/index' }, - items: [ - 'network-policy/services/kubernetes-node-ports', - 'network-policy/services/services-cluster-ips', - ], + items: ['network-policy/services/kubernetes-node-ports', 'network-policy/services/services-cluster-ips'], }, { type: 'category', @@ -452,10 +444,7 @@ module.exports = { type: 'category', label: 'Deploy image options', link: { type: 'doc', id: 'operations/image-options/index' }, - items: [ - 'operations/image-options/imageset', - 'operations/image-options/alternate-registry', - ], + items: ['operations/image-options/imageset', 'operations/image-options/alternate-registry'], }, 'operations/datastore-migration', 'operations/operator-migration', @@ -475,10 +464,7 @@ module.exports = { type: 'category', label: 'Monitor', link: { type: 'doc', id: 'operations/monitor/index' }, - items: [ - 'operations/monitor/monitor-component-metrics', - 'operations/monitor/monitor-component-visual', - ], + items: ['operations/monitor/monitor-component-metrics', 'operations/monitor/monitor-component-visual'], }, 'operations/decommissioning-a-node', 'operations/fips', @@ -620,30 +606,20 @@ module.exports = { type: 'category', label: 'Felix', link: { type: 'doc', id: 'reference/felix/index' }, - items: [ - 'reference/felix/configuration', - 'reference/felix/prometheus', - ], + items: ['reference/felix/configuration', 'reference/felix/prometheus'], }, { type: 'category', label: 'Typha', link: { type: 'doc', id: 'reference/typha/index' }, - items: [ - 'reference/typha/overview', - 'reference/typha/configuration', - 'reference/typha/prometheus', - ], + items: ['reference/typha/overview', 'reference/typha/configuration', 'reference/typha/prometheus'], }, 'reference/configure-cni-plugins', { type: 'category', label: 'Calico Kubernetes controllers', link: { type: 'doc', id: 'reference/kube-controllers/index' }, - items: [ - 'reference/kube-controllers/configuration', - 'reference/kube-controllers/prometheus', - ], + items: ['reference/kube-controllers/configuration', 'reference/kube-controllers/prometheus'], }, { type: 'category', diff --git a/sidebars-use-cases.js b/sidebars-use-cases.js index 376e54cf7f..496915343a 100644 --- a/sidebars-use-cases.js +++ b/sidebars-use-cases.js @@ -1,17 +1,11 @@ -module.exports = { +export default { useCaseSidebar: [ { type: 'category', label: 'Use cases', collapsible: false, collapsed: false, - items: [ - 'microsegmentation', - 'observability', - 'egress-access-controls', - 'egress-gateways', - 'cluster-mesh', - ], + items: ['microsegmentation', 'observability', 'egress-access-controls', 'egress-gateways', 'cluster-mesh'], }, ], -} +}; diff --git a/src/___new___/components/DocCardLink/index.tsx b/src/___new___/components/DocCardLink/index.tsx index d0989a34b1..668851ff7e 100644 --- a/src/___new___/components/DocCardLink/index.tsx +++ b/src/___new___/components/DocCardLink/index.tsx @@ -1,6 +1,6 @@ import { Card, CardBody, CardHeader, Heading, Text } from '@chakra-ui/react'; import React from 'react'; -import { useDocById } from '@docusaurus/theme-common/internal'; +import { useDocById } from '@docusaurus/plugin-content-docs/client'; import Link from '@docusaurus/Link'; import { cardBodyStyles, cardHeaderStyles, cardStyles, cardTextStyles, headingStyles, linkStyles } from './styles'; import { useDocUrl } from '../../hooks'; diff --git a/src/theme/DocBreadcrumbs/index.js b/src/theme/DocBreadcrumbs/index.js index 9f476a8571..fb3378ef08 100644 --- a/src/theme/DocBreadcrumbs/index.js +++ b/src/theme/DocBreadcrumbs/index.js @@ -1,7 +1,8 @@ import React from 'react'; import clsx from 'clsx'; import { ThemeClassNames } from '@docusaurus/theme-common'; -import { useSidebarBreadcrumbs, useHomePageRoute } from '@docusaurus/theme-common/internal'; +import { useSidebarBreadcrumbs } from '@docusaurus/plugin-content-docs/client'; +import { useHomePageRoute } from '@docusaurus/theme-common/internal'; import Link from '@docusaurus/Link'; import useBaseUrl from '@docusaurus/useBaseUrl'; import { translate } from '@docusaurus/Translate'; diff --git a/src/theme/DocItem/Layout/index.js b/src/theme/DocItem/Layout/index.js index b49933005c..41fcab2872 100644 --- a/src/theme/DocItem/Layout/index.js +++ b/src/theme/DocItem/Layout/index.js @@ -2,7 +2,7 @@ import React from 'react'; import clsx from 'clsx'; import { useWindowSize } from '@docusaurus/theme-common'; -import { useDoc } from '@docusaurus/theme-common/internal'; +import { useDoc } from '@docusaurus/plugin-content-docs/client'; import DocItemPaginator from '@theme/DocItem/Paginator'; import DocVersionBanner from '@theme/DocVersionBanner'; import DocVersionBadge from '@theme/DocVersionBadge'; diff --git a/src/theme/DocItem/TOC/Desktop/index.js b/src/theme/DocItem/TOC/Desktop/index.js index 515ab8a58b..ed3f922834 100644 --- a/src/theme/DocItem/TOC/Desktop/index.js +++ b/src/theme/DocItem/TOC/Desktop/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { ThemeClassNames } from '@docusaurus/theme-common'; -import { useDoc } from '@docusaurus/theme-common/internal'; +import { useDoc } from '@docusaurus/plugin-content-docs/client'; import TOC from '@theme/TOC'; import useToc from '@site/src/utils/useToc'; diff --git a/src/theme/DocItem/TOC/Mobile/index.js b/src/theme/DocItem/TOC/Mobile/index.js index 0af3343811..5b21204866 100644 --- a/src/theme/DocItem/TOC/Mobile/index.js +++ b/src/theme/DocItem/TOC/Mobile/index.js @@ -2,7 +2,7 @@ import React from 'react'; import clsx from 'clsx'; import { ThemeClassNames } from '@docusaurus/theme-common'; -import { useDoc } from '@docusaurus/theme-common/internal'; +import { useDoc } from '@docusaurus/plugin-content-docs/client'; import TOCCollapsible from '@theme/TOCCollapsible'; import useToc from '@site/src/utils/useToc'; diff --git a/src/utils/linkChecker.js b/src/utils/linkChecker.js index f6815c4495..3df65d61b8 100644 --- a/src/utils/linkChecker.js +++ b/src/utils/linkChecker.js @@ -1,9 +1,16 @@ const urlCheck = require('./urlCheck'); -const LC = 'LINK-CHECK', DEAD = 'dead', SKIPPED = 'skipped', ALIVE = 'alive', - ERROR = 'error', INVALID = 'invalid', WARN = 'warn', INFO = 'info', +const LC = 'LINK-CHECK', + DEAD = 'dead', + SKIPPED = 'skipped', + ALIVE = 'alive', + ERROR = 'error', + INVALID = 'invalid', + WARN = 'warn', + INFO = 'info', CHECKING = 'checking'; const defaultLinkRegex = /https?:\/\/[-a-zA-Z0-9()@:%._+~#?&/=]+/gi; -const validURLRegex = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/; +const validURLRegex = + /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/; const trimUrlChars = /(\)|\)\.|\.)$/; // Skip patterns are skipped, but remain in the reporting for visibility @@ -39,8 +46,12 @@ const defaultIgnoreList = [ ]; function linkChecker() { - const sleep = ms => new Promise(r => setTimeout(r, ms)); - let skipped = 0, invalid = 0, alive = 0, dead = 0, error = 0; + const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); + let skipped = 0, + invalid = 0, + alive = 0, + dead = 0, + error = 0; let linkRegex = [defaultLinkRegex]; let skipList = [...defaultSkipList]; let ignoreList = [...defaultIgnoreList]; @@ -49,7 +60,7 @@ function linkChecker() { const urlMap = new Map(); function linkCheckCallback(err, result) { - const getMsg = err => { + const getMsg = (err) => { if (typeof err === 'string') return `error: ${err}`; return `message: '${err?.message}', errno: ${err?.errno}, code: ${err?.code}`; }; @@ -99,7 +110,7 @@ function linkChecker() { list[list.length] = fmt(v, k); }); list.sort(); - list.forEach(e => { + list.forEach((e) => { if (type === INFO) console.info(e); else if (type === WARN) console.warn(e); else if (type === ERROR) console.error(e); @@ -116,7 +127,7 @@ function linkChecker() { urlMap.set(url, null); if (isInvalidOrSkipped(url)) continue; urlMap.set(url, { status: CHECKING }); - urlCheck(origin, url, linkCheckCallback).then(r => {}); + urlCheck(origin, url, linkCheckCallback).then((r) => {}); } } } @@ -131,7 +142,11 @@ function linkChecker() { console.error(`[FATAL] ${LC} did not finish. There are ${cnt} remaining.`); } - skipped = 0; invalid = 0; alive = 0; dead = 0; error = 0; + skipped = 0; + invalid = 0; + alive = 0; + dead = 0; + error = 0; urlMap.forEach((v, k) => { if (typeof v === 'object') { if (v.status === ERROR) { @@ -145,41 +160,53 @@ function linkChecker() { } else if (v.status === INVALID) { invalid++; } else { - console.error( - `FATAL: an invalid status exists in the ${LC} urlMap. k: ${k}, v: ${JSON.stringify(v)}`); + console.error(`FATAL: an invalid status exists in the ${LC} urlMap. k: ${k}, v: ${JSON.stringify(v)}`); failed = true; } } else { - console.error( - `FATAL: an invalid status exists in the ${LC} urlMap. k: ${k}, v: ${v}`); + console.error(`FATAL: an invalid status exists in the ${LC} urlMap. k: ${k}, v: ${v}`); failed = true; } }); console.log( - `${LC} REPORT\nSummary: ignored: ${ignored}, skipped: ${skipped}, invalid: ${invalid}, errors: ${error}, dead: ${dead}, alive: ${alive}, total: ${urlMap.size}`); + `${LC} REPORT\nSummary: ignored: ${ignored}, skipped: ${skipped}, invalid: ${invalid}, errors: ${error}, dead: ${dead}, alive: ${alive}, total: ${urlMap.size}` + ); if (invalid > 0) { - console.info( - `\n[INFO] ${LC} skipped the following ${invalid} invalid link(s):`); - enumMap(v => v.status === INVALID, (v, k) => `${k} is ${v.status}`, INFO); + console.info(`\n[INFO] ${LC} skipped the following ${invalid} invalid link(s):`); + enumMap( + (v) => v.status === INVALID, + (v, k) => `${k} is ${v.status}`, + INFO + ); } if (skipped > 0) { - console.info( - `\n[INFO] ${LC} skipped the following ${skipped} link(s) due to built-in skip rules:`); - enumMap(v => v.status === SKIPPED, (v, k) => `${k} was ${v.status}`, INFO); + console.info(`\n[INFO] ${LC} skipped the following ${skipped} link(s) due to built-in skip rules:`); + enumMap( + (v) => v.status === SKIPPED, + (v, k) => `${k} was ${v.status}`, + INFO + ); } if (dead > 0) { - console.warn( - `\n[WARN] ${LC} found the following ${dead} dead link(s):`); - enumMap(v => v.status === DEAD, (v, k) => `${k} is ${v.status} (${v.statusCode})\n==>Origin: ${v?.origin}\n`, WARN); + console.warn(`\n[WARN] ${LC} found the following ${dead} dead link(s):`); + enumMap( + (v) => v.status === DEAD, + (v, k) => `${k} is ${v.status} (${v.statusCode})\n==>Origin: ${v?.origin}\n`, + WARN + ); } if (error > 0) { console.warn(`\n[ERROR] ${LC} hit the following ${error} error(s):`); - enumMap(v => v.status === ERROR,(v, k) => `${k} (${v.statusCode}) error: ${v.msg}\n==>Origin: ${v?.origin}\n`, WARN); + enumMap( + (v) => v.status === ERROR, + (v, k) => `${k} (${v.statusCode}) error: ${v.msg}\n==>Origin: ${v?.origin}\n`, + WARN + ); } return !failed; @@ -243,23 +270,28 @@ function linkChecker() { function getStatus(status) { const ret = []; urlMap.forEach((v, k) => { - if (typeof v === 'object' && v.status === status) ret.push(k) - else if (v === status) ret.push(k) + if (typeof v === 'object' && v.status === status) ret.push(k); + else if (v === status) ret.push(k); }); return ret; } async function wait() { - let cnt = 0, iter = 0, lastCnt = 0, lastRpt = 0; + let cnt = 0, + iter = 0, + lastCnt = 0, + lastRpt = 0; while (true) { const checking = getStatus(CHECKING); cnt = checking.length; - if (cnt <= 0 || ++iter > (12 * 30)) break; // 30 min wait - console.log(`Waiting for ${cnt} remaining ${LC}s to finish...`) + if (cnt <= 0 || ++iter > 12 * 30) break; // 30 min wait + console.log(`Waiting for ${cnt} remaining ${LC}s to finish...`); if (cnt === lastCnt && cnt !== lastRpt) { lastRpt = cnt; console.log(`Here is what we're waiting on:`); - for (const c of checking) { console.log(`> ${c}`) } + for (const c of checking) { + console.log(`> ${c}`); + } } lastCnt = cnt; await sleep(5000); // 5s sleep @@ -276,7 +308,7 @@ function linkChecker() { for (const url of errors) { const obj = urlMap.get(url); urlMap.set(url, { status: CHECKING }); - urlCheck(obj.origin, url, linkCheckCallback).then(r => {}); + urlCheck(obj.origin, url, linkCheckCallback).then((r) => {}); } } @@ -305,4 +337,4 @@ function linkChecker() { }; } -module.exports = linkChecker; +export default linkChecker; diff --git a/src/utils/playwright-custom-reporter.js b/src/utils/playwright-custom-reporter.js index 33e75a3aa8..6419ac47f4 100644 --- a/src/utils/playwright-custom-reporter.js +++ b/src/utils/playwright-custom-reporter.js @@ -44,4 +44,4 @@ class StdIoErrReporter { } } -module.exports = StdIoErrReporter; \ No newline at end of file +export default StdIoErrReporter; diff --git a/src/utils/urlCheck.js b/src/utils/urlCheck.js index de60bb56c8..295b38fabe 100644 --- a/src/utils/urlCheck.js +++ b/src/utils/urlCheck.js @@ -1,21 +1,20 @@ -const nodeUrl = require('node:url'); -const needle = require('needle'); -const { RateLimiter } = require('limiter'); -const defDelay = 1000; // ms +import nodeUrl from 'node:url'; +import needle from 'needle'; +import { RateLimiter } from 'limiter'; + +const defDelay = 1000; // ms const defMaxRetry = 10; const needleOpts = { - compressed : false, // sets 'Accept-Encoding' to 'gzip, deflate, br' - follow_max : 7, // follow redirects - follow_keep_method : true, // on redirect, use original verb - parse_response : false, // don't parse the response - rejectUnauthorized : true, // verify SSL certificate - user_agent : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36', + compressed: false, // sets 'Accept-Encoding' to 'gzip, deflate, br' + follow_max: 7, // follow redirects + follow_keep_method: true, // on redirect, use original verb + parse_response: false, // don't parse the response + rejectUnauthorized: true, // verify SSL certificate + user_agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36', }; -const URL_CHECK_DEBUG = process.env.URL_CHECK_DEBUG - ? process.env.URL_CHECK_DEBUG.trim() : undefined; +const URL_CHECK_DEBUG = process.env.URL_CHECK_DEBUG ? process.env.URL_CHECK_DEBUG.trim() : undefined; const defRateLimit = '10/second'; -const rateLimit = process.env.RATE_LIMIT - ? process.env.RATE_LIMIT.split('/') : defRateLimit.split('/'); +const rateLimit = process.env.RATE_LIMIT ? process.env.RATE_LIMIT.split('/') : defRateLimit.split('/'); const limiter = new RateLimiter({ tokensPerInterval: Number(rateLimit[0]), interval: rateLimit[1], @@ -27,13 +26,12 @@ function parseRetryAfter(headers, defValue) { let hdrVal = ''; try { if (!headers) return defValue; - hdrVal = headers.hasOwnProperty('retry-after') - ? headers['retry-after'].trim() : ''; + hdrVal = headers.hasOwnProperty('retry-after') ? headers['retry-after'].trim() : ''; if (hdrVal === '') return defValue; debugLog('/', `Header 'retry-after' has value: ${hdrVal}`); return parseFloat(hdrVal) * 1000; } catch (err) { - console.error(`Error parsing 'retry-after' header '${hdrVal}': ${err}`) + console.error(`Error parsing 'retry-after' header '${hdrVal}': ${err}`); return defValue; } } @@ -53,15 +51,15 @@ function doGet(normUrl, callback, calls, delay, ctx) { ctx.status = code === 200 ? 'alive' : 'dead'; delay = parseRetryAfter(headers, delay); }); - get.on('data', chunk => { + get.on('data', (chunk) => { debugLog(normUrl, `IN get data EVENT: ${normUrl}`); get.request.abort(); get.request.destroy(); }); - get.on('done', err => { + get.on('done', (err) => { debugLog(normUrl, `IN get done EVENT: ${normUrl}`); ctx.err = err; - ctx.status = (err) ? 'error' : ctx.status; + ctx.status = err ? 'error' : ctx.status; end(); }); get.on('close', () => { @@ -73,12 +71,12 @@ function doGet(normUrl, callback, calls, delay, ctx) { if (endDone) return; endDone = true; if (!ctx.err && ctx.statusCode === 429 && calls < defMaxRetry) { - debugLog(normUrl, `IN get retry-after (${delay/1000} seconds): ${normUrl}`); - setTimeout(doGet, delay, normUrl, callback, 1+calls, delay, ctx); + debugLog(normUrl, `IN get retry-after (${delay / 1000} seconds): ${normUrl}`); + setTimeout(doGet, delay, normUrl, callback, 1 + calls, delay, ctx); return; } callback(null, ctx); - } + }; } async function urlCheck(origin, url, callback, calls = undefined) { @@ -95,8 +93,8 @@ async function urlCheck(origin, url, callback, calls = undefined) { ctx.status = ctx.statusCode === 200 ? 'alive' : 'dead'; if (!err && resp && resp.statusCode === 429 && calls < defMaxRetry) { delay = parseRetryAfter(resp.headers, delay); - debugLog(normUrl, `IN head retry-after (${delay/1000} seconds): ${normUrl}`); - setTimeout(urlCheck, delay, origin, url, callback, 1+calls); + debugLog(normUrl, `IN head retry-after (${delay / 1000} seconds): ${normUrl}`); + setTimeout(urlCheck, delay, origin, url, callback, 1 + calls); } else if (!err && (ctx.statusCode === 200 || ctx.statusCode === 404)) { debugLog(normUrl, `IN head 200/404: ${normUrl}`); callback(err, ctx); @@ -111,4 +109,4 @@ async function urlCheck(origin, url, callback, calls = undefined) { } } -module.exports = urlCheck; +export default urlCheck; diff --git a/variables.js b/variables.js index 04a6333362..9591331869 100644 --- a/variables.js +++ b/variables.js @@ -9,4 +9,4 @@ const variables = { }, }; -module.exports = variables; +export default variables; diff --git a/yarn.lock b/yarn.lock index 56d2da30be..f95c55d841 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2753,10 +2753,10 @@ "@docsearch/css" "3.6.1" algoliasearch "^4.19.1" -"@docusaurus/core@3.5.1", "@docusaurus/core@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.5.1.tgz#404069d12167bae097e73fdb0ad1c5e109407827" - integrity sha512-N3+9IbGI2jbkiRc6ZbEnU9dC02nHQXi8ivM1VJldkPQyP7WlyHXS+NDhmL3rwaYOMbGH96X2LcKigCKg7pEEqg== +"@docusaurus/core@3.5.2", "@docusaurus/core@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.5.2.tgz#3adedb90e7b6104592f1231043bd6bf91680c39c" + integrity sha512-4Z1WkhCSkX4KO0Fw5m/Vuc7Q3NxBG53NE5u59Rs96fWkMPZVSrzEPP16/Nk6cWb/shK7xXPndTmalJtw7twL/w== dependencies: "@babel/core" "^7.23.3" "@babel/generator" "^7.23.3" @@ -2768,12 +2768,12 @@ "@babel/runtime" "^7.22.6" "@babel/runtime-corejs3" "^7.22.6" "@babel/traverse" "^7.22.8" - "@docusaurus/cssnano-preset" "3.5.1" - "@docusaurus/logger" "3.5.1" - "@docusaurus/mdx-loader" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-common" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" + "@docusaurus/cssnano-preset" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" autoprefixer "^10.4.14" babel-loader "^9.1.3" babel-plugin-dynamic-import-node "^2.3.3" @@ -2827,32 +2827,32 @@ webpack-merge "^5.9.0" webpackbar "^5.0.2" -"@docusaurus/cssnano-preset@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.5.1.tgz#7b6911d3d991e02563ff88ffd04fbe1c5ec9246a" - integrity sha512-mvtWPLWePlm+4doepxMUT5ynsJQ3CgPtDdbaQh9wm3iAE/7OATBpSgLlfz5N+YtxI5bjIErjbkH8yzISP+S65g== +"@docusaurus/cssnano-preset@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.5.2.tgz#6c1f2b2f9656f978c4694c84ab24592b04dcfab3" + integrity sha512-D3KiQXOMA8+O0tqORBrTOEQyQxNIfPm9jEaJoALjjSjc2M/ZAWcUfPQEnwr2JB2TadHw2gqWgpZckQmrVWkytA== dependencies: cssnano-preset-advanced "^6.1.2" postcss "^8.4.38" postcss-sort-media-queries "^5.2.0" tslib "^2.6.0" -"@docusaurus/logger@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.5.1.tgz#85e56c58835c922fed25e32adf4e2a93c94f13b8" - integrity sha512-B36a88CEHCtxIylAV1HNuiiISpoKBqm0UxA6a/JwtHX++Dxb7LNDSGs8ELBlQsZN0OG2tX3tBsCWyaLPwYorkQ== +"@docusaurus/logger@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.5.2.tgz#1150339ad56844b30734115c19c580f3b25cf5ed" + integrity sha512-LHC540SGkeLfyT3RHK3gAMK6aS5TRqOD4R72BEU/DE2M/TY8WwEUAMY576UUc/oNJXv8pGhBmQB6N9p3pt8LQw== dependencies: chalk "^4.1.2" tslib "^2.6.0" -"@docusaurus/mdx-loader@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.5.1.tgz#6c04ed40387fe37a74f2db7743e189d52276a61c" - integrity sha512-D6Ea2dt32xhoqH+1EuHLGDVSX2HLFiR4QpI0GTU46qOu2hb2ChpQENIUZ2inOsdGFunNa0fCnDG3qn7Kdbzq1A== +"@docusaurus/mdx-loader@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.5.2.tgz#99781641372c5037bcbe09bb8ade93a0e0ada57d" + integrity sha512-ku3xO9vZdwpiMIVd8BzWV0DCqGEbCP5zs1iHfKX50vw6jX8vQo0ylYo1YJMZyz6e+JFJ17HYHT5FzVidz2IflA== dependencies: - "@docusaurus/logger" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" + "@docusaurus/logger" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" "@mdx-js/mdx" "^3.0.0" "@slorber/remark-comment" "^1.0.0" escape-html "^1.0.3" @@ -2875,12 +2875,12 @@ vfile "^6.0.1" webpack "^5.88.1" -"@docusaurus/module-type-aliases@3.5.1", "@docusaurus/module-type-aliases@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.5.1.tgz#3deeab0112cb2327614ce6653ae9ebbe6459e88b" - integrity sha512-SKKdA5RnvZr3pvFXkxtfsBVNgflRGa/bN1HbNi+1s0HNVYPuhB9DFC/CrKe2OoOfUXx7F7k2gg0Jg9gJYDy4rA== +"@docusaurus/module-type-aliases@3.5.2", "@docusaurus/module-type-aliases@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.5.2.tgz#4e8f9c0703e23b2e07ebfce96598ec83e4dd2a9e" + integrity sha512-Z+Xu3+2rvKef/YKTMxZHsEXp1y92ac0ngjDiExRdqGTmEKtCUpkbNYH8v5eXo5Ls+dnW88n6WTa+Q54kLOkwPg== dependencies: - "@docusaurus/types" "3.5.1" + "@docusaurus/types" "3.5.2" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -2888,19 +2888,19 @@ react-helmet-async "*" react-loadable "npm:@docusaurus/react-loadable@6.0.0" -"@docusaurus/plugin-content-blog@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.5.1.tgz#9d8e70c81a4ef6471e65bd4a17647889e275f555" - integrity sha512-aPmrMV5cDa2QUZ+kPVJID5O6r+ZuLFtHEyneVl9AgryL/9ECudhtpTUdmdnmapnWfUzSSgqYRZ1JtydGLheSzw== - dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/logger" "3.5.1" - "@docusaurus/mdx-loader" "3.5.1" - "@docusaurus/theme-common" "3.5.1" - "@docusaurus/types" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-common" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" +"@docusaurus/plugin-content-blog@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.5.2.tgz#649c07c34da7603645f152bcebdf75285baed16b" + integrity sha512-R7ghWnMvjSf+aeNDH0K4fjyQnt5L0KzUEnUhmf1e3jZrv3wogeytZNN6n7X8yHcMsuZHPOrctQhXWnmxu+IRRg== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" cheerio "1.0.0-rc.12" feed "^4.2.2" fs-extra "^11.1.1" @@ -2912,20 +2912,20 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-docs@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.5.1.tgz#91d79dc90b1f4b5dc792da8297b5b2b5dea60cc6" - integrity sha512-DX+I3eVyXak9KqYXg8dgptomqz/O4twjydpLJT8ZSe9lsZ0Pa1ZNPwmftWYn160O3o6GGeUYzr13Y1Got3iXRQ== - dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/logger" "3.5.1" - "@docusaurus/mdx-loader" "3.5.1" - "@docusaurus/module-type-aliases" "3.5.1" - "@docusaurus/theme-common" "3.5.1" - "@docusaurus/types" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-common" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" +"@docusaurus/plugin-content-docs@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.5.2.tgz#adcf6c0bd9a9818eb192ab831e0069ee62d31505" + integrity sha512-Bt+OXn/CPtVqM3Di44vHjE7rPCEsRCB/DMo2qoOuozB9f7+lsdrHvD0QCHdBs0uhz6deYJDppAr2VgqybKPlVQ== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/module-type-aliases" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" "@types/react-router-config" "^5.0.7" combine-promises "^1.1.0" fs-extra "^11.1.1" @@ -2935,114 +2935,114 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-pages@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.5.1.tgz#906ca4cba3ece2422aedf562a12ad44150dabdd7" - integrity sha512-V2PDVrO2vHYJ7uhrEHpfzg3TTuwfrgNC0pGhM5gXaMfCbdhKm7iwV0huGLcyIX5Peyh7EMP2e8GFccUzWFMYOg== - dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/mdx-loader" "3.5.1" - "@docusaurus/types" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" +"@docusaurus/plugin-content-pages@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.5.2.tgz#2b59e43f5bc5b5176ff01835de706f1c65c2e68b" + integrity sha512-WzhHjNpoQAUz/ueO10cnundRz+VUtkjFhhaQ9jApyv1a46FPURO4cef89pyNIOMny1fjDz/NUN2z6Yi+5WUrCw== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" fs-extra "^11.1.1" tslib "^2.6.0" webpack "^5.88.1" -"@docusaurus/plugin-debug@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.5.1.tgz#6bc6679130b6a3379f398cb793cea9078d32fb80" - integrity sha512-teFZamoECDiELwM1cx5OXd6dBpRtHarc7kWGL1iQozAkYcobZmqOWykBl4joMjSWUbJlx5v9/CVciykWbFNXjA== +"@docusaurus/plugin-debug@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.5.2.tgz#c25ca6a59e62a17c797b367173fe80c06fdf2f65" + integrity sha512-kBK6GlN0itCkrmHuCS6aX1wmoWc5wpd5KJlqQ1FyrF0cLDnvsYSnh7+ftdwzt7G6lGBho8lrVwkkL9/iQvaSOA== dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/types" "3.5.1" - "@docusaurus/utils" "3.5.1" + "@docusaurus/core" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" fs-extra "^11.1.1" react-json-view-lite "^1.2.0" tslib "^2.6.0" -"@docusaurus/plugin-google-analytics@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.5.1.tgz#e21a61b9c2deab61d77f2e15aaef79d996cf85b2" - integrity sha512-5FUiYZQWPXTPucMzaOOM25R7IwIPvMKbiB0SNVGtxVsGyFyo5i5fzrkBQl4mkZd7uqmslEPzwYbC28ZeFnrxjg== +"@docusaurus/plugin-google-analytics@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.5.2.tgz#1143e78d1461d3c74a2746f036d25b18d4a2608d" + integrity sha512-rjEkJH/tJ8OXRE9bwhV2mb/WP93V441rD6XnM6MIluu7rk8qg38iSxS43ga2V2Q/2ib53PcqbDEJDG/yWQRJhQ== dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/types" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" + "@docusaurus/core" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" tslib "^2.6.0" -"@docusaurus/plugin-google-gtag@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.5.1.tgz#81bc5075c99e3898d17684396379027b22116a7e" - integrity sha512-jxBtLBPMv9BJXPXrwJSs69qYcHP/evT1NkVza2yOai7wi5r3E1tVm0bAxdciWitpM0dgS/HDa30qXE7vA1NRDg== +"@docusaurus/plugin-google-gtag@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.5.2.tgz#60b5a9e1888c4fa16933f7c5cb5f2f2c31caad3a" + integrity sha512-lm8XL3xLkTPHFKKjLjEEAHUrW0SZBSHBE1I+i/tmYMBsjCcUB5UJ52geS5PSiOCFVR74tbPGcPHEV/gaaxFeSA== dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/types" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" + "@docusaurus/core" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" "@types/gtag.js" "^0.0.12" tslib "^2.6.0" -"@docusaurus/plugin-google-tag-manager@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.5.1.tgz#1f9d0bff161399777e45edafc1c59d9243508c30" - integrity sha512-W5WsKoRmb3lDmg2IBfmKsZDlQAkEx/dXuwr4bj7sSQdM8qd829Rsc4Gp5RddUrQdUz/W3Iocn7LayRM5aacJlA== +"@docusaurus/plugin-google-tag-manager@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.5.2.tgz#7a37334d2e7f00914d61ad05bc09391c4db3bfda" + integrity sha512-QkpX68PMOMu10Mvgvr5CfZAzZQFx8WLlOiUQ/Qmmcl6mjGK6H21WLT5x7xDmcpCoKA/3CegsqIqBR+nA137lQg== dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/types" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" + "@docusaurus/core" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" tslib "^2.6.0" -"@docusaurus/plugin-sitemap@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.5.1.tgz#1b0c579c3ffe2a433768afb9df4aed367813ebeb" - integrity sha512-VXMGJM6uy4jx6HUsFs+kn8MujWGjN7S7p7PYUYSf1bmcFNlf+Qg5vDZtwBElHa2hapeH2AIj2b3QmTgmWeyOHw== - dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/logger" "3.5.1" - "@docusaurus/types" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-common" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" +"@docusaurus/plugin-sitemap@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.5.2.tgz#9c940b27f3461c54d65295cf4c52cb20538bd360" + integrity sha512-DnlqYyRAdQ4NHY28TfHuVk414ft2uruP4QWCH//jzpHjqvKyXjj2fmDtI8RPUBh9K8iZKFMHRnLtzJKySPWvFA== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" fs-extra "^11.1.1" sitemap "^7.1.1" tslib "^2.6.0" -"@docusaurus/preset-classic@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.5.1.tgz#d7bcf5545a56fdeff5363cf81b30825ea39f4282" - integrity sha512-afDMZoNYxdloJ7qJJbd3Lmv9uYXKKsEAOtvnvu2945kqe1LUGIIwOo1nMAKgB9y21E5FEvWKnla0MvkMraumZA== - dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/plugin-content-blog" "3.5.1" - "@docusaurus/plugin-content-docs" "3.5.1" - "@docusaurus/plugin-content-pages" "3.5.1" - "@docusaurus/plugin-debug" "3.5.1" - "@docusaurus/plugin-google-analytics" "3.5.1" - "@docusaurus/plugin-google-gtag" "3.5.1" - "@docusaurus/plugin-google-tag-manager" "3.5.1" - "@docusaurus/plugin-sitemap" "3.5.1" - "@docusaurus/theme-classic" "3.5.1" - "@docusaurus/theme-common" "3.5.1" - "@docusaurus/theme-search-algolia" "3.5.1" - "@docusaurus/types" "3.5.1" - -"@docusaurus/theme-classic@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.5.1.tgz#a957270a88e64078fefc39e85e07128521700ef3" - integrity sha512-k8rLMwHuTc3SqYekc20s1uZHjabt9yi6mt1RUjbkwmjsJlAB6zrtYvsB+ZxrhY5yeUD8DZm3h0qVvKbClHVCCA== - dependencies: - "@docusaurus/core" "3.5.1" - "@docusaurus/mdx-loader" "3.5.1" - "@docusaurus/module-type-aliases" "3.5.1" - "@docusaurus/plugin-content-blog" "3.5.1" - "@docusaurus/plugin-content-docs" "3.5.1" - "@docusaurus/plugin-content-pages" "3.5.1" - "@docusaurus/theme-common" "3.5.1" - "@docusaurus/theme-translations" "3.5.1" - "@docusaurus/types" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-common" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" +"@docusaurus/preset-classic@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.5.2.tgz#977f78510bbc556aa0539149eef960bb7ab52bd9" + integrity sha512-3ihfXQ95aOHiLB5uCu+9PRy2gZCeSZoDcqpnDvf3B+sTrMvMTr8qRUzBvWkoIqc82yG5prCboRjk1SVILKx6sg== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/plugin-content-blog" "3.5.2" + "@docusaurus/plugin-content-docs" "3.5.2" + "@docusaurus/plugin-content-pages" "3.5.2" + "@docusaurus/plugin-debug" "3.5.2" + "@docusaurus/plugin-google-analytics" "3.5.2" + "@docusaurus/plugin-google-gtag" "3.5.2" + "@docusaurus/plugin-google-tag-manager" "3.5.2" + "@docusaurus/plugin-sitemap" "3.5.2" + "@docusaurus/theme-classic" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/theme-search-algolia" "3.5.2" + "@docusaurus/types" "3.5.2" + +"@docusaurus/theme-classic@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.5.2.tgz#602ddb63d987ab1f939e3760c67bc1880f01c000" + integrity sha512-XRpinSix3NBv95Rk7xeMF9k4safMkwnpSgThn0UNQNumKvmcIYjfkwfh2BhwYh/BxMXQHJ/PdmNh22TQFpIaYg== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/module-type-aliases" "3.5.2" + "@docusaurus/plugin-content-blog" "3.5.2" + "@docusaurus/plugin-content-docs" "3.5.2" + "@docusaurus/plugin-content-pages" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/theme-translations" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" "@mdx-js/react" "^3.0.0" clsx "^2.0.0" copy-text-to-clipboard "^3.2.0" @@ -3057,15 +3057,15 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-common@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.5.1.tgz#579fa956fde8f57bf8d88a5405878683cb27447e" - integrity sha512-r34YDzSjggX+B+8W+mG2dVh1ps4JJRCiyq8E1LnZIKLU6F89I2KpAZpPQ2/njKsKhBRLtQ1x92HVkD0FZ3xjrg== +"@docusaurus/theme-common@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.5.2.tgz#b507ab869a1fba0be9c3c9d74f2f3d74c3ac78b2" + integrity sha512-QXqlm9S6x9Ibwjs7I2yEDgsCocp708DrCrgHgKwg2n2AY0YQ6IjU0gAK35lHRLOvAoJUfCKpQAwUykB0R7+Eew== dependencies: - "@docusaurus/mdx-loader" "3.5.1" - "@docusaurus/module-type-aliases" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-common" "3.5.1" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/module-type-aliases" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -3075,19 +3075,19 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-search-algolia@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.5.1.tgz#70917ef7ee2ddf65814df1b232666e5e0806b0c4" - integrity sha512-IcUbgh9YcedANhpa0Q3+67WUKY8G7YkN/pZxVBEFjq3d2bniRKktPv41Nh/+AtGLSNJIcspZwEAs/r/mKSZGug== +"@docusaurus/theme-search-algolia@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.5.2.tgz#466c83ca7e8017d95ae6889ccddc5ef8bf6b61c6" + integrity sha512-qW53kp3VzMnEqZGjakaV90sst3iN1o32PH+nawv1uepROO8aEGxptcq2R5rsv7aBShSRbZwIobdvSYKsZ5pqvA== dependencies: "@docsearch/react" "^3.5.2" - "@docusaurus/core" "3.5.1" - "@docusaurus/logger" "3.5.1" - "@docusaurus/plugin-content-docs" "3.5.1" - "@docusaurus/theme-common" "3.5.1" - "@docusaurus/theme-translations" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-validation" "3.5.1" + "@docusaurus/core" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/plugin-content-docs" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/theme-translations" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" algoliasearch "^4.18.0" algoliasearch-helper "^3.13.3" clsx "^2.0.0" @@ -3097,23 +3097,23 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-translations@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.5.1.tgz#c400204a82b05aa922257143c7fbcb7fb0f38b2a" - integrity sha512-fyzQOWrTm0+ZpTlS0/xHsIK4f+LA4qVFrq8rCzIHjxZRip/noYUOwF64lA95vcuw6qnOVBoNE/LyfbBvExnpcw== +"@docusaurus/theme-translations@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.5.2.tgz#38f9ebf2a5d860397022206a05fef66c08863c89" + integrity sha512-GPZLcu4aT1EmqSTmbdpVrDENGR2yObFEX8ssEFYTCiAIVc0EihNSdOIBTazUvgNqwvnoU1A8vIs1xyzc3LITTw== dependencies: fs-extra "^11.1.1" tslib "^2.6.0" -"@docusaurus/tsconfig@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/tsconfig/-/tsconfig-3.5.1.tgz#dd72e77191b6253b015f69954461e1aa2a84f0ad" - integrity sha512-6OO63/xQ11Tu4reCRuB4zfjqdZYmQwkOTVI8zxxEHCLma4pplsx4HTCB2lVgztEL+Qr6hcHY952ZrpmoAt5rUA== +"@docusaurus/tsconfig@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/tsconfig/-/tsconfig-3.5.2.tgz#98878103ba217bff355cd8944926d9ca06e6e153" + integrity sha512-rQ7toURCFnWAIn8ubcquDs0ewhPwviMzxh6WpRjBW7sJVCXb6yzwUaY3HMNa0VXCFw+qkIbFywrMTf+Pb4uHWQ== -"@docusaurus/types@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.5.1.tgz#f9e86fbf8f6e090d635a3016cfa25bf9d5fb6fcf" - integrity sha512-IXTGQBoXAGFliGF5Cn3F+gSGskgzAL8+4y6dDY1gcePA0r8WngHj8oovS1YPv+b9JOff32nv8YGGZITHOMXJsA== +"@docusaurus/types@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.5.2.tgz#058019dbeffbee2d412c3f72569e412a727f9608" + integrity sha512-N6GntLXoLVUwkZw7zCxwy9QiuEXIcTVzA9AkmNw16oc0AP3SXLrMmDMMBIfgqwuKWa6Ox6epHol9kMtJqekACw== dependencies: "@mdx-js/mdx" "^3.0.0" "@types/history" "^4.7.11" @@ -3125,34 +3125,34 @@ webpack "^5.88.1" webpack-merge "^5.9.0" -"@docusaurus/utils-common@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.5.1.tgz#970989453033478c366b48af45e0b1be5f91d336" - integrity sha512-374n6/IW34gHR65JMMN33XLFogTCsrGVPQDVbv2vG96EYHvYzE/plfcGV7xSbXB8yS1YHsxVfvNgVUGi973bfQ== +"@docusaurus/utils-common@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.5.2.tgz#4d7f5e962fbca3e2239d80457aa0e4bd3d8f7e0a" + integrity sha512-i0AZjHiRgJU6d7faQngIhuHKNrszpL/SHQPgF1zH4H+Ij6E9NBYGy6pkcGWToIv7IVPbs+pQLh1P3whn0gWXVg== dependencies: tslib "^2.6.0" -"@docusaurus/utils-validation@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.5.1.tgz#369f38e599d105e2ccb5017db1e233b847405788" - integrity sha512-LZdQnqVVLStgTCn0rfvf4wuOQkjPbGtLXJIQ449em1wJeSFO7lfmn5VGUNLt+xKHvIPfN272EHG8BuvijCI0+A== +"@docusaurus/utils-validation@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.5.2.tgz#1b2b2f02082781cc8ce713d4c85e88d6d2fc4eb3" + integrity sha512-m+Foq7augzXqB6HufdS139PFxDC5d5q2QKZy8q0qYYvGdI6nnlNsGH4cIGsgBnV7smz+mopl3g4asbSDvMV0jA== dependencies: - "@docusaurus/logger" "3.5.1" - "@docusaurus/utils" "3.5.1" - "@docusaurus/utils-common" "3.5.1" + "@docusaurus/logger" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" fs-extra "^11.2.0" joi "^17.9.2" js-yaml "^4.1.0" lodash "^4.17.21" tslib "^2.6.0" -"@docusaurus/utils@3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.5.1.tgz#680067a3a38d46b6fed80b95555a58bcf19cb5ef" - integrity sha512-/4QAvXyiQviz2FQ4ct5l1ckvDihIdjS8FsOExC0T+Y1UD38jgPbjTwRJXsDaRsDRCCrDAtXvlonxXw2kixcnXw== +"@docusaurus/utils@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.5.2.tgz#17763130215f18d7269025903588ef7fb373e2cb" + integrity sha512-33QvcNFh+Gv+C2dP9Y9xWEzMgf3JzrpL2nW9PopidiohS1nDcyknKRx2DWaFvyVTTYIkkABVSr073VTj/NITNA== dependencies: - "@docusaurus/logger" "3.5.1" - "@docusaurus/utils-common" "3.5.1" + "@docusaurus/logger" "3.5.2" + "@docusaurus/utils-common" "3.5.2" "@svgr/webpack" "^8.1.0" escape-string-regexp "^4.0.0" file-loader "^6.2.0" @@ -3660,12 +3660,7 @@ unist-util-visit "^5.0.0" vfile "^6.0.0" -"@mdx-js/react@^1.6.22": - version "1.6.22" - resolved "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz" - integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== - -"@mdx-js/react@^3.0.0": +"@mdx-js/react@^3.0.0", "@mdx-js/react@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.0.1.tgz#997a19b3a5b783d936c75ae7c47cfe62f967f746" integrity sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A== @@ -5708,7 +5703,7 @@ clsx@^1.2.1: resolved "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== -clsx@^2.0.0: +clsx@^2.0.0, clsx@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==