Skip to content

This document will describe how to generate NATs Accounts for use with Synqly Embedded. By the end of this guide, you will have the values needed to fill in the following configuration blocks in Synqly Embedded's Helm Chart:

nats:
  ...
  # (Required) Base64 encoded user creds file generated from `nsc init`.
  #
  # `nsc init`, when supplied with name "synqly", will generate an operator,
  # system account, and user account with the name "synqly". The synqly.creds
  # file needs to be encrypted and supplied here. These values can be
  # generated locally, then supplied to the K8s nats instance at boot.
  # Local path should resemble:
  # /Users/<local-user>/.local//share/nats/nsc/keys/keys/A/AA/AAA4T2XPA4P7VMCOXWM5SHOXT63MGJBERZKIT2GW3FHEGEDESYHDROCY.nk
  #
  # Example file before base64 encoding:
  #
  # -----BEGIN NATS USER JWT-----
  # ........
  # ------END NATS USER JWT------
  #
  # ************************* IMPORTANT *************************
  # NKEY Seed printed below can be used to sign and prove identity.
  # NKEYs are sensitive and should be treated as secrets.
  #
  # -----BEGIN USER NKEY SEED-----
  # ...........
  # ------END USER NKEY SEED------
  #
  # Base64 encode the resultant file with:
  #   `base64 -i <user.creds>`
  bridgeUserCreds:

  # (Required) Base64 encoded account NK file.
  #
  # Format:
  #
  # Nats "Synqly" account public key (get using nsc list account)
  # Nats "Synqly" account private key (cat <User path>/.local//share/nats/nsc/keys/keys/A/<dir>/<Synqly account public key>.nk)
  #
  # Example file before base64 encoding:
  #
  # ADM.....
  # SAA.....
  #
  # Base64 encode the resultant file with:
  #   `base64 -i <account.nk>`
  bridgeNkey:

  ...

  config:
    merge:
      # (Required) Values for initializing the System and Synqly Accounts in the
      # NATs Server. These values will allow `Embedded` to authenticate with the
      # NATs Server and perform pub/sub operations.
      #
      # Resolver.conf config for memory resolver. Set with:
      # --set nats.config.merge.operator=$NATS_OPERATOR_JWT \
      # --set nats.config.merge.system_account=$NATS_SYS_ACCOUNT_ID \
      # --set nats.config.merge.resolver_preload.$NATS_SYS_ACCOUNT_ID=$NATS_SYS_ACCOUNT_JWT \
      # --set nats.config.merge.resolver_preload.$NATS_SYNQLY_ACCOUNT_ID=$NATS_SYNQLY_ACCOUNT_JWT
      operator: OPERATOR_JWT
      system_account: SYSTEM_ACCOUNT_ID
      resolver: MEM
      resolver_preload:
        # SYSTEM_ACCOUNT_ID: SYSTEM_ACCOUNT_JWT
        # SYNQLY_ACCOUNT_ID: SYNQLY_ACCOUNT_JWT

Prerequisites

In order to generate NATs Accounts, it is necessary to install NATs' CLI tool, nsc:

NATs Credential Creation

Generate NATs Objects

The first step for generating NATs Accounts is to remove any previous state from nsc. To do so, run the following commands:

# Clean out previous nsc Account configuration
rm -rf ~/.config/nats
rm -rf ~/.local/share/nats

Next, trigger the interactive nsc Account creating workflow by running:

nsc init

When filling out the prompts, leave the configuration directory as default, then select "Create Operator"

  demo_nats_gen nsc init
? enter a configuration directory <LOCAL_USER_DIR>/.local/share/nats/nsc/stores
? Select an operator  [Use arrows to move, type to filter]
  synadia
> Create Operator
  Other

For the Operator name, enter synqly. This step will create an Operator, Account, and User, all named synqly:

demo_nats_gen nsc init
? enter a configuration directory <LOCAL_USER_DIR>/.local/share/nats/nsc/stores
? Select an operator Create Operator
? name your operator, account and user (jolly_roentgen) synqly

