Repository: GoogleContainerTools/kpt
Pull request #2278 (2021-06-18 00:36:12)

Revert "Update crd version for Kptfile to `v1`"
Reverts GoogleContainerTools/kpt#2248


Patch:
diff --git a/internal/cmdcomplete/complete.go b/internal/cmdcomplete/complete.go
index 5e637221..a5eeb952 100644
--- a/internal/cmdcomplete/complete.go
+++ b/internal/cmdcomplete/complete.go
@@ -18,7 +18,7 @@ package cmdcomplete
 import (
 	"strings"
 
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/posener/complete/v2"
 	"github.com/posener/complete/v2/predict"
 	"github.com/spf13/cobra"
@@ -60,7 +60,7 @@ func Complete(cmd *cobra.Command, skipHelp bool, visitFlags VisitFlags) *complet
 			visitFlags(cmd, flag, cc)
 		}
 		if flag.Name == "strategy" {
-			cc.Flags[flag.Name] = predict.Options(predict.OptValues(kptfilev1.UpdateStrategiesAsStrings()...))
+			cc.Flags[flag.Name] = predict.Options(predict.OptValues(kptfilev1alpha2.UpdateStrategiesAsStrings()...))
 			return
 		}
 		if flag.Name == "pattern" {
diff --git a/internal/cmdget/cmdget.go b/internal/cmdget/cmdget.go
index 901c84b2..335ccfe8 100644
--- a/internal/cmdget/cmdget.go
+++ b/internal/cmdget/cmdget.go
@@ -26,7 +26,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/util/cmdutil"
 	"github.com/GoogleContainerTools/kpt/internal/util/get"
 	"github.com/GoogleContainerTools/kpt/internal/util/parse"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/spf13/cobra"
 )
 
@@ -47,9 +47,9 @@ func NewRunner(ctx context.Context, parent string) *Runner {
 	}
 	cmdutil.FixDocs("kpt", parent, c)
 	r.Command = c
-	c.Flags().StringVar(&r.strategy, "strategy", string(kptfilev1.ResourceMerge),
+	c.Flags().StringVar(&r.strategy, "strategy", string(kptfilev1alpha2.ResourceMerge),
 		"update strategy that should be used when updating this package -- must be one of: "+
-			strings.Join(kptfilev1.UpdateStrategiesAsStrings(), ","))
+			strings.Join(kptfilev1alpha2.UpdateStrategiesAsStrings(), ","))
 	return r
 }
 
@@ -82,7 +82,7 @@ func (r *Runner) preRunE(_ *cobra.Command, args []string) error {
 	}
 	r.Get.Destination = string(p.UniquePath)
 
-	strategy, err := kptfilev1.ToUpdateStrategy(r.strategy)
+	strategy, err := kptfilev1alpha2.ToUpdateStrategy(r.strategy)
 	if err != nil {
 		return err
 	}
diff --git a/internal/cmdinit/cmdinit.go b/internal/cmdinit/cmdinit.go
index e508dcb8..0e39f094 100644
--- a/internal/cmdinit/cmdinit.go
+++ b/internal/cmdinit/cmdinit.go
@@ -29,7 +29,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/printer"
 	"github.com/GoogleContainerTools/kpt/internal/util/cmdutil"
 	"github.com/GoogleContainerTools/kpt/internal/util/man"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/spf13/cobra"
 	"sigs.k8s.io/kustomize/kyaml/errors"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
