Command Line Interface (CLI)
The MarbleRun CLI allows you to install MarbleRun on your cluster and interacts with the control plane through the Client API for all administrative tasks in the service mesh.
Reference
Usage:
marblerun [command]
Commands:
- install: Installs MarbleRun on a Kubernetes cluster
- uninstall: Remove MarbleRun from a Kubernetes cluster
- precheck: Check if your Kubernetes cluster supports SGX
- check: Check the status of MarbleRun's control plane
- manifest: Manages manifest for the MarbleRun Coordinator
- get: Get the manifest from the MarbleRun Coordinator
- log: Get the update log from the MarbleRun Coordinator
- set: Sets the manifest for the MarbleRun Coordinator
- signature: Prints the signature of a MarbleRun manifest
- update: Manage manifest updates for the MarbleRun Coordinator
- apply: Update the MarbleRun Coordinator with the specified manifest
- acknowledge: Acknowledge a pending update for the MarbleRun Coordinator (Enterprise feature)
- cancel: Cancel a pending manifest update for the MarbleRun Coordinator (Enterprise feature)
- get: View a pending manifest update (Enterprise feature)
- verify: Verify the signature of a MarbleRun manifest
- certificate: Retrieves the certificate of the MarbleRun Coordinator
- root: Returns the root certificate of the MarbleRun Coordinator
- intermediate: Returns the intermediate certificate of the MarbleRun Coordinator
- chain: Returns the certificate chain of the MarbleRun Coordinator
- secret: Manage secrets for the MarbleRun Coordinator
- status: Retrieve information about the status of the MarbleRun Coordinator
- recover: Recover the MarbleRun Coordinator from a sealed state
- package-info: Print the package signature properties of an enclave
- version: Display version of this CLI and (if running) the MarbleRun Coordinator
marblerun install
Installs MarbleRun on a Kubernetes cluster
Synopsis
Installs MarbleRun on a Kubernetes cluster
marblerun install [flags]
Examples
# Install MarbleRun in simulation mode
marblerun install --simulation
# Install MarbleRun using a custom PCCS
marblerun install --dcap-pccs-url https://pccs.example.com/sgx/certification/v4/ --dcap-secure-cert FALSE
Options
--client-server-port int Set the client server port. Needs to be configured to the same port as in your client tool stack (default 4433)
--dcap-pccs-url string Provisioning Certificate Caching Service (PCCS) server address. Defaults to Azure PCCS. (default "https://global.acccache.azure.net/sgx/certification/v4/")
--dcap-secure-cert string To accept insecure HTTPS certificate from the PCCS, set this option to FALSE (default "TRUE")
--disable-auto-injection Install MarbleRun without auto-injection webhook
--domain strings Sets additional DNS names and IPs for the Coordinator TLS certificate
--enterprise-access-token string Access token for Enterprise Coordinator. Leave empty for default installation
-h, --help help for install
--marblerun-chart-path string Path to MarbleRun helm chart
--mesh-server-port int Set the mesh server port. Needs to be configured to the same port as in the data-plane marbles (default 2001)
--resource-key string Resource providing SGX, different depending on used device plugin. Use this to set tolerations/resources if your device plugin is not supported by MarbleRun
--simulation Set MarbleRun to start in simulation mode
--version string Version of the Coordinator to install, latest by default
--wait Wait for MarbleRun installation to complete before returning
Options inherited from parent commands
--accepted-advisories strings Comma-separated list of user accepted Intel Security Advisories for SWHardeningNeeded TCB status. If empty, all advisories are accepted
--accepted-tcb-statuses strings Comma-separated list of user accepted TCB statuses (default [UpToDate,SWHardeningNeeded])
--coordinator-cert string Path to MarbleRun Coordinator's root certificate to use for TLS connections (default "$HOME/.config/marblerun/coordinator-cert.pem")
--era-config string Path to a remote-attestation config file in JSON format. If none is provided, the command attempts to use './coordinator-era.json'. If that does not exist, the command will attempt to load a matching config file from the MarbleRun GitHub repository
-i, --insecure Set to skip quote verification, needed when running in simulation mode
-n, --namespace string Kubernetes namespace of the MarbleRun installation (default "marblerun")
--nonce string (Optional) nonce to use for quote verification. If set, the Coordinator will generate a quote over sha256(CoordinatorCert + nonce)
--save-sgx-quote string If set, save the Coordinator's SGX quote to the specified file
marblerun uninstall
Remove MarbleRun from a Kubernetes cluster
Synopsis
Remove MarbleRun from a Kubernetes cluster
marblerun uninstall [flags]
Options
-h, --help help for uninstall
--wait Wait for the uninstallation to complete before returning
Options inherited from parent commands
--accepted-advisories strings Comma-separated list of user accepted Intel Security Advisories for SWHardeningNeeded TCB status. If empty, all advisories are accepted
--accepted-tcb-statuses strings Comma-separated list of user accepted TCB statuses (default [UpToDate,SWHardeningNeeded])
--coordinator-cert string Path to MarbleRun Coordinator's root certificate to use for TLS connections (default "$HOME/.config/marblerun/coordinator-cert.pem")
--era-config string Path to a remote-attestation config file in JSON format. If none is provided, the command attempts to use './coordinator-era.json'. If that does not exist, the command will attempt to load a matching config file from the MarbleRun GitHub repository
-i, --insecure Set to skip quote verification, needed when running in simulation mode
-n, --namespace string Kubernetes namespace of the MarbleRun installation (default "marblerun")
--nonce string (Optional) nonce to use for quote verification. If set, the Coordinator will generate a quote over sha256(CoordinatorCert + nonce)
--save-sgx-quote string If set, save the Coordinator's SGX quote to the specified file
marblerun precheck
Check if your Kubernetes cluster supports SGX
Synopsis
Check if your Kubernetes cluster supports SGX
marblerun precheck [flags]
Options
-h, --help help for precheck
Options inherited from parent commands
--accepted-advisories strings Comma-separated list of user accepted Intel Security Advisories for SWHardeningNeeded TCB status. If empty, all advisories are accepted
--accepted-tcb-statuses strings Comma-separated list of user accepted TCB statuses (default [UpToDate,SWHardeningNeeded])
--coordinator-cert string Path to MarbleRun Coordinator's root certificate to use for TLS connections (default "$HOME/.config/marblerun/coordinator-cert.pem")
--era-config string Path to a remote-attestation config file in JSON format. If none is provided, the command attempts to use './coordinator-era.json'. If that does not exist, the command will attempt to load a matching config file from the MarbleRun GitHub repository
-i, --insecure Set to skip quote verification, needed when running in simulation mode
-n, --namespace string Kubernetes namespace of the MarbleRun installation (default "marblerun")
--nonce string (Optional) nonce to use for quote verification. If set, the Coordinator will generate a quote over sha256(CoordinatorCert + nonce)
--save-sgx-quote string If set, save the Coordinator's SGX quote to the specified file
marblerun check
Check the status of MarbleRun's control plane
Synopsis
Check the status of MarbleRun's control plane
marblerun check [flags]
Options
-h, --help help for check
--timeout uint Time to wait before aborting in seconds (default 60)
Options inherited from parent commands
--accepted-advisories strings Comma-separated list of user accepted Intel Security Advisories for SWHardeningNeeded TCB status. If empty, all advisories are accepted
--accepted-tcb-statuses strings Comma-separated list of user accepted TCB statuses (default [UpToDate,SWHardeningNeeded])
--coordinator-cert string Path to MarbleRun Coordinator's root certificate to use for TLS connections (default "$HOME/.config/marblerun/coordinator-cert.pem")
--era-config string Path to a remote-attestation config file in JSON format. If none is provided, the command attempts to use './coordinator-era.json'. If that does not exist, the command will attempt to load a matching config file from the MarbleRun GitHub repository
-i, --insecure Set to skip quote verification, needed when running in simulation mode
-n, --namespace string Kubernetes namespace of the MarbleRun installation (default "marblerun")
--nonce string (Optional) nonce to use for quote verification. If set, the Coordinator will generate a quote over sha256(CoordinatorCert + nonce)
--save-sgx-quote string If set, save the Coordinator's SGX quote to the specified file
marblerun manifest
Manages manifest for the MarbleRun Coordinator
Synopsis
Manages manifests for the MarbleRun Coordinator. Used to either set the manifest, update an already set manifest, or return a signature of the currently set manifest to the user
Examples
manifest set manifest.json example.com:4433 [--era-config=config.json] [--insecure]
Options
-h, --help help for manifest
Options inherited from parent commands
--accepted-advisories strings Comma-separated list of user accepted Intel Security Advisories for SWHardeningNeeded TCB status. If empty, all advisories are accepted
--accepted-tcb-statuses strings Comma-separated list of user accepted TCB statuses (default [UpToDate,SWHardeningNeeded])
--coordinator-cert string Path to MarbleRun Coordinator's root certificate to use for TLS connections (default "$HOME/.config/marblerun/coordinator-cert.pem")
--era-config string Path to a remote-attestation config file in JSON format. If none is provided, the command attempts to use './coordinator-era.json'. If that does not exist, the command will attempt to load a matching config file from the MarbleRun GitHub repository
-i, --insecure Set to skip quote verification, needed when running in simulation mode
-n, --namespace string Kubernetes namespace of the MarbleRun installation (default "marblerun")
--nonce string (Optional) nonce to use for quote verification. If set, the Coordinator will generate a quote over sha256(CoordinatorCert + nonce)
--save-sgx-quote string If set, save the Coordinator's SGX quote to the specified file
marblerun manifest get
Get the manifest from the MarbleRun Coordinator
Synopsis
Get the manifest from the MarbleRun Coordinator. Optionally get the manifests signature or merge updates into the displayed manifest.
marblerun manifest get <IP:PORT> [flags]
Examples
marblerun manifest get $MARBLERUN -s --era-config=era.json
Options
-u, --display-update Set to merge updates into the displayed manifest
-h, --help help for get
--keep-cert Set to keep the certificate of the Coordinator and save it to the location specified by --coordinator-cert
-o, --output string Save output to file instead of printing to stdout
-s, --signature Set to additionally display the manifests signature
Options inherited from parent commands
--accepted-advisories strings Comma-separated list of user accepted Intel Security Advisories for SWHardeningNeeded TCB status. If empty, all advisories are accepted
--accepted-tcb-statuses strings Comma-separated list of user accepted TCB statuses (default [UpToDate,SWHardeningNeeded])
--coordinator-cert string Path to MarbleRun Coordinator's root certificate to use for TLS connections (default "$HOME/.config/marblerun/coordinator-cert.pem")
--era-config string Path to a remote-attestation config file in JSON format. If none is provided, the command attempts to use './coordinator-era.json'. If that does not exist, the command will attempt to load a matching config file from the MarbleRun GitHub repository
-i, --insecure Set to skip quote verification, needed when running in simulation mode
-n, --namespace string Kubernetes namespace of the MarbleRun installation (default "marblerun")
--nonce string (Optional) nonce to use for quote verification. If set, the Coordinator will generate a quote over sha256(CoordinatorCert + nonce)
--save-sgx-quote string If set, save the Coordinator's SGX quote to the specified file
marblerun manifest log
Get the update log from the MarbleRun Coordinator
Synopsis
Get the update log from the MarbleRun Coordinator. The log is list of all successful changes to the Coordinator, including a timestamp and user performing the operation.
marblerun manifest log <IP:PORT> [flags]
Examples
marblerun manifest log $MARBLERUN
Options
-h, --help help for log
-o, --output string Save log to file instead of printing to stdout
Options inherited from parent commands
--accepted-advisories strings Comma-separated list of user accepted Intel Security Advisories for SWHardeningNeeded TCB status. If empty, all advisories are accepted
--accepted-tcb-statuses strings Comma-separated list of user accepted TCB statuses (default [UpToDate,SWHardeningNeeded])
--coordinator-cert string Path to MarbleRun Coordinator's root certificate to use for TLS connections (default "$HOME/.config/marblerun/coordinator-cert.pem")
--era-config string Path to a remote-attestation config file in JSON format. If none is provided, the command attempts to use './coordinator-era.json'. If that does not exist, the command will attempt to load a matching config file from the MarbleRun GitHub repository
-i, --insecure Set to skip quote verification, needed when running in simulation mode
-n, --namespace string Kubernetes namespace of the MarbleRun installation (default "marblerun")
--nonce string (Optional) nonce to use for quote verification. If set, the Coordinator will generate a quote over sha256(CoordinatorCert + nonce)
--save-sgx-quote string If set, save the Coordinator's SGX quote to the specified file
marblerun manifest set
Sets the manifest for the MarbleRun Coordinator
Synopsis
Sets the manifest for the MarbleRun Coordinator
marblerun manifest set <manifest.json> <IP:PORT> [flags]
Examples
marblerun manifest set manifest.json $MARBLERUN --recovery-data=recovery-secret.json --era-config=era.json
Options
-h, --help help for set
-r, --recoverydata string File to write recovery data to, print to stdout if non specified
Options inherited from parent commands
--accepted-advisories strings Comma-separated list of user accepted Intel Security Advisories for SWHardeningNeeded TCB status. If empty, all advisories are accepted
--accepted-tcb-statuses strings Comma-separated list of user accepted TCB statuses (default [UpToDate,SWHardeningNeeded])
--coordinator-cert string Path to MarbleRun Coordinator's root certificate to use for TLS connections (default "$HOME/.config/marblerun/coordinator-cert.pem")
--era-config string Path to a remote-attestation config file in JSON format. If none is provided, the command attempts to use './coordinator-era.json'. If that does not exist, the command will attempt to load a matching config file from the MarbleRun GitHub repository
-i, --insecure Set to skip quote verification, needed when running in simulation mode
-n, --namespace string Kubernetes namespace of the MarbleRun installation (default "marblerun")
--nonce string (Optional) nonce to use for quote verification. If set, the Coordinator will generate a quote over sha256(CoordinatorCert + nonce)
--save-sgx-quote string If set, save the Coordinator's SGX quote to the specified file
marblerun manifest signature
Prints the signature of a MarbleRun manifest
Synopsis
Prints the signature of a MarbleRun manifest
marblerun manifest signature <manifest.json> [flags]
Options
-h, --help help for signature
Options inherited from parent commands
--accepted-advisories strings Comma-separated list of user accepted Intel Security Advisories for SWHardeningNeeded TCB status. If empty, all advisories are accepted
--accepted-tcb-statuses strings Comma-separated list of user accepted TCB statuses (default [UpToDate,SWHardeningNeeded])
--coordinator-cert string Path to MarbleRun Coordinator's root certificate to use for TLS connections (default "$HOME/.config/marblerun/coordinator-cert.pem")
--era-config string Path to a remote-attestation config file in JSON format. If none is provided, the command attempts to use './coordinator-era.json'. If that does not exist, the command will attempt to load a matching config file from the MarbleRun GitHub repository
-i, --insecure Set to skip quote verification, needed when running in simulation mode
-n, --namespace string Kubernetes namespace of the MarbleRun installation (default "marblerun")
--nonce string (Optional) nonce to use for quote verification. If set, the Coordinator will generate a quote over sha256(CoordinatorCert + nonce)
--save-sgx-quote string If set, save the Coordinator's SGX quote to the specified file
marblerun manifest update
Manage manifest updates for the MarbleRun Coordinator