-
Notifications
You must be signed in to change notification settings - Fork 2
/
kubernetes.go
43 lines (38 loc) · 1.45 KB
/
kubernetes.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
package bzpolicygen
import (
"github.com/bastionzero/bastionzero-sdk-go/bastionzero/service/policies"
"github.com/bastionzero/terraform-provider-bastionzero/internal/acctest"
"pgregory.net/rapid"
)
func PolicyClusterGen() *rapid.Generator[policies.Cluster] {
return rapid.Custom(func(t *rapid.T) policies.Cluster {
return policies.Cluster{
ID: rapid.StringMatching(acctest.UUIDV4RegexPattern).Draw(t, "ID"),
}
})
}
func PolicyClusterUserGen() *rapid.Generator[policies.ClusterUser] {
return rapid.Custom(func(t *rapid.T) policies.ClusterUser {
return policies.ClusterUser{
Name: rapid.String().Draw(t, "Name"),
}
})
}
func PolicyClusterGroupGen() *rapid.Generator[policies.ClusterGroup] {
return rapid.Custom(func(t *rapid.T) policies.ClusterGroup {
return policies.ClusterGroup{
Name: rapid.String().Draw(t, "Name"),
}
})
}
func KubernetesPolicyGen() *rapid.Generator[policies.KubernetesPolicy] {
return rapid.Custom(func(t *rapid.T) policies.KubernetesPolicy {
return policies.KubernetesPolicy{
Policy: PolicyGen().Draw(t, "BasePolicy"),
Environments: rapid.Ptr(rapid.SliceOf(PolicyEnvironmentGen()), true).Draw(t, "Environments"),
Clusters: rapid.Ptr(rapid.SliceOf(PolicyClusterGen()), true).Draw(t, "Clusters"),
ClusterUsers: rapid.Ptr(rapid.SliceOf(PolicyClusterUserGen()), true).Draw(t, "ClusterUsers"),
ClusterGroups: rapid.Ptr(rapid.SliceOf(PolicyClusterGroupGen()), true).Draw(t, "ClusterGroups"),
}
})
}