Link Search Menu Expand Document

Post Installation Steps

Jan 1 2022 at 12:00 AM

  1. Verify Commander authentication integration
  2. Verify configs are valid
    1. Driver stores can be queries
    2. HTTP ports
    3. RPC Ports
  3. Deployment Agent
    1. Deploy a new driver
    2. Issue a certificate
  4. Red/Green queue connection
    1. Send telemetry to Commander
    2. Commander Connection
    3. Enabled/Disable applications
    4. Change ingress settings

Verify Commander authentication integration

The first post-installation step should be to ensure

Verify configs are valid

Verify that all the config defaults are valid and can be loaded on all services. All services will log the status of each config file it tries to load on startup. The following is an example where one of the config files could not be loaded correctly:

[OK] load Json [/data/cloud/Data/Config/KestrelOptions.json]
[OK] load Json [/data/cloud/Data/Config/IdentityClientOptions.json]
[OK] load Json [/data/cloud/Data/Config/RpcServerOptions.json]
Failed to load configuration file. After parsing a value an unexpected character was encountered: ". Path 'Gateway2Options.TlsClientCertificatePassword', line 7, position 4.
[Error] Failed load Json [/data/cloud/Data/Config/Gateway2Options.json]

A nominal configuration setup will look as follows:

[OK] load Json [/data/cloud/Data/Config/LoggingOptions.json]
[OK] load Json [/data/cloud/Data/Config/RpcClientOptions.json]
[OK] load Json [/data/cloud/Data/Config/QueueSettings.json]
[OK] load Json [/data/cloud/Data/Config/CloudServiceOptions.json]
[OK] load Json [/data/cloud/Data/Config/RedGreenQueueAdapterOptions.json]
[OK] load Json [/data/cloud/Data/Config/TpcRpcOptions.json]
[OK] load Json [/data/cloud/Data/Config/DataProtectionOptions.json]
[OK] load Json [/data/cloud/Data/Config/DapiRedGreenQueueProxyOptions.json]

Note: This only checks the JSON configs consumed by the service. Additional errors might be present in other config files (e.g., the nlog and Kubernetes config files) which will be logged differently.


Driver stores can be queries

HTTP ports

2021-03-17 17:08:09.0601INFOIoTnxt.Raptor.Bootstrap.BootstrapHostedServiceService URLs: https://0.0.0.0:8001,https://0.0.0.0:8000

RPC Ports

2021-03-17 17:08:15.8982INFOIoTnxt.Raptor.Grpc.GrpcServerHostGRPC: Started on Host Port [0.0.0.0:6000] Attempt [1] [0.0.0.0:6000]

Deployment Agent

On startup, the deployment agent will perform a series of startup checks. These checks will determine whether or not the agent is correctly configured and is able to communicate with the Kubernetes API.

2021-03-18 07:38:42.4407|INFO|IoTnxt.Raptor.Orchestration.Kubernetes.K8Context|Creating Kubernetes client
2021-03-18 07:38:42.4994|INFO|IoTnxt.Raptor.Deployment.Common.CommonStartupChecks|

[Raptor Central Config] - Domain Name: vraptor01-organisation Status: OK.
[Raptor Central Config] - Public Domain Name: vraptor01-organisation.commander.io Status: OK.
[Raptor CA] - OpenSslRaptorRsaCertificateAuthorityProvider Status: OK.
[Raptor Config] - RaptorServiceConfigurationFactory Status: OK.
[Raptor Pipeline Manager] - Pipeline [certificate.authority.update] Status (1 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [certificate.issue] Status (1 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [certificate.revoke] Status (2 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [certificate.trusted.remove] Status (1 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [certificate.trusted.upload] Status (1 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [config] Status (4 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [configAndPort] Status (6 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [default] Status (16 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [deleteService] Status (4 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [deployCertificate] Status (2 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [deployPublicCertificates] Status (1 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [deviceUpdate] Status (7 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [generateCertificate] Status (1 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [revokeCertificate] Status (1 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [service.delete] Status (4 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [service.deploy] Status (12 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [service.update] Status (1 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [updateServiceConfig] Status (3 steps) : OK.
[Raptor Pipeline Manager] - Pipeline [updateServiceContainer] Status (1 steps) : OK.
[Raptor Pipeline Manager] - DeploymentPipelineManager Status: OK.

2021-03-18 07:38:42.4994|INFO|IoTnxt.Raptor.Deployment.Common.CommonStartupChecks|Startup checks completed.

Deploy a new driver

Issue a certificate

Red/Green queue connection

Make sure that the V-Raptor is connecting to the correct queue, and that it has been associated in Commander.

Send telemetry to Commander

As a final test, you should also test that you are able to

Commander Connection

2021-03-17 17:08:22.6531|INFO|IoTnxt.Raptor.Cloud.Rabbit.RabbitCommunicator|Initial queue green queue client for Gateway ID 'COLLECTOR_VRAPTOR01-ORGANISATION' registered.

2021-03-17 17:08:23.3639|DEBUG|IoTnxt.Raptor.Cloud.Rabbit.RabbitCommunicator|_isAmqpConnected = True

2021-03-17 17:08:23.3639|DEBUG|IoTnxt.Raptor.Cloud.Rabbit.RabbitCommunicator|Set health status to 'Healthy'

2021-03-17 17:08:23.3639|DEBUG|IoTnxt.Raptor.Cloud.Rabbit.RabbitCommunicator|AMQP connection for Gateway ID 'COLLECTOR_VRAPTOR01-ORGANISATION' has been opened successfully.
2021-03-30 19:01:23.6895|ERROR|IoTnxt.RedGreenQueue.GreenQueue|Registration Failed with [The gateway is not yet associated with a tenant]

Enabled/Disable applications

Change ingress settings

Depending on the environment, one or more settings might need to be adjusted on the Raptor’s ingress. For example, if operating in a region with poor network quality, you may need to adjust the timeouts on the ingress.

        client_body_timeout 5s;
        client_header_timeout 3s;
        keepalive_timeout 5s;
        send_timeout 5s;

You might also want to adjust Content Security Policies, as the V-Raptor’s domain name might differ from what is already present in the config.

        add_header Content-Security-Policy "default-src 'self' https://fonts.gstatic.com/* ; frame-ancestors 'self'; font-src 'self' https://fonts.gstatic.com/* data: https://fonts.gstatic.com https://fonts.googleapis.com https://*.devexpress.com; script-src 'self' https://*.iotnxt.io  https://*.commander.io https://*.commander.dev ; style-src 'self' https://fonts.googleapis.com https://*.devexpress.com; img-src 'self' https://www.iotnxt.com https://*.commander.io https://*.commander.dev data: blob:; connect-src 'self' https://*.commander.io https://*.commander.dev  https://fonts.googleapis.com https://*.iotnxt.io wss://*.iotnxt.io; frame-src data: *; worker-src 'self' blob:";