The output should resemble the following:

? Select an operator Create Operator
? name your operator, account and user synqly
[ OK ] created operator synqly
[ OK ] created system_account: name:SYS id:AA4XHSW2JB762MTG3ZCR25SBCPV7RHNO5EKYTZPH6CTN5N3JL5ZBHIAL
[ OK ] created system account user: name:sys id:UBBZ7G4MRMIWTP2UGE2YWUO7DKIDKMMCGW5PPIWFX2D5CKF6FTBFFEAX
[ OK ] system account user creds file stored in `~/.local/share/nats/nsc/keys/creds/synqly/SYS/sys.creds`
[ OK ] created account synqly
[ OK ] created user "synqly"
[ OK ] project jwt files created in `~/.local/share/nats/nsc/stores`
[ OK ] user creds file stored in `~/.local/share/nats/nsc/keys/creds/synqly/synqly/synqly.creds`
> to run a local server using this configuration, enter:
>   nsc generate config --mem-resolver --config-file <path/server.conf>
> then start a nats-server using the generated config:
>   nats-server -c <path/server.conf>
all jobs succeeded

Note down the location of the sys.creds and synqly.creds user files, as they will be needed in the next steps. All the required NATs objects have now been generated, the next steps will cover how to retrieve the values and format them to be compatible with the Synqly Embedded Helm Chart.

Store sys.creds and synqly.creds

As mentioned in the output above, nsc generates two NATs Accounts, one called sys, and one called synqly. The sys Account is an administrative Account that can be used to query NATs server health and clustering information. The synqly Account is what we will later provide to both Embedded and NATs through Helm's values.yaml. While only synqly.creds is directly needed for running NATs with Embedded, it is useful to store both files in case you later wish to run administrative commands against NATs.

Copy both .creds files described in the output above to a local directory for ease of access:

mkdir nats_configuration
cd nats_configuration

cp ~/.local/share/nats/nsc/keys/creds/synqly/SYS/sys.creds ./
cp ~/.local/share/nats/nsc/keys/creds/synqly/synqly/synqly.creds ./

Generate resolver.conf File

Next, we'll generate a resolver.conf file. The resolver.conf file formats most of the previously generated Operator, Account, and User objects into one file, which will make it easier to retrieve the relevant values. To generate a resolver.conf file, run the following command.

nsc generate config --mem-resolver > resolver.conf

Retrieve Synqly Account Private Key

In order to provide the synqly Account credentials to both Embedded and NATs, we will need to create an account.nk file containing the public and private key of the synqly Account.

To retrieve the public key of the synqly Account, run the following:

nsc list accounts
+-------------------------------------------------------------------+
|                             Accounts                              |
+--------+----------------------------------------------------------+
| Name   | Public Key                                               |
+--------+----------------------------------------------------------+
| SYS    | AA4XHSW2JB762MTG3ZCR25SBCPV7RHNO5EKYTZPH6CTN5N3JL5ZBHIAL |
| synqly | ABPT4EX5ZVCW27HP3YLE3CWTFH52XIK6NVNXWG5IGZ2EVQ6RYU3OASVE |
+--------+----------------------------------------------------------+

Copy your synqly Account public key and store it in a new file named account.nk:

echo ABPT4EX5ZVCW27HP3YLE3CWTFH52XIK6NVNXWG5IGZ2EVQ6RYU3OASVE > account.nk

Next, search for the private key file in your local nats config:

# Format
find ~/.local/ -name \*.nk | grep <`synqly` public key>

# Example
find ~/.local/ -name \*.nk | grep ABPT4EX5ZVCW27HP3YLE3CWTFH52XIK6NVNXWG5IGZ2EVQ6RYU3OASVE
<LOCAL_USER_DIR>/.local//share/nats/nsc/keys/keys/A/BP/ABPT4EX5ZVCW27HP3YLE3CWTFH52XIK6NVNXWG5IGZ2EVQ6RYU3OASVE.nk

Copy the private key value into your account.nk file:

