/
zz_kubernetescluster_terraformed.go
executable file
·133 lines (114 loc) · 5.67 KB
/
zz_kubernetescluster_terraformed.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
// Code generated by upjet. DO NOT EDIT.
package v1beta1
import (
"dario.cat/mergo"
"github.com/pkg/errors"
"github.com/crossplane/upjet/pkg/resource"
"github.com/crossplane/upjet/pkg/resource/json"
)
// GetTerraformResourceType returns Terraform resource type for this KubernetesCluster
func (mg *KubernetesCluster) GetTerraformResourceType() string {
return "azurerm_kubernetes_cluster"
}
// GetConnectionDetailsMapping for this KubernetesCluster
func (tr *KubernetesCluster) GetConnectionDetailsMapping() map[string]string {
return map[string]string{"azure_active_directory_role_based_access_control[*].server_app_secret": "spec.forProvider.azureActiveDirectoryRoleBasedAccessControl[*].serverAppSecretSecretRef", "http_proxy_config[*].trusted_ca": "spec.forProvider.httpProxyConfig[*].trustedCaSecretRef", "kube_admin_config[*]": "status.atProvider.kubeAdminConfig[*]", "kube_admin_config[*].client_certificate": "status.atProvider.kubeAdminConfig[*].clientCertificate", "kube_admin_config[*].client_key": "status.atProvider.kubeAdminConfig[*].clientKey", "kube_admin_config[*].cluster_ca_certificate": "status.atProvider.kubeAdminConfig[*].clusterCaCertificate", "kube_admin_config[*].password": "status.atProvider.kubeAdminConfig[*].password", "kube_admin_config_raw": "status.atProvider.kubeAdminConfigRaw", "kube_config[*]": "status.atProvider.kubeConfig[*]", "kube_config[*].client_certificate": "status.atProvider.kubeConfig[*].clientCertificate", "kube_config[*].client_key": "status.atProvider.kubeConfig[*].clientKey", "kube_config[*].cluster_ca_certificate": "status.atProvider.kubeConfig[*].clusterCaCertificate", "kube_config[*].password": "status.atProvider.kubeConfig[*].password", "kube_config_raw": "status.atProvider.kubeConfigRaw", "service_principal[*].client_secret": "spec.forProvider.servicePrincipal[*].clientSecretSecretRef", "windows_profile[*].admin_password": "spec.forProvider.windowsProfile[*].adminPasswordSecretRef"}
}
// GetObservation of this KubernetesCluster
func (tr *KubernetesCluster) GetObservation() (map[string]any, error) {
o, err := json.TFParser.Marshal(tr.Status.AtProvider)
if err != nil {
return nil, err
}
base := map[string]any{}
return base, json.TFParser.Unmarshal(o, &base)
}
// SetObservation for this KubernetesCluster
func (tr *KubernetesCluster) SetObservation(obs map[string]any) error {
p, err := json.TFParser.Marshal(obs)
if err != nil {
return err
}
return json.TFParser.Unmarshal(p, &tr.Status.AtProvider)
}
// GetID returns ID of underlying Terraform resource of this KubernetesCluster
func (tr *KubernetesCluster) GetID() string {
if tr.Status.AtProvider.ID == nil {
return ""
}
return *tr.Status.AtProvider.ID
}
// GetParameters of this KubernetesCluster
func (tr *KubernetesCluster) GetParameters() (map[string]any, error) {
p, err := json.TFParser.Marshal(tr.Spec.ForProvider)
if err != nil {
return nil, err
}
base := map[string]any{}
return base, json.TFParser.Unmarshal(p, &base)
}
// SetParameters for this KubernetesCluster
func (tr *KubernetesCluster) SetParameters(params map[string]any) error {
p, err := json.TFParser.Marshal(params)
if err != nil {
return err
}
return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider)
}
// GetInitParameters of this KubernetesCluster
func (tr *KubernetesCluster) GetInitParameters() (map[string]any, error) {
p, err := json.TFParser.Marshal(tr.Spec.InitProvider)
if err != nil {
return nil, err
}
base := map[string]any{}
return base, json.TFParser.Unmarshal(p, &base)
}
// GetInitParameters of this KubernetesCluster
func (tr *KubernetesCluster) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) {
params, err := tr.GetParameters()
if err != nil {
return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName())
}
if !shouldMergeInitProvider {
return params, nil
}
initParams, err := tr.GetInitParameters()
if err != nil {
return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName())
}
// Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the
// slices from the initProvider to forProvider. As it also sets
// overwrite to true, we need to set it back to false, we don't
// want to overwrite the forProvider fields with the initProvider
// fields.
err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) {
c.Overwrite = false
})
if err != nil {
return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName())
}
return params, nil
}
// LateInitialize this KubernetesCluster using its observed tfState.
// returns True if there are any spec changes for the resource.
func (tr *KubernetesCluster) LateInitialize(attrs []byte) (bool, error) {
params := &KubernetesClusterParameters{}
if err := json.TFParser.Unmarshal(attrs, params); err != nil {
return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization")
}
opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)}
opts = append(opts, resource.WithNameFilter("APIServerAuthorizedIPRanges"))
opts = append(opts, resource.WithNameFilter("KubeletIdentity"))
opts = append(opts, resource.WithNameFilter("MicrosoftDefender"))
opts = append(opts, resource.WithNameFilter("OmsAgent"))
li := resource.NewGenericLateInitializer(opts...)
return li.LateInitialize(&tr.Spec.ForProvider, params)
}
// GetTerraformSchemaVersion returns the associated Terraform schema version
func (tr *KubernetesCluster) GetTerraformSchemaVersion() int {
return 2
}