Repository: GoogleContainerTools/skaffold
Pull request #8446 (2023-02-16 16:32:28)

chore: add docs to explain keep-running-on-failure
<!-- Thank you for your contribution! -->

<!-- Include if applicable: -->
Fixes: #8342 <!-- tracking issues that this PR will close -->
**Related**: _Relevant tracking issues, for context_
**Merge before/after**: _Dependent or prerequisite PRs_

**Description**
<!-- Describe your changes here. The more detail, the easier the review! -->

**User facing changes (remove if N/A)**
<!-- Describe any user facing changes this PR introduces. -->
<!-- "Before" and "After" sections work great - bonus points for screenshots! -->
<!-- Be sure all docs have been updated as well! -->

**Follow-up Work (remove if N/A)**
<!-- Mention any related follow up work to this PR. -->


<!--
Please be sure your PR includes unit tests - we don't merge code that brings down test coverage! 
Integration tests are sometimes an appropriate substitute. 
-->


codecov[bot]: # [Codecov](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools) Report
> Merging [#8446](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools) (5fdd631) into [main](https://codecov.io/gh/GoogleContainerTools/skaffold/commit/290280e8c6c19231e9ed5b5c027f2c01d22f75be?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools) (290280e) will **decrease** coverage by `5.28%`.
> The diff coverage is `55.02%`.

```diff
@@            Coverage Diff             @@
##             main    #8446      +/-   ##
==========================================
- Coverage   70.48%   65.20%   -5.28%     
==========================================
  Files         515      603      +88     
  Lines       23150    29898    +6748     
==========================================
+ Hits        16317    19496    +3179     
- Misses       5776     8925    +3149     
- Partials     1057     1477     +420     
```


| [Impacted Files](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools) | Coverage Δ | |
|---|---|---|
| [cmd/skaffold/app/cmd/completion.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvY29tcGxldGlvbi5nbw==) | `13.04% <0.00%> (-1.25%)` | :arrow_down: |
| [cmd/skaffold/app/cmd/config/list.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvY29uZmlnL2xpc3QuZ28=) | `65.21% <ø> (ø)` | |
| [cmd/skaffold/app/cmd/config/set.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvY29uZmlnL3NldC5nbw==) | `88.72% <ø> (ø)` | |
| [cmd/skaffold/app/cmd/config/util.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvY29uZmlnL3V0aWwuZ28=) | `54.28% <ø> (ø)` | |
| [cmd/skaffold/app/cmd/credits.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvY3JlZGl0cy5nbw==) | `100.00% <ø> (ø)` | |
| [cmd/skaffold/app/cmd/credits/export.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvY3JlZGl0cy9leHBvcnQuZ28=) | `0.00% <0.00%> (ø)` | |
| [cmd/skaffold/app/cmd/deploy.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvZGVwbG95Lmdv) | `40.90% <0.00%> (-12.94%)` | :arrow_down: |
| [cmd/skaffold/app/cmd/generate\_pipeline.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvZ2VuZXJhdGVfcGlwZWxpbmUuZ28=) | `60.00% <ø> (ø)` | |
| [cmd/skaffold/app/cmd/inspect\_modules.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvaW5zcGVjdF9tb2R1bGVzLmdv) | `65.00% <ø> (ø)` | |
| [cmd/skaffold/app/cmd/inspect\_profiles.go](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools#diff-Y21kL3NrYWZmb2xkL2FwcC9jbWQvaW5zcGVjdF9wcm9maWxlcy5nbw==) | `66.66% <ø> (ø)` | |
| ... and [426 more](https://codecov.io/gh/GoogleContainerTools/skaffold/pull/8446?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools) | |

:mega: We’re building smart automated test selection to slash your CI/CD build times. [Learn more](https://about.codecov.io/iterative-testing/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=GoogleContainerTools)


Patch:
diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
index d6a7e1ab2..719d6254a 100644
--- a/.github/workflows/scorecards.yml
+++ b/.github/workflows/scorecards.yml
@@ -42,7 +42,7 @@ jobs:
 
       # Upload the results as artifacts (optional).
       - name: "Upload artifact"
-        uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # v3.1.0
+        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.0
         with:
           name: SARIF file
           path: results.sarif
diff --git a/deploy/skaffold/Dockerfile.deps b/deploy/skaffold/Dockerfile.deps
index 0e5ed90f3..17876eb5f 100644
--- a/deploy/skaffold/Dockerfile.deps
+++ b/deploy/skaffold/Dockerfile.deps
@@ -115,7 +115,7 @@ RUN \
     sha256sum -c bazel.${ARCH}.sha256
 RUN chmod +x bazel
 
-FROM gcr.io/gcp-runtimes/ubuntu_20_0_4 as runtime_deps
+FROM ubuntu:20.04 as runtime_deps
 
 RUN apt-get update && \
     apt-get install --no-install-recommends --no-install-suggests -y \
@@ -151,6 +151,7 @@ RUN gcloud auth configure-docker && gcloud components install --quiet \
     log-streaming
 
 FROM runtime_deps
+ENV DEBIAN_FRONTEND=noninteractive
 RUN apt-get update && apt-get install --no-install-recommends --no-install-suggests -y \
     build-essential \
     python-setuptools \
diff --git a/deploy/skaffold/Dockerfile.deps.lts b/deploy/skaffold/Dockerfile.deps.lts
index 78626ea4b..bcdbef71e 100644
--- a/deploy/skaffold/Dockerfile.deps.lts
+++ b/deploy/skaffold/Dockerfile.deps.lts
@@ -68,7 +68,7 @@ RUN \
 RUN tar -zxf gcloud.tar.gz
 
 
-FROM gcr.io/gcp-runtimes/ubuntu_20_0_4 as runtime_deps
+FROM ubuntu:20.04 as runtime_deps
 
 RUN apt-get update && \
     apt-get install --no-install-recommends --no-install-suggests -y \
@@ -95,6 +95,7 @@ RUN gcloud auth configure-docker && gcloud components install --quiet \
     log-streaming
 
 FROM runtime_deps
+ENV DEBIAN_FRONTEND=noninteractive
 RUN apt-get update && apt-get install --no-install-recommends --no-install-suggests -y \
     build-essential \
     python-setuptools \
diff --git a/deploy/skaffold/Dockerfile.deps.slim b/deploy/skaffold/Dockerfile.deps.slim
index 1c24da2bb..0bfe6df39 100644
--- a/deploy/skaffold/Dockerfile.deps.slim
+++ b/deploy/skaffold/Dockerfile.deps.slim
@@ -68,7 +68,7 @@ RUN \
 RUN tar -zxf gcloud.tar.gz
 
 
-FROM gcr.io/gcp-runtimes/ubuntu_20_0_4 as runtime_deps
+FROM ubuntu:20.04 as runtime_deps
 
 RUN apt-get update && \
     apt-get install --no-install-recommends --no-install-suggests -y \
@@ -95,6 +95,7 @@ RUN gcloud auth configure-docker && gcloud components install --quiet \
     log-streaming
 
 FROM runtime_deps
+ENV DEBIAN_FRONTEND=noninteractive
 RUN apt-get update && apt-get install --no-install-recommends --no-install-suggests -y \
     build-essential \
     python-setuptools \
diff --git a/docs-v2/content/en/docs/builders/_index.md b/docs-v2/content/en/docs/builders/_index.md
new file mode 100644
index 000000000..5e8afd6d0
--- /dev/null
+++ b/docs-v2/content/en/docs/builders/_index.md
@@ -0,0 +1,29 @@
+---
+title: "Build"
+linkTitle: "Build"
+weight: 42
+featureId: build
+aliases: [/docs/how-tos/builders, docs/pipeline-stages/builders]
+no_list: true
+---
+
+Skaffold supports different [tools]({{< relref "/docs/builders/builder-types" >}}) for building images across different [build environments]({{< relref "/docs/builders/build-environments" >}}).
+
+|    | [Local Build]({{< relref "/docs/builders/build-environments/local" >}}) | [In Cluster Build]({{< relref "/docs/builders/build-environments/in-cluster" >}}) | [Remote on Google Cloud Build]({{< relref "/docs/builders/build-environments/cloud-build" >}}) |
+|----|:-----------:|:----------------:|:----------------------------:|
+| **Dockerfile** | [Yes]({{< relref "/docs/builders/builder-types/docker#dockerfile-locally" >}}) | [Yes]({{< relref "/docs/builders/builder-types/docker#dockerfile-in-cluster-with-kaniko" >}}) | [Yes]({{< relref "/docs/builders/builder-types/docker#dockerfile-remotely-with-google-cloud-build" >}}) |
+| **Jib Maven and Gradle** | [Yes]({{< relref "/docs/builders/builder-types/jib#jib-maven-and-gradle-locally" >}}) | - | [Yes]({{< relref "/docs/builders/builder-types/jib#remotely-with-google-cloud-build" >}}) |
+| **Cloud Native Buildpacks** | [Yes]({{< relref "/docs/builders/builder-types/buildpacks" >}}) | - | [Yes]({{< relref "/docs/builders/builder-types/buildpacks" >}}) |
+| **Bazel** | [Yes]({{< relref "/docs/builders/builder-types/bazel" >}}) | - | - |
+| **ko** | [Yes]({{< relref "/docs/builders/builder-types/ko" >}}) | - | [Yes]({{< relref "/docs/builders/builder-types/ko#remote-builds" >}}) |
+| **Custom Script** | [Yes]({{<relref "/docs/builders/builder-types/custom#custom-build-script-locally" >}}) | [Yes]({{<relref "/docs/builders/builder-types/custom#custom-build-script-in-cluster" >}}) | - |
+
+## Configuration
+
+The `build` section in the Skaffold configuration file, `skaffold.yaml`,
+controls how artifacts are built. To use a specific tool for building
+artifacts, add the value representing the tool and options for using that tool
+to the `build` section.
+
+For detailed per-builder [Skaffold Configuration]({{< relref "/docs/design/config.md" >}}) options,
+see [skaffold.yaml References]({{< relref "/docs/references/yaml" >}}).
diff --git a/docs-v2/content/en/docs/builders/build-environments/_index.md b/docs-v2/content/en/docs/builders/build-environments/_index.md
new file mode 100644
index 000000000..0f74f9d5b
--- /dev/null
+++ b/docs-v2/content/en/docs/builders/build-environments/_index.md
@@ -0,0 +1,11 @@
+---
+title: "Build environments"
+linkTitle: "Environments"
+weight: 20
+no_list: true
+---
+
+Skaffold supports the following build environments:
+* [Local build]({{< relref "/docs/builders/build-environments/local" >}})
+* [In cluster build]({{< relref "/docs/builders/build-environments/in-cluster" >}})
+* [Remotely on Google Cloud Build]({{< relref "/docs/builders/build-environments/cloud-build" >}})
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/cloud-build.md b/docs-v2/content/en/docs/builders/build-environments/cloud-build.md
similarity index 88%
rename from docs-v2/content/en/docs/pipeline-stages/builders/build-environments/cloud-build.md
rename to docs-v2/content/en/docs/builders/build-environments/cloud-build.md
index 2f264579b..c87fb0ba2 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/cloud-build.md
+++ b/docs-v2/content/en/docs/builders/build-environments/cloud-build.md
@@ -49,6 +49,6 @@ When artifacts are built in parallel, the build logs are still printed in sequen
 
 ## Restrictions
 
-Skaffold currently supports [Docker]({{<relref "/docs/pipeline-stages/builders/builder-types/docker#dockerfile-remotely-with-google-cloud-build">}}),
-[Jib]({{<relref "/docs/pipeline-stages/builders/builder-types/jib#remotely-with-google-cloud-build">}})
+Skaffold currently supports [Docker]({{<relref "/docs/builders/builder-types/docker#dockerfile-remotely-with-google-cloud-build">}}),
+[Jib]({{<relref "/docs/builders/builder-types/jib#remotely-with-google-cloud-build">}})
 on Google Cloud Build.
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/in-cluster.md b/docs-v2/content/en/docs/builders/build-environments/in-cluster.md
similarity index 80%
rename from docs-v2/content/en/docs/pipeline-stages/builders/build-environments/in-cluster.md
rename to docs-v2/content/en/docs/builders/build-environments/in-cluster.md
index 7d1d990ca..31fc0053d 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/in-cluster.md
+++ b/docs-v2/content/en/docs/builders/build-environments/in-cluster.md
@@ -4,8 +4,8 @@ linkTitle: "In cluster"
 weight: 20
 ---
 
-Skaffold supports building in cluster via [Kaniko]({{< relref "/docs/pipeline-stages/builders/builder-types/docker#dockerfile-in-cluster-with-kaniko" >}}) 
-or [Custom Build Script]({{<relref "/docs/pipeline-stages/builders/builder-types/custom#custom-build-script-in-cluster" >}}).
+Skaffold supports building in cluster via [Kaniko]({{< relref "/docs/builders/builder-types/docker#dockerfile-in-cluster-with-kaniko" >}}) 
+or [Custom Build Script]({{<relref "/docs/builders/builder-types/custom#custom-build-script-in-cluster" >}}).
 
 ## Configuration
 
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/local.md b/docs-v2/content/en/docs/builders/build-environments/local.md
similarity index 96%
rename from docs-v2/content/en/docs/pipeline-stages/builders/build-environments/local.md
rename to docs-v2/content/en/docs/builders/build-environments/local.md
index 68fe7d233..0636cb863 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/local.md
+++ b/docs-v2/content/en/docs/builders/build-environments/local.md
@@ -53,6 +53,6 @@ useful for images that are expensive to build.
 a _stale image_, where the imported image is different from the image
 that would have been built from the artifact source.
 `tryImportMissing` is best used with a
-[tagging policy]({{<relref "/docs/pipeline-stages/taggers" >}}) such as
+[tagging policy]({{<relref "/docs/taggers" >}}) such as
 `imageDigest` or `gitCommit`'s `TreeSha` or `AbbrevTreeSha` variants,
 where the tag is computed using the artifact's contents.
diff --git a/docs-v2/content/en/docs/builders/builder-types/_index.md b/docs-v2/content/en/docs/builders/builder-types/_index.md
new file mode 100644
index 000000000..cead5087b
--- /dev/null
+++ b/docs-v2/content/en/docs/builders/builder-types/_index.md
@@ -0,0 +1,13 @@
+---
+title: "Builder types"
+linkTitle: "Builder types"
+weight: 10
+no_list: true
+---
+
+Skaffold supports the following builder types:
+* [Docker]({{< relref "/docs/builders/builder-types/docker" >}})
+* [Jib]({{< relref "/docs/builders/builder-types/jib" >}})
+* [Bazel]({{< relref "/docs/builders/builder-types/bazel" >}})
+* [Custom build script]({{< relref "/docs/builders/builder-types/custom" >}})
+* [ko]({{< relref "/docs/builders/builder-types/ko" >}})
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/bazel.md b/docs-v2/content/en/docs/builders/builder-types/bazel.md
similarity index 91%
rename from docs-v2/content/en/docs/pipeline-stages/builders/builder-types/bazel.md
rename to docs-v2/content/en/docs/builders/builder-types/bazel.md
index 8385ac287..84ddff956 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/bazel.md
+++ b/docs-v2/content/en/docs/builders/builder-types/bazel.md
@@ -3,7 +3,7 @@ title: "Bazel"
 linkTitle: "Bazel"
 weight: 30
 featureId: build
-aliases: [/docs/builders/bazel]
+aliases: [/docs/pipeline-stages/builders/bazel]
 ---
 
 [Bazel](https://bazel.build/) is a fast, scalable, multi-language, and
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/buildpacks.md b/docs-v2/content/en/docs/builders/builder-types/buildpacks.md
similarity index 97%
rename from docs-v2/content/en/docs/pipeline-stages/builders/builder-types/buildpacks.md
rename to docs-v2/content/en/docs/builders/builder-types/buildpacks.md
index 0fbcf0ac4..150f5d6d1 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/buildpacks.md
+++ b/docs-v2/content/en/docs/builders/builder-types/buildpacks.md
@@ -3,7 +3,7 @@ title: "Cloud Native Buildpacks"
 linkTitle: "Buildpacks"
 weight: 50
 featureId: build.buildpacks
-aliases: [/docs/how-tos/buildpacks, /docs/builders/buildpacks]
+aliases: [/docs/how-tos/buildpacks, /docs/pipeline-stages/builders/buildpacks]
 ---
 
 [Cloud Native Buildpacks](https://buildpacks.io/) enable building
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/custom.md b/docs-v2/content/en/docs/builders/builder-types/custom.md
similarity index 99%
rename from docs-v2/content/en/docs/pipeline-stages/builders/builder-types/custom.md
rename to docs-v2/content/en/docs/builders/builder-types/custom.md
index 157f71903..5b51b8acf 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/custom.md
+++ b/docs-v2/content/en/docs/builders/builder-types/custom.md
@@ -3,7 +3,7 @@ title: "Custom Build Script"
 linkTitle: "Custom"
 weight: 40
 featureId: build.custom
-aliases: [/docs/builders/custom]
+aliases: [/docs/pipeline-stages/builders/custom]
 ---
 
 Custom build scripts allow Skaffold users the flexibility to build artifacts with any builder they desire. 
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/docker.md b/docs-v2/content/en/docs/builders/builder-types/docker.md
similarity index 90%
rename from docs-v2/content/en/docs/pipeline-stages/builders/builder-types/docker.md
rename to docs-v2/content/en/docs/builders/builder-types/docker.md
index b23fdcdc9..14eb2b067 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/docker.md
+++ b/docs-v2/content/en/docs/builders/builder-types/docker.md
@@ -3,14 +3,14 @@ title: "Docker Build"
 linkTitle: "Docker"
 weight: 10
 featureId: build
-aliases: [/docs/builders/docker]
+aliases: [/docs/pipeline-stages/builders/docker]
 ---
 
 Skaffold supports building with Dockerfile
 
-1. [locally]({{< relref "/docs/pipeline-stages/builders/builder-types/docker#dockerfile-with-docker-locally">}})
-2. [in cluster]({{< relref "/docs/pipeline-stages/builders/builder-types/docker#dockerfile-in-cluster-with-kaniko">}})
-3. [on Google CloudBuild ]({{< relref "/docs/pipeline-stages/builders/builder-types/docker#dockerfile-remotely-with-google-cloud-build">}})
+1. [locally]({{< relref "/docs/builders/builder-types/docker#dockerfile-with-docker-locally">}})
+2. [in cluster]({{< relref "/docs/builders/builder-types/docker#dockerfile-in-cluster-with-kaniko">}})
+3. [on Google CloudBuild ]({{< relref "/docs/builders/builder-types/docker#dockerfile-remotely-with-google-cloud-build">}})
 
 ## Dockerfile with Docker locally
 
@@ -117,7 +117,7 @@ Docker image `gcr.io/k8s-skaffold/example` with Kaniko:
 
 ## Dockerfile remotely with Google Cloud Build
 
-Skaffold can build the Dockerfile image remotely with [Google Cloud Build]({{<relref "/docs/pipeline-stages/builders#remotely-on-google-cloud-build">}}).
+Skaffold can build the Dockerfile image remotely with [Google Cloud Build]({{<relref "/docs/builders#remotely-on-google-cloud-build">}}).
 
 **Configuration**
 
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/jib.md b/docs-v2/content/en/docs/builders/builder-types/jib.md
similarity index 87%
rename from docs-v2/content/en/docs/pipeline-stages/builders/builder-types/jib.md
rename to docs-v2/content/en/docs/builders/builder-types/jib.md
index 2520a7eb3..04de03e40 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/jib.md
+++ b/docs-v2/content/en/docs/builders/builder-types/jib.md
@@ -3,7 +3,7 @@ title: "Jib Build"
 linkTitle: "Jib"
 weight: 20
 featureId: build
-aliases: [/docs/builders/jib]
+aliases: [/docs/pipeline-stages/builders/jib]
 ---
 
 [Jib](https://github.com/GoogleContainerTools/jib#jib) is a set of plugins for
@@ -19,8 +19,8 @@ Skaffold requires using Jib v1.4.0 or later.
 
 Skaffold supports building with Jib
 
-1. [locally]({{< relref "/docs/pipeline-stages/builders/builder-types/jib#jib-maven-and-gradle-locally" >}}) and
-2. [remotely on Google Cloud Build]({{< relref "/docs/pipeline-stages/builders/builder-types/jib#remotely-with-google-cloud-build" >}})
+1. [locally]({{< relref "/docs/builders/builder-types/jib#jib-maven-and-gradle-locally" >}}) and
+2. [remotely on Google Cloud Build]({{< relref "/docs/builders/builder-types/jib#remotely-with-google-cloud-build" >}})
 
 ## Jib Maven and Gradle locally
 **Configuration**
@@ -92,7 +92,7 @@ a container image.  Then for each such sub-project:
 
 ## Remotely with Google Cloud Build
 
-Skaffold can build artifacts using Jib remotely on [Google Cloud Build]({{<relref "/docs/pipeline-stages/builders#remotely-on-google-cloud-build">}}).
+Skaffold can build artifacts using Jib remotely on [Google Cloud Build]({{<relref "/docs/builders#remotely-on-google-cloud-build">}}).
 
 **Configuration**
 
@@ -122,7 +122,7 @@ artifacts:
 
 ### Using the `custom` builder
 
-Some users may have more complicated builds that may be better suited to using the [`custom` builder](https://skaffold.dev/docs/pipeline-stages/builders/builder-types/custom/).  For example, the `jib` builder normally invokes the `prepare-package` goal rather than `package` as Jib packages the `.class` files rather than package in the jar.  But some plugins require the `package` goal.
+Some users may have more complicated builds that may be better suited to using the [`custom` builder](https://skaffold.dev/docs/builders/builder-types/custom/).  For example, the `jib` builder normally invokes the `prepare-package` goal rather than `package` as Jib packages the `.class` files rather than package in the jar.  But some plugins require the `package` goal.
 ```
 artifacts:
 - image: jib-gradle-image
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/ko.md b/docs-v2/content/en/docs/builders/builder-types/ko.md
similarity index 94%
rename from docs-v2/content/en/docs/pipeline-stages/builders/builder-types/ko.md
rename to docs-v2/content/en/docs/builders/builder-types/ko.md
index e6ff0f9fd..a91c367d6 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/ko.md
+++ b/docs-v2/content/en/docs/builders/builder-types/ko.md
@@ -3,7 +3,7 @@ title: "ko"
 linkTitle: "ko"
 weight: 60
 featureId: build.ko
-aliases: [/docs/builders/ko]
+aliases: [/docs/pipeline-stages/builders/ko]
 ---
 
 [`ko`](https://github.com/google/ko) enables fast, standardized, reproducible,
@@ -17,28 +17,28 @@ to use the ko builder.
 
 Compared to ...
 
-- [the Cloud Native buildpacks builder]({{< relref "/docs/pipeline-stages/builders/builder-types/buildpacks" >}}),
+- [the Cloud Native buildpacks builder]({{< relref "/docs/builders/builder-types/buildpacks" >}}),
   the ko builder is
   [fast](https://cloud.google.com/blog/topics/developers-practitioners/ship-your-go-applications-faster-cloud-run-ko),
   doesn't require Docker, and uses a default base image that has a small
   attack surface
   ([distroless](https://github.com/GoogleContainerTools/distroless)).
 
-- [the Docker builder]({{< relref "/docs/pipeline-stages/builders/builder-types/docker" >}}),
+- [the Docker builder]({{< relref "/docs/builders/builder-types/docker" >}}),
   the ko builder standardizes builds, avoiding artisanal
   [snowflake](https://martinfowler.com/bliki/SnowflakeServer.html)
   `Dockerfile`s. It also doesn't require the Docker daemon, so builds can run
   in environments where Docker isn't available for security reasons.
 
-- [the Kaniko builder]({{< relref "/docs/pipeline-stages/builders/builder-types/docker#dockerfile-in-cluster-with-kaniko" >}}),
+- [the Kaniko builder]({{< relref "/docs/builders/builder-types/docker#dockerfile-in-cluster-with-kaniko" >}}),
   the ko builder doesn't need a Kubernetes cluster, and it avoids the
   previously-mentioned artisanal `Dockerfile`s.
 
-- [the Bazel builder]({{< relref "/docs/pipeline-stages/builders/builder-types/bazel" >}}),
+- [the Bazel builder]({{< relref "/docs/builders/builder-types/bazel" >}}),
   the ko builder doesn't require users to adopt Bazel. However, we recommend
   the Bazel builder for users who already use Bazel for their Go apps.
 
-- [the custom builder]({{< relref "/docs/pipeline-stages/builders/builder-types/custom" >}}),
+- [the custom builder]({{< relref "/docs/builders/builder-types/custom" >}}),
   the ko builder standardizes builds, as it doesn't require running `ko` using
   custom shell scripts.
 
@@ -257,7 +257,7 @@ Useful tips for existing `ko` users:
 
 - You can generate `skaffold.yaml` files by examining an existing code base,
   using the command
-  [`skaffold init --XXenableKoInit=true`]({{< relref "/docs/pipeline-stages/init" >}}).
+  [`skaffold init --XXenableKoInit=true`]({{< relref "/docs/init" >}}).
   Select the Ko builder for your images when prompted.
 
 ### `ko` commands and workflows in Skaffold
@@ -391,7 +391,7 @@ To learn more about how Skaffold debugs Go applications, read the
 ### File sync
 
 The `ko` builder can
-[sync files to a running container]({{< relref "/docs/pipeline-stages/filesync" >}})
+[sync files to a running container]({{< relref "/docs/filesync" >}})
 when you run `skaffold dev`.
 
 The sync feature for the `ko` builder only works for 
@@ -439,7 +439,7 @@ The `ko` builder supports remote builds on Google Cloud Build. See the
 ### Using the `custom` builder
 
 If the ko builder doesn't support your use of `ko`, you can instead use the
-[`custom` builder]({{< relref "/docs/pipeline-stages/builders/builder-types/custom" >}}).
+[`custom` builder]({{< relref "/docs/builders/builder-types/custom" >}}).
 
 See the `custom` builder
 [example](https://github.com/GoogleContainerTools/skaffold/tree/main/examples/custom).
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/cross-platform.md b/docs-v2/content/en/docs/builders/cross-platform.md
similarity index 83%
rename from docs-v2/content/en/docs/pipeline-stages/builders/build-environments/cross-platform.md
rename to docs-v2/content/en/docs/builders/cross-platform.md
index b592f65e9..38d7b96f9 100644
--- a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/cross-platform.md
+++ b/docs-v2/content/en/docs/builders/cross-platform.md
@@ -32,5 +32,5 @@ The final list of target platforms need to ultimately be supported by the target
 | **Custom Script** | Cross-platform and multi-platform supported but requires user to implement it in the build script | Cross-platform and multi-platform supported but requires user to implement it in the build script | - |
 
 {{< alert title="Note" >}}
-Skaffold supports multi-platform image builds natively for the [jib builder]({{<relref "/docs/pipeline-stages/builders/builder-types/jib" >}}), the [ko builder]({{<relref "/docs/pipeline-stages/builders/builder-types/ko">}}) and the [custom builder]({{<relref "/docs/pipeline-stages/builders/builder-types/custom" >}}). For other builders that support building cross-architecture images, Skaffold will iteratively build a single platform image for each target architecture and stitch them together into a multi-platform image, and push it to the registry.
+Skaffold supports multi-platform image builds natively for the [jib builder]({{<relref "/docs/builders/builder-types/jib" >}}), the [ko builder]({{<relref "/docs/builders/builder-types/ko">}}) and the [custom builder]({{<relref "/docs/builders/builder-types/custom" >}}). For other builders that support building cross-architecture images, Skaffold will iteratively build a single platform image for each target architecture and stitch them together into a multi-platform image, and push it to the registry.
 {{< /alert >}}
diff --git a/docs-v2/content/en/docs/pipeline-stages/cleanup.md b/docs-v2/content/en/docs/cleanup.md
similarity index 95%
rename from docs-v2/content/en/docs/pipeline-stages/cleanup.md
rename to docs-v2/content/en/docs/cleanup.md
index 5b2e968a0..1696d4f7d 100644
--- a/docs-v2/content/en/docs/pipeline-stages/cleanup.md
+++ b/docs-v2/content/en/docs/cleanup.md
@@ -1,11 +1,12 @@
 ---
 title: "Cleanup"
 linkTitle: "Cleanup"
-weight: 60
+weight: 47
 featureId: cleanup
+aliases: [/docs/pipeline-stages/cleanup]
 ---
 
-Skaffold works with [image builders]({{<relref "/docs/pipeline-stages/builders">}}) and [deployers]({{<relref "/docs/pipeline-stages/deployers">}}) 
+Skaffold works with [image builders]({{<relref "/docs/builders">}}) and [deployers]({{<relref "/docs/deployers">}}) 
 that both have side effects on both your local and deployment environments: 
 
 - resources are created in one or more namespaces in a Kubernetes cluster 
diff --git a/docs-v2/content/en/docs/pipeline-stages/deployers/_index.md b/docs-v2/content/en/docs/deployers/_index.md
similarity index 91%
rename from docs-v2/content/en/docs/pipeline-stages/deployers/_index.md
rename to docs-v2/content/en/docs/deployers/_index.md
index b8b5baafe..feeb9dca7 100644
--- a/docs-v2/content/en/docs/pipeline-stages/deployers/_index.md
+++ b/docs-v2/content/en/docs/deployers/_index.md
@@ -1,9 +1,9 @@
 ---
 title: "Deploy [UPDATED]"
 linkTitle: "Deploy [UPDATED]"
-weight: 10
+weight: 42
 featureId: deploy
-aliases: [/docs/how-tos/deployers]
+aliases: [/docs/how-tos/deployers, /docs/pipeline-stages/deployers]
 no_list: true
 ---
 
@@ -13,7 +13,7 @@ In the default case (no manifest provided using the kubectl or kpt deployer ), s
 * the Skaffold renderer _renders_ the final Kubernetes manifests: Skaffold replaces untagged image names in the Kubernetes manifests with the final tagged image names.
 It also might go through the extra intermediate step of expanding templates (for helm) or calculating overlays (for kustomize).  Additionally some deployers (docker) do not render manifests as such don't use this phase.
 * the Skaffold deployer _deploys_ the final Kubernetes manifests to the cluster (or to local docker for the docker deployer)
-* the Skaffold deployer performs [status checks]({{< relref "/docs/pipeline-stages/status-check" >}}) and waits for the deployed resources to stabilize.
+* the Skaffold deployer performs [status checks]({{< relref "/docs/status-check" >}}) and waits for the deployed resources to stabilize.
 ### Supported deployers
 
 Skaffold supports the following tools for deploying applications:
diff --git a/docs-v2/content/en/docs/pipeline-stages/deployers/cloudrun.md b/docs-v2/content/en/docs/deployers/cloudrun.md
similarity index 99%
rename from docs-v2/content/en/docs/pipeline-stages/deployers/cloudrun.md
rename to docs-v2/content/en/docs/deployers/cloudrun.md
index 503831f22..f7953fe2f 100644
--- a/docs-v2/content/en/docs/pipeline-stages/deployers/cloudrun.md
+++ b/docs-v2/content/en/docs/deployers/cloudrun.md
@@ -3,6 +3,7 @@ title: "Google Cloud Run [NEW]"
 linkTitle: "Google Cloud Run [NEW]"
 weight: 60
 featureId: deploy.cloudrun
+aliases: [/docs/pipeline-stages/deployers/cloudrun]
 ---
 
 {{< alert title="Note" >}}
diff --git a/docs-v2/content/en/docs/pipeline-stages/deployers/docker.md b/docs-v2/content/en/docs/deployers/docker.md
similarity index 96%
rename from docs-v2/content/en/docs/pipeline-stages/deployers/docker.md
rename to docs-v2/content/en/docs/deployers/docker.md
index 475141d28..8d5db0677 100644
--- a/docs-v2/content/en/docs/pipeline-stages/deployers/docker.md
+++ b/docs-v2/content/en/docs/deployers/docker.md
@@ -3,6 +3,7 @@ title: "Docker"
 linkTitle: "Docker"
 weight: 50
 featureId: deploy.docker
+aliases: [/docs/pipeline-stages/deployers/docker]
 ---
 
 {{< alert title="Note" >}}
diff --git a/docs-v2/content/en/docs/pipeline-stages/deployers/helm.md b/docs-v2/content/en/docs/deployers/helm.md
similarity index 99%
rename from docs-v2/content/en/docs/pipeline-stages/deployers/helm.md
rename to docs-v2/content/en/docs/deployers/helm.md
index 457c11e4a..b1bca4739 100644
--- a/docs-v2/content/en/docs/pipeline-stages/deployers/helm.md
+++ b/docs-v2/content/en/docs/deployers/helm.md
@@ -3,6 +3,7 @@ title: "Helm [UPDATED]"
 linkTitle: "Helm [UPDATED]"
 weight: 40
 featureId: deploy
+aliases: [/docs/pipeline-stages/deployers/helm]
 ---
 
 [`helm`](https://helm.sh/) is a package manager for Kubernetes that helps you
diff --git a/docs-v2/content/en/docs/pipeline-stages/deployers/kpt.md b/docs-v2/content/en/docs/deployers/kpt.md
similarity index 95%
rename from docs-v2/content/en/docs/pipeline-stages/deployers/kpt.md
rename to docs-v2/content/en/docs/deployers/kpt.md
index 032de3ca2..d9707b3a8 100644
--- a/docs-v2/content/en/docs/pipeline-stages/deployers/kpt.md
+++ b/docs-v2/content/en/docs/deployers/kpt.md
@@ -3,6 +3,7 @@ title: "Kpt [UPDATED]"
 linkTitle: "Kpt [UPDATED]"
 weight: 30
 featureId: deploy
+aliases: [/docs/pipeline-stages/deployers/kpt]
 ---
 
 ## Rendering with kpt
diff --git a/docs-v2/content/en/docs/pipeline-stages/deployers/kubectl.md b/docs-v2/content/en/docs/deployers/kubectl.md
similarity index 94%
rename from docs-v2/content/en/docs/pipeline-stages/deployers/kubectl.md
rename to docs-v2/content/en/docs/deployers/kubectl.md
index 16f2b6acc..ecc827bf9 100644
--- a/docs-v2/content/en/docs/pipeline-stages/deployers/kubectl.md
+++ b/docs-v2/content/en/docs/deployers/kubectl.md
@@ -3,6 +3,7 @@ title: "Kubectl"
 linkTitle: "Kubectl"
 weight: 20
 featureId: deploy
+aliases: [/docs/pipeline-stages/deployers/kubectl]
 ---
 
 ## Deploying with kubectl
diff --git a/docs-v2/content/en/docs/design/config.md b/docs-v2/content/en/docs/design/config.md
index 0b5a645bc..a81cdadf9 100644
--- a/docs-v2/content/en/docs/design/config.md
+++ b/docs-v2/content/en/docs/design/config.md
@@ -13,9 +13,9 @@ You can configure Skaffold with the Skaffold configuration file,
 | `apiVersion` | The Skaffold API version you would like to use. The current API version is {{< skaffold-version >}}. |
 | `kind`  |  The Skaffold configuration file has the kind `Config`.  |
 | `metadata`  |  Holds additional properties like the `name` of this configuration.  |
-| `build`  |  Specifies how Skaffold builds artifacts. You have control over what tool Skaffold can use, how Skaffold tags artifacts and how Skaffold pushes artifacts. Skaffold supports using local Docker daemon, Google Cloud Build, Kaniko, or Bazel to build artifacts. See [Builders](/docs/pipeline-stages/builders) and [Taggers]({{< relref "/docs/pipeline-stages/taggers" >}}) for more information. |
-| `test` |  Specifies how Skaffold tests artifacts. Skaffold supports [container-structure-tests](https://github.com/GoogleContainerTools/container-structure-test) to test built artifacts and custom tests to run custom commands as part of the development pipeline. See [Testers]({{< relref "/docs/pipeline-stages/testers" >}}) for more information. |
-| `deploy` |  Specifies how Skaffold deploys artifacts. Skaffold supports using `kubectl`, `helm`, or `kustomize` to deploy artifacts. See [Deployers]({{< relref "/docs/pipeline-stages/deployers" >}}) for more information. |
+| `build`  |  Specifies how Skaffold builds artifacts. You have control over what tool Skaffold can use, how Skaffold tags artifacts and how Skaffold pushes artifacts. Skaffold supports using local Docker daemon, Google Cloud Build, Kaniko, or Bazel to build artifacts. See [Builders](/docs/builders) and [Taggers]({{< relref "/docs/taggers" >}}) for more information. |
+| `test` |  Specifies how Skaffold tests artifacts. Skaffold supports [container-structure-tests](https://github.com/GoogleContainerTools/container-structure-test) to test built artifacts and custom tests to run custom commands as part of the development pipeline. See [Testers]({{< relref "/docs/testers" >}}) for more information. |
+| `deploy` |  Specifies how Skaffold deploys artifacts. Skaffold supports using `kubectl`, `helm`, or `kustomize` to deploy artifacts. See [Deployers]({{< relref "/docs/deployers" >}}) for more information. |
 | `profiles`|  Profile is a set of settings that, when activated, overrides the current configuration. You can use Profile to override the `build`, `test` and `deploy` sections. |
 | `requires`|  Specifies a list of other skaffold configurations to import into the current config |
 
diff --git a/docs-v2/content/en/docs/environment/profiles.md b/docs-v2/content/en/docs/environment/profiles.md
index 3babff0e1..f8f1bc80e 100644
--- a/docs-v2/content/en/docs/environment/profiles.md
+++ b/docs-v2/content/en/docs/environment/profiles.md
@@ -31,8 +31,8 @@ Once a profile is activated, the specified `build`, `test` and `deploy` configur
 in it will be laid onto, but won't completely replace, the `build`, `test` and `deploy` sections declared
 in the main section of `skaffold.yaml`. The `build`, `test` and `deploy` configuration in the `profiles`
 section use the same syntax as the `build`, `test` and `deploy` sections of
-`skaffold.yaml`; for more information, see [Builders]({{< relref "/docs/pipeline-stages/builders" >}}),
-[Testers](/docs/pipeline-stages/testers), [Deployers]({{< relref "/docs/pipeline-stages/deployers" >}}) and you can always refer to
+`skaffold.yaml`; for more information, see [Builders]({{< relref "/docs/builders" >}}),
+[Testers](/docs/testers), [Deployers]({{< relref "/docs/deployers" >}}) and you can always refer to
  [skaffold.yaml reference]({{< relref "/docs/references/yaml" >}}) for an overview of the syntax.
  Alternatively, you can override the main configuration with finer grained control using `patches`.
 
diff --git a/docs-v2/content/en/docs/environment/templating.md b/docs-v2/content/en/docs/environment/templating.md
index ce22d9513..a63bd58db 100644
--- a/docs-v2/content/en/docs/environment/templating.md
+++ b/docs-v2/content/en/docs/environment/templating.md
@@ -15,14 +15,14 @@ will be `gcr.io/k8s-skaffold/example:v1`.
 
 List of fields that support templating:
 
-* `build.artifacts.[].docker.buildArgs` (see [builders]({{< relref "/docs/pipeline-stages/builders" >}}))
-* `build.artifacts.[].ko.{env,flags,labels,ldflags}` (see [`ko` builder]({{< relref "/docs/pipeline-stages/builders/builder-types/ko" >}}))
-* `build.tagPolicy.envTemplate.template` (see [envTemplate tagger]({{< relref "/docs/pipeline-stages/taggers#envtemplate-using-values-of-environment-variables-as-tags)" >}}))
-* `deploy.helm.releases.setValueTemplates` (see [Deploying with helm]({{< relref "/docs/pipeline-stages/deployers#deploying-with-helm)" >}}))
-* `deploy.helm.releases.name` (see [Deploying with helm]({{< relref "/docs/pipeline-stages/deployers#deploying-with-helm)" >}}))
-* `deploy.helm.releases.namespace` (see [Deploying with helm]({{< relref "/docs/pipeline-stages/deployers#deploying-with-helm)" >}}))
-* `deploy.helm.releases[].repo` (see [Deploying with helm]({{< relref "/docs/pipeline-stages/deployers#deploying-with-helm)" >}}))
-* `deploy.helm.releases.version` (see [Deploying with helm]({{< relref "/docs/pipeline-stages/deployers#deploying-with-helm)" >}}))
+* `build.artifacts.[].docker.buildArgs` (see [builders]({{< relref "/docs/builders" >}}))
+* `build.artifacts.[].ko.{env,flags,labels,ldflags}` (see [`ko` builder]({{< relref "/docs/builders/builder-types/ko" >}}))
+* `build.tagPolicy.envTemplate.template` (see [envTemplate tagger]({{< relref "/docs/taggers#envtemplate-using-values-of-environment-variables-as-tags)" >}}))
+* `deploy.helm.releases.setValueTemplates` (see [Deploying with helm]({{< relref "/docs/deployers#deploying-with-helm)" >}}))
+* `deploy.helm.releases.name` (see [Deploying with helm]({{< relref "/docs/deployers#deploying-with-helm)" >}}))
+* `deploy.helm.releases.namespace` (see [Deploying with helm]({{< relref "/docs/deployers#deploying-with-helm)" >}}))
+* `deploy.helm.releases[].repo` (see [Deploying with helm]({{< relref "/docs/deployers#deploying-with-helm)" >}}))
+* `deploy.helm.releases.version` (see [Deploying with helm]({{< relref "/docs/deployers#deploying-with-helm)" >}}))
 * `deploy.kubectl.defaultNamespace`
 * `deploy.kustomize.defaultNamespace`
 * `manifests.kustomize.paths.[]`
diff --git a/docs-v2/content/en/docs/pipeline-stages/filesync.md b/docs-v2/content/en/docs/filesync.md
similarity index 98%
rename from docs-v2/content/en/docs/pipeline-stages/filesync.md
rename to docs-v2/content/en/docs/filesync.md
index 38767de65..3162138d4 100644
--- a/docs-v2/content/en/docs/pipeline-stages/filesync.md
+++ b/docs-v2/content/en/docs/filesync.md
@@ -1,9 +1,9 @@
 ---
 title: "File Sync"
 linkTitle: "File Sync"
-weight: 40
+weight: 44
 featureId: sync
-aliases: [/docs/how-tos/filesync]
+aliases: [/docs/how-tos/filesync, docs/pipeline-stages/filesync]
 ---
 
 Skaffold supports copying changed files to a deployed container so as to avoid the need to rebuild, redeploy, and restart the corresponding pod.
@@ -86,7 +86,7 @@ files; file deletion will cause a complete rebuild.
 For multi-stage Dockerfiles, Skaffold only examines the last stage.
 Use manual sync rules to sync file copies from other stages.
 
-[Ko artifacts supports syncing static content]({{<relref "/docs/pipeline-stages/builders/builder-types/ko#file-sync">}}),
+[Ko artifacts supports syncing static content]({{<relref "/docs/builders/builder-types/ko#file-sync">}}),
 and the sync rules apply to added, modified, and deleted files.
 
 ### Auto sync mode
diff --git a/docs-v2/content/en/docs/pipeline-stages/init.md b/docs-v2/content/en/docs/init.md
similarity index 91%
rename from docs-v2/content/en/docs/pipeline-stages/init.md
rename to docs-v2/content/en/docs/init.md
index b9451d9d7..1fbc80e3b 100644
--- a/docs-v2/content/en/docs/pipeline-stages/init.md
+++ b/docs-v2/content/en/docs/init.md
@@ -1,8 +1,9 @@
 ---
 title: "Init"
 linkTitle: "Init"
-weight: 1
+weight: 41
 featureId: init
+aliases: [/docs/pipeline-stages/init]
 ---
 
 `skaffold init` helps you get started using Skaffold by running you through a wizard and
@@ -15,10 +16,10 @@ and [deploy](#deploy-config-initialization) config.
 
 `skaffold init` currently supports build detection for those builders:
 
-1. [Docker]({{<relref "/docs/pipeline-stages/builders/builder-types/docker">}})
-2. [Jib]({{<relref "/docs/pipeline-stages/builders/builder-types/jib">}})
-3. [Ko]({{<relref "/docs/pipeline-stages/builders/builder-types/ko">}})
-4. [Buildpacks]({{<relref "/docs/pipeline-stages/builders/builder-types/buildpacks">}})
+1. [Docker]({{<relref "/docs/builders/builder-types/docker">}})
+2. [Jib]({{<relref "/docs/builders/builder-types/jib">}})
+3. [Ko]({{<relref "/docs/builders/builder-types/ko">}})
+4. [Buildpacks]({{<relref "/docs/builders/builder-types/buildpacks">}})
 
 `skaffold init` walks your project directory and looks for any build configuration files such as `Dockerfile`,
 `build.gradle/pom.xml`, `package.json`, `requirements.txt` or `go.mod`. `init` skips files that are larger
@@ -41,7 +42,7 @@ options are correct, or this image is not built by any of your source code.<br>
 If this image is one you want Skaffold to build, you'll need to manually set up the build configuration for this artifact.
 {{</alert>}}
 
-`skaffold` init also recognizes Maven and Gradle projects, and will auto-suggest the [`jib`]({{<relref "/docs/pipeline-stages/builders#/local#jib-maven-and-gradle">}}) builder.
+`skaffold` init also recognizes Maven and Gradle projects, and will auto-suggest the [`jib`]({{<relref "/docs/builders#/local#jib-maven-and-gradle">}}) builder.
 
 You can try this out on our example [jib project](https://github.com/GoogleContainerTools/skaffold/tree/main/examples/jib-multimodule)
 
@@ -53,8 +54,8 @@ skaffold init
 
 
 ## Deploy Config Initialization
-`skaffold init` support bootstrapping projects set up to deploy with [`kubectl`]({{<relref "/docs/pipeline-stages/deployers#deploying-with-kubectl" >}})
-or [`kustomize`]({{<relref "/docs/pipeline-stages/deployers#deploying-with-kubectl" >}}).
+`skaffold init` support bootstrapping projects set up to deploy with [`kubectl`]({{<relref "/docs/deployers#deploying-with-kubectl" >}})
+or [`kustomize`]({{<relref "/docs/deployers#deploying-with-kubectl" >}}).
 
 ### kubectl
 For projects deploying straight through `kubectl`, Skaffold will walk through all the `yaml` files in your project and find valid Kubernetes manifest files.
diff --git a/docs-v2/content/en/docs/pipeline-stages/lifecycle-hooks.md b/docs-v2/content/en/docs/lifecycle-hooks.md
similarity index 95%
rename from docs-v2/content/en/docs/pipeline-stages/lifecycle-hooks.md
rename to docs-v2/content/en/docs/lifecycle-hooks.md
index 4ee1f1e16..4d764ee93 100644
--- a/docs-v2/content/en/docs/pipeline-stages/lifecycle-hooks.md
+++ b/docs-v2/content/en/docs/lifecycle-hooks.md
@@ -1,9 +1,9 @@
 ---
 title: "Lifecycle Hooks"
 linkTitle: "Lifecycle Hooks"
-weight: 50
+weight: 45
 featureId: hooks
-aliases: [/docs/how-tos/hooks]
+aliases: [/docs/how-tos/hooks, /docs/pipeline-stages/lifecycle-hooks]
 ---
 
 This page describes how to use the lifecycle hook framework to run code triggered by different events during the skaffold process lifecycle.
@@ -153,4 +153,4 @@ deploy:
             containerName: hooks-example* # use a glob pattern to prefix-match the container name and pod name for deployments, stateful-sets, etc.
             podName: hooks-example-deployment*
 ```
-This config snippet defines a simple `echo` command to run inside the containers that match `podName` and `containerName`, before and after each `kubectl` deploy. The `after` container commands are only run after the [deployment status checks]({{< relref "/docs/pipeline-stages/status-check" >}}) on the deployment are complete. Also, unlike the `sync` container hooks, skaffold cannot determine the target container from just the config definition, and needs the `podName` and `containerName`.
+This config snippet defines a simple `echo` command to run inside the containers that match `podName` and `containerName`, before and after each `kubectl` deploy. The `after` container commands are only run after the [deployment status checks]({{< relref "/docs/status-check" >}}) on the deployment are complete. Also, unlike the `sync` container hooks, skaffold cannot determine the target container from just the config definition, and needs the `podName` and `containerName`.
diff --git a/docs-v2/content/en/docs/pipeline-stages/log-tailing.md b/docs-v2/content/en/docs/log-tailing.md
similarity index 97%
rename from docs-v2/content/en/docs/pipeline-stages/log-tailing.md
rename to docs-v2/content/en/docs/log-tailing.md
index e8148c637..dbc17dc87 100644
--- a/docs-v2/content/en/docs/pipeline-stages/log-tailing.md
+++ b/docs-v2/content/en/docs/log-tailing.md
@@ -1,8 +1,9 @@
 ---
 title: "Log Tailing"
 linkTitle: "Log Tailing"
-weight: 40
+weight: 44
 featureId: logging
+aliases: [docs/pipeline-stages/log-tailing]
 ---
 
 Skaffold has built-in support for tailing logs for containers **built and deployed by Skaffold** on your cluster
diff --git a/docs-v2/content/en/docs/pipeline-stages/_index.md b/docs-v2/content/en/docs/pipeline-stages/_index.md
index 1663305ce..b94bf7cdb 100644
--- a/docs-v2/content/en/docs/pipeline-stages/_index.md
+++ b/docs-v2/content/en/docs/pipeline-stages/_index.md
@@ -23,16 +23,16 @@ will not push artifacts to a remote repository.
 
 | Skaffold Pipeline stages|Description| 
 |----------|-------|------|
-| [Init]({{< relref "/docs/pipeline-stages/init" >}}) | generate a starting point for Skaffold configuration | 
-| [Build]({{< relref "/docs/pipeline-stages/builders" >}}) | build images with different builders | 
-| [Render]({{< relref "/docs/pipeline-stages/renderers" >}}) | render manifests with different renderers | 
-| [Tag]({{< relref "/docs/pipeline-stages/taggers" >}}) | tag images based on different policies |
-| [Test]({{< relref "/docs/pipeline-stages/testers" >}}) | run tests with testers |
-| [Deploy]({{< relref "/docs/pipeline-stages/deployers" >}}) |  deploy with kubectl, kustomize or helm |
-| [Verify]({{< relref "/docs/pipeline-stages/verify" >}}) |  verify deployments with specified test containers |
-| [File Sync]({{< relref "/docs/pipeline-stages/filesync" >}}) |  sync changed files directly to containers |
-| [Log Tailing]({{< relref "/docs/pipeline-stages/log-tailing" >}}) |  tail logs from workloads |
-| [Port Forwarding]({{< relref "/docs/pipeline-stages/port-forwarding" >}}) | forward ports from services and arbitrary resources to localhost  |
-| [Deploy Status Checking]({{< relref "/docs/pipeline-stages/status-check" >}}) | wait for deployed resources to stabilize  |
-| [Lifecycle Hooks]({{< relref "/docs/pipeline-stages/lifecycle-hooks" >}}) | run code triggered by different events during the skaffold process lifecycle  |
-| [Cleanup]({{< relref "/docs/pipeline-stages/cleanup" >}}) | cleanup manifests and images |
+| [Init]({{< relref "/docs/init" >}}) | generate a starting point for Skaffold configuration | 
+| [Build]({{< relref "/docs/builders" >}}) | build images with different builders | 
+| [Render]({{< relref "/docs/renderers" >}}) | render manifests with different renderers | 
+| [Tag]({{< relref "/docs/taggers" >}}) | tag images based on different policies |
+| [Test]({{< relref "/docs/testers" >}}) | run tests with testers |
+| [Deploy]({{< relref "/docs/deployers" >}}) |  deploy with kubectl, kustomize or helm |
+| [Verify]({{< relref "/docs/verify" >}}) |  verify deployments with specified test containers |
+| [File Sync]({{< relref "/docs/filesync" >}}) |  sync changed files directly to containers |
+| [Log Tailing]({{< relref "/docs/log-tailing" >}}) |  tail logs from workloads |
+| [Port Forwarding]({{< relref "/docs/port-forwarding" >}}) | forward ports from services and arbitrary resources to localhost  |
+| [Deploy Status Checking]({{< relref "/docs/status-check" >}}) | wait for deployed resources to stabilize  |
+| [Lifecycle Hooks]({{< relref "/docs/lifecycle-hooks" >}}) | run code triggered by different events during the skaffold process lifecycle  |
+| [Cleanup]({{< relref "/docs/cleanup" >}}) | cleanup manifests and images |
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/_index.md b/docs-v2/content/en/docs/pipeline-stages/builders/_index.md
deleted file mode 100644
index 5152f5727..000000000
--- a/docs-v2/content/en/docs/pipeline-stages/builders/_index.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "Build"
-linkTitle: "Build"
-weight: 10
-featureId: build
-aliases: [/docs/how-tos/builders]
-no_list: true
----
-
-Skaffold supports different [tools]({{< relref "/docs/pipeline-stages/builders/builder-types" >}}) for building images across different [build environments]({{< relref "/docs/pipeline-stages/builders/build-environments" >}}).
-
-|    | Local Build | In Cluster Build | Remote on Google Cloud Build |
-|----|:-----------:|:----------------:|:----------------------------:|
-| **Dockerfile** | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/docker#dockerfile-locally" >}}) | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/docker#dockerfile-in-cluster-with-kaniko" >}}) | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/docker#dockerfile-remotely-with-google-cloud-build" >}}) |
-| **Jib Maven and Gradle** | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/jib#jib-maven-and-gradle-locally" >}}) | - | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/jib#remotely-with-google-cloud-build" >}}) |
-| **Cloud Native Buildpacks** | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/buildpacks" >}}) | - | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/buildpacks" >}}) |
-| **Bazel** | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/bazel" >}}) | - | - |
-| **ko** | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/ko" >}}) | - | [Yes]({{< relref "/docs/pipeline-stages/builders/builder-types/ko#remote-builds" >}}) |
-| **Custom Script** | [Yes]({{<relref "/docs/pipeline-stages/builders/builder-types/custom#custom-build-script-locally" >}}) | [Yes]({{<relref "/docs/pipeline-stages/builders/builder-types/custom#custom-build-script-in-cluster" >}}) | - |
-
-## Configuration
-
-The `build` section in the Skaffold configuration file, `skaffold.yaml`,
-controls how artifacts are built. To use a specific tool for building
-artifacts, add the value representing the tool and options for using that tool
-to the `build` section.
-
-For detailed per-builder [Skaffold Configuration]({{< relref "/docs/design/config.md" >}}) options,
-see [skaffold.yaml References]({{< relref "/docs/references/yaml" >}}).
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/_index.md b/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/_index.md
deleted file mode 100644
index 4d402e108..000000000
--- a/docs-v2/content/en/docs/pipeline-stages/builders/build-environments/_index.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "Build environments"
-linkTitle: "Environments"
-weight: 20
-no_list: true
----
-
-Skaffold supports the following build environments:
-* [Local build]({{< relref "/docs/pipeline-stages/builders/build-environments/local" >}})
-* [In cluster build]({{< relref "/docs/pipeline-stages/builders/build-environments/in-cluster" >}})
-* [Remotely on Google Cloud Build]({{< relref "/docs/pipeline-stages/builders/build-environments/cloud-build" >}})
-
-Skaffold also supports [Cross-platform and multi-platform builds]({{< relref "/docs/pipeline-stages/builders/build-environments/cross-platform" >}})
diff --git a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/_index.md b/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/_index.md
deleted file mode 100644
index 47dbb1733..000000000
--- a/docs-v2/content/en/docs/pipeline-stages/builders/builder-types/_index.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "Builder types"
-linkTitle: "Builder types"
-weight: 10
-no_list: true
----
-
-Skaffold supports the following builder types:
-* [Docker]({{< relref "/docs/pipeline-stages/builders/builder-types/docker" >}})
-* [Jib]({{< relref "/docs/pipeline-stages/builders/builder-types/jib" >}})
-* [Bazel]({{< relref "/docs/pipeline-stages/builders/builder-types/bazel" >}})
-* [Custom build script]({{< relref "/docs/pipeline-stages/builders/builder-types/custom" >}})
-* [ko]({{< relref "/docs/pipeline-stages/builders/builder-types/ko" >}})
diff --git a/docs-v2/content/en/docs/pipeline-stages/port-forwarding.md b/docs-v2/content/en/docs/port-forwarding.md
similarity index 93%
rename from docs-v2/content/en/docs/pipeline-stages/port-forwarding.md
rename to docs-v2/content/en/docs/port-forwarding.md
index ff808a29e..41d559a70 100644
--- a/docs-v2/content/en/docs/pipeline-stages/port-forwarding.md
+++ b/docs-v2/content/en/docs/port-forwarding.md
@@ -1,9 +1,9 @@
 ---
 title: "Port Forwarding"
 linkTitle: "Port Forwarding"
-weight: 50
+weight: 46
 featureId: portforward
-aliases: [/docs/how-tos/portforward]
+aliases: [/docs/how-tos/portforward, /docs/pipeline-stages/port-forwarding]
 ---
 
 Skaffold has built-in support for forwarding ports from exposed Kubernetes resources on your cluster
@@ -69,7 +69,7 @@ User-defined port-forwards in the `skaffold.yaml` are unaffected and can bind to
 {{< /alert >}}
 
 {{< alert title="Note about user-defined port-forwarding for Docker deployments" >}}
-When [deploying to Docker]({{< relref "/docs/pipeline-stages/deployers/docker" >}}) with a user-defined port-forward in the `skaffold.yaml`, the `resourceType` of `portForward` must be set to `container`. Otherwise, Skaffold will not tell the Docker daemon to expose that port.
+When [deploying to Docker]({{< relref "/docs/deployers/docker" >}}) with a user-defined port-forward in the `skaffold.yaml`, the `resourceType` of `portForward` must be set to `container`. Otherwise, Skaffold will not tell the Docker daemon to expose that port.
 {{< /alert >}}
 
 Skaffold will run `kubectl port-forward` on each of these resources in addition to the automatic port forwarding described above.
diff --git a/docs-v2/content/en/docs/quickstart/_index.md b/docs-v2/content/en/docs/quickstart/_index.md
index 7469c61c8..0f5248ad5 100644
--- a/docs-v2/content/en/docs/quickstart/_index.md
+++ b/docs-v2/content/en/docs/quickstart/_index.md
@@ -253,7 +253,7 @@ For more in-depth topics of Skaffold, explore [Configuration]({{< relref "/docs/
 [Skaffold Pipeline]({{<relref "/docs/pipeline-stages" >}}), and [Architecture and Design]({{< relref "/docs/design" >}}).
 
 To learn more about how Skaffold builds, tags, and deploys your app, see the How-to Guides on
-using [Builders]({{<relref "/docs/pipeline-stages/builders" >}}), [Taggers]({{< relref "/docs/pipeline-stages/taggers">}}), and [Deployers]({{< relref "/docs/pipeline-stages/deployers" >}}).
+using [Builders]({{<relref "/docs/builders" >}}), [Taggers]({{< relref "/docs/taggers">}}), and [Deployers]({{< relref "/docs/deployers" >}}).
 
 [Skaffold Tutorials]({{< relref "/docs/tutorials" >}}) details some of the common use cases of Skaffold.
 
diff --git a/docs-v2/content/en/docs/pipeline-stages/renderers/_index.md b/docs-v2/content/en/docs/renderers/_index.md
similarity index 93%
rename from docs-v2/content/en/docs/pipeline-stages/renderers/_index.md
rename to docs-v2/content/en/docs/renderers/_index.md
index 83446ce6d..fc11b7a43 100644
--- a/docs-v2/content/en/docs/pipeline-stages/renderers/_index.md
+++ b/docs-v2/content/en/docs/renderers/_index.md
@@ -1,9 +1,9 @@
 ---
 title: "Render [NEW]"
 linkTitle: "Render [NEW]"
-weight: 10
+weight: 42
 featureId: render
-aliases: [/docs/how-tos/renderers]
+aliases: [/docs/how-tos/renderers, /docs/pipeline-stages/renderers/]
 no_list: true
 ---
 
diff --git a/docs-v2/content/en/docs/pipeline-stages/renderers/helm.md b/docs-v2/content/en/docs/renderers/helm.md
similarity index 99%
rename from docs-v2/content/en/docs/pipeline-stages/renderers/helm.md
rename to docs-v2/content/en/docs/renderers/helm.md
index 14e5c2a22..1555be2dc 100644
--- a/docs-v2/content/en/docs/pipeline-stages/renderers/helm.md
+++ b/docs-v2/content/en/docs/renderers/helm.md
@@ -3,6 +3,7 @@ title: "Helm [UPDATED]"
 linkTitle: "Helm [UPDATED]"
 weight: 40
 featureId: render
+aliases: [/docs/pipeline-stages/renderers/helm]
 ---
 
 [`helm`](https://helm.sh/) is a package manager for Kubernetes that helps you
diff --git a/docs-v2/content/en/docs/pipeline-stages/renderers/kpt.md b/docs-v2/content/en/docs/renderers/kpt.md
similarity index 98%
rename from docs-v2/content/en/docs/pipeline-stages/renderers/kpt.md
rename to docs-v2/content/en/docs/renderers/kpt.md
index 113f60405..cf1bdc9af 100644
--- a/docs-v2/content/en/docs/pipeline-stages/renderers/kpt.md
+++ b/docs-v2/content/en/docs/renderers/kpt.md
@@ -3,6 +3,7 @@ title: "Kpt [NEW]"
 linkTitle: "Kpt [NEW]"
 weight: 30
 featureId: render
+aliases: [/docs/pipeline-stages/renderers/kpt]
 ---
 
 {{< alert title="Note" >}}
diff --git a/docs-v2/content/en/docs/pipeline-stages/renderers/kustomize.md b/docs-v2/content/en/docs/renderers/kustomize.md
similarity index 94%
rename from docs-v2/content/en/docs/pipeline-stages/renderers/kustomize.md
rename to docs-v2/content/en/docs/renderers/kustomize.md
index 9ddb6dce8..ccf9ad911 100644
--- a/docs-v2/content/en/docs/pipeline-stages/renderers/kustomize.md
+++ b/docs-v2/content/en/docs/renderers/kustomize.md
@@ -3,6 +3,7 @@ title: "Kustomize"
 linkTitle: "Kustomize"
 weight: 30
 featureId: render
+aliases: [/docs/pipeline-stages/renderers/kustomize]
 ---
 
 ## Rendering with kustomize
diff --git a/docs-v2/content/en/docs/pipeline-stages/renderers/rawYaml.md b/docs-v2/content/en/docs/renderers/rawYaml.md
similarity index 88%
rename from docs-v2/content/en/docs/pipeline-stages/renderers/rawYaml.md
rename to docs-v2/content/en/docs/renderers/rawYaml.md
index f2a2bebc6..c2a6526d8 100644
--- a/docs-v2/content/en/docs/pipeline-stages/renderers/rawYaml.md
+++ b/docs-v2/content/en/docs/renderers/rawYaml.md
@@ -3,6 +3,7 @@ title: "Raw YAML"
 linkTitle: "Raw YAML"
 weight: 20
 featureId: render
+aliases: [/docs/pipeline-stages/renderers/rawyaml]
 ---
 
 ## Rendering with raw YAML
diff --git a/docs-v2/content/en/docs/pipeline-stages/status-check.md b/docs-v2/content/en/docs/status-check.md
similarity index 98%
rename from docs-v2/content/en/docs/pipeline-stages/status-check.md
rename to docs-v2/content/en/docs/status-check.md
index 2753c193e..c042b05dc 100644
--- a/docs-v2/content/en/docs/pipeline-stages/status-check.md
+++ b/docs-v2/content/en/docs/status-check.md
@@ -1,9 +1,9 @@
 ---
 title: "Deploy Status Checking"
 linkTitle: "Deploy Status Checking"
-weight: 50
+weight: 45
 featureId: deploy.status_check
-aliases: [/docs/how-tos/status-check]
+aliases: [/docs/how-tos/status-check, /docs/pipeline-stages/status-check]
 ---
 
 This page describes how Skaffold's _deployment status checking_ waits for deployed resources to become ready, and reports errors if they fails to stabilize within a certain time period.
diff --git a/docs-v2/content/en/docs/pipeline-stages/taggers.md b/docs-v2/content/en/docs/taggers.md
similarity index 97%
rename from docs-v2/content/en/docs/pipeline-stages/taggers.md
rename to docs-v2/content/en/docs/taggers.md
index b1cdd90b4..a1ee2edf9 100644
--- a/docs-v2/content/en/docs/pipeline-stages/taggers.md
+++ b/docs-v2/content/en/docs/taggers.md
@@ -1,9 +1,9 @@
 ---
 title: "Tag"
 linkTitle: "Tag"
-weight: 15
+weight: 43
 featureId: tagpolicy
-aliases: [/docs/how-tos/taggers]
+aliases: [/docs/how-tos/taggers, /docs/pipeline-stages/taggers]
 ---
 
 Skaffold supports multiple taggers or tag policies for tagging images:
@@ -121,7 +121,7 @@ will be `gcr.io/k8s-skaffold/example:v1`.
 
 The tag template uses the [Go Programming Language Syntax](https://golang.org/pkg/text/template/).
 As showcased in the example, `envTemplate` tag policy features one
-**required** parameter, `template`, which is the tag template to use. To learn more about templating support in Skaffold.yaml see [Templated fields]({{< relref "../environment/templating.md" >}})
+**required** parameter, `template`, which is the tag template to use. To learn more about templating support in Skaffold.yaml see [Templated fields]({{< relref "./environment/templating.md" >}})
 
 ## `dateTime`: uses data and time values as tags
 
@@ -181,7 +181,7 @@ Suppose the current time is `15:04:09.999 January 2nd, 2006` and the abbreviated
 
 The tag template uses the [Golang Templating Syntax](https://golang.org/pkg/text/template/).
 As showcased in the example, `customTemplate` tag policy features one
-**required** parameter, `template`, which is the tag template to use. To learn more about templating support in the skaffold.yaml, see [Templated fields]({{< relref "../environment/templating.md" >}})
+**required** parameter, `template`, which is the tag template to use. To learn more about templating support in the skaffold.yaml, see [Templated fields]({{< relref "./environment/templating.md" >}})
 
 ## `sha256`: uses `latest` to tag images
 
diff --git a/docs-v2/content/en/docs/tutorials/artifact-dependencies.md b/docs-v2/content/en/docs/tutorials/artifact-dependencies.md
index 5c31b0a46..b34ef9365 100644
--- a/docs-v2/content/en/docs/tutorials/artifact-dependencies.md
+++ b/docs-v2/content/en/docs/tutorials/artifact-dependencies.md
@@ -4,7 +4,7 @@ linkTitle: "Build Dependencies"
 weight: 100
 ---
 
-This page describes how to define dependencies between artifacts and reference them in the [docker builder]({{<relref "/docs/pipeline-stages/builders/builder-types/docker" >}}).
+This page describes how to define dependencies between artifacts and reference them in the [docker builder]({{<relref "/docs/builders/builder-types/docker" >}}).
 
 ## Before you begin
 
@@ -18,7 +18,7 @@ This tutorial will be based on the [simple-artifact-dependency](https://github.c
 
 ## Adding an artifact dependency
 
-We have a `base` artifact which has a single Dockerfile that we build with the [docker builder]({{<relref "/docs/pipeline-stages/builders/builder-types/docker" >}}):
+We have a `base` artifact which has a single Dockerfile that we build with the [docker builder]({{<relref "/docs/builders/builder-types/docker" >}}):
  {{% readfile file="samples/builders/artifact-dependencies/Dockerfile.base" %}}
 
 This artifact is used as the base image for the `app` artifact. We express this dependency in the `skaffold.yaml` using the `requires` expression.
diff --git a/docs-v2/content/en/docs/tutorials/buildpacks-override.md b/docs-v2/content/en/docs/tutorials/buildpacks-override.md
index 47446604f..760a0b24e 100644
--- a/docs-v2/content/en/docs/tutorials/buildpacks-override.md
+++ b/docs-v2/content/en/docs/tutorials/buildpacks-override.md
@@ -4,6 +4,6 @@ linkTitle: "Overriding the buildpacks run image"
 weight: 100
 ---
 
-This is a link to a guided Cloud Shell tutorial using skaffold's `artifact dependency` feature to override the [run image](https://buildpacks.io/docs/concepts/components/stack/) in the [buildpacks builder]({{<relref "/docs/pipeline-stages/builders/builder-types/buildpacks" >}}):
+This is a link to a guided Cloud Shell tutorial using skaffold's `artifact dependency` feature to override the [run image](https://buildpacks.io/docs/concepts/components/stack/) in the [buildpacks builder]({{<relref "/docs/builders/builder-types/buildpacks" >}}):
 
 [![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.png)](https://ssh.cloud.google.com/cloudshell/open?cloudshell_git_repo=https://github.com/GoogleContainerTools/skaffold&cloudshell_working_dir=codelab/03_buildpacks-runimage-override&cloudshell_workspace=codelab/03_buildpacks-runimage-override&cloudshell_tutorial=tutorial.md)
\ No newline at end of file
diff --git a/docs-v2/content/en/docs/tutorials/ci_cd.md b/docs-v2/content/en/docs/tutorials/ci_cd.md
index f051bccb1..135475c76 100644
--- a/docs-v2/content/en/docs/tutorials/ci_cd.md
+++ b/docs-v2/content/en/docs/tutorials/ci_cd.md
@@ -36,13 +36,13 @@ Skaffold can use your dockerfile to automatically build, tag and push images to
 
 ## Step 2: Choosing the deployment method
 
-Skaffold supports deployment through kubectl, helm and a lot of other mechanisms. You can have a look at the complete list of deployers available [here](https://skaffold.dev/docs/pipeline-stages/deployers/).
+Skaffold supports deployment through kubectl, helm and a lot of other mechanisms. You can have a look at the complete list of deployers available [here](https://skaffold.dev/docs/deployers/).
 
 If you choose to deploy through kubectl, you must have all your yaml files ready, or if you would like to deploy through helm charts, you must have all your charts ready.
 
 ## Step 3: Choosing the image and tag strategy
 
-Skaffold automatically tags images based on different strategies as documented here: [https://skaffold.dev/docs/pipeline-stages/taggers/](https://skaffold.dev/docs/pipeline-stages/taggers/). The tagging strategy used is configurable, so choose the mechanism which is right for you. By default, skaffold uses the git sha tagger.
+Skaffold automatically tags images based on different strategies as documented here: [https://skaffold.dev/docs/taggers/](https://skaffold.dev/docs/taggers/). The tagging strategy used is configurable, so choose the mechanism which is right for you. By default, skaffold uses the git sha tagger.
 
 If you are using helm as your deployer, you might want to use the helm image strategy if you would like to follow helm specific conventions, as skaffold will pass in all the details for you.
 
@@ -133,7 +133,7 @@ Before we move on to setting up the CI pipeline, we should test it out locally.
 
 You can find docs about all these workflows [here](https://skaffold.dev/docs/workflows/)
 
-Also, note that you can also set up file synchronization to enable faster development workflows. You can read more about that [here](https://skaffold.dev/docs/pipeline-stages/filesync/).
+Also, note that you can also set up file synchronization to enable faster development workflows. You can read more about that [here](https://skaffold.dev/docs/filesync/).
 
 Enabling file synchronization would avoid the need to rebuild the images repeatedly during development and testing and this can accelerate the inner dev loop.
 
diff --git a/docs-v2/content/en/docs/tutorials/custom-builder.md b/docs-v2/content/en/docs/tutorials/custom-builder.md
index ebef37ef1..e9bebe514 100644
--- a/docs-v2/content/en/docs/tutorials/custom-builder.md
+++ b/docs-v2/content/en/docs/tutorials/custom-builder.md
@@ -21,7 +21,7 @@ This tutorial will be based on the [custom example](https://github.com/GoogleCon
 ## Adding a Custom Builder to Your Skaffold Project
 
 We'll need to configure your Skaffold config to build artifacts with [ko](https://github.com/google/ko).
-To do this, we will take advantage of the [custom builder]({{<relref "/docs/pipeline-stages/builders/builder-types/custom" >}}) in Skaffold.
+To do this, we will take advantage of the [custom builder]({{<relref "/docs/builders/builder-types/custom" >}}) in Skaffold.
 
 First, add a `build.sh` file which Skaffold will call to build artifacts:
 
@@ -32,7 +32,7 @@ Then, configure artifacts in your `skaffold.yaml` to build with `build.sh`:
 {{% readfile file="samples/builders/custom-buildpacks/skaffold.yaml" %}}
 
 List the file dependencies for each artifact; in the example above, Skaffold watches all files in the build context.
-For more information about listing dependencies for custom artifacts, see the documentation [here]({{<relref "/docs/pipeline-stages/builders/builder-types/custom#dependencies-from-a-command" >}}).
+For more information about listing dependencies for custom artifacts, see the documentation [here]({{<relref "/docs/builders/builder-types/custom#dependencies-from-a-command" >}}).
 
 You can check custom builder is properly configured by running `skaffold build`.
 This command should build the artifacts and exit successfully.
diff --git a/docs-v2/content/en/docs/upgrading/_index.md b/docs-v2/content/en/docs/upgrading/_index.md
index 4d727617f..88a7510ce 100644
--- a/docs-v2/content/en/docs/upgrading/_index.md
+++ b/docs-v2/content/en/docs/upgrading/_index.md
@@ -34,9 +34,9 @@ The list of features that were supported in skaffold `v1` but are no longer supp
 * using multiple renderers WITH the `kpt` deployer being one of them (using combinations of any other renderer(s) works as it did previously).
 
 Outside of the above, there are currently no known other regressions when migrating from skaffold v1 -> v2 but areas that are most likely to have possible issues/incompitibility include:
-- `helm` renderer/deployer usage (see [helm docs]({{< relref "/docs/pipeline-stages/renderers/helm" >}}) for more details)
+- `helm` renderer/deployer usage (see [helm docs]({{< relref "/docs/renderers/helm" >}}) for more details)
 - v1 `kpt` deployer usage 
-- `skaffold render` flags usage (see [render docs]({{< relref "/docs/pipeline-stages/renderers" >}}) and [render schema]({{< relref "/docs/references/yaml#manifests" >}}) for more details)
+- `skaffold render` flags usage (see [render docs]({{< relref "/docs/renderers" >}}) and [render schema]({{< relref "/docs/references/yaml#manifests" >}}) for more details)
 
 
-If you encounter any issues using skaffold `v2.0.0-beta3`, particularly any regressions that used to work differently or succeed in `v1`, please file an issue at[GoogleContainerTools/skaffold](https://github.com/GoogleContainerTools/skaffold/issues).
+If you encounter any issues using skaffold `v2.0.0-beta3`, particularly any regressions that used to work differently or succeed in `v1`, please file an issue at [GoogleContainerTools/skaffold](https://github.com/GoogleContainerTools/skaffold/issues).
diff --git a/docs-v2/content/en/docs/pipeline-stages/verify.md b/docs-v2/content/en/docs/verify.md
similarity index 97%
rename from docs-v2/content/en/docs/pipeline-stages/verify.md
rename to docs-v2/content/en/docs/verify.md
index f09def2f0..8920dead2 100644
--- a/docs-v2/content/en/docs/pipeline-stages/verify.md
+++ b/docs-v2/content/en/docs/verify.md
@@ -1,9 +1,9 @@
 ---
 title: "Verify [NEW]"
 linkTitle: "Verify [NEW]"
-weight: 40
+weight: 44
 featureId: verify
-aliases: [/docs/how-tos/verify]
+aliases: [/docs/how-tos/verify, /docs/pipeline-stages/verify]
 ---
 
 In skaffold `v2.0.0-beta3`, skaffold now supports running post-deployment verification tests.  This is done via a new `verify` phase and associated [`verify` schema configuration]({{< relref "/docs/references/yaml#verify" >}}) that allows users to add a list of test containers (either standalone containers or built by skaffold) to be run post-deployment and monitored for success/failure. Currently in the `v2.0.0-beta3` release the `verify` phase is not run in the `skaffold dev` flow but is only accessible via the standalone `skaffold verify` command which runs only the `verify` phase.
diff --git a/docs-v2/content/en/docs/workflows/ci-cd.md b/docs-v2/content/en/docs/workflows/ci-cd.md
index cfd927c12..34cd82608 100644
--- a/docs-v2/content/en/docs/workflows/ci-cd.md
+++ b/docs-v2/content/en/docs/workflows/ci-cd.md
@@ -23,7 +23,7 @@ We recommend `skaffold run` for the simplest Continuous Delivery setup, where it
 
 For more sophisticated Continuous Delivery pipelines, Skaffold offers building blocks:
 
-- [status-check]({{<relref "/docs/pipeline-stages/status-check">}}) - 
+- [status-check]({{<relref "/docs/status-check">}}) - 
 wait for `deployments` to stabilize and succeed only if all deployments are successful
 - [`skaffold build`]({{<relref "/docs/workflows/ci-cd#skaffold-build-skaffold-deploy">}}) - build, tag and push artifacts to a registry
 - [`skaffold deploy`]({{<relref "/docs/workflows/ci-cd#skaffold-build-skaffold-deploy">}})  - deploy built artifacts to a cluster
@@ -79,7 +79,7 @@ Skaffold allows separating the generation of fully-hydrated Kubernetes manifests
 `skaffold render` builds all application images from your artifacts, templates the newly-generated image tags into your Kubernetes manifests (based on your project's deployment configuration), and then prints out the final hydrated manifests to a file or your terminal.
 This allows you to capture the full, declarative state of your application in configuration, such that _applying_ the changes to your cluster can be done as a separate step.
 
-`skaffold apply` consumes one or more fully-hydrated Kubernetes manifests, and then sends the results directly to the Kubernetes control plane via `kubectl` to create resources on the target cluster. After creating the resources on your cluster, `skaffold apply` uses Skaffold's built-in health checking to monitor the created resources for readiness. See [resource health checks]({{<relref "/docs/pipeline-stages/status-check">}}) for more information on how Skaffold's resource health checking works.
+`skaffold apply` consumes one or more fully-hydrated Kubernetes manifests, and then sends the results directly to the Kubernetes control plane via `kubectl` to create resources on the target cluster. After creating the resources on your cluster, `skaffold apply` uses Skaffold's built-in health checking to monitor the created resources for readiness. See [resource health checks]({{<relref "/docs/status-check">}}) for more information on how Skaffold's resource health checking works.
 
 *Note: `skaffold apply` always uses `kubectl` to deploy resources to a target cluster, regardless of deployment configuration in the provided skaffold.yaml. Only a small subset of deploy configuration is honored when running `skaffold apply`:*
 * deploy.statusCheckDeadlineSeconds
diff --git a/docs-v2/content/en/docs/workflows/debug.md b/docs-v2/content/en/docs/workflows/debug.md
index 668b0cdfc..3bb7226e0 100644
--- a/docs-v2/content/en/docs/workflows/debug.md
+++ b/docs-v2/content/en/docs/workflows/debug.md
@@ -252,7 +252,7 @@ Go-based container images are recognized by:
 - the presence of the
   [`KO_DATA_PATH` environment variable](https://github.com/google/ko#static-assets)
   in container images built by
-  [`ko`]({{< relref "/docs/pipeline-stages/builders/builder-types/ko" >}}), or
+  [`ko`]({{< relref "/docs/builders/builder-types/ko" >}}), or
 - is launching using `dlv`.
 
 Unless you built your container image using `ko`, set one of the standard Go
diff --git a/docs-v2/content/en/docs/workflows/dev.md b/docs-v2/content/en/docs/workflows/dev.md
index aac94633e..fdc1639e5 100644
--- a/docs-v2/content/en/docs/workflows/dev.md
+++ b/docs-v2/content/en/docs/workflows/dev.md
@@ -19,7 +19,9 @@ Running `skaffold dev` is equivalent to running the IDE command `Run on Kubernet
 
 ## Dev loop
 
-When `skaffold dev` is run, Skaffold will first do a full build, test and deploy of all artifacts specified in the `skaffold.yaml`, similar to `skaffold run`. Upon successful build, test and deploy, Skaffold will start watching all source file dependencies for all artifacts specified in the project. As changes are made to these source files, Skaffold will rebuild and retest the associated artifacts, and redeploy the new changes to your cluster.
+When `skaffold dev` is run, Skaffold will first do a full build, test, render and deploy of all artifacts specified in the `skaffold.yaml`, similar to `skaffold run`. By default, Skaffold will exit if any of these stages fails.  Upon successful build, test, render and deploy, Skaffold will start watching all source file dependencies for all artifacts specified in the project. As changes are made to these source files, Skaffold will rebuild and retest the associated artifacts, and redeploy the new changes to your cluster.
+
+The ``--keep-running-on-failure`` flag can be used to keep Skaffold running by suspending the Skaffold session while encountering errors in the first build, test, render, deploy. The user can attempt to fix the errors and then restore the session by pressing any key or exit the session with ``Ctrl+C``. The session will be suspended again unless the errors are fixed.  Using this flag should result in an better experience for `dev` sessions where errors occur that would otherwise cause Skaffold to exit
 
 The dev loop will run until the user cancels the Skaffold process with `Ctrl+C`. Upon receiving this signal, Skaffold will clean up all deployed artifacts on the active cluster, meaning that Skaffold won't abandon any Kubernetes resources that it created throughout the lifecycle of the run. This can be optionally disabled by using the `--no-prune` flag.
 
@@ -27,10 +29,10 @@ The dev loop will run until the user cancels the Skaffold process with `Ctrl+C`.
 
 The actions performed by Skaffold during the dev loop have precedence over one another, so that behavior is always predictable. The order of actions is:
 
-1. [File Sync]({{<relref "/docs/pipeline-stages/filesync" >}})
-1. [Build]({{<relref "/docs/pipeline-stages/builders" >}})
-1. [Test]({{<relref "/docs/pipeline-stages/testers" >}})
-1. [Deploy]({{<relref "/docs/pipeline-stages/deployers" >}})
+1. [File Sync]({{<relref "/docs/filesync" >}})
+1. [Build]({{<relref "/docs/builders" >}})
+1. [Test]({{<relref "/docs/testers" >}})
+1. [Deploy]({{<relref "/docs/deployers" >}})
 
 ## File Watcher and Watch Modes
 
diff --git a/docs-v2/content/en/docs/workflows/getting-started-with-your-project.md b/docs-v2/content/en/docs/workflows/getting-started-with-your-project.md
index 5f1d64150..64d80d156 100644
--- a/docs-v2/content/en/docs/workflows/getting-started-with-your-project.md
+++ b/docs-v2/content/en/docs/workflows/getting-started-with-your-project.md
@@ -13,7 +13,7 @@ Running [`skaffold init`][init] at the root of your project directory will walk
 through a wizard and create a `skaffold.yaml` that defines how your project is
 built and deployed.
 
-[init]: {{<relref "docs/pipeline-stages/init" >}}
+[init]: {{<relref "docs/init" >}}
 
 ```bash
 skaffold init
@@ -22,11 +22,11 @@ skaffold init
 ![init-flow](/images/init-flow.png)
 
 ## What's next
-You can further set up [File Sync]({{<relref "/docs/pipeline-stages/filesync" >}}) for source files 
+You can further set up [File Sync]({{<relref "/docs/filesync" >}}) for source files 
 that do not need a rebuild in [dev mode]({{<relref "/docs/workflows/dev">}}). 
 
-Skaffold automatically forwards Kubernetes Services in [dev mode]({{<relref "/docs/workflows/dev">}}) if you run it with `--port-forward`. If your project contains resources other than services, you can set-up [port-forwarding]({{<relref "/docs/pipeline-stages/port-forwarding" >}})
+Skaffold automatically forwards Kubernetes Services in [dev mode]({{<relref "/docs/workflows/dev">}}) if you run it with `--port-forward`. If your project contains resources other than services, you can set-up [port-forwarding]({{<relref "/docs/port-forwarding" >}})
 to port-forward these resources in [`dev`]({{<relref "docs/workflows/dev" >}}) or [`debug`]({{<relref "/docs/workflows/debug" >}}) mode.
 
 
-For more understanding on how init works, see [`skaffold init`]({{<relref "/docs/pipeline-stages/init" >}}).
+For more understanding on how init works, see [`skaffold init`]({{<relref "/docs/init" >}}).
diff --git a/docs-v2/content/en/docs/workflows/handling-platforms.md b/docs-v2/content/en/docs/workflows/handling-platforms.md
index e1b31d8da..3e328953d 100644
--- a/docs-v2/content/en/docs/workflows/handling-platforms.md
+++ b/docs-v2/content/en/docs/workflows/handling-platforms.md
@@ -11,7 +11,7 @@ Skaffold has a lot of intelligence built-in to simplify working with ARM workloa
 
 Container images are built targeting specific [Instruction Set Architectures](https://en.wikipedia.org/wiki/Instruction_set_architecture) like `amd64`, `arm64`, etc. **You must use container images that are compatible with the architecture of the node where you intend to run the workloads.** For example, to deploy to a GKE cluster running ARM nodes, the image needs to be built for `linux/arm64` platform.
 
-All image builders build for different default architecture and not all support cross-architecture builds. For instance [Docker]({{<relref "/docs/pipeline-stages/builders/builder-types/docker">}}) will build the image for the same architecture as the host machine, whereas [Buildpacks]({{<relref "/docs/pipeline-stages/builders/builder-types/buildpacks">}}) will always build it for `amd64`.
+All image builders build for different default architecture and not all support cross-architecture builds. For instance [Docker]({{<relref "/docs/builders/builder-types/docker">}}) will build the image for the same architecture as the host machine, whereas [Buildpacks]({{<relref "/docs/builders/builder-types/buildpacks">}}) will always build it for `amd64`.
 
 Additionally, the following combination of development machine and cluster node architectures can make it difficult to build and deploy images correctly:
 
@@ -130,7 +130,7 @@ Skaffold also supports cross-architecture builds on [Google Cloud Build](https:/
 
 A [multi-arch image](https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/) is an image that can support multiple architectures. It looks like a single image with a single tag, but is actually a list of images targeting multiple architectures organized by an [image index](https://github.com/opencontainers/image-spec/blob/main/image-index.md). When you deploy a multi-arch image to a cluster, the container runtime automatically chooses the right image that is compatible with the architecture of the node to which it is being deployed. This simplifies targeting multiple clusters of different architecture nodes, and/or mixed-architecture nodes.
 
-Skaffold supports building multi-platform images natively using the [jib builder]({{<relref "/docs/pipeline-stages/builders/builder-types/jib" >}}), the [ko builder]({{<relref "/docs/pipeline-stages/builders/builder-types/ko">}}) and the [custom builder]({{<relref "/docs/pipeline-stages/builders/builder-types/custom" >}}). For other builders that support building cross-architecture images, Skaffold will iteratively build a single platform image for each target architecture and stitch them together into a multi-platform image, and push it to the registry.
+Skaffold supports building multi-platform images natively using the [jib builder]({{<relref "/docs/builders/builder-types/jib" >}}), the [ko builder]({{<relref "/docs/builders/builder-types/ko">}}) and the [custom builder]({{<relref "/docs/builders/builder-types/custom" >}}). For other builders that support building cross-architecture images, Skaffold will iteratively build a single platform image for each target architecture and stitch them together into a multi-platform image, and push it to the registry.
 
 ![multi-arch-flow](/images/multi-arch-flow.png)
 
diff --git a/docs-v2/content/en/schemas/v4beta3.json b/docs-v2/content/en/schemas/v4beta3.json
index 037357e21..e3a4dad2c 100755
--- a/docs-v2/content/en/schemas/v4beta3.json
+++ b/docs-v2/content/en/schemas/v4beta3.json
@@ -2063,23 +2063,6 @@
       "description": "defines the manifests from helm releases.",
       "x-intellij-html-description": "defines the manifests from helm releases."
     },
-    "HelmConventionConfig": {
-      "properties": {
-        "explicitRegistry": {
-          "type": "boolean",
-          "description": "separates `image.registry` to the image config syntax. Useful for some charts e.g. `postgresql`.",
-          "x-intellij-html-description": "separates <code>image.registry</code> to the image config syntax. Useful for some charts e.g. <code>postgresql</code>.",
-          "default": "false"
-        }
-      },
-      "preferredOrder": [
-        "explicitRegistry"
-      ],
-      "additionalProperties": false,
-      "type": "object",
-      "description": "image config in the syntax of image.repository and image.tag.",
-      "x-intellij-html-description": "image config in the syntax of image.repository and image.tag."
-    },
     "HelmDeployFlags": {
       "properties": {
         "global": {
@@ -2120,44 +2103,6 @@
       "description": "additional option flags that are passed on the command line to `helm`.",
       "x-intellij-html-description": "additional option flags that are passed on the command line to <code>helm</code>."
     },
-    "HelmFQNConfig": {
-      "properties": {
-        "property": {
-          "type": "string",
-          "description": "defines the image config.",
-          "x-intellij-html-description": "defines the image config."
-        }
-      },
-      "preferredOrder": [
-        "property"
-      ],
-      "additionalProperties": false,
-      "type": "object",
-      "description": "image config to use the FullyQualifiedImageName as param to set.",
-      "x-intellij-html-description": "image config to use the FullyQualifiedImageName as param to set."
-    },
-    "HelmImageConfig": {
-      "properties": {
-        "fqn": {
-          "$ref": "#/definitions/HelmFQNConfig",
-          "description": "image configuration uses the syntax `IMAGE-NAME=IMAGE-REPOSITORY:IMAGE-TAG`.",
-          "x-intellij-html-description": "image configuration uses the syntax <code>IMAGE-NAME=IMAGE-REPOSITORY:IMAGE-TAG</code>."
-        },
-        "helm": {
-          "$ref": "#/definitions/HelmConventionConfig",
-          "description": "image configuration uses the syntax `IMAGE-NAME.repository=IMAGE-REPOSITORY, IMAGE-NAME.tag=IMAGE-TAG`.",
-          "x-intellij-html-description": "image configuration uses the syntax <code>IMAGE-NAME.repository=IMAGE-REPOSITORY, IMAGE-NAME.tag=IMAGE-TAG</code>."
-        }
-      },
-      "preferredOrder": [
-        "fqn",
-        "helm"
-      ],
-      "additionalProperties": false,
-      "type": "object",
-      "description": "describes an image configuration.",
-      "x-intellij-html-description": "describes an image configuration."
-    },
     "HelmPackaged": {
       "properties": {
         "appVersion": {
diff --git a/docs-v2/data/maturity.json b/docs-v2/data/maturity.json
index 50f070d0e..94cc7fa9b 100644
--- a/docs-v2/data/maturity.json
+++ b/docs-v2/data/maturity.json
@@ -105,7 +105,7 @@
     "area": "Build",
     "maturity": "GA",
     "description": "Build images based on multiple build tools in a configurable way",
-    "url": "/docs/pipeline-stages/builders/",
+    "url": "/docs/builders/",
     "examples": [
       {
         "name": "docker",
@@ -238,7 +238,7 @@
     "area": "Cleanup",
     "maturity": "GA",
     "description": "`skaffold delete` removes everything deployed `skaffold run` from the cluster, and prunes locally",
-    "url": "/docs/pipeline-stages/cleanup"
+    "url": "/docs/cleanup"
   },
   "deploy": {
     "dev": "x",
@@ -248,7 +248,7 @@
     "area": "Deploy",
     "maturity": "beta",
     "description": "Deploy a set of deployables as your applications and replace the image name with the built images ",
-    "url": "/docs/pipeline-stages/deployers",
+    "url": "/docs/deployers",
     "examples": [
       {
         "name": "kubectl",
@@ -302,7 +302,7 @@
     "feature": "Status check",
     "maturity": "beta",
     "description": "User can wait for deployments to stabilize",
-    "url": "/docs/pipeline-stages/status-check/"
+    "url": "/docs/status-check/"
   },
   "render": {
     "dev": "x",
@@ -313,7 +313,7 @@
     "area": "Render",
     "maturity": "beta",
     "description": "Renders a set of resources in your applications and replace the image name with the built images ",
-    "url": "/docs/pipeline-stages/renderers"
+    "url": "/docs/renderers"
   },
   "dev": {
     "dev": "x",
@@ -354,7 +354,7 @@
     "area": "Init",
     "maturity": "beta",
     "description": "Initialize a skaffold.yaml file based on the contents of the current directory",
-    "url": "/docs/pipeline-stages/init"
+    "url": "/docs/init"
   },
   "init.dockerfiles": {
     "area": "Init",
@@ -404,7 +404,7 @@
     "area": "Lifecycle Hooks",
     "maturity": "beta",
     "description": "Run code triggered by different events during the skaffold process lifecycle.",
-    "url": "/docs/pipeline-stages/lifecycle-hooks/",
+    "url": "/docs/lifecycle-hooks/",
     "examples": [
       {
         "name": "hooks",
@@ -420,7 +420,7 @@
     "area": "Log tailing",
     "maturity": "GA",
     "description": "automated log tailing of deployed pods",
-    "url": "/docs/pipeline-stages/log-tailing"
+    "url": "/docs/log-tailing"
   },
   "portforward": {
     "dev": "x",
@@ -428,7 +428,7 @@
     "area": "Port-forwarding",
     "maturity": "GA",
     "description": "Port forward application to localhost",
-    "url": "/docs/pipeline-stages/port-forwarding/"
+    "url": "/docs/port-forwarding/"
   },
   "profiles": {
     "dev": "x",
@@ -473,7 +473,7 @@
     "area": "Filesync",
     "maturity": "GA",
     "description": "Instead of rebuilding, copy the changed files in the running container",
-    "url": "/docs/pipeline-stages/filesync"
+    "url": "/docs/filesync"
   },
   "tagpolicy.latest": {
     "dev": "x",
@@ -493,7 +493,7 @@
     "area": "Tagpolicy",
     "maturity": "GA",
     "description": "Automated tagging",
-    "url": "/docs/pipeline-stages/taggers",
+    "url": "/docs/taggers",
     "examples": [
       {
         "name": "envTemplate",
@@ -521,7 +521,7 @@
     "area": "Test",
     "maturity": "GA",
     "description": "Run tests as part of your pipeline",
-    "url": "/docs/pipeline-stages/testers",
+    "url": "/docs/testers",
     "examples": [
       {
         "name": "custom test",
@@ -540,7 +540,7 @@
     "area": "Test",
     "maturity": "GA",
     "description": "Run structure tests as part of your pipeline",
-    "url": "/docs/pipeline-stages/testers/structure",
+    "url": "/docs/testers/structure",
     "examples": [
       {
         "name": "structure test",
@@ -556,7 +556,7 @@
     "feature": "custom tester",
     "maturity": "beta",
     "description": "Run custom test command locally",
-    "url": "/docs/pipeline-stages/testers/custom",
+    "url": "/docs/testers/custom",
     "examples": [
       {
         "name": "custom test",
diff --git a/docs-v2/design_proposals/ko-builder-auto-sync.md b/docs-v2/design_proposals/ko-builder-auto-sync.md
index f8e676306..149ffd5cf 100644
--- a/docs-v2/design_proposals/ko-builder-auto-sync.md
+++ b/docs-v2/design_proposals/ko-builder-auto-sync.md
@@ -16,9 +16,9 @@ local development.
 ## Proposal
 
 Implement
-[auto sync](https://skaffold.dev/docs/pipeline-stages/filesync/#auto-sync-mode)
+[auto sync](https://skaffold.dev/docs/filesync/#auto-sync-mode)
 for the
-[Skaffold ko builder](https://skaffold.dev/docs/pipeline-stages/builders/ko/) in
+[Skaffold ko builder](https://skaffold.dev/docs/builders/ko/) in
 [`dev`](https://skaffold.dev/docs/references/cli/#skaffold-dev) mode.
 
 On source code changes, Skaffold rebuilds the Go binary locally using ko, and
@@ -59,9 +59,9 @@ container.
 ## Background
 
 The Skaffold
-[Buildpacks builder](https://skaffold.dev/docs/pipeline-stages/builders/buildpacks/)
+[Buildpacks builder](https://skaffold.dev/docs/builders/buildpacks/)
 supports
-[hot reloading](https://skaffold.dev/docs/pipeline-stages/filesync/#buildpacks)
+[hot reloading](https://skaffold.dev/docs/filesync/#buildpacks)
 with
 [Google Cloud Buildpacks](https://github.com/GoogleCloudPlatform/buildpacks).
 
diff --git a/docs-v2/design_proposals/ko-builder.md b/docs-v2/design_proposals/ko-builder.md
index 3c0661d71..2d51751ea 100644
--- a/docs-v2/design_proposals/ko-builder.md
+++ b/docs-v2/design_proposals/ko-builder.md
@@ -34,27 +34,27 @@ functionality related to
 
 Compared to ...
 
-- [the Cloud Native buildpacks builder](https://skaffold.dev/docs/pipeline-stages/builders/buildpacks/),
+- [the Cloud Native buildpacks builder](https://skaffold.dev/docs/builders/buildpacks/),
   the ko builder is
   [fast](https://cloud.google.com/blog/topics/developers-practitioners/ship-your-go-applications-faster-cloud-run-ko),
   doesn't require Docker, and uses a default base image that has a small attack
   surface ([distroless](https://github.com/GoogleContainerTools/distroless)).
 
-- [the Docker builder](https://skaffold.dev/docs/pipeline-stages/builders/docker/),
+- [the Docker builder](https://skaffold.dev/docs/builders/docker/),
   the ko builder standardizes builds, avoiding artisanal
   [snowflake](https://martinfowler.com/bliki/SnowflakeServer.html)
   `Dockerfile`s. It also doesn't require the Docker daemon, so builds can
   run in security-constrained environments.
 
-- [the Kaniko builder](https://skaffold.dev/docs/pipeline-stages/builders/docker/#dockerfile-in-cluster-with-kaniko),
+- [the Kaniko builder](https://skaffold.dev/docs/builders/docker/#dockerfile-in-cluster-with-kaniko),
   the ko builder doesn't need a Kubernetes cluster, and avoids the
   previously-mentioned artisanal `Dockerfile`s.
 
-- [the Bazel builder](https://skaffold.dev/docs/pipeline-stages/builders/bazel/),
+- [the Bazel builder](https://skaffold.dev/docs/builders/bazel/),
   the ko builder doesn't require users to adopt Bazel. However, users who
   already use Bazel for their Go app should use the Bazel builder.
 
-- [the custom builder](https://skaffold.dev/docs/pipeline-stages/builders/custom/),
+- [the custom builder](https://skaffold.dev/docs/builders/custom/),
   the ko builder is portable:
 
   1.  The Skaffold config can be shared with other developers and ops teams,
diff --git a/go.mod b/go.mod
index 86078ad4e..a60ca2937 100644
--- a/go.mod
+++ b/go.mod
@@ -291,7 +291,7 @@ require (
 	go.uber.org/zap v1.24.0 // indirect
 	golang.org/x/crypto v0.6.0 // indirect
 	golang.org/x/mod v0.8.0 // indirect
-	golang.org/x/net v0.6.0 // indirect
+	golang.org/x/net v0.7.0 // indirect
 	golang.org/x/text v0.7.0 // indirect
 	golang.org/x/time v0.2.0 // indirect
 	golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
diff --git a/go.sum b/go.sum
index 3ed54f06f..f7304a056 100644
--- a/go.sum
+++ b/go.sum
@@ -3015,8 +3015,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
 golang.org/x/net v0.0.0-20220805013720-a33c5aa5df48/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
 golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
 golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
-golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q=
-golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
+golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/oauth2 v0.0.0-20180724155351-3d292e4d0cdc/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
diff --git a/pkg/skaffold/deploy/helm/util.go b/pkg/skaffold/deploy/helm/util.go
deleted file mode 100644
index f5077c369..000000000
--- a/pkg/skaffold/deploy/helm/util.go
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-Copyright 2020 The Skaffold Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package helm
-
-import (
-	"fmt"
-
-	"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/docker"
-	"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/schema/latest"
-)
-
-// imageSetFromConfig calculates the --set-string value from the helm config
-func imageSetFromConfig(cfg *latest.HelmConventionConfig, valueName string, tag string) (string, error) {
-	if cfg == nil {
-		return fmt.Sprintf("%s=%s", valueName, tag), nil
-	}
-
-	ref, err := docker.ParseReference(tag)
-	if err != nil {
-		return "", fmt.Errorf("cannot parse the image reference %q: %w", tag, err)
-	}
-
-	var imageTag string
-	if ref.Digest != "" {
-		imageTag = fmt.Sprintf("%s@%s", ref.Tag, ref.Digest)
-	} else {
-		imageTag = ref.Tag
-	}
-
-	if cfg.ExplicitRegistry {
-		if ref.Domain == "" {
-			return "", fmt.Errorf("image reference %s has no domain", tag)
-		}
-		return fmt.Sprintf("%[1]s.registry=%[2]s,%[1]s.repository=%[3]s,%[1]s.tag=%[4]s", valueName, ref.Domain, ref.Path, imageTag), nil
-	}
-
-	return fmt.Sprintf("%[1]s.repository=%[2]s,%[1]s.tag=%[3]s", valueName, ref.BaseName, imageTag), nil
-}
diff --git a/pkg/skaffold/kubernetes/util.go b/pkg/skaffold/kubernetes/util.go
index de18d55a8..4272c5add 100644
--- a/pkg/skaffold/kubernetes/util.go
+++ b/pkg/skaffold/kubernetes/util.go
@@ -55,6 +55,9 @@ func HasKubernetesFileExtension(n string) bool {
 // IsKubernetesManifest is for determining if a file is a valid Kubernetes manifest
 func IsKubernetesManifest(file string) bool {
 	_, err := parseKubernetesObjects(file)
+	if err != nil {
+		log.Entry(context.TODO()).Error(err)
+	}
 	return err == nil
 }
 
diff --git a/pkg/skaffold/render/transform/transform.go b/pkg/skaffold/render/transform/transform.go
index 94edbdfe0..74df8d418 100644
--- a/pkg/skaffold/render/transform/transform.go
+++ b/pkg/skaffold/render/transform/transform.go
@@ -54,6 +54,18 @@ var (
 			Image:     "gcr.io/kpt-fn/apply-setters:unstable",
 			ConfigMap: map[string]string{},
 		},
+		"ensure-name-substring": {
+			Image:     "gcr.io/kpt-fn/ensure-name-substring:v0.2.0",
+			ConfigMap: map[string]string{},
+		},
+		"search-replace": {
+			Image:     "gcr.io/kpt-fn/search-replace:v0.2.0",
+			ConfigMap: map[string]string{},
+		},
+		"set-enforcement-action": {
+			Image:     "gcr.io/kpt-fn/set-enforcement-action:v0.1.0",
+			ConfigMap: map[string]string{},
+		},
 	}
 
 	AllowListedTransformer = func() []string {
diff --git a/pkg/skaffold/render/validate/validate.go b/pkg/skaffold/render/validate/validate.go
index 1edff6572..2ad25066c 100644
--- a/pkg/skaffold/render/validate/validate.go
+++ b/pkg/skaffold/render/validate/validate.go
@@ -34,6 +34,9 @@ var (
 	validatorAllowlist    = map[string]kptfile.Function{
 		"kubeval": {Image: "gcr.io/kpt-fn/kubeval:v0.1"},
 		// TODO: Add conftest validator in kpt catalog.
+		"gatekeeper": {
+			Image:     "gcr.io/kpt-fn/gatekeeper:v0.2.1",
+			ConfigMap: map[string]string{}},
 	}
 )
 


Test patch:
diff --git a/docs-v2/content/en/docs/pipeline-stages/testers/_index.md b/docs-v2/content/en/docs/pipeline-stages/testers/_index.md
deleted file mode 100644
index 45d2ee26a..000000000
--- a/docs-v2/content/en/docs/pipeline-stages/testers/_index.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: "Test"
-linkTitle: "Test"
-weight: 10
-featureId: test
-aliases: [/docs/how-tos/testers]
-no_list: true
----
-
-Skaffold has an integrated testing phase between the build and deploy phases of the pipeline. Skaffold supports the below types of tests.
-
-| Skaffold testers|Description| 
-|----------|-------|
-| [Custom Test]({{< relref "/docs/pipeline-stages/testers/custom.md" >}}) | Enables users to run custom commands in the testing phase of the Skaffold pipeline | 
-| [Container Structure Test]({{< relref "/docs/pipeline-stages/testers/structure.md" >}}) | Enables users to validate built container images before deploying them to our cluster | 
diff --git a/docs-v2/content/en/docs/testers/_index.md b/docs-v2/content/en/docs/testers/_index.md
new file mode 100644
index 000000000..0da809757
--- /dev/null
+++ b/docs-v2/content/en/docs/testers/_index.md
@@ -0,0 +1,15 @@
+---
+title: "Test"
+linkTitle: "Test"
+weight: 42
+featureId: test
+aliases: [/docs/how-tos/testers, /docs/pipeline-stages/testers/]
+no_list: true
+---
+
+Skaffold has an integrated testing phase between the build and deploy phases of the pipeline. Skaffold supports the below types of tests.
+
+| Skaffold testers|Description| 
+|----------|-------|
+| [Custom Test]({{< relref "/docs/testers/custom.md" >}}) | Enables users to run custom commands in the testing phase of the Skaffold pipeline | 
+| [Container Structure Test]({{< relref "/docs/testers/structure.md" >}}) | Enables users to validate built container images before deploying them to our cluster | 
diff --git a/docs-v2/content/en/docs/pipeline-stages/testers/custom.md b/docs-v2/content/en/docs/testers/custom.md
similarity index 92%
rename from docs-v2/content/en/docs/pipeline-stages/testers/custom.md
rename to docs-v2/content/en/docs/testers/custom.md
index 949c8e221..95f356381 100644
--- a/docs-v2/content/en/docs/pipeline-stages/testers/custom.md
+++ b/docs-v2/content/en/docs/testers/custom.md
@@ -3,10 +3,11 @@ title: "Custom Test"
 linkTitle: "Custom Test"
 weight: 20
 featureId: test.custom
+aliases: [/docs/pipeline-stages/testers/custom]
 ---
 
 
-Custom Test allows developers to run custom commands as part of their development pipeline. The command executes in the testing phase of the [Skaffold pipeline](https://skaffold.dev/docs/pipeline-stages/). It will run on the local machine where Skaffold is being executed and works with all supported Skaffold platforms. Users can opt out of running custom tests by using the `--skip-tests` flag.
+Custom Test allows developers to run custom commands as part of their development pipeline. The command executes in the testing phase of the [Skaffold pipeline](https://skaffold.dev/docs/). It will run on the local machine where Skaffold is being executed and works with all supported Skaffold platforms. Users can opt out of running custom tests by using the `--skip-tests` flag.
 
 
 Some example use cases for Custom Test are below:
@@ -70,7 +71,7 @@ The command *must* return dependencies as a JSON array, otherwise skaffold will
 ```
 
  
->*Note: Adding a file pattern to a test dependency doesn't automatically enable file sync on it.  Refer to the [`file sync`](https://skaffold.dev/docs/pipeline-stages/filesync/) documentation, on how to set that up separately.*
+>*Note: Adding a file pattern to a test dependency doesn't automatically enable file sync on it.  Refer to the [`file sync`](https://skaffold.dev/docs/filesync/) documentation, on how to set that up separately.*
 
 
 ### Logging
diff --git a/docs-v2/content/en/docs/pipeline-stages/testers/structure.md b/docs-v2/content/en/docs/testers/structure.md
similarity index 97%
rename from docs-v2/content/en/docs/pipeline-stages/testers/structure.md
rename to docs-v2/content/en/docs/testers/structure.md
index 8d367f4ef..caa1a176f 100644
--- a/docs-v2/content/en/docs/pipeline-stages/testers/structure.md
+++ b/docs-v2/content/en/docs/testers/structure.md
@@ -3,6 +3,7 @@ title: "Container Structure Test"
 linkTitle: "Container Structure Test"
 weight: 20
 featureId: test.structure
+aliases: [/docs/pipeline-stages/testers/structure]
 ---
 
 It's common practice to validate built container images before deploying them to our cluster.
diff --git a/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.mod b/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.mod
index 96f0ee0a0..909028ce5 100644
--- a/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.mod
+++ b/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.mod
@@ -26,8 +26,8 @@ require (
 	go.opencensus.io v0.23.0 // indirect
 	golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e // indirect
 	golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2 // indirect
-	golang.org/x/sys v0.0.0-20220624220833-87e55d714810 // indirect
-	golang.org/x/text v0.3.7 // indirect
+	golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect
+	golang.org/x/text v0.3.8 // indirect
 	golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect
 	google.golang.org/appengine v1.6.7 // indirect
 	google.golang.org/protobuf v1.28.1 // indirect
diff --git a/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.sum b/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.sum
index a81e762b0..6edfd77d5 100644
--- a/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.sum
+++ b/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.sum
@@ -395,8 +395,9 @@ golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220624220833-87e55d714810 h1:rHZQSjJdAI4Xf5Qzeh2bBc5YJIkPFVM6oDtMFYmgws0=
 golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -407,8 +408,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
+golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
diff --git a/examples/grpc-e2e-tests/service/go.mod b/examples/grpc-e2e-tests/service/go.mod
index d2b2544d1..e9b851895 100644
--- a/examples/grpc-e2e-tests/service/go.mod
+++ b/examples/grpc-e2e-tests/service/go.mod
@@ -26,7 +26,7 @@ require (
 	golang.org/x/net v0.0.0-20220909164309-bea034e7d591 // indirect
 	golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 // indirect
 	golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
-	golang.org/x/text v0.3.7 // indirect
+	golang.org/x/text v0.3.8 // indirect
 	golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect
 	google.golang.org/appengine v1.6.7 // indirect
 	google.golang.org/genproto v0.0.0-20220916134934-764224ccc2d1 // indirect
diff --git a/examples/grpc-e2e-tests/service/go.sum b/examples/grpc-e2e-tests/service/go.sum
index 87c29cc88..2e20d53f1 100644
--- a/examples/grpc-e2e-tests/service/go.sum
+++ b/examples/grpc-e2e-tests/service/go.sum
@@ -409,8 +409,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
+golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
diff --git a/integration/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.mod b/integration/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.mod
index 96f0ee0a0..909028ce5 100644
--- a/integration/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.mod
+++ b/integration/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.mod
@@ -26,8 +26,8 @@ require (
 	go.opencensus.io v0.23.0 // indirect
 	golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e // indirect
 	golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2 // indirect
-	golang.org/x/sys v0.0.0-20220624220833-87e55d714810 // indirect
-	golang.org/x/text v0.3.7 // indirect
+	golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect
+	golang.org/x/text v0.3.8 // indirect
 	golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect
 	google.golang.org/appengine v1.6.7 // indirect
 	google.golang.org/protobuf v1.28.1 // indirect
diff --git a/integration/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.sum b/integration/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.sum
index a81e762b0..6edfd77d5 100644
--- a/integration/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.sum
+++ b/integration/examples/grpc-e2e-tests/cloud-spanner-bootstrap/go.sum
@@ -395,8 +395,9 @@ golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220624220833-87e55d714810 h1:rHZQSjJdAI4Xf5Qzeh2bBc5YJIkPFVM6oDtMFYmgws0=
 golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -407,8 +408,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
+golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
diff --git a/integration/examples/grpc-e2e-tests/service/go.mod b/integration/examples/grpc-e2e-tests/service/go.mod
index d2b2544d1..e9b851895 100644
--- a/integration/examples/grpc-e2e-tests/service/go.mod
+++ b/integration/examples/grpc-e2e-tests/service/go.mod
@@ -26,7 +26,7 @@ require (
 	golang.org/x/net v0.0.0-20220909164309-bea034e7d591 // indirect
 	golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 // indirect
 	golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
-	golang.org/x/text v0.3.7 // indirect
+	golang.org/x/text v0.3.8 // indirect
 	golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect
 	google.golang.org/appengine v1.6.7 // indirect
 	google.golang.org/genproto v0.0.0-20220916134934-764224ccc2d1 // indirect
diff --git a/integration/examples/grpc-e2e-tests/service/go.sum b/integration/examples/grpc-e2e-tests/service/go.sum
index 87c29cc88..2e20d53f1 100644
--- a/integration/examples/grpc-e2e-tests/service/go.sum
+++ b/integration/examples/grpc-e2e-tests/service/go.sum
@@ -409,8 +409,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
+golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
diff --git a/pkg/skaffold/deploy/helm/helm_test.go b/pkg/skaffold/deploy/helm/helm_test.go
index cee6efb35..781f7e266 100644
--- a/pkg/skaffold/deploy/helm/helm_test.go
+++ b/pkg/skaffold/deploy/helm/helm_test.go
@@ -1148,77 +1148,6 @@ func TestHelmDependencies(t *testing.T) {
 	}
 }
 
-func TestImageSetFromConfig(t *testing.T) {
-	tests := []struct {
-		description string
-		valueName   string
-		tag         string
-		expected    string
-		strategy    *latest.HelmConventionConfig
-		shouldErr   bool
-	}{
-		{
-			description: "Helm set values with no convention config",
-			valueName:   "image",
-			tag:         "skaffold-helm:1.0.0",
-			expected:    "image=skaffold-helm:1.0.0",
-			strategy:    nil,
-			shouldErr:   false,
-		},
-		{
-			description: "Helm set values with helm conventions",
-			valueName:   "image",
-			tag:         "skaffold-helm:1.0.0",
-			expected:    "image.repository=skaffold-helm,image.tag=1.0.0",
-			strategy:    &latest.HelmConventionConfig{},
-			shouldErr:   false,
-		},
-		{
-			description: "Helm set values with helm conventions and explicit registry value",
-			valueName:   "image",
-			tag:         "docker.io/skaffold-helm:1.0.0",
-			expected:    "image.registry=docker.io,image.repository=skaffold-helm,image.tag=1.0.0",
-			strategy: &latest.HelmConventionConfig{
-				ExplicitRegistry: true,
-			},
-			shouldErr: false,
-		},
-		{
-			description: "Invalid tag with helm conventions",
-			valueName:   "image",
-			tag:         "skaffold-helm:1.0.0,0",
-			expected:    "",
-			strategy:    &latest.HelmConventionConfig{},
-			shouldErr:   true,
-		},
-		{
-			description: "Helm set values with helm conventions and explicit registry value, but missing in tag",
-			valueName:   "image",
-			tag:         "skaffold-helm:1.0.0",
-			expected:    "",
-			strategy: &latest.HelmConventionConfig{
-				ExplicitRegistry: true,
-			},
-			shouldErr: true,
-		},
-		{
-			description: "Helm set values using digest",
-			valueName:   "image",
-			tag:         "skaffold-helm:stable@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2",
-			expected:    "image.repository=skaffold-helm,image.tag=stable@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2",
-			strategy:    &latest.HelmConventionConfig{},
-			shouldErr:   false,
-		},
-	}
-	for _, test := range tests {
-		testutil.Run(t, test.description, func(t *testutil.T) {
-			values, err := imageSetFromConfig(test.strategy, test.valueName, test.tag)
-			t.CheckError(test.shouldErr, err)
-			t.CheckDeepEqual(test.expected, values)
-		})
-	}
-}
-
 func TestHelmRender(t *testing.T) {
 	tests := []struct {
 		description string
diff --git a/pkg/skaffold/schema/latest/config.go b/pkg/skaffold/schema/latest/config.go
index 82fda813b..6f56ca86b 100644
--- a/pkg/skaffold/schema/latest/config.go
+++ b/pkg/skaffold/schema/latest/config.go
@@ -912,27 +912,6 @@ type HelmPackaged struct {
 	AppVersion string `yaml:"appVersion,omitempty"`
 }
 
-// HelmImageConfig describes an image configuration.
-type HelmImageConfig struct {
-	// HelmFQNConfig is the image configuration uses the syntax `IMAGE-NAME=IMAGE-REPOSITORY:IMAGE-TAG`.
-	HelmFQNConfig *HelmFQNConfig `yaml:"fqn,omitempty" yamltags:"oneOf=helmImageStrategy"`
-
-	// HelmConventionConfig is the image configuration uses the syntax `IMAGE-NAME.repository=IMAGE-REPOSITORY, IMAGE-NAME.tag=IMAGE-TAG`.
-	HelmConventionConfig *HelmConventionConfig `yaml:"helm,omitempty" yamltags:"oneOf=helmImageStrategy"`
-}
-
-// HelmFQNConfig is the image config to use the FullyQualifiedImageName as param to set.
-type HelmFQNConfig struct {
-	// Property defines the image config.
-	Property string `yaml:"property,omitempty"`
-}
-
-// HelmConventionConfig is the image config in the syntax of image.repository and image.tag.
-type HelmConventionConfig struct {
-	// ExplicitRegistry separates `image.registry` to the image config syntax. Useful for some charts e.g. `postgresql`.
-	ExplicitRegistry bool `yaml:"explicitRegistry,omitempty"`
-}
-
 // LogsConfig configures how container logs are printed as a result of a deployment.
 type LogsConfig struct {
 	// Prefix defines the prefix shown on each log line. Valid values are