cat <LOCAL_USER_DIR>/.local//share/nats/nsc/keys/keys/A/BP/ABPT4EX5ZVCW27HP3YLE3CWTFH52XIK6NVNXWG5IGZ2EVQ6RYU3OASVE.nk >> account.nk

Your final account.nk file should have a public and private key, resembling the following:

cat account.nk

# Output
ABPT4EX5ZVCW27HP3YLE3CWTFH52XIK6NVNXWG5IGZ2EVQ6RYU3OASVE
SAAPCJE62SBMPF6V64M746WUQ7VFNPFGGGOJELMTP7I3IRCWOITM4N5LOI

Lastly, base64 encode both your synqly.creds and account.nk files for use in Helm:

base64 -i account.nk > bridge_nkey_b64.txt
base64 -i synqly.creds > bridge_user_creds_b64.txt

Final Configuration Values

We now have all the information needed to configure NATs and Embedded. The following two configuration blocks will demonstrate how to map the generated information into Synqly Embedded's values.yaml.

Information Sources

This configuration block describe the source for each field. Refer to the section below for an example using real values

nats:
  ...
  # (Comment omitted for legibility)
  bridgeUserCreds: <bridge_user_creds_b64.txt>

  # (Comment omitted for legibility)
  bridgeNkey: <bridge_nkey_b64.txt>

  ...

  config:
    merge:
      # (Comment omitted for legibility)
      operator: <resolver.conf, .operator>
      system_account: <resolver.conf, .system_account>
      resolver: MEM
      resolver_preload:
        <resolver.conf, .system_account>: <resolver.conf, .resolver_preload - //Account "SYS" value>
        <resolver.conf, .resolver_preload - //Account "synqly" key>: <resolver.conf, .resolver_preload - //Account "synqly" value>

Final Example

With the following files:

resolver.conf:

// Operator "synqly"
operator: eyJ0eXAiOiJKV1QiLCJhbGciOiJlZDI1NTE5LW5rZXkifQ.eyJqdGkiOiJNREZDUU5VUjNSWDRVSklCVEdVMlRBSjdHSlVSUTNKWDdWRktaTjZRNDc0T0xDTkc3V1dRIiwiaWF0IjoxNzIyOTcxNzg0LCJpc3MiOiJPRFNMTElHSUNFREEyN0ZJWUZHQVBSVU5ESVZWU0pNQTZBTUs1VjRaVUtLSlo1QU9UVUtGR1ZIWSIsIm5hbWUiOiJzeW5xbHkiLCJzdWIiOiJPRFNMTElHSUNFREEyN0ZJWUZHQVBSVU5ESVZWU0pNQTZBTUs1VjRaVUtLSlo1QU9UVUtGR1ZIWSIsIm5hdHMiOnsib3BlcmF0b3Jfc2VydmljZV91cmxzIjpbIm5hdHM6Ly9sb2NhbGhvc3Q6NDIyMiJdLCJzeXN0ZW1fYWNjb3VudCI6IkFBNFhIU1cySkI3NjJNVEczWkNSMjVTQkNQVjdSSE5PNUVLWVRaUEg2Q1RONU4zSkw1WkJISUFMIiwidHlwZSI6Im9wZXJhdG9yIiwidmVyc2lvbiI6Mn19.F_1hNZeMVX_1kqt7OGI4uaw6jJ5DVcY1D-6d2lts-NJJDlGQHQq8jVHrlWpLjAKZHR7Y_WFhWGpygiTLFnnYBQ

system_account: AA4XHSW2JB762MTG3ZCR25SBCPV7RHNO5EKYTZPH6CTN5N3JL5ZBHIAL

resolver: MEMORY

