Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

duplicate keys are generated for different configurations #81

Open
eugsim1 opened this issue Dec 20, 2023 · 3 comments
Open

duplicate keys are generated for different configurations #81

eugsim1 opened this issue Dec 20, 2023 · 3 comments

Comments

@eugsim1
Copy link
Member

eugsim1 commented Dec 20, 2023

│ on variables_frankfurt.tf line 2216, in variable "instances":
│ 2169: type = map(object({
│ 2170: availability_domain = string
│ 2171: compartment_id = string
│ 2172: shape = string
│ 2173: source_id = string
│ 2174: source_type = string
│ 2175: vcn_name = string
│ 2176: subnet_id = string
│ 2177: network_compartment_id = string
│ 2178: display_name = optional(string)
│ 2179: assign_public_ip = optional(bool)
│ 2180: boot_volume_size_in_gbs = optional(string)
│ 2181: fault_domain = optional(string)
│ 2182: dedicated_vm_host_id = optional(string)
│ 2183: private_ip = optional(string)
│ 2184: hostname_label = optional(string)
│ 2185: nsg_ids = optional(list(string))
│ 2186: ocpus = optional(string)
│ 2187: memory_in_gbs = optional(number)
│ 2188: capacity_reservation_id = optional(string)
│ 2189: create_is_pv_encryption_in_transit_enabled = optional(bool)
│ 2190: remote_execute = optional(string)
│ 2191: bastion_ip = optional(string)
│ 2192: cloud_init_script = optional(string)
│ 2193: ssh_authorized_keys = optional(string)
│ 2194: backup_policy = optional(string)
│ 2195: policy_compartment_id = optional(string)
│ 2196: network_type = optional(string)
│ 2197: #extended_metadata = optional(string)
│ 2198: skip_source_dest_check = optional(bool)
│ 2199: baseline_ocpu_utilization = optional(string)
│ 2200: #preemptible_instance_config = optional(string)
│ 2201: all_plugins_disabled = optional(bool)
│ 2202: is_management_disabled = optional(bool)
│ 2203: is_monitoring_disabled = optional(bool)
│ 2204: assign_private_dns_record = optional(string)
│ 2205: plugins_details = optional(map(any))
│ 2206: is_live_migration_preferred = optional(bool)
│ 2207: recovery_action = optional(string)
│ 2208: are_legacy_imds_endpoints_disabled = optional(bool)
│ 2209: boot_volume_type = optional(string)
│ 2210: firmware = optional(string)
│ 2211: is_consistent_volume_naming_enabled = optional(bool)
│ 2212: remote_data_volume_type = optional(string)
│ 2213: platform_config = optional(list(map(any)))
│ 2214: launch_options = optional(list(map(any)))
│ 2215: ipxe_script = optional(string)
│ 2216: firmware = optional(string)
│ 2217: preserve_boot_volume = optional(bool)
│ 2218: vlan_id = optional(string)
│ 2219: kms_key_id = optional(string)
│ 2220: vnic_display_name = optional(string)
│ 2221: vnic_defined_tags = optional(map(any))
│ 2222: vnic_freeform_tags = optional(map(any))
│ 2223: defined_tags = optional(map(any))
│ 2224: freeform_tags = optional(map(any))
│ 2225: }))

│ Object constructor map keys must be unique.


│ Error: Invalid type specification

│ on variables_frankfurt.tf line 2550, in variable "lbr_reserved_ips":
│ 2544: type = map(object({
│ 2545: compartment_id = string
│ 2546: display_name = string
│ 2547: lifetime = string
│ 2548: private_ip_id = optional(string)
│ 2549: public_ip_pool_id = optional(string)
│ 2550: lifetime = optional(string)
│ 2551: defined_tags = optional(map(any))
│ 2552: freeform_tags = optional(map(any))
│ 2553: }))

@unamachi
Copy link
Collaborator

