Compare commits

...

11 Commits
main ... v1.1.4

Author SHA1 Message Date
Sergen Yalçın 8f51d53339
Merge pull request #375 from crossplane/backport-373-to-release-1.1
[Backport release-1.1] Move license statements to separate files (for tmpl files) to prevent license statement duplication
2024-03-14 14:34:31 +03:00
Sergen Yalçın 023d327351 Remove blank line on top
Signed-off-by: Sergen Yalçın <yalcinsergen97@gmail.com>
(cherry picked from commit 2d71c5b36d)
2024-03-14 11:14:38 +00:00
Sergen Yalçın 1b22cf08a9 Move license statements to separate files to prevent license statement duplication
Signed-off-by: Sergen Yalçın <yalcinsergen97@gmail.com>
(cherry picked from commit a648048b9d)
2024-03-14 11:14:38 +00:00
Sergen Yalçın bd41429c40
Merge pull request #367 from crossplane/backport-355-to-release-1.1
[Backport release-1.1] Fix slice type sensitive fieldpath generation
2024-03-06 23:28:19 +03:00
Sergen Yalçın 34de92ddae Change cases from string to type of FieldType
Signed-off-by: Sergen Yalçın <yalcinsergen97@gmail.com>
(cherry picked from commit b63f33874c)
2024-03-06 16:45:45 +00:00
Sergen Yalçın ad2246ccc6 Fix non-primitive type sensitive field generation
Signed-off-by: Sergen Yalçın <yalcinsergen97@gmail.com>
(cherry picked from commit 8bf78e8106)
2024-03-06 16:45:45 +00:00
Sergen Yalçın 6b30d2f338
Merge pull request #365 from crossplane/backport-358-to-release-1.1
[Backport release-1.1] Removing the applying of StateFuncs to parameters
2024-03-06 19:17:54 +03:00
Sergen Yalçın c305e4e517 Remove the unnecessary case and add nolint
Signed-off-by: Sergen Yalçın <yalcinsergen97@gmail.com>
(cherry picked from commit 956c7d489b)
2024-03-06 12:23:25 +00:00
Sergen Yalçın 3342cad333 Remove StateFunc calls
Signed-off-by: Sergen Yalçın <yalcinsergen97@gmail.com>
(cherry picked from commit 93af08a988)
2024-03-06 12:23:25 +00:00
Alper Rifat Ulucinar cf9c9ad1ba
Merge pull request #348 from ulucinar/old-sdk
Remove Resource.SchemaFunc references for compatibility with the older Terraform Plugin SDK versions
2024-02-16 14:42:19 +03:00
Alper Rifat Ulucinar 874266deb9
Remove Resource.SchemaFunc references for compatibility with the older Terraform Plugin SDK versions
Signed-off-by: Alper Rifat Ulucinar <ulucinar@users.noreply.github.com>
2024-02-15 18:39:55 +03:00
19 changed files with 42 additions and 57 deletions

View File

@ -328,13 +328,10 @@ func NewProvider(schema []byte, prefix string, modulePath string, metadata []byt
}
terraformResource = p.TerraformProvider.ResourcesMap[name]
if terraformResource.Schema == nil {
if terraformResource.SchemaFunc == nil {
p.skippedResourceNames = append(p.skippedResourceNames, name)
fmt.Printf("Skipping resource %s because it has no schema and no schema function\n", name)
fmt.Printf("Skipping resource %s because it has no schema\n", name)
continue
}
terraformResource.Schema = terraformResource.SchemaFunc()
}
}
var terraformPluginFrameworkResource fwresource.Resource

View File