resolver_preload: {
  // Account "SYS"
  AA4XHSW2JB762MTG3ZCR25SBCPV7RHNO5EKYTZPH6CTN5N3JL5ZBHIAL: eyJ0eXAiOiJKV1QiLCJhbGciOiJlZDI1NTE5LW5rZXkifQ.eyJqdGkiOiI1UlkzRlFJNkNGVUtZVFFOQ1BFTUpBRlhUWjcyWElUMkNJTlE2R01YQjZOUlFaUlVWRTJRIiwiaWF0IjoxNzIyOTcxNzg0LCJpc3MiOiJPRFNMTElHSUNFREEyN0ZJWUZHQVBSVU5ESVZWU0pNQTZBTUs1VjRaVUtLSlo1QU9UVUtGR1ZIWSIsIm5hbWUiOiJTWVMiLCJzdWIiOiJBQTRYSFNXMkpCNzYyTVRHM1pDUjI1U0JDUFY3UkhOTzVFS1lUWlBINkNUTjVOM0pMNVpCSElBTCIsIm5hdHMiOnsiZXhwb3J0cyI6W3sibmFtZSI6ImFjY291bnQtbW9uaXRvcmluZy1zdHJlYW1zIiwic3ViamVjdCI6IiRTWVMuQUNDT1VOVC4qLlx1MDAzZSIsInR5cGUiOiJzdHJlYW0iLCJhY2NvdW50X3Rva2VuX3Bvc2l0aW9uIjozLCJkZXNjcmlwdGlvbiI6IkFjY291bnQgc3BlY2lmaWMgbW9uaXRvcmluZyBzdHJlYW0iLCJpbmZvX3VybCI6Imh0dHBzOi8vZG9jcy5uYXRzLmlvL25hdHMtc2VydmVyL2NvbmZpZ3VyYXRpb24vc3lzX2FjY291bnRzIn0seyJuYW1lIjoiYWNjb3VudC1tb25pdG9yaW5nLXNlcnZpY2VzIiwic3ViamVjdCI6IiRTWVMuUkVRLkFDQ09VTlQuKi4qIiwidHlwZSI6InNlcnZpY2UiLCJyZXNwb25zZV90eXBlIjoiU3RyZWFtIiwiYWNjb3VudF90b2tlbl9wb3NpdGlvbiI6NCwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0IGFjY291bnQgc3BlY2lmaWMgbW9uaXRvcmluZyBzZXJ2aWNlcyBmb3I6IFNVQlNaLCBDT05OWiwgTEVBRlosIEpTWiBhbmQgSU5GTyIsImluZm9fdXJsIjoiaHR0cHM6Ly9kb2NzLm5hdHMuaW8vbmF0cy1zZXJ2ZXIvY29uZmlndXJhdGlvbi9zeXNfYWNjb3VudHMifV0sImxpbWl0cyI6eyJzdWJzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJpbXBvcnRzIjotMSwiZXhwb3J0cyI6LTEsIndpbGRjYXJkcyI6dHJ1ZSwiY29ubiI6LTEsImxlYWYiOi0xfSwic2lnbmluZ19rZXlzIjpbIkFCWk1BQjVIN0lDSldMU1hCTkdUQ05aRlRYSTU1M1FCQ1gzWUU1TUhGNzZNWkRFM1BGR0syQUxUIl0sImRlZmF1bHRfcGVybWlzc2lvbnMiOnsicHViIjp7fSwic3ViIjp7fX0sImF1dGhvcml6YXRpb24iOnt9LCJ0eXBlIjoiYWNjb3VudCIsInZlcnNpb24iOjJ9fQ.xrWGVRyiJNcstIxVwkTYF0UIr7_M3qMoAbMnrDTNygG9XF3gLK59ykNBaV6B__C92BHzRooIlzVPlwJKFi59CQ

  // Account "synqly"
  ABPT4EX5ZVCW27HP3YLE3CWTFH52XIK6NVNXWG5IGZ2EVQ6RYU3OASVE: eyJ0eXAiOiJKV1QiLCJhbGciOiJlZDI1NTE5LW5rZXkifQ.eyJqdGkiOiI3MzJWUDJFV0RSNE42UDZaNUlLSlZLM0FURFZQSDZSMkFaUVlPVU5VQ0kzR003Wkk3UUlRIiwiaWF0IjoxNzIyOTcxNzg0LCJpc3MiOiJPRFNMTElHSUNFREEyN0ZJWUZHQVBSVU5ESVZWU0pNQTZBTUs1VjRaVUtLSlo1QU9UVUtGR1ZIWSIsIm5hbWUiOiJzeW5xbHkiLCJzdWIiOiJBQlBUNEVYNVpWQ1cyN0hQM1lMRTNDV1RGSDUyWElLNk5WTlhXRzVJR1oyRVZRNlJZVTNPQVNWRSIsIm5hdHMiOnsibGltaXRzIjp7InN1YnMiOi0xLCJkYXRhIjotMSwicGF5bG9hZCI6LTEsImltcG9ydHMiOi0xLCJleHBvcnRzIjotMSwid2lsZGNhcmRzIjp0cnVlLCJjb25uIjotMSwibGVhZiI6LTF9LCJkZWZhdWx0X3Blcm1pc3Npb25zIjp7InB1YiI6e30sInN1YiI6e319LCJhdXRob3JpemF0aW9uIjp7fSwidHlwZSI6ImFjY291bnQiLCJ2ZXJzaW9uIjoyfX0.8i0qBOEixTDuxoU5sdAorZUOQlGdIDGtK2DNzl-z-uxJRESi5aHjAvhJkwOXF6Hx9mNRzSQ0CmGAEQW4nBXKAA

}

