Skip to content

Commit 72a6d18

Browse files
Ranjan MMaxrovr
authored andcommitted
Added - Support for OCI Cache - Customer Managed Config Sets
1 parent 5948dfd commit 72a6d18

27 files changed

+2738
-27
lines changed
Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "region" {
5+
default = "us-phoenix-1"
6+
}
7+
8+
variable "compartment_id" {}
9+
10+
variable "redis_cluster_display_name" {
11+
type = string
12+
default = "test-redis-cluster"
13+
}
14+
15+
variable "redis_cluster_freeform_tags" {
16+
default = { "bar-key" = "value" }
17+
}
18+
19+
variable "redis_cluster_node_count" {
20+
default = 5
21+
}
22+
23+
variable "redis_cluster_node_memory_in_gbs" {
24+
default = 2.0
25+
}
26+
27+
variable "redis_cluster_software_version" {
28+
default = "REDIS_7_0"
29+
}
30+
31+
32+
# OCI Cache ConfigSet vars
33+
variable "oci_cache_config_set_display_name" {
34+
type = string
35+
default = "test-config-set"
36+
}
37+
38+
variable "oci_cache_config_set_software_version" {
39+
type = string
40+
default = "REDIS_7_0"
41+
}
42+
43+
variable "oci_cache_config_set_description" {
44+
type = string
45+
default = "Test Config Set created via Terraform"
46+
}
47+
48+
variable "oci_cache_config_set_config_key1" {
49+
type = string
50+
default = "maxmemory-policy"
51+
}
52+
53+
variable "oci_cache_config_set_config_value1" {
54+
type = string
55+
default = "allkeys-random"
56+
}
57+
58+
variable "oci_cache_config_set_config_key2" {
59+
type = string
60+
default = "notify-keyspace-events"
61+
}
62+
63+
variable "oci_cache_config_set_config_value2" {
64+
type = string
65+
default = "KEA"
66+
}
67+
68+
variable "oci_cache_config_set_freeform_tags" {
69+
default = { "bar-key" = "value" }
70+
}
71+
72+
variable "oci_cache_config_set_state" {
73+
default = "ACTIVE"
74+
}
75+
76+
provider "oci" {
77+
auth = "SecurityToken"
78+
config_file_profile = "DEFAULT"
79+
region = var.region
80+
}
81+
82+
83+
resource "oci_core_vcn" "test_vcn" {
84+
cidr_block = "10.0.0.0/16"
85+
compartment_id = var.compartment_id
86+
}
87+
88+
resource "oci_core_security_list" "test_security_list" {
89+
compartment_id = var.compartment_id
90+
vcn_id = oci_core_vcn.test_vcn.id
91+
display_name = "redis-security-list"
92+
93+
// allow outbound udp traffic on a port range
94+
egress_security_rules {
95+
destination = "0.0.0.0/0"
96+
protocol = "17" // udp
97+
stateless = true
98+
}
99+
100+
// allow inbound ssh traffic from a specific port
101+
ingress_security_rules {
102+
protocol = "6" // tcp
103+
source = "0.0.0.0/0"
104+
stateless = false
105+
}
106+
}
107+
108+
resource "oci_core_subnet" "test_subnet" {
109+
cidr_block = "10.0.0.0/24"
110+
compartment_id = var.compartment_id
111+
vcn_id = oci_core_vcn.test_vcn.id
112+
security_list_ids = [oci_core_security_list.test_security_list.id]
113+
}
114+
115+
resource "oci_redis_redis_cluster" "test_redis_cluster" {
116+
#Required
117+
compartment_id = var.compartment_id
118+
display_name = var.redis_cluster_display_name
119+
node_count = var.redis_cluster_node_count
120+
node_memory_in_gbs = var.redis_cluster_node_memory_in_gbs
121+
software_version = var.redis_cluster_software_version
122+
subnet_id = oci_core_subnet.test_subnet.id
123+
124+
#Optional
125+
oci_cache_config_set_id = oci_redis_oci_cache_config_set.test_oci_cache_config_set_redis.id
126+
freeform_tags = var.redis_cluster_freeform_tags
127+
}
128+
129+
130+
resource "oci_redis_oci_cache_config_set" "test_oci_cache_config_set_redis" {
131+
#Required
132+
compartment_id = var.compartment_id
133+
configuration_details {
134+
#Required
135+
items {
136+
#Required
137+
config_key = var.oci_cache_config_set_config_key1
138+
config_value = var.oci_cache_config_set_config_value1
139+
}
140+
items {
141+
#Required
142+
config_key = var.oci_cache_config_set_config_key2
143+
config_value = var.oci_cache_config_set_config_value2
144+
}
145+
}
146+
display_name = var.oci_cache_config_set_display_name
147+
software_version = var.oci_cache_config_set_software_version
148+
149+
#Optional
150+
// TODO defined_tags = map(oci_identity_tag_namespace.tag-namespace1.name.oci_identity_tag.tag1.name, var.oci_cache_config_set_defined_tags_value)
151+
description = var.oci_cache_config_set_description
152+
freeform_tags = var.oci_cache_config_set_freeform_tags
153+
}
154+
155+
data "oci_redis_oci_cache_config_sets" "test_oci_cache_config_sets" {
156+
#Optional
157+
compartment_id = var.compartment_id
158+
display_name = var.oci_cache_config_set_display_name
159+
id = oci_redis_oci_cache_config_set.test_oci_cache_config_set_redis.id
160+
software_version = var.oci_cache_config_set_software_version
161+
state = var.oci_cache_config_set_state
162+
}
163+
164+
data "oci_redis_oci_cache_config_set" "test_oci_cache_config_set" {
165+
oci_cache_config_set_id = oci_redis_oci_cache_config_set.test_oci_cache_config_set_redis.id
166+
}
167+
168+
resource "oci_redis_oci_cache_config_setlist_associated_oci_cache_cluster" "test_oci_cache_config_setlist_associated_oci_cache_cluster" {
169+
#Required
170+
oci_cache_config_set_id = oci_redis_oci_cache_config_set.test_oci_cache_config_set_redis.id
171+
}
172+
173+
data "oci_redis_oci_cache_default_config_sets" "test_oci_cache_default_config_sets" {
174+
#Required
175+
compartment_id = var.compartment_id
176+
}
177+
178+
data "oci_redis_oci_cache_default_config_set" "test_oci_cache_default_config_set" {
179+
#Required
180+
compartment_id = var.compartment_id
181+
oci_cache_default_config_set_id = data.oci_redis_oci_cache_default_config_sets.test_oci_cache_default_config_sets.id
182+
}

