Skip to content

Commit 4fb07f0

Browse files
committed
Add helm_release list resource
1 parent b278d36 commit 4fb07f0

5 files changed

Lines changed: 298 additions & 12 deletions

File tree

go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ go 1.24.5
55
require (
66
github.com/hashicorp/go-version v1.7.0
77
github.com/hashicorp/terraform-plugin-docs v0.20.1
8-
github.com/hashicorp/terraform-plugin-framework v1.15.0
8+
github.com/hashicorp/terraform-plugin-framework v1.16.0-beta.1
99
github.com/hashicorp/terraform-plugin-framework-validators v0.13.0
10-
github.com/hashicorp/terraform-plugin-go v0.27.0
10+
github.com/hashicorp/terraform-plugin-go v0.29.0-beta.1
1111
github.com/hashicorp/terraform-plugin-log v0.9.0
1212
github.com/hashicorp/terraform-plugin-testing v1.13.0
1313
github.com/mitchellh/go-homedir v1.1.0
@@ -62,7 +62,7 @@ require (
6262
github.com/ghodss/yaml v1.0.0 // indirect
6363
github.com/go-errors/errors v1.4.2 // indirect
6464
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
65-
github.com/go-logr/logr v1.4.2 // indirect
65+
github.com/go-logr/logr v1.4.3 // indirect
6666
github.com/go-openapi/jsonpointer v0.21.0 // indirect
6767
github.com/go-openapi/jsonreference v0.20.2 // indirect
6868
github.com/go-openapi/swag v0.23.0 // indirect
@@ -92,7 +92,7 @@ require (
9292
github.com/hashicorp/terraform-exec v0.23.0 // indirect
9393
github.com/hashicorp/terraform-json v0.25.0 // indirect
9494
github.com/hashicorp/terraform-plugin-sdk/v2 v2.37.0 // indirect
95-
github.com/hashicorp/terraform-registry-address v0.2.5 // indirect
95+
github.com/hashicorp/terraform-registry-address v0.3.0 // indirect
9696
github.com/hashicorp/terraform-svchost v0.1.1 // indirect
9797
github.com/hashicorp/yamux v0.1.1 // indirect
9898
github.com/huandu/xstrings v1.5.0 // indirect
@@ -148,17 +148,17 @@ require (
148148
go.abhg.dev/goldmark/frontmatter v0.2.0 // indirect
149149
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
150150
golang.org/x/mod v0.25.0 // indirect
151-
golang.org/x/net v0.40.0 // indirect
152-
golang.org/x/oauth2 v0.28.0 // indirect
151+
golang.org/x/net v0.41.0 // indirect
152+
golang.org/x/oauth2 v0.30.0 // indirect
153153
golang.org/x/sync v0.15.0 // indirect
154154
golang.org/x/sys v0.33.0 // indirect
155155
golang.org/x/term v0.32.0 // indirect
156156
golang.org/x/text v0.26.0 // indirect
157157
golang.org/x/time v0.9.0 // indirect
158158
golang.org/x/tools v0.33.0 // indirect
159159
google.golang.org/appengine v1.6.8 // indirect
160-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect
161-
google.golang.org/grpc v1.72.1 // indirect
160+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect
161+
google.golang.org/grpc v1.74.2 // indirect
162162
google.golang.org/protobuf v1.36.6 // indirect
163163
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
164164
gopkg.in/inf.v0 v0.9.1 // indirect

go.sum

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpj
123123
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
124124
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
125125
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
126+
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
127+
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
126128
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
127129
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
128130
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
@@ -223,10 +225,14 @@ github.com/hashicorp/terraform-plugin-docs v0.20.1 h1:Fq7E/HrU8kuZu3hNliZGwloFWS
223225
github.com/hashicorp/terraform-plugin-docs v0.20.1/go.mod h1:Yz6HoK7/EgzSrHPB9J/lWFzwl9/xep2OPnc5jaJDV90=
224226
github.com/hashicorp/terraform-plugin-framework v1.15.0 h1:LQ2rsOfmDLxcn5EeIwdXFtr03FVsNktbbBci8cOKdb4=
225227
github.com/hashicorp/terraform-plugin-framework v1.15.0/go.mod h1:hxrNI/GY32KPISpWqlCoTLM9JZsGH3CyYlir09bD/fI=
228+
github.com/hashicorp/terraform-plugin-framework v1.16.0-beta.1 h1:HhL8HbPuKu9pH5kgEjeWWaqXgN88U42dFa8sYRLHQsY=
229+
github.com/hashicorp/terraform-plugin-framework v1.16.0-beta.1/go.mod h1:XQfoA+oS1ETMuQrcM689/TWMx9leV59N7Xscm5t7b+g=
226230
github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E=
227231
github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo=
228232
github.com/hashicorp/terraform-plugin-go v0.27.0 h1:ujykws/fWIdsi6oTUT5Or4ukvEan4aN9lY+LOxVP8EE=
229233
github.com/hashicorp/terraform-plugin-go v0.27.0/go.mod h1:FDa2Bb3uumkTGSkTFpWSOwWJDwA7bf3vdP3ltLDTH6o=
234+
github.com/hashicorp/terraform-plugin-go v0.29.0-beta.1 h1:xeHlRQYev3iMXwX2W7+D1bSfLRBs9jojZXqE6hmNxMI=
235+
github.com/hashicorp/terraform-plugin-go v0.29.0-beta.1/go.mod h1:5pww/UULn9C2tItq6o5sbScEkJxBUt9X9kI4DkeRsIw=
230236
github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0=
231237
github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow=
232238
github.com/hashicorp/terraform-plugin-sdk/v2 v2.37.0 h1:NFPMacTrY/IdcIcnUB+7hsore1ZaRWU9cnB6jFoBnIM=
@@ -235,6 +241,8 @@ github.com/hashicorp/terraform-plugin-testing v1.13.0 h1:vTELm6x3Z4H9VO3fbz71wbJ
235241
github.com/hashicorp/terraform-plugin-testing v1.13.0/go.mod h1:b/hl6YZLm9fjeud/3goqh/gdqhZXbRfbHMkEiY9dZwc=
236242
github.com/hashicorp/terraform-registry-address v0.2.5 h1:2GTftHqmUhVOeuu9CW3kwDkRe4pcBDq0uuK5VJngU1M=
237243
github.com/hashicorp/terraform-registry-address v0.2.5/go.mod h1:PpzXWINwB5kuVS5CA7m1+eO2f1jKb5ZDIxrOPfpnGkg=
244+
github.com/hashicorp/terraform-registry-address v0.3.0 h1:HMpK3nqaGFPS9VmgRXrJL/dzHNdheGVKk5k7VlFxzCo=
245+
github.com/hashicorp/terraform-registry-address v0.3.0/go.mod h1:jRGCMiLaY9zii3GLC7hqpSnwhfnCN5yzvY0hh4iCGbM=
238246
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=
239247
github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc=
240248
github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
@@ -498,8 +506,12 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
498506
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
499507
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
500508
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
509+
golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
510+
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
501511
golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
502512
golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
513+
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
514+
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
503515
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
504516
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
505517
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -556,8 +568,12 @@ google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a h1:
556568
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a/go.mod h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU=
557569
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4=
558570
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ=
571+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE=
572+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
559573
google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA=
560574
google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
575+
google.golang.org/grpc v1.74.2 h1:WoosgB65DlWVC9FqI82dGsZhWFNBSLjQ84bjROOpMu4=
576+
google.golang.org/grpc v1.74.2/go.mod h1:CtQ+BGjaAIXHs/5YS3i473GqwBBa1zGQNevxdeBEXrM=
561577
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
562578
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
563579
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=

helm/provider.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/hashicorp/terraform-plugin-framework/attr"
1818
"github.com/hashicorp/terraform-plugin-framework/datasource"
1919
"github.com/hashicorp/terraform-plugin-framework/diag"
20+
"github.com/hashicorp/terraform-plugin-framework/list"
2021
"github.com/hashicorp/terraform-plugin-framework/path"
2122
"github.com/hashicorp/terraform-plugin-framework/provider"
2223
"github.com/hashicorp/terraform-plugin-framework/provider/schema"
@@ -30,7 +31,10 @@ import (
3031
"helm.sh/helm/v3/pkg/storage/driver"
3132
)
3233

33-
var _ provider.Provider = &HelmProvider{}
34+
var (
35+
_ provider.Provider = &HelmProvider{}
36+
_ provider.ProviderWithListResources = &HelmProvider{}
37+
)
3438

3539
func New(version string) func() provider.Provider {
3640
return func() provider.Provider {
@@ -321,6 +325,9 @@ func execSchemaAttrTypes() map[string]attr.Type {
321325

322326
///////////////////// END OF SCHEMA CREATION ///////////////////////////////
323327

328+
// HACK FIXME
329+
var m *Meta
330+
324331
// Setting up the provider, anything we need to get the provider running, probbaly authentication. like the api
325332
func (p *HelmProvider) Configure(ctx context.Context, req provider.ConfigureRequest, resp *provider.ConfigureResponse) {
326333
if req.ClientCapabilities.DeferralAllowed && !req.Config.Raw.IsFullyKnown() {
@@ -631,6 +638,7 @@ func (p *HelmProvider) Configure(ctx context.Context, req provider.ConfigureRequ
631638
}
632639
resp.DataSourceData = meta
633640
resp.ResourceData = meta
641+
m = meta
634642

635643
tflog.Debug(ctx, "Configure method completed successfully")
636644
}
@@ -647,6 +655,12 @@ func (p *HelmProvider) Resources(ctx context.Context) []func() resource.Resource
647655
}
648656
}
649657

658+
func (p *HelmProvider) ListResources(ctx context.Context) []func() list.ListResource {
659+
return []func() list.ListResource{
660+
NewHelmReleaseList,
661+
}
662+
}
663+
650664
func OCIRegistryLogin(ctx context.Context, meta *Meta, actionConfig *action.Configuration, registryClient *registry.Client, repository, chartName, username, password string) diag.Diagnostics {
651665
var diags diag.Diagnostics
652666

0 commit comments

Comments
 (0)