bridge_nkey_b64.txt:

QUJQVDRFWDVaVkNXMjdIUDNZTEUzQ1dURkg1MlhJSzZOVk5YV0c1SUdaMkVWUTZSWVUzT0FTVkUKU0FBUENKRTYyU0JNUEY2VjY0TTc0NldVUTdWRk5QRkdHR09KRUxNVFA3STNJUkNXT0lUTTRONUxPSQ==

bridge_user_creds_b64.txt:

LS0tLS1CRUdJTiBOQVRTIFVTRVIgSldULS0tLS0KZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKbFpESTFOVEU1TFc1clpYa2lmUS5leUpxZEdraU9pSlBRa1ZPUjFCSVdsbzBSVWhZVUZWS1dUYzFWVEpZVXpORFQwbFVXRk5GUkRZMFMxTkJRek5ZVXpSRVRrOUhRa3MzTjFsUklpd2lhV0YwSWpveE56SXlPVGN4TnpnMExDSnBjM01pT2lKQlFsQlVORVZZTlZwV1ExY3lOMGhRTTFsTVJUTkRWMVJHU0RVeVdFbExOazVXVGxoWFJ6VkpSMW95UlZaUk5sSlpWVE5QUVZOV1JTSXNJbTVoYldVaU9pSnplVzV4YkhraUxDSnpkV0lpT2lKVlExaE9XRlpRUlRkUFdWUlBWRTFhVTB4WVJrRlJSRTlSUXpKQlJ6UllOVWxaUTBrM1FrTlNRalJWVkRWRVdFUTNNMUJLVGtSSlRpSXNJbTVoZEhNaU9uc2ljSFZpSWpwN2ZTd2ljM1ZpSWpwN2ZTd2ljM1ZpY3lJNkxURXNJbVJoZEdFaU9pMHhMQ0p3WVhsc2IyRmtJam90TVN3aWRIbHdaU0k2SW5WelpYSWlMQ0oyWlhKemFXOXVJam95ZlgwLlFVcy1faDNUQXpIWjJWY1VhNERVRXNsWF91OGlNOFhUSTY5ZjZxd251VGh4T2luamdoNE5YbjNRNlVTalYwdVFHQi1ORmFjdE9CT05sNUxZTjhFREF3Ci0tLS0tLUVORCBOQVRTIFVTRVIgSldULS0tLS0tCgoqKioqKioqKioqKioqKioqKioqKioqKioqIElNUE9SVEFOVCAqKioqKioqKioqKioqKioqKioqKioqKioqCk5LRVkgU2VlZCBwcmludGVkIGJlbG93IGNhbiBiZSB1c2VkIHRvIHNpZ24gYW5kIHByb3ZlIGlkZW50aXR5LgpOS0VZcyBhcmUgc2Vuc2l0aXZlIGFuZCBzaG91bGQgYmUgdHJlYXRlZCBhcyBzZWNyZXRzLgoKLS0tLS1CRUdJTiBVU0VSIE5LRVkgU0VFRC0tLS0tClNVQUFWWEVCU1NBUTdaWFZNMjZIWEJXU0U3QlFKNVNOQ1BCQkpOR0ZEQkZFQlNKNjRWQzJXM0RNU1kKLS0tLS0tRU5EIFVTRVIgTktFWSBTRUVELS0tLS0tCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCg==

