{"id":18589396,"url":"https://github.com/pmorie/node-documentation","last_synced_at":"2026-02-22T22:01:53.698Z","repository":{"id":5596187,"uuid":"6802905","full_name":"pmorie/node-documentation","owner":"pmorie","description":"Documentation for OpenShift Cartridge 2.0 support","archived":false,"fork":false,"pushed_at":"2013-01-17T21:33:56.000Z","size":148,"stargazers_count":0,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-16T08:07:39.358Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pmorie.png","metadata":{"files":{"readme":"README.components_and_networks.rdoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-11-21T20:57:41.000Z","updated_at":"2014-04-19T21:13:44.000Z","dependencies_parsed_at":"2022-08-26T18:20:32.003Z","dependency_job_id":null,"html_url":"https://github.com/pmorie/node-documentation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pmorie/node-documentation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmorie%2Fnode-documentation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmorie%2Fnode-documentation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmorie%2Fnode-documentation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmorie%2Fnode-documentation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmorie","download_url":"https://codeload.github.com/pmorie/node-documentation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmorie%2Fnode-documentation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281425557,"owners_count":26499031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T00:51:56.452Z","updated_at":"2025-10-28T10:40:52.786Z","avatar_url":"https://github.com/pmorie.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"= NAME\n\nGearComponents and UnixNetwork classes\n\n\n= SYNOPSIS\n\nBroker: create gear --\u003e mcollective \n\n                  gear = GearContainer.new(...)\n                    components = GearComponents.new(*GearContainer)\n\n                  gear.create\n                    ...\n                    lock\n                    ...\n                    serialize\n                    unlock\n\n\nBroker: add component --\u003e mcollective\n                  gear.components \u003c\u003c [cart, component, arg1, arg2, etc...]\n                    ...\n                    lock\n                    deserialize\n\n                    component.cart = Cartridge.new(...yml)\n                    component.addr = UnixNetwork::Addr.new(*GearContainer)\n                    component.port = UnixNetwork::Port.new(*GearContainer, component.cart)\n\n                    Call scripts/hooks\n\n                    ...\n                    serialize\n                    unlock\n\n\n= DESCRIPTION\n\nThe new cartridge architecture moves away from calling cartridge\nscripts as root and requires significantly more setup to be done by\nthe node services.\n\nApplicationContainer should be renamed to GearContainer since it\nhandles gear setup and configuration rather than the whole\napplication.\n\nModifications to GearContainer class, and new classes are\nproposed to embody the node side of the cartridge API.  These classes\nwill absorb much of the current tasks performed by cartridge setup\nscripts.\n\nThe GearContainer class will abstract gear-local cartridge\nmanagement away from mcollective.\n\nA new UnixNetwork class and additional cartridge descriptor are\nproposed to move IP address selection and port-proxy setup to the node\nmanagement layer.\n\n\n= NEW FEATURES\n\n== Serialization\n\nGearContainer and its contained classes are serialized into\ngear-local storage so that the component and network configuration can\nbe read back in rather than requiring discovery.\n\n== Locking\n\nA per-gear API lock is used to protect meta-data from simultaneous\ncalls.\n\n= NEW CLASSES\n\n== StickShift::GearComponents\n\nAn array like object which is used by GearContainer to manage\nthe set of components in a gear.\n\nParses cartridge descriptors and perform any gear-local cartridge\nmanagement with full knowledge of the gear configuration.\n\nThe list of components contained in a gear are read back as an array.\n\nIn the future, component calls (start/stop, etc...) will be created to\nfully encompass component management.\n\n\n== StickShift::UnixNetwork::Addr\n== StickShift::UnixNetwork::Port\n\nObjects which are used to manipulate the IP address allocation, port\nproxy and firewall configuration per gear.\n\nThe simple case will be one IP address per gear/component.\n\nThe cartridge descriptor provides the set of ports to proxy.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmorie%2Fnode-documentation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmorie%2Fnode-documentation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmorie%2Fnode-documentation/lists"}