feat: basic functionality implemented

- added Core CRD to manage DB migrations & configuration, PostgREST and
  GoTrue (auth)
- added APIGateway CRD to manage Envoy proxy
- added Dashboard CRD to manage (so far) pg-meta and (soon) studio
  deployments
- implemented basic Envoy control plane based on K8s watcher
This commit is contained in:
Peter 2025-01-04 17:07:49 +01:00
parent 2fae578618
commit 647f602c79
Signed by: prskr
GPG key ID: F56BED6903BC5E37
123 changed files with 12173 additions and 581 deletions

View file

@ -21,15 +21,283 @@ limitations under the License.
package v1alpha1
import (
"k8s.io/api/core/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *APIGateway) DeepCopyInto(out *APIGateway) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
in.Spec.DeepCopyInto(&out.Spec)
out.Status = in.Status
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGateway.
func (in *APIGateway) DeepCopy() *APIGateway {
if in == nil {
return nil
}
out := new(APIGateway)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *APIGateway) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *APIGatewayList) DeepCopyInto(out *APIGatewayList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]APIGateway, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGatewayList.
func (in *APIGatewayList) DeepCopy() *APIGatewayList {
if in == nil {
return nil
}
out := new(APIGatewayList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *APIGatewayList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *APIGatewaySpec) DeepCopyInto(out *APIGatewaySpec) {
*out = *in
if in.Envoy != nil {
in, out := &in.Envoy, &out.Envoy
*out = new(EnvoySpec)
(*in).DeepCopyInto(*out)
}
if in.JWKSSelector != nil {
in, out := &in.JWKSSelector, &out.JWKSSelector
*out = new(v1.SecretKeySelector)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGatewaySpec.
func (in *APIGatewaySpec) DeepCopy() *APIGatewaySpec {
if in == nil {
return nil
}
out := new(APIGatewaySpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *APIGatewayStatus) DeepCopyInto(out *APIGatewayStatus) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGatewayStatus.
func (in *APIGatewayStatus) DeepCopy() *APIGatewayStatus {
if in == nil {
return nil
}
out := new(APIGatewayStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AuthProviderMeta) DeepCopyInto(out *AuthProviderMeta) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthProviderMeta.
func (in *AuthProviderMeta) DeepCopy() *AuthProviderMeta {
if in == nil {
return nil
}
out := new(AuthProviderMeta)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AuthProviders) DeepCopyInto(out *AuthProviders) {
*out = *in
if in.Email != nil {
in, out := &in.Email, &out.Email
*out = new(EmailAuthProvider)
(*in).DeepCopyInto(*out)
}
if in.Azure != nil {
in, out := &in.Azure, &out.Azure
*out = new(AzureAuthProvider)
(*in).DeepCopyInto(*out)
}
if in.Github != nil {
in, out := &in.Github, &out.Github
*out = new(GithubAuthProvider)
(*in).DeepCopyInto(*out)
}
if in.Phone != nil {
in, out := &in.Phone, &out.Phone
*out = new(PhoneAuthProvider)
**out = **in
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthProviders.
func (in *AuthProviders) DeepCopy() *AuthProviders {
if in == nil {
return nil
}
out := new(AuthProviders)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AuthSpec) DeepCopyInto(out *AuthSpec) {
*out = *in
if in.AdditionalRedirectUrls != nil {
in, out := &in.AdditionalRedirectUrls, &out.AdditionalRedirectUrls
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.DisableSignup != nil {
in, out := &in.DisableSignup, &out.DisableSignup
*out = new(bool)
**out = **in
}
if in.AnonymousUsersEnabled != nil {
in, out := &in.AnonymousUsersEnabled, &out.AnonymousUsersEnabled
*out = new(bool)
**out = **in
}
if in.Providers != nil {
in, out := &in.Providers, &out.Providers
*out = new(AuthProviders)
(*in).DeepCopyInto(*out)
}
if in.WorkloadTemplate != nil {
in, out := &in.WorkloadTemplate, &out.WorkloadTemplate
*out = new(WorkloadTemplate)
(*in).DeepCopyInto(*out)
}
if in.EmailSignupDisabled != nil {
in, out := &in.EmailSignupDisabled, &out.EmailSignupDisabled
*out = new(bool)
**out = **in
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthSpec.
func (in *AuthSpec) DeepCopy() *AuthSpec {
if in == nil {
return nil
}
out := new(AuthSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AzureAuthProvider) DeepCopyInto(out *AzureAuthProvider) {
*out = *in
out.AuthProviderMeta = in.AuthProviderMeta
in.OAuthProvider.DeepCopyInto(&out.OAuthProvider)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureAuthProvider.
func (in *AzureAuthProvider) DeepCopy() *AzureAuthProvider {
if in == nil {
return nil
}
out := new(AzureAuthProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ContainerTemplate) DeepCopyInto(out *ContainerTemplate) {
*out = *in
out.ImageSpec = in.ImageSpec
if in.ImagePullSecrets != nil {
in, out := &in.ImagePullSecrets, &out.ImagePullSecrets
*out = make([]v1.LocalObjectReference, len(*in))
copy(*out, *in)
}
if in.SecurityContext != nil {
in, out := &in.SecurityContext, &out.SecurityContext
*out = new(v1.SecurityContext)
(*in).DeepCopyInto(*out)
}
in.Resources.DeepCopyInto(&out.Resources)
if in.VolumeMounts != nil {
in, out := &in.VolumeMounts, &out.VolumeMounts
*out = make([]v1.VolumeMount, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.AdditionalEnv != nil {
in, out := &in.AdditionalEnv, &out.AdditionalEnv
*out = make([]v1.EnvVar, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerTemplate.
func (in *ContainerTemplate) DeepCopy() *ContainerTemplate {
if in == nil {
return nil
}
out := new(ContainerTemplate)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ControlPlaneSpec) DeepCopyInto(out *ControlPlaneSpec) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneSpec.
func (in *ControlPlaneSpec) DeepCopy() *ControlPlaneSpec {
if in == nil {
return nil
}
out := new(ControlPlaneSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Core) DeepCopyInto(out *Core) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
out.Spec = in.Spec
in.Spec.DeepCopyInto(&out.Spec)
in.Status.DeepCopyInto(&out.Status)
}
@ -51,6 +319,23 @@ func (in *Core) DeepCopyObject() runtime.Object {
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CoreCondition) DeepCopyInto(out *CoreCondition) {
*out = *in
in.LastProbeTime.DeepCopyInto(&out.LastProbeTime)
in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoreCondition.
func (in *CoreCondition) DeepCopy() *CoreCondition {
if in == nil {
return nil
}
out := new(CoreCondition)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CoreList) DeepCopyInto(out *CoreList) {
*out = *in
@ -86,7 +371,18 @@ func (in *CoreList) DeepCopyObject() runtime.Object {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CoreSpec) DeepCopyInto(out *CoreSpec) {
*out = *in
out.Database = in.Database
if in.JWT != nil {
in, out := &in.JWT, &out.JWT
*out = new(JwtSpec)
(*in).DeepCopyInto(*out)
}
in.Database.DeepCopyInto(&out.Database)
in.Postgrest.DeepCopyInto(&out.Postgrest)
if in.Auth != nil {
in, out := &in.Auth, &out.Auth
*out = new(AuthSpec)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoreSpec.
@ -102,11 +398,12 @@ func (in *CoreSpec) DeepCopy() *CoreSpec {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CoreStatus) DeepCopyInto(out *CoreStatus) {
*out = *in
if in.AppliedMigrations != nil {
in, out := &in.AppliedMigrations, &out.AppliedMigrations
*out = make(map[string]uint64, len(*in))
for key, val := range *in {
(*out)[key] = val
in.Database.DeepCopyInto(&out.Database)
if in.Conditions != nil {
in, out := &in.Conditions, &out.Conditions
*out = make([]CoreCondition, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
@ -121,9 +418,144 @@ func (in *CoreStatus) DeepCopy() *CoreStatus {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Dashboard) DeepCopyInto(out *Dashboard) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
in.Spec.DeepCopyInto(&out.Spec)
out.Status = in.Status
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dashboard.
func (in *Dashboard) DeepCopy() *Dashboard {
if in == nil {
return nil
}
out := new(Dashboard)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Dashboard) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DashboardDbSpec) DeepCopyInto(out *DashboardDbSpec) {
*out = *in
if in.DBCredentialsRef != nil {
in, out := &in.DBCredentialsRef, &out.DBCredentialsRef
*out = new(v1.LocalObjectReference)
**out = **in
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DashboardDbSpec.
func (in *DashboardDbSpec) DeepCopy() *DashboardDbSpec {
if in == nil {
return nil
}
out := new(DashboardDbSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DashboardList) DeepCopyInto(out *DashboardList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]Dashboard, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DashboardList.
func (in *DashboardList) DeepCopy() *DashboardList {
if in == nil {
return nil
}
out := new(DashboardList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *DashboardList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DashboardSpec) DeepCopyInto(out *DashboardSpec) {
*out = *in
if in.DBSpec != nil {
in, out := &in.DBSpec, &out.DBSpec
*out = new(DashboardDbSpec)
(*in).DeepCopyInto(*out)
}
if in.PGMeta != nil {
in, out := &in.PGMeta, &out.PGMeta
*out = new(PGMetaSpec)
(*in).DeepCopyInto(*out)
}
if in.Studio != nil {
in, out := &in.Studio, &out.Studio
*out = new(StudioSpec)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DashboardSpec.
func (in *DashboardSpec) DeepCopy() *DashboardSpec {
if in == nil {
return nil
}
out := new(DashboardSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DashboardStatus) DeepCopyInto(out *DashboardStatus) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DashboardStatus.
func (in *DashboardStatus) DeepCopy() *DashboardStatus {
if in == nil {
return nil
}
out := new(DashboardStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Database) DeepCopyInto(out *Database) {
*out = *in
if in.DSN != nil {
in, out := &in.DSN, &out.DSN
*out = new(string)
**out = **in
}
if in.DSNSecretRef != nil {
in, out := &in.DSNSecretRef, &out.DSNSecretRef
*out = new(v1.SecretKeySelector)
(*in).DeepCopyInto(*out)
}
in.Roles.DeepCopyInto(&out.Roles)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Database.
@ -135,3 +567,399 @@ func (in *Database) DeepCopy() *Database {
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DatabaseRoles) DeepCopyInto(out *DatabaseRoles) {
*out = *in
in.Secrets.DeepCopyInto(&out.Secrets)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseRoles.
func (in *DatabaseRoles) DeepCopy() *DatabaseRoles {
if in == nil {
return nil
}
out := new(DatabaseRoles)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DatabaseRolesSecrets) DeepCopyInto(out *DatabaseRolesSecrets) {
*out = *in
if in.Admin != nil {
in, out := &in.Admin, &out.Admin
*out = new(v1.LocalObjectReference)
**out = **in
}
if in.Authenticator != nil {
in, out := &in.Authenticator, &out.Authenticator
*out = new(v1.LocalObjectReference)
**out = **in
}
if in.AuthAdmin != nil {
in, out := &in.AuthAdmin, &out.AuthAdmin
*out = new(v1.LocalObjectReference)
**out = **in
}
if in.FunctionsAdmin != nil {
in, out := &in.FunctionsAdmin, &out.FunctionsAdmin
*out = new(v1.LocalObjectReference)
**out = **in
}
if in.StorageAdmin != nil {
in, out := &in.StorageAdmin, &out.StorageAdmin
*out = new(v1.LocalObjectReference)
**out = **in
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseRolesSecrets.
func (in *DatabaseRolesSecrets) DeepCopy() *DatabaseRolesSecrets {
if in == nil {
return nil
}
out := new(DatabaseRolesSecrets)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DatabaseStatus) DeepCopyInto(out *DatabaseStatus) {
*out = *in
if in.AppliedMigrations != nil {
in, out := &in.AppliedMigrations, &out.AppliedMigrations
*out = make(MigrationStatus, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
if in.Roles != nil {
in, out := &in.Roles, &out.Roles
*out = make(map[string][]byte, len(*in))
for key, val := range *in {
var outVal []byte
if val == nil {
(*out)[key] = nil
} else {
inVal := (*in)[key]
in, out := &inVal, &outVal
*out = make([]byte, len(*in))
copy(*out, *in)
}
(*out)[key] = outVal
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseStatus.
func (in *DatabaseStatus) DeepCopy() *DatabaseStatus {
if in == nil {
return nil
}
out := new(DatabaseStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EmailAuthProvider) DeepCopyInto(out *EmailAuthProvider) {
*out = *in
out.AuthProviderMeta = in.AuthProviderMeta
if in.SenderName != nil {
in, out := &in.SenderName, &out.SenderName
*out = new(string)
**out = **in
}
if in.Autoconfirm != nil {
in, out := &in.Autoconfirm, &out.Autoconfirm
*out = new(bool)
**out = **in
}
if in.SmtpSpec != nil {
in, out := &in.SmtpSpec, &out.SmtpSpec
*out = new(EmailAuthSmtpSpec)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmailAuthProvider.
func (in *EmailAuthProvider) DeepCopy() *EmailAuthProvider {
if in == nil {
return nil
}
out := new(EmailAuthProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EmailAuthSmtpSpec) DeepCopyInto(out *EmailAuthSmtpSpec) {
*out = *in
if in.MaxFrequency != nil {
in, out := &in.MaxFrequency, &out.MaxFrequency
*out = new(uint)
**out = **in
}
if in.CredentialsFrom != nil {
in, out := &in.CredentialsFrom, &out.CredentialsFrom
*out = new(v1.LocalObjectReference)
**out = **in
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmailAuthSmtpSpec.
func (in *EmailAuthSmtpSpec) DeepCopy() *EmailAuthSmtpSpec {
if in == nil {
return nil
}
out := new(EmailAuthSmtpSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EnvoySpec) DeepCopyInto(out *EnvoySpec) {
*out = *in
if in.ControlPlane != nil {
in, out := &in.ControlPlane, &out.ControlPlane
*out = new(ControlPlaneSpec)
**out = **in
}
if in.WorkloadTemplate != nil {
in, out := &in.WorkloadTemplate, &out.WorkloadTemplate
*out = new(WorkloadTemplate)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoySpec.
func (in *EnvoySpec) DeepCopy() *EnvoySpec {
if in == nil {
return nil
}
out := new(EnvoySpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GithubAuthProvider) DeepCopyInto(out *GithubAuthProvider) {
*out = *in
out.AuthProviderMeta = in.AuthProviderMeta
in.OAuthProvider.DeepCopyInto(&out.OAuthProvider)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GithubAuthProvider.
func (in *GithubAuthProvider) DeepCopy() *GithubAuthProvider {
if in == nil {
return nil
}
out := new(GithubAuthProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ImageSpec) DeepCopyInto(out *ImageSpec) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.
func (in *ImageSpec) DeepCopy() *ImageSpec {
if in == nil {
return nil
}
out := new(ImageSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *JwtSpec) DeepCopyInto(out *JwtSpec) {
*out = *in
if in.Secret != nil {
in, out := &in.Secret, &out.Secret
*out = new(string)
**out = **in
}
if in.SecretRef != nil {
in, out := &in.SecretRef, &out.SecretRef
*out = new(v1.LocalObjectReference)
**out = **in
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JwtSpec.
func (in *JwtSpec) DeepCopy() *JwtSpec {
if in == nil {
return nil
}
out := new(JwtSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in MigrationStatus) DeepCopyInto(out *MigrationStatus) {
{
in := &in
*out = make(MigrationStatus, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MigrationStatus.
func (in MigrationStatus) DeepCopy() MigrationStatus {
if in == nil {
return nil
}
out := new(MigrationStatus)
in.DeepCopyInto(out)
return *out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OAuthProvider) DeepCopyInto(out *OAuthProvider) {
*out = *in
if in.ClientSecretRef != nil {
in, out := &in.ClientSecretRef, &out.ClientSecretRef
*out = new(v1.SecretKeySelector)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthProvider.
func (in *OAuthProvider) DeepCopy() *OAuthProvider {
if in == nil {
return nil
}
out := new(OAuthProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PGMetaSpec) DeepCopyInto(out *PGMetaSpec) {
*out = *in
if in.WorkloadTemplate != nil {
in, out := &in.WorkloadTemplate, &out.WorkloadTemplate
*out = new(WorkloadTemplate)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PGMetaSpec.
func (in *PGMetaSpec) DeepCopy() *PGMetaSpec {
if in == nil {
return nil
}
out := new(PGMetaSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PhoneAuthProvider) DeepCopyInto(out *PhoneAuthProvider) {
*out = *in
out.AuthProviderMeta = in.AuthProviderMeta
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhoneAuthProvider.
func (in *PhoneAuthProvider) DeepCopy() *PhoneAuthProvider {
if in == nil {
return nil
}
out := new(PhoneAuthProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PostgrestSpec) DeepCopyInto(out *PostgrestSpec) {
*out = *in
if in.Schemas != nil {
in, out := &in.Schemas, &out.Schemas
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.ExtraSearchPath != nil {
in, out := &in.ExtraSearchPath, &out.ExtraSearchPath
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.WorkloadTemplate != nil {
in, out := &in.WorkloadTemplate, &out.WorkloadTemplate
*out = new(WorkloadTemplate)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgrestSpec.
func (in *PostgrestSpec) DeepCopy() *PostgrestSpec {
if in == nil {
return nil
}
out := new(PostgrestSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *StudioSpec) DeepCopyInto(out *StudioSpec) {
*out = *in
if in.WorkloadTemplate != nil {
in, out := &in.WorkloadTemplate, &out.WorkloadTemplate
*out = new(WorkloadTemplate)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StudioSpec.
func (in *StudioSpec) DeepCopy() *StudioSpec {
if in == nil {
return nil
}
out := new(StudioSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WorkloadTemplate) DeepCopyInto(out *WorkloadTemplate) {
*out = *in
if in.Replicas != nil {
in, out := &in.Replicas, &out.Replicas
*out = new(int32)
**out = **in
}
if in.SecurityContext != nil {
in, out := &in.SecurityContext, &out.SecurityContext
*out = new(v1.PodSecurityContext)
(*in).DeepCopyInto(*out)
}
if in.AdditionalLabels != nil {
in, out := &in.AdditionalLabels, &out.AdditionalLabels
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
if in.Workload != nil {
in, out := &in.Workload, &out.Workload
*out = new(ContainerTemplate)
(*in).DeepCopyInto(*out)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadTemplate.
func (in *WorkloadTemplate) DeepCopy() *WorkloadTemplate {
if in == nil {
return nil
}
out := new(WorkloadTemplate)
in.DeepCopyInto(out)
return out
}