Repository: GoogleContainerTools/kpt
Pull request #2266 (2021-06-16 23:11:47)

Let 'all' be the default make target and include 'generate'.
Include "generate" in the default make target. Hopefully it will help avoid PRs failing the build due to out-of-sync docs.

This also updates script for adding license headers to always exclude the generated files. That avoids the issue where ordering of the `generate` and `license` target matter.



Patch:
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 2da2984d..f0dc56f3 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,3 +1,17 @@
+# 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.
+
 blank_issues_enabled: true
 contact_links:
   - name: kpt Documentation
diff --git a/.github/workflows/firebase-hosting-merge.yml b/.github/workflows/firebase-hosting-merge.yml
index 2b39edd5..3e001c75 100644
--- a/.github/workflows/firebase-hosting-merge.yml
+++ b/.github/workflows/firebase-hosting-merge.yml
@@ -1,3 +1,17 @@
+# 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.
+
 # This file was initially auto-generated by the Firebase CLI
 # https://github.com/firebase/firebase-tools
 
diff --git a/Makefile b/Makefile
index a665f5f6..db4aecd2 100644
--- a/Makefile
+++ b/Makefile
@@ -24,11 +24,11 @@ GOBIN := $(shell go env GOPATH)/bin
 # By default, make test-fn-render/test-fn-eval will run all tests.
 T ?= ".*"
 
+all: generate license fix vet fmt lint test build buildall tidy
+
 build:
 	go build -o $(GOBIN)/kpt -v .
 
-all: license fix vet fmt lint test build buildall tidy
-
 buildall:
 	GOOS=windows go build -o /dev/null
 	GOOS=linux go build -o /dev/null
diff --git a/internal/cmdcomplete/complete.go b/internal/cmdcomplete/complete.go
index a5eeb952..5e637221 100644
--- a/internal/cmdcomplete/complete.go
+++ b/internal/cmdcomplete/complete.go
@@ -18,7 +18,7 @@ package cmdcomplete
 import (
 	"strings"
 
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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(kptfilev1alpha2.UpdateStrategiesAsStrings()...))
+			cc.Flags[flag.Name] = predict.Options(predict.OptValues(kptfilev1.UpdateStrategiesAsStrings()...))
 			return
 		}
 		if flag.Name == "pattern" {
diff --git a/internal/cmdget/cmdget.go b/internal/cmdget/cmdget.go
index 335ccfe8..901c84b2 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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(kptfilev1alpha2.ResourceMerge),
+	c.Flags().StringVar(&r.strategy, "strategy", string(kptfilev1.ResourceMerge),
 		"update strategy that should be used when updating this package -- must be one of: "+
-			strings.Join(kptfilev1alpha2.UpdateStrategiesAsStrings(), ","))
+			strings.Join(kptfilev1.UpdateStrategiesAsStrings(), ","))
 	return r
 }
 
@@ -82,7 +82,7 @@ func (r *Runner) preRunE(_ *cobra.Command, args []string) error {
 	}
 	r.Get.Destination = string(p.UniquePath)
 
-	strategy, err := kptfilev1alpha2.ToUpdateStrategy(r.strategy)
+	strategy, err := kptfilev1.ToUpdateStrategy(r.strategy)
 	if err != nil {
 		return err
 	}
