Deploying SAS Viya's open-source integrations in environments with no internet access, commonly called dark sites or air-gapped environments, presents unique operational and security considerations and specific task.
SAS Viya 2024.11 introduced important enhancements to the SAS Configurator for Open Source that make it simpler and more reliable to provision Python runtimes and packages in offline clusters.
SAS Viya 2025.08 further reduced friction by leveraging the platform truststore for jobs.
This post explains the recent Configurator enhancements and why they matter, presents a Kubernetes-native reference architecture for delivering Python runtimes and package indexes into air-gapped clusters, outlines practical steps to prepare and validate signed Python tarballs and wheelhouses, and provides a short checklist and operational tips to keep offline Python integrations secure, repeatable, and easy to maintain.
Modern analytics workflows depend on Python and its package ecosystem. Internet-connected environments, pip installs and runtime provisioning are routine. In dark-site deployments you must explicitly provide:
The SAS Configurator for Open Source now gives explicit parameters to point at these internal resources, making offline deployments repeatable, auditable, and secure.
Security can also be a concern: internal package repositories and wheelhouses are commonly scanned by vulnerability scanners (SCA tools) that check for known CVEs and insecure dependencies, so artifact provenance, signature verification and controlled updates are critical.
The SAS Configurator for Open Source adds parameters that let administrators direct pip and Python operations to internal mirrors:
For air-gapped deployments, these SAS Configurator for Open Source parameters are mandatory:
The tarball and signature must be reachable from the cluster. The pip index must expose the standard /simple endpoint that pip uses.
The SAS Configurator for Open Source now reuses the SAS Viya platform truststore for jobs configuring Python and R. In practical terms:
This centralizes certificate management and reduces operational overhead.
There is no one-size-fits-all architecture for delivering Python runtimes and packages into air-gapped environments. Below are common patterns you can choose from depending on your organization's constraints and existing tooling.
The core requirement across all options is that the Python tarball, signatures, and wheel files are served over HTTP(S) from a trusted, reachable endpoint and that the package index exposes a PEP 503 /simple index.
| Option | Description | Pros | Cons |
| Enterprise artifact repository | Use Nexus, Artifactory, Harbor or equivalent. These products provide proxying, mirroring, access control and storage lifecycle features. They can host raw files (Python tarballs and signatures) and expose a PEP 503-compatible PyPI proxy or hosted repository for wheels. | Robust enterprise features; familiar to many operations teams; fine-grained access control and auditing. | |
| Internal HTTP server + static wheelstore | Serve static tarballs and wheels from an internal HTTP server (NGINX, Apache, or an object store with an HTTP gateway). For PyPI-style indexes you can either run a lightweight index server (pypiserver, simpleindex) or generate a static /simple directory structure that pip understands. | Simple to operate; minimal components; easy to audit and version. | |
| Combined mirror in-cluster (Kubernetes-native) | Place artifacts inside the cluster (for example an HTTP server and index running as Deployments/Services with PVCs) to simplify network policies and make endpoints reachable without external routing. | Network locality; reduced external dependencies. | Requires cluster resources and backup/restore processes for artifacts. |
| Hybrid model with secure transfer | Maintain canonical artifacts in a secure, internet-connected environment, then transfer them into the air-gapped environment using secure CI/CD pipelines, signed artifact bundles, or removable media. Validate signatures after transfer. | Separates internet-facing caching from the air-gapped runtime; good for high-security environments. |
Prefer enterprise artifact repositories where available. If you must run lightweight services, ensure they are regularly backed up and accessible from sas-pyconfig and job pods. For the highest security posture, combine artifact signing, immutable paths and audited transfer procedures.
The following generic guidance applies across environments:
Secure access and certificates. If using HTTPS, add any internal CAs to the Viya platform truststore (Viya 2025.08+ lets SAS Configurator for Open Source jobs reuse this truststore).
Version and immutability. Use versioned filenames or content-addressed artifact paths to make rollbacks and audits straightforward.
Validate from the platform. Before executing a large SAS Configurator for Open Source run, exec into a staging sas-pyconfig pod (or equivalent job) and verify:
Automate transfers. Use CI/CD pipelines, signed bundles, or approved operator procedures to move artifacts into the air-gapped environment rather than ad-hoc manual copy operations.
This more generic approach makes the guidance applicable whether you choose Nexus, a static HTTP server, an in-cluster mirror, or a hybrid transfer model.
Select any image to see a larger version.
Mobile users: To view the images, select the "Full" version at the bottom of the page.
Set SAS Configurator for Open Source config keys to point to internal resources:
Always confirm each URL is reachable from the sas-pyconfig pod before running a large-scale job.
A clean run typically shows:
Look for condensed, positive log lines such as:
Using pip-index-url http://pypi…/simple for remote pip calls
Python tarball curl success
Pip package install success
If you see repeated 404/403 on /simple or TLS certificate validation errors, check index correctness, HTTP paths and certificate trust.
These Configurator improvements make offline Python integration feel straightforward and empowering. Signed tarballs, explicit pip index parameters, and reuse of the Viya truststore let teams deliver reliable, auditable Python runtimes into locked‑down clusters. Pick the artifact delivery pattern that fits your ops model and automate the rest. The result: faster, safer deployments and more time for analytics, not plumbing.
Useful references for configuring offline Python integrations and PEP 503-compatible package indexes:
One related deployment pattern is the mirror registry approach for SAS Viya, which mirrors container images and operator artifacts into an internal registry so air-gapped clusters can pull everything locally, this complements the Python artifact strategies described above. For a hands‑on course that covers these concepts, see Deploying SAS Viya from a Mirrored Registry available on learn.sas.com.
Find more articles from SAS Global Enablement and Learning here.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
The rapid growth of AI technologies is driving an AI skills gap and demand for AI talent. Ready to grow your AI literacy? SAS offers free ways to get started for beginners, business leaders, and analytics professionals of all skill levels. Your future self will thank you.