@@ -88,9 +88,9 @@ func (r *Runner) runE(c *cobra.Command, args []string) error {
 
 	pr := printer.FromContextOrDie(r.Ctx)
 
-	if _, err = os.Stat(filepath.Join(up, kptfilev1.KptFileName)); os.IsNotExist(err) {
+	if _, err = os.Stat(filepath.Join(up, kptfilev1alpha2.KptFileName)); os.IsNotExist(err) {
 		pr.Printf("writing %s\n", filepath.Join(args[0], "Kptfile"))
-		k := kptfilev1.KptFile{
+		k := kptfilev1alpha2.KptFile{
 			ResourceMeta: yaml.ResourceMeta{
 				ObjectMeta: yaml.ObjectMeta{
 					NameMeta: yaml.NameMeta{
@@ -98,7 +98,7 @@ func (r *Runner) runE(c *cobra.Command, args []string) error {
 					},
 				},
 			},
-			Info: &kptfilev1.PackageInfo{
+			Info: &kptfilev1alpha2.PackageInfo{
 				Description: r.Description,
 				Site:        r.Site,
 				Keywords:    r.Keywords,
@@ -106,11 +106,11 @@ func (r *Runner) runE(c *cobra.Command, args []string) error {
 		}
 
 		// serialize the gvk when writing the Kptfile
-		k.Kind = kptfilev1.TypeMeta.Kind
-		k.APIVersion = kptfilev1.TypeMeta.APIVersion
+		k.Kind = kptfilev1alpha2.TypeMeta.Kind
+		k.APIVersion = kptfilev1alpha2.TypeMeta.APIVersion
 
 		err = func() error {
-			f, err := os.Create(filepath.Join(up, kptfilev1.KptFileName))
+			f, err := os.Create(filepath.Join(up, kptfilev1alpha2.KptFileName))
 			if err != nil {
 				return err
 			}
diff --git a/internal/cmdliveinit/cmdliveinit.go b/internal/cmdliveinit/cmdliveinit.go
index 5335dc61..87745852 100644
--- a/internal/cmdliveinit/cmdliveinit.go
+++ b/internal/cmdliveinit/cmdliveinit.go
@@ -16,7 +16,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/errors"
 	"github.com/GoogleContainerTools/kpt/internal/pkg"
 	"github.com/GoogleContainerTools/kpt/internal/printer"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"github.com/spf13/cobra"
 	"k8s.io/cli-runtime/pkg/genericclioptions"
@@ -159,7 +159,7 @@ func (c *ConfigureInventoryInfo) Run(ctx context.Context) error {
 		inventoryID = c.InventoryID
 	}
 	// Finally, update these values in the Inventory section of the Kptfile.
-	err = updateKptfile(c.Pkg, &kptfilev1.Inventory{
+	err = updateKptfile(c.Pkg, &kptfilev1alpha2.Inventory{
 		Namespace:   namespace,
 		Name:        name,
 		InventoryID: inventoryID,
@@ -178,7 +178,7 @@ func (c *ConfigureInventoryInfo) Run(ctx context.Context) error {
 }
 
 // Run fills in the inventory object values into the Kptfile.
-func updateKptfile(p *pkg.Pkg, inv *kptfilev1.Inventory, force bool) error {
+func updateKptfile(p *pkg.Pkg, inv *kptfilev1alpha2.Inventory, force bool) error {
 	const op errors.Op = "cmdliveinit.updateKptfile"
 	// Read the Kptfile io io.dir
 	kf, err := p.Kptfile()
@@ -229,6 +229,6 @@ func generateHash(namespace string, name string) (string, error) {
 
 // kptfileInventoryEmpty returns true if the Inventory structure
 // in the Kptfile is empty; false otherwise.
-func kptfileInventoryEmpty(inv *kptfilev1.Inventory) bool {
+func kptfileInventoryEmpty(inv *kptfilev1alpha2.Inventory) bool {
 	return inv == nil
 }
diff --git a/internal/cmdrender/executor.go b/internal/cmdrender/executor.go
index a67222bc..d240de91 100644
--- a/internal/cmdrender/executor.go
+++ b/internal/cmdrender/executor.go
@@ -29,8 +29,8 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/printer"
 	"github.com/GoogleContainerTools/kpt/internal/types"
 	"github.com/GoogleContainerTools/kpt/internal/util/printerutil"
-	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1alpha2"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"sigs.k8s.io/kustomize/kyaml/kio"
 	"sigs.k8s.io/kustomize/kyaml/kio/filters"
 	"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
@@ -326,7 +326,7 @@ func (pn *pkgNode) runPipeline(ctx context.Context, hctx *hydrationContext, inpu
 	}
 
 	if pl.IsEmpty() {
-		if err := kptfilev1.AreKRM(input); err != nil {
+		if err := kptfilev1alpha2.AreKRM(input); err != nil {
 			return nil, fmt.Errorf("input resource list must contain only KRM resources: %s", err.Error())
 		}
 		return input, nil
@@ -457,7 +457,7 @@ func adjustRelPath(resources []*yaml.RNode, relPath string) ([]*yaml.RNode, erro
 }
 
 // fnChain returns a slice of function runners given a list of functions defined in pipeline.
-func fnChain(ctx context.Context, hctx *hydrationContext, pkgPath types.UniquePath, fns []kptfilev1.Function) ([]kio.Filter, error) {
+func fnChain(ctx context.Context, hctx *hydrationContext, pkgPath types.UniquePath, fns []kptfilev1alpha2.Function) ([]kio.Filter, error) {
 	var runners []kio.Filter
 	for i := range fns {
 		fn := fns[i]
diff --git a/internal/cmdupdate/cmdupdate.go b/internal/cmdupdate/cmdupdate.go
index 211b1e2a..10323c01 100644
--- a/internal/cmdupdate/cmdupdate.go
+++ b/internal/cmdupdate/cmdupdate.go
@@ -28,7 +28,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/types"
 	"github.com/GoogleContainerTools/kpt/internal/util/cmdutil"
 	"github.com/GoogleContainerTools/kpt/internal/util/update"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/spf13/cobra"
 )
 
@@ -48,10 +48,10 @@ func NewRunner(ctx context.Context, parent string) *Runner {
 		SuggestFor: []string{"rebase", "replace"},
 	}
 
-	c.Flags().StringVar(&r.strategy, "strategy", string(kptfilev1.ResourceMerge),
+	c.Flags().StringVar(&r.strategy, "strategy", string(kptfilev1alpha2.ResourceMerge),
 		"the update strategy that will be used when updating the package. This will change "+
 			"the default strategy for the package -- must be one of: "+
-			strings.Join(kptfilev1.UpdateStrategiesAsStrings(), ","))
+			strings.Join(kptfilev1alpha2.UpdateStrategiesAsStrings(), ","))
 	cmdutil.FixDocs("kpt", parent, c)
 	r.Command = c
 	return r
@@ -76,9 +76,9 @@ func (r *Runner) preRunE(_ *cobra.Command, args []string) error {
 		args = append(args, pkg.CurDir)
 	}
 	if r.strategy == "" {
-		r.Update.Strategy = kptfilev1.ResourceMerge
+		r.Update.Strategy = kptfilev1alpha2.ResourceMerge
 	} else {
-		r.Update.Strategy = kptfilev1.UpdateStrategyType(r.strategy)
+		r.Update.Strategy = kptfilev1alpha2.UpdateStrategyType(r.strategy)
 	}
 
 	parts := strings.Split(args[0], "@")
diff --git a/internal/errors/resolver/pkg.go b/internal/errors/resolver/pkg.go
index 3fc3a857..6030b755 100644
--- a/internal/errors/resolver/pkg.go
+++ b/internal/errors/resolver/pkg.go
@@ -19,7 +19,7 @@ import (
 
 	"github.com/GoogleContainerTools/kpt/internal/errors"
 	"github.com/GoogleContainerTools/kpt/internal/pkg"
-	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 )
 
 //nolint:gochecknoinits
diff --git a/internal/fnruntime/container.go b/internal/fnruntime/container.go
index d6bf071f..5f8cff20 100644
--- a/internal/fnruntime/container.go
+++ b/internal/fnruntime/container.go
@@ -26,7 +26,7 @@ import (
 
 	"github.com/GoogleContainerTools/kpt/internal/printer"
 	"github.com/GoogleContainerTools/kpt/internal/types"
-	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1alpha2"
 	"sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil"
 )
 
diff --git a/internal/fnruntime/exec.go b/internal/fnruntime/exec.go
index 514429fd..eff85f28 100644
--- a/internal/fnruntime/exec.go
+++ b/internal/fnruntime/exec.go
@@ -24,7 +24,7 @@ import (
 	"time"
 
 	"github.com/GoogleContainerTools/kpt/internal/printer"
-	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1alpha2"
 )
 
 type ExecFn struct {
diff --git a/internal/fnruntime/runner.go b/internal/fnruntime/runner.go
index 9046b3a8..72197d89 100644
--- a/internal/fnruntime/runner.go
+++ b/internal/fnruntime/runner.go
@@ -27,8 +27,8 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/errors"
 	"github.com/GoogleContainerTools/kpt/internal/printer"
 	"github.com/GoogleContainerTools/kpt/internal/types"
-	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1alpha2"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"sigs.k8s.io/kustomize/kyaml/fn/framework"
 	"sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil"
 	"sigs.k8s.io/kustomize/kyaml/kio"
@@ -39,7 +39,7 @@ import (
 // NewContainerRunner returns a kio.Filter given a specification of a container function
 // and it's config.
 func NewContainerRunner(
-	ctx context.Context, f *kptfilev1.Function,
+	ctx context.Context, f *kptfilev1alpha2.Function,
 	pkgPath types.UniquePath, fnResults *fnresult.ResultList,
 	imagePullPolicy ImagePullPolicy) (kio.Filter, error) {
 	config, err := newFnConfig(f, pkgPath)
@@ -124,7 +124,7 @@ func (fr *FunctionRunner) Filter(input []*yaml.RNode) (output []*yaml.RNode, err
 // do executes the kpt function and returns the modified resources.
 // fnResult is updated with the function results returned by the kpt function.
 func (fr *FunctionRunner) do(input []*yaml.RNode) (output []*yaml.RNode, err error) {
-	if krmErr := kptfilev1.AreKRM(input); krmErr != nil {
+	if krmErr := kptfilev1alpha2.AreKRM(input); krmErr != nil {
 		return output, fmt.Errorf("input resource list must contain only KRM resources: %s", krmErr.Error())
 	}
 
@@ -133,7 +133,7 @@ func (fr *FunctionRunner) do(input []*yaml.RNode) (output []*yaml.RNode, err err
 	if pathErr := enforcePathInvariants(output); pathErr != nil {
 		return output, pathErr
 	}
-	if krmErr := kptfilev1.AreKRM(output); krmErr != nil {
+	if krmErr := kptfilev1alpha2.AreKRM(output); krmErr != nil {
 		return output, fmt.Errorf("output resource list must contain only KRM resources: %s", krmErr.Error())
 	}
 
@@ -407,7 +407,7 @@ func resourceRefToString(ref yaml.ResourceIdentifier) string {
 	return s.String()
 }
 
-func newFnConfig(f *kptfilev1.Function, pkgPath types.UniquePath) (*yaml.RNode, error) {
+func newFnConfig(f *kptfilev1alpha2.Function, pkgPath types.UniquePath) (*yaml.RNode, error) {
 	const op errors.Op = "fn.readConfig"
 	var fn errors.Fn = errors.Fn(f.Image)
 
diff --git a/internal/fnruntime/utils.go b/internal/fnruntime/utils.go
index 3a436152..854ba985 100644
--- a/internal/fnruntime/utils.go
+++ b/internal/fnruntime/utils.go
@@ -19,7 +19,7 @@ import (
 	"io/ioutil"
 	"path/filepath"
 
-	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1alpha2"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 )
 
diff --git a/internal/pkg/pkg.go b/internal/pkg/pkg.go
index d3d56921..ad39eb6a 100644
--- a/internal/pkg/pkg.go
+++ b/internal/pkg/pkg.go
@@ -27,7 +27,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/errors"
 	"github.com/GoogleContainerTools/kpt/internal/types"
 	"github.com/GoogleContainerTools/kpt/internal/util/git"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"k8s.io/apimachinery/pkg/runtime/schema"
 	"k8s.io/kubectl/pkg/util/slice"
 	"sigs.k8s.io/kustomize/kyaml/kio"
@@ -41,11 +41,6 @@ const ParentDir = ".."
 
 var DeprecatedKptfileVersions = []string{
 	"v1alpha1",
-	"v1alpha2",
-}
-
-var SupportedKptfileVersions = []string{
-	kptfilev1.KptFileVersion,
 }
 
 // KptfileError records errors regarding reading or parsing of a Kptfile.
@@ -114,7 +109,7 @@ type Pkg struct {
 
 	// A package can contain zero or one Kptfile meta resource.
 	// A nil value represents an implicit package.
-	kptfile *kptfilev1.KptFile
+	kptfile *kptfilev1alpha2.KptFile
 }
 
 // New returns a pkg given an absolute or relative OS-defined path.
@@ -144,7 +139,7 @@ func New(path string) (*Pkg, error) {
 
 // Kptfile returns the Kptfile meta resource by lazy loading it from the filesytem.
 // A nil value represents an implicit package.
-func (p *Pkg) Kptfile() (*kptfilev1.KptFile, error) {
+func (p *Pkg) Kptfile() (*kptfilev1alpha2.KptFile, error) {
 	if p.kptfile == nil {
 		kf, err := ReadKptfile(p.UniquePath.String())
 		if err != nil {
@@ -161,8 +156,8 @@ func (p *Pkg) Kptfile() (*kptfilev1.KptFile, error) {
 // of Kptfile in code. One option is to follow Kubernetes approach to
 // have an internal version of Kptfile that all the code uses. In that case,
 // we will have to implement pieces for IO/Conversion with right interfaces.
-func ReadKptfile(p string) (*kptfilev1.KptFile, error) {
-	f, err := os.Open(filepath.Join(p, kptfilev1.KptFileName))
+func ReadKptfile(p string) (*kptfilev1alpha2.KptFile, error) {
+	f, err := os.Open(filepath.Join(p, kptfilev1alpha2.KptFileName))
 	if err != nil {
 		return nil, &KptfileError{
 			Path: types.UniquePath(p),
@@ -181,8 +176,8 @@ func ReadKptfile(p string) (*kptfilev1.KptFile, error) {
 	return kf, nil
 }
 
-func DecodeKptfile(in io.Reader) (*kptfilev1.KptFile, error) {
-	kf := &kptfilev1.KptFile{}
+func DecodeKptfile(in io.Reader) (*kptfilev1alpha2.KptFile, error) {
+	kf := &kptfilev1alpha2.KptFile{}
 	c, err := io.ReadAll(in)
 	if err != nil {
 		return kf, err
@@ -223,14 +218,14 @@ func CheckKptfileVersion(content []byte) error {
 
 	switch {
 	// If the resource type matches what we are looking for, just return nil.
-	case gv.Group == kptfilev1.KptFileGroup &&
-		kind == kptfilev1.KptFileKind &&
-		isSupportedKptfileVersion(gv.Version):
+	case gv.Group == kptfilev1alpha2.KptFileGroup &&
+		gv.Version == kptfilev1alpha2.KptFileVersion &&
+		kind == kptfilev1alpha2.KptFileKind:
 		return nil
 	// If the kind and group is correct and the version is a known deprecated
 	// schema for the Kptfile, return DeprecatedKptfileError.
-	case gv.Group == kptfilev1.KptFileGroup &&
-		kind == kptfilev1.KptFileKind &&
+	case gv.Group == kptfilev1alpha2.KptFileGroup &&
+		kind == kptfilev1alpha2.KptFileKind &&
 		isDeprecatedKptfileVersion(gv.Version):
 		return &DeprecatedKptfileError{
 			Version: gv.Version,
@@ -248,20 +243,16 @@ func isDeprecatedKptfileVersion(version string) bool {
 	return slice.ContainsString(DeprecatedKptfileVersions, version, nil)
 }
 
-func isSupportedKptfileVersion(version string) bool {
-	return slice.ContainsString(SupportedKptfileVersions, version, nil)
-}
-
 // Pipeline returns the Pipeline section of the pkg's Kptfile.
 // if pipeline is not specified in a Kptfile, it returns Zero value of the pipeline.
-func (p *Pkg) Pipeline() (*kptfilev1.Pipeline, error) {
+func (p *Pkg) Pipeline() (*kptfilev1alpha2.Pipeline, error) {
 	kf, err := p.Kptfile()
 	if err != nil {
 		return nil, err
 	}
 	pl := kf.Pipeline
 	if pl == nil {
-		return &kptfilev1.Pipeline{}, nil
+		return &kptfilev1alpha2.Pipeline{}, nil
 	}
 	return pl, nil
 }
@@ -435,7 +426,7 @@ func Subpackages(rootPath string, matcher SubpackageMatcher, recursive bool) ([]
 // IsPackageDir checks if there exists a Kptfile on the provided path, i.e.
 // whether the provided path is the root of a package.
 func IsPackageDir(path string) (bool, error) {
-	_, err := os.Stat(filepath.Join(path, kptfilev1.KptFileName))
+	_, err := os.Stat(filepath.Join(path, kptfilev1alpha2.KptFileName))
 
 	// If we got an error that wasn't IsNotExist, something went wrong and
 	// we don't really know if the file exists or not.
@@ -480,7 +471,7 @@ func (p *Pkg) LocalResources(includeMetaResources bool) (resources []*yaml.RNode
 
 	pkgReader := &kio.LocalPackageReader{
 		PackagePath:        string(p.UniquePath),
-		PackageFileName:    kptfilev1.KptFileName,
+		PackageFileName:    kptfilev1alpha2.KptFileName,
 		IncludeSubpackages: false,
 		MatchFilesGlob:     kio.MatchAll,
 	}
@@ -526,7 +517,7 @@ func (p *Pkg) ValidatePipeline() error {
 
 	for i, fn := range pl.Mutators {
 		if fn.ConfigPath != "" && !resourcesByPath.Has(filepath.Clean(fn.ConfigPath)) {
-			return &kptfilev1.ValidateError{
+			return &kptfilev1alpha2.ValidateError{
 				Field:  fmt.Sprintf("pipeline.%s[%d].configPath", "mutators", i),
 				Value:  fn.ConfigPath,
 				Reason: "functionConfig must exist in the current package",
@@ -535,7 +526,7 @@ func (p *Pkg) ValidatePipeline() error {
 	}
 	for i, fn := range pl.Validators {
 		if fn.ConfigPath != "" && !resourcesByPath.Has(filepath.Clean(fn.ConfigPath)) {
-			return &kptfilev1.ValidateError{
+			return &kptfilev1alpha2.ValidateError{
 				Field:  fmt.Sprintf("pipeline.%s[%d].configPath", "validators", i),
 				Value:  fn.ConfigPath,
 				Reason: "functionConfig must exist in the current package",
@@ -546,7 +537,7 @@ func (p *Pkg) ValidatePipeline() error {
 }
 
 // filterMetaResources filters kpt metadata files such as Kptfile, function configs.
-func filterMetaResources(input []*yaml.RNode, pl *kptfilev1.Pipeline) (output []*yaml.RNode, err error) {
+func filterMetaResources(input []*yaml.RNode, pl *kptfilev1alpha2.Pipeline) (output []*yaml.RNode, err error) {
 	pathsToExclude := fnConfigFilePaths(pl)
 	for _, r := range input {
 		meta, err := r.GetMeta()
@@ -572,7 +563,7 @@ func filterMetaResources(input []*yaml.RNode, pl *kptfilev1.Pipeline) (output []
 
 // fnConfigFilePaths returns paths to function config files referred in the
 // given pipeline.
-func fnConfigFilePaths(pl *kptfilev1.Pipeline) (fnConfigPaths sets.String) {
+func fnConfigFilePaths(pl *kptfilev1alpha2.Pipeline) (fnConfigPaths sets.String) {
 	if pl == nil {
 		return nil
 	}
diff --git a/internal/util/diff/diff.go b/internal/util/diff/diff.go
index e2f3a20e..aee4c110 100644
--- a/internal/util/diff/diff.go
+++ b/internal/util/diff/diff.go
@@ -30,7 +30,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/util/addmergecomment"
 	"github.com/GoogleContainerTools/kpt/internal/util/fetch"
 	"github.com/GoogleContainerTools/kpt/internal/util/pkgutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"sigs.k8s.io/kustomize/kyaml/errors"
 )
@@ -312,7 +312,7 @@ func (d *defaultPkgDiffer) Diff(pkgs ...string) error {
 // prepareForDiff removes metadata such as .git and Kptfile from a staged package
 // to exclude them from diffing.
 func (d *defaultPkgDiffer) prepareForDiff(dir string) error {
-	excludePaths := []string{".git", kptfilev1.KptFileName}
+	excludePaths := []string{".git", kptfilev1alpha2.KptFileName}
 	for _, path := range excludePaths {
 		path = filepath.Join(dir, path)
 		if err := os.RemoveAll(path); err != nil {
@@ -343,9 +343,9 @@ func (pg defaultPkgGetter) GetPkg(ctx context.Context, stagingDir, targetDir, re
 
 	name := filepath.Base(dir)
 	kf := kptfileutil.DefaultKptfile(name)
-	kf.Upstream = &kptfilev1.Upstream{
-		Type: kptfilev1.GitOrigin,
-		Git: &kptfilev1.Git{
+	kf.Upstream = &kptfilev1alpha2.Upstream{
+		Type: kptfilev1alpha2.GitOrigin,
+		Git: &kptfilev1alpha2.Git{
 			Repo:      repo,
 			Directory: path,
 			Ref:       ref,
diff --git a/internal/util/diff/pkgdiff.go b/internal/util/diff/pkgdiff.go
index c4d3550e..cf785da7 100644
--- a/internal/util/diff/pkgdiff.go
+++ b/internal/util/diff/pkgdiff.go
@@ -22,7 +22,7 @@ import (
 
 	"github.com/GoogleContainerTools/kpt/internal/pkg"
 	"github.com/GoogleContainerTools/kpt/internal/util/pkgutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"sigs.k8s.io/kustomize/kyaml/sets"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 )
@@ -51,7 +51,7 @@ func PkgDiff(pkg1, pkg2 string) (sets.String, error) {
 		}
 
 		fileName := filepath.Base(f)
-		if fileName == kptfilev1.KptFileName {
+		if fileName == kptfilev1alpha2.KptFileName {
 			equal, err := kptfilesEqual(pkg1, pkg2, f)
 			if err != nil {
 				return diff, err
@@ -87,10 +87,10 @@ func kptfilesEqual(pkg1, pkg2, filePath string) (bool, error) {
 	}
 
 	// Diffs in Upstream and UpstreamLock should be ignored.
-	pkg1Kf.Upstream = &kptfilev1.Upstream{}
-	pkg1Kf.UpstreamLock = &kptfilev1.UpstreamLock{}
-	pkg2Kf.Upstream = &kptfilev1.Upstream{}
-	pkg2Kf.UpstreamLock = &kptfilev1.UpstreamLock{}
+	pkg1Kf.Upstream = &kptfilev1alpha2.Upstream{}
+	pkg1Kf.UpstreamLock = &kptfilev1alpha2.UpstreamLock{}
+	pkg2Kf.Upstream = &kptfilev1alpha2.Upstream{}
+	pkg2Kf.UpstreamLock = &kptfilev1alpha2.UpstreamLock{}
 
 	pkg1Bytes, err := yaml.Marshal(pkg1Kf)
 	if err != nil {
diff --git a/internal/util/fetch/fetch.go b/internal/util/fetch/fetch.go
index 987f6b3d..d0846437 100644
--- a/internal/util/fetch/fetch.go
+++ b/internal/util/fetch/fetch.go
@@ -30,7 +30,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/types"
 	"github.com/GoogleContainerTools/kpt/internal/util/git"
 	"github.com/GoogleContainerTools/kpt/internal/util/pkgutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"sigs.k8s.io/kustomize/kyaml/copyutil"
 )
@@ -69,7 +69,7 @@ func (c Command) Run(ctx context.Context) error {
 
 // validate makes sure the Kptfile has the necessary information to fetch
 // the package.
-func (c Command) validate(kf *kptfilev1.KptFile) error {
+func (c Command) validate(kf *kptfilev1alpha2.KptFile) error {
 	const op errors.Op = "validate"
 	if kf.Upstream == nil {
 		return errors.E(op, errors.MissingParam, fmt.Errorf("kptfile doesn't contain upstream information"))
diff --git a/internal/util/get/get.go b/internal/util/get/get.go
index 77a2f401..cadd6b78 100644
--- a/internal/util/get/get.go
+++ b/internal/util/get/get.go
@@ -31,7 +31,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/util/addmergecomment"
 	"github.com/GoogleContainerTools/kpt/internal/util/fetch"
 	"github.com/GoogleContainerTools/kpt/internal/util/stack"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 )
 
@@ -39,7 +39,7 @@ import (
 // directory, and expands any remote subpackages.
 type Command struct {
 	// Git contains information about the git repo to fetch
-	Git *kptfilev1.Git
+	Git *kptfilev1alpha2.Git
 
 	// Destination is the output directory to clone the package to.  Defaults to the name of the package --
 	// either the base repo name, or the base subdirectory name.
@@ -51,7 +51,7 @@ type Command struct {
 	// UpdateStrategy is the strategy that will be configured in the package
 	// Kptfile. This determines how changes will be merged when updating the
 	// package.
-	UpdateStrategy kptfilev1.UpdateStrategyType
+	UpdateStrategy kptfilev1alpha2.UpdateStrategyType
 }
 
 // Run runs the Command.
@@ -78,8 +78,8 @@ func (c Command) Run(ctx context.Context) error {
 	c.Git.Directory = repoDir
 
 	kf := kptfileutil.DefaultKptfile(c.Name)
-	kf.Upstream = &kptfilev1.Upstream{
-		Type:           kptfilev1.GitOrigin,
+	kf.Upstream = &kptfilev1alpha2.Upstream{
+		Type:           kptfilev1alpha2.GitOrigin,
 		Git:            c.Git,
 		UpdateStrategy: c.UpdateStrategy,
 	}
@@ -179,7 +179,7 @@ func (c *Command) DefaultValues() error {
 
 	// default the update strategy to resource-merge
 	if len(c.UpdateStrategy) == 0 {
-		c.UpdateStrategy = kptfilev1.ResourceMerge
+		c.UpdateStrategy = kptfilev1alpha2.ResourceMerge
 	}
 
 	return nil
diff --git a/internal/util/man/man.go b/internal/util/man/man.go
index ba1a8ce0..53d58d31 100644
--- a/internal/util/man/man.go
+++ b/internal/util/man/man.go
@@ -26,7 +26,7 @@ import (
 	"strings"
 
 	"github.com/GoogleContainerTools/kpt/internal/pkg"
-	v1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	"github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/cpuguy83/go-md2man/v2/md2man"
 	"sigs.k8s.io/kustomize/kyaml/errors"
 )
@@ -63,7 +63,7 @@ func (m Command) Run() error {
 		return err
 	}
 	if k.Info == nil {
-		k.Info = &v1.PackageInfo{}
+		k.Info = &v1alpha2.PackageInfo{}
 	}
 
 	if k.Info.Man == "" {
diff --git a/internal/util/merge/merge3.go b/internal/util/merge/merge3.go
index 28b8551e..6d0cb54d 100644
--- a/internal/util/merge/merge3.go
+++ b/internal/util/merge/merge3.go
@@ -18,7 +18,7 @@ import (
 	"path/filepath"
 	"strings"
 
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"sigs.k8s.io/kustomize/kyaml/kio"
 	"sigs.k8s.io/kustomize/kyaml/kio/filters"
 	"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
@@ -68,7 +68,7 @@ func (m Merge3) Merge() error {
 		MatchFilesGlob:     m.MatchFilesGlob,
 		SetAnnotations:     map[string]string{mergeSourceAnnotation: mergeSourceDest},
 		IncludeSubpackages: m.IncludeSubPackages,
-		PackageFileName:    kptfilev1.KptFileName,
+		PackageFileName:    kptfilev1alpha2.KptFileName,
 	}
 	inputs = append(inputs, dest)
 
@@ -79,7 +79,7 @@ func (m Merge3) Merge() error {
 			MatchFilesGlob:     m.MatchFilesGlob,
 			SetAnnotations:     map[string]string{mergeSourceAnnotation: mergeSourceOriginal},
 			IncludeSubpackages: m.IncludeSubPackages,
-			PackageFileName:    kptfilev1.KptFileName,
+			PackageFileName:    kptfilev1alpha2.KptFileName,
 		},
 		Exclusions: relPaths,
 	})
@@ -91,7 +91,7 @@ func (m Merge3) Merge() error {
 			MatchFilesGlob:     m.MatchFilesGlob,
 			SetAnnotations:     map[string]string{mergeSourceAnnotation: mergeSourceUpdated},
 			IncludeSubpackages: m.IncludeSubPackages,
-			PackageFileName:    kptfilev1.KptFileName,
+			PackageFileName:    kptfilev1alpha2.KptFileName,
 		},
 		Exclusions: relPaths,
 	})
@@ -112,7 +112,7 @@ func (m Merge3) Merge() error {
 
 func (m Merge3) findExclusions() ([]string, error) {
 	var relPaths []string
-	paths, err := pathutil.DirsWithFile(m.DestPath, kptfilev1.KptFileName, true)
+	paths, err := pathutil.DirsWithFile(m.DestPath, kptfilev1alpha2.KptFileName, true)
 	if err != nil {
 		return relPaths, err
 	}
diff --git a/internal/util/parse/parse.go b/internal/util/parse/parse.go
index 2cd3c1fe..296be83e 100644
--- a/internal/util/parse/parse.go
+++ b/internal/util/parse/parse.go
@@ -22,12 +22,12 @@ import (
 	"strings"
 
 	"github.com/GoogleContainerTools/kpt/internal/gitutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"sigs.k8s.io/kustomize/kyaml/errors"
 )
 
 type Target struct {
-	kptfilev1.Git
+	kptfilev1alpha2.Git
 	Destination string
 }
 
diff --git a/internal/util/pkgutil/pkgutil.go b/internal/util/pkgutil/pkgutil.go
index c46198fb..a5a1a395 100644
--- a/internal/util/pkgutil/pkgutil.go
+++ b/internal/util/pkgutil/pkgutil.go
@@ -23,7 +23,7 @@ import (
 	"strings"
 
 	"github.com/GoogleContainerTools/kpt/internal/pkg"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"sigs.k8s.io/kustomize/kyaml/copyutil"
 	"sigs.k8s.io/kustomize/kyaml/kio"
@@ -53,7 +53,7 @@ func WalkPackage(src string, c func(string, os.FileInfo, error) error) error {
 		}
 
 		if info.IsDir() {
-			_, err := os.Stat(filepath.Join(path, kptfilev1.KptFileName))
+			_, err := os.Stat(filepath.Join(path, kptfilev1alpha2.KptFileName))
 			if err != nil && !os.IsNotExist(err) {
 				return c(path, info, err)
 			}
@@ -98,7 +98,7 @@ func CopyPackage(src, dst string, copyRootKptfile bool, matcher pkg.SubpackageMa
 			return os.MkdirAll(filepath.Join(dst, copyTo), info.Mode())
 		}
 
-		if path == filepath.Join(src, kptfilev1.KptFileName) && !copyRootKptfile {
+		if path == filepath.Join(src, kptfilev1alpha2.KptFileName) && !copyRootKptfile {
 			return nil
 		}
 
@@ -191,7 +191,7 @@ func RemovePackageContent(path string, removeRootKptfile bool) error {
 			return nil
 		}
 
-		if p == filepath.Join(path, kptfilev1.KptFileName) && !removeRootKptfile {
+		if p == filepath.Join(path, kptfilev1alpha2.KptFileName) && !removeRootKptfile {
 			return nil
 		}
 
@@ -285,7 +285,7 @@ func FindSubpackagesForPaths(matcher pkg.SubpackageMatcher, recurse bool, pkgPat
 func FormatPackage(pkgPath string) {
 	inout := &kio.LocalPackageReadWriter{
 		PackagePath:    pkgPath,
-		MatchFilesGlob: append(kio.DefaultMatch, kptfilev1.KptFileName),
+		MatchFilesGlob: append(kio.DefaultMatch, kptfilev1alpha2.KptFileName),
 	}
 	f := &filters.FormatFilter{
 		UseSchema: true,
diff --git a/internal/util/update/fastforward.go b/internal/util/update/fastforward.go
index 0319ed1b..6bc10bf2 100644
--- a/internal/util/update/fastforward.go
+++ b/internal/util/update/fastforward.go
@@ -24,7 +24,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/types"
 	pkgdiff "github.com/GoogleContainerTools/kpt/internal/util/diff"
 	"github.com/GoogleContainerTools/kpt/internal/util/pkgutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"sigs.k8s.io/kustomize/kyaml/sets"
 )
@@ -37,7 +37,7 @@ type FastForwardUpdater struct{}
 
 var kptfileSet = func() sets.String {
 	s := sets.String{}
-	s.Insert(kptfilev1.KptFileName)
+	s.Insert(kptfilev1alpha2.KptFileName)
 	return s
 }()
 
@@ -94,7 +94,7 @@ func (u FastForwardUpdater) checkForLocalChanges(localPath, originalPath string)
 		// If the original package didn't have a Kptfile, one was created
 		// in local, but we don't consider that a change unless the user
 		// has made additional changes.
-		if d.Has(kptfilev1.KptFileName) && subPkgPath == "." {
+		if d.Has(kptfilev1alpha2.KptFileName) && subPkgPath == "." {
 			hasDiff, err := hasKfDiff(localSubPkgPath, originalSubPkgPath)
 			if err != nil {
 				return errors.E(op, types.UniquePath(localSubPkgPath), err)
@@ -123,7 +123,7 @@ func hasKfDiff(localPath, orgPath string) (bool, error) {
 	localKf.Upstream = nil
 	localKf.UpstreamLock = nil
 
-	_, err = os.Stat(filepath.Join(orgPath, kptfilev1.KptFileName))
+	_, err = os.Stat(filepath.Join(orgPath, kptfilev1alpha2.KptFileName))
 	if err != nil {
 		if os.IsNotExist(err) {
 			// We know that there aren't any Kptfile in the original
@@ -151,7 +151,7 @@ func hasKfDiff(localPath, orgPath string) (bool, error) {
 	return !equal, nil
 }
 
-func isDefaultKptfile(localKf *kptfilev1.KptFile, name string) (bool, error) {
+func isDefaultKptfile(localKf *kptfilev1alpha2.KptFile, name string) (bool, error) {
 	defaultKf := kptfileutil.DefaultKptfile(name)
 	return kptfileutil.Equal(localKf, defaultKf)
 }
diff --git a/internal/util/update/resource-merge.go b/internal/util/update/resource-merge.go
index 64681bbe..4703272a 100644
--- a/internal/util/update/resource-merge.go
+++ b/internal/util/update/resource-merge.go
@@ -27,7 +27,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/types"
 	"github.com/GoogleContainerTools/kpt/internal/util/merge"
 	"github.com/GoogleContainerTools/kpt/internal/util/pkgutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"sigs.k8s.io/kustomize/kyaml/copyutil"
 	"sigs.k8s.io/kustomize/kyaml/kio"
@@ -280,7 +280,7 @@ func getSubDirsAndNonKrmFiles(root string) (sets.String, sets.String, error) {
 	return dirs, files, nil
 }
 
-var krmFilesGlob = append([]string{kptfilev1.KptFileName}, kio.DefaultMatch...)
+var krmFilesGlob = append([]string{kptfilev1alpha2.KptFileName}, kio.DefaultMatch...)
 
 // isKrmFile checks if the file pointed to by the path is a yaml file (including
 // the Kptfile).
diff --git a/internal/util/update/update.go b/internal/util/update/update.go
index 3434bfc0..28360024 100644
--- a/internal/util/update/update.go
+++ b/internal/util/update/update.go
@@ -33,7 +33,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/util/git"
 	"github.com/GoogleContainerTools/kpt/internal/util/pkgutil"
 	"github.com/GoogleContainerTools/kpt/internal/util/stack"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"sigs.k8s.io/kustomize/kyaml/copyutil"
 )
@@ -85,10 +85,10 @@ type Updater interface {
 	Update(options UpdateOptions) error
 }
 
-var strategies = map[kptfilev1.UpdateStrategyType]func() Updater{
-	kptfilev1.FastForward:        func() Updater { return FastForwardUpdater{} },
-	kptfilev1.ForceDeleteReplace: func() Updater { return ReplaceUpdater{} },
-	kptfilev1.ResourceMerge:      func() Updater { return ResourceMergeUpdater{} },
+var strategies = map[kptfilev1alpha2.UpdateStrategyType]func() Updater{
+	kptfilev1alpha2.FastForward:        func() Updater { return FastForwardUpdater{} },
+	kptfilev1alpha2.ForceDeleteReplace: func() Updater { return ReplaceUpdater{} },
+	kptfilev1alpha2.ResourceMerge:      func() Updater { return ResourceMergeUpdater{} },
 }
 
 // Command updates the contents of a local package to a different version.
@@ -100,7 +100,7 @@ type Command struct {
 	Ref string
 
 	// Strategy is the update strategy to use
-	Strategy kptfilev1.UpdateStrategyType
+	Strategy kptfilev1alpha2.UpdateStrategyType
 }
 
 // Run runs the Command.
diff --git a/package-examples/helloworld-set/Kptfile b/package-examples/helloworld-set/Kptfile
index 38e5bd52..06f58ed8 100644
--- a/package-examples/helloworld-set/Kptfile
+++ b/package-examples/helloworld-set/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: helloworld-set
diff --git a/package-examples/helloworld-tshirt/Kptfile b/package-examples/helloworld-tshirt/Kptfile
index 8e1a7eb9..1e6ac739 100644
--- a/package-examples/helloworld-tshirt/Kptfile
+++ b/package-examples/helloworld-tshirt/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: helloworld-tshirt
@@ -7,4 +7,4 @@ pipeline:
     - image: gcr.io/kpt-fn/apply-setters:unstable
       configMap:
         tshirt-size: small
-    - image: gcr.io/kustomize-functions/example-tshirt:v0.1.0
+    - image: gcr.io/kustomize-functions/example-tshirt:v0.1.0
\ No newline at end of file
diff --git a/package-examples/helloworld/Kptfile b/package-examples/helloworld/Kptfile
index 892c6b4a..396636fe 100644
--- a/package-examples/helloworld/Kptfile
+++ b/package-examples/helloworld/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: helloworld
diff --git a/package-examples/kustomize/Kptfile b/package-examples/kustomize/Kptfile
index 380fe6c2..b83f8775 100644
--- a/package-examples/kustomize/Kptfile
+++ b/package-examples/kustomize/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: kustomize-pkg
diff --git a/package-examples/kustomize/README.md b/package-examples/kustomize/README.md
index 59c2433e..79d8fee7 100644
--- a/package-examples/kustomize/README.md
+++ b/package-examples/kustomize/README.md
@@ -107,7 +107,7 @@ spec:
         ports:
         - containerPort: 80
 ---
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 info:
   description: sample description
 kind: Kptfile
diff --git a/package-examples/kustomize/bases/nginx/Kptfile b/package-examples/kustomize/bases/nginx/Kptfile
index b6a579d7..4f6f5899 100644
--- a/package-examples/kustomize/bases/nginx/Kptfile
+++ b/package-examples/kustomize/bases/nginx/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: nginx
diff --git a/package-examples/kustomize/overlays/dev/Kptfile b/package-examples/kustomize/overlays/dev/Kptfile
index aba27dc7..f41581e8 100644
--- a/package-examples/kustomize/overlays/dev/Kptfile
+++ b/package-examples/kustomize/overlays/dev/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: dev
diff --git a/package-examples/kustomize/overlays/prod/Kptfile b/package-examples/kustomize/overlays/prod/Kptfile
index f4458863..f93f8728 100644
--- a/package-examples/kustomize/overlays/prod/Kptfile
+++ b/package-examples/kustomize/overlays/prod/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: prod
diff --git a/package-examples/nginx/Kptfile b/package-examples/nginx/Kptfile
index a26f3990..3cb9d11c 100644
--- a/package-examples/nginx/Kptfile
+++ b/package-examples/nginx/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: nginx
diff --git a/package-examples/pipeline-validate/Kptfile b/package-examples/pipeline-validate/Kptfile
index dd0211ce..b81e172e 100644
--- a/package-examples/pipeline-validate/Kptfile
+++ b/package-examples/pipeline-validate/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: kpt-pipeline-validate-example
diff --git a/package-examples/wordpress/Kptfile b/package-examples/wordpress/Kptfile
index 84ac62a7..b99b46e1 100644
--- a/package-examples/wordpress/Kptfile
+++ b/package-examples/wordpress/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: wordpress
diff --git a/package-examples/wordpress/mysql/Kptfile b/package-examples/wordpress/mysql/Kptfile
index 6ccacf92..7fc1835b 100644
--- a/package-examples/wordpress/mysql/Kptfile
+++ b/package-examples/wordpress/mysql/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: mysql
diff --git a/pkg/api/fnresult/v1/types.go b/pkg/api/fnresult/v1alpha2/types.go
similarity index 92%
rename from pkg/api/fnresult/v1/types.go
rename to pkg/api/fnresult/v1alpha2/types.go
index b5a99062..cc761ca1 100644
--- a/pkg/api/fnresult/v1/types.go
+++ b/pkg/api/fnresult/v1alpha2/types.go
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package v1
+package v1alpha2
 
 import (
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"sigs.k8s.io/kustomize/kyaml/fn/framework"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 )
@@ -41,8 +41,8 @@ type Result struct {
 
 const (
 	ResultListKind       = "FunctionResultList"
-	ResultListGroup      = kptfilev1.KptFileGroup
-	ResultListVersion    = kptfilev1.KptFileVersion
+	ResultListGroup      = kptfilev1alpha2.KptFileGroup
+	ResultListVersion    = kptfilev1alpha2.KptFileVersion
 	ResultListAPIVersion = ResultListGroup + "/" + ResultListVersion
 )
 
diff --git a/pkg/api/kptfile/v1/types.go b/pkg/api/kptfile/v1alpha2/types.go
similarity index 88%
rename from pkg/api/kptfile/v1/types.go
rename to pkg/api/kptfile/v1alpha2/types.go
index a628b87d..42418fdd 100644
--- a/pkg/api/kptfile/v1/types.go
+++ b/pkg/api/kptfile/v1alpha2/types.go
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Package defines the schema for Kptfile version v1.
-package v1
+// Package defines the schema for Kptfile version v1alpha2.
+package v1alpha2
 
 import (
 	"fmt"
@@ -25,7 +25,7 @@ const (
 	KptFileName       = "Kptfile"
 	KptFileKind       = "Kptfile"
 	KptFileGroup      = "kpt.dev"
-	KptFileVersion    = "v1"
+	KptFileVersion    = "v1alpha2"
 	KptFileAPIVersion = KptFileGroup + "/" + KptFileVersion
 )
 
@@ -54,6 +54,30 @@ type KptFile struct {
 
 	// Inventory contains parameters for the inventory object used in apply.
 	Inventory *Inventory `yaml:"inventory,omitempty"`
+
+	// Ignore contains a list of .gitignore patterns for files and directories
+	// that should be ignored by kpt. Files/directories that match will be
+	// fetched and updated as part of the package, but will be ignored by the other
+	// kpt functionality. The patterns will only impact resources within the
+	// same package, and it is not possible to ignore subpackages.
+	//
+	// The following patterns are supported:
+	// * Absolute path (/path/to/ignore): If the pattern has a leading slash, it will
+	//   only match the specific path underneath the package root.
+	//   Example: "/ignore.me" will only match the file if it is in the root of
+	//   the package.
+	// * Relative path (path/to/ignore): If the pattern does not have a leading slash,
+	//   it will match at any depth in the package.
+	//   Example: "ignore.me" will match all files called "ignore.me" within the
+	//   package.
+	// * Accept pattern (!path/to/accept): Negate a previous pattern so the path
+	//   will be included.
+	// * Directory pattern (path/to/directory/): If the pattern has a slash at the
+	//   end, it will only match directories.
+	// * Glob pattern (path/to/*.txt): * matches all characters except slash.
+	//
+	// Recursive patterns (path/**/ignore) are not supported.
+	Ignore []string `yaml:"ignore,omitempty"`
 }
 
 // OriginType defines the type of origin for a package.
diff --git a/pkg/api/kptfile/v1/validation.go b/pkg/api/kptfile/v1alpha2/validation.go
similarity index 99%
rename from pkg/api/kptfile/v1/validation.go
rename to pkg/api/kptfile/v1alpha2/validation.go
index b4b5e89d..ff25d706 100644
--- a/pkg/api/kptfile/v1/validation.go
+++ b/pkg/api/kptfile/v1alpha2/validation.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package v1
+package v1alpha2
 
 import (
 	"fmt"
diff --git a/pkg/kptfile/kptfileutil/util.go b/pkg/kptfile/kptfileutil/util.go
index 3acdb0fd..ce32a606 100644
--- a/pkg/kptfile/kptfileutil/util.go
+++ b/pkg/kptfile/kptfileutil/util.go
@@ -27,18 +27,18 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/pkg"
 	"github.com/GoogleContainerTools/kpt/internal/types"
 	"github.com/GoogleContainerTools/kpt/internal/util/git"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 	"sigs.k8s.io/kustomize/kyaml/yaml/merge3"
 )
 
-func WriteFile(dir string, k *kptfilev1.KptFile) error {
+func WriteFile(dir string, k *kptfilev1alpha2.KptFile) error {
 	const op errors.Op = "kptfileutil.WriteFile"
 	b, err := yaml.Marshal(k)
 	if err != nil {
 		return err
 	}
-	if _, err := os.Stat(filepath.Join(dir, kptfilev1.KptFileName)); err != nil && !goerrors.Is(err, os.ErrNotExist) {
+	if _, err := os.Stat(filepath.Join(dir, kptfilev1alpha2.KptFileName)); err != nil && !goerrors.Is(err, os.ErrNotExist) {
 		return errors.E(op, errors.IO, types.UniquePath(dir), err)
 	}
 
@@ -55,7 +55,7 @@ func WriteFile(dir string, k *kptfilev1.KptFile) error {
 	}
 
 	// fyi: perm is ignored if the file already exists
-	err = ioutil.WriteFile(filepath.Join(dir, kptfilev1.KptFileName), []byte(kptFileStr), 0600)
+	err = ioutil.WriteFile(filepath.Join(dir, kptfilev1alpha2.KptFileName), []byte(kptFileStr), 0600)
 	if err != nil {
 		return errors.E(op, errors.IO, types.UniquePath(dir), err)
 	}
@@ -66,7 +66,7 @@ func WriteFile(dir string, k *kptfilev1.KptFile) error {
 // is valid; otherwiste, false and the reason the inventory is not valid
 // is returned. A valid inventory must have a non-empty namespace, name,
 // and id.
-func ValidateInventory(inv *kptfilev1.Inventory) (bool, error) {
+func ValidateInventory(inv *kptfilev1alpha2.Inventory) (bool, error) {
 	const op errors.Op = "kptfileutil.ValidateInventory"
 	if inv == nil {
 		return false, errors.E(op, errors.MissingParam,
@@ -88,7 +88,7 @@ func ValidateInventory(inv *kptfilev1.Inventory) (bool, error) {
 	return true, nil
 }
 
-func Equal(kf1, kf2 *kptfilev1.KptFile) (bool, error) {
+func Equal(kf1, kf2 *kptfilev1alpha2.KptFile) (bool, error) {
 	const op errors.Op = "kptfileutil.Equal"
 	kf1Bytes, err := yaml.Marshal(kf1)
 	if err != nil {
@@ -104,12 +104,12 @@ func Equal(kf1, kf2 *kptfilev1.KptFile) (bool, error) {
 }
 
 // DefaultKptfile returns a new minimal Kptfile.
-func DefaultKptfile(name string) *kptfilev1.KptFile {
-	return &kptfilev1.KptFile{
+func DefaultKptfile(name string) *kptfilev1alpha2.KptFile {
+	return &kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind,
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind,
 			},
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -132,7 +132,7 @@ func UpdateKptfileWithoutOrigin(localPath, updatedPath string, updateUpstream bo
 		if !goerrors.Is(err, os.ErrNotExist) {
 			return errors.E(op, types.UniquePath(localPath), err)
 		}
-		localKf = &kptfilev1.KptFile{}
+		localKf = &kptfilev1alpha2.KptFile{}
 	}
 
 	updatedKf, err := pkg.ReadKptfile(updatedPath)
@@ -140,10 +140,10 @@ func UpdateKptfileWithoutOrigin(localPath, updatedPath string, updateUpstream bo
 		if !goerrors.Is(err, os.ErrNotExist) {
 			return errors.E(op, types.UniquePath(updatedPath), err)
 		}
-		updatedKf = &kptfilev1.KptFile{}
+		updatedKf = &kptfilev1alpha2.KptFile{}
 	}
 
-	err = merge(localKf, updatedKf, &kptfilev1.KptFile{})
+	err = merge(localKf, updatedKf, &kptfilev1alpha2.KptFile{})
 	if err != nil {
 		return err
 	}
@@ -171,7 +171,7 @@ func UpdateKptfile(localPath, updatedPath, originPath string, updateUpstream boo
 		if !goerrors.Is(err, os.ErrNotExist) {
 			return errors.E(op, types.UniquePath(localPath), err)
 		}
-		localKf = &kptfilev1.KptFile{}
+		localKf = &kptfilev1alpha2.KptFile{}
 	}
 
 	updatedKf, err := pkg.ReadKptfile(updatedPath)
@@ -179,7 +179,7 @@ func UpdateKptfile(localPath, updatedPath, originPath string, updateUpstream boo
 		if !goerrors.Is(err, os.ErrNotExist) {
 			return errors.E(op, types.UniquePath(localPath), err)
 		}
-		updatedKf = &kptfilev1.KptFile{}
+		updatedKf = &kptfilev1alpha2.KptFile{}
 	}
 
 	originKf, err := pkg.ReadKptfile(originPath)
@@ -187,7 +187,7 @@ func UpdateKptfile(localPath, updatedPath, originPath string, updateUpstream boo
 		if !goerrors.Is(err, os.ErrNotExist) {
 			return errors.E(op, types.UniquePath(localPath), err)
 		}
-		originKf = &kptfilev1.KptFile{}
+		originKf = &kptfilev1alpha2.KptFile{}
 	}
 
 	err = merge(localKf, updatedKf, originKf)
@@ -219,9 +219,9 @@ func UpdateUpstreamLockFromGit(path string, spec *git.RepoSpec) error {
 	}
 
 	// populate the cloneFrom values so we know where the package came from
-	kpgfile.UpstreamLock = &kptfilev1.UpstreamLock{
-		Type: kptfilev1.GitOrigin,
-		Git: &kptfilev1.GitLock{
+	kpgfile.UpstreamLock = &kptfilev1alpha2.UpstreamLock{
+		Type: kptfilev1alpha2.GitOrigin,
+		Git: &kptfilev1alpha2.GitLock{
 			Repo:      spec.OrgRepo,
 			Directory: spec.Path,
 			Ref:       spec.Ref,
@@ -235,7 +235,7 @@ func UpdateUpstreamLockFromGit(path string, spec *git.RepoSpec) error {
 	return nil
 }
 
-func merge(localKf, updatedKf, originalKf *kptfilev1.KptFile) error {
+func merge(localKf, updatedKf, originalKf *kptfilev1alpha2.KptFile) error {
 	localBytes, err := yaml.Marshal(localKf)
 	if err != nil {
 		return err
@@ -256,7 +256,7 @@ func merge(localKf, updatedKf, originalKf *kptfilev1.KptFile) error {
 		return err
 	}
 
-	var mergedKf kptfilev1.KptFile
+	var mergedKf kptfilev1alpha2.KptFile
 	err = yaml.Unmarshal([]byte(mergedBytes), &mergedKf)
 	if err != nil {
 		return err
@@ -273,7 +273,7 @@ func merge(localKf, updatedKf, originalKf *kptfilev1.KptFile) error {
 	return nil
 }
 
-func updateUpstreamAndUpstreamLock(localKf, updatedKf *kptfilev1.KptFile) {
+func updateUpstreamAndUpstreamLock(localKf, updatedKf *kptfilev1alpha2.KptFile) {
 	if updatedKf.Upstream != nil {
 		localKf.Upstream = updatedKf.Upstream
 	}
diff --git a/pkg/live/load.go b/pkg/live/load.go
index 20b3a1dc..386aab53 100644
--- a/pkg/live/load.go
+++ b/pkg/live/load.go
@@ -23,7 +23,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/errors"
 	"github.com/GoogleContainerTools/kpt/internal/pkg"
 	"github.com/GoogleContainerTools/kpt/internal/util/strings"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 	"k8s.io/kubectl/pkg/cmd/util"
 	"sigs.k8s.io/cli-utils/pkg/common"
@@ -58,7 +58,7 @@ func (e *MultipleInventoryInfoError) Error() string {
 // for inventory information inside Kptfile resources.
 // It returns the resources in unstructured format and the inventory information.
 // If no inventory information is found, that is not considered an error here.
-func Load(f util.Factory, path string, stdIn io.Reader) ([]*unstructured.Unstructured, kptfilev1.Inventory, error) {
+func Load(f util.Factory, path string, stdIn io.Reader) ([]*unstructured.Unstructured, kptfilev1alpha2.Inventory, error) {
 	if path == "-" {
 		return loadFromStream(f, stdIn)
 	}
@@ -69,18 +69,18 @@ func Load(f util.Factory, path string, stdIn io.Reader) ([]*unstructured.Unstruc
 // filtered resources and any inventory information found in Kptfile resources.
 // If there is more than one Kptfile in the stream with inventory information, that
 // is considered an error.
-func loadFromStream(f util.Factory, r io.Reader) ([]*unstructured.Unstructured, kptfilev1.Inventory, error) {
+func loadFromStream(f util.Factory, r io.Reader) ([]*unstructured.Unstructured, kptfilev1alpha2.Inventory, error) {
 	var stdInBuf bytes.Buffer
 	tee := io.TeeReader(r, &stdInBuf)
 
 	invInfo, err := readInvInfoFromStream(tee)
 	if err != nil {
-		return nil, kptfilev1.Inventory{}, err
+		return nil, kptfilev1alpha2.Inventory{}, err
 	}
 
 	ro, err := toReaderOptions(f)
 	if err != nil {
-		return nil, kptfilev1.Inventory{}, err
+		return nil, kptfilev1alpha2.Inventory{}, err
 	}
 
 	objs, err := (&ResourceGroupStreamManifestReader{
@@ -89,12 +89,12 @@ func loadFromStream(f util.Factory, r io.Reader) ([]*unstructured.Unstructured,
 		ReaderOptions: ro,
 	}).Read()
 	if err != nil {
-		return nil, kptfilev1.Inventory{}, err
+		return nil, kptfilev1alpha2.Inventory{}, err
 	}
 	return objs, invInfo, nil
 }
 
-func readInvInfoFromStream(in io.Reader) (kptfilev1.Inventory, error) {
+func readInvInfoFromStream(in io.Reader) (kptfilev1alpha2.Inventory, error) {
 	invFilter := &InventoryFilter{}
 	if err := (&kio.Pipeline{
 		Inputs: []kio.Reader{
@@ -106,32 +106,32 @@ func readInvInfoFromStream(in io.Reader) (kptfilev1.Inventory, error) {
 			kio.FilterAll(invFilter),
 		},
 	}).Execute(); err != nil {
-		return kptfilev1.Inventory{}, err
+		return kptfilev1alpha2.Inventory{}, err
 	}
 
 	if len(invFilter.Inventories) > 1 {
-		return kptfilev1.Inventory{}, &MultipleInventoryInfoError{}
+		return kptfilev1alpha2.Inventory{}, &MultipleInventoryInfoError{}
 	}
 
 	if len(invFilter.Inventories) == 1 {
 		return *invFilter.Inventories[0], nil
 	}
-	return kptfilev1.Inventory{}, nil
+	return kptfilev1alpha2.Inventory{}, nil
 }
 
 // loadFromdisk reads resources from the provided directory and any subfolder.
 // It returns the filtered resources and any inventory information found in
 // Kptfile resources.
 // Only the Kptfile in the root directory will be checked for inventory information.
-func loadFromDisk(f util.Factory, path string) ([]*unstructured.Unstructured, kptfilev1.Inventory, error) {
+func loadFromDisk(f util.Factory, path string) ([]*unstructured.Unstructured, kptfilev1alpha2.Inventory, error) {
 	invInfo, err := readInvInfoFromDisk(path)
 	if err != nil {
-		return nil, kptfilev1.Inventory{}, err
+		return nil, kptfilev1alpha2.Inventory{}, err
 	}
 
 	ro, err := toReaderOptions(f)
 	if err != nil {
-		return nil, kptfilev1.Inventory{}, err
+		return nil, kptfilev1alpha2.Inventory{}, err
 	}
 
 	objs, err := (&ResourceGroupPathManifestReader{
@@ -139,28 +139,28 @@ func loadFromDisk(f util.Factory, path string) ([]*unstructured.Unstructured, kp
 		ReaderOptions: ro,
 	}).Read()
 	if err != nil {
-		return nil, kptfilev1.Inventory{}, err
+		return nil, kptfilev1alpha2.Inventory{}, err
 	}
 
 	return objs, invInfo, nil
 }
 
-func readInvInfoFromDisk(path string) (kptfilev1.Inventory, error) {
+func readInvInfoFromDisk(path string) (kptfilev1alpha2.Inventory, error) {
 	p, err := pkg.New(path)
 	if err != nil {
-		return kptfilev1.Inventory{}, err
+		return kptfilev1alpha2.Inventory{}, err
 	}
 
 	kf, err := p.Kptfile()
 	if err != nil && errors.Is(err, os.ErrNotExist) {
-		return kptfilev1.Inventory{}, nil
+		return kptfilev1alpha2.Inventory{}, nil
 	}
 	if err != nil {
-		return kptfilev1.Inventory{}, err
+		return kptfilev1alpha2.Inventory{}, err
 	}
 
 	if kf.Inventory == nil {
-		return kptfilev1.Inventory{}, nil
+		return kptfilev1alpha2.Inventory{}, nil
 	}
 
 	return *kf.Inventory, nil
@@ -169,12 +169,12 @@ func readInvInfoFromDisk(path string) (kptfilev1.Inventory, error) {
 // InventoryFilter is an implementation of the yaml.Filter interface
 // that extracts inventory information from Kptfile resources.
 type InventoryFilter struct {
-	Inventories []*kptfilev1.Inventory
+	Inventories []*kptfilev1alpha2.Inventory
 }
 
 func (i *InventoryFilter) Filter(object *yaml.RNode) (*yaml.RNode, error) {
-	if object.GetApiVersion() != kptfilev1.KptFileAPIVersion ||
-		object.GetKind() != kptfilev1.KptFileName {
+	if object.GetApiVersion() != kptfilev1alpha2.KptFileAPIVersion ||
+		object.GetKind() != kptfilev1alpha2.KptFileName {
 		return object, nil
 	}
 
@@ -212,7 +212,7 @@ func toReaderOptions(f util.Factory) (manifestreader.ReaderOptions, error) {
 
 // ToInventoryInfo takes the information in the provided inventory object and
 // return an InventoryResourceGroup implementation of the InventoryInfo interface.
-func ToInventoryInfo(inventory kptfilev1.Inventory) (inventory.InventoryInfo, error) {
+func ToInventoryInfo(inventory kptfilev1alpha2.Inventory) (inventory.InventoryInfo, error) {
 	if err := validateInventory(inventory); err != nil {
 		return nil, err
 	}
@@ -220,7 +220,7 @@ func ToInventoryInfo(inventory kptfilev1.Inventory) (inventory.InventoryInfo, er
 	return WrapInventoryInfoObj(invObj), nil
 }
 
-func validateInventory(inventory kptfilev1.Inventory) error {
+func validateInventory(inventory kptfilev1alpha2.Inventory) error {
 	var violations errors.Violations
 	if inventory.Name == "" {
 		violations = append(violations, errors.Violation{
@@ -256,7 +256,7 @@ func validateInventory(inventory kptfilev1.Inventory) error {
 	return nil
 }
 
-func generateInventoryObj(inv kptfilev1.Inventory) *unstructured.Unstructured {
+func generateInventoryObj(inv kptfilev1alpha2.Inventory) *unstructured.Unstructured {
 	// Create and return ResourceGroup custom resource as inventory object.
 	groupVersion := fmt.Sprintf("%s/%s", ResourceGroupGVK.Group, ResourceGroupGVK.Version)
 	var inventoryObj = &unstructured.Unstructured{
diff --git a/pkg/live/rgstream.go b/pkg/live/rgstream.go
index b62a77a0..5057653d 100644
--- a/pkg/live/rgstream.go
+++ b/pkg/live/rgstream.go
@@ -7,7 +7,7 @@ import (
 	"bytes"
 	"io"
 
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 	"k8s.io/apimachinery/pkg/runtime/schema"
 	"sigs.k8s.io/cli-utils/pkg/manifestreader"
@@ -20,8 +20,8 @@ import (
 var (
 	excludedGKs = []schema.GroupKind{
 		{
-			Group: kptfilev1.KptFileGroup,
-			Kind:  kptfilev1.KptFileKind,
+			Group: kptfilev1alpha2.KptFileGroup,
+			Kind:  kptfilev1alpha2.KptFileKind,
 		},
 	}
 )
@@ -80,14 +80,14 @@ func isExcluded(n *yaml.RNode) bool {
 	return false
 }
 
-var kptFileTemplate = kptfilev1.KptFile{ResourceMeta: kptfilev1.TypeMeta}
+var kptFileTemplate = kptfilev1alpha2.KptFile{ResourceMeta: kptfilev1alpha2.TypeMeta}
 
 // isKptfile returns true if the passed resource config is a Kptfile; false otherwise
 func isKptfile(resource []byte) bool {
 	d := yaml.NewDecoder(bytes.NewReader(resource))
 	d.KnownFields(true)
 	if err := d.Decode(&kptFileTemplate); err == nil {
-		return kptFileTemplate.ResourceMeta.TypeMeta == kptfilev1.TypeMeta.TypeMeta
+		return kptFileTemplate.ResourceMeta.TypeMeta == kptfilev1alpha2.TypeMeta.TypeMeta
 	}
 	return false
 }
diff --git a/site/book/03-packages/01-getting-a-package.md b/site/book/03-packages/01-getting-a-package.md
index 3de7426f..5df85e33 100644
--- a/site/book/03-packages/01-getting-a-package.md
+++ b/site/book/03-packages/01-getting-a-package.md
@@ -17,7 +17,7 @@ look at the content of the `Kptfile` on your local filesystem:
 
 ```yaml
 # wordpress/Kptfile
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: wordpress
@@ -63,7 +63,7 @@ Now, let's look at the `Kptfile` for the `mysql` subpackage:
 
 ```yaml
 # wordpress/mysql/Kptfile
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: mysql
diff --git a/site/book/03-packages/06-creating-a-package.md b/site/book/03-packages/06-creating-a-package.md
index 10e275f0..2ca62bea 100644
--- a/site/book/03-packages/06-creating-a-package.md
+++ b/site/book/03-packages/06-creating-a-package.md
@@ -20,7 +20,7 @@ The `info` section of the `Kptfile` contains some optional package metadata you
 may want to set. These fields are not consumed by any functionality in kpt:
 
 ```yaml
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: awesomeapp
diff --git a/site/book/04-using-functions/01-declarative-function-execution.md b/site/book/04-using-functions/01-declarative-function-execution.md
index 8d1338a8..321da0ef 100644
--- a/site/book/04-using-functions/01-declarative-function-execution.md
+++ b/site/book/04-using-functions/01-declarative-function-execution.md
@@ -18,7 +18,7 @@ pipeline:
 
 ```yaml
 # wordpress/Kptfile (Excerpt)
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: wordpress
@@ -49,7 +49,7 @@ The `mysql` subpackage declares only a mutator function:
 
 ```yaml
 # wordpress/mysql/Kptfile
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: mysql
@@ -130,7 +130,7 @@ For example:
 
 ```yaml
 # wordpress/mysql/Kptfile
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: mysql
@@ -160,7 +160,7 @@ The following is equivalent to what we showed before:
 
 ```yaml
 # wordpress/mysql/Kptfile
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: mysql
diff --git a/site/book/04-using-functions/02-imperative-function-execution.md b/site/book/04-using-functions/02-imperative-function-execution.md
index 30c47053..f0e87a20 100644
--- a/site/book/04-using-functions/02-imperative-function-execution.md
+++ b/site/book/04-using-functions/02-imperative-function-execution.md
@@ -17,7 +17,7 @@ For comparison, this has the same effect as the following declaration:
 
 ```yaml
 # wordpress/Kptfile (Excerpt)
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: wordpress
diff --git a/site/book/04-using-functions/03-function-results.md b/site/book/04-using-functions/03-function-results.md
index a2d098c0..4f77883e 100644
--- a/site/book/04-using-functions/03-function-results.md
+++ b/site/book/04-using-functions/03-function-results.md
@@ -30,7 +30,7 @@ The results are provided as resource of kind `FunctionResultList`:
 
 ```yaml
 # /tmp/results.yaml
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
@@ -69,7 +69,7 @@ The results resource will now contain failure details:
 
 ```yaml
 # /tmp/results.yaml
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/site/installation/migration.md b/site/installation/migration.md
index a7078d49..c29619cc 100644
--- a/site/installation/migration.md
+++ b/site/installation/migration.md
@@ -98,12 +98,12 @@ directory by default.
 ### Kptfile schema changes
 
 The existing [v1alpha1 Kptfile] format/schema is not compatible with kpt `v1.0`.
-Here is the schema for [v1 Kptfile] which is compatible with kpt `v1.0`.
+Here is the schema for [v1alpha2 Kptfile] which is compatible with kpt `v1.0`.
 
 1. The `packageMetaData` section in `v1alpha1` Kptfile is transformed to `info`
-   section in `v1` Kptfile.
+   section in `v1alpha2` Kptfile.
 2. `upstream` section, in the `v1alpha1` Kptfile is split into `upstream` and
-   `upstreamLock` sections in `v1` Kptfile. `upstream` section can be
+   `upstreamLock` sections in `v1alpha2` Kptfile. `upstream` section can be
    modified by users to declare the desired version of the package,
    `upstreamLock` is the resolved package state and should not be modified by
    users.
@@ -114,7 +114,7 @@ Here is the schema for [v1 Kptfile] which is compatible with kpt `v1.0`.
 5. `functions` section in `v1alpha1` Kptfile holds definitions for Starlark
    functions only. This section is deprecated and all the functions can be
    declared in the `pipeline` section including [Starlark functions].
-6. `inventory-object` is moved to `inventory` section in `v1` Kptfile.
+6. `inventory-object` is moved to `inventory` section in `v1alpha2` Kptfile.
    [Details below](#live-group-changes).
 
 ### `pkg`
@@ -219,7 +219,7 @@ $ kpt fn eval PKG_PATH --image gcr.io/kpt-fn/fix:unstable --include-meta-resourc
 1. Best effort is made by the function to transform the `packageMetaData`
    section to the `info` section.
 2. `upstream` section, in the `v1alpha1` Kptfile is converted to `upstream` and
-   `upstreamLock` sections in `v1` version of Kptfile.
+   `upstreamLock` sections in `v1alpha2` version of Kptfile.
 3. `dependencies` section is removed from Kptfile.
 4. Starlark functions section is removed from Kptfile.
 5. `Setters` and `substitutions` are converted to new and simple setter
@@ -239,7 +239,7 @@ changes to the resources in the live cluster.
 1. All the functions are treated as `mutators` by the `gcr.io/kpt-fn/fix`
    function and are added to the `mutators` section in the pipeline. Users must
    manually go through the functions and move the validator functions to the
-   `validators` section in the pipeline section of `v1` Kptfile.
+   `validators` section in the pipeline section of `v1alpha2` Kptfile.
    1. The order of functions also must be re-arranged manually by users if
       needed.
    2. Also, note that the [function config] is used to configure the function
@@ -301,7 +301,7 @@ $ kpt fn render
   of the fetched and customized package.
 
 Here is an [example kpt package], migrated from `v1alpha1` version(compatible with
-kpt `v0.39`) to `v1` version(compatible with kpt `v1.0`).
+kpt `v0.39`) to `v1alpha2` version(compatible with kpt `v1.0`).
 
 ## Timeline
 
@@ -320,7 +320,7 @@ kpt `v0.39`) to `v1` version(compatible with kpt `v1.0`).
 
 [v0.39 commands]: https://googlecontainertools.github.io/kpt/reference/
 [v1.0 commands]: https://kpt.dev/reference/cli/
-[v1 kptfile]: https://github.com/GoogleContainerTools/kpt/blob/main/pkg/api/kptfile/v1/types.go
+[v1alpha2 kptfile]: https://github.com/GoogleContainerTools/kpt/blob/main/pkg/api/kptfile/v1alpha2/types.go
 [starlark functions]: https://catalog.kpt.dev/starlark/v0.1/
 [starlark function]: https://catalog.kpt.dev/starlark/v0.1/
 [apply-setters]: https://catalog.kpt.dev/apply-setters/v0.1/
diff --git a/site/reference/schema/function-result-list/README.md b/site/reference/schema/function-result-list/README.md
index 8df268e0..d9c2a8c9 100644
--- a/site/reference/schema/function-result-list/README.md
+++ b/site/reference/schema/function-result-list/README.md
@@ -1,4 +1,4 @@
 # FunctionResultList
 
 See
-[definition here](https://github.com/GoogleContainerTools/kpt/blob/next/pkg/api/fnresult/v1/types.go#L50)
+[definition here](https://github.com/GoogleContainerTools/kpt/blob/next/pkg/api/fnresult/v1alpha2/types.go#L50)
diff --git a/site/reference/schema/kptfile/README.md b/site/reference/schema/kptfile/README.md
index 869e8de2..23285e37 100644
--- a/site/reference/schema/kptfile/README.md
+++ b/site/reference/schema/kptfile/README.md
@@ -1,4 +1,4 @@
 # Kptfile
 
 See
-[definition here](https://github.com/googlecontainertools/kpt/blob/next/pkg/api/kptfile/v1/types.go#L41)
+[definition here](https://github.com/googlecontainertools/kpt/blob/next/pkg/api/kptfile/v1alpha2/types.go#L41)
diff --git a/thirdparty/cmdconfig/commands/cmdcat/cmdcat.go b/thirdparty/cmdconfig/commands/cmdcat/cmdcat.go
index fd50ed6f..d3f724a7 100644
--- a/thirdparty/cmdconfig/commands/cmdcat/cmdcat.go
+++ b/thirdparty/cmdconfig/commands/cmdcat/cmdcat.go
@@ -10,7 +10,7 @@ import (
 	"strings"
 
 	"github.com/GoogleContainerTools/kpt/internal/docs/generated/pkgdocs"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/thirdparty/cmdconfig/commands/runner"
 	"github.com/spf13/cobra"
 	"sigs.k8s.io/kustomize/kyaml/kio"
@@ -86,7 +86,7 @@ func (r *CatRunner) runE(c *cobra.Command, args []string) error {
 }
 
 func (r *CatRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
-	input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: kptfilev1.KptFileName}
+	input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: kptfilev1alpha2.KptFileName}
 	out := &bytes.Buffer{}
 	err := kio.Pipeline{
 		Inputs:  []kio.Reader{input},
diff --git a/thirdparty/cmdconfig/commands/cmdsource/cmdsource.go b/thirdparty/cmdconfig/commands/cmdsource/cmdsource.go
index 59ba7f12..b0ca6e53 100644
--- a/thirdparty/cmdconfig/commands/cmdsource/cmdsource.go
+++ b/thirdparty/cmdconfig/commands/cmdsource/cmdsource.go
@@ -13,7 +13,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/printer"
 	"github.com/GoogleContainerTools/kpt/internal/types"
 	"github.com/GoogleContainerTools/kpt/internal/util/cmdutil"
-	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/thirdparty/cmdconfig/commands/runner"
 	"github.com/spf13/cobra"
 	"sigs.k8s.io/kustomize/kyaml/kio"
diff --git a/thirdparty/cmdconfig/commands/cmdtree/cmdtree.go b/thirdparty/cmdconfig/commands/cmdtree/cmdtree.go
index a962082a..83f9b750 100644
--- a/thirdparty/cmdconfig/commands/cmdtree/cmdtree.go
+++ b/thirdparty/cmdconfig/commands/cmdtree/cmdtree.go
@@ -9,7 +9,7 @@ import (
 
 	"github.com/GoogleContainerTools/kpt/internal/docs/generated/pkgdocs"
 	"github.com/GoogleContainerTools/kpt/internal/printer"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/thirdparty/cmdconfig/commands/runner"
 	"github.com/spf13/cobra"
 	"sigs.k8s.io/kustomize/kyaml/kio"
@@ -66,5 +66,5 @@ func (r *TreeRunner) runE(c *cobra.Command, args []string) error {
 }
 
 func (r *TreeRunner) getMatchFilesGlob() []string {
-	return append([]string{kptfilev1.KptFileName}, kio.DefaultMatch...)
+	return append([]string{kptfilev1alpha2.KptFileName}, kio.DefaultMatch...)
 }
diff --git a/thirdparty/cmdconfig/commands/cmdtree/tree.go b/thirdparty/cmdconfig/commands/cmdtree/tree.go
index 282ba1d7..0450aa01 100644
--- a/thirdparty/cmdconfig/commands/cmdtree/tree.go
+++ b/thirdparty/cmdconfig/commands/cmdtree/tree.go
@@ -11,7 +11,7 @@ import (
 	"sort"
 	"strings"
 
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/xlab/treeprint"
 	"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
@@ -94,7 +94,7 @@ func (p TreeWriter) packageStructure(nodes []*yaml.RNode) error {
 		}
 		p.Root = d
 	}
-	_, err := os.Stat(filepath.Join(p.Root, kptfilev1.KptFileName))
+	_, err := os.Stat(filepath.Join(p.Root, kptfilev1alpha2.KptFileName))
 	if !os.IsNotExist(err) {
 		// if Kptfile exists in the root directory, it is a kpt package
 		// print only package name and not entire path
@@ -113,7 +113,7 @@ func (p TreeWriter) packageStructure(nodes []*yaml.RNode) error {
 // and returns the branch name
 func branchName(root, dirRelPath string) string {
 	name := filepath.Base(dirRelPath)
-	_, err := os.Stat(filepath.Join(root, dirRelPath, kptfilev1.KptFileName))
+	_, err := os.Stat(filepath.Join(root, dirRelPath, kptfilev1alpha2.KptFileName))
 	if !os.IsNotExist(err) {
 		// add Package prefix indicating that it is a separate package as it has
 		// Kptfile
diff --git a/thirdparty/cmdconfig/commands/runner/runner.go b/thirdparty/cmdconfig/commands/runner/runner.go
index 7a813a32..981d9e53 100644
--- a/thirdparty/cmdconfig/commands/runner/runner.go
+++ b/thirdparty/cmdconfig/commands/runner/runner.go
@@ -11,7 +11,7 @@ import (
 	"strings"
 
 	"github.com/GoogleContainerTools/kpt/internal/printer"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/go-errors/errors"
 	"github.com/spf13/cobra"
 	"sigs.k8s.io/kustomize/kyaml/pathutil"
@@ -37,7 +37,7 @@ type ExecuteCmdOnPkgs struct {
 // ExecuteCmdOnPkgs takes the function definition for a command to be executed on single package, applies that definition
 // recursively on all the subpackages present in rootPkgPath if recurseSubPackages is true, else applies the command on rootPkgPath only
 func (e ExecuteCmdOnPkgs) Execute() error {
-	pkgsPaths, err := pathutil.DirsWithFile(e.RootPkgPath, kptfilev1.KptFileName, e.RecurseSubPackages)
+	pkgsPaths, err := pathutil.DirsWithFile(e.RootPkgPath, kptfilev1alpha2.KptFileName, e.RecurseSubPackages)
 	if err != nil {
 		return err
 	}
@@ -46,7 +46,7 @@ func (e ExecuteCmdOnPkgs) Execute() error {
 		// at this point, there are no openAPI files in the rootPkgPath
 		if e.NeedOpenAPI {
 			// few executions need openAPI file to be present(ex: setters commands), if true throw an error
-			return errors.Errorf("unable to find %q in package %q", kptfilev1.KptFileName, e.RootPkgPath)
+			return errors.Errorf("unable to find %q in package %q", kptfilev1alpha2.KptFileName, e.RootPkgPath)
 		}
 
 		// add root path for commands which doesn't need openAPI(ex: annotate, fmt)
diff --git a/thirdparty/kyaml/runfn/runfn.go b/thirdparty/kyaml/runfn/runfn.go
index 828183c6..f289ce3d 100644
--- a/thirdparty/kyaml/runfn/runfn.go
+++ b/thirdparty/kyaml/runfn/runfn.go
@@ -27,8 +27,8 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/pkg"
 	"github.com/GoogleContainerTools/kpt/internal/types"
 	"github.com/GoogleContainerTools/kpt/internal/util/printerutil"
-	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
-	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1alpha2"
+	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 )
 
 // RunFns runs the set of configuration functions in a local directory against


Test patch:
diff --git a/e2e/live/testdata/Kptfile b/e2e/live/testdata/Kptfile
index 09651424..219f1a41 100644
--- a/e2e/live/testdata/Kptfile
+++ b/e2e/live/testdata/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/continue-on-error/Kptfile b/e2e/live/testdata/continue-on-error/Kptfile
index 09651424..219f1a41 100644
--- a/e2e/live/testdata/continue-on-error/Kptfile
+++ b/e2e/live/testdata/continue-on-error/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/migrate-case-1a/Kptfile b/e2e/live/testdata/migrate-case-1a/Kptfile
index 09651424..219f1a41 100644
--- a/e2e/live/testdata/migrate-case-1a/Kptfile
+++ b/e2e/live/testdata/migrate-case-1a/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/migrate-case-1b/Kptfile b/e2e/live/testdata/migrate-case-1b/Kptfile
index 09651424..219f1a41 100644
--- a/e2e/live/testdata/migrate-case-1b/Kptfile
+++ b/e2e/live/testdata/migrate-case-1b/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/migrate-error/Kptfile b/e2e/live/testdata/migrate-error/Kptfile
index 09651424..219f1a41 100644
--- a/e2e/live/testdata/migrate-error/Kptfile
+++ b/e2e/live/testdata/migrate-error/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/rbac-error-step-2/Kptfile b/e2e/live/testdata/rbac-error-step-2/Kptfile
index a189ddea..b9e87b55 100644
--- a/e2e/live/testdata/rbac-error-step-2/Kptfile
+++ b/e2e/live/testdata/rbac-error-step-2/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/rg-test-case-1a/Kptfile b/e2e/live/testdata/rg-test-case-1a/Kptfile
index 09651424..219f1a41 100644
--- a/e2e/live/testdata/rg-test-case-1a/Kptfile
+++ b/e2e/live/testdata/rg-test-case-1a/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/rg-test-case-1b/Kptfile b/e2e/live/testdata/rg-test-case-1b/Kptfile
index 09651424..219f1a41 100644
--- a/e2e/live/testdata/rg-test-case-1b/Kptfile
+++ b/e2e/live/testdata/rg-test-case-1b/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/test-case-1a/Kptfile b/e2e/live/testdata/test-case-1a/Kptfile
index 09651424..219f1a41 100644
--- a/e2e/live/testdata/test-case-1a/Kptfile
+++ b/e2e/live/testdata/test-case-1a/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/test-case-1b/Kptfile b/e2e/live/testdata/test-case-1b/Kptfile
index 09651424..219f1a41 100644
--- a/e2e/live/testdata/test-case-1b/Kptfile
+++ b/e2e/live/testdata/test-case-1b/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/testdata/fn-eval/consistent-formatting/.expected/diff.patch b/e2e/testdata/fn-eval/consistent-formatting/.expected/diff.patch
index b44f8e3d..82882346 100644
--- a/e2e/testdata/fn-eval/consistent-formatting/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/consistent-formatting/.expected/diff.patch
@@ -1,8 +1,8 @@
 diff --git a/Kptfile b/Kptfile
-index 1f982e2..d815cdb 100644
+index fa1bd2d..dd352a8 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,16 +2,7 @@ apiVersion: kpt.dev/v1
+@@ -2,16 +2,7 @@ apiVersion: kpt.dev/v1alpha2
  kind: Kptfile
  metadata:
    name: nginx
diff --git a/e2e/testdata/fn-eval/consistent-formatting/Kptfile b/e2e/testdata/fn-eval/consistent-formatting/Kptfile
index 1f982e28..fa1bd2d0 100644
--- a/e2e/testdata/fn-eval/consistent-formatting/Kptfile
+++ b/e2e/testdata/fn-eval/consistent-formatting/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: nginx
diff --git a/e2e/testdata/fn-eval/exclude-fn-config-by-default/Kptfile b/e2e/testdata/fn-eval/exclude-fn-config-by-default/Kptfile
index f5bb2df7..39dec05b 100644
--- a/e2e/testdata/fn-eval/exclude-fn-config-by-default/Kptfile
+++ b/e2e/testdata/fn-eval/exclude-fn-config-by-default/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/exclude-kptfile-by-default/Kptfile b/e2e/testdata/fn-eval/exclude-kptfile-by-default/Kptfile
index d9e2f05c..883da19e 100644
--- a/e2e/testdata/fn-eval/exclude-kptfile-by-default/Kptfile
+++ b/e2e/testdata/fn-eval/exclude-kptfile-by-default/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/fn-config-file-in-pkg/.expected/diff.patch b/e2e/testdata/fn-eval/fn-config-file-in-pkg/.expected/diff.patch
index d7a19516..1e6774f0 100644
--- a/e2e/testdata/fn-eval/fn-config-file-in-pkg/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/fn-config-file-in-pkg/.expected/diff.patch
@@ -27,4 +27,4 @@ index 7a494c9..254b9cd 100644
    name: custom
 +  namespace: staging
  spec:
-   image: nginx:1.2.3
+   image: nginx:1.2.3
\ No newline at end of file
diff --git a/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default-out-of-place/.expected/diff.patch b/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default-out-of-place/.expected/diff.patch
index 08903691..3a602303 100644
--- a/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default-out-of-place/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default-out-of-place/.expected/diff.patch
@@ -1,10 +1,10 @@
 diff --git a/Kptfile b/Kptfile
 deleted file mode 100644
-index f5bb2df..0000000
+index 39dec05..0000000
 --- a/Kptfile
 +++ /dev/null
 @@ -1,8 +0,0 @@
--apiVersion: kpt.dev/v1
+-apiVersion: kpt.dev/v1alpha2
 -kind: Kptfile
 -metadata:
 -  name: app
diff --git a/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default-out-of-place/Kptfile b/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default-out-of-place/Kptfile
index f5bb2df7..39dec05b 100644
--- a/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default-out-of-place/Kptfile
+++ b/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default-out-of-place/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default/Kptfile b/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default/Kptfile
index f5bb2df7..39dec05b 100644
--- a/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default/Kptfile
+++ b/e2e/testdata/fn-eval/fn-source/exclude-meta-resources-by-default/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/fn-source/include-meta-resource-out-of-place/.expected/diff.patch b/e2e/testdata/fn-eval/fn-source/include-meta-resource-out-of-place/.expected/diff.patch
index 6286e742..9352e170 100644
--- a/e2e/testdata/fn-eval/fn-source/include-meta-resource-out-of-place/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/fn-source/include-meta-resource-out-of-place/.expected/diff.patch
@@ -1,8 +1,8 @@
 diff --git a/Kptfile b/Kptfile
-index f5bb2df..4fad916 100644
+index 39dec05..47f7bf4 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
  kind: Kptfile
  metadata:
    name: app
diff --git a/e2e/testdata/fn-eval/fn-source/include-meta-resource-out-of-place/Kptfile b/e2e/testdata/fn-eval/fn-source/include-meta-resource-out-of-place/Kptfile
index f5bb2df7..39dec05b 100644
--- a/e2e/testdata/fn-eval/fn-source/include-meta-resource-out-of-place/Kptfile
+++ b/e2e/testdata/fn-eval/fn-source/include-meta-resource-out-of-place/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/fn-source/include-meta-resources/.expected/diff.patch b/e2e/testdata/fn-eval/fn-source/include-meta-resources/.expected/diff.patch
index 6286e742..9352e170 100644
--- a/e2e/testdata/fn-eval/fn-source/include-meta-resources/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/fn-source/include-meta-resources/.expected/diff.patch
@@ -1,8 +1,8 @@
 diff --git a/Kptfile b/Kptfile
-index f5bb2df..4fad916 100644
+index 39dec05..47f7bf4 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
  kind: Kptfile
  metadata:
    name: app
diff --git a/e2e/testdata/fn-eval/fn-source/include-meta-resources/Kptfile b/e2e/testdata/fn-eval/fn-source/include-meta-resources/Kptfile
index f5bb2df7..39dec05b 100644
--- a/e2e/testdata/fn-eval/fn-source/include-meta-resources/Kptfile
+++ b/e2e/testdata/fn-eval/fn-source/include-meta-resources/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/fn-success-with-stderr/pkg/.expected/results.yaml b/e2e/testdata/fn-eval/fn-success-with-stderr/pkg/.expected/results.yaml
index 7afc0e42..dd344109 100644
--- a/e2e/testdata/fn-eval/fn-success-with-stderr/pkg/.expected/results.yaml
+++ b/e2e/testdata/fn-eval/fn-success-with-stderr/pkg/.expected/results.yaml
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-eval/include-meta-resources-v1alpha1/.expected/diff.patch b/e2e/testdata/fn-eval/include-meta-resources-v1alpha1/.expected/diff.patch
index edb6f5f9..f9c452d6 100644
--- a/e2e/testdata/fn-eval/include-meta-resources-v1alpha1/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/include-meta-resources-v1alpha1/.expected/diff.patch
@@ -39,4 +39,4 @@ index 7a494c9..254b9cd 100644
    name: custom
 +  namespace: staging
  spec:
-   image: nginx:1.2.3
+   image: nginx:1.2.3
\ No newline at end of file
diff --git a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.expected/config.yaml b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.expected/config.yaml
deleted file mode 100644
index 691d0b7f..00000000
--- a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.expected/config.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# 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.
-
-runCount: 2
-testType: eval
-image: gcr.io/kpt-fn/set-namespace:v0.1.3
-includeMetaResources: true
-args:
-  namespace: staging
diff --git a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.expected/diff.patch b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.expected/diff.patch
deleted file mode 100644
index 9352e170..00000000
--- a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.expected/diff.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff --git a/Kptfile b/Kptfile
-index 39dec05..47f7bf4 100644
---- a/Kptfile
-+++ b/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
- kind: Kptfile
- metadata:
-   name: app
-+  namespace: staging
- pipeline:
-   mutators:
-     - image: gcr.io/kpt-fn/set-labels:v0.1.4
-diff --git a/labelconfig.yaml b/labelconfig.yaml
-index 7ef9890..f3a8b49 100644
---- a/labelconfig.yaml
-+++ b/labelconfig.yaml
-@@ -15,5 +15,6 @@ apiVersion: v1
- kind: ConfigMap
- metadata:
-   name: label-config
-+  namespace: staging
- data:
-   tier: app
-diff --git a/resources.yaml b/resources.yaml
-index 7a494c9..254b9cd 100644
---- a/resources.yaml
-+++ b/resources.yaml
-@@ -15,6 +15,7 @@ apiVersion: apps/v1
- kind: Deployment
- metadata:
-   name: nginx-deployment
-+  namespace: staging
- spec:
-   replicas: 3
- ---
-@@ -22,5 +23,6 @@ apiVersion: custom.io/v1
- kind: Custom
- metadata:
-   name: custom
-+  namespace: staging
- spec:
-   image: nginx:1.2.3
diff --git a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.krmignore b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.krmignore
deleted file mode 100644
index 9d7a4007..00000000
--- a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.krmignore
+++ /dev/null
@@ -1,1 +0,0 @@
-.expected
diff --git a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/Kptfile b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/Kptfile
deleted file mode 100644
index 39dec05b..00000000
--- a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/Kptfile
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: kpt.dev/v1alpha2
-kind: Kptfile
-metadata:
-  name: app
-pipeline:
-  mutators:
-    - image: gcr.io/kpt-fn/set-labels:v0.1.4
-      configPath: labelconfig.yaml
diff --git a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/labelconfig.yaml b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/labelconfig.yaml
deleted file mode 100644
index 7ef98902..00000000
--- a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/labelconfig.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# 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.
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: label-config
-data:
-  tier: app
diff --git a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/resources.yaml b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/resources.yaml
deleted file mode 100644
index 7a494c9c..00000000
--- a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/resources.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# 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.
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: nginx-deployment
-spec:
-  replicas: 3
----
-apiVersion: custom.io/v1
-kind: Custom
-metadata:
-  name: custom
-spec:
-  image: nginx:1.2.3
diff --git a/e2e/testdata/fn-eval/include-meta-resources/.expected/diff.patch b/e2e/testdata/fn-eval/include-meta-resources/.expected/diff.patch
index 6286e742..9352e170 100644
--- a/e2e/testdata/fn-eval/include-meta-resources/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/include-meta-resources/.expected/diff.patch
@@ -1,8 +1,8 @@
 diff --git a/Kptfile b/Kptfile
-index f5bb2df..4fad916 100644
+index 39dec05..47f7bf4 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
  kind: Kptfile
  metadata:
    name: app
diff --git a/e2e/testdata/fn-eval/include-meta-resources/Kptfile b/e2e/testdata/fn-eval/include-meta-resources/Kptfile
index f5bb2df7..39dec05b 100644
--- a/e2e/testdata/fn-eval/include-meta-resources/Kptfile
+++ b/e2e/testdata/fn-eval/include-meta-resources/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/missing-fn-config/.expected/results.yaml b/e2e/testdata/fn-eval/missing-fn-config/.expected/results.yaml
index 5e68116e..7f356456 100644
--- a/e2e/testdata/fn-eval/missing-fn-config/.expected/results.yaml
+++ b/e2e/testdata/fn-eval/missing-fn-config/.expected/results.yaml
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-eval/out-of-place-dir/.expected/diff.patch b/e2e/testdata/fn-eval/out-of-place-dir/.expected/diff.patch
index 1ab5a71d..e27541d5 100644
--- a/e2e/testdata/fn-eval/out-of-place-dir/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/out-of-place-dir/.expected/diff.patch
@@ -31,4 +31,4 @@ index 0000000..254b9cd
 +  name: custom
 +  namespace: staging
 +spec:
-+  image: nginx:1.2.3
++  image: nginx:1.2.3
\ No newline at end of file
diff --git a/e2e/testdata/fn-eval/out-of-place-fnchain-unwrap/Kptfile b/e2e/testdata/fn-eval/out-of-place-fnchain-unwrap/Kptfile
index 7fc6888b..2d1b28a8 100644
--- a/e2e/testdata/fn-eval/out-of-place-fnchain-unwrap/Kptfile
+++ b/e2e/testdata/fn-eval/out-of-place-fnchain-unwrap/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/out-of-place-source-sink/.expected/diff.patch b/e2e/testdata/fn-eval/out-of-place-source-sink/.expected/diff.patch
index 1ab5a71d..e27541d5 100644
--- a/e2e/testdata/fn-eval/out-of-place-source-sink/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/out-of-place-source-sink/.expected/diff.patch
@@ -31,4 +31,4 @@ index 0000000..254b9cd
 +  name: custom
 +  namespace: staging
 +spec:
-+  image: nginx:1.2.3
++  image: nginx:1.2.3
\ No newline at end of file
diff --git a/e2e/testdata/fn-eval/structured-results-in-stdout/.expected/results.yaml b/e2e/testdata/fn-eval/structured-results-in-stdout/.expected/results.yaml
index f09a6815..11f0d9e4 100755
--- a/e2e/testdata/fn-eval/structured-results-in-stdout/.expected/results.yaml
+++ b/e2e/testdata/fn-eval/structured-results-in-stdout/.expected/results.yaml
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-eval/subpkg-exclude-fn-config-by-default/Kptfile b/e2e/testdata/fn-eval/subpkg-exclude-fn-config-by-default/Kptfile
index f5bb2df7..39dec05b 100644
--- a/e2e/testdata/fn-eval/subpkg-exclude-fn-config-by-default/Kptfile
+++ b/e2e/testdata/fn-eval/subpkg-exclude-fn-config-by-default/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/subpkg-exclude-fn-config-by-default/db/Kptfile b/e2e/testdata/fn-eval/subpkg-exclude-fn-config-by-default/db/Kptfile
index 6218d66d..268f4384 100644
--- a/e2e/testdata/fn-eval/subpkg-exclude-fn-config-by-default/db/Kptfile
+++ b/e2e/testdata/fn-eval/subpkg-exclude-fn-config-by-default/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-eval/subpkg-include-meta-resources/.expected/diff.patch b/e2e/testdata/fn-eval/subpkg-include-meta-resources/.expected/diff.patch
index 77b7d179..a2ed2d76 100644
--- a/e2e/testdata/fn-eval/subpkg-include-meta-resources/.expected/diff.patch
+++ b/e2e/testdata/fn-eval/subpkg-include-meta-resources/.expected/diff.patch
@@ -1,8 +1,8 @@
 diff --git a/Kptfile b/Kptfile
-index f5bb2df..4fad916 100644
+index 39dec05..47f7bf4 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
  kind: Kptfile
  metadata:
    name: app
@@ -11,10 +11,10 @@ index f5bb2df..4fad916 100644
    mutators:
      - image: gcr.io/kpt-fn/set-labels:v0.1.4
 diff --git a/db/Kptfile b/db/Kptfile
-index 6218d66..b776983 100644
+index 268f438..ab19d9f 100644
 --- a/db/Kptfile
 +++ b/db/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
  kind: Kptfile
  metadata:
    name: db
diff --git a/e2e/testdata/fn-eval/subpkg-include-meta-resources/Kptfile b/e2e/testdata/fn-eval/subpkg-include-meta-resources/Kptfile
index f5bb2df7..39dec05b 100644
--- a/e2e/testdata/fn-eval/subpkg-include-meta-resources/Kptfile
+++ b/e2e/testdata/fn-eval/subpkg-include-meta-resources/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-eval/subpkg-include-meta-resources/db/Kptfile b/e2e/testdata/fn-eval/subpkg-include-meta-resources/db/Kptfile
index 6218d66d..268f4384 100644
--- a/e2e/testdata/fn-eval/subpkg-include-meta-resources/db/Kptfile
+++ b/e2e/testdata/fn-eval/subpkg-include-meta-resources/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/all-resource-deletion/.expected/diff.patch b/e2e/testdata/fn-render/all-resource-deletion/.expected/diff.patch
index 4940b227..845feae6 100644
--- a/e2e/testdata/fn-render/all-resource-deletion/.expected/diff.patch
+++ b/e2e/testdata/fn-render/all-resource-deletion/.expected/diff.patch
@@ -52,4 +52,4 @@ index 6590f6c..0000000
 -metadata:
 -  name: nginx-deployment
 -spec:
--  replicas: 3
+-  replicas: 3
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/all-resource-deletion/Kptfile b/e2e/testdata/fn-render/all-resource-deletion/Kptfile
index 6a45343f..f06fbae6 100644
--- a/e2e/testdata/fn-render/all-resource-deletion/Kptfile
+++ b/e2e/testdata/fn-render/all-resource-deletion/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/basicpipeline-out-of-place/Kptfile b/e2e/testdata/fn-render/basicpipeline-out-of-place/Kptfile
index 8e842410..32bba40a 100644
--- a/e2e/testdata/fn-render/basicpipeline-out-of-place/Kptfile
+++ b/e2e/testdata/fn-render/basicpipeline-out-of-place/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha1/.expected/config.yaml b/e2e/testdata/fn-render/basicpipeline-v1alpha1/.expected/config.yaml
deleted file mode 100644
index 297b94a4..00000000
--- a/e2e/testdata/fn-render/basicpipeline-v1alpha1/.expected/config.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# 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.
-exitCode: 1
-stdErr: 'has an old version ("v1alpha1") of the Kptfile schema'
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha1/.krmignore b/e2e/testdata/fn-render/basicpipeline-v1alpha1/.krmignore
deleted file mode 100644
index 9d7a4007..00000000
--- a/e2e/testdata/fn-render/basicpipeline-v1alpha1/.krmignore
+++ /dev/null
@@ -1,1 +0,0 @@
-.expected
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha1/Kptfile b/e2e/testdata/fn-render/basicpipeline-v1alpha1/Kptfile
deleted file mode 100644
index 54ce0ace..00000000
--- a/e2e/testdata/fn-render/basicpipeline-v1alpha1/Kptfile
+++ /dev/null
@@ -1,101 +0,0 @@
-apiVersion: kpt.dev/v1alpha1
-kind: Kptfile
-metadata:
-  name: nginx
-dependencies:
-  - name: hello-world
-    updateStrategy: fast-forward
-    stdin:
-      filenamePattern: foo*
-      original: bar
-    autoSet: false
-    ensureNotExists: false
-    functions:
-      - image: gcr.io/kpt-fn/my-func:v0.1
-        config:
-          apiVersion: v1
-          kind: ConfigMap
-          metadata:
-            name: function-config
-          data:
-            param1: value1
-    git:
-      directory: /package-examples/helloworld-set
-      ref: master
-      repo: https://github.com/GoogleContainerTools/kpt
-functions:
-  autoRunStarlark: true
-  starlarkFunctions:
-    - name: foo-star
-      path: path/to/foo-star.yaml
-inventory:
-  name: inventory-00933591
-  namespace: some-space
-  labels:
-    foo: bar
-  annotations:
-    abc: def
-  inventoryID: 92c234b7e9267815b0c3e17c9e4d7139a16c104f-1620493522822890000
-openAPI:
-  definitions:
-    io.k8s.cli.setters.image:
-      x-k8s-cli:
-        setter:
-          name: image
-          value: nginx
-    io.k8s.cli.setters.list:
-      type: array
-      x-k8s-cli:
-        setter:
-          name: list
-          value: ""
-          listValues:
-            - dev
-            - stage
-    io.k8s.cli.setters.namespace:
-      type: string
-      maxLength: 10
-      x-k8s-cli:
-        setter:
-          name: namespace
-          value: some-space
-    io.k8s.cli.setters.tag:
-      x-k8s-cli:
-        setter:
-          name: tag
-          value: 1.14.1
-    io.k8s.cli.substitutions.fullimage:
-      x-k8s-cli:
-        substitution:
-          name: fullimage
-          pattern: ${image}:${tag}
-          values:
-            - marker: ${image}
-              ref: '#/definitions/io.k8s.cli.setters.image'
-            - marker: ${tag}
-              ref: '#/definitions/io.k8s.cli.setters.tag'
-    io.k8s.cli.substitutions.imageidentifier:
-      x-k8s-cli:
-        substitution:
-          name: imageidentifier
-          pattern: deployment-${fullimage}
-          values:
-            - marker: ${fullimage}
-              ref: '#/definitions/io.k8s.cli.substitutions.fullimage'
-packageMetadata:
-  email: foo@gmail.com
-  license: license text
-  man: nginx man text
-  shortDescription: describe this package
-  tags:
-    - tag1
-    - tag2
-  url: https://github.com/GoogleContainerTools/kpt
-  version: v0.1
-upstream:
-  type: git
-  git:
-    commit: 4d2aa98b45ddee4b5fa45fbca16f2ff887de9efb
-    directory: package-examples/nginx
-    ref: v0.2
-    repo: https://github.com/GoogleContainerTools/kpt
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha1/labelconfig.yaml b/e2e/testdata/fn-render/basicpipeline-v1alpha1/labelconfig.yaml
deleted file mode 100644
index 7ef98902..00000000
--- a/e2e/testdata/fn-render/basicpipeline-v1alpha1/labelconfig.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# 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.
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: label-config
-data:
-  tier: app
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha1/resources.yaml b/e2e/testdata/fn-render/basicpipeline-v1alpha1/resources.yaml
deleted file mode 100644
index 7a494c9c..00000000
--- a/e2e/testdata/fn-render/basicpipeline-v1alpha1/resources.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# 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.
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: nginx-deployment
-spec:
-  replicas: 3
----
-apiVersion: custom.io/v1
-kind: Custom
-metadata:
-  name: custom
-spec:
-  image: nginx:1.2.3
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha2/.expected/config.yaml b/e2e/testdata/fn-render/basicpipeline-v1alpha2/.expected/config.yaml
deleted file mode 100644
index 52b4a111..00000000
--- a/e2e/testdata/fn-render/basicpipeline-v1alpha2/.expected/config.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# 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.
-exitCode: 1
-stdErr: 'has an old version ("v1alpha2") of the Kptfile schema'
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha2/.krmignore b/e2e/testdata/fn-render/basicpipeline-v1alpha2/.krmignore
deleted file mode 100644
index 9d7a4007..00000000
--- a/e2e/testdata/fn-render/basicpipeline-v1alpha2/.krmignore
+++ /dev/null
@@ -1,1 +0,0 @@
-.expected
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha2/Kptfile b/e2e/testdata/fn-render/basicpipeline-v1alpha2/Kptfile
deleted file mode 100644
index 32bba40a..00000000
--- a/e2e/testdata/fn-render/basicpipeline-v1alpha2/Kptfile
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: kpt.dev/v1alpha2
-kind: Kptfile
-metadata:
-  name: app
-pipeline:
-  mutators:
-    - image: gcr.io/kpt-fn/set-namespace:v0.1.3
-      configMap:
-        namespace: staging
-    - image: gcr.io/kpt-fn/set-labels:v0.1.4
-      configMap:
-        tier: backend
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha2/resources.yaml b/e2e/testdata/fn-render/basicpipeline-v1alpha2/resources.yaml
deleted file mode 100644
index 7a494c9c..00000000
--- a/e2e/testdata/fn-render/basicpipeline-v1alpha2/resources.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# 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.
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: nginx-deployment
-spec:
-  replicas: 3
----
-apiVersion: custom.io/v1
-kind: Custom
-metadata:
-  name: custom
-spec:
-  image: nginx:1.2.3
diff --git a/e2e/testdata/fn-render/basicpipeline/Kptfile b/e2e/testdata/fn-render/basicpipeline/Kptfile
index 8e842410..32bba40a 100644
--- a/e2e/testdata/fn-render/basicpipeline/Kptfile
+++ b/e2e/testdata/fn-render/basicpipeline/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/empty-pipeline/Kptfile b/e2e/testdata/fn-render/empty-pipeline/Kptfile
index 6371d397..30dcdc95 100644
--- a/e2e/testdata/fn-render/empty-pipeline/Kptfile
+++ b/e2e/testdata/fn-render/empty-pipeline/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/fn-failure-output-no-truncate/Kptfile b/e2e/testdata/fn-render/fn-failure-output-no-truncate/Kptfile
index f439fed6..4bad1873 100644
--- a/e2e/testdata/fn-render/fn-failure-output-no-truncate/Kptfile
+++ b/e2e/testdata/fn-render/fn-failure-output-no-truncate/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/fn-failure/Kptfile b/e2e/testdata/fn-render/fn-failure/Kptfile
index 79cd86c1..2e675932 100644
--- a/e2e/testdata/fn-render/fn-failure/Kptfile
+++ b/e2e/testdata/fn-render/fn-failure/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/fn-success-with-stderr/.expected/results.yaml b/e2e/testdata/fn-render/fn-success-with-stderr/.expected/results.yaml
index 7afc0e42..dd344109 100644
--- a/e2e/testdata/fn-render/fn-success-with-stderr/.expected/results.yaml
+++ b/e2e/testdata/fn-render/fn-success-with-stderr/.expected/results.yaml
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-render/fn-success-with-stderr/Kptfile b/e2e/testdata/fn-render/fn-success-with-stderr/Kptfile
index 52ab42bb..3886601a 100644
--- a/e2e/testdata/fn-render/fn-success-with-stderr/Kptfile
+++ b/e2e/testdata/fn-render/fn-success-with-stderr/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/Kptfile b/e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/Kptfile
index b64764a7..b4675527 100644
--- a/e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/db/Kptfile b/e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/db/Kptfile
index 6218d66d..268f4384 100644
--- a/e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/db/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/Kptfile b/e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/Kptfile
index fd29bd12..e42d2c2f 100644
--- a/e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/db/Kptfile b/e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/db/Kptfile
index 79b7a5a3..60f507d0 100644
--- a/e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/db/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/fnconfig-missing-name/Kptfile b/e2e/testdata/fn-render/fnconfig-missing-name/Kptfile
index 2df71a94..c61850f6 100644
--- a/e2e/testdata/fn-render/fnconfig-missing-name/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig-missing-name/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/fnconfig-multiple-config-one-file/Kptfile b/e2e/testdata/fn-render/fnconfig-multiple-config-one-file/Kptfile
index 1aeaa2ca..c1b18744 100644
--- a/e2e/testdata/fn-render/fnconfig-multiple-config-one-file/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig-multiple-config-one-file/Kptfile
@@ -1,8 +1,8 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
 pipeline:
   mutators:
     - image: gcr.io/kpt-fn/set-labels:v0.1.4
-      configPath: labelconfig.yaml
+      configPath: labelconfig.yaml
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/fnconfig-not-relative/Kptfile b/e2e/testdata/fn-render/fnconfig-not-relative/Kptfile
index 4648a7c0..406de845 100644
--- a/e2e/testdata/fn-render/fnconfig-not-relative/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig-not-relative/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/fnconfig-outside-package/Kptfile b/e2e/testdata/fn-render/fnconfig-outside-package/Kptfile
index 7a03156f..3b638833 100644
--- a/e2e/testdata/fn-render/fnconfig-outside-package/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig-outside-package/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/fnconfig-pkgfn-refers-subdir/Kptfile b/e2e/testdata/fn-render/fnconfig-pkgfn-refers-subdir/Kptfile
index acf4d0ac..e3fb8f9c 100644
--- a/e2e/testdata/fn-render/fnconfig-pkgfn-refers-subdir/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig-pkgfn-refers-subdir/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/fnconfig/Kptfile b/e2e/testdata/fn-render/fnconfig/Kptfile
index ae8c2d2d..398d6101 100644
--- a/e2e/testdata/fn-render/fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/fnconfig/db/Kptfile b/e2e/testdata/fn-render/fnconfig/db/Kptfile
index 8c0fd517..530d4ad0 100644
--- a/e2e/testdata/fn-render/fnconfig/db/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/fnresult-fn-failure/.expected/results.yaml b/e2e/testdata/fn-render/fnresult-fn-failure/.expected/results.yaml
index 9fbcdc2b..46dfdadc 100755
--- a/e2e/testdata/fn-render/fnresult-fn-failure/.expected/results.yaml
+++ b/e2e/testdata/fn-render/fnresult-fn-failure/.expected/results.yaml
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-render/fnresult-fn-failure/Kptfile b/e2e/testdata/fn-render/fnresult-fn-failure/Kptfile
index f439fed6..4bad1873 100644
--- a/e2e/testdata/fn-render/fnresult-fn-failure/Kptfile
+++ b/e2e/testdata/fn-render/fnresult-fn-failure/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/fnresult-fn-success/.expected/results.yaml b/e2e/testdata/fn-render/fnresult-fn-success/.expected/results.yaml
index f09a6815..11f0d9e4 100755
--- a/e2e/testdata/fn-render/fnresult-fn-success/.expected/results.yaml
+++ b/e2e/testdata/fn-render/fnresult-fn-success/.expected/results.yaml
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-render/fnresult-fn-success/Kptfile b/e2e/testdata/fn-render/fnresult-fn-success/Kptfile
index e08489fe..4c98a1ae 100644
--- a/e2e/testdata/fn-render/fnresult-fn-success/Kptfile
+++ b/e2e/testdata/fn-render/fnresult-fn-success/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/format-on-success/Kptfile b/e2e/testdata/fn-render/format-on-success/Kptfile
index b64764a7..b4675527 100644
--- a/e2e/testdata/fn-render/format-on-success/Kptfile
+++ b/e2e/testdata/fn-render/format-on-success/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/format-on-success/db/Kptfile b/e2e/testdata/fn-render/format-on-success/db/Kptfile
index 51ef7cb1..d080ef0d 100644
--- a/e2e/testdata/fn-render/format-on-success/db/Kptfile
+++ b/e2e/testdata/fn-render/format-on-success/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/generator-absolute-path/.expected/diff.patch b/e2e/testdata/fn-render/generator-absolute-path/.expected/diff.patch
index 95ea29e1..18f40825 100644
--- a/e2e/testdata/fn-render/generator-absolute-path/.expected/diff.patch
+++ b/e2e/testdata/fn-render/generator-absolute-path/.expected/diff.patch
@@ -16,4 +16,4 @@ index 0000000..fa83ef1
 +        - name: httpbin
 +          image: kennethreitz/httpbin
 +          ports:
-+            - containerPort: 9876
++            - containerPort: 9876
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/generator-absolute-path/Kptfile b/e2e/testdata/fn-render/generator-absolute-path/Kptfile
index b65c9e30..9b361ff5 100644
--- a/e2e/testdata/fn-render/generator-absolute-path/Kptfile
+++ b/e2e/testdata/fn-render/generator-absolute-path/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/generator-subpkgs/.expected/diff.patch b/e2e/testdata/fn-render/generator-subpkgs/.expected/diff.patch
index bf9124bb..50c85a58 100644
--- a/e2e/testdata/fn-render/generator-subpkgs/.expected/diff.patch
+++ b/e2e/testdata/fn-render/generator-subpkgs/.expected/diff.patch
@@ -22,4 +22,4 @@ index 0000000..fd1e17d
 +  name: parent-map
 +  namespace: def
 +data:
-+  parent-key: parent-value
++  parent-key: parent-value
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/generator-subpkgs/Kptfile b/e2e/testdata/fn-render/generator-subpkgs/Kptfile
index ea18e518..9fa913c0 100644
--- a/e2e/testdata/fn-render/generator-subpkgs/Kptfile
+++ b/e2e/testdata/fn-render/generator-subpkgs/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-generator
diff --git a/e2e/testdata/fn-render/generator-subpkgs/db/Kptfile b/e2e/testdata/fn-render/generator-subpkgs/db/Kptfile
index 2d276947..020dc8ac 100644
--- a/e2e/testdata/fn-render/generator-subpkgs/db/Kptfile
+++ b/e2e/testdata/fn-render/generator-subpkgs/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/generator/Kptfile b/e2e/testdata/fn-render/generator/Kptfile
index 8632ba72..f72db760 100644
--- a/e2e/testdata/fn-render/generator/Kptfile
+++ b/e2e/testdata/fn-render/generator/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-generator
diff --git a/e2e/testdata/fn-render/generator/db/Kptfile b/e2e/testdata/fn-render/generator/db/Kptfile
index fef15bed..ada9824b 100644
--- a/e2e/testdata/fn-render/generator/db/Kptfile
+++ b/e2e/testdata/fn-render/generator/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/image-pull-policy-always/Kptfile b/e2e/testdata/fn-render/image-pull-policy-always/Kptfile
index 0d309935..fabd1f9e 100644
--- a/e2e/testdata/fn-render/image-pull-policy-always/Kptfile
+++ b/e2e/testdata/fn-render/image-pull-policy-always/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/image-pull-policy-if-not-present/Kptfile b/e2e/testdata/fn-render/image-pull-policy-if-not-present/Kptfile
index 0d309935..fabd1f9e 100644
--- a/e2e/testdata/fn-render/image-pull-policy-if-not-present/Kptfile
+++ b/e2e/testdata/fn-render/image-pull-policy-if-not-present/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/image-pull-policy-never/Kptfile b/e2e/testdata/fn-render/image-pull-policy-never/Kptfile
index f13f048b..75889211 100644
--- a/e2e/testdata/fn-render/image-pull-policy-never/Kptfile
+++ b/e2e/testdata/fn-render/image-pull-policy-never/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/invalid-configmap-fnconfig/Kptfile b/e2e/testdata/fn-render/invalid-configmap-fnconfig/Kptfile
index d4fb48fb..c4073eec 100644
--- a/e2e/testdata/fn-render/invalid-configmap-fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/invalid-configmap-fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/invalid-inline-fnconfig/Kptfile b/e2e/testdata/fn-render/invalid-inline-fnconfig/Kptfile
index acb21202..ca07978e 100644
--- a/e2e/testdata/fn-render/invalid-inline-fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/invalid-inline-fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/invalid-kptfile/Kptfile b/e2e/testdata/fn-render/invalid-kptfile/Kptfile
index c8a8f899..b6c0cc3e 100644
--- a/e2e/testdata/fn-render/invalid-kptfile/Kptfile
+++ b/e2e/testdata/fn-render/invalid-kptfile/Kptfile
@@ -1,4 +1,4 @@
 # Invalid Kptfile
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kslsls
 ;s;s;s
diff --git a/e2e/testdata/fn-render/krmignore/Kptfile b/e2e/testdata/fn-render/krmignore/Kptfile
index 7fc6888b..2d1b28a8 100644
--- a/e2e/testdata/fn-render/krmignore/Kptfile
+++ b/e2e/testdata/fn-render/krmignore/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/kubeval-failure/.expected/results.yaml b/e2e/testdata/fn-render/kubeval-failure/.expected/results.yaml
index 9fbcdc2b..46dfdadc 100755
--- a/e2e/testdata/fn-render/kubeval-failure/.expected/results.yaml
+++ b/e2e/testdata/fn-render/kubeval-failure/.expected/results.yaml
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-render/kubeval-failure/Kptfile b/e2e/testdata/fn-render/kubeval-failure/Kptfile
index f881c5c9..58935f5c 100644
--- a/e2e/testdata/fn-render/kubeval-failure/Kptfile
+++ b/e2e/testdata/fn-render/kubeval-failure/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/missing-fn-image/Kptfile b/e2e/testdata/fn-render/missing-fn-image/Kptfile
index 4894aeac..26fd1fbf 100644
--- a/e2e/testdata/fn-render/missing-fn-image/Kptfile
+++ b/e2e/testdata/fn-render/missing-fn-image/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/missing-fnconfig/Kptfile b/e2e/testdata/fn-render/missing-fnconfig/Kptfile
index a957d59d..9792f074 100644
--- a/e2e/testdata/fn-render/missing-fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/missing-fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/missing-fnconfig/db/Kptfile b/e2e/testdata/fn-render/missing-fnconfig/db/Kptfile
index 8c0fd517..530d4ad0 100644
--- a/e2e/testdata/fn-render/missing-fnconfig/db/Kptfile
+++ b/e2e/testdata/fn-render/missing-fnconfig/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/multiple-fnconfig/Kptfile b/e2e/testdata/fn-render/multiple-fnconfig/Kptfile
index 40a6e748..1a792327 100644
--- a/e2e/testdata/fn-render/multiple-fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/multiple-fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/no-fnconfig/Kptfile b/e2e/testdata/fn-render/no-fnconfig/Kptfile
index b5980bad..3d69f263 100644
--- a/e2e/testdata/fn-render/no-fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/no-fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/no-format-on-failure/Kptfile b/e2e/testdata/fn-render/no-format-on-failure/Kptfile
index df692cbd..165cbeac 100644
--- a/e2e/testdata/fn-render/no-format-on-failure/Kptfile
+++ b/e2e/testdata/fn-render/no-format-on-failure/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/no-format-on-failure/db/Kptfile b/e2e/testdata/fn-render/no-format-on-failure/db/Kptfile
index 51ef7cb1..d080ef0d 100644
--- a/e2e/testdata/fn-render/no-format-on-failure/db/Kptfile
+++ b/e2e/testdata/fn-render/no-format-on-failure/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/no-pipeline-in-subpackage/Kptfile b/e2e/testdata/fn-render/no-pipeline-in-subpackage/Kptfile
index 8e842410..32bba40a 100644
--- a/e2e/testdata/fn-render/no-pipeline-in-subpackage/Kptfile
+++ b/e2e/testdata/fn-render/no-pipeline-in-subpackage/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/no-pipeline-in-subpackage/db/Kptfile b/e2e/testdata/fn-render/no-pipeline-in-subpackage/db/Kptfile
index d9e2f05c..883da19e 100644
--- a/e2e/testdata/fn-render/no-pipeline-in-subpackage/db/Kptfile
+++ b/e2e/testdata/fn-render/no-pipeline-in-subpackage/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/no-pipeline/Kptfile b/e2e/testdata/fn-render/no-pipeline/Kptfile
index d9e2f05c..883da19e 100644
--- a/e2e/testdata/fn-render/no-pipeline/Kptfile
+++ b/e2e/testdata/fn-render/no-pipeline/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/non-krm-resource-no-pipeline/Kptfile b/e2e/testdata/fn-render/non-krm-resource-no-pipeline/Kptfile
index d9e2f05c..883da19e 100644
--- a/e2e/testdata/fn-render/non-krm-resource-no-pipeline/Kptfile
+++ b/e2e/testdata/fn-render/non-krm-resource-no-pipeline/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/non-krm-resource/Kptfile b/e2e/testdata/fn-render/non-krm-resource/Kptfile
index 8e842410..32bba40a 100644
--- a/e2e/testdata/fn-render/non-krm-resource/Kptfile
+++ b/e2e/testdata/fn-render/non-krm-resource/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/out-of-place-dir/.expected/diff.patch b/e2e/testdata/fn-render/out-of-place-dir/.expected/diff.patch
index 1ab5a71d..e27541d5 100644
--- a/e2e/testdata/fn-render/out-of-place-dir/.expected/diff.patch
+++ b/e2e/testdata/fn-render/out-of-place-dir/.expected/diff.patch
@@ -31,4 +31,4 @@ index 0000000..254b9cd
 +  name: custom
 +  namespace: staging
 +spec:
-+  image: nginx:1.2.3
++  image: nginx:1.2.3
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/out-of-place-dir/Kptfile b/e2e/testdata/fn-render/out-of-place-dir/Kptfile
index 7fc6888b..2d1b28a8 100644
--- a/e2e/testdata/fn-render/out-of-place-dir/Kptfile
+++ b/e2e/testdata/fn-render/out-of-place-dir/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/out-of-place-fnchain-stdout-results/Kptfile b/e2e/testdata/fn-render/out-of-place-fnchain-stdout-results/Kptfile
index 7fc6888b..2d1b28a8 100644
--- a/e2e/testdata/fn-render/out-of-place-fnchain-stdout-results/Kptfile
+++ b/e2e/testdata/fn-render/out-of-place-fnchain-stdout-results/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/out-of-place-fnchain-stdout/Kptfile b/e2e/testdata/fn-render/out-of-place-fnchain-stdout/Kptfile
index 7fc6888b..2d1b28a8 100644
--- a/e2e/testdata/fn-render/out-of-place-fnchain-stdout/Kptfile
+++ b/e2e/testdata/fn-render/out-of-place-fnchain-stdout/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/out-of-place-fnchain-unwrap/Kptfile b/e2e/testdata/fn-render/out-of-place-fnchain-unwrap/Kptfile
index 7fc6888b..2d1b28a8 100644
--- a/e2e/testdata/fn-render/out-of-place-fnchain-unwrap/Kptfile
+++ b/e2e/testdata/fn-render/out-of-place-fnchain-unwrap/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/out-of-place-stdout/Kptfile b/e2e/testdata/fn-render/out-of-place-stdout/Kptfile
index 7fc6888b..2d1b28a8 100644
--- a/e2e/testdata/fn-render/out-of-place-stdout/Kptfile
+++ b/e2e/testdata/fn-render/out-of-place-stdout/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/out-of-place-unwrap/Kptfile b/e2e/testdata/fn-render/out-of-place-unwrap/Kptfile
index 7fc6888b..2d1b28a8 100644
--- a/e2e/testdata/fn-render/out-of-place-unwrap/Kptfile
+++ b/e2e/testdata/fn-render/out-of-place-unwrap/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/path-index-ancestor/Kptfile b/e2e/testdata/fn-render/path-index-ancestor/Kptfile
index ac710dc0..7b3bc56d 100644
--- a/e2e/testdata/fn-render/path-index-ancestor/Kptfile
+++ b/e2e/testdata/fn-render/path-index-ancestor/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-generator
diff --git a/e2e/testdata/fn-render/path-index-ancestor/db/Kptfile b/e2e/testdata/fn-render/path-index-ancestor/db/Kptfile
index b00bc0ea..b43c4f50 100644
--- a/e2e/testdata/fn-render/path-index-ancestor/db/Kptfile
+++ b/e2e/testdata/fn-render/path-index-ancestor/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/path-index-current/.expected/diff.patch b/e2e/testdata/fn-render/path-index-current/.expected/diff.patch
index 10d977a8..2b504552 100644
--- a/e2e/testdata/fn-render/path-index-current/.expected/diff.patch
+++ b/e2e/testdata/fn-render/path-index-current/.expected/diff.patch
@@ -16,4 +16,4 @@ index 0000000..fa83ef1
 +        - name: httpbin
 +          image: kennethreitz/httpbin
 +          ports:
-+            - containerPort: 9876
++            - containerPort: 9876
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/path-index-current/Kptfile b/e2e/testdata/fn-render/path-index-current/Kptfile
index 96fe19c8..15001aa3 100644
--- a/e2e/testdata/fn-render/path-index-current/Kptfile
+++ b/e2e/testdata/fn-render/path-index-current/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-generator
diff --git a/e2e/testdata/fn-render/path-index-descendent/.expected/diff.patch b/e2e/testdata/fn-render/path-index-descendent/.expected/diff.patch
index fcacf27f..6212e438 100644
--- a/e2e/testdata/fn-render/path-index-descendent/.expected/diff.patch
+++ b/e2e/testdata/fn-render/path-index-descendent/.expected/diff.patch
@@ -16,4 +16,4 @@ index 0000000..fa83ef1
 +        - name: httpbin
 +          image: kennethreitz/httpbin
 +          ports:
-+            - containerPort: 9876
++            - containerPort: 9876
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/path-index-descendent/Kptfile b/e2e/testdata/fn-render/path-index-descendent/Kptfile
index 96fe19c8..15001aa3 100644
--- a/e2e/testdata/fn-render/path-index-descendent/Kptfile
+++ b/e2e/testdata/fn-render/path-index-descendent/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-generator
diff --git a/e2e/testdata/fn-render/path-index-descendent/db/Kptfile b/e2e/testdata/fn-render/path-index-descendent/db/Kptfile
index 79b7a5a3..60f507d0 100644
--- a/e2e/testdata/fn-render/path-index-descendent/db/Kptfile
+++ b/e2e/testdata/fn-render/path-index-descendent/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/path-index-duplicate/Kptfile b/e2e/testdata/fn-render/path-index-duplicate/Kptfile
index b149d829..b9b08a35 100644
--- a/e2e/testdata/fn-render/path-index-duplicate/Kptfile
+++ b/e2e/testdata/fn-render/path-index-duplicate/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/path-index-outofpackage/Kptfile b/e2e/testdata/fn-render/path-index-outofpackage/Kptfile
index ac710dc0..7b3bc56d 100644
--- a/e2e/testdata/fn-render/path-index-outofpackage/Kptfile
+++ b/e2e/testdata/fn-render/path-index-outofpackage/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-generator
diff --git a/e2e/testdata/fn-render/path-index-outofpackage/db/Kptfile b/e2e/testdata/fn-render/path-index-outofpackage/db/Kptfile
index b00bc0ea..b43c4f50 100644
--- a/e2e/testdata/fn-render/path-index-outofpackage/db/Kptfile
+++ b/e2e/testdata/fn-render/path-index-outofpackage/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/preserve-comments/Kptfile b/e2e/testdata/fn-render/preserve-comments/Kptfile
index fc0cb6ef..8bfd30bf 100644
--- a/e2e/testdata/fn-render/preserve-comments/Kptfile
+++ b/e2e/testdata/fn-render/preserve-comments/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/resource-deletion/.expected/diff.patch b/e2e/testdata/fn-render/resource-deletion/.expected/diff.patch
index 10cdc51a..bb7dd818 100644
--- a/e2e/testdata/fn-render/resource-deletion/.expected/diff.patch
+++ b/e2e/testdata/fn-render/resource-deletion/.expected/diff.patch
@@ -69,4 +69,4 @@ index 7a494c9..a9dd224 100644
 +  labels:
 +    tier: backend
  spec:
-   image: nginx:1.2.3
+   image: nginx:1.2.3
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/resource-deletion/Kptfile b/e2e/testdata/fn-render/resource-deletion/Kptfile
index df89375b..990c9beb 100644
--- a/e2e/testdata/fn-render/resource-deletion/Kptfile
+++ b/e2e/testdata/fn-render/resource-deletion/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/resource-has-pkgname-prefix/.expected/diff.patch b/e2e/testdata/fn-render/resource-has-pkgname-prefix/.expected/diff.patch
index 24d7dafb..6f2d4b61 100644
--- a/e2e/testdata/fn-render/resource-has-pkgname-prefix/.expected/diff.patch
+++ b/e2e/testdata/fn-render/resource-has-pkgname-prefix/.expected/diff.patch
@@ -99,4 +99,4 @@ index f7bdc2a..3cbda32 100644
 +        abc: def
      spec:
        containers:
-         - name: wordpress
+         - name: wordpress
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/resource-has-pkgname-prefix/Kptfile b/e2e/testdata/fn-render/resource-has-pkgname-prefix/Kptfile
index 0bcb8100..ece2d280 100644
--- a/e2e/testdata/fn-render/resource-has-pkgname-prefix/Kptfile
+++ b/e2e/testdata/fn-render/resource-has-pkgname-prefix/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: wordpress
diff --git a/e2e/testdata/fn-render/resource-has-pkgname-prefix/mysql/Kptfile b/e2e/testdata/fn-render/resource-has-pkgname-prefix/mysql/Kptfile
index 78ee518f..13657029 100644
--- a/e2e/testdata/fn-render/resource-has-pkgname-prefix/mysql/Kptfile
+++ b/e2e/testdata/fn-render/resource-has-pkgname-prefix/mysql/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: mysql
diff --git a/e2e/testdata/fn-render/structured-results-from-muiltiple-fns/.expected/results.yaml b/e2e/testdata/fn-render/structured-results-from-muiltiple-fns/.expected/results.yaml
index 9e173053..f09f19ad 100755
--- a/e2e/testdata/fn-render/structured-results-from-muiltiple-fns/.expected/results.yaml
+++ b/e2e/testdata/fn-render/structured-results-from-muiltiple-fns/.expected/results.yaml
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-render/structured-results-from-muiltiple-fns/Kptfile b/e2e/testdata/fn-render/structured-results-from-muiltiple-fns/Kptfile
index 351ba03f..e37e8edb 100644
--- a/e2e/testdata/fn-render/structured-results-from-muiltiple-fns/Kptfile
+++ b/e2e/testdata/fn-render/structured-results-from-muiltiple-fns/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/subpkg-fn-failure/Kptfile b/e2e/testdata/fn-render/subpkg-fn-failure/Kptfile
index df89375b..990c9beb 100644
--- a/e2e/testdata/fn-render/subpkg-fn-failure/Kptfile
+++ b/e2e/testdata/fn-render/subpkg-fn-failure/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/subpkg-fn-failure/db/Kptfile b/e2e/testdata/fn-render/subpkg-fn-failure/db/Kptfile
index 335f069f..99cc82a1 100644
--- a/e2e/testdata/fn-render/subpkg-fn-failure/db/Kptfile
+++ b/e2e/testdata/fn-render/subpkg-fn-failure/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/subpkg-has-invalid-kptfile/Kptfile b/e2e/testdata/fn-render/subpkg-has-invalid-kptfile/Kptfile
index 8e842410..32bba40a 100644
--- a/e2e/testdata/fn-render/subpkg-has-invalid-kptfile/Kptfile
+++ b/e2e/testdata/fn-render/subpkg-has-invalid-kptfile/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/subpkg-has-invalid-kptfile/db/Kptfile b/e2e/testdata/fn-render/subpkg-has-invalid-kptfile/db/Kptfile
index 273a535f..7480fcea 100644
--- a/e2e/testdata/fn-render/subpkg-has-invalid-kptfile/db/Kptfile
+++ b/e2e/testdata/fn-render/subpkg-has-invalid-kptfile/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/subpkg-resource-deletion/.expected/diff.patch b/e2e/testdata/fn-render/subpkg-resource-deletion/.expected/diff.patch
index da09d060..a6dba647 100644
--- a/e2e/testdata/fn-render/subpkg-resource-deletion/.expected/diff.patch
+++ b/e2e/testdata/fn-render/subpkg-resource-deletion/.expected/diff.patch
@@ -94,4 +94,4 @@ index 6590f6c..b5b54e0 100644
 +  template:
 +    metadata:
 +      labels:
-+        tier: backend
++        tier: backend
\ No newline at end of file
diff --git a/e2e/testdata/fn-render/subpkg-resource-deletion/Kptfile b/e2e/testdata/fn-render/subpkg-resource-deletion/Kptfile
index df89375b..990c9beb 100644
--- a/e2e/testdata/fn-render/subpkg-resource-deletion/Kptfile
+++ b/e2e/testdata/fn-render/subpkg-resource-deletion/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/subpkg-resource-deletion/db/Kptfile b/e2e/testdata/fn-render/subpkg-resource-deletion/db/Kptfile
index 335f069f..99cc82a1 100644
--- a/e2e/testdata/fn-render/subpkg-resource-deletion/db/Kptfile
+++ b/e2e/testdata/fn-render/subpkg-resource-deletion/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/subpkgs/Kptfile b/e2e/testdata/fn-render/subpkgs/Kptfile
index 9092fbf7..77e7beba 100644
--- a/e2e/testdata/fn-render/subpkgs/Kptfile
+++ b/e2e/testdata/fn-render/subpkgs/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/subpkgs/db/Kptfile b/e2e/testdata/fn-render/subpkgs/db/Kptfile
index 8c0fd517..530d4ad0 100644
--- a/e2e/testdata/fn-render/subpkgs/db/Kptfile
+++ b/e2e/testdata/fn-render/subpkgs/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/success-stdout/Kptfile b/e2e/testdata/fn-render/success-stdout/Kptfile
index 8e842410..32bba40a 100644
--- a/e2e/testdata/fn-render/success-stdout/Kptfile
+++ b/e2e/testdata/fn-render/success-stdout/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/validate-generated-resource/Kptfile b/e2e/testdata/fn-render/validate-generated-resource/Kptfile
index 9d5a157a..43f384f9 100644
--- a/e2e/testdata/fn-render/validate-generated-resource/Kptfile
+++ b/e2e/testdata/fn-render/validate-generated-resource/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/validate-resource-failure/.expected/results.yaml b/e2e/testdata/fn-render/validate-resource-failure/.expected/results.yaml
index c18e3162..02cfa602 100755
--- a/e2e/testdata/fn-render/validate-resource-failure/.expected/results.yaml
+++ b/e2e/testdata/fn-render/validate-resource-failure/.expected/results.yaml
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-render/validate-resource-failure/Kptfile b/e2e/testdata/fn-render/validate-resource-failure/Kptfile
index 5dac137e..a796a703 100644
--- a/e2e/testdata/fn-render/validate-resource-failure/Kptfile
+++ b/e2e/testdata/fn-render/validate-resource-failure/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/validator-mutates-resources/Kptfile b/e2e/testdata/fn-render/validator-mutates-resources/Kptfile
index e5b6ece9..608e9e62 100644
--- a/e2e/testdata/fn-render/validator-mutates-resources/Kptfile
+++ b/e2e/testdata/fn-render/validator-mutates-resources/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: app
diff --git a/internal/cmdapply/cmdapply_test.go b/internal/cmdapply/cmdapply_test.go
index 0872a86f..5a09d2f5 100644
--- a/internal/cmdapply/cmdapply_test.go
+++ b/internal/cmdapply/cmdapply_test.go
@@ -20,7 +20,7 @@ import (
 
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"github.com/GoogleContainerTools/kpt/pkg/live"
 	"github.com/stretchr/testify/assert"
@@ -35,7 +35,7 @@ func TestCmd(t *testing.T) {
 	testCases := map[string]struct {
 		args              []string
 		namespace         string
-		inventory         *kptfilev1.Inventory
+		inventory         *kptfilev1alpha2.Inventory
 		applyCallbackFunc func(*testing.T, *Runner, inventory.InventoryInfo)
 		expectedErrorMsg  string
 	}{
@@ -64,7 +64,7 @@ func TestCmd(t *testing.T) {
 				"--inventory-policy", "adopt",
 				"--output", "events",
 			},
-			inventory: &kptfilev1.Inventory{
+			inventory: &kptfilev1alpha2.Inventory{
 				Namespace:   "my-ns",
 				Name:        "my-name",
 				InventoryID: "my-inv-id",
@@ -78,7 +78,7 @@ func TestCmd(t *testing.T) {
 		},
 		"install-resource-group flag defaults to true": {
 			args: []string{},
-			inventory: &kptfilev1.Inventory{
+			inventory: &kptfilev1alpha2.Inventory{
 				Namespace:   "my-ns",
 				Name:        "my-name",
 				InventoryID: "my-inv-id",
@@ -92,7 +92,7 @@ func TestCmd(t *testing.T) {
 			args: []string{
 				"--dry-run",
 			},
-			inventory: &kptfilev1.Inventory{
+			inventory: &kptfilev1alpha2.Inventory{
 				Namespace:   "my-ns",
 				Name:        "my-name",
 				InventoryID: "my-inv-id",
@@ -109,7 +109,7 @@ func TestCmd(t *testing.T) {
 				"--dry-run",
 				"--install-resource-group",
 			},
-			inventory: &kptfilev1.Inventory{
+			inventory: &kptfilev1alpha2.Inventory{
 				Namespace:   "my-ns",
 				Name:        "my-name",
 				InventoryID: "my-inv-id",
diff --git a/internal/cmddestroy/cmddestroy_test.go b/internal/cmddestroy/cmddestroy_test.go
index f2d0b825..953486d9 100644
--- a/internal/cmddestroy/cmddestroy_test.go
+++ b/internal/cmddestroy/cmddestroy_test.go
@@ -20,7 +20,7 @@ import (
 
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"github.com/GoogleContainerTools/kpt/pkg/live"
 	"github.com/stretchr/testify/assert"
@@ -34,7 +34,7 @@ func TestCmd(t *testing.T) {
 	testCases := map[string]struct {
 		args                []string
 		namespace           string
-		inventory           *kptfilev1.Inventory
+		inventory           *kptfilev1alpha2.Inventory
 		destroyCallbackFunc func(*testing.T, inventory.InventoryInfo)
 		expectedErrorMsg    string
 	}{
@@ -63,7 +63,7 @@ func TestCmd(t *testing.T) {
 				"--inventory-policy", "adopt",
 				"--output", "events",
 			},
-			inventory: &kptfilev1.Inventory{
+			inventory: &kptfilev1alpha2.Inventory{
 				Namespace:   "my-ns",
 				Name:        "my-name",
 				InventoryID: "my-inv-id",
diff --git a/internal/cmdget/cmdget_test.go b/internal/cmdget/cmdget_test.go
index f16380d3..4c7fca2c 100644
--- a/internal/cmdget/cmdget_test.go
+++ b/internal/cmdget/cmdget_test.go
@@ -24,7 +24,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/cmdget"
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/spf13/cobra"
 	"github.com/stretchr/testify/assert"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
@@ -58,7 +58,7 @@ func TestCmd_execute(t *testing.T) {
 
 	commit, err := g.GetCommit()
 	assert.NoError(t, err)
-	g.AssertKptfile(t, dest, kptfilev1.KptFile{
+	g.AssertKptfile(t, dest, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -66,21 +66,21 @@ func TestCmd_execute(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.KptFileAPIVersion,
-				Kind:       kptfilev1.KptFileName},
+				APIVersion: kptfilev1alpha2.KptFileAPIVersion,
+				Kind:       kptfilev1alpha2.KptFileName},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
@@ -118,7 +118,7 @@ func TestCmdMainBranch_execute(t *testing.T) {
 
 	commit, err := g.GetCommit()
 	assert.NoError(t, err)
-	g.AssertKptfile(t, dest, kptfilev1.KptFile{
+	g.AssertKptfile(t, dest, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -126,21 +126,21 @@ func TestCmdMainBranch_execute(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.KptFileAPIVersion,
-				Kind:       kptfilev1.KptFileName},
+				APIVersion: kptfilev1alpha2.KptFileAPIVersion,
+				Kind:       kptfilev1alpha2.KptFileName},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "main",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "main",
@@ -356,7 +356,7 @@ func TestCmd_Execute_flagAndArgParsing(t *testing.T) {
 				assert.Equal(t, fmt.Sprintf("file://%s", repo), r.Get.Git.Repo)
 				assert.Equal(t, "master", r.Get.Git.Ref)
 				assert.Equal(t, filepath.Join(dir, "package"), r.Get.Destination)
-				assert.Equal(t, kptfilev1.FastForward, r.Get.UpdateStrategy)
+				assert.Equal(t, kptfilev1alpha2.FastForward, r.Get.UpdateStrategy)
 			},
 		},
 		"invalid strategy provided": {
diff --git a/internal/cmdinit/cmdinit_test.go b/internal/cmdinit/cmdinit_test.go
index 0edc6cfb..c05b67ef 100644
--- a/internal/cmdinit/cmdinit_test.go
+++ b/internal/cmdinit/cmdinit_test.go
@@ -46,7 +46,7 @@ func TestCmd(t *testing.T) {
 	// verify the contents
 	b, err := ioutil.ReadFile(filepath.Join(d, "my-pkg", "Kptfile"))
 	assert.NoError(t, err)
-	assert.Equal(t, `apiVersion: kpt.dev/v1
+	assert.Equal(t, `apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: my-pkg
@@ -108,7 +108,7 @@ func TestCmd_currentDir(t *testing.T) {
 	// verify the contents
 	b, err := ioutil.ReadFile(filepath.Join(packageDir, "Kptfile"))
 	assert.NoError(t, err)
-	assert.Equal(t, `apiVersion: kpt.dev/v1
+	assert.Equal(t, `apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: my-pkg
@@ -145,7 +145,7 @@ func TestCmd_DefaultToCurrentDir(t *testing.T) {
 	// verify the contents
 	b, err := ioutil.ReadFile(filepath.Join(packageDir, "Kptfile"))
 	assert.NoError(t, err)
-	assert.Equal(t, `apiVersion: kpt.dev/v1
+	assert.Equal(t, `apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: my-pkg
diff --git a/internal/cmdliveinit/cmdliveinit_test.go b/internal/cmdliveinit/cmdliveinit_test.go
index 8fdee252..bac18bee 100644
--- a/internal/cmdliveinit/cmdliveinit_test.go
+++ b/internal/cmdliveinit/cmdliveinit_test.go
@@ -13,7 +13,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/pkg"
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 	"k8s.io/cli-runtime/pkg/genericclioptions"
 	cmdtesting "k8s.io/kubectl/pkg/cmd/testing"
@@ -26,7 +26,7 @@ var (
 )
 
 var kptFile = `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
@@ -41,7 +41,7 @@ upstreamLock:
 const testInventoryID = "SSSSSSSSSS-RRRRR"
 
 var kptFileWithInventory = `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
@@ -136,7 +136,7 @@ func TestCmd_Run(t *testing.T) {
 		force             bool
 		expectedErrorMsg  string
 		expectAutoGenID   bool
-		expectedInventory kptfilev1.Inventory
+		expectedInventory kptfilev1alpha2.Inventory
 	}{
 		"Fields are defaulted if not provided": {
 			kptfile:         kptFile,
@@ -144,7 +144,7 @@ func TestCmd_Run(t *testing.T) {
 			namespace:       "testns",
 			inventoryID:     "",
 			expectAutoGenID: true,
-			expectedInventory: kptfilev1.Inventory{
+			expectedInventory: kptfilev1alpha2.Inventory{
 				Namespace:   "testns",
 				Name:        "inventory-*",
 				InventoryID: "33ee4887f9638ef63efe71a9a9a632d3e9e2488e-*",
@@ -155,7 +155,7 @@ func TestCmd_Run(t *testing.T) {
 			name:        "my-pkg",
 			namespace:   "my-ns",
 			inventoryID: "my-inv-id",
-			expectedInventory: kptfilev1.Inventory{
+			expectedInventory: kptfilev1alpha2.Inventory{
 				Namespace:   "my-ns",
 				Name:        "my-pkg",
 				InventoryID: "my-inv-id",
@@ -175,7 +175,7 @@ func TestCmd_Run(t *testing.T) {
 			namespace:   inventoryNamespace,
 			inventoryID: inventoryID,
 			force:       true,
-			expectedInventory: kptfilev1.Inventory{
+			expectedInventory: kptfilev1alpha2.Inventory{
 				Namespace:   inventoryNamespace,
 				Name:        inventoryName,
 				InventoryID: inventoryID,
@@ -192,7 +192,7 @@ func TestCmd_Run(t *testing.T) {
 
 			w, clean := testutil.SetupWorkspace(t)
 			defer clean()
-			err := ioutil.WriteFile(filepath.Join(w.WorkspaceDirectory, kptfilev1.KptFileName),
+			err := ioutil.WriteFile(filepath.Join(w.WorkspaceDirectory, kptfilev1alpha2.KptFileName),
 				[]byte(tc.kptfile), 0600)
 			if !assert.NoError(t, err) {
 				t.FailNow()
diff --git a/internal/cmdmigrate/migratecmd_test.go b/internal/cmdmigrate/migratecmd_test.go
index 97a0e29d..9b03db31 100644
--- a/internal/cmdmigrate/migratecmd_test.go
+++ b/internal/cmdmigrate/migratecmd_test.go
@@ -27,7 +27,7 @@ var inventoryObjName = "test-inventory-obj"
 var testInventoryLabel = "test-inventory-label"
 
 var kptfileStr = `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 inventory:
   name: test-inventory-obj
@@ -345,7 +345,7 @@ func TestKptMigrate_migrateObjs(t *testing.T) {
 }
 
 var kptFileWithInventory = `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
@@ -363,7 +363,7 @@ inventory:
 const testInventoryID = "SSSSSSSSSS-RRRRR"
 
 var kptFile = `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/internal/cmdupdate/cmdupdate_test.go b/internal/cmdupdate/cmdupdate_test.go
index 8aec3f4d..1ee98f9e 100644
--- a/internal/cmdupdate/cmdupdate_test.go
+++ b/internal/cmdupdate/cmdupdate_test.go
@@ -31,7 +31,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
 	"github.com/GoogleContainerTools/kpt/internal/testutil/pkgbuilder"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/spf13/cobra"
 	"github.com/stretchr/testify/assert"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
@@ -99,7 +99,7 @@ func TestCmd_execute(t *testing.T) {
 	if !assert.NoError(t, err) {
 		return
 	}
-	if !g.AssertKptfile(t, dest, kptfilev1.KptFile{
+	if !g.AssertKptfile(t, dest, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -107,21 +107,21 @@ func TestCmd_execute(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 				Directory: "/",
 			},
-			UpdateStrategy: kptfilev1.FastForward,
+			UpdateStrategy: kptfilev1alpha2.FastForward,
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 				Directory: "/",
@@ -204,7 +204,7 @@ func TestCmd_Execute_flagAndArgParsing(t *testing.T) {
 	err := r.Command.Execute()
 	assert.NoError(t, err)
 	assert.Equal(t, "", r.Update.Ref)
-	assert.Equal(t, kptfilev1.ResourceMerge, r.Update.Strategy)
+	assert.Equal(t, kptfilev1alpha2.ResourceMerge, r.Update.Strategy)
 
 	// verify an error is thrown if multiple paths are specified
 	r = cmdupdate.NewRunner(fake.CtxWithDefaultPrinter(), "kpt")
@@ -214,7 +214,7 @@ func TestCmd_Execute_flagAndArgParsing(t *testing.T) {
 	err = r.Command.Execute()
 	assert.EqualError(t, err, "accepts at most 1 arg(s), received 2")
 	assert.Equal(t, "", r.Update.Ref)
-	assert.Equal(t, kptfilev1.UpdateStrategyType(""), r.Update.Strategy)
+	assert.Equal(t, kptfilev1alpha2.UpdateStrategyType(""), r.Update.Strategy)
 
 	// verify the branch ref is set to the correct value
 	r = cmdupdate.NewRunner(fake.CtxWithDefaultPrinter(), "kpt")
@@ -223,7 +223,7 @@ func TestCmd_Execute_flagAndArgParsing(t *testing.T) {
 	err = r.Command.Execute()
 	assert.NoError(t, err)
 	assert.Equal(t, "refs/heads/foo", r.Update.Ref)
-	assert.Equal(t, kptfilev1.ResourceMerge, r.Update.Strategy)
+	assert.Equal(t, kptfilev1alpha2.ResourceMerge, r.Update.Strategy)
 
 	// verify the branch ref is set to the correct value
 	r = cmdupdate.NewRunner(fake.CtxWithDefaultPrinter(), "kpt")
@@ -231,7 +231,7 @@ func TestCmd_Execute_flagAndArgParsing(t *testing.T) {
 	r.Command.SetArgs([]string{"foo", "--strategy", "force-delete-replace"})
 	err = r.Command.Execute()
 	assert.NoError(t, err)
-	assert.Equal(t, kptfilev1.ForceDeleteReplace, r.Update.Strategy)
+	assert.Equal(t, kptfilev1alpha2.ForceDeleteReplace, r.Update.Strategy)
 	assert.Equal(t, "", r.Update.Ref)
 
 	r = cmdupdate.NewRunner(fake.CtxWithDefaultPrinter(), "kpt")
@@ -239,7 +239,7 @@ func TestCmd_Execute_flagAndArgParsing(t *testing.T) {
 	r.Command.SetArgs([]string{"foo", "--strategy", "resource-merge"})
 	err = r.Command.Execute()
 	assert.NoError(t, err)
-	assert.Equal(t, kptfilev1.ResourceMerge, r.Update.Strategy)
+	assert.Equal(t, kptfilev1alpha2.ResourceMerge, r.Update.Strategy)
 	assert.Equal(t, "", r.Update.Ref)
 }
 
diff --git a/internal/fnruntime/runner_test.go b/internal/fnruntime/runner_test.go
index 0d71ce88..074871d6 100644
--- a/internal/fnruntime/runner_test.go
+++ b/internal/fnruntime/runner_test.go
@@ -25,7 +25,7 @@ import (
 	"testing"
 
 	"github.com/GoogleContainerTools/kpt/internal/types"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 	"sigs.k8s.io/kustomize/kyaml/fn/framework"
 	"sigs.k8s.io/kustomize/kyaml/kio"
@@ -35,7 +35,7 @@ import (
 func TestFunctionConfig(t *testing.T) {
 	type input struct {
 		name              string
-		fn                kptfilev1.Function
+		fn                kptfilev1alpha2.Function
 		configFileContent string
 		expected          string
 	}
@@ -43,12 +43,12 @@ func TestFunctionConfig(t *testing.T) {
 	cases := []input{
 		{
 			name:     "no config",
-			fn:       kptfilev1.Function{},
+			fn:       kptfilev1alpha2.Function{},
 			expected: "",
 		},
 		{
 			name: "file config",
-			fn:   kptfilev1.Function{},
+			fn:   kptfilev1alpha2.Function{},
 			configFileContent: `apiVersion: cft.dev/v1alpha1
 kind: ResourceHierarchy
 metadata:
@@ -63,7 +63,7 @@ metadata:
 		},
 		{
 			name: "map config",
-			fn: kptfilev1.Function{
+			fn: kptfilev1alpha2.Function{
 				ConfigMap: map[string]string{
 					"foo": "bar",
 				},
diff --git a/internal/pkg/pkg_test.go b/internal/pkg/pkg_test.go
index 44b68083..17a1b656 100644
--- a/internal/pkg/pkg_test.go
+++ b/internal/pkg/pkg_test.go
@@ -25,7 +25,7 @@ import (
 
 	"github.com/GoogleContainerTools/kpt/internal/testutil/pkgbuilder"
 	"github.com/GoogleContainerTools/kpt/internal/types"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 )
@@ -249,7 +249,7 @@ kind: Custom
 spec:
   image: nginx:1.2.3`,
 				`
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: mysql
@@ -260,7 +260,7 @@ pipeline:
         replicas: 5
 `,
 				`
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Pipeline
 sources:
   - "."`,
@@ -327,7 +327,7 @@ func TestDirectSubpackages(t *testing.T) {
 						WithKptfile(
 							pkgbuilder.NewKptfile().
 								WithUpstream("github.com/GoogleContainerTools/kpt",
-									"/", "main", string(kptfilev1.ResourceMerge)),
+									"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 						).
 						WithResource(pkgbuilder.ConfigMapResource),
 				),
@@ -361,7 +361,7 @@ func TestDirectSubpackages(t *testing.T) {
 						WithKptfile(
 							pkgbuilder.NewKptfile().
 								WithUpstream("github.com/GoogleContainerTools/kpt",
-									"/", "main", string(kptfilev1.ResourceMerge)),
+									"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 						).
 						WithResource(pkgbuilder.ConfigMapResource).
 						WithSubPackages(
@@ -371,7 +371,7 @@ func TestDirectSubpackages(t *testing.T) {
 										WithKptfile(
 											pkgbuilder.NewKptfile().
 												WithUpstream("github.com/GoogleContainerTools/kpt",
-													"/", "main", string(kptfilev1.ResourceMerge)),
+													"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 										).
 										WithResource(pkgbuilder.ConfigMapResource),
 								),
@@ -464,7 +464,7 @@ func TestSubpackages(t *testing.T) {
 						WithKptfile(
 							pkgbuilder.NewKptfile().
 								WithUpstream("github.com/GoogleContainerTools/kpt",
-									"/", "main", string(kptfilev1.ResourceMerge)),
+									"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 						).
 						WithSubPackages(
 							pkgbuilder.NewSubPkg("directory").
@@ -473,7 +473,7 @@ func TestSubpackages(t *testing.T) {
 										WithKptfile(
 											pkgbuilder.NewKptfile().
 												WithUpstream("github.com/GoogleContainerTools/kpt",
-													"/", "main", string(kptfilev1.ResourceMerge)),
+													"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 										),
 								),
 						),
@@ -486,7 +486,7 @@ func TestSubpackages(t *testing.T) {
 										WithKptfile(
 											pkgbuilder.NewKptfile().
 												WithUpstream("github.com/GoogleContainerTools/kpt",
-													"/", "main", string(kptfilev1.ResourceMerge)),
+													"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 										),
 								),
 							pkgbuilder.NewSubPkg("local-sub2").
@@ -678,7 +678,7 @@ func TestFunctionConfigFilePaths(t *testing.T) {
 						WithKptfile(
 							pkgbuilder.NewKptfile().
 								WithUpstream("github.com/GoogleContainerTools/kpt",
-									"/", "main", string(kptfilev1.ResourceMerge)).
+									"/", "main", string(kptfilev1alpha2.ResourceMerge)).
 								WithPipeline(
 									pkgbuilder.NewFunction("image").
 										WithConfigPath("fn-config.yaml"),
@@ -692,7 +692,7 @@ func TestFunctionConfigFilePaths(t *testing.T) {
 										WithKptfile(
 											pkgbuilder.NewKptfile().
 												WithUpstream("github.com/GoogleContainerTools/kpt",
-													"/", "main", string(kptfilev1.ResourceMerge)).
+													"/", "main", string(kptfilev1alpha2.ResourceMerge)).
 												WithPipeline(
 													pkgbuilder.NewFunction("image").
 														WithConfigPath("fn-config1.yaml"),
@@ -718,7 +718,7 @@ func TestFunctionConfigFilePaths(t *testing.T) {
 										WithKptfile(
 											pkgbuilder.NewKptfile().
 												WithUpstream("github.com/GoogleContainerTools/kpt",
-													"/", "main", string(kptfilev1.ResourceMerge)),
+													"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 										),
 								),
 							pkgbuilder.NewSubPkg("local-sub2").
diff --git a/internal/testutil/pkgbuilder/builder.go b/internal/testutil/pkgbuilder/builder.go
index 4e1bfabe..7939d7e3 100644
--- a/internal/testutil/pkgbuilder/builder.go
+++ b/internal/testutil/pkgbuilder/builder.go
@@ -25,7 +25,7 @@ import (
 	"testing"
 	"text/template"
 
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 )
@@ -469,7 +469,7 @@ func buildPkg(pkgPath string, pkg *pkg, pkgName string, reposInfo ReposInfo) err
 	if pkg.Kptfile != nil {
 		content := buildKptfile(pkg, pkgName, reposInfo)
 
-		err := ioutil.WriteFile(filepath.Join(pkgPath, kptfilev1.KptFileName),
+		err := ioutil.WriteFile(filepath.Join(pkgPath, kptfilev1alpha2.KptFileName),
 			[]byte(content), 0600)
 		if err != nil {
 			return err
@@ -511,7 +511,7 @@ func buildPkg(pkgPath string, pkg *pkg, pkgName string, reposInfo ReposInfo) err
 }
 
 // TODO: Consider using the Kptfile struct for this instead of a template.
-var kptfileTemplate = `apiVersion: kpt.dev/v1
+var kptfileTemplate = `apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: {{.PkgName}}
diff --git a/internal/testutil/setup_manager.go b/internal/testutil/setup_manager.go
index 915e6bc0..0f077d07 100644
--- a/internal/testutil/setup_manager.go
+++ b/internal/testutil/setup_manager.go
@@ -24,7 +24,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
 	"github.com/GoogleContainerTools/kpt/internal/testutil/pkgbuilder"
 	"github.com/GoogleContainerTools/kpt/internal/util/get"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 )
@@ -105,7 +105,7 @@ func (g *TestSetupManager) Init() bool {
 	// Get the content from the upstream repo into the local workspace.
 	if !assert.NoError(g.T, get.Command{
 		Destination: filepath.Join(g.LocalWorkspace.WorkspaceDirectory, g.targetDir),
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.Repos[Upstream].RepoDirectory,
 			Ref:       g.GetRef,
 			Directory: g.GetSubDirectory,
@@ -197,8 +197,8 @@ func UpdateGitDir(t *testing.T, name string, gitDir GitDirectory, changes []Cont
 	return nil
 }
 
-func (g *TestSetupManager) AssertKptfile(name, commit, ref string, strategy kptfilev1.UpdateStrategyType) bool {
-	expectedKptfile := kptfilev1.KptFile{
+func (g *TestSetupManager) AssertKptfile(name, commit, ref string, strategy kptfilev1alpha2.UpdateStrategyType) bool {
+	expectedKptfile := kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -206,21 +206,21 @@ func (g *TestSetupManager) AssertKptfile(name, commit, ref string, strategy kptf
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		Upstream: &kptfilev1.Upstream{
+		Upstream: &kptfilev1alpha2.Upstream{
 			Type: "git",
-			Git: &kptfilev1.Git{
+			Git: &kptfilev1alpha2.Git{
 				Directory: g.GetSubDirectory,
 				Repo:      g.Repos[Upstream].RepoDirectory,
 				Ref:       ref,
 			},
 			UpdateStrategy: strategy,
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
 			Type: "git",
-			Git: &kptfilev1.GitLock{
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: g.GetSubDirectory,
 				Repo:      g.Repos[Upstream].RepoDirectory,
 				Ref:       ref,
diff --git a/internal/testutil/testdata/updateMergeConflict/Kptfile b/internal/testutil/testdata/updateMergeConflict/Kptfile
index 50aa2916..a766c8b3 100644
--- a/internal/testutil/testdata/updateMergeConflict/Kptfile
+++ b/internal/testutil/testdata/updateMergeConflict/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
     name: test-kpt-upstream-307571298
diff --git a/internal/testutil/testutil.go b/internal/testutil/testutil.go
index 3fda094e..885801a7 100644
--- a/internal/testutil/testutil.go
+++ b/internal/testutil/testutil.go
@@ -31,7 +31,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
 	"github.com/GoogleContainerTools/kpt/internal/util/addmergecomment"
 	"github.com/GoogleContainerTools/kpt/internal/util/git"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	toposort "github.com/philopon/go-toposort"
 	"github.com/stretchr/testify/assert"
@@ -75,7 +75,7 @@ type TestGitRepo struct {
 
 var AssertNoError = assertnow.NilError
 
-var KptfileSet = diffSet(kptfilev1.KptFileName)
+var KptfileSet = diffSet(kptfilev1alpha2.KptFileName)
 
 func diffSet(path string) sets.String {
 	s := sets.String{}
@@ -112,7 +112,7 @@ func KptfileAwarePkgEqual(t *testing.T, pkg1, pkg2 string, addMergeCommentsToSou
 	// TODO(mortent): See if we can avoid this. We just need to make sure
 	// we can compare Kptfiles without any formatting issues.
 	for _, s := range diff.List() {
-		if !strings.HasSuffix(s, kptfilev1.KptFileName) {
+		if !strings.HasSuffix(s, kptfilev1alpha2.KptFileName) {
 			continue
 		}
 
@@ -265,9 +265,9 @@ const trimPrefix = `# Copyright 2019 Google LLC
 # limitations under the License.`
 
 // AssertKptfile verifies the contents of the KptFile matches the provided value.
-func (g *TestGitRepo) AssertKptfile(t *testing.T, cloned string, kpkg kptfilev1.KptFile) bool {
+func (g *TestGitRepo) AssertKptfile(t *testing.T, cloned string, kpkg kptfilev1alpha2.KptFile) bool {
 	// read the actual generated KptFile
-	b, err := ioutil.ReadFile(filepath.Join(cloned, kptfilev1.KptFileName))
+	b, err := ioutil.ReadFile(filepath.Join(cloned, kptfilev1alpha2.KptFileName))
 	if !assert.NoError(t, err) {
 		return false
 	}
@@ -450,7 +450,7 @@ func SetupWorkspace(t *testing.T) (*TestWorkspace, func()) {
 
 // AddKptfileToWorkspace writes the provided Kptfile to the workspace
 // and makes a commit.
-func AddKptfileToWorkspace(t *testing.T, w *TestWorkspace, kf *kptfilev1.KptFile) {
+func AddKptfileToWorkspace(t *testing.T, w *TestWorkspace, kf *kptfilev1alpha2.KptFile) {
 	err := os.MkdirAll(w.FullPackagePath(), 0700)
 	if !assert.NoError(t, err) {
 		t.FailNow()
@@ -651,10 +651,10 @@ func replaceData(repo, data string) error {
 			}
 			// Only copy over the Upstream section from the existing
 			// Kptfile if other values hasn't been provided.
-			if dataKptfile.Upstream == nil || reflect.DeepEqual(dataKptfile.Upstream, kptfilev1.Upstream{}) {
+			if dataKptfile.Upstream == nil || reflect.DeepEqual(dataKptfile.Upstream, kptfilev1alpha2.Upstream{}) {
 				dataKptfile.Upstream = repoKptfile.Upstream
 			}
-			if dataKptfile.UpstreamLock == nil || reflect.DeepEqual(dataKptfile.UpstreamLock, kptfilev1.UpstreamLock{}) {
+			if dataKptfile.UpstreamLock == nil || reflect.DeepEqual(dataKptfile.UpstreamLock, kptfilev1alpha2.UpstreamLock{}) {
 				dataKptfile.UpstreamLock = repoKptfile.UpstreamLock
 			}
 			dataKptfile.Name = repoKptfile.Name
@@ -693,7 +693,7 @@ func replaceData(repo, data string) error {
 		}
 
 		// Never delete the Kptfile in the root package.
-		if rel == kptfilev1.KptFileName {
+		if rel == kptfilev1alpha2.KptFileName {
 			return nil
 		}
 
diff --git a/internal/util/fetch/fetch_test.go b/internal/util/fetch/fetch_test.go
index e7701100..96f64488 100644
--- a/internal/util/fetch/fetch_test.go
+++ b/internal/util/fetch/fetch_test.go
@@ -25,7 +25,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
 	"github.com/GoogleContainerTools/kpt/internal/testutil/pkgbuilder"
 	. "github.com/GoogleContainerTools/kpt/internal/util/fetch"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"github.com/stretchr/testify/assert"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
@@ -49,10 +49,10 @@ func setupWorkspace(t *testing.T) (*testutil.TestGitRepo, *testutil.TestWorkspac
 	return g, w, clean
 }
 
-func createKptfile(workspace *testutil.TestWorkspace, git *kptfilev1.Git, strategy kptfilev1.UpdateStrategyType) error {
+func createKptfile(workspace *testutil.TestWorkspace, git *kptfilev1alpha2.Git, strategy kptfilev1alpha2.UpdateStrategyType) error {
 	kf := kptfileutil.DefaultKptfile(workspace.PackageDir)
-	kf.Upstream = &kptfilev1.Upstream{
-		Type:           kptfilev1.GitOrigin,
+	kf.Upstream = &kptfilev1alpha2.Upstream{
+		Type:           kptfilev1alpha2.GitOrigin,
 		Git:            git,
 		UpdateStrategy: strategy,
 	}
@@ -98,7 +98,7 @@ func TestCommand_Run_failNoGit(t *testing.T) {
 	_, w, clean := setupWorkspace(t)
 	defer clean()
 
-	err := createKptfile(w, nil, kptfilev1.ResourceMerge)
+	err := createKptfile(w, nil, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -117,11 +117,11 @@ func TestCommand_Run_failEmptyRepo(t *testing.T) {
 	_, w, clean := setupWorkspace(t)
 	defer clean()
 
-	err := createKptfile(w, &kptfilev1.Git{
+	err := createKptfile(w, &kptfilev1alpha2.Git{
 		Repo:      "",
 		Directory: "/",
 		Ref:       "main",
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -140,11 +140,11 @@ func TestCommand_Run_failNoRevision(t *testing.T) {
 	g, w, clean := setupWorkspace(t)
 	defer clean()
 
-	err := createKptfile(w, &kptfilev1.Git{
+	err := createKptfile(w, &kptfilev1alpha2.Git{
 		Repo:      "file://" + g.RepoDirectory,
 		Directory: "/",
 		Ref:       "",
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -166,11 +166,11 @@ func TestCommand_Run(t *testing.T) {
 	g, w, clean := setupWorkspace(t)
 	defer clean()
 
-	err := createKptfile(w, &kptfilev1.Git{
+	err := createKptfile(w, &kptfilev1alpha2.Git{
 		Repo:      "file://" + g.RepoDirectory,
 		Directory: "/",
 		Ref:       "master",
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -187,7 +187,7 @@ func TestCommand_Run(t *testing.T) {
 	// verify the KptFile contains the expected values
 	commit, err := g.GetCommit()
 	assert.NoError(t, err)
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -195,21 +195,21 @@ func TestCommand_Run(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.KptFileAPIVersion,
-				Kind:       kptfilev1.KptFileName},
+				APIVersion: kptfilev1alpha2.KptFileAPIVersion,
+				Kind:       kptfilev1alpha2.KptFileName},
 		},
-		Upstream: &kptfilev1.Upstream{
+		Upstream: &kptfilev1alpha2.Upstream{
 			Type: "git",
-			Git: &kptfilev1.Git{
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
 			Type: "git",
-			Git: &kptfilev1.GitLock{
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
@@ -228,11 +228,11 @@ func TestCommand_Run_subdir(t *testing.T) {
 	defer clean()
 
 	subdir := "java"
-	err := createKptfile(w, &kptfilev1.Git{
+	err := createKptfile(w, &kptfilev1alpha2.Git{
 		Repo:      g.RepoDirectory,
 		Directory: subdir,
 		Ref:       "refs/heads/master",
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -249,7 +249,7 @@ func TestCommand_Run_subdir(t *testing.T) {
 	// verify the KptFile contains the expected values
 	commit, err := g.GetCommit()
 	assert.NoError(t, err)
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -257,21 +257,21 @@ func TestCommand_Run_subdir(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.KptFileAPIVersion,
-				Kind:       kptfilev1.KptFileName},
+				APIVersion: kptfilev1alpha2.KptFileAPIVersion,
+				Kind:       kptfilev1alpha2.KptFileName},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: subdir,
 				Ref:       "refs/heads/master",
 				Repo:      g.RepoDirectory,
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Commit:    commit,
 				Directory: subdir,
 				Ref:       "refs/heads/master",
@@ -307,11 +307,11 @@ func TestCommand_Run_branch(t *testing.T) {
 	assert.NoError(t, err)
 	assert.NotEqual(t, commit, commit2)
 
-	err = createKptfile(w, &kptfilev1.Git{
+	err = createKptfile(w, &kptfilev1alpha2.Git{
 		Repo:      g.RepoDirectory,
 		Directory: "/",
 		Ref:       "refs/heads/exp",
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -325,7 +325,7 @@ func TestCommand_Run_branch(t *testing.T) {
 	g.AssertEqual(t, filepath.Join(g.DatasetDirectory, testutil.Dataset2), w.FullPackagePath(), false)
 
 	// verify the KptFile contains the expected values
-	g.AssertKptfile(t, w.FullPackagePath(), kptfilev1.KptFile{
+	g.AssertKptfile(t, w.FullPackagePath(), kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -333,21 +333,21 @@ func TestCommand_Run_branch(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.KptFileAPIVersion,
-				Kind:       kptfilev1.KptFileName},
+				APIVersion: kptfilev1alpha2.KptFileAPIVersion,
+				Kind:       kptfilev1alpha2.KptFileName},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/heads/exp",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/heads/exp",
@@ -388,11 +388,11 @@ func TestCommand_Run_tag(t *testing.T) {
 	assert.NotEqual(t, commit, commit0)
 	assert.NotEqual(t, commit, commit2)
 
-	err = createKptfile(w, &kptfilev1.Git{
+	err = createKptfile(w, &kptfilev1alpha2.Git{
 		Repo:      g.RepoDirectory,
 		Directory: "/",
 		Ref:       "refs/tags/v2",
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -406,7 +406,7 @@ func TestCommand_Run_tag(t *testing.T) {
 	g.AssertEqual(t, filepath.Join(g.DatasetDirectory, testutil.Dataset2), w.FullPackagePath(), false)
 
 	// verify the KptFile contains the expected values
-	g.AssertKptfile(t, w.FullPackagePath(), kptfilev1.KptFile{
+	g.AssertKptfile(t, w.FullPackagePath(), kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -414,21 +414,21 @@ func TestCommand_Run_tag(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.KptFileAPIVersion,
-				Kind:       kptfilev1.KptFileName},
+				APIVersion: kptfilev1alpha2.KptFileAPIVersion,
+				Kind:       kptfilev1alpha2.KptFileName},
 		},
-		Upstream: &kptfilev1.Upstream{
+		Upstream: &kptfilev1alpha2.Upstream{
 			Type: "git",
-			Git: &kptfilev1.Git{
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/tags/v2",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
 			Type: "git",
-			Git: &kptfilev1.GitLock{
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/tags/v2",
@@ -492,11 +492,11 @@ func TestCommand_Run_subdir_at_tag(t *testing.T) {
 			defer clean()
 
 			g := repos[testutil.Upstream]
-			err := createKptfile(rw, &kptfilev1.Git{
+			err := createKptfile(rw, &kptfilev1alpha2.Git{
 				Repo:      g.RepoDirectory,
 				Directory: tc.dir,
 				Ref:       tc.tag,
-			}, kptfilev1.ResourceMerge)
+			}, kptfilev1alpha2.ResourceMerge)
 			if !assert.NoError(t, err) {
 				t.FailNow()
 			}
@@ -550,11 +550,11 @@ func TestCommand_Run_no_subdir_at_valid_tag(t *testing.T) {
 	defer clean()
 
 	g := repos[testutil.Upstream]
-	err := createKptfile(rw, &kptfilev1.Git{
+	err := createKptfile(rw, &kptfilev1alpha2.Git{
 		Repo:      g.RepoDirectory,
 		Directory: dir,
 		Ref:       tag,
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -595,11 +595,11 @@ func TestCommand_Run_no_subdir_at_invalid_tag(t *testing.T) {
 	defer clean()
 
 	g := repos[testutil.Upstream]
-	err := createKptfile(rw, &kptfilev1.Git{
+	err := createKptfile(rw, &kptfilev1alpha2.Git{
 		Repo:      g.RepoDirectory,
 		Directory: dir,
 		Ref:       nonexistentTag,
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -623,11 +623,11 @@ func TestCommand_Run_failInvalidRepo(t *testing.T) {
 	_, w, clean := setupWorkspace(t)
 	defer clean()
 
-	err := createKptfile(w, &kptfilev1.Git{
+	err := createKptfile(w, &kptfilev1alpha2.Git{
 		Repo:      "foo",
 		Directory: "/",
 		Ref:       "refs/heads/master",
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -647,11 +647,11 @@ func TestCommand_Run_failInvalidBranch(t *testing.T) {
 	g, w, clean := setupWorkspace(t)
 	defer clean()
 
-	err := createKptfile(w, &kptfilev1.Git{
+	err := createKptfile(w, &kptfilev1alpha2.Git{
 		Repo:      g.RepoDirectory,
 		Directory: "/",
 		Ref:       "refs/heads/foo",
-	}, kptfilev1.ResourceMerge)
+	}, kptfilev1alpha2.ResourceMerge)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -674,11 +674,11 @@ func TestCommand_Run_failInvalidTag(t *testing.T) {
 	g, w, clean := setupWorkspace(t)
 	defer clean()
 
-	err := createKptfile(w, &kptfilev1.Git{
+	err := createKptfile(w, &kptfilev1alpha2.Git{
 		Repo:      g.RepoDirectory,
 		Directory: "/",
 		Ref:       "refs/tags/foo",
-	}, kptfilev1.FastForward)
+	}, kptfilev1alpha2.FastForward)
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
diff --git a/internal/util/get/example_test.go b/internal/util/get/example_test.go
index 6d0669e3..65c625b4 100644
--- a/internal/util/get/example_test.go
+++ b/internal/util/get/example_test.go
@@ -19,11 +19,11 @@ import (
 
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
 	"github.com/GoogleContainerTools/kpt/internal/util/get"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 )
 
 func ExampleCommand() {
-	err := get.Command{Git: &kptfilev1.Git{
+	err := get.Command{Git: &kptfilev1alpha2.Git{
 		Repo: "https://github.com/example-org/example-repo",
 		Ref:  "v1.0",
 	}}.Run(fake.CtxWithDefaultPrinter())
@@ -33,7 +33,7 @@ func ExampleCommand() {
 }
 
 func ExampleCommand_branch() {
-	err := get.Command{Git: &kptfilev1.Git{
+	err := get.Command{Git: &kptfilev1alpha2.Git{
 		Repo: "https://github.com/example-org/example-repo",
 		Ref:  "refs/heads/v1.0",
 	}}.Run(fake.CtxWithDefaultPrinter())
@@ -43,7 +43,7 @@ func ExampleCommand_branch() {
 }
 
 func ExampleCommand_tag() {
-	err := get.Command{Git: &kptfilev1.Git{
+	err := get.Command{Git: &kptfilev1alpha2.Git{
 		Repo: "https://github.com/example-org/example-repo",
 		Ref:  "refs/tags/v1.0",
 	}}.Run(fake.CtxWithDefaultPrinter())
@@ -53,7 +53,7 @@ func ExampleCommand_tag() {
 }
 
 func ExampleCommand_commit() {
-	err := get.Command{Git: &kptfilev1.Git{
+	err := get.Command{Git: &kptfilev1alpha2.Git{
 		Repo: "https://github.com/example-org/example-repo",
 		Ref:  "8186bef8e5c0621bf80fa8106bd595aae8b62884",
 	}}.Run(fake.CtxWithDefaultPrinter())
@@ -64,7 +64,7 @@ func ExampleCommand_commit() {
 
 func ExampleCommand_subdir() {
 	err := get.Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      "https://github.com/example-org/example-repo",
 			Ref:       "v1.0",
 			Directory: filepath.Join("path", "to", "package"),
@@ -77,7 +77,7 @@ func ExampleCommand_subdir() {
 
 func ExampleCommand_destination() {
 	err := get.Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo: "https://github.com/example-org/example-repo",
 			Ref:  "v1.0",
 		},
diff --git a/internal/util/get/get_test.go b/internal/util/get/get_test.go
index 664c8fe2..958d4597 100644
--- a/internal/util/get/get_test.go
+++ b/internal/util/get/get_test.go
@@ -23,7 +23,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
 	"github.com/GoogleContainerTools/kpt/internal/testutil/pkgbuilder"
 	. "github.com/GoogleContainerTools/kpt/internal/util/get"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 	"sigs.k8s.io/kustomize/kyaml/kio"
 	"sigs.k8s.io/kustomize/kyaml/kio/filters"
@@ -54,7 +54,7 @@ func TestCommand_Run_failNoRevision(t *testing.T) {
 	defer clean()
 
 	err := Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo: "foo",
 		},
 		Destination: w.WorkspaceDirectory,
@@ -79,7 +79,7 @@ func TestCommand_Run(t *testing.T) {
 	defer testutil.Chdir(t, w.WorkspaceDirectory)()
 
 	absPath := filepath.Join(w.WorkspaceDirectory, g.RepoName)
-	err := Command{Git: &kptfilev1.Git{
+	err := Command{Git: &kptfilev1alpha2.Git{
 		Repo:      "file://" + g.RepoDirectory,
 		Ref:       "master",
 		Directory: "/",
@@ -93,7 +93,7 @@ func TestCommand_Run(t *testing.T) {
 	// verify the KptFile contains the expected values
 	commit, err := g.GetCommit()
 	assert.NoError(t, err)
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -101,26 +101,26 @@ func TestCommand_Run(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 				Commit:    commit, // verify the commit matches the repo
 			},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
 	})
 }
@@ -140,7 +140,7 @@ func TestCommand_Run_subdir(t *testing.T) {
 	defer testutil.Chdir(t, w.WorkspaceDirectory)()
 
 	absPath := filepath.Join(w.WorkspaceDirectory, subdir)
-	err := Command{Git: &kptfilev1.Git{
+	err := Command{Git: &kptfilev1alpha2.Git{
 		Repo: g.RepoDirectory, Ref: "refs/heads/master", Directory: subdir},
 		Destination: absPath,
 	}.Run(fake.CtxWithDefaultPrinter())
@@ -152,7 +152,7 @@ func TestCommand_Run_subdir(t *testing.T) {
 	// verify the KptFile contains the expected values
 	commit, err := g.GetCommit()
 	assert.NoError(t, err)
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -160,26 +160,26 @@ func TestCommand_Run_subdir(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
 			Type: "git",
-			Git: &kptfilev1.GitLock{
+			Git: &kptfilev1alpha2.GitLock{
 				Commit:    commit,
 				Directory: subdir,
 				Ref:       "refs/heads/master",
 				Repo:      g.RepoDirectory,
 			},
 		},
-		Upstream: &kptfilev1.Upstream{
+		Upstream: &kptfilev1alpha2.Upstream{
 			Type: "git",
-			Git: &kptfilev1.Git{
+			Git: &kptfilev1alpha2.Git{
 				Directory: subdir,
 				Ref:       "refs/heads/master",
 				Repo:      g.RepoDirectory,
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
 	})
 }
@@ -198,7 +198,7 @@ func TestCommand_Run_destination(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, dest)
 	err := Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.RepoDirectory,
 			Ref:       "master",
 			Directory: "/",
@@ -213,7 +213,7 @@ func TestCommand_Run_destination(t *testing.T) {
 	// verify the KptFile contains the expected values
 	commit, err := g.GetCommit()
 	assert.NoError(t, err)
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -221,26 +221,26 @@ func TestCommand_Run_destination(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 				Commit:    commit,
 			},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
 	})
 }
@@ -262,7 +262,7 @@ func TestCommand_Run_subdirAndDestination(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, dest)
 	err := Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.RepoDirectory,
 			Ref:       "master",
 			Directory: subdir,
@@ -277,7 +277,7 @@ func TestCommand_Run_subdirAndDestination(t *testing.T) {
 	// verify the KptFile contains the expected values
 	commit, err := g.GetCommit()
 	assert.NoError(t, err)
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -285,26 +285,26 @@ func TestCommand_Run_subdirAndDestination(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Commit:    commit,
 				Directory: subdir,
 				Ref:       "master",
 				Repo:      g.RepoDirectory,
 			},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: subdir,
 				Ref:       "master",
 				Repo:      g.RepoDirectory,
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
 	})
 }
@@ -342,7 +342,7 @@ func TestCommand_Run_branch(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, g.RepoName)
 	err = Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.RepoDirectory,
 			Ref:       "refs/heads/exp",
 			Directory: "/",
@@ -355,7 +355,7 @@ func TestCommand_Run_branch(t *testing.T) {
 	g.AssertEqual(t, filepath.Join(g.DatasetDirectory, testutil.Dataset2), absPath, true)
 
 	// verify the KptFile contains the expected values
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -363,26 +363,26 @@ func TestCommand_Run_branch(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/heads/exp",
 				Commit:    commit,
 			},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/heads/exp",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
 	})
 }
@@ -425,7 +425,7 @@ func TestCommand_Run_tag(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, g.RepoName)
 	err = Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.RepoDirectory,
 			Ref:       "refs/tags/v2",
 			Directory: "/",
@@ -438,7 +438,7 @@ func TestCommand_Run_tag(t *testing.T) {
 	g.AssertEqual(t, filepath.Join(g.DatasetDirectory, testutil.Dataset2), absPath, true)
 
 	// verify the KptFile contains the expected values
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -446,26 +446,26 @@ func TestCommand_Run_tag(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/tags/v2",
 				Commit:    commit,
 			},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/tags/v2",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
 	})
 }
@@ -566,7 +566,7 @@ func TestCommand_Run_ref(t *testing.T) {
 
 			absPath := filepath.Join(w.WorkspaceDirectory, repos[testutil.Upstream].RepoName)
 			err = Command{
-				Git: &kptfilev1.Git{
+				Git: &kptfilev1alpha2.Git{
 					Repo:      repos[testutil.Upstream].RepoDirectory,
 					Ref:       ref,
 					Directory: tc.directory,
@@ -595,7 +595,7 @@ func TestCommand_Run_failExistingDir(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, g.RepoName)
 	err := Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.RepoDirectory,
 			Ref:       "master",
 			Directory: "/",
@@ -610,7 +610,7 @@ func TestCommand_Run_failExistingDir(t *testing.T) {
 
 	// verify the cloned contents matches the repository
 	g.AssertEqual(t, filepath.Join(g.DatasetDirectory, testutil.Dataset1), absPath, true)
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -618,26 +618,26 @@ func TestCommand_Run_failExistingDir(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 				Commit:    commit, // verify the commit matches the repo
 			},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
 	})
 
@@ -649,7 +649,7 @@ func TestCommand_Run_failExistingDir(t *testing.T) {
 
 	// try to clone and expect a failure
 	err = Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.RepoDirectory,
 			Ref:       "master",
 			Directory: "/",
@@ -663,7 +663,7 @@ func TestCommand_Run_failExistingDir(t *testing.T) {
 
 	// verify files are unchanged
 	g.AssertEqual(t, filepath.Join(g.DatasetDirectory, testutil.Dataset1), absPath, true)
-	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1alpha2.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -671,26 +671,26 @@ func TestCommand_Run_failExistingDir(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1.TypeMeta.APIVersion,
-				Kind:       kptfilev1.TypeMeta.Kind},
+				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
+				Kind:       kptfilev1alpha2.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1.UpstreamLock{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.GitLock{
+		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 				Commit:    commit, // verify the commit matches the repo
 			},
 		},
-		Upstream: &kptfilev1.Upstream{
-			Type: kptfilev1.GitOrigin,
-			Git: &kptfilev1.Git{
+		Upstream: &kptfilev1alpha2.Upstream{
+			Type: kptfilev1alpha2.GitOrigin,
+			Git: &kptfilev1alpha2.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1.ResourceMerge,
+			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 		},
 	})
 }
@@ -706,7 +706,7 @@ func TestCommand_Run_nonexistingParentDir(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, "more", "dirs", g.RepoName)
 	err := Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.RepoDirectory,
 			Ref:       "master",
 			Directory: "/",
@@ -726,7 +726,7 @@ func TestCommand_Run_failInvalidRepo(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, "foo")
 	err := Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      "foo",
 			Directory: "/",
 			Ref:       "refs/heads/master",
@@ -750,7 +750,7 @@ func TestCommand_Run_failInvalidBranch(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, g.RepoDirectory)
 	err := Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.RepoDirectory,
 			Directory: "/",
 			Ref:       "refs/heads/foo",
@@ -776,7 +776,7 @@ func TestCommand_Run_failInvalidTag(t *testing.T) {
 	defer clean()
 
 	err := Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      g.RepoDirectory,
 			Directory: "/",
 			Ref:       "refs/tags/foo",
@@ -798,7 +798,7 @@ func TestCommand_Run_subpackages(t *testing.T) {
 	testCases := map[string]struct {
 		directory      string
 		ref            string
-		updateStrategy kptfilev1.UpdateStrategyType
+		updateStrategy kptfilev1alpha2.UpdateStrategyType
 		reposContent   map[string][]testutil.Content
 		expectedResult *pkgbuilder.RootPkg
 		expectedErrMsg string
@@ -898,7 +898,7 @@ func TestCommand_Run_subpackages(t *testing.T) {
 		"basic package with explicit update strategy": {
 			directory:      "/",
 			ref:            "master",
-			updateStrategy: kptfilev1.FastForward,
+			updateStrategy: kptfilev1alpha2.FastForward,
 			reposContent: map[string][]testutil.Content{
 				testutil.Upstream: {
 					{
@@ -1295,7 +1295,7 @@ func TestCommand_Run_subpackages(t *testing.T) {
 			destinationDir := filepath.Join(w.WorkspaceDirectory, targetDir)
 
 			err = Command{
-				Git: &kptfilev1.Git{
+				Git: &kptfilev1alpha2.Git{
 					Repo:      upstreamRepo.RepoDirectory,
 					Directory: tc.directory,
 					Ref:       tc.ref,
@@ -1321,7 +1321,7 @@ func TestCommand_Run_subpackages(t *testing.T) {
 			rw := &kio.LocalPackageReadWriter{
 				NoDeleteFiles:  true,
 				PackagePath:    w.FullPackagePath(),
-				MatchFilesGlob: []string{kptfilev1.KptFileName},
+				MatchFilesGlob: []string{kptfilev1alpha2.KptFileName},
 			}
 			err = kio.Pipeline{
 				Inputs:  []kio.Reader{rw},
@@ -1364,7 +1364,7 @@ func TestCommand_Run_symlinks(t *testing.T) {
 
 	destinationDir := filepath.Join(w.WorkspaceDirectory, upstreamRepo.RepoName)
 	err := Command{
-		Git: &kptfilev1.Git{
+		Git: &kptfilev1alpha2.Git{
 			Repo:      upstreamRepo.RepoDirectory,
 			Directory: "/",
 			Ref:       "master",
diff --git a/internal/util/man/man_test.go b/internal/util/man/man_test.go
index 8a62dc2d..11888551 100644
--- a/internal/util/man/man_test.go
+++ b/internal/util/man/man_test.go
@@ -23,7 +23,7 @@ import (
 	"testing"
 
 	. "github.com/GoogleContainerTools/kpt/internal/util/man"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 )
 
@@ -34,8 +34,8 @@ func TestMan_Execute(t *testing.T) {
 	assert.NoError(t, err)
 
 	// write the KptFile
-	err = ioutil.WriteFile(filepath.Join(d, kptfilev1.KptFileName), []byte(`
-apiVersion: kpt.dev/v1
+	err = ioutil.WriteFile(filepath.Join(d, kptfilev1alpha2.KptFileName), []byte(`
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: java
@@ -196,8 +196,8 @@ func TestMan_Execute_failNoManPage(t *testing.T) {
 	}
 
 	// write the KptFile
-	err = ioutil.WriteFile(filepath.Join(d, kptfilev1.KptFileName), []byte(`
-apiVersion: kpt.dev/v1
+	err = ioutil.WriteFile(filepath.Join(d, kptfilev1alpha2.KptFileName), []byte(`
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: java
@@ -229,8 +229,8 @@ func TestMan_Execute_failBadPath(t *testing.T) {
 	assert.NoError(t, err)
 
 	// write the KptFile
-	err = ioutil.WriteFile(filepath.Join(d, kptfilev1.KptFileName), []byte(`
-apiVersion: kpt.dev/v1
+	err = ioutil.WriteFile(filepath.Join(d, kptfilev1alpha2.KptFileName), []byte(`
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: java
@@ -258,8 +258,8 @@ func TestMan_Execute_failLocation(t *testing.T) {
 	assert.NoError(t, err)
 
 	// write the KptFile
-	err = ioutil.WriteFile(filepath.Join(d, kptfilev1.KptFileName), []byte(`
-apiVersion: kpt.dev/v1
+	err = ioutil.WriteFile(filepath.Join(d, kptfilev1alpha2.KptFileName), []byte(`
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: java
diff --git a/internal/util/pkgutil/pkgutil_test.go b/internal/util/pkgutil/pkgutil_test.go
index 8373c2b3..868cf327 100644
--- a/internal/util/pkgutil/pkgutil_test.go
+++ b/internal/util/pkgutil/pkgutil_test.go
@@ -25,7 +25,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
 	"github.com/GoogleContainerTools/kpt/internal/testutil/pkgbuilder"
 	"github.com/GoogleContainerTools/kpt/internal/util/pkgutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 )
 
@@ -411,7 +411,7 @@ func TestFindLocalRecursiveSubpackagesForPaths(t *testing.T) {
 							WithKptfile(
 								pkgbuilder.NewKptfile().
 									WithUpstream("github.com/GoogleContainerTools/kpt",
-										"/", "main", string(kptfilev1.ResourceMerge)),
+										"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 							).
 							WithResource(pkgbuilder.ConfigMapResource),
 					),
@@ -449,7 +449,7 @@ func TestFindLocalRecursiveSubpackagesForPaths(t *testing.T) {
 							WithKptfile(
 								pkgbuilder.NewKptfile().
 									WithUpstream("github.com/GoogleContainerTools/kpt",
-										"/", "main", string(kptfilev1.ResourceMerge)),
+										"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 							).
 							WithResource(pkgbuilder.ConfigMapResource).
 							WithSubPackages(
@@ -459,7 +459,7 @@ func TestFindLocalRecursiveSubpackagesForPaths(t *testing.T) {
 											WithKptfile(
 												pkgbuilder.NewKptfile().
 													WithUpstream("github.com/GoogleContainerTools/kpt",
-														"/", "main", string(kptfilev1.ResourceMerge)),
+														"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 											).
 											WithResource(pkgbuilder.ConfigMapResource),
 									),
@@ -522,7 +522,7 @@ func TestFindLocalRecursiveSubpackagesForPaths(t *testing.T) {
 							WithKptfile(
 								pkgbuilder.NewKptfile().
 									WithUpstream("github.com/GoogleContainerTools/kpt",
-										"/", "main", string(kptfilev1.ResourceMerge)),
+										"/", "main", string(kptfilev1alpha2.ResourceMerge)),
 							),
 					),
 			},
diff --git a/internal/util/update/update_test.go b/internal/util/update/update_test.go
index e76bb52d..a56e20eb 100644
--- a/internal/util/update/update_test.go
+++ b/internal/util/update/update_test.go
@@ -28,7 +28,7 @@ import (
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
 	"github.com/GoogleContainerTools/kpt/internal/testutil/pkgbuilder"
 	. "github.com/GoogleContainerTools/kpt/internal/util/update"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"github.com/stretchr/testify/assert"
 	"sigs.k8s.io/kustomize/kyaml/copyutil"
@@ -51,8 +51,8 @@ func TestMain(m *testing.M) {
 // - Modify upstream with new content
 // - Update the local package to fetch the upstream content
 func TestCommand_Run_noRefChanges(t *testing.T) {
-	for i := range kptfilev1.UpdateStrategies {
-		strategy := kptfilev1.UpdateStrategies[i]
+	for i := range kptfilev1alpha2.UpdateStrategies {
+		strategy := kptfilev1alpha2.UpdateStrategies[i]
 		t.Run(string(strategy), func(t *testing.T) {
 			// Setup the test upstream and local packages
 			g := &testutil.TestSetupManager{
@@ -100,8 +100,8 @@ func TestCommand_Run_noRefChanges(t *testing.T) {
 }
 
 func TestCommand_Run_subDir(t *testing.T) {
-	for i := range kptfilev1.UpdateStrategies {
-		strategy := kptfilev1.UpdateStrategies[i]
+	for i := range kptfilev1alpha2.UpdateStrategies {
+		strategy := kptfilev1alpha2.UpdateStrategies[i]
 		t.Run(string(strategy), func(t *testing.T) {
 			// Setup the test upstream and local packages
 			g := &testutil.TestSetupManager{
@@ -153,13 +153,13 @@ func TestCommand_Run_subDir(t *testing.T) {
 
 func TestCommand_Run_noChanges(t *testing.T) {
 	updates := []struct {
-		updater kptfilev1.UpdateStrategyType
+		updater kptfilev1alpha2.UpdateStrategyType
 		err     string
 	}{
-		{kptfilev1.FastForward, ""},
-		{kptfilev1.ForceDeleteReplace, ""},
+		{kptfilev1alpha2.FastForward, ""},
+		{kptfilev1alpha2.ForceDeleteReplace, ""},
 		// {AlphaGitPatch, "no updates"},
-		{kptfilev1.ResourceMerge, ""},
+		{kptfilev1alpha2.ResourceMerge, ""},
 	}
 	for i := range updates {
 		u := updates[i]
@@ -212,8 +212,8 @@ func TestCommand_Run_noChanges(t *testing.T) {
 }
 
 func TestCommand_Run_noCommit(t *testing.T) {
-	for i := range kptfilev1.UpdateStrategies {
-		strategy := kptfilev1.UpdateStrategies[i]
+	for i := range kptfilev1alpha2.UpdateStrategies {
+		strategy := kptfilev1alpha2.UpdateStrategies[i]
 		t.Run(string(strategy), func(t *testing.T) {
 			// Setup the test upstream and local packages
 			g := &testutil.TestSetupManager{
@@ -259,8 +259,8 @@ func TestCommand_Run_noCommit(t *testing.T) {
 }
 
 func TestCommand_Run_noAdd(t *testing.T) {
-	for i := range kptfilev1.UpdateStrategies {
-		strategy := kptfilev1.UpdateStrategies[i]
+	for i := range kptfilev1alpha2.UpdateStrategies {
+		strategy := kptfilev1alpha2.UpdateStrategies[i]
 		t.Run(string(strategy), func(t *testing.T) {
 			// Setup the test upstream and local packages
 			g := &testutil.TestSetupManager{
@@ -309,18 +309,18 @@ func TestCommand_Run_noGitRepo(t *testing.T) {
 	defer os.RemoveAll(d)
 
 	kf := kptfileutil.DefaultKptfile(filepath.Base(d))
-	kf.Upstream = &kptfilev1.Upstream{
-		Type: kptfilev1.GitOrigin,
-		Git: &kptfilev1.Git{
+	kf.Upstream = &kptfilev1alpha2.Upstream{
+		Type: kptfilev1alpha2.GitOrigin,
+		Git: &kptfilev1alpha2.Git{
 			Repo:      "https://github.com/GoogleContainerTools/kpt",
 			Directory: "/",
 			Ref:       "main",
 		},
-		UpdateStrategy: kptfilev1.ResourceMerge,
+		UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 	}
-	kf.UpstreamLock = &kptfilev1.UpstreamLock{
-		Type: kptfilev1.GitOrigin,
-		Git: &kptfilev1.GitLock{
+	kf.UpstreamLock = &kptfilev1alpha2.UpstreamLock{
+		Type: kptfilev1alpha2.GitOrigin,
+		Git: &kptfilev1alpha2.GitLock{
 			Repo:      "https://github.com/GoogleContainerTools/kpt",
 			Directory: "/",
 			Ref:       "main",
@@ -339,7 +339,7 @@ func TestCommand_Run_noGitRepo(t *testing.T) {
 
 func TestCommand_Run_localPackageChanges(t *testing.T) {
 	testCases := map[string]struct {
-		strategy        kptfilev1.UpdateStrategyType
+		strategy        kptfilev1alpha2.UpdateStrategyType
 		initialUpstream testutil.Content
 		updatedUpstream testutil.Content
 		updatedLocal    testutil.Content
@@ -348,7 +348,7 @@ func TestCommand_Run_localPackageChanges(t *testing.T) {
 		expectedCommit  func(writer *testutil.TestSetupManager) (string, error)
 	}{
 		"update using resource-merge strategy with local changes": {
-			strategy: kptfilev1.ResourceMerge,
+			strategy: kptfilev1alpha2.ResourceMerge,
 			initialUpstream: testutil.Content{
 				Data:   testutil.Dataset1,
 				Branch: masterBranch,
@@ -367,7 +367,7 @@ func TestCommand_Run_localPackageChanges(t *testing.T) {
 			},
 		},
 		"update using fast-forward strategy with local changes": {
-			strategy: kptfilev1.FastForward,
+			strategy: kptfilev1alpha2.FastForward,
 			initialUpstream: testutil.Content{
 				Data:   testutil.Dataset1,
 				Branch: masterBranch,
@@ -392,7 +392,7 @@ func TestCommand_Run_localPackageChanges(t *testing.T) {
 			},
 		},
 		"update using force-delete-replace strategy with local changes": {
-			strategy: kptfilev1.ForceDeleteReplace,
+			strategy: kptfilev1alpha2.ForceDeleteReplace,
 			initialUpstream: testutil.Content{
 				Data:   testutil.Dataset1,
 				Branch: masterBranch,
@@ -411,7 +411,7 @@ func TestCommand_Run_localPackageChanges(t *testing.T) {
 			},
 		},
 		"conflicting field with resource-merge strategy": {
-			strategy: kptfilev1.ResourceMerge,
+			strategy: kptfilev1alpha2.ResourceMerge,
 			initialUpstream: testutil.Content{
 				Pkg: pkgbuilder.NewRootPkg().
 					WithResource(pkgbuilder.DeploymentResource),
@@ -437,7 +437,7 @@ func TestCommand_Run_localPackageChanges(t *testing.T) {
 			},
 		},
 		"conflicting field with force-delete-replace strategy": {
-			strategy: kptfilev1.ForceDeleteReplace,
+			strategy: kptfilev1alpha2.ForceDeleteReplace,
 			initialUpstream: testutil.Content{
 				Pkg: pkgbuilder.NewRootPkg().
 					WithResource(pkgbuilder.DeploymentResource),
@@ -531,8 +531,8 @@ func TestCommand_Run_localPackageChanges(t *testing.T) {
 // TestCommand_Run_toBranchRef verifies the package contents are set to the contents of the branch
 // it was updated to.
 func TestCommand_Run_toBranchRef(t *testing.T) {
-	for i := range kptfilev1.UpdateStrategies {
-		strategy := kptfilev1.UpdateStrategies[i]
+	for i := range kptfilev1alpha2.UpdateStrategies {
+		strategy := kptfilev1alpha2.UpdateStrategies[i]
 		t.Run(string(strategy), func(t *testing.T) {
 			// Setup the test upstream and local packages
 			g := &testutil.TestSetupManager{
@@ -592,8 +592,8 @@ func TestCommand_Run_toBranchRef(t *testing.T) {
 // TestCommand_Run_toTagRef verifies the package contents are set to the contents of the tag
 // it was updated to.
 func TestCommand_Run_toTagRef(t *testing.T) {
-	for i := range kptfilev1.UpdateStrategies {
-		strategy := kptfilev1.UpdateStrategies[i]
+	for i := range kptfilev1alpha2.UpdateStrategies {
+		strategy := kptfilev1alpha2.UpdateStrategies[i]
 		t.Run(string(strategy), func(t *testing.T) {
 			// Setup the test upstream and local packages
 			g := &testutil.TestSetupManager{
@@ -651,7 +651,7 @@ func TestCommand_Run_toTagRef(t *testing.T) {
 
 // TestCommand_ResourceMerge_NonKRMUpdates tests if the local non KRM files are updated
 func TestCommand_ResourceMerge_NonKRMUpdates(t *testing.T) {
-	strategies := []kptfilev1.UpdateStrategyType{kptfilev1.ResourceMerge}
+	strategies := []kptfilev1alpha2.UpdateStrategyType{kptfilev1alpha2.ResourceMerge}
 	for i := range strategies {
 		strategy := strategies[i]
 		t.Run(string(strategy), func(t *testing.T) {
@@ -731,8 +731,8 @@ func TestCommand_Run_noUpstreamReference(t *testing.T) {
 
 // TestCommand_Run_failInvalidPath verifies Run fails if the path is invalid
 func TestCommand_Run_failInvalidPath(t *testing.T) {
-	for i := range kptfilev1.UpdateStrategies {
-		strategy := kptfilev1.UpdateStrategies[i]
+	for i := range kptfilev1alpha2.UpdateStrategies {
+		strategy := kptfilev1alpha2.UpdateStrategies[i]
 		t.Run(string(strategy), func(t *testing.T) {
 			path := filepath.Join("fake", "path")
 			err := Command{
@@ -813,8 +813,8 @@ func TestCommand_Run_badUpstreamLock(t *testing.T) {
 
 // TestCommand_Run_failInvalidRef verifies Run fails if the ref is invalid
 func TestCommand_Run_failInvalidRef(t *testing.T) {
-	for i := range kptfilev1.UpdateStrategies {
-		strategy := kptfilev1.UpdateStrategies[i]
+	for i := range kptfilev1alpha2.UpdateStrategies {
+		strategy := kptfilev1alpha2.UpdateStrategies[i]
 		t.Run(string(strategy), func(t *testing.T) {
 			g := &testutil.TestSetupManager{
 				T: t,
@@ -972,7 +972,7 @@ func TestCommand_Run_symlinks(t *testing.T) {
 }
 
 func TestCommand_Run_badStrategy(t *testing.T) {
-	strategy := kptfilev1.UpdateStrategyType("foo")
+	strategy := kptfilev1alpha2.UpdateStrategyType("foo")
 
 	// Setup the test upstream and local packages
 	g := &testutil.TestSetupManager{
@@ -1043,10 +1043,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
-						kptfilev1.FastForward,
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
+						kptfilev1alpha2.FastForward,
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1094,8 +1094,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1111,14 +1111,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.FastForward,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1170,8 +1170,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1189,14 +1189,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.FastForward,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1250,20 +1250,20 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
 					},
 					expectedErrMsg: "subpackage \"abc\" added in both upstream and local",
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.FastForward,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1301,10 +1301,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
-						kptfilev1.FastForward,
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
+						kptfilev1alpha2.FastForward,
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1340,10 +1340,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
-						kptfilev1.FastForward,
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
+						kptfilev1alpha2.FastForward,
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1391,8 +1391,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 				// shouldn't be deleted here since it doesn't really have any
 				// local changes.
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1407,9 +1407,9 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.FastForward,
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.FastForward,
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1459,8 +1459,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1476,14 +1476,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.FastForward,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1521,10 +1521,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
-						kptfilev1.FastForward,
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
+						kptfilev1alpha2.FastForward,
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1567,8 +1567,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1584,14 +1584,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.FastForward,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1628,10 +1628,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
-						kptfilev1.FastForward,
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
+						kptfilev1alpha2.FastForward,
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1677,10 +1677,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
-						kptfilev1.FastForward,
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
+						kptfilev1alpha2.FastForward,
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1721,8 +1721,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ResourceMerge,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1733,14 +1733,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						WithFile("data.txt", "local content"),
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.FastForward,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1.UpdateStrategyType{
-						kptfilev1.ForceDeleteReplace,
+					strategies: []kptfilev1alpha2.UpdateStrategyType{
+						kptfilev1alpha2.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1797,7 +1797,7 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 				rw := &kio.LocalPackageReadWriter{
 					NoDeleteFiles:  true,
 					PackagePath:    g.LocalWorkspace.FullPackagePath(),
-					MatchFilesGlob: []string{kptfilev1.KptFileName},
+					MatchFilesGlob: []string{kptfilev1alpha2.KptFileName},
 				}
 				err = kio.Pipeline{
 					Inputs:  []kio.Reader{rw},
@@ -1827,13 +1827,13 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 }
 
 type resultForStrategy struct {
-	strategies     []kptfilev1.UpdateStrategyType
+	strategies     []kptfilev1alpha2.UpdateStrategyType
 	expectedLocal  *pkgbuilder.RootPkg
 	expectedErrMsg string
 }
 
-func findStrategiesForTestCase(expectedResults []resultForStrategy) []kptfilev1.UpdateStrategyType {
-	var strategies []kptfilev1.UpdateStrategyType
+func findStrategiesForTestCase(expectedResults []resultForStrategy) []kptfilev1alpha2.UpdateStrategyType {
+	var strategies []kptfilev1alpha2.UpdateStrategyType
 	for _, er := range expectedResults {
 		strategies = append(strategies, er.strategies...)
 	}
@@ -1841,7 +1841,7 @@ func findStrategiesForTestCase(expectedResults []resultForStrategy) []kptfilev1.
 }
 
 func findExpectedResultForStrategy(strategyResults []resultForStrategy,
-	strategy kptfilev1.UpdateStrategyType) resultForStrategy {
+	strategy kptfilev1alpha2.UpdateStrategyType) resultForStrategy {
 	for _, sr := range strategyResults {
 		for _, s := range sr.strategies {
 			if s == strategy {
@@ -3329,7 +3329,7 @@ func TestRun_remote_subpackages(t *testing.T) {
 			rw := &kio.LocalPackageReadWriter{
 				NoDeleteFiles:  true,
 				PackagePath:    g.LocalWorkspace.FullPackagePath(),
-				MatchFilesGlob: []string{kptfilev1.KptFileName},
+				MatchFilesGlob: []string{kptfilev1alpha2.KptFileName},
 			}
 			err = kio.Pipeline{
 				Inputs:  []kio.Reader{rw},
@@ -3441,14 +3441,14 @@ func TestRootPackageIsUnfetched(t *testing.T) {
 
 			w.PackageDir = testPackageName
 			kf := kptfileutil.DefaultKptfile(testPackageName)
-			kf.Upstream = &kptfilev1.Upstream{
-				Type: kptfilev1.GitOrigin,
-				Git: &kptfilev1.Git{
+			kf.Upstream = &kptfilev1alpha2.Upstream{
+				Type: kptfilev1alpha2.GitOrigin,
+				Git: &kptfilev1alpha2.Git{
 					Repo:      repos[testutil.Upstream].RepoDirectory,
 					Directory: tc.directory,
 					Ref:       tc.ref,
 				},
-				UpdateStrategy: kptfilev1.ResourceMerge,
+				UpdateStrategy: kptfilev1alpha2.ResourceMerge,
 			}
 			testutil.AddKptfileToWorkspace(t, w, kf)
 
diff --git a/pkg/api/kptfile/v1/validation_test.go b/pkg/api/kptfile/v1alpha2/validation_test.go
similarity index 99%
rename from pkg/api/kptfile/v1/validation_test.go
rename to pkg/api/kptfile/v1alpha2/validation_test.go
index db2042f8..8bc5c5fa 100644
--- a/pkg/api/kptfile/v1/validation_test.go
+++ b/pkg/api/kptfile/v1alpha2/validation_test.go
@@ -11,7 +11,7 @@
 // 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 v1
+package v1alpha2
 
 import (
 	"testing"
diff --git a/pkg/kptfile/kptfileutil/util_test.go b/pkg/kptfile/kptfileutil/util_test.go
index 6116b478..79798a6b 100644
--- a/pkg/kptfile/kptfileutil/util_test.go
+++ b/pkg/kptfile/kptfileutil/util_test.go
@@ -21,7 +21,7 @@ import (
 	"strings"
 	"testing"
 
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 )
 
@@ -33,13 +33,13 @@ func TestValidateInventory(t *testing.T) {
 		t.Errorf("nil inventory should not validate")
 	}
 	// Empty inventory should not validate
-	inv := &kptfilev1.Inventory{}
+	inv := &kptfilev1alpha2.Inventory{}
 	isValid, err = ValidateInventory(inv)
 	if isValid || err == nil {
 		t.Errorf("empty inventory should not validate")
 	}
 	// Empty inventory parameters strings should not validate
-	inv = &kptfilev1.Inventory{
+	inv = &kptfilev1alpha2.Inventory{
 		Namespace:   "",
 		Name:        "",
 		InventoryID: "",
@@ -49,7 +49,7 @@ func TestValidateInventory(t *testing.T) {
 		t.Errorf("empty inventory parameters strings should not validate")
 	}
 	// Inventory with non-empty namespace, name, and id should validate.
-	inv = &kptfilev1.Inventory{
+	inv = &kptfilev1alpha2.Inventory{
 		Namespace:   "test-namespace",
 		Name:        "test-name",
 		InventoryID: "test-id",
@@ -66,7 +66,7 @@ func TestUpdateKptfile(t *testing.T) {
 		if !assert.NoError(t, err) {
 			t.FailNow()
 		}
-		err = ioutil.WriteFile(filepath.Join(dir, kptfilev1.KptFileName), []byte(content), 0600)
+		err = ioutil.WriteFile(filepath.Join(dir, kptfilev1alpha2.KptFileName), []byte(content), 0600)
 		if !assert.NoError(t, err) {
 			t.FailNow()
 		}
@@ -82,26 +82,26 @@ func TestUpdateKptfile(t *testing.T) {
 	}{
 		"no pipeline and no upstream info": {
 			origin: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: base
 `,
 			updated: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: base
 `,
 			local: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
 `,
 			updateUpstream: false,
 			expected: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -110,7 +110,7 @@ metadata:
 
 		"upstream information is not copied from upstream unless updateUpstream is true": {
 			origin: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -122,7 +122,7 @@ upstream:
     ref: v1
 `,
 			updated: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -134,14 +134,14 @@ upstream:
     ref: v2
 `,
 			local: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
 `,
 			updateUpstream: false,
 			expected: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -150,7 +150,7 @@ metadata:
 
 		"upstream information is copied from upstream when updateUpstream is true": {
 			origin: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -162,7 +162,7 @@ upstream:
     ref: v1
 `,
 			updated: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -181,14 +181,14 @@ upstreamLock:
     commit: abc123
 `,
 			local: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
 `,
 			updateUpstream: true,
 			expected: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -210,7 +210,7 @@ upstreamLock:
 
 		"pipeline in upstream replaces local": {
 			origin: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -219,7 +219,7 @@ pipeline:
     - image: foo:bar
 `,
 			updated: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -231,7 +231,7 @@ pipeline:
     - image: some:image
 `,
 			local: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -244,7 +244,7 @@ pipeline:
 `,
 			updateUpstream: true,
 			expected: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -259,7 +259,7 @@ pipeline:
 
 		"pipeline in local remains if there are no changes in upstream": {
 			origin: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -268,7 +268,7 @@ pipeline:
     - image: foo:bar
 `,
 			updated: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -277,7 +277,7 @@ pipeline:
     - image: foo:bar
 `,
 			local: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -290,7 +290,7 @@ pipeline:
 `,
 			updateUpstream: true,
 			expected: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -305,19 +305,19 @@ pipeline:
 
 		"pipeline remains if it is only added locally": {
 			origin: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
 `,
 			updated: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
 `,
 			local: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -328,7 +328,7 @@ pipeline:
 `,
 			updateUpstream: true,
 			expected: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -341,7 +341,7 @@ pipeline:
 
 		"pipeline in local is emptied if it is gone from upstream": {
 			origin: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -350,13 +350,13 @@ pipeline:
     - image: foo:bar
 `,
 			updated: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
 `,
 			local: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -367,7 +367,7 @@ pipeline:
 `,
 			updateUpstream: false,
 			expected: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: foo
@@ -399,7 +399,7 @@ pipeline: {}
 				t.FailNow()
 			}
 
-			c, err := ioutil.ReadFile(filepath.Join(dirs["local"], kptfilev1.KptFileName))
+			c, err := ioutil.ReadFile(filepath.Join(dirs["local"], kptfilev1alpha2.KptFileName))
 			if !assert.NoError(t, err) {
 				t.FailNow()
 			}
diff --git a/pkg/live/helpers_test.go b/pkg/live/helpers_test.go
index 30262783..ed977219 100644
--- a/pkg/live/helpers_test.go
+++ b/pkg/live/helpers_test.go
@@ -16,7 +16,7 @@ package live
 
 var (
 	kptFile = `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
@@ -33,7 +33,7 @@ inventory:
   inventoryID: XXXXXXXXXX-FOOOOOO
 `
 	kptFileWithPipeline = `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: kptfileWithPipeline
@@ -86,7 +86,7 @@ spec:
     singular: custom
   scope: Cluster
   versions:
-  - name: v1
+  - name: v1alpha2
     schema:
       openAPIV3Schema:
         description: This is for testing
@@ -96,7 +96,7 @@ spec:
     subresources: {}
 `
 	cr = `
-apiVersion: custom.io/v1
+apiVersion: custom.io/v1alpha2
 kind: Custom
 metadata:
   name: cr
diff --git a/pkg/live/load_test.go b/pkg/live/load_test.go
index 7765bdc8..4653fc85 100644
--- a/pkg/live/load_test.go
+++ b/pkg/live/load_test.go
@@ -21,7 +21,7 @@ import (
 	"testing"
 
 	"github.com/GoogleContainerTools/kpt/internal/testutil/pkgbuilder"
-	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 	"k8s.io/apimachinery/pkg/runtime/schema"
 	cmdtesting "k8s.io/kubectl/pkg/cmd/testing"
diff --git a/pkg/live/rgstream_test.go b/pkg/live/rgstream_test.go
index c1cce7ec..61767b3a 100644
--- a/pkg/live/rgstream_test.go
+++ b/pkg/live/rgstream_test.go
@@ -176,7 +176,7 @@ metadata:
 		},
 		"Kptfile with wrong kind is invalid": {
 			kptfile: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: foo
 metadata:
   name: test1
@@ -196,7 +196,7 @@ spec:
 		},
 		"Wrong fields (foo/bar) in kptfile is invalid": {
 			kptfile: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 foo: bar
 `,
@@ -204,7 +204,7 @@ foo: bar
 		},
 		"Kptfile with deployment/replicas fields is invalid": {
 			kptfile: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test-deployment
@@ -215,7 +215,7 @@ spec:
 		},
 		"Wrong fields (foo/bar) in kptfile inventory is invalid": {
 			kptfile: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
@@ -232,14 +232,14 @@ inventory:
 		},
 		"Kptfile with only GVK is valid": {
 			kptfile: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 `,
 			expected: true,
 		},
 		"Kptfile missing optional inventory is still valid": {
 			kptfile: `
-apiVersion: kpt.dev/v1
+apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: test1
diff --git a/thirdparty/cli-utils/status/cmdstatus_test.go b/thirdparty/cli-utils/status/cmdstatus_test.go
index a94bc850..e400ec83 100644
--- a/thirdparty/cli-utils/status/cmdstatus_test.go
+++ b/thirdparty/cli-utils/status/cmdstatus_test.go
@@ -12,7 +12,7 @@ import (
 
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
 	"github.com/GoogleContainerTools/kpt/internal/testutil"
-	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/GoogleContainerTools/kpt/pkg/kptfile/kptfileutil"
 	"github.com/GoogleContainerTools/kpt/pkg/live"
 	"github.com/stretchr/testify/assert"
@@ -52,7 +52,7 @@ func TestStatusCommand(t *testing.T) {
 		pollUntil      string
 		printer        string
 		timeout        time.Duration
-		kptfileInv     *kptfilev1.Inventory
+		kptfileInv     *kptfilev1alpha2.Inventory
 		inventory      []object.ObjMetadata
 		events         []pollevent.Event
 		expectedErrMsg string
@@ -67,7 +67,7 @@ func TestStatusCommand(t *testing.T) {
 			expectedErrMsg: "pollUntil must be one of \"known\", \"current\", \"deleted\", \"forever\"",
 		},
 		"no inventory in live state": {
-			kptfileInv: &kptfilev1.Inventory{
+			kptfileInv: &kptfilev1alpha2.Inventory{
 				Name:        "foo",
 				Namespace:   "default",
 				InventoryID: "test",
@@ -77,7 +77,7 @@ func TestStatusCommand(t *testing.T) {
 		"wait for all known": {
 			pollUntil: "known",
 			printer:   "events",
-			kptfileInv: &kptfilev1.Inventory{
+			kptfileInv: &kptfilev1alpha2.Inventory{
 				Name:        "foo",
 				Namespace:   "default",
 				InventoryID: "test",
@@ -112,7 +112,7 @@ statefulset.apps/bar is Current: current
 		"wait for all current": {
 			pollUntil: "current",
 			printer:   "events",
-			kptfileInv: &kptfilev1.Inventory{
+			kptfileInv: &kptfilev1alpha2.Inventory{
 				Name:        "foo",
 				Namespace:   "default",
 				InventoryID: "test",
@@ -165,7 +165,7 @@ deployment.apps/foo is Current: current
 		"wait for all deleted": {
 			pollUntil: "deleted",
 			printer:   "events",
-			kptfileInv: &kptfilev1.Inventory{
+			kptfileInv: &kptfilev1alpha2.Inventory{
 				Name:        "foo",
 				Namespace:   "default",
 				InventoryID: "test",
@@ -201,7 +201,7 @@ deployment.apps/foo is NotFound: notFound
 			pollUntil: "forever",
 			printer:   "events",
 			timeout:   2 * time.Second,
-			kptfileInv: &kptfilev1.Inventory{
+			kptfileInv: &kptfilev1alpha2.Inventory{
 				Name:        "foo",
 				Namespace:   "default",
 				InventoryID: "test",
diff --git a/thirdparty/cmdconfig/commands/cmdtree/cmdtree_test.go b/thirdparty/cmdconfig/commands/cmdtree/cmdtree_test.go
index 017c118a..9f9f0fbd 100644
--- a/thirdparty/cmdconfig/commands/cmdtree/cmdtree_test.go
+++ b/thirdparty/cmdconfig/commands/cmdtree/cmdtree_test.go
@@ -276,7 +276,7 @@ spec:
 		return
 	}
 
-	err = ioutil.WriteFile(filepath.Join(d, "Kptfile"), []byte(`apiVersion: kpt.dev/v1
+	err = ioutil.WriteFile(filepath.Join(d, "Kptfile"), []byte(`apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: mainpkg
@@ -286,7 +286,7 @@ openAPI:
 	if !assert.NoError(t, err) {
 		return
 	}
-	err = ioutil.WriteFile(filepath.Join(d, "subpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1
+	err = ioutil.WriteFile(filepath.Join(d, "subpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: subpkg
@@ -364,7 +364,7 @@ spec:
 		return
 	}
 
-	err = ioutil.WriteFile(filepath.Join(d, "Mainpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1
+	err = ioutil.WriteFile(filepath.Join(d, "Mainpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: Mainpkg
@@ -372,7 +372,7 @@ metadata:
 	if !assert.NoError(t, err) {
 		return
 	}
-	err = ioutil.WriteFile(filepath.Join(d, "Mainpkg", "Subpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1
+	err = ioutil.WriteFile(filepath.Join(d, "Mainpkg", "Subpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: Subpkg
diff --git a/thirdparty/kyaml/runfn/runfn_test.go b/thirdparty/kyaml/runfn/runfn_test.go
index 66727b2c..0475ad56 100644
--- a/thirdparty/kyaml/runfn/runfn_test.go
+++ b/thirdparty/kyaml/runfn/runfn_test.go
@@ -12,8 +12,8 @@ import (
 	"testing"
 
 	"github.com/GoogleContainerTools/kpt/internal/printer/fake"
-	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
-	v1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1alpha2"
+	"github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
 	"github.com/stretchr/testify/assert"
 
 	"sigs.k8s.io/kustomize/kyaml/copyutil"
@@ -44,7 +44,7 @@ stringMatch: Deployment
 replace: ReplicaSet
 `
 
-	KptfileData = `apiVersion: kpt.dev/v1
+	KptfileData = `apiVersion: kpt.dev/v1alpha2
 kind: Kptfile
 metadata:
   name: kptfile
@@ -253,7 +253,7 @@ func TestCmd_Execute_includeMetaResources(t *testing.T) {
 
 	// write a Kptfile to the directory of configuration
 	if !assert.NoError(t, ioutil.WriteFile(
-		filepath.Join(dir, v1.KptFileName), []byte(KptfileData), 0600)) {
+		filepath.Join(dir, v1alpha2.KptFileName), []byte(KptfileData), 0600)) {
 		return
 	}
 
@@ -269,7 +269,7 @@ func TestCmd_Execute_includeMetaResources(t *testing.T) {
 		t.FailNow()
 	}
 	b, err := ioutil.ReadFile(
-		filepath.Join(dir, v1.KptFileName))
+		filepath.Join(dir, v1alpha2.KptFileName))
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}
@@ -288,7 +288,7 @@ func TestCmd_Execute_notIncludeMetaResources(t *testing.T) {
 
 	// write a Kptfile to the directory of configuration
 	if !assert.NoError(t, ioutil.WriteFile(
-		filepath.Join(dir, v1.KptFileName), []byte(KptfileData), 0600)) {
+		filepath.Join(dir, v1alpha2.KptFileName), []byte(KptfileData), 0600)) {
 		return
 	}
 
@@ -302,7 +302,7 @@ func TestCmd_Execute_notIncludeMetaResources(t *testing.T) {
 		t.FailNow()
 	}
 	b, err := ioutil.ReadFile(
-		filepath.Join(dir, v1.KptFileName))
+		filepath.Join(dir, v1alpha2.KptFileName))
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}