From 6e5af30036363c767e18f51439404e7f986fcdec Mon Sep 17 00:00:00 2001 From: Daniel Hiltgen Date: Wed, 22 Jul 2015 14:06:34 -0700 Subject: [PATCH] Revamp install flow based on conatiner --- certs.png | Bin 0 -> 105220 bytes certs.svg | 428 ++++++++++++++++++++++++++++++++++++ install_upgrade_spec.md | 476 +++++++++++++++++++++++++++------------- orca_components.png | Bin 34342 -> 40700 bytes orca_components.svg | 340 ++++++++++++++++++---------- 5 files changed, 971 insertions(+), 273 deletions(-) create mode 100644 certs.png create mode 100644 certs.svg diff --git a/certs.png b/certs.png new file mode 100644 index 0000000000000000000000000000000000000000..665a51f1bd95c9279038022bd0c4f90e0e569bef GIT binary patch literal 105220 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 z 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + Orca Root CA + + + + Orca intermediate CA + + + + Orca servercert + + + + Orca normalUser Cert + + + + Swarm intermediate CA + + + + swarm serverCert + + + + Orca adminUser Cert + + + + + + + + Swarm Trusted CAs + + diff --git a/install_upgrade_spec.md b/install_upgrade_spec.md index 3d519a00a9..e59c0157dc 100644 --- a/install_upgrade_spec.md +++ b/install_upgrade_spec.md @@ -3,14 +3,336 @@ ![Components](orca_components.png) +## Open Questions + +* Can Swarm talk to consul with TLS enabled? +* ~~Can we use a single root CA and intermediate CA certs for orca/swarm?~~ - Yes! +* ~~Should the bootstrapper container contain the other images within?~~ - no, too bloated +* ~~Should we link all our containers, or wire them up based on the punched through IP/ports?~~ - It's not ready yet +* ~~DB Clustering/HA?~~ - Not for v1 +* ~~What KV store (swarm discovery backend) should we use?~~ - Use single node consul for v1 +* ~~How far away is core orca from supporting multiple swarms?~~ not for v1 +* ~~Does it make sense to append the Orca CA certificates to the local system's trusted certs?~~ Give fingerprint instead + + +## Assumptions + +* Orca will not be HA in v1 +* We wont use data volume containers, but instead host volume mounts +* Our goal is to get as close to a full end-to-end deployment as possible (from bare-metal up to orca) + * Advanced customers may be able to cherry-pick, but that's not the focus in v1 + * Bare-metal ISO based installer not (yet) covered in this document +* Swarm requires a common single CA "on both sides" (incoming client communication and outgoing engine communication) +* Swarm Managers must have visibility to all the engines (or proxies) and be secured with TLS. All Engines/Proxies must trust the CA who signed the swarm cert +* Swarm manager and docker proxy may fold into one component, but this shouldn't fundamentally change the flow +* We'll "own" an internal root CA with intermediaries for orca/swarm to provide access control + * Admin users certs will be signed by the root so they have swarm access, regular users by the orca intermediate so they do not have swarm access + * Set up so that certs can be replaced post v1 + * We'll store the certs in a host volume mount + * The volume could be swapped out for a keywhiz volume mount in the future (unclear if we can write to it though...) + * Laying the groundwork of a central CA for our managed swarm will enable keywhiz for secret management post v1 +* Installation logic should be idempotent, and not clobber any pertinent state unless the user asks us to + +![Certs](certs.png) + + +## User Entrypoint + +All scenarios described below start with the same user visible action, run on a system with a local docker.sock + +```bash +curl https://get.docker.com/orca | bash +``` + +* This could also be run through notary to verify it wasn't tampered with +* If we meet our stretch goal of the ISO based installer, this script would be bundled there and run after the engine comes up. +* Business logic in this script will be kept to a minimum, most logic resides within the bootstrap container + * Ideally it should be possible to run the container "by hand" (as long as the right flags are passed to docker run) and have it work +* The bootstrap container uses a two-phase model to abstract away the version specific details of volume mounts or other flags required by the system. + * During implementation, if this becomes unwieldy, we'll just have the script launch "phase 2" automatically + + +## Deploy Orca + +Description: Deploy orca+swarm onto a single "local" engine. Once deployed, additional engines can be added to the swarm. + + +Use-case specific flags: + +* --version "label": Specify an exact version to pull, default is "latest" +* --fresh-install: destroy any existing state and orca containers on this node and deploy fresh. Default is to leave any state if detected, and if existing containers are detected, to redeploy them. +* --image-dir "path": Location of local images to load (typically used by ISO installer) +* --help: Basic usage information +* --phase2: If set, indicate we're in phase 2 and all necessary mounts are performed (undocumented in help output) + +Steps: + +1. (script) Load local images if --image-dir specified +2. (script) Prompt user for the admin password they want + * Implementation details TBD: most likely pre-hash/salt, store in a file, and mount it, then the container removes the file once it's loaded up +3. (script) Launch phase 1 container + * Do: + ```bash +docker run --rm -t \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/orca-bootstrap [flags] +``` +4. (Phase 1) Pre-flight checks + * Verify that /var/run/docker.sock is present + * Check minimum version of docker engine + * Find ourself running on the engine, determine image in use + * Check for available ports for all our services, fail fast if they're taken + * Check for existing orca (fail if --upgrade wasn't passed - see upgrade flows below) +5. Launch phase2 container + * Same image as phase1, with additional mounts so the user doesn't have to get all the extra host mounts right + * Phase 1 Blocks until phase 2 finishes or fails, passing output through to user + ```bash +docker run --rm -t \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /etc/docker/ssl/orca:/etc/docker/ssl/orca \ + -v $DB_PATH_TBD:... \ + -v $CONSUL_DATA_TBD:... + -v ...any other paths... \ + docker/orca-bootstrap --phase2 $PHASE1_FLAGS +``` +6. Check for images on the engine, pull if missing + * If this fails, inform user to "docker login" using their hub credentials and try again +7. Stop any existing orca containers already running on the host +8. (conditional) clobber existing state if requested +9. Generate Root CA and certs if not present in host volume path: /etc/docker/ssl/orca + * root Orca CA cert + * Intermediat Orca CA cert + * Intermediat Swarm CA cert +10. Generate cert for proxy/swarm manager signed by Swarm CA +11. Deploy proxy with random exposed port +12. Verify we can see the proxy we just deployed using the engines external IP + * if not warn user firewall settings may need to be opened for port XXX (moot in bare metal case - should never fail) +13. Deploy Consul + * Use swarm CA for TLS configuration so it will only allow connections from swarm CA signed certs + * https://www.consul.io/docs/agent/encryption.html + * Map specific pem files, not the whole dir so unnecessary private keys aren't leaked + * Data directory mounted to host (to allow upgrades without loss of context) + * **Recommend mapping to non-standard ports so end-customer consul deployed with default ports on the same node works** + * RPC: 8300 - required + * HTTP API: 8500? - might not be needed + * DNS: 8600? - probably not needed +14. Deploy swarm manager pointed at proxy and consul external port(s) + * Bind to port 2376 so this becomes the "default" way to talk to this node +15. Verify we can see the swarm manager we just deployed + * if not warn user firewall settings may need to be opened for port XXX (moot in baremetal case) +16. Deploy DB with host volume mount for data directory +17. Deploy Orca server + * Linked to DB, pointed at consul external port + * Bind 80/443, use random ports if unavailable +19. Verify the Orca server is up +20. Report the Orca server cert fingerprint (via host path to prevent man-in-the-middle) for later in-browser TOFU +21. Report the URL to connect to Orca + + +## Add Host To Orca + +Description: Used to add a single "local" engine to an existing orca swarm. + + +Use-case specific flags: + +* --join "url": Specify the orca to join +* --swarm "label": Pick a specific swarm (defaul is "swarm0") -- Probably post v1 + + +Steps: + +1. (script) TOFU to the URL in question if not already trusted, prompt user to accept + * record CA public cert in /etc/docker/ssl/orca + * **Note: Probably have to run our nested container to accomplish this cross-platform** +2. (script) Prompt user for admin credentials once cert trusted, load into shell environment +3. (script) Load local images if --image-dir specified +4. (script) Launch phase 1 + * Do: + ```bash +docker run --rm -t \ + -e ORCA_ADMIN_USER \ + -e ORCA_ADMIN_PASSWORD \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /etc/docker/ssl/orca:/etc/docker/ssl/orca \ + docker/orca-bootstrap --join https://myorca [--swarm "label"] +``` +5. (Phase 1) Pre-flight checks + * Verify that /var/run/docker.sock is present + * Check minimum version of docker engine + * Find ourself running on the engine, determine image in use + * Check for available ports for all our services, fail fast if they're taken +6. (Phase 1) Call some low-cost API on orca to verify admin credentials so we can fail fast +7. (Phase 1) Check for required images on the engine, pull if missing + * If this fails, inform user to "docker login" using their hub credentials and try again +8. Launch phase2 container + * Same image as phase1, with additional mounts + * Phase 1 Blocks until phase 2 finishes or fails, passing output through to user + ```bash +docker run --rm -t \ + -e ORCA_ADMIN_USER \ + -e ORCA_ADMIN_PASSWORD \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /etc/docker/ssl/orca:/etc/docker/ssl/orca \ + docker/orca-bootstrap --phase2 $PHASE1_FLAGS +``` +9. Generate new key pair and generate CSR for swarm/proxy +10. Call Orca API using admin credentials, request to add host, passing CSR + * Use /etc/docker/ssl/orca CA to verify TLS connection to server + * (server) verifies permissions to add host + * (server) signs CSR using swarm CA + * (server) returns signed cert, swarm number (always 0 in v1?), location of consul (and any other config required...) +11. Plase certs in /etc/docker/ssl/orca -- match swarm number from orca +12. Deploy proxy with random exposed port +13. Verify we can see the proxy we just deployed + * if not warn user firewall settings may need to be opened for port XXX (moot in bare metal case - should never fail) +14. Deploy swarm manager pointed at proxy, with config details returned by orca server + * Bind to port 2376 so this becomes the "default" way to talk to this node +15. Verify we can see the swarm manager we just deployed + * if not warn user firewall settings may need to be opened for port XXX (moot in baremetal case) +16. Verify host appears in Orca + + +Potential Refinements: +* Consider allowing certificate based auth, might make it easier to generate short-lived certs to use in scripted install/add-host (PXE boot scenarios in the future...) + + + +## Upgrade/Patch a single node deployment + +Identical to deployment flow above. + +## Upgrade/Patch an Existing multi-node Orca deployment + +Description: Pointed at an existing deployment, upgrade all the orca and swarm related components while persisting the configuration state of the system + + +Use-case specific flags: + +* --upgrade: Upgrade an entire orca cluster + +Precondition: + +* User can run script on the master node, or with DOCKER\_HOST pointed at orca or the swarm with an admin account + +Steps: + +1. (script) Load local images if --image-dir specified +2. (script) Launch phase 1 (with affinity to the orca server) + * Do: + ```bash +docker run --rm -t \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -e affinity:container=orca-server \ + docker/orca-bootstrap --update [flags] +``` +3. (Phase 1) Pre-flight checks + * Verify that /var/run/docker.sock is present + * Check minimum version of docker engine + * Find ourself running on the engine, determine image in use + * Find orca and/or swarm nodes on this engine, and determine their IP addresses +4. Launch phase2 container + * Same image as phase1, with additional mounts so the user doesn't have to get all the extra host mounts right + * Phase 1 Blocks until phase 2 finishes or fails, passing output through to user + ```bash +docker run --rm -t \ + -e affinity:container=orca-server \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /etc/docker/ssl/orca:/etc/docker/ssl/orca \ + docker/orca-bootstrap --phase2 $PHASE1_FLAGS +``` +5. Generate temporary swarm client cert signed by the existing swarm CA (so we can connect to swarm directly) + * Use direct /etc/docker/ssl/swarm# access and cfssl +6. Connect to primary swarm manager +7. distribute/pull images + * Look for images on the local engine, if present, distribute to the swarm + * If images not present on local engine, pull on the swarm +8. Stop consul, rm consul, start consul +9. For each secondary node (skip the primary) + * Deploy new proxy, verify it can be reached + * Shutdown manager on this node + * Deploy new manager, pointed at new proxy, verify it can be reached + * Shutdown old proxy + * Remove old proxy and manager +10. **Can we trigger a manager switch for swarm at this point?** +11. Stop and remove Orca server and db +12. Start Orca db and server +13. Stop primary swarm manager +14. Switch to communicating with secondary swarm manager +15. On old primary node + * Deploy new proxy, verify it can be reached + * Deploy new manager, pointed at new proxy, verify it can be reached + * Shutdown old proxy + * Remove old proxy and manager +16. Health check swarm/orca +17. Discard temporary swarm connection cert + + +## Remove host from Orca + +* Ultimately we should use OCSP and revoke the swarm certificate for the node + * Probably not doable in v1 timeframe +* Uninstall on the individual engine (see below) probably sufficient for v1 + * Will destroy the proxy/swarm manager on that node, and wipe the local copy of the swarm certificate + +## Uninstall Orca + +Description: Run on an engine, clear all orca content from the individual system (will not touch other engines, or customer workloads running on the engine) + +Use-case specific flags: + +* --uninstall: Remove any orca components running on this engine + +Steps: + +1. (script) Launch phase 1 container + * Do: + ```bash +docker run --rm -t \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/orca-bootstrap --uninstall [flags] +``` +2. (Phase 1) Pre-flight checks + * Verify that /var/run/docker.sock is present + * Check minimum version of docker engine + * Find ourself running on the engine, determine image in use +3. Launch phase2 container + * Same image as phase1, with additional mounts so the user doesn't have to get all the extra host mounts right + * Phase 1 Blocks until phase 2 finishes or fails, passing output through to user + ```bash +docker run --rm -t \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /etc/docker/ssl/orca:/etc/docker/ssl/orca \ + -v $DB_PATH_TBD:... \ + -v $CONSUL_DATA_TBD:... + -v ...any other paths... \ + docker/orca-bootstrap --phase2 $PHASE1_FLAGS +``` +4. Stop all orca containers on the host (except the bootstrappers) +5. Clear certs in /etc/docker/ssl/orca +6. Remove any other data directories (consul, db, etc.) if detected on the host +7. Remove all orca containers +8. Remove orca images (except bootstrapper, since it's still running) + + +## Potential Refinements +* Include another curl|bash style script for "env" like "docker-machine env " + * eval "$(curl -u myorcauser https://myorca/env | bash)" – generate user cert (if not already generated) download it, store it in ~/.docker/orca\_$NAME and echo the eval goop to set up the environment to use it +* Allow pluggable KV store + * Start with single node consul, but let user re-wire post initial deployment with their own HA consul, or alternative +* Have bootstrapper spit out progress reporting information to stdout with a common pattern so GUI installer can generate reasonable progress bars and status messages +* Gather desired initial admin password from user in GUI and feed that through to the bootstrapper via environment variable, then set up orca with that password instead of the static default + + ## Installation Matrix This table captures the potential installation scenarios we could support. -All scenarios assume an orca managed swarm. At this time, we do not -plan to support an externally managed swarm in the 1.0 timeframe. +All scenarios assume an orca managed swarm. We do not plan to support +an externally managed swarm in the 1.0 timeframe. Our goal is to focus +on the "Internal self-signed Root CA" model for v1. -||Self signed Swarm cert, unable to sign new certs|Internal self-signed Swarm CA (aka cfssl or equiv)|External Swarm CA, our cert can sign as an intermediary|External Swarm CA, our cert can't sign| +||Self signed Swarm cert, unable to sign new certs|Internal self-signed Root CA (aka cfssl or equiv)|External Root CA, our cert can sign as an intermediary|External Root CA, our cert can't sign| |---|---|---|---|---|---| | Install On swarm|N|N|N|N| | Install On local engine|Y|Y|Y|Y| @@ -25,151 +347,3 @@ plan to support an externally managed swarm in the 1.0 timeframe. | Add Host external (not through orca), Remote Engine, external CA|N|N|Maybe, via kv?|Maybe, via kv?| | Upgrade/Patch Orca|Y|Y|Y|Y| | Upgrade/Patch OrcaSwarm|Y|Y|Y|Y| - - - -## Open Questions - -* Should we link all our containers, or wire them up based on the punched through IP/ports? - * If linking works across hosts, can we rely on that for all communication between orca:swarm:proxy? If so, that might eliminate the need for a CA in v1, but how do you "secure" the cross-host communication? Feels like it might be a fallacy/chicken-and-egg problem... -* DB Clustering/HA? -* We might want to fold install/upgrade into one script since there's a lot of overlap -* What KV store (swarm discovery backend) should we use? Can we let the user tweak this? -* ~~How far away is core orca from supporting multiple swarms?~~ not for v1 -* Should the install "script" actually be mostly implemented as a golang binary, perhaps with a thin shell script wrapper that downloads the right arch binary? - * Could help us leverage common code between the server and these little external "scripts" -* Should we allow the swarm manager to run on non-standard ports on the engines? -* Possibly include another curl|bash style script for "env" like "docker-machine env " - * eval "$(curl -u myorcauser https://myorca/env | bash)" – generate user cert (if not already generated) download it, store it in ~/.docker/orca and echo the eval goop to set up the environment to use it - * Same as above with https://myorca/swarm/env for admins to get certs to talk directly to swarm (required for upgrade flows below) -* Does it make sense to append the Orca root CA certificate to the local system's trusted certs? - * Docker CLI needs more, browsers can handle one-off acceptance, so maybe this is just a waste of energy... -* How should "redeploy a broken orca/swarm" work? Should they redeploy the single node that has orca, then "upgrade" the cluster from there? If the proxies are busted, they'll likely have to re-add the nodes - - -## Assumptions - -* We wont use data volume containers, but instead host volume mounts -* Most customers do not have swarm (yet), so our primary focus should be on making the Orca+Swarm deployment as clean and simple as possible -* Swarm requires a common single CA “on both sides” (incoming client communication and outgoing engine communication) -* Swarm Managers must have visibility to all the engines (or proxies) and be secured with TLS. All Engines/Proxies must trust the root CA who signed the swarm cert -* Swarm manager and docker proxy may fold into one component, but this shouldn't fundamentally change the flow -* We'll "own" our own root CAs (One for orca, and one for swarm) - * Set up so that certs can be replaced post v1 - * We'll store the certs in a host volume mount - * The volume could be swapped out for a keywhiz volume mount in the future (unclear if we can write to it though...) - * Laying the groundwork of a central CA for our managed swarm will enable keywhiz for secret management post v1 -* Installation script should be idempotent, and not clobber any pertinent state unless the user asks us to - - -## Deploy Orca With Swarm - -Description: Deploy orca+swarm onto a single existing engine. Once deployed, additional engines can be added to the swarm. - -```bash -curl https://get.docker.com/orca | bash -``` - -(or download a bundle with the script and saved/exported images) - -Modes/Flags: - -* version: Specify an exact version to pull, default is "latest" -* clobber: destroy any existing state and deploy fresh - -Steps: - -1. Pre-flight checks of target engine (Version, available ports, etc.) - * Detect if we're pointed at an orca, swarm, or individual engine - * Swarm: Fail deployment -- may support in future - * Orca: Fail deployment -- may support in future - * Engine: This flow -2. (conditional) clobber existing state if requested -3. Pull images - * Detect if saved images are present at the same location as the script (file naming scheme TBD) and if detected load those instead of pulling - * If we don't have them local, and they aren't already on the target system, do a docker login and search for them, and give a good error message if they aren't visible -4. Generate certs if not present in two host volume paths: - * /etc/ssl/orca: root CA cert and private key pair; orca server key pair - * This chain is used for the incoming client requests to the orca server - * We can expose a mechanism for a user account to get a signed key pair using this CA to authenticate CLIs (or other tools) against orca, mapping to their user account - * /etc/ssl/swarm0: root CA cert and private key pair (different from above), swarm server key pair - * This chain is used for communication from orca to swarm, and from swarm to the engines/proxies. -5. Generate cert for proxy and swarm manager signed by /etc/ssl/swarm0 - * If DOCKER\_HOST set, use the hostname/ip from there - * If localhost, use IP and attempt to get hostname right (ugh) -- or maybe we force the user to tell us how to reach their localhost? -6. Deploy proxy with random exposed port - * **Q: should we try to use 2375, then fall back to random if unavailable to make firewall updates easier?** -7. Verify we can see the proxy we just deployed (if not warn user firewall settings may need to be opened for port XXX) -8. Deploy swarm manager pointed at proxy (punched through to engine's public IP) - **Fail if swarm official port is taken?** -9. Verify we can see the swarm manager we just deployed (if not warn user firewall settings may need to be opened for port XXX) -11. Deploy DB with host volume mount for data directory -12. Deploy Orca server (prefer 80/443, use random ports if unavailable) -13. Add orca as trusted CA cert on local system: - * Tell user what we're doing before the sudo prompt, instruct them to ^C to skip it - * Linux: Append Orca CA cert in /usr/local/share/ca-certificates/orca.pem and run update-ca-certificates - * Tell the user that they can copy .../orca.pem to other systems and run "update-ca-certificates" to add it as a trusted system - * Mac: sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "/private/tmp/certs/orca.cer" - * (future) Windows: certmgr.exe -add MyCert.cer -s -r localMachine trustedpublisher -14. Verify the Orca server is up before reporting address to user -15. (bonus round!) Download license key based on the users hub account and license Orca accordingly - - - -## Upgrade/Patch an Existing Orca With Swarm - -Description: Pointed at an existing deployment, upgrade all the orca and swarm related components while persisting the configuration state of the system - -1. Pre-flight checks of target system (existing version, desired target version) - * Swarm mode: Fail - tell user to point to orca to proceed - * Orca mode: - * Verify at least two managers, get temporary certs to talk to swarm, make sure we can talk to two managers - * If only one, fail and tell user to run deploy script against engine (**or maybe we do this for them...**) - * Engine Mode: Reject, or run the deploy script logic -2. Pull images - * Detect if saved images are present at the same location as the script (file naming scheme TBD) and if detected load those instead of pulling - * If we don't have them local, and they aren't already on the target system, do a docker login and search for them, and give a good error message if they aren't visible -3. Connect to primary swarm manager -4. For each secondary node (not the primary) - * Deploy new proxy, verify it can be reached - * Shutdown manager on this node - * Deploy new manager, pointed at new proxy, verify it can be reached - * Shutdown old proxy -5. **Can we trigger a manager switch for swarm at this point?** -6. Stop and remove Orca server and db -7. Start Orca db and server -8. Stop primary swarm manager -9. Switch to communicating with secondary swarm manager -10. Remove old primary swarm manager -11. Start old primary swarm manager -12. Health check swarm/orca -13. Discard temporary swarm connection cert - -## Add Host To Orca Managed Swarm - -```bash -curl https://myorca/addhost | bash # Unauthed in GET mode -``` - -1. Pre-flight checks of target engine (same as install flow) -2. (conditional) pull images matching the existing orca/swarm -3. Prompt user for cred's to orca -4. curl/wget POST to https://myorca/addhost with hostname/IP of the target engine, piping output into the data volume container - * (server) Verify user has proper rights to add hosts (admin) - * (server) swarm CA, generate key pair for the engine using the hostname/IP specified, and return tar bundle with root CA cert (public portion only), and new server key pair -5. Store certs in host volume path: /etc/ssl/swarm -6. Determine port number for engine proxy, deploy with random port if default port taken - * Note: Once proxy is deployed, the remaining steps could be performed server side -7. Deploy swarm manager pointed at proxy (punched through to engine's public IP) - Fail if swarm official port is taken? - * If we already have enough managers, should we skip this step? -8. Use users credentials against orca, verify new host is present, report success - -Questions: - -* Would it make sense to just deploy a conditional beachhead in the script, and do the rest of the host deployment logic on the server side? - * If the engine already trusts our CA chain, just tell the server the endpoint to talk to - * If the engine is local or doesn't trust our cert chain, deploy a proxy in the script, then tell the server the proxy endpoint - - -## Uninstall Orca - -* TBD - remove all traces so there's no lingering cruft diff --git a/orca_components.png b/orca_components.png index 7c7487ecdf71b5d3ae91d4344fef243b9dd905b6..c406880054ce4bf7210ed71efdb8bd65e51285f8 100644 GIT binary patch literal 40700 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 literal 34342 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 R*(SjN1fH&bF6*2UngE0MA$R}) diff --git a/orca_components.svg b/orca_components.svg index 9877d136ff..dd55a5085f 100644 --- a/orca_components.svg +++ b/orca_components.svg @@ -16,7 +16,7 @@ version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="orca_components.svg" - inkscape:export-filename="/home/daniel/orca_components.png" + inkscape:export-filename="/home/daniel/code/docker/orca/docs/orca_components.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> + + + + + + image/svg+xml - + @@ -254,7 +284,7 @@ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#SemiCircleIn)" /> Engine 1 + + + OrcaServer + + + + + OrcaDB + + ExternallyVisiblePorts + + + + Consul + + + + + + Engine 0 + + + + SwarmManager + + Engine N - - - - OrcaServer - - - - - OrcaDB - - - - - Engine 0 - - ExternallyVisiblePorts