Hi @eugsim1,
If you are referring to the global variables file and we don't see those duplicate parameters defined inside instances and lbr_reserved_ips variables with the latest stable release.

It will be helpful to troubleshoot further if you can mention the release version and share more details about the issue with supporting logs.

@eugsim1
Copy link
Member Author

eugsim1 commented Jan 18, 2024

again trying to run the code with terraform
its not working because there are duplicate keys in the generated code
can you please check the code ?
thanks

TestAssets_instances.auto.tfvars
TestAssets_major-objects.auto.tfvars
TestAssets_nsg-rules.auto.tfvars
TestAssets_nsgs.auto.tfvars
TestAssets_routetables.auto.tfvars
TestAssets_seclists.auto.tfvars
TestAssets_subnets.auto.tfvars
identity.tf
instance.tf
modules/compute/instance/data.tf
modules/compute/instance/main.tf
modules/compute/instance/variables.tf
modules/database/exa-vmcluster/data.tf
modules/identity/iam-network-sources/main.tf
modules/network/default-route-table/main.tf
modules/network/default-sec-list/main.tf
modules/network/dns/dns_resolver/main.tf
modules/network/dns/view/main.tf
modules/network/dns/zone/main.tf
modules/network/drg/main.tf
modules/network/drg-route-distribution/main.tf
modules/network/drg-route-table/main.tf
modules/network/igw/main.tf
modules/network/lpg/main.tf
modules/network/ngw/main.tf
modules/network/nsg/main.tf
modules/network/route-table/main.tf
modules/network/sec-list/main.tf
modules/network/sgw/main.tf
modules/network/subnet/main.tf
modules/network/vcn/main.tf
modules/sddc/main.tf
modules/sddc/variables.tf
sddc.tf
variables_frankfurt.tf

│ Error: Argument or block definition required

│ on modules/network/default-dhcp/main.tf line 36:
│ 36: }

│ An argument or block definition is required here.


│ Error: Attribute redefined

│ on modules/network/drg-attachment/main.tf line 29, in resource "oci_core_drg_attachment" "drg_attachment":
│ 29: ignore_changes = [defined_tags, freeform_tags ]

│ The argument "ignore_changes" was already set at modules/network/drg-attachment/main.tf:27,5-19. Each argument may be set only once.

