Docs for installing Calico Forklift, including manifests, and calico{} struct in NetworkMap - #2982
Conversation
…t new calico{} struct in Tigera Forklift
✅ Deploy Preview for calico-docs-preview-next ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview succeeded!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
The manifests named a personal Docker Hub org, so anyone following the install pages pulled the component images from there. Name them at their release home instead. The v3.24.0-2-1 build tag is unchanged, so the manifests still describe the build that was verified rather than a moving target. Four populator images keep their upstream names without a forklift- prefix, for parity with kubev2v/forklift. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds Calico Enterprise documentation and accompanying static manifests for installing Tigera’s Forklift fork on OpenShift and Kubernetes, including guidance for Calico address preservation via NetworkMap and optional virt-v2v guest conversion security profiles.
Changes:
- Added Calico Enterprise docs pages for installing Forklift on OpenShift and on Kubernetes, including network mapping guidance (
calico{}inNetworkMap). - Added static ForkliftController manifests for OpenShift (4.21- and 4.22+) and Kubernetes installs.
- Added a static ConfigMap+DaemonSet manifest that installs seccomp/AppArmor profiles to support virt-v2v guest conversion on Kubernetes.
Reviewed changes
Copilot reviewed 7 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| static/files/forklift/forklift-virt-v2v-profiles.yaml | Adds seccomp + AppArmor profiles plus a DaemonSet installer for virt-v2v guest conversion compatibility. |
| static/files/forklift/forklift-controller-ocp422.yaml | Adds ForkliftController CR example for OpenShift 4.22+. |
| static/files/forklift/forklift-controller-ocp421.yaml | Adds ForkliftController CR example for OpenShift 4.21 and earlier. |
| static/files/forklift/forklift-controller-kubernetes.yaml | Adds ForkliftController CR example for plain Kubernetes with OpenShift-only features disabled. |
| sidebars-calico-enterprise.js | Adds the new Forklift install pages to the Calico Enterprise KubeVirt sidebar. |
| calico-enterprise/networking/kubevirt/install-forklift-openshift.mdx | New OpenShift install guide, including NetworkMap/Calico address-preservation guidance. |
| calico-enterprise/networking/kubevirt/install-forklift-kubernetes.mdx | New Kubernetes install guide, including cert-manager notes and guest-conversion profile workaround instructions. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 10 changed files in this pull request and generated no new comments.
Suppressed comments (4)
Previously missed (3) — in code that hasn't changed since the last review.
static/files/forklift/forklift-virt-v2v-profiles.yaml:935
- The initContainer uses a very old BusyBox image tag (1.27.2). For a privileged DaemonSet that runs on every node, it’s safer to use a more current BusyBox release to reduce exposure to known CVEs and improve compatibility.
- name: install
image: registry.k8s.io/busybox:1.27.2
command:
calico-enterprise/networking/kubevirt/install-forklift-openshift.mdx:83
- This
kubectl waitexample has no timeout, so it can hang indefinitely in the failure case. Other examples in this PR use--timeout=300s; consider doing the same here.
This issue also appears on line 89 of the same file.
kubectl -n konveyor-forklift wait --for=condition=Successful \
forkliftcontroller/forklift-controller
calico-enterprise/networking/kubevirt/install-forklift-kubernetes.mdx:98
- This
kubectl rollout statusexample has no timeout, so it can hang indefinitely if the DaemonSet never becomes ready (e.g., image pull failures). Consider adding a bounded timeout like the other commands in this doc.
kubectl -n konveyor-forklift rollout status ds/forklift-virt-v2v-profile-installer
calico-enterprise/networking/kubevirt/install-forklift-openshift.mdx:89
- This
kubectl waitexample has no timeout, so it can hang indefinitely if deployments never become Available. Adding a timeout makes the troubleshooting path clearer.
kubectl -n konveyor-forklift wait --for=condition=Available deploy --all

Product Version(s):
Issue:
Link to docs preview:
SME review:
DOCS review:
Additional information:
Merge checklist: