Skip to content

Commit 74e2055

Browse files
committed
Fixes #15
Signed-off-by: Petr Zahradnik <[email protected]>
1 parent 59d8664 commit 74e2055

File tree

6 files changed

+89
-8
lines changed

6 files changed

+89
-8
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*.terraform*
2+
terraform.tfstate
3+
terraform.tfstate.backup
4+
*.auto.tfvars
5+

OracleSolaris_OCI/Launch_Solaris_with_Terraform/README.md

+31
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,37 @@ resource "oci_marketplace_accepted_agreement" "solaris_accepted_agreement" {
7474
}
7575
```
7676

77+
Optionally you need to subscribe Solaris in Application Catalog, but that only needs to be done once per new release
78+
and could be done via browser. In terraform, you can do that similarly as accepting the Terms of Services above,
79+
first you fetch the licence agreement:
80+
81+
```
82+
resource "oci_core_app_catalog_listing_resource_version_agreement" "solaris_latest_catalog_details" {
83+
listing_id = data.oci_core_app_catalog_listing_resource_version.solaris_catalog_listing.listing_id
84+
listing_resource_version = data.oci_core_app_catalog_listing_resource_version.solaris_catalog_listing.listing_resource_version
85+
}
86+
```
87+
88+
Then you use the licence agreement above to fill in the subscription details, including the signature, which
89+
indicates you agree.
90+
91+
```
92+
resource "oci_core_app_catalog_subscription" "solaris_subscription" {
93+
compartment_id = var.compartment_ocid
94+
listing_id = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.listing_id
95+
listing_resource_version = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.listing_resource_version
96+
oracle_terms_of_use_link = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.oracle_terms_of_use_link
97+
signature = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.signature
98+
time_retrieved = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.time_retrieved
99+
eula_link = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.eula_link
100+
101+
// May take long for the subscription to propagate to all regions
102+
timeouts {
103+
create = "20m"
104+
}
105+
}
106+
```
107+
77108
Finally, the file outputs.tf reports to you the compartment and subnet where the instance was created, along with other useful information.
78109

79110
Copyright (c) 2022, Oracle and/or its affiliates. Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/.

OracleSolaris_OCI/Launch_Solaris_with_Terraform/compute.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ resource "oci_core_instance" "solaris_instance" {
66
source_details {
77
source_type = "image"
88
# The image ID is determined in image.tf
9-
source_id = data.oci_core_app_catalog_listing_resource_version.solaris_catalog_listing.listing_resource_id
9+
source_id = data.oci_marketplace_listing_package.solaris_list_pkg.image_id
1010
}
1111

1212
display_name = var.instance_display_name
1313
create_vnic_details {
14-
assign_public_ip = true
14+
# assign_public_ip = false
1515
subnet_id = var.subnet_id
1616
}
1717
metadata = {

OracleSolaris_OCI/Launch_Solaris_with_Terraform/image.tf

+27
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,30 @@ resource "oci_marketplace_accepted_agreement" "solaris_accepted_agreement" {
5353
package_version = data.oci_marketplace_listing.solaris_latest.default_package_version
5454
signature = oci_marketplace_listing_package_agreement.solaris_list_pkg_agreement.signature
5555
}
56+
57+
58+
# As well for every new Solaris release new subscription needs to be obtained in the Application Catalog
59+
# (This needs to be done only once and could be done via GUI if needed)
60+
61+
# subscription details
62+
resource "oci_core_app_catalog_listing_resource_version_agreement" "solaris_latest_catalog_details" {
63+
listing_id = data.oci_core_app_catalog_listing_resource_version.solaris_catalog_listing.listing_id
64+
listing_resource_version = data.oci_core_app_catalog_listing_resource_version.solaris_catalog_listing.listing_resource_version
65+
}
66+
67+
# signing subscription
68+
resource "oci_core_app_catalog_subscription" "solaris_subscription" {
69+
compartment_id = var.compartment_ocid
70+
listing_id = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.listing_id
71+
listing_resource_version = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.listing_resource_version
72+
oracle_terms_of_use_link = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.oracle_terms_of_use_link
73+
signature = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.signature
74+
time_retrieved = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.time_retrieved
75+
eula_link = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.eula_link
76+
77+
// May take long for the subscription to propagate to all regions
78+
timeouts {
79+
create = "20m"
80+
}
81+
}
82+

OracleSolaris_OCI/Launch_Solaris_with_Terraform/outputs.tf

+20-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ output "A01_Compartment-Name" {
55
output "A01_Subnet-OCID" {
66
value = var.subnet_id
77
}
8+
output "A01_VCN-OCID" {
9+
value = data.oci_core_vcn.myvcn.id
10+
}
811

912
output "A02_Shape-of-Instance" {
1013
value = oci_core_instance.solaris_instance.shape
@@ -84,6 +87,7 @@ output "E4_oci_core_app_catalog_listing_resource_version-resource_version" {
8487
output "E5_oci_core_app_catalog_listing_resource_version-additional_info" {
8588
value = "This object also includes lists of available_regions and compatible_shapes"
8689
}
90+
8791
output "E_END" {
8892
value = "===================="
8993
}
@@ -112,10 +116,24 @@ output "G4_solaris_list_pkg_agreement-package_version" {
112116
value = oci_marketplace_listing_package_agreement.solaris_list_pkg_agreement.package_version
113117
}
114118
output "G5_solaris_list_pkg_agreement-signature" {
115-
value = oci_marketplace_listing_package_agreement.solaris_list_pkg_agreement.signature
119+
value = base64decode(oci_marketplace_listing_package_agreement.solaris_list_pkg_agreement.signature)
116120
}
117121
output "G_END" {
118122
value = "===================="
119123
}
120124

121-
125+
output "L1_oci_core_app_catalog_listing_resource_version_agreement-oracle_terms_of_use_link" {
126+
value = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.oracle_terms_of_use_link
127+
}
128+
output "L2_oci_core_app_catalog_listing_resource_version_agreement-eula_link" {
129+
value = oci_core_app_catalog_listing_resource_version_agreement.solaris_latest_catalog_details.eula_link
130+
}
131+
output "L3_oci_core_app_catalog_subscription-signature" {
132+
value = oci_core_app_catalog_subscription.solaris_subscription.signature
133+
}
134+
output "L4_oci_core_app_catalog_subscription-time_retrieved" {
135+
value = oci_core_app_catalog_subscription.solaris_subscription.time_retrieved
136+
}
137+
output "L_END" {
138+
value = "===================="
139+
}

OracleSolaris_OCI/Launch_Solaris_with_Terraform/variables.tf

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ variable "region" {
33
}
44

55
variable "availability_domain" {
6-
default = "ruWb:PHX-AD-1"
6+
default = "oscS:PHX-AD-3"
77
}
88

99
variable "compartment_ocid" {
10-
default = "ocid1.compartment.oc1..aaa..."
10+
# default = "ocid1.compartment.oc1..aaa..."
1111
}
1212

1313
variable "subnet_id" {
14-
default = "ocid1.subnet.oc1.phx.aa..."
14+
# default = "ocid1.subnet.oc1.phx.aa..."
1515
}
1616

1717
# The next set of variables specify the instance to be created.
@@ -33,6 +33,6 @@ variable "instance_display_name" {
3333

3434
variable "ssh_public_key_path" {
3535
description = "SSH Public Key Path"
36-
default = "/.../.../.ssh/ocisshkey.pub"
36+
# default = "/.../.../.ssh/ocisshkey.pub"
3737
}
3838

0 commit comments

Comments
 (0)