Skip to content

Commit 00c5c08

Browse files
rahearndebTheRay
authored andcommitted
feat: network_policy resource added (#171)
* Add NetworkPolicy resource * Generate documentation * Add a test for updating network policy resource * Remove unused networkPoliciesType.Id * Move policy_client from session to resource_network_policy * Add network policy resource to provider test * Regenerate docs
1 parent 4e6512c commit 00c5c08

File tree

13 files changed

+1327
-22
lines changed

13 files changed

+1327
-22
lines changed

docs/resources/network_policy.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
page_title: "cloudfoundry_network_policy Resource - terraform-provider-cloudfoundry"
3+
subcategory: ""
4+
description: |-
5+
Provides a Cloud Foundry resource for managing Cloud Foundry Network Policies
6+
---
7+
8+
# cloudfoundry_network_policy (Resource)
9+
10+
Provides a Cloud Foundry resource for managing Cloud Foundry Network Policies
11+
12+
## Example Usage
13+
14+
```terraform
15+
resource "cloudfoundry_network_policy" "policy" {
16+
policies = [
17+
{
18+
source_app = "16b53647-9709-44bf-91b2-116de83ffd3d"
19+
destination_app = "41048361-adc7-4686-9115-36b16d8df12c"
20+
port = "61443"
21+
protocol = "tcp"
22+
},
23+
{
24+
source_app = "16b53647-9709-44bf-91b2-116de83ffd3d"
25+
destination_app = "41048361-adc7-4686-9115-36b16d8df12c"
26+
port = "8090-8092"
27+
protocol = "udp"
28+
}
29+
]
30+
}
31+
```
32+
33+
<!-- schema generated by tfplugindocs -->
34+
## Schema
35+
36+
### Required
37+
38+
- `policies` (Attributes List) Network policies to create (see [below for nested schema](#nestedatt--policies))
39+
40+
<a id="nestedatt--policies"></a>
41+
### Nested Schema for `policies`
42+
43+
Required:
44+
45+
- `destination_app` (String) The ID of the application to connect to
46+
- `port` (String) Port (8080) or range of ports (8080-8085) for connection to destination app
47+
- `source_app` (String) The ID of the application to connect from
48+
49+
Optional:
50+
51+
- `protocol` (String) One of 'udp' or 'tcp' identifying the allowed protocol for the access. Default is 'tcp'.
52+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
resource "cloudfoundry_network_policy" "policy" {
2+
policies = [
3+
{
4+
source_app = "16b53647-9709-44bf-91b2-116de83ffd3d"
5+
destination_app = "41048361-adc7-4686-9115-36b16d8df12c"
6+
port = "61443"
7+
protocol = "tcp"
8+
},
9+
{
10+
source_app = "16b53647-9709-44bf-91b2-116de83ffd3d"
11+
destination_app = "41048361-adc7-4686-9115-36b16d8df12c"
12+
port = "8090-8092"
13+
protocol = "udp"
14+
}
15+
]
16+
}

go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,14 @@ require (
2121
)
2222

2323
require (
24+
code.cloudfoundry.org/cf-networking-helpers v0.39.0 // indirect
25+
code.cloudfoundry.org/lager/v3 v3.30.0 // indirect
26+
code.cloudfoundry.org/policy_client v0.47.0 // indirect
27+
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
28+
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e // indirect
2429
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
30+
github.com/onsi/ginkgo/v2 v2.23.3 // indirect
31+
github.com/openzipkin/zipkin-go v0.4.3 // indirect
2532
github.com/pkg/errors v0.9.1 // indirect
2633
golang.org/x/sync v0.12.0 // indirect
2734
golang.org/x/tools v0.31.0 // indirect

go.sum

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
code.cloudfoundry.org/cf-networking-helpers v0.39.0 h1:qWUdpXBkf4tblvZgQv7BAci8NRJ5Q3IE0dK7OEXrq9o=
2+
code.cloudfoundry.org/cf-networking-helpers v0.39.0/go.mod h1:3QIueFYXze17AkjWMYZfd+tmuq5NX7HZYEwJ/TSTFhM=
3+
code.cloudfoundry.org/lager/v3 v3.30.0 h1:doVyqsEPz+SnM2DgOfKGcNXEvYbjKr6PrR88iv2JvUU=
4+
code.cloudfoundry.org/lager/v3 v3.30.0/go.mod h1:3nPT1LzO+fPChWArPw1gzHB2F7CY9snqMKNIKAnt+r4=
5+
code.cloudfoundry.org/policy_client v0.47.0 h1:3mp2+ZeJoe/sUaO1dvA5ils/LU8TfAbAt1Kh5XfXGDk=
6+
code.cloudfoundry.org/policy_client v0.47.0/go.mod h1:KTwCZZA+oFAqFpxy9C/VCXd+Cn9rWIX928A8no76l/w=
17
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
28
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
39
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
@@ -58,6 +64,8 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
5864
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
5965
github.com/google/pprof v0.0.0-20250302191652-9094ed2288e7 h1:+J3r2e8+RsmN3vKfo75g0YSY61ms37qzPglu4p0sGro=
6066
github.com/google/pprof v0.0.0-20250302191652-9094ed2288e7/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
67+
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
68+
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
6169
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
6270
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
6371
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -153,8 +161,13 @@ github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
153161
github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
154162
github.com/onsi/ginkgo/v2 v2.23.0 h1:FA1xjp8ieYDzlgS5ABTpdUDB7wtngggONc8a7ku2NqQ=
155163
github.com/onsi/ginkgo/v2 v2.23.0/go.mod h1:zXTP6xIp3U8aVuXN8ENK9IXRaTjFnpVB9mGmaSRvxnM=
164+
github.com/onsi/ginkgo/v2 v2.23.3 h1:edHxnszytJ4lD9D5Jjc4tiDkPBZ3siDeJJkUZJJVkp0=
165+
github.com/onsi/ginkgo/v2 v2.23.3/go.mod h1:zXTP6xIp3U8aVuXN8ENK9IXRaTjFnpVB9mGmaSRvxnM=
156166
github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
157167
github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
168+
github.com/onsi/gomega v1.36.3 h1:hID7cr8t3Wp26+cYnfcjR6HpJ00fdogN6dqZ1t6IylU=
169+
github.com/openzipkin/zipkin-go v0.4.3 h1:9EGwpqkgnwdEIJ+Od7QVSEIH+ocmm5nPat0G7sjsSdg=
170+
github.com/openzipkin/zipkin-go v0.4.3/go.mod h1:M9wCJZFWCo2RiY+o1eBCEMe0Dp2S5LDHcMZmk3RmK7c=
158171
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw=
159172
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=
160173
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=

0 commit comments

Comments
 (0)