This page holds an overview of the source repositories that make up Triton DataCenter. See also the reference.
The customer-facing self-service API:
- sdc-cloudapi: SDC Public HTTP API
The user interface and CLI tools for administering the system:
- sdc-adminui: Operations UI for SDC
- sdc-sdc: Contains all the tools that go into the 'sdc' zone.
- sdcadm: A tool for SDC upgrades, health and sanity checks, and possibly other SDC setup duties
- sdc-imgapi-cli: SDC CLI client for working with an IMGAPI repository
- sdc-amonadm: SDC monitoring configuration tool
Cloudapi and the administrative tools call out to the internal REST APIs to manage the system:
- sdc-amon: SDC internal API and agents for monitoring and alarming
- sdc-cloud-analytics: SDC internal API for gathering real-time metrics across the datacenter
- sdc-cnapi: SDC Compute Node API -- deals with communication to and management of compute nodes
- sdc-fwapi: SmartDataCenter Firewall API
- sdc-imgapi: SDC internal API for managing Images
- sdc-napi: SmartDataCenter Network API: manages networking-related data
- sdc-papi: SDC Packages API, an HTTP interface topackages used for creating new VMs
- sdc-sapi: SDC Services API. It coordinates the configuration and deployment of SDC services.
- sdc-vmapi: SDC internal API for managing VMs
- sdc-workflow: SDC installer for Workflow API and Runners
The data storage layer is used to provide HA storage to the APIs and other services:
- moray: Moray, the highly-available key/value store (Joyent SDC, Manta)
- sdc-ufds: SDC LDAP Server
- manatee: Automated fault monitoring and leader-election system for strongly-consistent, highly-available writes to PostgreSQL
Infrastructure zones (VM instances) provide other essential services:
- sdc-amonredis: SDC "amonredis" core zone.
- sdc-assets: Static file service for SDC CNs.
- binder: SDC/Manta DNS server over Apache Zookeeper
- sdc-booter: SmartDataCenter Compute Node DHCP and TFTP server
- sdc-manatee: SDC HA Postgres
- sdc-manta: SDC tools for deploying and managing a Manta
- mahi: Authentication cache
- sdc-rabbitmq: RabbitMQ zone for SDC.
- sdc-redis: SDC "redis" core zone.
- muppet: Loadbalancer for Manta and SmartDataCenter
- zookeeper-common: Common submodule of the sdc-zookeeper (deprecated) and binder zones, to reduce drift in ZK
- keyapi: SmartDataCenter token API
Agents are services that run in the Global Zone of a Compute Node for management or monitoring purposes:
- sdc-amon: SDC internal API and agents for monitoring and alarming
- sdc-agents-installer: Scripts to create self-extracting agents executables
- sdc-agents-core: Core package to boostrap agents installation
- sdc-provisioner-agent: SDC provisioner agent; executes tasks on compute nodes
- sdc-hagfish-watcher: SDC instance usage telemetry agent
- sdc-heartbeater-agent: Emits periodic compute node status to AMQP
- sdc-cn-agent: SDC Compute Node agent; monitors and reports cn-usage, executes tasks
- sdc-net-agent: SDC agent for the internal Networking API
- sdc-vm-agent: SDC agent for the internal VMs API
- sdc-smart-login: SDC component that enable SSHd on VMs to resolve public keys
- sdc-firewaller-agent: SmartDataCenter Firewall Agent: syncs firewall rules and related VM data to Compute Nodes
- sdc-cloud-analytics: SDC internal API for gathering real-time metrics across the datacenter
- sdc-ur-agent: SDC compute node bootstrapping agent
There are also agents that run in each SDC service zone:
- sdc-config-agent: SDC configuration agent
- registrar: On-zone DNS registration agent (see also: binder)
Service clients are node client APIs for communicating with services:
- node-sdc-clients: Node.js Clients for SmartDataCenter Services
- node-manatee: Manatee client
- node-urclient: client library for speaking with ur-agent
- node-moray: NodeJS Client for Moray
- node-ufds: Node.js API for UFDS
- sdc-wf-client: Client for the SDC Workflow API
SmartOS repos are used by the SmartOS project to build the OS image, and form the foundation for SDC:
- smartos-live: For more information, please see http://smartos.org/ For any questions that aren't answered there, please join the SmartOS discussion list: http://smartos.org/smartos-mailing-list/
- illumos-kvm: KVM driver for illumos
- illumos-kvm-cmd: qemu-kvm for illumos-kvm
- mdata-client: Cross-platform metadata client tools for use in SDC guests (both Zones and KVM)
- sdc-platform: SDC-specific platform components
- smartos-overlay: Overlay directory specific to open-source SmartOS
- illumos-joyent: Community developed and maintained version of the OS/Net consolidation
- illumos-extra: Extra non-ON software required for Illumos
Build tools are used for creating the zone images:
- sdcnode: Tools for creation of prebuilt node tarballs for SDC components.
- sdc-headnode: Repository for building headnode images for SDC, and the intial setup and configuration of the headnode itself
- sdc-scripts: Common scripts for configuring and setting up SDC zones.
- ipxe: SDC iPXE implementation
There are also services responsible for syncing data between datacenters or to manta:
- sdc-hermes: Centralised tool to upload SDC logs to Manta
Documentation repos:
- sdc: starting point for SmartDataCenter
- eng: Joyent Engineering Guide
- restdown-brand-remora: "remora" restdown brand/style for coherent API documentation
- oid-docs: Document the Joyent OID tree (1.3.6.1.4.1.38678)
- schemas: Schemas used by Joyent APIs, tools, and databases
The other repos are used by one of the other repos above:
- convertvm: convert OVF vm packages to smartos compatible images
- sdc-system-tests: SDC system tests
- node-timeseries-heatmap: Time series heatmaps for node.js
- node-png-joyent: An ancient branch of node-png
- node-amqp-joyent: An ancient branch of node-amqp
- node-imgmanifest: Node.js library for working with SmartOS image manifests
- sdc-fast-stream: Stream event messages via node-fast.
- sdc-fwrule: SmartDataCenter firewall rule parser and object.
- aperture-config: Common aperture config for SDC/Manta
- node-workflow-moray-backend: A backend for node-workflow built over Moray
- sdc-securetoken: Library to securely pass data publicly between services.
- node-tracker: Node.js library list vm details, watch for status changes
- node-zfs: Node.js library to interface with ZFS utilities
- sdc-designation: Compute node designation library
- sdc-wf-shared: SmartDataCenter workflow shared code.
- cloud-tycoon: DC simulation package
- node-triton-netconfig: A module to help manage the network configuration of a trition datacenter