@ -158,13 +158,13 @@ func getExtendedParameters(ctx context.Context, tr resource.Terraformed, externa
return params, nil
}
func (c *TerraformPluginSDKConnector) processParamsWithStateFunc(schemaMap map[string]*schema.Schema, params map[string]any) map[string]any {
func (c *TerraformPluginSDKConnector) processParamsWithHCLParser(schemaMap map[string]*schema.Schema, params map[string]any) map[string]any {
if params == nil {
return params
}
for key, param := range params {
if sc, ok := schemaMap[key]; ok {
params[key] = c.applyStateFuncToParam(sc, param)
params[key] = c.applyHCLParserToParam(sc, param)
} else {
params[key] = param
}
@ -172,11 +172,11 @@ func (c *TerraformPluginSDKConnector) processParamsWithStateFunc(schemaMap map[s
return params
}
func (c *TerraformPluginSDKConnector) applyStateFuncToParam(sc *schema.Schema, param any) any { //nolint:gocyclo
func (c *TerraformPluginSDKConnector) applyHCLParserToParam(sc *schema.Schema, param any) any { //nolint:gocyclo
if param == nil {
return param
}
switch sc.Type {
switch sc.Type { //nolint:exhaustive
case schema.TypeMap:
if sc.Elem == nil {
return param
@ -185,7 +185,7 @@ func (c *TerraformPluginSDKConnector) applyStateFuncToParam(sc *schema.Schema, p
// TypeMap only supports schema in Elem
if mapSchema, ok := sc.Elem.(*schema.Schema); ok && okParam {
for pk, pv := range pmap {
pmap[pk] = c.applyStateFuncToParam(mapSchema, pv)
pmap[pk] = c.applyHCLParserToParam(mapSchema, pv)
}
return pmap
}
@ -196,13 +196,13 @@ func (c *TerraformPluginSDKConnector) applyStateFuncToParam(sc *schema.Schema, p
pArray, okParam := param.([]any)
if setSchema, ok := sc.Elem.(*schema.Schema); ok && okParam {
for i, p := range pArray {
pArray[i] = c.applyStateFuncToParam(setSchema, p)
pArray[i] = c.applyHCLParserToParam(setSchema, p)
}
return pArray
} else if setResource, ok := sc.Elem.(*schema.Resource); ok {
for i, p := range pArray {
if resParam, okRParam := p.(map[string]any); okRParam {
pArray[i] = c.processParamsWithStateFunc(setResource.Schema, resParam)
pArray[i] = c.processParamsWithHCLParser(setResource.Schema, resParam)
}
}
}
@ -216,16 +216,6 @@ func (c *TerraformPluginSDKConnector) applyStateFuncToParam(sc *schema.Schema, p
param = hclProccessedParam
}
}
if sc.StateFunc != nil {
return sc.StateFunc(param)
}
return param
case schema.TypeBool, schema.TypeInt, schema.TypeFloat:
if sc.StateFunc != nil {
return sc.StateFunc(param)
}
return param
case schema.TypeInvalid:
return param
default:
return param
@ -252,7 +242,7 @@ func (c *TerraformPluginSDKConnector) Connect(ctx context.Context, mg xpresource
if err != nil {
return nil, errors.Wrapf(err, "failed to get the extended parameters for resource %q", mg.GetName())
}
params = c.processParamsWithStateFunc(c.config.TerraformResource.Schema, params)
params = c.processParamsWithHCLParser(c.config.TerraformResource.Schema, params)
schemaBlock := c.config.TerraformResource.CoreConfigSchema()
rawConfig, err := schema.JSONMapToStateValue(params, schemaBlock)

View File

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
{{ .Header }}
{{ .GenStatement }}

View File

@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
SPDX-License-Identifier: Apache-2.0

View File

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
{{ .Header }}
{{ .GenStatement }}

View File

@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
SPDX-License-Identifier: Apache-2.0

View File

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
{{ .Header }}
{{ .GenStatement }}

View File

@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
SPDX-License-Identifier: Apache-2.0

View File

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
{{ .Header }}
{{ .GenStatement }}

View File

@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
SPDX-License-Identifier: Apache-2.0

View File

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
{{ .Header }}
{{ .GenStatement }}

View File

@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
SPDX-License-Identifier: Apache-2.0

View File

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
{{ .Header }}
{{ .GenStatement }}

View File

@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
SPDX-License-Identifier: Apache-2.0

View File

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
package controller
import (

View File

@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
SPDX-License-Identifier: Apache-2.0

View File

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
{{ .Header }}
{{ .GenStatement }}

View File

@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
SPDX-License-Identifier: Apache-2.0

View File

@ -268,7 +268,13 @@ func NewSensitiveField(g *Builder, cfg *config.Resource, r *resource, sch *schem
return nil, true, nil
}
sfx := "SecretRef"
switch f.FieldType.(type) {
case *types.Slice:
f.CRDPaths[len(f.CRDPaths)-2] = f.CRDPaths[len(f.CRDPaths)-2] + sfx
cfg.Sensitive.AddFieldPath(fieldPathWithWildcard(f.TerraformPaths), "spec.forProvider."+fieldPathWithWildcard(f.CRDPaths))
default:
cfg.Sensitive.AddFieldPath(fieldPathWithWildcard(f.TerraformPaths), "spec.forProvider."+fieldPathWithWildcard(f.CRDPaths)+sfx)
}
// todo(turkenh): do we need to support other field types as sensitive?
if f.FieldType.String() != "string" && f.FieldType.String() != "*string" && f.FieldType.String() != "[]string" &&
f.FieldType.String() != "[]*string" && f.FieldType.String() != "map[string]string" && f.FieldType.String() != "map[string]*string" {