internal/client/redis_clients.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,53 @@ import (
1010
)
1111

1212
func init() {
13+
RegisterOracleClient("oci_redis.OciCacheConfigSetClient", &OracleClient{InitClientFn: initRedisOciCacheConfigSetClient})
14+
RegisterOracleClient("oci_redis.OciCacheDefaultConfigSetClient", &OracleClient{InitClientFn: initRedisOciCacheDefaultConfigSetClient})
1315
RegisterOracleClient("oci_redis.OciCacheUserClient", &OracleClient{InitClientFn: initRedisOciCacheUserClient})
1416
RegisterOracleClient("oci_redis.RedisClusterClient", &OracleClient{InitClientFn: initRedisRedisClusterClient})
1517
RegisterOracleClient("oci_redis.RedisIdentityClient", &OracleClient{InitClientFn: initRedisRedisIdentityClient})
1618
}
1719

20+
func initRedisOciCacheConfigSetClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
21+
client, err := oci_redis.NewOciCacheConfigSetClientWithConfigurationProvider(configProvider)
22+
if err != nil {
23+
return nil, err
24+
}
25+
err = configureClient(&client.BaseClient)
26+
if err != nil {
27+
return nil, err
28+
}
29+
30+
if serviceClientOverrides.HostUrlOverride != "" {
31+
client.Host = serviceClientOverrides.HostUrlOverride
32+
}
33+
return &client, nil
34+
}
35+
36+
func (m *OracleClients) OciCacheConfigSetClient() *oci_redis.OciCacheConfigSetClient {
37+
return m.GetClient("oci_redis.OciCacheConfigSetClient").(*oci_redis.OciCacheConfigSetClient)
38+
}
39+
40+
func initRedisOciCacheDefaultConfigSetClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
41+
client, err := oci_redis.NewOciCacheDefaultConfigSetClientWithConfigurationProvider(configProvider)
42+
if err != nil {
43+
return nil, err
44+
}
45+
err = configureClient(&client.BaseClient)
46+
if err != nil {
47+
return nil, err
48+
}
49+
50+
if serviceClientOverrides.HostUrlOverride != "" {
51+
client.Host = serviceClientOverrides.HostUrlOverride
52+
}
53+
return &client, nil
54+
}
55+
56+
func (m *OracleClients) OciCacheDefaultConfigSetClient() *oci_redis.OciCacheDefaultConfigSetClient {
57+
return m.GetClient("oci_redis.OciCacheDefaultConfigSetClient").(*oci_redis.OciCacheDefaultConfigSetClient)
58+
}
59+
1860
func initRedisOciCacheUserClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
1961
client, err := oci_redis.NewOciCacheUserClientWithConfigurationProvider(configProvider)
2062
if err != nil {

0 commit comments

Comments
 (0)