diff --git a/internal/cmdinit/cmdinit.go b/internal/cmdinit/cmdinit.go
index 0e39f094..e508dcb8 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, kptfilev1alpha2.KptFileName)); os.IsNotExist(err) {
+	if _, err = os.Stat(filepath.Join(up, kptfilev1.KptFileName)); os.IsNotExist(err) {
 		pr.Printf("writing %s\n", filepath.Join(args[0], "Kptfile"))
-		k := kptfilev1alpha2.KptFile{
+		k := kptfilev1.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: &kptfilev1alpha2.PackageInfo{
+			Info: &kptfilev1.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 = kptfilev1alpha2.TypeMeta.Kind
-		k.APIVersion = kptfilev1alpha2.TypeMeta.APIVersion
+		k.Kind = kptfilev1.TypeMeta.Kind
+		k.APIVersion = kptfilev1.TypeMeta.APIVersion
 
 		err = func() error {
-			f, err := os.Create(filepath.Join(up, kptfilev1alpha2.KptFileName))
+			f, err := os.Create(filepath.Join(up, kptfilev1.KptFileName))
 			if err != nil {
 				return err
 			}
diff --git a/internal/cmdliveinit/cmdliveinit.go b/internal/cmdliveinit/cmdliveinit.go
index 87745852..5335dc61 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, &kptfilev1alpha2.Inventory{
+	err = updateKptfile(c.Pkg, &kptfilev1.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 *kptfilev1alpha2.Inventory, force bool) error {
+func updateKptfile(p *pkg.Pkg, inv *kptfilev1.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 *kptfilev1alpha2.Inventory) bool {
+func kptfileInventoryEmpty(inv *kptfilev1.Inventory) bool {
 	return inv == nil
 }
diff --git a/internal/cmdrender/executor.go b/internal/cmdrender/executor.go
index d240de91..a67222bc 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/v1alpha2"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 := kptfilev1alpha2.AreKRM(input); err != nil {
+		if err := kptfilev1.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 []kptfilev1alpha2.Function) ([]kio.Filter, error) {
+func fnChain(ctx context.Context, hctx *hydrationContext, pkgPath types.UniquePath, fns []kptfilev1.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 10323c01..211b1e2a 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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(kptfilev1alpha2.ResourceMerge),
+	c.Flags().StringVar(&r.strategy, "strategy", string(kptfilev1.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(kptfilev1alpha2.UpdateStrategiesAsStrings(), ","))
+			strings.Join(kptfilev1.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 = kptfilev1alpha2.ResourceMerge
+		r.Update.Strategy = kptfilev1.ResourceMerge
 	} else {
-		r.Update.Strategy = kptfilev1alpha2.UpdateStrategyType(r.strategy)
+		r.Update.Strategy = kptfilev1.UpdateStrategyType(r.strategy)
 	}
 
 	parts := strings.Split(args[0], "@")
diff --git a/internal/errors/resolver/pkg.go b/internal/errors/resolver/pkg.go
index 6030b755..3fc3a857 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/v1alpha2"
+	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 )
 
 //nolint:gochecknoinits
diff --git a/internal/fnruntime/container.go b/internal/fnruntime/container.go
index 5f8cff20..d6bf071f 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/v1alpha2"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
 	"sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil"
 )
 
diff --git a/internal/fnruntime/exec.go b/internal/fnruntime/exec.go
index eff85f28..514429fd 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/v1alpha2"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
 )
 
 type ExecFn struct {
diff --git a/internal/fnruntime/runner.go b/internal/fnruntime/runner.go
index 72197d89..9046b3a8 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/v1alpha2"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 *kptfilev1alpha2.Function,
+	ctx context.Context, f *kptfilev1.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 := kptfilev1alpha2.AreKRM(input); krmErr != nil {
+	if krmErr := kptfilev1.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 := kptfilev1alpha2.AreKRM(output); krmErr != nil {
+	if krmErr := kptfilev1.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 *kptfilev1alpha2.Function, pkgPath types.UniquePath) (*yaml.RNode, error) {
+func newFnConfig(f *kptfilev1.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 854ba985..3a436152 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/v1alpha2"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 )
 
diff --git a/internal/pkg/pkg.go b/internal/pkg/pkg.go
index ad39eb6a..d3d56921 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"k8s.io/apimachinery/pkg/runtime/schema"
 	"k8s.io/kubectl/pkg/util/slice"
 	"sigs.k8s.io/kustomize/kyaml/kio"
@@ -41,6 +41,11 @@ const ParentDir = ".."
 
 var DeprecatedKptfileVersions = []string{
 	"v1alpha1",
+	"v1alpha2",
+}
+
+var SupportedKptfileVersions = []string{
+	kptfilev1.KptFileVersion,
 }
 
 // KptfileError records errors regarding reading or parsing of a Kptfile.
@@ -109,7 +114,7 @@ type Pkg struct {
 
 	// A package can contain zero or one Kptfile meta resource.
 	// A nil value represents an implicit package.
-	kptfile *kptfilev1alpha2.KptFile
+	kptfile *kptfilev1.KptFile
 }
 
 // New returns a pkg given an absolute or relative OS-defined path.
@@ -139,7 +144,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() (*kptfilev1alpha2.KptFile, error) {
+func (p *Pkg) Kptfile() (*kptfilev1.KptFile, error) {
 	if p.kptfile == nil {
 		kf, err := ReadKptfile(p.UniquePath.String())
 		if err != nil {
@@ -156,8 +161,8 @@ func (p *Pkg) Kptfile() (*kptfilev1alpha2.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) (*kptfilev1alpha2.KptFile, error) {
-	f, err := os.Open(filepath.Join(p, kptfilev1alpha2.KptFileName))
+func ReadKptfile(p string) (*kptfilev1.KptFile, error) {
+	f, err := os.Open(filepath.Join(p, kptfilev1.KptFileName))
 	if err != nil {
 		return nil, &KptfileError{
 			Path: types.UniquePath(p),
@@ -176,8 +181,8 @@ func ReadKptfile(p string) (*kptfilev1alpha2.KptFile, error) {
 	return kf, nil
 }
 
-func DecodeKptfile(in io.Reader) (*kptfilev1alpha2.KptFile, error) {
-	kf := &kptfilev1alpha2.KptFile{}
+func DecodeKptfile(in io.Reader) (*kptfilev1.KptFile, error) {
+	kf := &kptfilev1.KptFile{}
 	c, err := io.ReadAll(in)
 	if err != nil {
 		return kf, err
@@ -218,14 +223,14 @@ func CheckKptfileVersion(content []byte) error {
 
 	switch {
 	// If the resource type matches what we are looking for, just return nil.
-	case gv.Group == kptfilev1alpha2.KptFileGroup &&
-		gv.Version == kptfilev1alpha2.KptFileVersion &&
-		kind == kptfilev1alpha2.KptFileKind:
+	case gv.Group == kptfilev1.KptFileGroup &&
+		kind == kptfilev1.KptFileKind &&
+		isSupportedKptfileVersion(gv.Version):
 		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 == kptfilev1alpha2.KptFileGroup &&
-		kind == kptfilev1alpha2.KptFileKind &&
+	case gv.Group == kptfilev1.KptFileGroup &&
+		kind == kptfilev1.KptFileKind &&
 		isDeprecatedKptfileVersion(gv.Version):
 		return &DeprecatedKptfileError{
 			Version: gv.Version,
@@ -243,16 +248,20 @@ 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() (*kptfilev1alpha2.Pipeline, error) {
+func (p *Pkg) Pipeline() (*kptfilev1.Pipeline, error) {
 	kf, err := p.Kptfile()
 	if err != nil {
 		return nil, err
 	}
 	pl := kf.Pipeline
 	if pl == nil {
-		return &kptfilev1alpha2.Pipeline{}, nil
+		return &kptfilev1.Pipeline{}, nil
 	}
 	return pl, nil
 }
@@ -426,7 +435,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, kptfilev1alpha2.KptFileName))
+	_, err := os.Stat(filepath.Join(path, kptfilev1.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.
@@ -471,7 +480,7 @@ func (p *Pkg) LocalResources(includeMetaResources bool) (resources []*yaml.RNode
 
 	pkgReader := &kio.LocalPackageReader{
 		PackagePath:        string(p.UniquePath),
-		PackageFileName:    kptfilev1alpha2.KptFileName,
+		PackageFileName:    kptfilev1.KptFileName,
 		IncludeSubpackages: false,
 		MatchFilesGlob:     kio.MatchAll,
 	}
@@ -517,7 +526,7 @@ func (p *Pkg) ValidatePipeline() error {
 
 	for i, fn := range pl.Mutators {
 		if fn.ConfigPath != "" && !resourcesByPath.Has(filepath.Clean(fn.ConfigPath)) {
-			return &kptfilev1alpha2.ValidateError{
+			return &kptfilev1.ValidateError{
 				Field:  fmt.Sprintf("pipeline.%s[%d].configPath", "mutators", i),
 				Value:  fn.ConfigPath,
 				Reason: "functionConfig must exist in the current package",
@@ -526,7 +535,7 @@ func (p *Pkg) ValidatePipeline() error {
 	}
 	for i, fn := range pl.Validators {
 		if fn.ConfigPath != "" && !resourcesByPath.Has(filepath.Clean(fn.ConfigPath)) {
-			return &kptfilev1alpha2.ValidateError{
+			return &kptfilev1.ValidateError{
 				Field:  fmt.Sprintf("pipeline.%s[%d].configPath", "validators", i),
 				Value:  fn.ConfigPath,
 				Reason: "functionConfig must exist in the current package",
@@ -537,7 +546,7 @@ func (p *Pkg) ValidatePipeline() error {
 }
 
 // filterMetaResources filters kpt metadata files such as Kptfile, function configs.
-func filterMetaResources(input []*yaml.RNode, pl *kptfilev1alpha2.Pipeline) (output []*yaml.RNode, err error) {
+func filterMetaResources(input []*yaml.RNode, pl *kptfilev1.Pipeline) (output []*yaml.RNode, err error) {
 	pathsToExclude := fnConfigFilePaths(pl)
 	for _, r := range input {
 		meta, err := r.GetMeta()
@@ -563,7 +572,7 @@ func filterMetaResources(input []*yaml.RNode, pl *kptfilev1alpha2.Pipeline) (out
 
 // fnConfigFilePaths returns paths to function config files referred in the
 // given pipeline.
-func fnConfigFilePaths(pl *kptfilev1alpha2.Pipeline) (fnConfigPaths sets.String) {
+func fnConfigFilePaths(pl *kptfilev1.Pipeline) (fnConfigPaths sets.String) {
 	if pl == nil {
 		return nil
 	}
diff --git a/internal/util/diff/diff.go b/internal/util/diff/diff.go
index aee4c110..e2f3a20e 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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", kptfilev1alpha2.KptFileName}
+	excludePaths := []string{".git", kptfilev1.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 = &kptfilev1alpha2.Upstream{
-		Type: kptfilev1alpha2.GitOrigin,
-		Git: &kptfilev1alpha2.Git{
+	kf.Upstream = &kptfilev1.Upstream{
+		Type: kptfilev1.GitOrigin,
+		Git: &kptfilev1.Git{
 			Repo:      repo,
 			Directory: path,
 			Ref:       ref,
diff --git a/internal/util/diff/pkgdiff.go b/internal/util/diff/pkgdiff.go
index cf785da7..c4d3550e 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 == kptfilev1alpha2.KptFileName {
+		if fileName == kptfilev1.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 = &kptfilev1alpha2.Upstream{}
-	pkg1Kf.UpstreamLock = &kptfilev1alpha2.UpstreamLock{}
-	pkg2Kf.Upstream = &kptfilev1alpha2.Upstream{}
-	pkg2Kf.UpstreamLock = &kptfilev1alpha2.UpstreamLock{}
+	pkg1Kf.Upstream = &kptfilev1.Upstream{}
+	pkg1Kf.UpstreamLock = &kptfilev1.UpstreamLock{}
+	pkg2Kf.Upstream = &kptfilev1.Upstream{}
+	pkg2Kf.UpstreamLock = &kptfilev1.UpstreamLock{}
 
 	pkg1Bytes, err := yaml.Marshal(pkg1Kf)
 	if err != nil {
diff --git a/internal/util/fetch/fetch.go b/internal/util/fetch/fetch.go
index d0846437..987f6b3d 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 *kptfilev1alpha2.KptFile) error {
+func (c Command) validate(kf *kptfilev1.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 cadd6b78..77a2f401 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 *kptfilev1alpha2.Git
+	Git *kptfilev1.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 kptfilev1alpha2.UpdateStrategyType
+	UpdateStrategy kptfilev1.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 = &kptfilev1alpha2.Upstream{
-		Type:           kptfilev1alpha2.GitOrigin,
+	kf.Upstream = &kptfilev1.Upstream{
+		Type:           kptfilev1.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 = kptfilev1alpha2.ResourceMerge
+		c.UpdateStrategy = kptfilev1.ResourceMerge
 	}
 
 	return nil
diff --git a/internal/util/man/man.go b/internal/util/man/man.go
index 53d58d31..ba1a8ce0 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"
-	"github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	v1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 = &v1alpha2.PackageInfo{}
+		k.Info = &v1.PackageInfo{}
 	}
 
 	if k.Info.Man == "" {
diff --git a/internal/util/merge/merge3.go b/internal/util/merge/merge3.go
index 33610547..c4ac5cfb 100644
--- a/internal/util/merge/merge3.go
+++ b/internal/util/merge/merge3.go
@@ -18,7 +18,7 @@ import (
 	"path/filepath"
 	"strings"
 
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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:    kptfilev1alpha2.KptFileName,
+		PackageFileName:    kptfilev1.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:    kptfilev1alpha2.KptFileName,
+			PackageFileName:    kptfilev1.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:    kptfilev1alpha2.KptFileName,
+			PackageFileName:    kptfilev1.KptFileName,
 		},
 		Exclusions: relPaths,
 	})
@@ -108,7 +108,7 @@ func (m Merge3) Merge() error {
 
 func (m Merge3) findExclusions() ([]string, error) {
 	var relPaths []string
-	paths, err := pathutil.DirsWithFile(m.DestPath, kptfilev1alpha2.KptFileName, true)
+	paths, err := pathutil.DirsWithFile(m.DestPath, kptfilev1.KptFileName, true)
 	if err != nil {
 		return relPaths, err
 	}
diff --git a/internal/util/parse/parse.go b/internal/util/parse/parse.go
index 296be83e..2cd3c1fe 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"sigs.k8s.io/kustomize/kyaml/errors"
 )
 
 type Target struct {
-	kptfilev1alpha2.Git
+	kptfilev1.Git
 	Destination string
 }
 
diff --git a/internal/util/pkgutil/pkgutil.go b/internal/util/pkgutil/pkgutil.go
index a5a1a395..c46198fb 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, kptfilev1alpha2.KptFileName))
+			_, err := os.Stat(filepath.Join(path, kptfilev1.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, kptfilev1alpha2.KptFileName) && !copyRootKptfile {
+		if path == filepath.Join(src, kptfilev1.KptFileName) && !copyRootKptfile {
 			return nil
 		}
 
@@ -191,7 +191,7 @@ func RemovePackageContent(path string, removeRootKptfile bool) error {
 			return nil
 		}
 
-		if p == filepath.Join(path, kptfilev1alpha2.KptFileName) && !removeRootKptfile {
+		if p == filepath.Join(path, kptfilev1.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, kptfilev1alpha2.KptFileName),
+		MatchFilesGlob: append(kio.DefaultMatch, kptfilev1.KptFileName),
 	}
 	f := &filters.FormatFilter{
 		UseSchema: true,
diff --git a/internal/util/update/fastforward.go b/internal/util/update/fastforward.go
index 6bc10bf2..0319ed1b 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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(kptfilev1alpha2.KptFileName)
+	s.Insert(kptfilev1.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(kptfilev1alpha2.KptFileName) && subPkgPath == "." {
+		if d.Has(kptfilev1.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, kptfilev1alpha2.KptFileName))
+	_, err = os.Stat(filepath.Join(orgPath, kptfilev1.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 *kptfilev1alpha2.KptFile, name string) (bool, error) {
+func isDefaultKptfile(localKf *kptfilev1.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 4703272a..64681bbe 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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{kptfilev1alpha2.KptFileName}, kio.DefaultMatch...)
+var krmFilesGlob = append([]string{kptfilev1.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 28360024..3434bfc0 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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[kptfilev1alpha2.UpdateStrategyType]func() Updater{
-	kptfilev1alpha2.FastForward:        func() Updater { return FastForwardUpdater{} },
-	kptfilev1alpha2.ForceDeleteReplace: func() Updater { return ReplaceUpdater{} },
-	kptfilev1alpha2.ResourceMerge:      func() Updater { return ResourceMergeUpdater{} },
+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{} },
 }
 
 // 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 kptfilev1alpha2.UpdateStrategyType
+	Strategy kptfilev1.UpdateStrategyType
 }
 
 // Run runs the Command.
diff --git a/package-examples/helloworld-set/Kptfile b/package-examples/helloworld-set/Kptfile
index 06f58ed8..38e5bd52 100644
--- a/package-examples/helloworld-set/Kptfile
+++ b/package-examples/helloworld-set/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: helloworld-set
diff --git a/package-examples/helloworld-tshirt/Kptfile b/package-examples/helloworld-tshirt/Kptfile
index 1e6ac739..8e1a7eb9 100644
--- a/package-examples/helloworld-tshirt/Kptfile
+++ b/package-examples/helloworld-tshirt/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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
\ No newline at end of file
+    - image: gcr.io/kustomize-functions/example-tshirt:v0.1.0
diff --git a/package-examples/helloworld/Kptfile b/package-examples/helloworld/Kptfile
index 396636fe..892c6b4a 100644
--- a/package-examples/helloworld/Kptfile
+++ b/package-examples/helloworld/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: helloworld
diff --git a/package-examples/kustomize/Kptfile b/package-examples/kustomize/Kptfile
index b83f8775..380fe6c2 100644
--- a/package-examples/kustomize/Kptfile
+++ b/package-examples/kustomize/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: kustomize-pkg
diff --git a/package-examples/kustomize/README.md b/package-examples/kustomize/README.md
index 79d8fee7..59c2433e 100644
--- a/package-examples/kustomize/README.md
+++ b/package-examples/kustomize/README.md
@@ -107,7 +107,7 @@ spec:
         ports:
         - containerPort: 80
 ---
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 info:
   description: sample description
 kind: Kptfile
diff --git a/package-examples/kustomize/bases/nginx/Kptfile b/package-examples/kustomize/bases/nginx/Kptfile
index 4f6f5899..b6a579d7 100644
--- a/package-examples/kustomize/bases/nginx/Kptfile
+++ b/package-examples/kustomize/bases/nginx/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: nginx
diff --git a/package-examples/kustomize/bases/nginx/kustomization.yaml b/package-examples/kustomize/bases/nginx/kustomization.yaml
index 3b10f5e2..1c25c16e 100644
--- a/package-examples/kustomize/bases/nginx/kustomization.yaml
+++ b/package-examples/kustomize/bases/nginx/kustomization.yaml
@@ -11,7 +11,10 @@
 # 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: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+metadata:
+  name: kustomization
 resources:
 - deployment.yaml
 - svc.yaml
diff --git a/package-examples/kustomize/overlays/dev/Kptfile b/package-examples/kustomize/overlays/dev/Kptfile
index f41581e8..aba27dc7 100644
--- a/package-examples/kustomize/overlays/dev/Kptfile
+++ b/package-examples/kustomize/overlays/dev/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: dev
diff --git a/package-examples/kustomize/overlays/dev/kustomization.yaml b/package-examples/kustomize/overlays/dev/kustomization.yaml
index 26f034ce..d0951ebc 100644
--- a/package-examples/kustomize/overlays/dev/kustomization.yaml
+++ b/package-examples/kustomize/overlays/dev/kustomization.yaml
@@ -14,6 +14,8 @@
 
 apiVersion: kustomize.config.k8s.io/v1beta1
 kind: Kustomization
+metadata:
+  name: kustomization
 resources:
 - ../../bases/nginx
 - Kptfile
diff --git a/package-examples/kustomize/overlays/prod/Kptfile b/package-examples/kustomize/overlays/prod/Kptfile
index f93f8728..f4458863 100644
--- a/package-examples/kustomize/overlays/prod/Kptfile
+++ b/package-examples/kustomize/overlays/prod/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: prod
diff --git a/package-examples/kustomize/overlays/prod/kustomization.yaml b/package-examples/kustomize/overlays/prod/kustomization.yaml
index 1326e3af..5a1b4e18 100644
--- a/package-examples/kustomize/overlays/prod/kustomization.yaml
+++ b/package-examples/kustomize/overlays/prod/kustomization.yaml
@@ -14,6 +14,8 @@
 
 apiVersion: kustomize.config.k8s.io/v1beta1
 kind: Kustomization
+metadata:
+  name: kustomization
 resources:
 - ../../bases/nginx
 - Kptfile
diff --git a/package-examples/nginx/Kptfile b/package-examples/nginx/Kptfile
index 3cb9d11c..a26f3990 100644
--- a/package-examples/nginx/Kptfile
+++ b/package-examples/nginx/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: nginx
diff --git a/package-examples/pipeline-validate/Kptfile b/package-examples/pipeline-validate/Kptfile
index b81e172e..dd0211ce 100644
--- a/package-examples/pipeline-validate/Kptfile
+++ b/package-examples/pipeline-validate/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: kpt-pipeline-validate-example
diff --git a/package-examples/wordpress/Kptfile b/package-examples/wordpress/Kptfile
index b99b46e1..84ac62a7 100644
--- a/package-examples/wordpress/Kptfile
+++ b/package-examples/wordpress/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: wordpress
diff --git a/package-examples/wordpress/mysql/Kptfile b/package-examples/wordpress/mysql/Kptfile
index 7fc1835b..6ccacf92 100644
--- a/package-examples/wordpress/mysql/Kptfile
+++ b/package-examples/wordpress/mysql/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: mysql
diff --git a/pkg/api/fnresult/v1alpha2/types.go b/pkg/api/fnresult/v1/types.go
similarity index 92%
rename from pkg/api/fnresult/v1alpha2/types.go
rename to pkg/api/fnresult/v1/types.go
index cc761ca1..b5a99062 100644
--- a/pkg/api/fnresult/v1alpha2/types.go
+++ b/pkg/api/fnresult/v1/types.go
@@ -12,10 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package v1alpha2
+package v1
 
 import (
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"sigs.k8s.io/kustomize/kyaml/fn/framework"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 )
@@ -41,8 +41,8 @@ type Result struct {
 
 const (
 	ResultListKind       = "FunctionResultList"
-	ResultListGroup      = kptfilev1alpha2.KptFileGroup
-	ResultListVersion    = kptfilev1alpha2.KptFileVersion
+	ResultListGroup      = kptfilev1.KptFileGroup
+	ResultListVersion    = kptfilev1.KptFileVersion
 	ResultListAPIVersion = ResultListGroup + "/" + ResultListVersion
 )
 
diff --git a/pkg/api/kptfile/v1alpha2/types.go b/pkg/api/kptfile/v1/types.go
similarity index 88%
rename from pkg/api/kptfile/v1alpha2/types.go
rename to pkg/api/kptfile/v1/types.go
index 42418fdd..a628b87d 100644
--- a/pkg/api/kptfile/v1alpha2/types.go
+++ b/pkg/api/kptfile/v1/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 v1alpha2.
-package v1alpha2
+// Package defines the schema for Kptfile version v1.
+package v1
 
 import (
 	"fmt"
@@ -25,7 +25,7 @@ const (
 	KptFileName       = "Kptfile"
 	KptFileKind       = "Kptfile"
 	KptFileGroup      = "kpt.dev"
-	KptFileVersion    = "v1alpha2"
+	KptFileVersion    = "v1"
 	KptFileAPIVersion = KptFileGroup + "/" + KptFileVersion
 )
 
@@ -54,30 +54,6 @@ 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/v1alpha2/validation.go b/pkg/api/kptfile/v1/validation.go
similarity index 99%
rename from pkg/api/kptfile/v1alpha2/validation.go
rename to pkg/api/kptfile/v1/validation.go
index ff25d706..b4b5e89d 100644
--- a/pkg/api/kptfile/v1alpha2/validation.go
+++ b/pkg/api/kptfile/v1/validation.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package v1alpha2
+package v1
 
 import (
 	"fmt"
diff --git a/pkg/kptfile/kptfileutil/util.go b/pkg/kptfile/kptfileutil/util.go
index ce32a606..3acdb0fd 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"sigs.k8s.io/kustomize/kyaml/yaml"
 	"sigs.k8s.io/kustomize/kyaml/yaml/merge3"
 )
 
-func WriteFile(dir string, k *kptfilev1alpha2.KptFile) error {
+func WriteFile(dir string, k *kptfilev1.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, kptfilev1alpha2.KptFileName)); err != nil && !goerrors.Is(err, os.ErrNotExist) {
+	if _, err := os.Stat(filepath.Join(dir, kptfilev1.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 *kptfilev1alpha2.KptFile) error {
 	}
 
 	// fyi: perm is ignored if the file already exists
-	err = ioutil.WriteFile(filepath.Join(dir, kptfilev1alpha2.KptFileName), []byte(kptFileStr), 0600)
+	err = ioutil.WriteFile(filepath.Join(dir, kptfilev1.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 *kptfilev1alpha2.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 *kptfilev1alpha2.Inventory) (bool, error) {
+func ValidateInventory(inv *kptfilev1.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 *kptfilev1alpha2.Inventory) (bool, error) {
 	return true, nil
 }
 
-func Equal(kf1, kf2 *kptfilev1alpha2.KptFile) (bool, error) {
+func Equal(kf1, kf2 *kptfilev1.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 *kptfilev1alpha2.KptFile) (bool, error) {
 }
 
 // DefaultKptfile returns a new minimal Kptfile.
-func DefaultKptfile(name string) *kptfilev1alpha2.KptFile {
-	return &kptfilev1alpha2.KptFile{
+func DefaultKptfile(name string) *kptfilev1.KptFile {
+	return &kptfilev1.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind,
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.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 = &kptfilev1alpha2.KptFile{}
+		localKf = &kptfilev1.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 = &kptfilev1alpha2.KptFile{}
+		updatedKf = &kptfilev1.KptFile{}
 	}
 
-	err = merge(localKf, updatedKf, &kptfilev1alpha2.KptFile{})
+	err = merge(localKf, updatedKf, &kptfilev1.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 = &kptfilev1alpha2.KptFile{}
+		localKf = &kptfilev1.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 = &kptfilev1alpha2.KptFile{}
+		updatedKf = &kptfilev1.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 = &kptfilev1alpha2.KptFile{}
+		originKf = &kptfilev1.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 = &kptfilev1alpha2.UpstreamLock{
-		Type: kptfilev1alpha2.GitOrigin,
-		Git: &kptfilev1alpha2.GitLock{
+	kpgfile.UpstreamLock = &kptfilev1.UpstreamLock{
+		Type: kptfilev1.GitOrigin,
+		Git: &kptfilev1.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 *kptfilev1alpha2.KptFile) error {
+func merge(localKf, updatedKf, originalKf *kptfilev1.KptFile) error {
 	localBytes, err := yaml.Marshal(localKf)
 	if err != nil {
 		return err
@@ -256,7 +256,7 @@ func merge(localKf, updatedKf, originalKf *kptfilev1alpha2.KptFile) error {
 		return err
 	}
 
-	var mergedKf kptfilev1alpha2.KptFile
+	var mergedKf kptfilev1.KptFile
 	err = yaml.Unmarshal([]byte(mergedBytes), &mergedKf)
 	if err != nil {
 		return err
@@ -273,7 +273,7 @@ func merge(localKf, updatedKf, originalKf *kptfilev1alpha2.KptFile) error {
 	return nil
 }
 
-func updateUpstreamAndUpstreamLock(localKf, updatedKf *kptfilev1alpha2.KptFile) {
+func updateUpstreamAndUpstreamLock(localKf, updatedKf *kptfilev1.KptFile) {
 	if updatedKf.Upstream != nil {
 		localKf.Upstream = updatedKf.Upstream
 	}
diff --git a/pkg/live/load.go b/pkg/live/load.go
index 386aab53..20b3a1dc 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, kptfilev1alpha2.Inventory, error) {
+func Load(f util.Factory, path string, stdIn io.Reader) ([]*unstructured.Unstructured, kptfilev1.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, kptfilev1alpha2.Inventory, error) {
+func loadFromStream(f util.Factory, r io.Reader) ([]*unstructured.Unstructured, kptfilev1.Inventory, error) {
 	var stdInBuf bytes.Buffer
 	tee := io.TeeReader(r, &stdInBuf)
 
 	invInfo, err := readInvInfoFromStream(tee)
 	if err != nil {
-		return nil, kptfilev1alpha2.Inventory{}, err
+		return nil, kptfilev1.Inventory{}, err
 	}
 
 	ro, err := toReaderOptions(f)
 	if err != nil {
-		return nil, kptfilev1alpha2.Inventory{}, err
+		return nil, kptfilev1.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, kptfilev1alpha2.Inventory{}, err
+		return nil, kptfilev1.Inventory{}, err
 	}
 	return objs, invInfo, nil
 }
 
-func readInvInfoFromStream(in io.Reader) (kptfilev1alpha2.Inventory, error) {
+func readInvInfoFromStream(in io.Reader) (kptfilev1.Inventory, error) {
 	invFilter := &InventoryFilter{}
 	if err := (&kio.Pipeline{
 		Inputs: []kio.Reader{
@@ -106,32 +106,32 @@ func readInvInfoFromStream(in io.Reader) (kptfilev1alpha2.Inventory, error) {
 			kio.FilterAll(invFilter),
 		},
 	}).Execute(); err != nil {
-		return kptfilev1alpha2.Inventory{}, err
+		return kptfilev1.Inventory{}, err
 	}
 
 	if len(invFilter.Inventories) > 1 {
-		return kptfilev1alpha2.Inventory{}, &MultipleInventoryInfoError{}
+		return kptfilev1.Inventory{}, &MultipleInventoryInfoError{}
 	}
 
 	if len(invFilter.Inventories) == 1 {
 		return *invFilter.Inventories[0], nil
 	}
-	return kptfilev1alpha2.Inventory{}, nil
+	return kptfilev1.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, kptfilev1alpha2.Inventory, error) {
+func loadFromDisk(f util.Factory, path string) ([]*unstructured.Unstructured, kptfilev1.Inventory, error) {
 	invInfo, err := readInvInfoFromDisk(path)
 	if err != nil {
-		return nil, kptfilev1alpha2.Inventory{}, err
+		return nil, kptfilev1.Inventory{}, err
 	}
 
 	ro, err := toReaderOptions(f)
 	if err != nil {
-		return nil, kptfilev1alpha2.Inventory{}, err
+		return nil, kptfilev1.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, kptfilev1alpha2.Inventory{}, err
+		return nil, kptfilev1.Inventory{}, err
 	}
 
 	return objs, invInfo, nil
 }
 
-func readInvInfoFromDisk(path string) (kptfilev1alpha2.Inventory, error) {
+func readInvInfoFromDisk(path string) (kptfilev1.Inventory, error) {
 	p, err := pkg.New(path)
 	if err != nil {
-		return kptfilev1alpha2.Inventory{}, err
+		return kptfilev1.Inventory{}, err
 	}
 
 	kf, err := p.Kptfile()
 	if err != nil && errors.Is(err, os.ErrNotExist) {
-		return kptfilev1alpha2.Inventory{}, nil
+		return kptfilev1.Inventory{}, nil
 	}
 	if err != nil {
-		return kptfilev1alpha2.Inventory{}, err
+		return kptfilev1.Inventory{}, err
 	}
 
 	if kf.Inventory == nil {
-		return kptfilev1alpha2.Inventory{}, nil
+		return kptfilev1.Inventory{}, nil
 	}
 
 	return *kf.Inventory, nil
@@ -169,12 +169,12 @@ func readInvInfoFromDisk(path string) (kptfilev1alpha2.Inventory, error) {
 // InventoryFilter is an implementation of the yaml.Filter interface
 // that extracts inventory information from Kptfile resources.
 type InventoryFilter struct {
-	Inventories []*kptfilev1alpha2.Inventory
+	Inventories []*kptfilev1.Inventory
 }
 
 func (i *InventoryFilter) Filter(object *yaml.RNode) (*yaml.RNode, error) {
-	if object.GetApiVersion() != kptfilev1alpha2.KptFileAPIVersion ||
-		object.GetKind() != kptfilev1alpha2.KptFileName {
+	if object.GetApiVersion() != kptfilev1.KptFileAPIVersion ||
+		object.GetKind() != kptfilev1.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 kptfilev1alpha2.Inventory) (inventory.InventoryInfo, error) {
+func ToInventoryInfo(inventory kptfilev1.Inventory) (inventory.InventoryInfo, error) {
 	if err := validateInventory(inventory); err != nil {
 		return nil, err
 	}
@@ -220,7 +220,7 @@ func ToInventoryInfo(inventory kptfilev1alpha2.Inventory) (inventory.InventoryIn
 	return WrapInventoryInfoObj(invObj), nil
 }
 
-func validateInventory(inventory kptfilev1alpha2.Inventory) error {
+func validateInventory(inventory kptfilev1.Inventory) error {
 	var violations errors.Violations
 	if inventory.Name == "" {
 		violations = append(violations, errors.Violation{
@@ -256,7 +256,7 @@ func validateInventory(inventory kptfilev1alpha2.Inventory) error {
 	return nil
 }
 
-func generateInventoryObj(inv kptfilev1alpha2.Inventory) *unstructured.Unstructured {
+func generateInventoryObj(inv kptfilev1.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 5057653d..b62a77a0 100644
--- a/pkg/live/rgstream.go
+++ b/pkg/live/rgstream.go
@@ -7,7 +7,7 @@ import (
 	"bytes"
 	"io"
 
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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: kptfilev1alpha2.KptFileGroup,
-			Kind:  kptfilev1alpha2.KptFileKind,
+			Group: kptfilev1.KptFileGroup,
+			Kind:  kptfilev1.KptFileKind,
 		},
 	}
 )
@@ -80,14 +80,14 @@ func isExcluded(n *yaml.RNode) bool {
 	return false
 }
 
-var kptFileTemplate = kptfilev1alpha2.KptFile{ResourceMeta: kptfilev1alpha2.TypeMeta}
+var kptFileTemplate = kptfilev1.KptFile{ResourceMeta: kptfilev1.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 == kptfilev1alpha2.TypeMeta.TypeMeta
+		return kptFileTemplate.ResourceMeta.TypeMeta == kptfilev1.TypeMeta.TypeMeta
 	}
 	return false
 }
diff --git a/scripts/update-license.sh b/scripts/update-license.sh
index 1d8cbda0..2e37cb7a 100755
--- a/scripts/update-license.sh
+++ b/scripts/update-license.sh
@@ -15,7 +15,9 @@
 # don't add licenses to the site directory, it will break the docs
 # and will add them to the theme which is a submodule (bad)
 which addlicense || go get github.com/google/addlicense
-ls | grep -v site | grep -v docs | grep -v e2e | xargs $GOBIN/addlicense -y 2021 -l apache
-# process e2e separately because expected result files shouldn't have license
-# otherwise the test will fail
-find e2e -type f | grep -v '.expected/results.yaml' | xargs $GOBIN/addlicense -y 2021 -l apache
+find . -type f \
+! -path "./site/*" \
+! -path "./docs/*" \
+! -path "**/.expected/results.yaml" \
+! -path "**/generated/*" \
+| xargs $GOBIN/addlicense -y 2021 -l apache
diff --git a/site/book/03-packages/01-getting-a-package.md b/site/book/03-packages/01-getting-a-package.md
index 5df85e33..3de7426f 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/v1alpha2
+apiVersion: kpt.dev/v1
 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 2ca62bea..10e275f0 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 321da0ef..8d1338a8 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: wordpress
@@ -49,7 +49,7 @@ The `mysql` subpackage declares only a mutator function:
 
 ```yaml
 # wordpress/mysql/Kptfile
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: mysql
@@ -130,7 +130,7 @@ For example:
 
 ```yaml
 # wordpress/mysql/Kptfile
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 f0e87a20..30c47053 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 4f77883e..a2d098c0 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: FunctionResultList
 metadata:
   name: fnresults
@@ -69,7 +69,7 @@ The results resource will now contain failure details:
 
 ```yaml
 # /tmp/results.yaml
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/site/installation/migration.md b/site/installation/migration.md
index c29619cc..a7078d49 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 [v1alpha2 Kptfile] which is compatible with kpt `v1.0`.
+Here is the schema for [v1 Kptfile] which is compatible with kpt `v1.0`.
 
 1. The `packageMetaData` section in `v1alpha1` Kptfile is transformed to `info`
-   section in `v1alpha2` Kptfile.
+   section in `v1` Kptfile.
 2. `upstream` section, in the `v1alpha1` Kptfile is split into `upstream` and
-   `upstreamLock` sections in `v1alpha2` Kptfile. `upstream` section can be
+   `upstreamLock` sections in `v1` 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 [v1alpha2 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 `v1alpha2` Kptfile.
+6. `inventory-object` is moved to `inventory` section in `v1` 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 `v1alpha2` version of Kptfile.
+   `upstreamLock` sections in `v1` 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 `v1alpha2` Kptfile.
+   `validators` section in the pipeline section of `v1` 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 `v1alpha2` version(compatible with kpt `v1.0`).
+kpt `v0.39`) to `v1` version(compatible with kpt `v1.0`).
 
 ## Timeline
 
@@ -320,7 +320,7 @@ kpt `v0.39`) to `v1alpha2` version(compatible with kpt `v1.0`).
 
 [v0.39 commands]: https://googlecontainertools.github.io/kpt/reference/
 [v1.0 commands]: https://kpt.dev/reference/cli/
-[v1alpha2 kptfile]: https://github.com/GoogleContainerTools/kpt/blob/main/pkg/api/kptfile/v1alpha2/types.go
+[v1 kptfile]: https://github.com/GoogleContainerTools/kpt/blob/main/pkg/api/kptfile/v1/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 d9c2a8c9..8df268e0 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/v1alpha2/types.go#L50)
+[definition here](https://github.com/GoogleContainerTools/kpt/blob/next/pkg/api/fnresult/v1/types.go#L50)
diff --git a/site/reference/schema/kptfile/README.md b/site/reference/schema/kptfile/README.md
index 23285e37..869e8de2 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/v1alpha2/types.go#L41)
+[definition here](https://github.com/googlecontainertools/kpt/blob/next/pkg/api/kptfile/v1/types.go#L41)
diff --git a/thirdparty/cmdconfig/commands/cmdcat/cmdcat.go b/thirdparty/cmdconfig/commands/cmdcat/cmdcat.go
index d3f724a7..fd50ed6f 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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: kptfilev1alpha2.KptFileName}
+	input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: kptfilev1.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 b0ca6e53..59ba7f12 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/v1alpha2"
+	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 83f9b750..a962082a 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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{kptfilev1alpha2.KptFileName}, kio.DefaultMatch...)
+	return append([]string{kptfilev1.KptFileName}, kio.DefaultMatch...)
 }
diff --git a/thirdparty/cmdconfig/commands/cmdtree/tree.go b/thirdparty/cmdconfig/commands/cmdtree/tree.go
index 0450aa01..282ba1d7 100644
--- a/thirdparty/cmdconfig/commands/cmdtree/tree.go
+++ b/thirdparty/cmdconfig/commands/cmdtree/tree.go
@@ -11,7 +11,7 @@ import (
 	"sort"
 	"strings"
 
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, kptfilev1alpha2.KptFileName))
+	_, err := os.Stat(filepath.Join(p.Root, kptfilev1.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, kptfilev1alpha2.KptFileName))
+	_, err := os.Stat(filepath.Join(root, dirRelPath, kptfilev1.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 981d9e53..7a813a32 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, kptfilev1alpha2.KptFileName, e.RecurseSubPackages)
+	pkgsPaths, err := pathutil.DirsWithFile(e.RootPkgPath, kptfilev1.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", kptfilev1alpha2.KptFileName, e.RootPkgPath)
+			return errors.Errorf("unable to find %q in package %q", kptfilev1.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 f289ce3d..828183c6 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/v1alpha2"
-	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
+	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 )
 
 // 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 219f1a41..09651424 100644
--- a/e2e/live/testdata/Kptfile
+++ b/e2e/live/testdata/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/continue-on-error/Kptfile b/e2e/live/testdata/continue-on-error/Kptfile
index 219f1a41..09651424 100644
--- a/e2e/live/testdata/continue-on-error/Kptfile
+++ b/e2e/live/testdata/continue-on-error/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/migrate-case-1a/Kptfile b/e2e/live/testdata/migrate-case-1a/Kptfile
index 219f1a41..09651424 100644
--- a/e2e/live/testdata/migrate-case-1a/Kptfile
+++ b/e2e/live/testdata/migrate-case-1a/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/migrate-case-1b/Kptfile b/e2e/live/testdata/migrate-case-1b/Kptfile
index 219f1a41..09651424 100644
--- a/e2e/live/testdata/migrate-case-1b/Kptfile
+++ b/e2e/live/testdata/migrate-case-1b/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/migrate-error/Kptfile b/e2e/live/testdata/migrate-error/Kptfile
index 219f1a41..09651424 100644
--- a/e2e/live/testdata/migrate-error/Kptfile
+++ b/e2e/live/testdata/migrate-error/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 b9e87b55..a189ddea 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 219f1a41..09651424 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 219f1a41..09651424 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/test-case-1a/Kptfile b/e2e/live/testdata/test-case-1a/Kptfile
index 219f1a41..09651424 100644
--- a/e2e/live/testdata/test-case-1a/Kptfile
+++ b/e2e/live/testdata/test-case-1a/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
diff --git a/e2e/live/testdata/test-case-1b/Kptfile b/e2e/live/testdata/test-case-1b/Kptfile
index 219f1a41..09651424 100644
--- a/e2e/live/testdata/test-case-1b/Kptfile
+++ b/e2e/live/testdata/test-case-1b/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 82882346..b44f8e3d 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 fa1bd2d..dd352a8 100644
+index 1f982e2..d815cdb 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,16 +2,7 @@ apiVersion: kpt.dev/v1alpha2
+@@ -2,16 +2,7 @@ apiVersion: kpt.dev/v1
  kind: Kptfile
  metadata:
    name: nginx
diff --git a/e2e/testdata/fn-eval/consistent-formatting/Kptfile b/e2e/testdata/fn-eval/consistent-formatting/Kptfile
index fa1bd2d0..1f982e28 100644
--- a/e2e/testdata/fn-eval/consistent-formatting/Kptfile
+++ b/e2e/testdata/fn-eval/consistent-formatting/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 39dec05b..f5bb2df7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 883da19e..d9e2f05c 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 1e6774f0..d7a19516 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
\ No newline at end of file
+   image: nginx:1.2.3
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 3a602303..08903691 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 39dec05..0000000
+index f5bb2df..0000000
 --- a/Kptfile
 +++ /dev/null
 @@ -1,8 +0,0 @@
--apiVersion: kpt.dev/v1alpha2
+-apiVersion: kpt.dev/v1
 -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 39dec05b..f5bb2df7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 39dec05b..f5bb2df7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 9352e170..6286e742 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 39dec05..47f7bf4 100644
+index f5bb2df..4fad916 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
  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 39dec05b..f5bb2df7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 9352e170..6286e742 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 39dec05..47f7bf4 100644
+index f5bb2df..4fad916 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
  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 39dec05b..f5bb2df7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 dd344109..7afc0e42 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 f9c452d6..edb6f5f9 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
\ No newline at end of file
+   image: nginx:1.2.3
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
new file mode 100644
index 00000000..691d0b7f
--- /dev/null
+++ b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.expected/config.yaml
@@ -0,0 +1,20 @@
+# 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
new file mode 100644
index 00000000..9352e170
--- /dev/null
+++ b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.expected/diff.patch
@@ -0,0 +1,42 @@
+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
new file mode 100644
index 00000000..9d7a4007
--- /dev/null
+++ b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.krmignore
@@ -0,0 +1,1 @@
+.expected
diff --git a/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/Kptfile b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/Kptfile
new file mode 100644
index 00000000..39dec05b
--- /dev/null
+++ b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/Kptfile
@@ -0,0 +1,8 @@
+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
new file mode 100644
index 00000000..7ef98902
--- /dev/null
+++ b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/labelconfig.yaml
@@ -0,0 +1,19 @@
+# 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
new file mode 100644
index 00000000..7a494c9c
--- /dev/null
+++ b/e2e/testdata/fn-eval/include-meta-resources-v1alpha2/resources.yaml
@@ -0,0 +1,26 @@
+# 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 9352e170..6286e742 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 39dec05..47f7bf4 100644
+index f5bb2df..4fad916 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
  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 39dec05b..f5bb2df7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 7f356456..5e68116e 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 e27541d5..1ab5a71d 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
\ No newline at end of file
++  image: nginx:1.2.3
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 2d1b28a8..7fc6888b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 e27541d5..1ab5a71d 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
\ No newline at end of file
++  image: nginx:1.2.3
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 11f0d9e4..f09a6815 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 39dec05b..f5bb2df7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 268f4384..6218d66d 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 a2ed2d76..77b7d179 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 39dec05..47f7bf4 100644
+index f5bb2df..4fad916 100644
 --- a/Kptfile
 +++ b/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
  kind: Kptfile
  metadata:
    name: app
@@ -11,10 +11,10 @@ index 39dec05..47f7bf4 100644
    mutators:
      - image: gcr.io/kpt-fn/set-labels:v0.1.4
 diff --git a/db/Kptfile b/db/Kptfile
-index 268f438..ab19d9f 100644
+index 6218d66..b776983 100644
 --- a/db/Kptfile
 +++ b/db/Kptfile
-@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1alpha2
+@@ -2,6 +2,7 @@ apiVersion: kpt.dev/v1
  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 39dec05b..f5bb2df7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 268f4384..6218d66d 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 845feae6..4940b227 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
\ No newline at end of file
+-  replicas: 3
diff --git a/e2e/testdata/fn-render/all-resource-deletion/Kptfile b/e2e/testdata/fn-render/all-resource-deletion/Kptfile
index f06fbae6..6a45343f 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 32bba40a..8e842410 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/v1alpha2
+apiVersion: kpt.dev/v1
 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
new file mode 100644
index 00000000..297b94a4
--- /dev/null
+++ b/e2e/testdata/fn-render/basicpipeline-v1alpha1/.expected/config.yaml
@@ -0,0 +1,15 @@
+# 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
new file mode 100644
index 00000000..9d7a4007
--- /dev/null
+++ b/e2e/testdata/fn-render/basicpipeline-v1alpha1/.krmignore
@@ -0,0 +1,1 @@
+.expected
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha1/Kptfile b/e2e/testdata/fn-render/basicpipeline-v1alpha1/Kptfile
new file mode 100644
index 00000000..54ce0ace
--- /dev/null
+++ b/e2e/testdata/fn-render/basicpipeline-v1alpha1/Kptfile
@@ -0,0 +1,101 @@
+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
new file mode 100644
index 00000000..7ef98902
--- /dev/null
+++ b/e2e/testdata/fn-render/basicpipeline-v1alpha1/labelconfig.yaml
@@ -0,0 +1,19 @@
+# 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
new file mode 100644
index 00000000..7a494c9c
--- /dev/null
+++ b/e2e/testdata/fn-render/basicpipeline-v1alpha1/resources.yaml
@@ -0,0 +1,26 @@
+# 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
new file mode 100644
index 00000000..52b4a111
--- /dev/null
+++ b/e2e/testdata/fn-render/basicpipeline-v1alpha2/.expected/config.yaml
@@ -0,0 +1,15 @@
+# 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
new file mode 100644
index 00000000..9d7a4007
--- /dev/null
+++ b/e2e/testdata/fn-render/basicpipeline-v1alpha2/.krmignore
@@ -0,0 +1,1 @@
+.expected
diff --git a/e2e/testdata/fn-render/basicpipeline-v1alpha2/Kptfile b/e2e/testdata/fn-render/basicpipeline-v1alpha2/Kptfile
new file mode 100644
index 00000000..32bba40a
--- /dev/null
+++ b/e2e/testdata/fn-render/basicpipeline-v1alpha2/Kptfile
@@ -0,0 +1,12 @@
+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
new file mode 100644
index 00000000..7a494c9c
--- /dev/null
+++ b/e2e/testdata/fn-render/basicpipeline-v1alpha2/resources.yaml
@@ -0,0 +1,26 @@
+# 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 32bba40a..8e842410 100644
--- a/e2e/testdata/fn-render/basicpipeline/Kptfile
+++ b/e2e/testdata/fn-render/basicpipeline/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/empty-pipeline/Kptfile b/e2e/testdata/fn-render/empty-pipeline/Kptfile
index 30dcdc95..6371d397 100644
--- a/e2e/testdata/fn-render/empty-pipeline/Kptfile
+++ b/e2e/testdata/fn-render/empty-pipeline/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 4bad1873..f439fed6 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/fn-failure/Kptfile b/e2e/testdata/fn-render/fn-failure/Kptfile
index 2e675932..79cd86c1 100644
--- a/e2e/testdata/fn-render/fn-failure/Kptfile
+++ b/e2e/testdata/fn-render/fn-failure/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 dd344109..7afc0e42 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 3886601a..52ab42bb 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 b4675527..b64764a7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 268f4384..6218d66d 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 e42d2c2f..fd29bd12 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 60f507d0..79b7a5a3 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 c61850f6..2df71a94 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 c1b18744..1aeaa2ca 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: app-with-db
 pipeline:
   mutators:
     - image: gcr.io/kpt-fn/set-labels:v0.1.4
-      configPath: labelconfig.yaml
\ No newline at end of file
+      configPath: labelconfig.yaml
diff --git a/e2e/testdata/fn-render/fnconfig-not-relative/Kptfile b/e2e/testdata/fn-render/fnconfig-not-relative/Kptfile
index 406de845..4648a7c0 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 3b638833..7a03156f 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 e3fb8f9c..acf4d0ac 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: app-with-db
diff --git a/e2e/testdata/fn-render/fnconfig/Kptfile b/e2e/testdata/fn-render/fnconfig/Kptfile
index 398d6101..ae8c2d2d 100644
--- a/e2e/testdata/fn-render/fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 530d4ad0..8c0fd517 100644
--- a/e2e/testdata/fn-render/fnconfig/db/Kptfile
+++ b/e2e/testdata/fn-render/fnconfig/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 46dfdadc..9fbcdc2b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 4bad1873..f439fed6 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 11f0d9e4..f09a6815 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 4c98a1ae..e08489fe 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 b4675527..b64764a7 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 d080ef0d..51ef7cb1 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 18f40825..95ea29e1 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
\ No newline at end of file
++            - containerPort: 9876
diff --git a/e2e/testdata/fn-render/generator-absolute-path/Kptfile b/e2e/testdata/fn-render/generator-absolute-path/Kptfile
index 9b361ff5..b65c9e30 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 50c85a58..bf9124bb 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
\ No newline at end of file
++  parent-key: parent-value
diff --git a/e2e/testdata/fn-render/generator-subpkgs/Kptfile b/e2e/testdata/fn-render/generator-subpkgs/Kptfile
index 9fa913c0..ea18e518 100644
--- a/e2e/testdata/fn-render/generator-subpkgs/Kptfile
+++ b/e2e/testdata/fn-render/generator-subpkgs/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 020dc8ac..2d276947 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/generator/Kptfile b/e2e/testdata/fn-render/generator/Kptfile
index f72db760..8632ba72 100644
--- a/e2e/testdata/fn-render/generator/Kptfile
+++ b/e2e/testdata/fn-render/generator/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 ada9824b..fef15bed 100644
--- a/e2e/testdata/fn-render/generator/db/Kptfile
+++ b/e2e/testdata/fn-render/generator/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 fabd1f9e..0d309935 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 fabd1f9e..0d309935 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 75889211..f13f048b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 c4073eec..d4fb48fb 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 ca07978e..acb21202 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/invalid-kptfile/Kptfile b/e2e/testdata/fn-render/invalid-kptfile/Kptfile
index b6c0cc3e..c8a8f899 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/v1alpha2
+apiVersion: kpt.dev/v1
 kslsls
 ;s;s;s
diff --git a/e2e/testdata/fn-render/krmignore/Kptfile b/e2e/testdata/fn-render/krmignore/Kptfile
index 2d1b28a8..7fc6888b 100644
--- a/e2e/testdata/fn-render/krmignore/Kptfile
+++ b/e2e/testdata/fn-render/krmignore/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 46dfdadc..9fbcdc2b 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: FunctionResultList
 metadata:
   name: fnresults
diff --git a/e2e/testdata/fn-render/kubeval-failure/Kptfile b/e2e/testdata/fn-render/kubeval-failure/Kptfile
index 58935f5c..f881c5c9 100644
--- a/e2e/testdata/fn-render/kubeval-failure/Kptfile
+++ b/e2e/testdata/fn-render/kubeval-failure/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 26fd1fbf..4894aeac 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/missing-fnconfig/Kptfile b/e2e/testdata/fn-render/missing-fnconfig/Kptfile
index 9792f074..a957d59d 100644
--- a/e2e/testdata/fn-render/missing-fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/missing-fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 530d4ad0..8c0fd517 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/multiple-fnconfig/Kptfile b/e2e/testdata/fn-render/multiple-fnconfig/Kptfile
index 1a792327..40a6e748 100644
--- a/e2e/testdata/fn-render/multiple-fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/multiple-fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/no-fnconfig/Kptfile b/e2e/testdata/fn-render/no-fnconfig/Kptfile
index 3d69f263..b5980bad 100644
--- a/e2e/testdata/fn-render/no-fnconfig/Kptfile
+++ b/e2e/testdata/fn-render/no-fnconfig/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 165cbeac..df692cbd 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 d080ef0d..51ef7cb1 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 32bba40a..8e842410 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 883da19e..d9e2f05c 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: app
diff --git a/e2e/testdata/fn-render/no-pipeline/Kptfile b/e2e/testdata/fn-render/no-pipeline/Kptfile
index 883da19e..d9e2f05c 100644
--- a/e2e/testdata/fn-render/no-pipeline/Kptfile
+++ b/e2e/testdata/fn-render/no-pipeline/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 883da19e..d9e2f05c 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 32bba40a..8e842410 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 e27541d5..1ab5a71d 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
\ No newline at end of file
++  image: nginx:1.2.3
diff --git a/e2e/testdata/fn-render/out-of-place-dir/Kptfile b/e2e/testdata/fn-render/out-of-place-dir/Kptfile
index 2d1b28a8..7fc6888b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 2d1b28a8..7fc6888b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 2d1b28a8..7fc6888b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 2d1b28a8..7fc6888b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 2d1b28a8..7fc6888b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 2d1b28a8..7fc6888b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 7b3bc56d..ac710dc0 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 b43c4f50..b00bc0ea 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 2b504552..10d977a8 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
\ No newline at end of file
++            - containerPort: 9876
diff --git a/e2e/testdata/fn-render/path-index-current/Kptfile b/e2e/testdata/fn-render/path-index-current/Kptfile
index 15001aa3..96fe19c8 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 6212e438..fcacf27f 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
\ No newline at end of file
++            - containerPort: 9876
diff --git a/e2e/testdata/fn-render/path-index-descendent/Kptfile b/e2e/testdata/fn-render/path-index-descendent/Kptfile
index 15001aa3..96fe19c8 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 60f507d0..79b7a5a3 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 b9b08a35..b149d829 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 7b3bc56d..ac710dc0 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 b43c4f50..b00bc0ea 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/preserve-comments/Kptfile b/e2e/testdata/fn-render/preserve-comments/Kptfile
index 8bfd30bf..fc0cb6ef 100644
--- a/e2e/testdata/fn-render/preserve-comments/Kptfile
+++ b/e2e/testdata/fn-render/preserve-comments/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 bb7dd818..10cdc51a 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
\ No newline at end of file
+   image: nginx:1.2.3
diff --git a/e2e/testdata/fn-render/resource-deletion/Kptfile b/e2e/testdata/fn-render/resource-deletion/Kptfile
index 990c9beb..df89375b 100644
--- a/e2e/testdata/fn-render/resource-deletion/Kptfile
+++ b/e2e/testdata/fn-render/resource-deletion/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 6f2d4b61..24d7dafb 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
\ No newline at end of file
+         - name: wordpress
diff --git a/e2e/testdata/fn-render/resource-has-pkgname-prefix/Kptfile b/e2e/testdata/fn-render/resource-has-pkgname-prefix/Kptfile
index ece2d280..0bcb8100 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 13657029..78ee518f 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 f09f19ad..9e173053 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 e37e8edb..351ba03f 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 990c9beb..df89375b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 99cc82a1..335f069f 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 32bba40a..8e842410 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 7480fcea..273a535f 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 a6dba647..da09d060 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
\ No newline at end of file
++        tier: backend
diff --git a/e2e/testdata/fn-render/subpkg-resource-deletion/Kptfile b/e2e/testdata/fn-render/subpkg-resource-deletion/Kptfile
index 990c9beb..df89375b 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 99cc82a1..335f069f 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/subpkgs/Kptfile b/e2e/testdata/fn-render/subpkgs/Kptfile
index 77e7beba..9092fbf7 100644
--- a/e2e/testdata/fn-render/subpkgs/Kptfile
+++ b/e2e/testdata/fn-render/subpkgs/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 530d4ad0..8c0fd517 100644
--- a/e2e/testdata/fn-render/subpkgs/db/Kptfile
+++ b/e2e/testdata/fn-render/subpkgs/db/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: db
diff --git a/e2e/testdata/fn-render/success-stdout/Kptfile b/e2e/testdata/fn-render/success-stdout/Kptfile
index 32bba40a..8e842410 100644
--- a/e2e/testdata/fn-render/success-stdout/Kptfile
+++ b/e2e/testdata/fn-render/success-stdout/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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 43f384f9..9d5a157a 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 02cfa602..c18e3162 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 a796a703..5dac137e 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/v1alpha2
+apiVersion: kpt.dev/v1
 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 608e9e62..e5b6ece9 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: app
diff --git a/internal/cmdapply/cmdapply_test.go b/internal/cmdapply/cmdapply_test.go
index 5a09d2f5..0872a86f 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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         *kptfilev1alpha2.Inventory
+		inventory         *kptfilev1.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: &kptfilev1alpha2.Inventory{
+			inventory: &kptfilev1.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: &kptfilev1alpha2.Inventory{
+			inventory: &kptfilev1.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: &kptfilev1alpha2.Inventory{
+			inventory: &kptfilev1.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: &kptfilev1alpha2.Inventory{
+			inventory: &kptfilev1.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 953486d9..f2d0b825 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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           *kptfilev1alpha2.Inventory
+		inventory           *kptfilev1.Inventory
 		destroyCallbackFunc func(*testing.T, inventory.InventoryInfo)
 		expectedErrorMsg    string
 	}{
@@ -63,7 +63,7 @@ func TestCmd(t *testing.T) {
 				"--inventory-policy", "adopt",
 				"--output", "events",
 			},
-			inventory: &kptfilev1alpha2.Inventory{
+			inventory: &kptfilev1.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 4c7fca2c..f16380d3 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, dest, kptfilev1.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -66,21 +66,21 @@ func TestCmd_execute(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1alpha2.KptFileAPIVersion,
-				Kind:       kptfilev1alpha2.KptFileName},
+				APIVersion: kptfilev1.KptFileAPIVersion,
+				Kind:       kptfilev1.KptFileName},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, dest, kptfilev1.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -126,21 +126,21 @@ func TestCmdMainBranch_execute(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1alpha2.KptFileAPIVersion,
-				Kind:       kptfilev1alpha2.KptFileName},
+				APIVersion: kptfilev1.KptFileAPIVersion,
+				Kind:       kptfilev1.KptFileName},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "main",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.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, kptfilev1alpha2.FastForward, r.Get.UpdateStrategy)
+				assert.Equal(t, kptfilev1.FastForward, r.Get.UpdateStrategy)
 			},
 		},
 		"invalid strategy provided": {
diff --git a/internal/cmdinit/cmdinit_test.go b/internal/cmdinit/cmdinit_test.go
index c05b67ef..0edc6cfb 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/v1alpha2
+	assert.Equal(t, `apiVersion: kpt.dev/v1
 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/v1alpha2
+	assert.Equal(t, `apiVersion: kpt.dev/v1
 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/v1alpha2
+	assert.Equal(t, `apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: my-pkg
diff --git a/internal/cmdliveinit/cmdliveinit_test.go b/internal/cmdliveinit/cmdliveinit_test.go
index bac18bee..8fdee252 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
@@ -41,7 +41,7 @@ upstreamLock:
 const testInventoryID = "SSSSSSSSSS-RRRRR"
 
 var kptFileWithInventory = `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
@@ -136,7 +136,7 @@ func TestCmd_Run(t *testing.T) {
 		force             bool
 		expectedErrorMsg  string
 		expectAutoGenID   bool
-		expectedInventory kptfilev1alpha2.Inventory
+		expectedInventory kptfilev1.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: kptfilev1alpha2.Inventory{
+			expectedInventory: kptfilev1.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: kptfilev1alpha2.Inventory{
+			expectedInventory: kptfilev1.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: kptfilev1alpha2.Inventory{
+			expectedInventory: kptfilev1.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, kptfilev1alpha2.KptFileName),
+			err := ioutil.WriteFile(filepath.Join(w.WorkspaceDirectory, kptfilev1.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 9b03db31..97a0e29d 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 inventory:
   name: test-inventory-obj
@@ -345,7 +345,7 @@ func TestKptMigrate_migrateObjs(t *testing.T) {
 }
 
 var kptFileWithInventory = `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
@@ -363,7 +363,7 @@ inventory:
 const testInventoryID = "SSSSSSSSSS-RRRRR"
 
 var kptFile = `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
diff --git a/internal/cmdupdate/cmdupdate_test.go b/internal/cmdupdate/cmdupdate_test.go
index 1ee98f9e..8aec3f4d 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, kptfilev1alpha2.KptFile{
+	if !g.AssertKptfile(t, dest, kptfilev1.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -107,21 +107,21 @@ func TestCmd_execute(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 				Directory: "/",
 			},
-			UpdateStrategy: kptfilev1alpha2.FastForward,
+			UpdateStrategy: kptfilev1.FastForward,
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.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, kptfilev1alpha2.ResourceMerge, r.Update.Strategy)
+	assert.Equal(t, kptfilev1.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, kptfilev1alpha2.UpdateStrategyType(""), r.Update.Strategy)
+	assert.Equal(t, kptfilev1.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, kptfilev1alpha2.ResourceMerge, r.Update.Strategy)
+	assert.Equal(t, kptfilev1.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, kptfilev1alpha2.ForceDeleteReplace, r.Update.Strategy)
+	assert.Equal(t, kptfilev1.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, kptfilev1alpha2.ResourceMerge, r.Update.Strategy)
+	assert.Equal(t, kptfilev1.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 074871d6..0d71ce88 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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                kptfilev1alpha2.Function
+		fn                kptfilev1.Function
 		configFileContent string
 		expected          string
 	}
@@ -43,12 +43,12 @@ func TestFunctionConfig(t *testing.T) {
 	cases := []input{
 		{
 			name:     "no config",
-			fn:       kptfilev1alpha2.Function{},
+			fn:       kptfilev1.Function{},
 			expected: "",
 		},
 		{
 			name: "file config",
-			fn:   kptfilev1alpha2.Function{},
+			fn:   kptfilev1.Function{},
 			configFileContent: `apiVersion: cft.dev/v1alpha1
 kind: ResourceHierarchy
 metadata:
@@ -63,7 +63,7 @@ metadata:
 		},
 		{
 			name: "map config",
-			fn: kptfilev1alpha2.Function{
+			fn: kptfilev1.Function{
 				ConfigMap: map[string]string{
 					"foo": "bar",
 				},
diff --git a/internal/pkg/pkg_test.go b/internal/pkg/pkg_test.go
index 17a1b656..44b68083 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: mysql
@@ -260,7 +260,7 @@ pipeline:
         replicas: 5
 `,
 				`
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Pipeline
 sources:
   - "."`,
@@ -327,7 +327,7 @@ func TestDirectSubpackages(t *testing.T) {
 						WithKptfile(
 							pkgbuilder.NewKptfile().
 								WithUpstream("github.com/GoogleContainerTools/kpt",
-									"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+									"/", "main", string(kptfilev1.ResourceMerge)),
 						).
 						WithResource(pkgbuilder.ConfigMapResource),
 				),
@@ -361,7 +361,7 @@ func TestDirectSubpackages(t *testing.T) {
 						WithKptfile(
 							pkgbuilder.NewKptfile().
 								WithUpstream("github.com/GoogleContainerTools/kpt",
-									"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+									"/", "main", string(kptfilev1.ResourceMerge)),
 						).
 						WithResource(pkgbuilder.ConfigMapResource).
 						WithSubPackages(
@@ -371,7 +371,7 @@ func TestDirectSubpackages(t *testing.T) {
 										WithKptfile(
 											pkgbuilder.NewKptfile().
 												WithUpstream("github.com/GoogleContainerTools/kpt",
-													"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+													"/", "main", string(kptfilev1.ResourceMerge)),
 										).
 										WithResource(pkgbuilder.ConfigMapResource),
 								),
@@ -464,7 +464,7 @@ func TestSubpackages(t *testing.T) {
 						WithKptfile(
 							pkgbuilder.NewKptfile().
 								WithUpstream("github.com/GoogleContainerTools/kpt",
-									"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+									"/", "main", string(kptfilev1.ResourceMerge)),
 						).
 						WithSubPackages(
 							pkgbuilder.NewSubPkg("directory").
@@ -473,7 +473,7 @@ func TestSubpackages(t *testing.T) {
 										WithKptfile(
 											pkgbuilder.NewKptfile().
 												WithUpstream("github.com/GoogleContainerTools/kpt",
-													"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+													"/", "main", string(kptfilev1.ResourceMerge)),
 										),
 								),
 						),
@@ -486,7 +486,7 @@ func TestSubpackages(t *testing.T) {
 										WithKptfile(
 											pkgbuilder.NewKptfile().
 												WithUpstream("github.com/GoogleContainerTools/kpt",
-													"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+													"/", "main", string(kptfilev1.ResourceMerge)),
 										),
 								),
 							pkgbuilder.NewSubPkg("local-sub2").
@@ -678,7 +678,7 @@ func TestFunctionConfigFilePaths(t *testing.T) {
 						WithKptfile(
 							pkgbuilder.NewKptfile().
 								WithUpstream("github.com/GoogleContainerTools/kpt",
-									"/", "main", string(kptfilev1alpha2.ResourceMerge)).
+									"/", "main", string(kptfilev1.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(kptfilev1alpha2.ResourceMerge)).
+													"/", "main", string(kptfilev1.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(kptfilev1alpha2.ResourceMerge)),
+													"/", "main", string(kptfilev1.ResourceMerge)),
 										),
 								),
 							pkgbuilder.NewSubPkg("local-sub2").
diff --git a/internal/testutil/pkgbuilder/builder.go b/internal/testutil/pkgbuilder/builder.go
index 7939d7e3..4e1bfabe 100644
--- a/internal/testutil/pkgbuilder/builder.go
+++ b/internal/testutil/pkgbuilder/builder.go
@@ -25,7 +25,7 @@ import (
 	"testing"
 	"text/template"
 
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, kptfilev1alpha2.KptFileName),
+		err := ioutil.WriteFile(filepath.Join(pkgPath, kptfilev1.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/v1alpha2
+var kptfileTemplate = `apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: {{.PkgName}}
diff --git a/internal/testutil/setup_manager.go b/internal/testutil/setup_manager.go
index 0f077d07..915e6bc0 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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 kptfilev1alpha2.UpdateStrategyType) bool {
-	expectedKptfile := kptfilev1alpha2.KptFile{
+func (g *TestSetupManager) AssertKptfile(name, commit, ref string, strategy kptfilev1.UpdateStrategyType) bool {
+	expectedKptfile := kptfilev1.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: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
+		Upstream: &kptfilev1.Upstream{
 			Type: "git",
-			Git: &kptfilev1alpha2.Git{
+			Git: &kptfilev1.Git{
 				Directory: g.GetSubDirectory,
 				Repo:      g.Repos[Upstream].RepoDirectory,
 				Ref:       ref,
 			},
 			UpdateStrategy: strategy,
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
 			Type: "git",
-			Git: &kptfilev1alpha2.GitLock{
+			Git: &kptfilev1.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 a766c8b3..50aa2916 100644
--- a/internal/testutil/testdata/updateMergeConflict/Kptfile
+++ b/internal/testutil/testdata/updateMergeConflict/Kptfile
@@ -1,4 +1,4 @@
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
     name: test-kpt-upstream-307571298
diff --git a/internal/testutil/testutil.go b/internal/testutil/testutil.go
index 885801a7..3fda094e 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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(kptfilev1alpha2.KptFileName)
+var KptfileSet = diffSet(kptfilev1.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, kptfilev1alpha2.KptFileName) {
+		if !strings.HasSuffix(s, kptfilev1.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 kptfilev1alpha2.KptFile) bool {
+func (g *TestGitRepo) AssertKptfile(t *testing.T, cloned string, kpkg kptfilev1.KptFile) bool {
 	// read the actual generated KptFile
-	b, err := ioutil.ReadFile(filepath.Join(cloned, kptfilev1alpha2.KptFileName))
+	b, err := ioutil.ReadFile(filepath.Join(cloned, kptfilev1.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 *kptfilev1alpha2.KptFile) {
+func AddKptfileToWorkspace(t *testing.T, w *TestWorkspace, kf *kptfilev1.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, kptfilev1alpha2.Upstream{}) {
+			if dataKptfile.Upstream == nil || reflect.DeepEqual(dataKptfile.Upstream, kptfilev1.Upstream{}) {
 				dataKptfile.Upstream = repoKptfile.Upstream
 			}
-			if dataKptfile.UpstreamLock == nil || reflect.DeepEqual(dataKptfile.UpstreamLock, kptfilev1alpha2.UpstreamLock{}) {
+			if dataKptfile.UpstreamLock == nil || reflect.DeepEqual(dataKptfile.UpstreamLock, kptfilev1.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 == kptfilev1alpha2.KptFileName {
+		if rel == kptfilev1.KptFileName {
 			return nil
 		}
 
diff --git a/internal/util/fetch/fetch_test.go b/internal/util/fetch/fetch_test.go
index 96f64488..e7701100 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 *kptfilev1alpha2.Git, strategy kptfilev1alpha2.UpdateStrategyType) error {
+func createKptfile(workspace *testutil.TestWorkspace, git *kptfilev1.Git, strategy kptfilev1.UpdateStrategyType) error {
 	kf := kptfileutil.DefaultKptfile(workspace.PackageDir)
-	kf.Upstream = &kptfilev1alpha2.Upstream{
-		Type:           kptfilev1alpha2.GitOrigin,
+	kf.Upstream = &kptfilev1.Upstream{
+		Type:           kptfilev1.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, kptfilev1alpha2.ResourceMerge)
+	err := createKptfile(w, nil, kptfilev1.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, &kptfilev1alpha2.Git{
+	err := createKptfile(w, &kptfilev1.Git{
 		Repo:      "",
 		Directory: "/",
 		Ref:       "main",
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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, &kptfilev1alpha2.Git{
+	err := createKptfile(w, &kptfilev1.Git{
 		Repo:      "file://" + g.RepoDirectory,
 		Directory: "/",
 		Ref:       "",
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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, &kptfilev1alpha2.Git{
+	err := createKptfile(w, &kptfilev1.Git{
 		Repo:      "file://" + g.RepoDirectory,
 		Directory: "/",
 		Ref:       "master",
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -195,21 +195,21 @@ func TestCommand_Run(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1alpha2.KptFileAPIVersion,
-				Kind:       kptfilev1alpha2.KptFileName},
+				APIVersion: kptfilev1.KptFileAPIVersion,
+				Kind:       kptfilev1.KptFileName},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
+		Upstream: &kptfilev1.Upstream{
 			Type: "git",
-			Git: &kptfilev1alpha2.Git{
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
 			Type: "git",
-			Git: &kptfilev1alpha2.GitLock{
+			Git: &kptfilev1.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, &kptfilev1alpha2.Git{
+	err := createKptfile(w, &kptfilev1.Git{
 		Repo:      g.RepoDirectory,
 		Directory: subdir,
 		Ref:       "refs/heads/master",
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.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: kptfilev1alpha2.KptFileAPIVersion,
-				Kind:       kptfilev1alpha2.KptFileName},
+				APIVersion: kptfilev1.KptFileAPIVersion,
+				Kind:       kptfilev1.KptFileName},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: subdir,
 				Ref:       "refs/heads/master",
 				Repo:      g.RepoDirectory,
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.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, &kptfilev1alpha2.Git{
+	err = createKptfile(w, &kptfilev1.Git{
 		Repo:      g.RepoDirectory,
 		Directory: "/",
 		Ref:       "refs/heads/exp",
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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(), kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, w.FullPackagePath(), kptfilev1.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: kptfilev1alpha2.KptFileAPIVersion,
-				Kind:       kptfilev1alpha2.KptFileName},
+				APIVersion: kptfilev1.KptFileAPIVersion,
+				Kind:       kptfilev1.KptFileName},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/heads/exp",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.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, &kptfilev1alpha2.Git{
+	err = createKptfile(w, &kptfilev1.Git{
 		Repo:      g.RepoDirectory,
 		Directory: "/",
 		Ref:       "refs/tags/v2",
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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(), kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, w.FullPackagePath(), kptfilev1.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: kptfilev1alpha2.KptFileAPIVersion,
-				Kind:       kptfilev1alpha2.KptFileName},
+				APIVersion: kptfilev1.KptFileAPIVersion,
+				Kind:       kptfilev1.KptFileName},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
+		Upstream: &kptfilev1.Upstream{
 			Type: "git",
-			Git: &kptfilev1alpha2.Git{
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/tags/v2",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
 			Type: "git",
-			Git: &kptfilev1alpha2.GitLock{
+			Git: &kptfilev1.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, &kptfilev1alpha2.Git{
+			err := createKptfile(rw, &kptfilev1.Git{
 				Repo:      g.RepoDirectory,
 				Directory: tc.dir,
 				Ref:       tc.tag,
-			}, kptfilev1alpha2.ResourceMerge)
+			}, kptfilev1.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, &kptfilev1alpha2.Git{
+	err := createKptfile(rw, &kptfilev1.Git{
 		Repo:      g.RepoDirectory,
 		Directory: dir,
 		Ref:       tag,
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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, &kptfilev1alpha2.Git{
+	err := createKptfile(rw, &kptfilev1.Git{
 		Repo:      g.RepoDirectory,
 		Directory: dir,
 		Ref:       nonexistentTag,
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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, &kptfilev1alpha2.Git{
+	err := createKptfile(w, &kptfilev1.Git{
 		Repo:      "foo",
 		Directory: "/",
 		Ref:       "refs/heads/master",
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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, &kptfilev1alpha2.Git{
+	err := createKptfile(w, &kptfilev1.Git{
 		Repo:      g.RepoDirectory,
 		Directory: "/",
 		Ref:       "refs/heads/foo",
-	}, kptfilev1alpha2.ResourceMerge)
+	}, kptfilev1.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, &kptfilev1alpha2.Git{
+	err := createKptfile(w, &kptfilev1.Git{
 		Repo:      g.RepoDirectory,
 		Directory: "/",
 		Ref:       "refs/tags/foo",
-	}, kptfilev1alpha2.FastForward)
+	}, kptfilev1.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 65c625b4..6d0669e3 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 )
 
 func ExampleCommand() {
-	err := get.Command{Git: &kptfilev1alpha2.Git{
+	err := get.Command{Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+	err := get.Command{Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+	err := get.Command{Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+	err := get.Command{Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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 958d4597..664c8fe2 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+	err := Command{Git: &kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.KptFile{
 		ResourceMeta: yaml.ResourceMeta{
 			ObjectMeta: yaml.ObjectMeta{
 				NameMeta: yaml.NameMeta{
@@ -101,26 +101,26 @@ func TestCommand_Run(t *testing.T) {
 				},
 			},
 			TypeMeta: yaml.TypeMeta{
-				APIVersion: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.GitLock{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 				Commit:    commit, // verify the commit matches the repo
 			},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      "file://" + g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.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: &kptfilev1alpha2.Git{
+	err := Command{Git: &kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.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: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
 			Type: "git",
-			Git: &kptfilev1alpha2.GitLock{
+			Git: &kptfilev1.GitLock{
 				Commit:    commit,
 				Directory: subdir,
 				Ref:       "refs/heads/master",
 				Repo:      g.RepoDirectory,
 			},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
+		Upstream: &kptfilev1.Upstream{
 			Type: "git",
-			Git: &kptfilev1alpha2.Git{
+			Git: &kptfilev1.Git{
 				Directory: subdir,
 				Ref:       "refs/heads/master",
 				Repo:      g.RepoDirectory,
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
 	})
 }
@@ -198,7 +198,7 @@ func TestCommand_Run_destination(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, dest)
 	err := Command{
-		Git: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.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: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 				Commit:    commit,
 			},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
 	})
 }
@@ -262,7 +262,7 @@ func TestCommand_Run_subdirAndDestination(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, dest)
 	err := Command{
-		Git: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.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: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.GitLock{
 				Commit:    commit,
 				Directory: subdir,
 				Ref:       "master",
 				Repo:      g.RepoDirectory,
 			},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: subdir,
 				Ref:       "master",
 				Repo:      g.RepoDirectory,
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
 	})
 }
@@ -342,7 +342,7 @@ func TestCommand_Run_branch(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, g.RepoName)
 	err = Command{
-		Git: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.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: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/heads/exp",
 				Commit:    commit,
 			},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/heads/exp",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
 	})
 }
@@ -425,7 +425,7 @@ func TestCommand_Run_tag(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, g.RepoName)
 	err = Command{
-		Git: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.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: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/tags/v2",
 				Commit:    commit,
 			},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "refs/tags/v2",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
 	})
 }
@@ -566,7 +566,7 @@ func TestCommand_Run_ref(t *testing.T) {
 
 			absPath := filepath.Join(w.WorkspaceDirectory, repos[testutil.Upstream].RepoName)
 			err = Command{
-				Git: &kptfilev1alpha2.Git{
+				Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.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: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 				Commit:    commit, // verify the commit matches the repo
 			},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
 	})
 
@@ -649,7 +649,7 @@ func TestCommand_Run_failExistingDir(t *testing.T) {
 
 	// try to clone and expect a failure
 	err = Command{
-		Git: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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, kptfilev1alpha2.KptFile{
+	g.AssertKptfile(t, absPath, kptfilev1.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: kptfilev1alpha2.TypeMeta.APIVersion,
-				Kind:       kptfilev1alpha2.TypeMeta.Kind},
+				APIVersion: kptfilev1.TypeMeta.APIVersion,
+				Kind:       kptfilev1.TypeMeta.Kind},
 		},
-		UpstreamLock: &kptfilev1alpha2.UpstreamLock{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.GitLock{
+		UpstreamLock: &kptfilev1.UpstreamLock{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.GitLock{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 				Commit:    commit, // verify the commit matches the repo
 			},
 		},
-		Upstream: &kptfilev1alpha2.Upstream{
-			Type: kptfilev1alpha2.GitOrigin,
-			Git: &kptfilev1alpha2.Git{
+		Upstream: &kptfilev1.Upstream{
+			Type: kptfilev1.GitOrigin,
+			Git: &kptfilev1.Git{
 				Directory: "/",
 				Repo:      g.RepoDirectory,
 				Ref:       "master",
 			},
-			UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+			UpdateStrategy: kptfilev1.ResourceMerge,
 		},
 	})
 }
@@ -706,7 +706,7 @@ func TestCommand_Run_nonexistingParentDir(t *testing.T) {
 
 	absPath := filepath.Join(w.WorkspaceDirectory, "more", "dirs", g.RepoName)
 	err := Command{
-		Git: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.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 kptfilev1alpha2.UpdateStrategyType
+		updateStrategy kptfilev1.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: kptfilev1alpha2.FastForward,
+			updateStrategy: kptfilev1.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: &kptfilev1alpha2.Git{
+				Git: &kptfilev1.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{kptfilev1alpha2.KptFileName},
+				MatchFilesGlob: []string{kptfilev1.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: &kptfilev1alpha2.Git{
+		Git: &kptfilev1.Git{
 			Repo:      upstreamRepo.RepoDirectory,
 			Directory: "/",
 			Ref:       "master",
diff --git a/internal/util/man/man_test.go b/internal/util/man/man_test.go
index 11888551..8a62dc2d 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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, kptfilev1alpha2.KptFileName), []byte(`
-apiVersion: kpt.dev/v1alpha2
+	err = ioutil.WriteFile(filepath.Join(d, kptfilev1.KptFileName), []byte(`
+apiVersion: kpt.dev/v1
 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, kptfilev1alpha2.KptFileName), []byte(`
-apiVersion: kpt.dev/v1alpha2
+	err = ioutil.WriteFile(filepath.Join(d, kptfilev1.KptFileName), []byte(`
+apiVersion: kpt.dev/v1
 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, kptfilev1alpha2.KptFileName), []byte(`
-apiVersion: kpt.dev/v1alpha2
+	err = ioutil.WriteFile(filepath.Join(d, kptfilev1.KptFileName), []byte(`
+apiVersion: kpt.dev/v1
 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, kptfilev1alpha2.KptFileName), []byte(`
-apiVersion: kpt.dev/v1alpha2
+	err = ioutil.WriteFile(filepath.Join(d, kptfilev1.KptFileName), []byte(`
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: java
diff --git a/internal/util/pkgutil/pkgutil_test.go b/internal/util/pkgutil/pkgutil_test.go
index 868cf327..8373c2b3 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"github.com/stretchr/testify/assert"
 )
 
@@ -411,7 +411,7 @@ func TestFindLocalRecursiveSubpackagesForPaths(t *testing.T) {
 							WithKptfile(
 								pkgbuilder.NewKptfile().
 									WithUpstream("github.com/GoogleContainerTools/kpt",
-										"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+										"/", "main", string(kptfilev1.ResourceMerge)),
 							).
 							WithResource(pkgbuilder.ConfigMapResource),
 					),
@@ -449,7 +449,7 @@ func TestFindLocalRecursiveSubpackagesForPaths(t *testing.T) {
 							WithKptfile(
 								pkgbuilder.NewKptfile().
 									WithUpstream("github.com/GoogleContainerTools/kpt",
-										"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+										"/", "main", string(kptfilev1.ResourceMerge)),
 							).
 							WithResource(pkgbuilder.ConfigMapResource).
 							WithSubPackages(
@@ -459,7 +459,7 @@ func TestFindLocalRecursiveSubpackagesForPaths(t *testing.T) {
 											WithKptfile(
 												pkgbuilder.NewKptfile().
 													WithUpstream("github.com/GoogleContainerTools/kpt",
-														"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+														"/", "main", string(kptfilev1.ResourceMerge)),
 											).
 											WithResource(pkgbuilder.ConfigMapResource),
 									),
@@ -522,7 +522,7 @@ func TestFindLocalRecursiveSubpackagesForPaths(t *testing.T) {
 							WithKptfile(
 								pkgbuilder.NewKptfile().
 									WithUpstream("github.com/GoogleContainerTools/kpt",
-										"/", "main", string(kptfilev1alpha2.ResourceMerge)),
+										"/", "main", string(kptfilev1.ResourceMerge)),
 							),
 					),
 			},
diff --git a/internal/util/update/update_test.go b/internal/util/update/update_test.go
index a56e20eb..e76bb52d 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 kptfilev1alpha2.UpdateStrategies {
-		strategy := kptfilev1alpha2.UpdateStrategies[i]
+	for i := range kptfilev1.UpdateStrategies {
+		strategy := kptfilev1.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 kptfilev1alpha2.UpdateStrategies {
-		strategy := kptfilev1alpha2.UpdateStrategies[i]
+	for i := range kptfilev1.UpdateStrategies {
+		strategy := kptfilev1.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 kptfilev1alpha2.UpdateStrategyType
+		updater kptfilev1.UpdateStrategyType
 		err     string
 	}{
-		{kptfilev1alpha2.FastForward, ""},
-		{kptfilev1alpha2.ForceDeleteReplace, ""},
+		{kptfilev1.FastForward, ""},
+		{kptfilev1.ForceDeleteReplace, ""},
 		// {AlphaGitPatch, "no updates"},
-		{kptfilev1alpha2.ResourceMerge, ""},
+		{kptfilev1.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 kptfilev1alpha2.UpdateStrategies {
-		strategy := kptfilev1alpha2.UpdateStrategies[i]
+	for i := range kptfilev1.UpdateStrategies {
+		strategy := kptfilev1.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 kptfilev1alpha2.UpdateStrategies {
-		strategy := kptfilev1alpha2.UpdateStrategies[i]
+	for i := range kptfilev1.UpdateStrategies {
+		strategy := kptfilev1.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 = &kptfilev1alpha2.Upstream{
-		Type: kptfilev1alpha2.GitOrigin,
-		Git: &kptfilev1alpha2.Git{
+	kf.Upstream = &kptfilev1.Upstream{
+		Type: kptfilev1.GitOrigin,
+		Git: &kptfilev1.Git{
 			Repo:      "https://github.com/GoogleContainerTools/kpt",
 			Directory: "/",
 			Ref:       "main",
 		},
-		UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+		UpdateStrategy: kptfilev1.ResourceMerge,
 	}
-	kf.UpstreamLock = &kptfilev1alpha2.UpstreamLock{
-		Type: kptfilev1alpha2.GitOrigin,
-		Git: &kptfilev1alpha2.GitLock{
+	kf.UpstreamLock = &kptfilev1.UpstreamLock{
+		Type: kptfilev1.GitOrigin,
+		Git: &kptfilev1.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        kptfilev1alpha2.UpdateStrategyType
+		strategy        kptfilev1.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: kptfilev1alpha2.ResourceMerge,
+			strategy: kptfilev1.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: kptfilev1alpha2.FastForward,
+			strategy: kptfilev1.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: kptfilev1alpha2.ForceDeleteReplace,
+			strategy: kptfilev1.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: kptfilev1alpha2.ResourceMerge,
+			strategy: kptfilev1.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: kptfilev1alpha2.ForceDeleteReplace,
+			strategy: kptfilev1.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 kptfilev1alpha2.UpdateStrategies {
-		strategy := kptfilev1alpha2.UpdateStrategies[i]
+	for i := range kptfilev1.UpdateStrategies {
+		strategy := kptfilev1.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 kptfilev1alpha2.UpdateStrategies {
-		strategy := kptfilev1alpha2.UpdateStrategies[i]
+	for i := range kptfilev1.UpdateStrategies {
+		strategy := kptfilev1.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 := []kptfilev1alpha2.UpdateStrategyType{kptfilev1alpha2.ResourceMerge}
+	strategies := []kptfilev1.UpdateStrategyType{kptfilev1.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 kptfilev1alpha2.UpdateStrategies {
-		strategy := kptfilev1alpha2.UpdateStrategies[i]
+	for i := range kptfilev1.UpdateStrategies {
+		strategy := kptfilev1.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 kptfilev1alpha2.UpdateStrategies {
-		strategy := kptfilev1alpha2.UpdateStrategies[i]
+	for i := range kptfilev1.UpdateStrategies {
+		strategy := kptfilev1.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 := kptfilev1alpha2.UpdateStrategyType("foo")
+	strategy := kptfilev1.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: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
-						kptfilev1alpha2.FastForward,
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
+						kptfilev1.FastForward,
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1094,8 +1094,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1111,14 +1111,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.FastForward,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1170,8 +1170,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1189,14 +1189,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.FastForward,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1250,20 +1250,20 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
 					},
 					expectedErrMsg: "subpackage \"abc\" added in both upstream and local",
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.FastForward,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1301,10 +1301,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
-						kptfilev1alpha2.FastForward,
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
+						kptfilev1.FastForward,
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1340,10 +1340,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
-						kptfilev1alpha2.FastForward,
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
+						kptfilev1.FastForward,
+						kptfilev1.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: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1407,9 +1407,9 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.FastForward,
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.FastForward,
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1459,8 +1459,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1476,14 +1476,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.FastForward,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1521,10 +1521,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
-						kptfilev1alpha2.FastForward,
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
+						kptfilev1.FastForward,
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1567,8 +1567,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1584,14 +1584,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						),
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.FastForward,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1628,10 +1628,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
-						kptfilev1alpha2.FastForward,
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
+						kptfilev1.FastForward,
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1677,10 +1677,10 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
-						kptfilev1alpha2.FastForward,
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
+						kptfilev1.FastForward,
+						kptfilev1.ForceDeleteReplace,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1721,8 +1721,8 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 			},
 			expectedResults: []resultForStrategy{
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ResourceMerge,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.ResourceMerge,
 					},
 					expectedLocal: pkgbuilder.NewRootPkg().
 						WithKptfile(
@@ -1733,14 +1733,14 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 						WithFile("data.txt", "local content"),
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.FastForward,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.FastForward,
 					},
 					expectedErrMsg: "use a different update --strategy",
 				},
 				{
-					strategies: []kptfilev1alpha2.UpdateStrategyType{
-						kptfilev1alpha2.ForceDeleteReplace,
+					strategies: []kptfilev1.UpdateStrategyType{
+						kptfilev1.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{kptfilev1alpha2.KptFileName},
+					MatchFilesGlob: []string{kptfilev1.KptFileName},
 				}
 				err = kio.Pipeline{
 					Inputs:  []kio.Reader{rw},
@@ -1827,13 +1827,13 @@ func TestCommand_Run_local_subpackages(t *testing.T) {
 }
 
 type resultForStrategy struct {
-	strategies     []kptfilev1alpha2.UpdateStrategyType
+	strategies     []kptfilev1.UpdateStrategyType
 	expectedLocal  *pkgbuilder.RootPkg
 	expectedErrMsg string
 }
 
-func findStrategiesForTestCase(expectedResults []resultForStrategy) []kptfilev1alpha2.UpdateStrategyType {
-	var strategies []kptfilev1alpha2.UpdateStrategyType
+func findStrategiesForTestCase(expectedResults []resultForStrategy) []kptfilev1.UpdateStrategyType {
+	var strategies []kptfilev1.UpdateStrategyType
 	for _, er := range expectedResults {
 		strategies = append(strategies, er.strategies...)
 	}
@@ -1841,7 +1841,7 @@ func findStrategiesForTestCase(expectedResults []resultForStrategy) []kptfilev1a
 }
 
 func findExpectedResultForStrategy(strategyResults []resultForStrategy,
-	strategy kptfilev1alpha2.UpdateStrategyType) resultForStrategy {
+	strategy kptfilev1.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{kptfilev1alpha2.KptFileName},
+				MatchFilesGlob: []string{kptfilev1.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 = &kptfilev1alpha2.Upstream{
-				Type: kptfilev1alpha2.GitOrigin,
-				Git: &kptfilev1alpha2.Git{
+			kf.Upstream = &kptfilev1.Upstream{
+				Type: kptfilev1.GitOrigin,
+				Git: &kptfilev1.Git{
 					Repo:      repos[testutil.Upstream].RepoDirectory,
 					Directory: tc.directory,
 					Ref:       tc.ref,
 				},
-				UpdateStrategy: kptfilev1alpha2.ResourceMerge,
+				UpdateStrategy: kptfilev1.ResourceMerge,
 			}
 			testutil.AddKptfileToWorkspace(t, w, kf)
 
diff --git a/pkg/api/kptfile/v1alpha2/validation_test.go b/pkg/api/kptfile/v1/validation_test.go
similarity index 99%
rename from pkg/api/kptfile/v1alpha2/validation_test.go
rename to pkg/api/kptfile/v1/validation_test.go
index 8bc5c5fa..db2042f8 100644
--- a/pkg/api/kptfile/v1alpha2/validation_test.go
+++ b/pkg/api/kptfile/v1/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 v1alpha2
+package v1
 
 import (
 	"testing"
diff --git a/pkg/kptfile/kptfileutil/util_test.go b/pkg/kptfile/kptfileutil/util_test.go
index 79798a6b..6116b478 100644
--- a/pkg/kptfile/kptfileutil/util_test.go
+++ b/pkg/kptfile/kptfileutil/util_test.go
@@ -21,7 +21,7 @@ import (
 	"strings"
 	"testing"
 
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 := &kptfilev1alpha2.Inventory{}
+	inv := &kptfilev1.Inventory{}
 	isValid, err = ValidateInventory(inv)
 	if isValid || err == nil {
 		t.Errorf("empty inventory should not validate")
 	}
 	// Empty inventory parameters strings should not validate
-	inv = &kptfilev1alpha2.Inventory{
+	inv = &kptfilev1.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 = &kptfilev1alpha2.Inventory{
+	inv = &kptfilev1.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, kptfilev1alpha2.KptFileName), []byte(content), 0600)
+		err = ioutil.WriteFile(filepath.Join(dir, kptfilev1.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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: base
 `,
 			updated: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: base
 `,
 			local: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
 `,
 			updateUpstream: false,
 			expected: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -122,7 +122,7 @@ upstream:
     ref: v1
 `,
 			updated: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -134,14 +134,14 @@ upstream:
     ref: v2
 `,
 			local: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
 `,
 			updateUpstream: false,
 			expected: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -150,7 +150,7 @@ metadata:
 
 		"upstream information is copied from upstream when updateUpstream is true": {
 			origin: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -162,7 +162,7 @@ upstream:
     ref: v1
 `,
 			updated: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -181,14 +181,14 @@ upstreamLock:
     commit: abc123
 `,
 			local: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
 `,
 			updateUpstream: true,
 			expected: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -210,7 +210,7 @@ upstreamLock:
 
 		"pipeline in upstream replaces local": {
 			origin: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -219,7 +219,7 @@ pipeline:
     - image: foo:bar
 `,
 			updated: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -231,7 +231,7 @@ pipeline:
     - image: some:image
 `,
 			local: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -244,7 +244,7 @@ pipeline:
 `,
 			updateUpstream: true,
 			expected: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -268,7 +268,7 @@ pipeline:
     - image: foo:bar
 `,
 			updated: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -277,7 +277,7 @@ pipeline:
     - image: foo:bar
 `,
 			local: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -290,7 +290,7 @@ pipeline:
 `,
 			updateUpstream: true,
 			expected: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -305,19 +305,19 @@ pipeline:
 
 		"pipeline remains if it is only added locally": {
 			origin: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
 `,
 			updated: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
 `,
 			local: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -328,7 +328,7 @@ pipeline:
 `,
 			updateUpstream: true,
 			expected: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -350,13 +350,13 @@ pipeline:
     - image: foo:bar
 `,
 			updated: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
 `,
 			local: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -367,7 +367,7 @@ pipeline:
 `,
 			updateUpstream: false,
 			expected: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: foo
@@ -399,7 +399,7 @@ pipeline: {}
 				t.FailNow()
 			}
 
-			c, err := ioutil.ReadFile(filepath.Join(dirs["local"], kptfilev1alpha2.KptFileName))
+			c, err := ioutil.ReadFile(filepath.Join(dirs["local"], kptfilev1.KptFileName))
 			if !assert.NoError(t, err) {
 				t.FailNow()
 			}
diff --git a/pkg/live/helpers_test.go b/pkg/live/helpers_test.go
index c0388c0c..a62b49aa 100644
--- a/pkg/live/helpers_test.go
+++ b/pkg/live/helpers_test.go
@@ -16,7 +16,7 @@ package live
 
 var (
 	kptFile = `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
@@ -33,7 +33,7 @@ inventory:
   inventoryID: XXXXXXXXXX-FOOOOOO
 `
 	kptFileWithPipeline = `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: kptfileWithPipeline
@@ -86,7 +86,7 @@ spec:
     singular: custom
   scope: Cluster
   versions:
-  - name: v1alpha2
+  - name: v1
     schema:
       openAPIV3Schema:
         description: This is for testing
@@ -96,7 +96,7 @@ spec:
     subresources: {}
 `
 	cr = `
-apiVersion: custom.io/v1alpha2
+apiVersion: custom.io/v1
 kind: Custom
 metadata:
   name: cr
diff --git a/pkg/live/load_test.go b/pkg/live/load_test.go
index 4653fc85..7765bdc8 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/v1alpha2"
+	kptfile "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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 61767b3a..c1cce7ec 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/v1alpha2
+apiVersion: kpt.dev/v1
 kind: foo
 metadata:
   name: test1
@@ -196,7 +196,7 @@ spec:
 		},
 		"Wrong fields (foo/bar) in kptfile is invalid": {
 			kptfile: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 foo: bar
 `,
@@ -204,7 +204,7 @@ foo: bar
 		},
 		"Kptfile with deployment/replicas fields is invalid": {
 			kptfile: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test-deployment
@@ -215,7 +215,7 @@ spec:
 		},
 		"Wrong fields (foo/bar) in kptfile inventory is invalid": {
 			kptfile: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
@@ -232,14 +232,14 @@ inventory:
 		},
 		"Kptfile with only GVK is valid": {
 			kptfile: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 `,
 			expected: true,
 		},
 		"Kptfile missing optional inventory is still valid": {
 			kptfile: `
-apiVersion: kpt.dev/v1alpha2
+apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: test1
diff --git a/thirdparty/cli-utils/status/cmdstatus_test.go b/thirdparty/cli-utils/status/cmdstatus_test.go
index e400ec83..a94bc850 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"
-	kptfilev1alpha2 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	kptfilev1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"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     *kptfilev1alpha2.Inventory
+		kptfileInv     *kptfilev1.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: &kptfilev1alpha2.Inventory{
+			kptfileInv: &kptfilev1.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: &kptfilev1alpha2.Inventory{
+			kptfileInv: &kptfilev1.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: &kptfilev1alpha2.Inventory{
+			kptfileInv: &kptfilev1.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: &kptfilev1alpha2.Inventory{
+			kptfileInv: &kptfilev1.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: &kptfilev1alpha2.Inventory{
+			kptfileInv: &kptfilev1.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 9f9f0fbd..017c118a 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/v1alpha2
+	err = ioutil.WriteFile(filepath.Join(d, "Kptfile"), []byte(`apiVersion: kpt.dev/v1
 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/v1alpha2
+	err = ioutil.WriteFile(filepath.Join(d, "subpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: subpkg
@@ -364,7 +364,7 @@ spec:
 		return
 	}
 
-	err = ioutil.WriteFile(filepath.Join(d, "Mainpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1alpha2
+	err = ioutil.WriteFile(filepath.Join(d, "Mainpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1
 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/v1alpha2
+	err = ioutil.WriteFile(filepath.Join(d, "Mainpkg", "Subpkg", "Kptfile"), []byte(`apiVersion: kpt.dev/v1
 kind: Kptfile
 metadata:
   name: Subpkg
diff --git a/thirdparty/kyaml/runfn/runfn_test.go b/thirdparty/kyaml/runfn/runfn_test.go
index 0475ad56..66727b2c 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/v1alpha2"
-	"github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1alpha2"
+	fnresult "github.com/GoogleContainerTools/kpt/pkg/api/fnresult/v1"
+	v1 "github.com/GoogleContainerTools/kpt/pkg/api/kptfile/v1"
 	"github.com/stretchr/testify/assert"
 
 	"sigs.k8s.io/kustomize/kyaml/copyutil"
@@ -44,7 +44,7 @@ stringMatch: Deployment
 replace: ReplicaSet
 `
 
-	KptfileData = `apiVersion: kpt.dev/v1alpha2
+	KptfileData = `apiVersion: kpt.dev/v1
 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, v1alpha2.KptFileName), []byte(KptfileData), 0600)) {
+		filepath.Join(dir, v1.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, v1alpha2.KptFileName))
+		filepath.Join(dir, v1.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, v1alpha2.KptFileName), []byte(KptfileData), 0600)) {
+		filepath.Join(dir, v1.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, v1alpha2.KptFileName))
+		filepath.Join(dir, v1.KptFileName))
 	if !assert.NoError(t, err) {
 		t.FailNow()
 	}