Repository: GoogleCloudPlatform/cloud-sql-proxy-operator
Pull request #258 (2023-03-08 21:50:40)

feat!: Move to v1 for the AuthProxyWorkload api version.
Support only `v1` for the AuthProxyWorkload API version. This represents feature completion for the AuthProxyWorkload 
resource.

hessjcg: /gcprun
hessjcg: /gcbrun

Patch:
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..46b2a08
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,43 @@
+# Contributor Code of Conduct
+
+As contributors and maintainers of this project,
+and in the interest of fostering an open and welcoming community,
+we pledge to respect all people who contribute through reporting issues,
+posting feature requests, updating documentation,
+submitting pull requests or patches, and other activities.
+
+We are committed to making participation in this project
+a harassment-free experience for everyone,
+regardless of level of experience, gender, gender identity and expression,
+sexual orientation, disability, personal appearance,
+body size, race, ethnicity, age, religion, or nationality.
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery
+* Personal attacks
+* Trolling or insulting/derogatory comments
+* Public or private harassment
+* Publishing other's private information,
+such as physical or electronic
+addresses, without explicit permission
+* Other unethical or unprofessional conduct.
+
+Project maintainers have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct.
+By adopting this Code of Conduct,
+project maintainers commit themselves to fairly and consistently
+applying these principles to every aspect of managing this project.
+Project maintainers who do not follow or enforce the Code of Conduct
+may be permanently removed from the project team.
+
+This code of conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community.
+
+Instances of abusive, harassing, or otherwise unacceptable behavior
+may be reported by opening an issue
+or contacting one or more of the project maintainers.
+
+This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
+available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..6272489
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,28 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. There are
+just a few small guidelines you need to follow.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. You (or your employer) retain the copyright to your contribution;
+this simply gives us permission to use and redistribute your contributions as
+part of the project. Head over to <https://cla.developers.google.com/> to see
+your current agreements on file or to sign a new one.
+
+You generally only need to submit a CLA once, so if you've already submitted one
+(even if it was for a different project), you probably don't need to do it
+again.
+
+## Code Reviews
+
+All submissions, including submissions by project members, require review. We
+use GitHub pull requests for this purpose. Consult
+[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
+information on using pull requests.
+
+## Community Guidelines
+
+This project follows [Google's Open Source Community
+Guidelines](https://opensource.google/conduct/).
diff --git a/PROJECT b/PROJECT
index 726e5ca..beb90bb 100644
--- a/PROJECT
+++ b/PROJECT
@@ -11,8 +11,8 @@ resources:
   domain: cloud.google.com
   group: cloudsql
   kind: AuthProxyWorkload
-  path: github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1
-  version: v1alpha1
+  path: github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1
+  version: v1
   webhooks:
     defaulting: true
     validation: true
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..8b58ae9
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,7 @@
+# Security Policy
+
+To report a security issue, please use [g.co/vulnz](https://g.co/vulnz).
+
+The Google Security Team will respond within 5 working days of your report on g.co/vulnz.
+
+We use g.co/vulnz for our intake, and do coordination and disclosure here using GitHub Security Advisory to privately discuss and fix the issue.
diff --git a/config/crd/bases/cloudsql.cloud.google.com_authproxyworkloads.yaml b/config/crd/bases/cloudsql.cloud.google.com_authproxyworkloads.yaml
index 5a2edb9..9438dc8 100644
--- a/config/crd/bases/cloudsql.cloud.google.com_authproxyworkloads.yaml
+++ b/config/crd/bases/cloudsql.cloud.google.com_authproxyworkloads.yaml
@@ -27,7 +27,7 @@ spec:
     singular: authproxyworkload
   scope: Namespaced
   versions:
-    - name: v1alpha1
+    - name: v1
       schema:
         openAPIV3Schema:
           description: AuthProxyWorkload declares how a Cloud SQL Proxy container should be applied to a matching set of workloads, and shows the status of those proxy containers.
diff --git a/config/manager/controller_manager_config.yaml b/config/manager/controller_manager_config.yaml
index 56f7bb5..3f0f8bc 100644
--- a/config/manager/controller_manager_config.yaml
+++ b/config/manager/controller_manager_config.yaml
@@ -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.
-apiVersion: controller-runtime.sigs.k8s.io/v1alpha1
+apiVersion: controller-runtime.sigs.k8s.io/v1
 kind: ControllerManagerConfig
 health:
   healthProbeBindAddress: :8081
diff --git a/config/samples/cloudsql_v1alpha1_authproxyworkload.yaml b/config/samples/cloudsql_v1alpha1_authproxyworkload.yaml
index 30279fa..3661f6d 100644
--- a/config/samples/cloudsql_v1alpha1_authproxyworkload.yaml
+++ b/config/samples/cloudsql_v1alpha1_authproxyworkload.yaml
@@ -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.
-apiVersion: cloudsql.cloud.google.com/v1alpha1
+apiVersion: cloudsql.cloud.google.com/v1
 kind: AuthProxyWorkload
 metadata:
   name: authproxyworkload-sample
diff --git a/config/webhook/manifests.yaml b/config/webhook/manifests.yaml
index 4e42f8b..475e018 100644
--- a/config/webhook/manifests.yaml
+++ b/config/webhook/manifests.yaml
@@ -23,14 +23,14 @@ webhooks:
       service:
         name: webhook-service
         namespace: system
-        path: /mutate-cloudsql-cloud-google-com-v1alpha1-authproxyworkload
+        path: /mutate-cloudsql-cloud-google-com-v1-authproxyworkload
     failurePolicy: Fail
     name: mauthproxyworkload.kb.io
     rules:
       - apiGroups:
           - cloudsql.cloud.google.com
         apiVersions:
-          - v1alpha1
+          - v1
         operations:
           - CREATE
           - UPDATE
@@ -50,14 +50,14 @@ webhooks:
       service:
         name: webhook-service
         namespace: system
-        path: /validate-cloudsql-cloud-google-com-v1alpha1-authproxyworkload
+        path: /validate-cloudsql-cloud-google-com-v1-authproxyworkload
     failurePolicy: Fail
     name: vauthproxyworkload.kb.io
     rules:
       - apiGroups:
           - cloudsql.cloud.google.com
         apiVersions:
-          - v1alpha1
+          - v1
         operations:
           - CREATE
           - UPDATE
diff --git a/docs/api.md b/docs/api.md
index efa4aff..1acb5c8 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -1,13 +1,13 @@
 # API Reference
 
 ## Packages
-- [cloudsql.cloud.google.com/v1alpha1](#cloudsqlcloudgooglecomv1alpha1)
+- [cloudsql.cloud.google.com/v1](#cloudsqlcloudgooglecomv1)
 
 
-## cloudsql.cloud.google.com/v1alpha1
+## cloudsql.cloud.google.com/v1
 
-Package v1alpha1 contains the API Schema definitions for the
-the custom resource AuthProxyWorkload version v1alpha1.
+Package v1 contains the API Schema definitions for the
+the custom resource AuthProxyWorkload version v1.
 
 
 ### Resource Types
@@ -64,7 +64,7 @@ AuthProxyWorkload declares how a Cloud SQL Proxy container should be applied to
 
 | Field | Description |
 | --- | --- |
-| `apiVersion` _string_ | `cloudsql.cloud.google.com/v1alpha1`
+| `apiVersion` _string_ | `cloudsql.cloud.google.com/v1`
 | `kind` _string_ | `AuthProxyWorkload`
 | `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. |
 | `spec` _[AuthProxyWorkloadSpec](#authproxyworkloadspec)_ |  |
diff --git a/docs/dev.md b/docs/dev.md
index 475b443..89f282b 100644
--- a/docs/dev.md
+++ b/docs/dev.md
@@ -26,8 +26,8 @@ mv .bin/tmp/* .
 
 Then, to create the CRD for Workload
 ```
-.bin/kubebuilder create api --group cloudsql --version v1alpha1 --kind AuthProxyWorkload --controller --resource --force
-.bin/kubebuilder create webhook --group cloudsql --version v1alpha1 --kind AuthProxyWorkload --defaulting --programmatic-validation
+.bin/kubebuilder create api --group cloudsql --version v1 --kind AuthProxyWorkload --controller --resource --force
+.bin/kubebuilder create webhook --group cloudsql --version v1 --kind AuthProxyWorkload --defaulting --programmatic-validation
 ```
 
 
diff --git a/docs/examples/deployment-mssql-tcp.yaml b/docs/examples/deployment-mssql-tcp.yaml
index 639ce1d..edb9930 100644
--- a/docs/examples/deployment-mssql-tcp.yaml
+++ b/docs/examples/deployment-mssql-tcp.yaml
@@ -20,7 +20,7 @@
 # Create an AuthProxyWorkload to hold the configuration for your
 # Cloud SQL Proxy containers.
 
-apiVersion: cloudsql.cloud.google.com/v1alpha1
+apiVersion: cloudsql.cloud.google.com/v1
 kind: AuthProxyWorkload
 metadata:
   name: authproxyworkload-sample
diff --git a/docs/examples/deployment-mysql-tcp.yaml b/docs/examples/deployment-mysql-tcp.yaml
index 7c05c6d..69831f2 100644
--- a/docs/examples/deployment-mysql-tcp.yaml
+++ b/docs/examples/deployment-mysql-tcp.yaml
@@ -20,7 +20,7 @@
 # Create an AuthProxyWorkload to hold the configuration for your
 # Cloud SQL Proxy containers.
 
-apiVersion: cloudsql.cloud.google.com/v1alpha1
+apiVersion: cloudsql.cloud.google.com/v1
 kind: AuthProxyWorkload
 metadata:
   name: authproxyworkload-sample
diff --git a/docs/examples/deployment-postgres-tcp.yaml b/docs/examples/deployment-postgres-tcp.yaml
index 7e3ab15..60e18fe 100644
--- a/docs/examples/deployment-postgres-tcp.yaml
+++ b/docs/examples/deployment-postgres-tcp.yaml
@@ -20,7 +20,7 @@
 # Create an AuthProxyWorkload to hold the configuration for your
 # Cloud SQL Proxy containers.
 
-apiVersion: cloudsql.cloud.google.com/v1alpha1
+apiVersion: cloudsql.cloud.google.com/v1
 kind: AuthProxyWorkload
 metadata:
   name: authproxyworkload-sample
diff --git a/docs/quick-start.md b/docs/quick-start.md
index 6a7d097..dfe2853 100644
--- a/docs/quick-start.md
+++ b/docs/quick-start.md
@@ -49,7 +49,7 @@ gcloud sql instances describe quickstart-instance --format='value(connectionName
 Create a new file named `authproxyworkload.yaml` containing the following:
 
 ```yaml
-apiVersion: cloudsql.cloud.google.com/v1alpha1
+apiVersion: cloudsql.cloud.google.com/v1
 kind: AuthProxyWorkload
 metadata:
   name: authproxyworkload-sample
diff --git a/installer/cloud-sql-proxy-operator.yaml b/installer/cloud-sql-proxy-operator.yaml
index 6ee9f68..aaa3ff4 100644
--- a/installer/cloud-sql-proxy-operator.yaml
+++ b/installer/cloud-sql-proxy-operator.yaml
@@ -45,7 +45,7 @@ spec:
     singular: authproxyworkload
   scope: Namespaced
   versions:
-    - name: v1alpha1
+    - name: v1
       schema:
         openAPIV3Schema:
           description: AuthProxyWorkload declares how a Cloud SQL Proxy container should be applied to a matching set of workloads, and shows the status of those proxy containers.
@@ -1387,7 +1387,7 @@ data:
     # 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: controller-runtime.sigs.k8s.io/v1alpha1
+    apiVersion: controller-runtime.sigs.k8s.io/v1
     kind: ControllerManagerConfig
     health:
       healthProbeBindAddress: :8081
@@ -1600,14 +1600,14 @@ webhooks:
       service:
         name: cloud-sql-proxy-operator-webhook-service
         namespace: cloud-sql-proxy-operator-system
-        path: /mutate-cloudsql-cloud-google-com-v1alpha1-authproxyworkload
+        path: /mutate-cloudsql-cloud-google-com-v1-authproxyworkload
     failurePolicy: Fail
     name: mauthproxyworkload.kb.io
     rules:
       - apiGroups:
           - cloudsql.cloud.google.com
         apiVersions:
-          - v1alpha1
+          - v1
         operations:
           - CREATE
           - UPDATE
@@ -1628,14 +1628,14 @@ webhooks:
       service:
         name: cloud-sql-proxy-operator-webhook-service
         namespace: cloud-sql-proxy-operator-system
-        path: /validate-cloudsql-cloud-google-com-v1alpha1-authproxyworkload
+        path: /validate-cloudsql-cloud-google-com-v1-authproxyworkload
     failurePolicy: Fail
     name: vauthproxyworkload.kb.io
     rules:
       - apiGroups:
           - cloudsql.cloud.google.com
         apiVersions:
-          - v1alpha1
+          - v1
         operations:
           - CREATE
           - UPDATE
diff --git a/internal/api/v1alpha1/authproxyworkload_types.go b/internal/api/v1/authproxyworkload_types.go
similarity index 99%
rename from internal/api/v1alpha1/authproxyworkload_types.go
rename to internal/api/v1/authproxyworkload_types.go
index 927b8ab..9e8ac37 100644
--- a/internal/api/v1alpha1/authproxyworkload_types.go
+++ b/internal/api/v1/authproxyworkload_types.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package v1alpha1
+package v1
 
 import (
 	corev1 "k8s.io/api/core/v1"
diff --git a/internal/api/v1alpha1/authproxyworkload_webhook.go b/internal/api/v1/authproxyworkload_webhook.go
similarity index 95%
rename from internal/api/v1alpha1/authproxyworkload_webhook.go
rename to internal/api/v1/authproxyworkload_webhook.go
index 0307b3a..b53d976 100644
--- a/internal/api/v1alpha1/authproxyworkload_webhook.go
+++ b/internal/api/v1/authproxyworkload_webhook.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package v1alpha1
+package v1
 
 import (
 	"fmt"
@@ -40,7 +40,7 @@ func (r *AuthProxyWorkload) SetupWebhookWithManager(mgr ctrl.Manager) error {
 		Complete()
 }
 
-// +kubebuilder:webhook:path=/mutate-cloudsql-cloud-google-com-v1alpha1-authproxyworkload,mutating=true,failurePolicy=fail,sideEffects=None,groups=cloudsql.cloud.google.com,resources=authproxyworkloads,verbs=create;update,versions=v1alpha1,name=mauthproxyworkload.kb.io,admissionReviewVersions=v1
+// +kubebuilder:webhook:path=/mutate-cloudsql-cloud-google-com-v1-authproxyworkload,mutating=true,failurePolicy=fail,sideEffects=None,groups=cloudsql.cloud.google.com,resources=authproxyworkloads,verbs=create;update,versions=v1,name=mauthproxyworkload.kb.io,admissionReviewVersions=v1
 var _ webhook.Defaulter = &AuthProxyWorkload{}
 
 // Default implements webhook.Defaulter so a webhook will be registered for the type
@@ -52,7 +52,7 @@ func (r *AuthProxyWorkload) Default() {
 	}
 }
 
-// +kubebuilder:webhook:path=/validate-cloudsql-cloud-google-com-v1alpha1-authproxyworkload,mutating=false,failurePolicy=fail,sideEffects=None,groups=cloudsql.cloud.google.com,resources=authproxyworkloads,verbs=create;update,versions=v1alpha1,name=vauthproxyworkload.kb.io,admissionReviewVersions=v1
+// +kubebuilder:webhook:path=/validate-cloudsql-cloud-google-com-v1-authproxyworkload,mutating=false,failurePolicy=fail,sideEffects=None,groups=cloudsql.cloud.google.com,resources=authproxyworkloads,verbs=create;update,versions=v1,name=vauthproxyworkload.kb.io,admissionReviewVersions=v1
 var _ webhook.Validator = &AuthProxyWorkload{}
 
 // ValidateCreate implements webhook.Validator so a webhook will be registered for the type
diff --git a/internal/api/v1alpha1/groupversion_info.go b/internal/api/v1/groupversion_info.go
similarity index 87%
rename from internal/api/v1alpha1/groupversion_info.go
rename to internal/api/v1/groupversion_info.go
index 1732cd6..2f49af0 100644
--- a/internal/api/v1alpha1/groupversion_info.go
+++ b/internal/api/v1/groupversion_info.go
@@ -12,12 +12,12 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Package v1alpha1 contains the API Schema definitions for the
-// the custom resource AuthProxyWorkload version v1alpha1.
+// Package v1 contains the API Schema definitions for the
+// the custom resource AuthProxyWorkload version v1.
 //
 // +kubebuilder:object:generate=true
 // +groupName=cloudsql.cloud.google.com
-package v1alpha1
+package v1
 
 import (
 	"k8s.io/apimachinery/pkg/runtime/schema"
@@ -26,7 +26,7 @@ import (
 
 var (
 	// GroupVersion is group version used to register these objects
-	GroupVersion = schema.GroupVersion{Group: "cloudsql.cloud.google.com", Version: "v1alpha1"}
+	GroupVersion = schema.GroupVersion{Group: "cloudsql.cloud.google.com", Version: "v1"}
 
 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
 	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
diff --git a/internal/api/v1alpha1/zz_generated.deepcopy.go b/internal/api/v1/zz_generated.deepcopy.go
similarity index 97%
rename from internal/api/v1alpha1/zz_generated.deepcopy.go
rename to internal/api/v1/zz_generated.deepcopy.go
index 6ae0c0b..ca207a6 100644
--- a/internal/api/v1alpha1/zz_generated.deepcopy.go
+++ b/internal/api/v1/zz_generated.deepcopy.go
@@ -17,11 +17,11 @@
 
 // Code generated by controller-gen. DO NOT EDIT.
 
-package v1alpha1
+package v1
 
 import (
 	corev1 "k8s.io/api/core/v1"
-	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime"
 )
 
@@ -182,11 +182,11 @@ func (in *AuthProxyWorkloadStatus) DeepCopyInto(out *AuthProxyWorkloadStatus) {
 	*out = *in
 	if in.Conditions != nil {
 		in, out := &in.Conditions, &out.Conditions
-		*out = make([]*v1.Condition, len(*in))
+		*out = make([]*metav1.Condition, len(*in))
 		for i := range *in {
 			if (*in)[i] != nil {
 				in, out := &(*in)[i], &(*out)[i]
-				*out = new(v1.Condition)
+				*out = new(metav1.Condition)
 				(*in).DeepCopyInto(*out)
 			}
 		}
@@ -309,7 +309,7 @@ func (in *WorkloadSelectorSpec) DeepCopyInto(out *WorkloadSelectorSpec) {
 	*out = *in
 	if in.Selector != nil {
 		in, out := &in.Selector, &out.Selector
-		*out = new(v1.LabelSelector)
+		*out = new(metav1.LabelSelector)
 		(*in).DeepCopyInto(*out)
 	}
 }
@@ -329,11 +329,11 @@ func (in *WorkloadStatus) DeepCopyInto(out *WorkloadStatus) {
 	*out = *in
 	if in.Conditions != nil {
 		in, out := &in.Conditions, &out.Conditions
-		*out = make([]*v1.Condition, len(*in))
+		*out = make([]*metav1.Condition, len(*in))
 		for i := range *in {
 			if (*in)[i] != nil {
 				in, out := &(*in)[i], &(*out)[i]
-				*out = new(v1.Condition)
+				*out = new(metav1.Condition)
 				(*in).DeepCopyInto(*out)
 			}
 		}
diff --git a/internal/controller/authproxyworkload_controller.go b/internal/controller/authproxyworkload_controller.go
index f2ae27e..6bf746d 100644
--- a/internal/controller/authproxyworkload_controller.go
+++ b/internal/controller/authproxyworkload_controller.go
@@ -30,7 +30,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
 	"sigs.k8s.io/controller-runtime/pkg/log"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	"github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/workload"
 	"github.com/go-logr/logr"
 )
diff --git a/internal/controller/pod_controller.go b/internal/controller/pod_controller.go
index ced5514..a1fd0de 100644
--- a/internal/controller/pod_controller.go
+++ b/internal/controller/pod_controller.go
@@ -27,7 +27,7 @@ import (
 	logf "sigs.k8s.io/controller-runtime/pkg/log"
 	"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	"github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/workload"
 )
 
diff --git a/internal/controller/proxy_image_upgrade.go b/internal/controller/proxy_image_upgrade.go
index 530664d..7ed9ced 100644
--- a/internal/controller/proxy_image_upgrade.go
+++ b/internal/controller/proxy_image_upgrade.go
@@ -18,7 +18,7 @@ import (
 	"context"
 	"fmt"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/log"
 )
diff --git a/internal/controller/setup.go b/internal/controller/setup.go
index 71cf166..ac55215 100644
--- a/internal/controller/setup.go
+++ b/internal/controller/setup.go
@@ -15,7 +15,7 @@
 package controller
 
 import (
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	"github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/workload"
 	"k8s.io/apimachinery/pkg/runtime"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
diff --git a/internal/workload/names.go b/internal/workload/names.go
index b3087a0..147a6b2 100644
--- a/internal/workload/names.go
+++ b/internal/workload/names.go
@@ -19,7 +19,7 @@ import (
 	"hash/fnv"
 	"strings"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 )
 
 // ContainerPrefix is the name prefix used on containers added to PodSpecs
diff --git a/internal/workload/podspec_updates.go b/internal/workload/podspec_updates.go
index d1bfe82..755e6b2 100644
--- a/internal/workload/podspec_updates.go
+++ b/internal/workload/podspec_updates.go
@@ -29,7 +29,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	logf "sigs.k8s.io/controller-runtime/pkg/log"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 )
 
 // Constants for well known error codes and defaults. These are exposed on the
diff --git a/internal/workload/workload.go b/internal/workload/workload.go
index fdec69c..1b8b45c 100644
--- a/internal/workload/workload.go
+++ b/internal/workload/workload.go
@@ -17,7 +17,7 @@ package workload
 import (
 	"fmt"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	appsv1 "k8s.io/api/apps/v1"
 	batchv1 "k8s.io/api/batch/v1"
 	corev1 "k8s.io/api/core/v1"


Test patch:
diff --git a/internal/api/v1alpha1/authproxyworkload_test.go b/internal/api/v1/authproxyworkload_test.go
similarity index 99%
rename from internal/api/v1alpha1/authproxyworkload_test.go
rename to internal/api/v1/authproxyworkload_test.go
index 102816e..da7a6f9 100644
--- a/internal/api/v1alpha1/authproxyworkload_test.go
+++ b/internal/api/v1/authproxyworkload_test.go
@@ -12,12 +12,12 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package v1alpha1_test
+package v1_test
 
 import (
 	"testing"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	apierrors "k8s.io/apimachinery/pkg/api/errors"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
diff --git a/internal/controller/authproxyworkload_controller_test.go b/internal/controller/authproxyworkload_controller_test.go
index 45e4b0c..831275a 100644
--- a/internal/controller/authproxyworkload_controller_test.go
+++ b/internal/controller/authproxyworkload_controller_test.go
@@ -34,7 +34,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/log"
 	"sigs.k8s.io/controller-runtime/pkg/log/zap"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	"github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/testhelpers"
 	"github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/workload"
 )
diff --git a/internal/controller/pod_controller_test.go b/internal/controller/pod_controller_test.go
index 5c24e28..e5cbd2f 100644
--- a/internal/controller/pod_controller_test.go
+++ b/internal/controller/pod_controller_test.go
@@ -18,7 +18,7 @@ import (
 	"context"
 	"testing"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	"github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/testhelpers"
 	"github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/workload"
 	appsv1 "k8s.io/api/apps/v1"
diff --git a/internal/testhelpers/resources.go b/internal/testhelpers/resources.go
index 36e3b6d..51160c1 100644
--- a/internal/testhelpers/resources.go
+++ b/internal/testhelpers/resources.go
@@ -22,7 +22,7 @@ import (
 	"strconv"
 	"time"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	appsv1 "k8s.io/api/apps/v1"
 	batchv1 "k8s.io/api/batch/v1"
 	corev1 "k8s.io/api/core/v1"
diff --git a/internal/testhelpers/testcases.go b/internal/testhelpers/testcases.go
index 10317ad..838c36b 100644
--- a/internal/testhelpers/testcases.go
+++ b/internal/testhelpers/testcases.go
@@ -19,7 +19,7 @@ import (
 	"errors"
 	"fmt"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/types"
 	"k8s.io/apimachinery/pkg/util/rand"
diff --git a/internal/workload/names_test.go b/internal/workload/names_test.go
index 82936b6..db26a29 100644
--- a/internal/workload/names_test.go
+++ b/internal/workload/names_test.go
@@ -19,7 +19,7 @@ import (
 
 	"github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/workload"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 )
 
 func TestSafePrefixedName(t *testing.T) {
diff --git a/internal/workload/podspec_updates_test.go b/internal/workload/podspec_updates_test.go
index 9f87585..6720540 100644
--- a/internal/workload/podspec_updates_test.go
+++ b/internal/workload/podspec_updates_test.go
@@ -21,7 +21,7 @@ import (
 	"testing"
 	"time"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	"github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/workload"
 	corev1 "k8s.io/api/core/v1"
 	"k8s.io/apimachinery/pkg/api/resource"
diff --git a/internal/workload/workload_test.go b/internal/workload/workload_test.go
index 2a12806..1956414 100644
--- a/internal/workload/workload_test.go
+++ b/internal/workload/workload_test.go
@@ -18,7 +18,7 @@ import (
 	"os"
 	"testing"
 
-	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1alpha1"
+	cloudsqlapi "github.com/GoogleCloudPlatform/cloud-sql-proxy-operator/internal/api/v1"
 	"go.uber.org/zap/zapcore"
 	appsv1 "k8s.io/api/apps/v1"
 	batchv1 "k8s.io/api/batch/v1"