Initializing the backend...
Initializing modules...

  • adb in modules/database/adb
  • alarms in modules/managementservices/alarm
  • backend-sets in modules/loadbalancer/lb-backend-set
  • backends in modules/loadbalancer/lb-backend
  • block-volumes in modules/storage/block-volume
  • budget-alert-rules in modules/governance/billing/budget-alert-rule
  • budgets in modules/governance/billing/budget
  • certificates in modules/loadbalancer/lb-certificate
  • cipher-suites in modules/loadbalancer/lb-cipher-suite
  • cloud-guard-configurations in modules/security/cloud-guard-configuration
  • cloud-guard-targets in modules/security/cloud-guard-target
  • clusters in modules/oke/cluster
  • custom-dhcps in modules/network/custom-dhcp
  • dbsystems-vm-bm in modules/database/dbsystem-vm-bm
  • dedicated-hosts in modules/compute/dedicated-vm-host
  • default-dhcps in modules/network/default-dhcp
  • default-route-tables in modules/network/default-route-table
  • default-security-lists in modules/network/default-sec-list
  • dns-resolvers in modules/network/dns/dns_resolver
  • dns-rrsets in modules/network/dns/rrset
  • dns-views in modules/network/dns/view
  • dns-zones in modules/network/dns/zone
  • drg-attachments in modules/network/drg-attachment
  • drg-route-distribution-statements in modules/network/drg-route-distribution-statement
  • drg-route-distributions in modules/network/drg-route-distribution
  • drg-route-rules in modules/network/drg-route-rule
  • drg-route-tables in modules/network/drg-route-table
  • drgs in modules/network/drg
  • events in modules/managementservices/event
  • exa-infra in modules/database/exa-infra
  • exa-vmclusters in modules/database/exa-vmcluster
  • exported-lpgs in modules/network/lpg
  • fss in modules/storage/file-storage/fss
  • fss-export-options in modules/storage/file-storage/export-option
  • hostnames in modules/loadbalancer/lb-hostname
  • hub-lpgs in modules/network/lpg
  • iam-compartments in modules/identity/iam-compartment
  • iam-groups in modules/identity/iam-group
  • iam-network-sources in modules/identity/iam-network-sources
  • iam-policies in modules/identity/iam-policy
  • iam-users in modules/identity/iam-user
  • igws in modules/network/igw
  • instances in modules/compute/instance
  • keys in modules/security/key
  • lbr-reserved-ips in modules/ip/reserved-public-ip
  • listeners in modules/loadbalancer/lb-listener
  • load-balancers in modules/loadbalancer/lb-load-balancer
  • loadbalancer-log-groups in modules/managementservices/log-group
  • loadbalancer-logs in modules/managementservices/log
  • mts in modules/storage/file-storage/mount-target
  • network-load-balancers in modules/networkloadbalancer/nlb
  • ngws in modules/network/ngw
  • nlb-backend-sets in modules/networkloadbalancer/nlb-backendset
  • nlb-backends in modules/networkloadbalancer/nlb-backend
  • nlb-listeners in modules/networkloadbalancer/nlb-listener
  • nlb-reserved-ips in modules/ip/reserved-public-ip
  • nodepools in modules/oke/nodepool
  • none-lpgs in modules/network/lpg
  • notifications-subscriptions in modules/managementservices/notification-subscription
  • notifications-topics in modules/managementservices/notification-topic
  • nsg-rules in modules/network/nsg-rule
  • nsgs in modules/network/nsg
  • oss-buckets in modules/storage/object-storage
  • oss-log-groups in modules/managementservices/log-group
  • oss-logs in modules/managementservices/log
  • oss-policies in modules/identity/iam-policy
  • path-route-sets in modules/loadbalancer/lb-path-route-set
  • peer-lpgs in modules/network/lpg
  • route-tables in modules/network/route-table
  • rule-sets in modules/loadbalancer/lb-rule-set
  • sddcs in modules/sddc
  • security-lists in modules/network/sec-list
  • service-connectors in modules/managementservices/service-connector
  • sgws in modules/network/sgw
  • spoke-lpgs in modules/network/lpg
  • sub-compartments-level1 in modules/identity/iam-compartment
  • sub-compartments-level2 in modules/identity/iam-compartment
  • sub-compartments-level3 in modules/identity/iam-compartment
  • sub-compartments-level4 in modules/identity/iam-compartment
  • sub-compartments-level5 in modules/identity/iam-compartment
  • subnets in modules/network/subnet
  • tag-defaults in modules/governance/tagging/tag-default
  • tag-keys in modules/governance/tagging/tag-key
  • tag-namespaces in modules/governance/tagging/tag-namespace
  • vaults in modules/security/vault
  • vcn-log-groups in modules/managementservices/log-group
  • vcn-logs in modules/managementservices/log
  • vcns in modules/network/vcn
  • vlans in modules/network/vlan

    │ Error: Invalid type specification

    │ on variables_frankfurt.tf line 2225, in variable "instances":
    │ 2178: type = map(object({
    │ 2179: availability_domain = string
    │ 2180: compartment_id = string
    │ 2181: shape = string
    │ 2182: source_id = string
    │ 2183: source_type = string
    │ 2184: vcn_name = string
    │ 2185: subnet_id = string
    │ 2186: network_compartment_id = string
    │ 2187: display_name = optional(string)
    │ 2188: assign_public_ip = optional(bool)
    │ 2189: boot_volume_size_in_gbs = optional(string)
    │ 2190: fault_domain = optional(string)
    │ 2191: dedicated_vm_host_id = optional(string)
    │ 2192: private_ip = optional(string)
    │ 2193: hostname_label = optional(string)
    │ 2194: nsg_ids = optional(list(string))
    │ 2195: ocpus = optional(string)
    │ 2196: memory_in_gbs = optional(number)
    │ 2197: capacity_reservation_id = optional(string)
    │ 2198: create_is_pv_encryption_in_transit_enabled = optional(bool)
    │ 2199: remote_execute = optional(string)
    │ 2200: bastion_ip = optional(string)
    │ 2201: cloud_init_script = optional(string)
    │ 2202: ssh_authorized_keys = optional(string)
    │ 2203: backup_policy = optional(string)
    │ 2204: policy_compartment_id = optional(string)
    │ 2205: network_type = optional(string)
    │ 2206: #extended_metadata = optional(string)
    │ 2207: skip_source_dest_check = optional(bool)
    │ 2208: baseline_ocpu_utilization = optional(string)
    │ 2209: #preemptible_instance_config = optional(string)
    │ 2210: all_plugins_disabled = optional(bool)
    │ 2211: is_management_disabled = optional(bool)
    │ 2212: is_monitoring_disabled = optional(bool)
    │ 2213: assign_private_dns_record = optional(string)
    │ 2214: plugins_details = optional(map(any))
    │ 2215: is_live_migration_preferred = optional(bool)
    │ 2216: recovery_action = optional(string)
    │ 2217: are_legacy_imds_endpoints_disabled = optional(bool)
    │ 2218: boot_volume_type = optional(string)
    │ 2219: firmware = optional(string)
    │ 2220: is_consistent_volume_naming_enabled = optional(bool)
    │ 2221: remote_data_volume_type = optional(string)
    │ 2222: platform_config = optional(list(map(any)))
    │ 2223: launch_options = optional(list(map(any)))
    │ 2224: ipxe_script = optional(string)
    │ 2225: firmware = optional(string)
    │ 2226: preserve_boot_volume = optional(bool)
    │ 2227: vlan_id = optional(string)
    │ 2228: kms_key_id = optional(string)
    │ 2229: vnic_display_name = optional(string)
    │ 2230: vnic_defined_tags = optional(map(any))
    │ 2231: vnic_freeform_tags = optional(map(any))
    │ 2232: defined_tags = optional(map(any))
    │ 2233: freeform_tags = optional(map(any))
    │ 2234: }))

    │ Object constructor map keys must be unique.


