TCA Node Pool stuck in provisioning state due to sysctl syntax error "Line is not an assignment"
search cancel

TCA Node Pool stuck in provisioning state due to sysctl syntax error "Line is not an assignment"

book

Article ID: 430211

calendar_today

Updated On:

Products

VMware Telco Cloud Automation

Issue/Introduction

  • In TCA, cluster node pools may become stuck in a Provisioning or SchedulingDisabled state during the OS Customization phase.
  • Nodes remain in SchedulingDisabled or Provisioning indefinitely.
  • Base64 encoded logs in the nodeconfig status show: Line is not an assignment for file /etc/sysctl.d/91-custom.conf.
  • systemd-sysctl.service fails to start on the worker node with exit status 1.

Environment

TCA 3.2

TCP 5.0

Cause

The root cause is an incorrectly defined Cloud Service Archive (CSAR) or Nodepool Customization template. A Tuned profile (containing INI-style headers like [main] and [modules]) is being injected directly into /etc/sysctl.d/91-custom.conf. Standard sysctl parsers do not recognize these headers and fail to process the file.

Resolution

Workaround 1: Update CSAR and Re-deploy (Recommended)

This method addresses the root cause within the NF package to ensure future deployments are consistent.

  1. Extract the affected CSAR file.

  2. Locate the file mapping for /etc/sysctl.d/91-custom.conf.

  3. Modify the CSAR to ensure that the content being pushed to /etc/sysctl.d/ contains only valid key=value pairs.

    • Incorrect path/content: Pointing a Tuned profile directly to /etc/sysctl.d/.

    • Correct path: If using Tuned, the file should be placed in the appropriate Tuned profile directory (e.g., Artifacts/scripts/91-custom.conf or a custom Tuned path) and activated via the Tuned daemon.

  4. If the file must remain in /etc/sysctl.d/91-custom.conf, strip all headers. The content should look like this:

    Plaintext
     
    net.core.rmem_max=8388608
    net.core.wmem_max=8388608
    vm.max_map_count=262144
    
  5. Repackage the CSAR, update the Catalog, and upgrade the Network Function (NF).

Workaround 2: Manual TCA UI Customization

If the CSAR cannot be immediately updated, modify the Nodepool Customization in the TCA UI:

  1. Navigate to the TCA UI > Nodepool Customization.

  2. Edit the sysctl injection configuration for the affected pool.

  3. Remove INI-style headers: Delete [main], [modules], and [sysctl].

  4. Remove Tuned directives: Delete lines such as summary=... and nf_conntrack_proto_gre=... that are not standard kernel parameters.

  5. Save and re-apply the customization to the node pool.

Additional Information

The systemd-sysctl utility expects a simple configuration file. Placing a Tuned profile in /etc/sysctl.d/ causes a syntax error because the parser encounters the [ character, which is invalid in that context.