Sample values.yaml file for LWM2M deployment

The following is a sample override values.yaml file for LWM2M.

pullPolicy: ${docker.pullPolicy}
# replicas is the replication count
rbac_enabled: true

replicas: 1

#nodeSelector is the optional node selector (key value pairs)
nodeSelector:

# lwm2mTag is the LWM2M image tag. Defaults to chart.AppVersion
# lwm2mTag:

# lwm2mResources contains resource limits for LWM2M image
lwm2mResources:
  limits:
    memory: "2Gi"
  requests:
    memory: "1024Mi"
logLevel: "INFO"
javaOpts: ""

persistence:
    fwimage:
        ## this enables PVC templates that will create one per pod
        enabled: false

        ## Persistent Volume Claim name which will be used during creation
        pvcname: lwm2m-firmware

        ## fwimage directory Persistent Volume Storage Class
        ## it should be a storage class which provides ReadWriteMany accessMode (eg. glusterfs storage class )
        ## the bounded persistent volume will be shared between all containers in order to have a shared firmware immages storage.
        ## If defined, storageClassName: <storageClass>
        ## If set to "-", storageClassName: "", which disables dynamic provisioning
        ## If undefined (the default) or set to null, no storageClassName spec is
        ##   set, choosing the default provisioner.
        ##
        # storageClass: "-"
        # storageClass: "glusterfs-storageclass"
        storageClass: "-"
        accessMode: ReadWriteMany
        # the requested size of the mounted volume
        size: 5Gi

config:
    cert:
      keyFile: ""
      # scef truststore path location
      scefTrustStorePath: "t8public.jks"
    lwm2m:
      LWM2M_NO_SEC_REG_URL: "127.0.0.1:5683"
      LWM2M_PSK_REG_URL: "127.0.0.1:5684"
      #LWM2M_SERVER_CERT_PATH: /appl/config/certs/server.p12
      #LWM2M_SERVER_CERT_PASS: d1slDKY4B3TaSzXqYlGjxw==
      #LWM2M_SERVER_CERT_PRIV_KEY_PASS: d1slDKY4B3TaSzXqYlGjxw==
      UQ_CMD_EXPIRY_IN_MINS: 1440
      LWM2M_OBJECT_DEFINITIONS_DIR: /appl/config/models
      AGENTSERVER_EXCHANGE: "agentserver"
      LIFECYCLE_KEY: "lifecycle"
      OBSERVATION_KEY: "observation"
      RESPONSES_KEY: "response"
      FAULT_KEY: "fault"

      FIRMWARE_EXPIRY_IN_HRS: 24
      FIRMWARE_POLLING_INTERVAL_IN_SEC: 1
      FIRMWARE_POLLING_COUNT: 3
      LWM2M_BOOTSTRAP_DISABLE_TIMEOUT: 86400
      THREAD_POOL_SIZE: 10
      DTLS_THREAD_POOL_SIZE: 50
      SCRIPT_THREAD_POOL_SIZE_MIN: 50
      SCRIPT_THREAD_POOL_SIZE_MAX: 400
      FW_IMAGE_CACHE_CONCURRENCY_LEVEL: 10
      FW_IMAGE_CACHE_EXPIRATION_AFTER_ACCESS: 10
      FW_IMAGE_CACHE_EXPIRATION_AFTER_WRITE: 10
      FW_IMAGE_CACHE_MAXIMUM_SIZE: 10
      #Below value should be in the format {lwm2m-pod-name}.{lwm2m-service-name}.{namespace-name}.svc.cluster.local
      LWM2M_MASTER_HOST: lwm2m-controller-0.lwm2m-service.default.svc.cluster.local
      LWM2M_REGISTRATION_URI: "coaps://127.0.0.1:5684"
      LWM2M_BOOTSTRAP_SESSION_EXPIRATION_IN_MINS: 1440
      LWM2M_KICK_INSTANCE: 1
      LWM2M_CLIENT_ACTIVE_DURATION: 0
      LWM2M_LEGACY_BOOTSTRAP_INTERFACE_DTLS_PORT: 0
      LWM2M_LEGACY_BOOTSTRAP_INTERFACE_SETUP_IDENTITY: "identity"
      MAX_RESPONSE_TIME_IN_SECS: 180
      #SCEF_SERVER_URL: "https://10.75.172.8:9443"
      SCEF_SERVER_URL: "http://10.75.172.8:8080"
      SCEF_SCS_ID: "lwm2mScs"
      #SCEF_SCS_ID: "ramScs"
      SCEF_CALLBACK_PUBLIC_URL: "http://100.69.10.248:30666/callback"
      # user name used for T8 basic auth
      SCEF_USER_NAME: "nidduser"
      # user password used for T8 basic auth
      SCEF_USER_PASSWORD: "nidduser"
      # scef trust store path if T8 backend uses https
      SCEF_TRUST_STORE_PATH: "/appl/config/certs/sceftrust.jks"
      # scef trust store password
      SCEF_TRUST_STORE_PASSWORD: "testt8"
      #SCEF_TRUST_STORE_PASSWORD: "agtest"
      LWM2M_API_URL: "http://lwm2m-api:7777/"
      TRM_CONFIGURATION_DIR: /appl/config/trm
      NON_IP_TRANSPORT: "SGI"

      #SUBSCRIBER_REPO_URL: "http://impactsubscrepo:9095"
      #SUBSCRIBER_REPO_USER: "admin"
      #SUBSCRIBER_REPO_PASS: "Admin123!"

      CDP_URL: "http://cdp:8080"
      CDP_USER: "superadmin"
      CDP_PASS: "superadmin"
      # This property to be enabled for NOSEC Authentication for host ports 31234 and 30999,this is not required for SCEF/SGI flows
      ENABLE_SUBSCRIBER_REPO: false
      # This property is for the default type of Firmware Delivery Method, when it cannot be determined automatically.
      # Specify integer value. Values mappings:  0 - Pull, 1 - Push
      FW_DELIVERY_METHOD: 1
      # This property is for the default type of Firmware Delivery Protocol, when it cannot be determined automatically.
      # Specify integer value. Values mappings: 0 - CoAP, 1 - CoAPS, 2 - HTTP, 3 - HTTPS
      FW_UPDATE_PROTOCOL: 3
