Phase 2: Core Services
Phase 2: Core Services
This phase installs the NVCF control plane services. These services depend on the infrastructure components installed in standalone-infrastructure.
All three infrastructure dependencies (NATS, OpenBao, Cassandra) must be running and healthy before proceeding. Verify with:
Install the services in the order shown below. Services with dependencies are noted — wait for the dependency to be healthy before installing the dependent service.
API Keys
API Keys provides authentication token management for all NVCF API interactions.
Configuration
Create api-keys-values.yaml (download template):
api-keys-values.yaml
Replace <REGISTRY> and <REPOSITORY> with your registry settings.
Install
Verify
SIS
The Spot Instance Service (SIS) handles cluster registration and GPU resource management.
Configuration
Create sis-values.yaml (download template):
sis-values.yaml
Install
Verify
ESS API
The ESS (Enterprise Secrets Service) API distributes secrets to NVCF services via OpenBao.
Configuration
Create ess-api-values.yaml (download template):
ess-api-values.yaml
Install
Verify
NVCF API
The NVCF API is the primary control plane service. It manages functions, deployments, and account configuration. The API chart includes an account bootstrap job that runs on first install to initialize the NVCF account with registry credentials.
The ESS API must be running before installing the NVCF API. The account bootstrap job communicates with ESS during initialization.
Configuration
Create nvcf-api-values.yaml (download template):
nvcf-api-values.yaml
Replace the following placeholders:
Install
Monitor for account bootstrap failures. Open a separate terminal and watch events:
The account bootstrap job is the most common failure point (usually due to misconfigured registry credentials in the values file).
Verify
Check the bootstrap job completed:
The bootstrap job auto-deletes after approximately 5 minutes. Monitor events in real-time to catch failures.
Troubleshooting
-
Bootstrap job fails: Check the job logs:
-
Registry credential errors: Verify your
<REGISTRY_CREDENTIAL_B64>value is correct. The base64-encoded credential should decode tousername:passwordformat. -
Recovering from bootstrap failure: Uninstall the API chart, fix the values, and reinstall:
Invocation Service
The Invocation Service handles function invocation requests and routes them to worker nodes.
Configuration
Create invocation-service-values.yaml (download template):
invocation-service-values.yaml
Install
Verify
gRPC Proxy
The gRPC Proxy enables streaming workloads over gRPC connections.
Configuration
Create grpc-proxy-values.yaml (download template):
grpc-proxy-values.yaml
Install
Verify
Notary Service
The Notary Service handles request signing and validation for secure inter-service communication.
Configuration
Create notary-service-values.yaml (download template):
notary-service-values.yaml
Install
Verify
Reval
Reval renders Helm chart functions without requiring direct cluster access. It is
installed in the nvcf namespace with the helm-reval chart.
Configuration
Create reval-values.yaml (download template):
reval-values.yaml
Replace <REGISTRY> and <REPOSITORY> with your registry settings.
Install
Verify
Admin Token Issuer Proxy
The Admin Token Issuer Proxy provides an admin endpoint for generating API keys without requiring pre-existing credentials. It is used for initial setup and emergency access.
Configuration
Create admin-issuer-proxy-values.yaml (download template):
admin-issuer-proxy-values.yaml
The gateway setting is false during this phase because the Gateway API CRDs and
Gateway resource are not yet installed. The admin endpoint HTTPRoute will be created in
standalone-gateway when the Gateway Routes chart is deployed.
Install
Verify
Verify All Core Services
Before proceeding to gateway configuration, confirm all core services are healthy:
All pods should be in Running state. Verify helm releases:
If any pod is stuck in CrashLoopBackOff, check its logs with
kubectl logs <pod-name> -n <namespace> --tail=100. Common causes include
misconfigured secrets or unreachable infrastructure services.
Next Steps
Once all core services are running, proceed to standalone-gateway to configure ingress and verify end-to-end API connectivity.