Configuration settings for full offline mode in RCC 16.5?
Dear team, We're using RCC v16.5. Exported the holotree and wdm from an environment where full internet access is there. Then imported those into an environment where pubic website access is restricted. Setting the following envrionment variables in robot.yaml and also setting --no-build in "rcc run task" command.
PIP_DISABLE_PIP_VERSION_CHECK="1" PIP_NO_INDEX="1" RCC_DISABLE_TELEMETRY="1" RCC_NO_BUILD="1" RCC_OFFLINE="true" RCC_TELEMETRY="false" ROBOCORP_HOME="/home/opc/.orpa/.robot_runtime" WDM_CACHE="/home/opc/.orpa/.robot_runtime/home/webdrivers/.wdm" WDM_OFFLINE="true"
Still the external website calls are being made to cloudfare CDNs and the process gets stuck in SYS_SENT. Please advice how to stick to pure offline mode? Thanks
Hey @gotoshekar - sorry you didn't get a response. I maintain a community fork of RCC and can help.
Those Cloudflare calls are likely OCSP certificate revocation checks from the TLS stack, not RCC itself. Here's how to fix it:
Step 1: Grab a build from my fork (optional)
My fork has telemetry disabled by default: github.com/joshyorko/rcc/releases
Download the binary for your platform from the release assets.
Step 2: Generate a settings template
rcc configure settings --defaults > settings.yaml
Step 3: Edit settings.yaml
certificates:
verify-ssl: true
ssl-no-revoke: true # <-- This disables OCSP checks (the Cloudflare calls)
options:
no-build: true
endpoints:
telemetry: # empty = disabled
issues: # empty = disabled
downloads: # empty = disabled
pypi: # empty = disabled
conda: # empty = disabled
Step 4: Create a profile and activate it
# Create profile file (profile_offline.yaml)
cat > profile_offline.yaml << 'EOF'
name: offline
description: "Fully offline profile"
settings:
certificates:
verify-ssl: true
ssl-no-revoke: true
options:
no-build: true
endpoints:
telemetry: ""
issues: ""
EOF
# Import and immediately activate
rcc configure import --filename profile_offline.yaml --switch
Or just manually copy settings.yaml to $ROBOCORP_HOME/settings.yaml.
Step 5: Set environment variables BEFORE running rcc
Your env vars in robot.yaml only apply inside the robot environment - they run too late. Set these in your shell first:
export RCC_ENDPOINT_TELEMETRY=""
export RCC_ENDPOINT_DOWNLOADS=""
export RCC_ENDPOINT_PYPI=""
export RCC_ENDPOINT_CONDA=""
What's probably causing your Cloudflare calls:
-
OCSP checks - Certificate revocation checks (fix:
ssl-no-revoke: true) -
webdriver-manager - Even with
WDM_OFFLINE=true, it may still try to phone home. Pre-download drivers or pin versions. -
pip metadata - Despite
PIP_NO_INDEX, pip can still make calls. Verify your holotree has everything cached.
Debug it
# Watch network connections during rcc execution
strace -e trace=network -f rcc run task 2>&1 | grep connect
Verify your holotree
rcc holotree catalogs
rcc holotree list
If those show your environment, --no-build should work without network.
Happy to help troubleshoot further - just ping me here or open an issue on my fork.