# Reject commands if registration is expired by server
      REJECT_EXPIRED_ENDPOINTS: false
# californium properties
    californium:
      coap:
        ACK_TIMEOUT: 2000
        ACK_RANDOM_FACTOR: 1.5
        ACK_TIMEOUT_SCALE: 2.0
        MAX_RETRANSMIT: 4
        NSTART: 1
        PROBING_RATE: 1.0
        EXCHANGE_LIFETIME: 247000
        NON_LIFETIME: 145000
        MAX_TRANSMIT_WAIT: 93000
        PREFERRED_BLOCK_SIZE: 512
        MAX_MESSAGE_SIZE: 1024
        BLOCKWISE_STATUS_LIFETIME: 300000
        MAX_RESOURCE_BODY_SIZE: 8192
        PROTOCOL_STAGE_THREAD_COUNT: 10
redis:
      #REDIS_DB_HOST: "crdb-crdb-redisio:6379"
      #REDIS_DB_PASSWORD: "password"
      #REDIS_SENTINEL_HOSTS:
      #REDIS_MASTER_NAME:
      #REDIS_MAX_TOTAL: 15
      #REDIS_MAX_IDLE: 15

    usage:
      USAGE_CONTROL_ENABLE: false
      enterpriseBilling:false
#Redis configuration for usage
      #REDIS_MASTER_USAGE_CONTROL: reddis
      #REDIS_PASSWORD_USAGE_CONTROL: password
      #REDIS_SENTINEL_USAGE_CONTROL: reddis-sentinel:26379

nodePort:
    nosec: 30683
    dtls: 30684
    tcp: 30685
    tls: 30686
    legacyBootstrap: 30784
    lwm2mscefcb: 30666

hostPort:
  noSecBS: 31234
  nosecRd: 30999

cassandra:
    # cassandraUser is the username of Cassandra.
    username: "impact"
    # cassandraPassword is the password of Cassandra.
    password: "impact123"
    # cassandraGatewayKeyspace is the Cassandra keyspace to use.
    keyspace: "lwm2m"
    # cassandra.dropKeyspace When true, keyspace will be dropped before creation/upgrade. Do not use in production
    dropKeyspace: "false"
    CAS_KEYSPACE_REPLICATION: "{ 'class' : 'SimpleStrategy', 'replication_factor': 1 }"
global:
  registry: ${docker.registry}
  # broker properties
  broker:
    # brokerHosts is the RMQ hosts and ports.
    hosts: "rabbitmq:5672"
    # brokerUsername is the username of RMQ
    username: "impact"
    # brokerPassword is the password of RMQ. Mandatory value to set externally.
    password: "impact123"
    # brokerVirtualHost is the vhost of RMQ
    virtualHost: "/"
# cassandra properties
  cassandra:
    # cassandraHosts is the cassandra host and port.
    hosts: "cassandra:9042"
    # adminUsername is the name of the cassandra admin user, used to create dedicated keyspace/user. If not specified, dedicated user/keyspace is supposed to be created upfront
    adminUsername: null
    # adminPassword is the name of the cassandra admin password
    adminPassword: null
Note: Reclaiming the PV when re-installing IMPACT DM and LWM2M

While re-installing IMPACT DM, NFS Persistent Volume has to be reclaimed manually.

  1. Execute the command:
    kubectl edit <pv_name>
  2. Remove the section claimRef.
  3. Save the changes and check if the CLAIM status in kubectl get pv is AVAILABLE.
    Note: Delete all the PVCs before reclaim.
Note: The values given in the above sample file are only for illustration purpose. Nokia recommends to modify these values based on your deployment.