We get the following configuration in values.yaml:

nats:
  ...
  # (Comment omitted for legibility)
  bridgeUserCreds: LS0tLS1CRUdJTiBOQVRTIFVTRVIgSldULS0tLS0KZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKbFpESTFOVEU1TFc1clpYa2lmUS5leUpxZEdraU9pSlBRa1ZPUjFCSVdsbzBSVWhZVUZWS1dUYzFWVEpZVXpORFQwbFVXRk5GUkRZMFMxTkJRek5ZVXpSRVRrOUhRa3MzTjFsUklpd2lhV0YwSWpveE56SXlPVGN4TnpnMExDSnBjM01pT2lKQlFsQlVORVZZTlZwV1ExY3lOMGhRTTFsTVJUTkRWMVJHU0RVeVdFbExOazVXVGxoWFJ6VkpSMW95UlZaUk5sSlpWVE5QUVZOV1JTSXNJbTVoYldVaU9pSnplVzV4YkhraUxDSnpkV0lpT2lKVlExaE9XRlpRUlRkUFdWUlBWRTFhVTB4WVJrRlJSRTlSUXpKQlJ6UllOVWxaUTBrM1FrTlNRalJWVkRWRVdFUTNNMUJLVGtSSlRpSXNJbTVoZEhNaU9uc2ljSFZpSWpwN2ZTd2ljM1ZpSWpwN2ZTd2ljM1ZpY3lJNkxURXNJbVJoZEdFaU9pMHhMQ0p3WVhsc2IyRmtJam90TVN3aWRIbHdaU0k2SW5WelpYSWlMQ0oyWlhKemFXOXVJam95ZlgwLlFVcy1faDNUQXpIWjJWY1VhNERVRXNsWF91OGlNOFhUSTY5ZjZxd251VGh4T2luamdoNE5YbjNRNlVTalYwdVFHQi1ORmFjdE9CT05sNUxZTjhFREF3Ci0tLS0tLUVORCBOQVRTIFVTRVIgSldULS0tLS0tCgoqKioqKioqKioqKioqKioqKioqKioqKioqIElNUE9SVEFOVCAqKioqKioqKioqKioqKioqKioqKioqKioqCk5LRVkgU2VlZCBwcmludGVkIGJlbG93IGNhbiBiZSB1c2VkIHRvIHNpZ24gYW5kIHByb3ZlIGlkZW50aXR5LgpOS0VZcyBhcmUgc2Vuc2l0aXZlIGFuZCBzaG91bGQgYmUgdHJlYXRlZCBhcyBzZWNyZXRzLgoKLS0tLS1CRUdJTiBVU0VSIE5LRVkgU0VFRC0tLS0tClNVQUFWWEVCU1NBUTdaWFZNMjZIWEJXU0U3QlFKNVNOQ1BCQkpOR0ZEQkZFQlNKNjRWQzJXM0RNU1kKLS0tLS0tRU5EIFVTRVIgTktFWSBTRUVELS0tLS0tCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCg==

  # (Comment omitted for legibility)
  bridgeNkey: QUJQVDRFWDVaVkNXMjdIUDNZTEUzQ1dURkg1MlhJSzZOVk5YV0c1SUdaMkVWUTZSWVUzT0FTVkUKU0FBUENKRTYyU0JNUEY2VjY0TTc0NldVUTdWRk5QRkdHR09KRUxNVFA3STNJUkNXT0lUTTRONUxPSQ==

  ...

  config:
    merge:
      # (Comment omitted for legibility)
      operator: eyJ0eXAiOiJKV1QiLCJhbGciOiJlZDI1NTE5LW5rZXkifQ.eyJqdGkiOiJNREZDUU5VUjNSWDRVSklCVEdVMlRBSjdHSlVSUTNKWDdWRktaTjZRNDc0T0xDTkc3V1dRIiwiaWF0IjoxNzIyOTcxNzg0LCJpc3MiOiJPRFNMTElHSUNFREEyN0ZJWUZHQVBSVU5ESVZWU0pNQTZBTUs1VjRaVUtLSlo1QU9UVUtGR1ZIWSIsIm5hbWUiOiJzeW5xbHkiLCJzdWIiOiJPRFNMTElHSUNFREEyN0ZJWUZHQVBSVU5ESVZWU0pNQTZBTUs1VjRaVUtLSlo1QU9UVUtGR1ZIWSIsIm5hdHMiOnsib3BlcmF0b3Jfc2VydmljZV91cmxzIjpbIm5hdHM6Ly9sb2NhbGhvc3Q6NDIyMiJdLCJzeXN0ZW1fYWNjb3VudCI6IkFBNFhIU1cySkI3NjJNVEczWkNSMjVTQkNQVjdSSE5PNUVLWVRaUEg2Q1RONU4zSkw1WkJISUFMIiwidHlwZSI6Im9wZXJhdG9yIiwidmVyc2lvbiI6Mn19.F_1hNZeMVX_1kqt7OGI4uaw6jJ5DVcY1D-6d2lts-NJJDlGQHQq8jVHrlWpLjAKZHR7Y_WFhWGpygiTLFnnYBQ
      system_account: AA4XHSW2JB762MTG3ZCR25SBCPV7RHNO5EKYTZPH6CTN5N3JL5ZBHIAL
      resolver: MEM
      resolver_preload:
        AA4XHSW2JB762MTG3ZCR25SBCPV7RHNO5EKYTZPH6CTN5N3JL5ZBHIAL: eyJ0eXAiOiJKV1QiLCJhbGciOiJlZDI1NTE5LW5rZXkifQ.eyJqdGkiOiI1UlkzRlFJNkNGVUtZVFFOQ1BFTUpBRlhUWjcyWElUMkNJTlE2R01YQjZOUlFaUlVWRTJRIiwiaWF0IjoxNzIyOTcxNzg0LCJpc3MiOiJPRFNMTElHSUNFREEyN0ZJWUZHQVBSVU5ESVZWU0pNQTZBTUs1VjRaVUtLSlo1QU9UVUtGR1ZIWSIsIm5hbWUiOiJTWVMiLCJzdWIiOiJBQTRYSFNXMkpCNzYyTVRHM1pDUjI1U0JDUFY3UkhOTzVFS1lUWlBINkNUTjVOM0pMNVpCSElBTCIsIm5hdHMiOnsiZXhwb3J0cyI6W3sibmFtZSI6ImFjY291bnQtbW9uaXRvcmluZy1zdHJlYW1zIiwic3ViamVjdCI6IiRTWVMuQUNDT1VOVC4qLlx1MDAzZSIsInR5cGUiOiJzdHJlYW0iLCJhY2NvdW50X3Rva2VuX3Bvc2l0aW9uIjozLCJkZXNjcmlwdGlvbiI6IkFjY291bnQgc3BlY2lmaWMgbW9uaXRvcmluZyBzdHJlYW0iLCJpbmZvX3VybCI6Imh0dHBzOi8vZG9jcy5uYXRzLmlvL25hdHMtc2VydmVyL2NvbmZpZ3VyYXRpb24vc3lzX2FjY291bnRzIn0seyJuYW1lIjoiYWNjb3VudC1tb25pdG9yaW5nLXNlcnZpY2VzIiwic3ViamVjdCI6IiRTWVMuUkVRLkFDQ09VTlQuKi4qIiwidHlwZSI6InNlcnZpY2UiLCJyZXNwb25zZV90eXBlIjoiU3RyZWFtIiwiYWNjb3VudF90b2tlbl9wb3NpdGlvbiI6NCwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0IGFjY291bnQgc3BlY2lmaWMgbW9uaXRvcmluZyBzZXJ2aWNlcyBmb3I6IFNVQlNaLCBDT05OWiwgTEVBRlosIEpTWiBhbmQgSU5GTyIsImluZm9fdXJsIjoiaHR0cHM6Ly9kb2NzLm5hdHMuaW8vbmF0cy1zZXJ2ZXIvY29uZmlndXJhdGlvbi9zeXNfYWNjb3VudHMifV0sImxpbWl0cyI6eyJzdWJzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJpbXBvcnRzIjotMSwiZXhwb3J0cyI6LTEsIndpbGRjYXJkcyI6dHJ1ZSwiY29ubiI6LTEsImxlYWYiOi0xfSwic2lnbmluZ19rZXlzIjpbIkFCWk1BQjVIN0lDSldMU1hCTkdUQ05aRlRYSTU1M1FCQ1gzWUU1TUhGNzZNWkRFM1BGR0syQUxUIl0sImRlZmF1bHRfcGVybWlzc2lvbnMiOnsicHViIjp7fSwic3ViIjp7fX0sImF1dGhvcml6YXRpb24iOnt9LCJ0eXBlIjoiYWNjb3VudCIsInZlcnNpb24iOjJ9fQ.xrWGVRyiJNcstIxVwkTYF0UIr7_M3qMoAbMnrDTNygG9XF3gLK59ykNBaV6B__C92BHzRooIlzVPlwJKFi59CQ
        ABPT4EX5ZVCW27HP3YLE3CWTFH52XIK6NVNXWG5IGZ2EVQ6RYU3OASVE: eyJ0eXAiOiJKV1QiLCJhbGciOiJlZDI1NTE5LW5rZXkifQ.eyJqdGkiOiI3MzJWUDJFV0RSNE42UDZaNUlLSlZLM0FURFZQSDZSMkFaUVlPVU5VQ0kzR003Wkk3UUlRIiwiaWF0IjoxNzIyOTcxNzg0LCJpc3MiOiJPRFNMTElHSUNFREEyN0ZJWUZHQVBSVU5ESVZWU0pNQTZBTUs1VjRaVUtLSlo1QU9UVUtGR1ZIWSIsIm5hbWUiOiJzeW5xbHkiLCJzdWIiOiJBQlBUNEVYNVpWQ1cyN0hQM1lMRTNDV1RGSDUyWElLNk5WTlhXRzVJR1oyRVZRNlJZVTNPQVNWRSIsIm5hdHMiOnsibGltaXRzIjp7InN1YnMiOi0xLCJkYXRhIjotMSwicGF5bG9hZCI6LTEsImltcG9ydHMiOi0xLCJleHBvcnRzIjotMSwid2lsZGNhcmRzIjp0cnVlLCJjb25uIjotMSwibGVhZiI6LTF9LCJkZWZhdWx0X3Blcm1pc3Npb25zIjp7InB1YiI6e30sInN1YiI6e319LCJhdXRob3JpemF0aW9uIjp7fSwidHlwZSI6ImFjY291bnQiLCJ2ZXJzaW9uIjoyfX0.8i0qBOEixTDuxoU5sdAorZUOQlGdIDGtK2DNzl-z-uxJRESi5aHjAvhJkwOXF6Hx9mNRzSQ0CmGAEQW4nBXKAA

Next Steps

Once the sections above are configured, this initialization of all NATs Objects. Synqly Embedded will also have all the configuration that it needs to authenticate with the NATs Pods running in the same K8S Namespace. The remaining NATs configuration relates to whether to run NATs, whether to connect Embedded to it, and configuration for the NATs Pods and Services.