│ Error: Invalid type specification

│ on variables_frankfurt.tf line 2559, in variable "lbr_reserved_ips":
│ 2553: type = map(object({
│ 2554: compartment_id = string
│ 2555: display_name = string
│ 2556: lifetime = string
│ 2557: private_ip_id = optional(string)
│ 2558: public_ip_pool_id = optional(string)
│ 2559: lifetime = optional(string)
│ 2560: defined_tags = optional(map(any))
│ 2561: freeform_tags = optional(map(any))
│ 2562: }))

│ Object constructor map keys must be unique.


│ Error: Argument or block definition required

│ on modules/network/default-dhcp/main.tf line 36:
│ 36: }

│ An argument or block definition is required here.


│ Error: Attribute redefined

│ on modules/network/drg-attachment/main.tf line 29, in resource "oci_core_drg_attachment" "drg_attachment":
│ 29: ignore_changes = [defined_tags, freeform_tags ]

│ The argument "ignore_changes" was already set at modules/network/drg-attachment/main.tf:27,5-19. Each argument may be set only once.

@unamachi
Copy link
Collaborator

unamachi commented Jan 18, 2024

@eugsim1 Have you done any manual changes to the terraform code post executing the automation toolkit. Since, We dont notice the duplicates in the templates which are being used to generate the terraform.

I would suggest you to try the following,

  1. Use the automation toolkit on a new container.
  2. Change to terraform output directory(based on your setting i.e. single output directory/multiple output directory)
  3. Do a terraform init/plan and share the output.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants