You can use the following sample user-spec.yaml as a reference.
SharedResources: # IMPORTANT: If there are multiple resources with the same # display_name, please make the display_names unique before # initiating the import IpPool: resources: # Specify the resources to import here with their UUID or # display_name k8s-snat-pool: # Duplicate MP to Policy imports allowed for ip-allocations # ip-allocations: # - key: "172.24.4.4" # value: "ip-alloc-1" k8s-lb-pool: IpBlock: resources: k8s-container-block: IpSet: resources: vs-ipset-1: Tier0Router: resources: node-t0: Tier1Router: resources: # NOTE: If a Tier1 router is a top-tier router, it should not be imported # as a shared resource node-lr: is-any-cluster-top-tier: False # required attribute Tier1RouterPortsAndStaticRoutes: resources: # NOTE: If a Tier1 router is a top-tier router for any cluster, # it should not be imported as a shared resource node-lr: is-any-cluster-top-tier: False # required attribute # static_routes_import_info: # - key: "a4b04674-feb9-4418-8d5f-ac8bca4665eb" # value: st-r-1 # router_ports_import_info: # - key: "s2f24456-feb9-4418-8d5f-ar8aqa4665vf" # value: rp-1 NsGroup: # resources: # test-ns-group: # domain: my-domain SpoofguradProfile: resources: nsx-default-spoof-guard-vif-profile: NodeLogicalSwitch: resources: node-ls: FirewallSectionsAndRules: resources: # Make sure to write the DFW Section and Rules in the order # in which they should be imported. Otherwise there might be a # moment in which the section that is present at lower priority # is imported before section that is present above it making the # traffic flow inconsistent. The best way to do it is to mention # the Sections and Rules with increasing |priority| number. Note # that lower priority numbers are present at the top in the Section # and Rules order in NSX fw-section-1: section_info: # category is a Security Policy attribute category: "Application" # You can specify either priority or bool is_top_section. # If is_top_section is True, priority is auto-assigned to 5 # If is_top_section is False, priority is auto-assigned to 95 # If is_top_section and priority are specified, priority is used # If both are not specified, error is thrown is_top_section: True # priority: 1 # domain is a Security Policy attribute domain: "my-domain" rules_info: - name: "rule-name" # name or id must be specified priority: 1 # optional. If not specified, FW Rule priority will be # used as sequence number of Policy Rule - id: 'rule-id' # name or id must be specified Certificate: resources: my-cert: k8s-clusters: k8scluster: # top-tier-router-id (MP) is required for each cluster top-tier-router-id: null # top-tier-router-type is required for each cluster # choices: TIER0 or TIER1 top-tier-router-type: TIER0 # lb-service-mp-id is the same as lb_service in ncp.ini config file lb-service-mp-id: null # optional external-ip-pools-lb-mp-id: [] # required. leave empty, [], if not used external-ip-pools-mp-id: [] # required. leave empty, [], if not used http-and-https-ingress-ip: null # NamespaceResources: # Tier1Router: # custom_resources: # 6d93a932-87ea-42de-a30c-b39f397322b0: k8scluster-2: # top-tier-router-id (MP) is required for each cluster top-tier-router-id: null top-tier-router-type: TIER1 # lb-service-mp-id is the same as lb_service in ncp.ini config file lb-service-mp-id: null # optional external-ip-pools-lb-mp-id: [] # required. leave empty, [], if not used external-ip-pools-mp-id: [] # required. leave empty, [], if not used http-and-https-ingress-ip: null # Provide custom resources as follow: NamespaceResources: Tier1Router: custom_resources: # Custom resources are specified only with MP ID 6d93a932-87ea-42de-a30c-b39f397322b0: metadata: # It should be a list - key: 'metadata-key' value: 'metadata-value' linked_ids: # It should be a list - key: 'linked_id-key' value: 'linked_id-value'