{"id":50385063,"url":"https://github.com/stackhpc/glean","last_synced_at":"2026-05-30T14:30:56.327Z","repository":{"id":302068079,"uuid":"982197214","full_name":"stackhpc/glean","owner":"stackhpc","description":"Glean mirror","archived":false,"fork":false,"pushed_at":"2025-06-30T11:07:31.000Z","size":348,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-30T12:24:04.580Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stackhpc.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-12T14:13:17.000Z","updated_at":"2025-06-30T11:07:34.000Z","dependencies_parsed_at":"2025-06-30T12:24:17.641Z","dependency_job_id":"622429ae-dc9c-4140-9fbb-b1297290f0a7","html_url":"https://github.com/stackhpc/glean","commit_stats":null,"previous_names":["stackhpc/glean"],"tags_count":42,"template":false,"template_full_name":null,"purl":"pkg:github/stackhpc/glean","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fglean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fglean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fglean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fglean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stackhpc","download_url":"https://codeload.github.com/stackhpc/glean/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fglean/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33696681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"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":"2026-05-30T14:30:56.202Z","updated_at":"2026-05-30T14:30:56.322Z","avatar_url":"https://github.com/stackhpc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=====\nglean\n=====\n\nGlean is a program intended to configure a system based on\nconfiguration provided in a `configuration drive\n\u003chttp://docs.openstack.org/user-guide/cli_config_drive.html\u003e`__.\n\nWhy would you want glean?\n-------------------------\n\nDifferent cloud providers have different ways of providing networking\nand other configuration to guest virtual-machines.  Many use DHCP but\nothers, notably Rackspace, use configuration provided via a\nconfiguration drive.\n\nWhat does glean do?\n-------------------\n\nBroadly, glean checks for configuration drive based information and,\nif found, uses that to configure the network.  If config-drive is not\nfound, it falls back to configuring any available interfaces with\nDHCP.\n\nSpecifically, it will mount the special block-device with label\n`config-2` and parse the `network_info.json` and `vendor_info.json`\nfiles within.  If appropriate network configuration is found, it will\nwrite out network configuration files.\n\nThe format of the `network_info.json` file is documented `here\n\u003chttp://specs.openstack.org/openstack/nova-specs/specs/liberty/implemented/metadata-service-network-info.html#rest-api-impact\u003e`__.\nPlease note that glean does not implement every feature listed.\n\nIf no network info is found there, available interfaces can be probed\nfrom `/sys/class/net` and any that appear to be up will be configured\nfor use with DHCP.\n\nIt will also handle `authorized_keys` and host-name info provided from\n`meta_data.json`.\n\nHow does glean do this?\n+++++++++++++++++++++++\n\nGlean determines the network configuration environment for the running\nplatform and configures the interfaces appropriately.\n\nsystemd environment\n===================\n\nOn platforms where systemd is detected `glean-install` will add a\n`udev` rules file (`99-glean.rules`) that triggers on any network\ndevice being added.  This will run the `glean@.service` systemd\ntemplate for the interface specified.\n\nThis systemd unit firstly determines if there is already a\n`/etc/sysconfig/network/` configuration for the interface; if so, the\ninterface is considered configured and skipped.\n\nIf not, glean is started with the interface that triggered this event\nspecified as an argument.  The configuration drive is probed to see if\nnetwork configuration for the interface is available.  If so, it will\nbe added, otherwise the interface will configured for DHCP.\n\n.. note ::\n\n   By default glean provides configuration for the network init\n   scripts service ``network.service`` on RedHat platforms (or the\n   equivalent on other platforms).  You should ensure this service is\n   enabled and other tools such as NetworkManager are disabled for\n   correct operation in this mode.  Note on Fedora 29 onwards, this is\n   in a separate package `network-scripts` and is considered\n   deprecated.\n\n   Alternatively, to use NetworkManager with the `ifcfg-rh` plugin\n   with to manage the interfaces, call `glean-install` with the\n   `--use-nm` flag.  In this case, ensure NetworkManager is installed.\n   This will trigger glean to write out configuration files that are\n   suitable for use with NetworkManager and use a slightly different\n   service file that doesn't trigger legacy tools like `ifup`.\n\n\nnetworkd\n========\n\n`networkd` support is implemented as a separate distribution type.\nCurrently it is only supported on Gentoo, and will be automatically\nselected by `glean-install`.  It will similarly install a systemd\nservice file or openrc config file (both are supported on Gentoo) and\nudev rules to call glean.\n\nOther platforms\n===============\n\n`upstart` and `sysv` environments are also supported.  These will have\ninit scripts installed to run glean at boot.\n\nHow do I use glean?\n-------------------\n\nGlean ships `glean-install`, a script which install glean into your\nsystem startup environment.  It should handle `sysv`, `upstart` and\n`systemd` to cover all major distributions.  This should be run once,\nduring install or image build.\n\nThe startup environment will be modified as described above to\nconfigure any found interfaces.\n\nDifferences to cloud-init?\n--------------------------\n\nGlean differs to `cloud-init` mainly in its very reduced dependency\nfootprint.  In a dynamic CI environment such as OpenStack, many of the\npython dependencies for `cloud-init` can cause conflicts with packages\nor versions required for testing.\n\nGlean also better supports static IP allocation within config-drive,\nparticuarly important within the Rackspace environment.\n\nMore details\n------------\n\n* Free software: Apache license\n* Documentation: http://docs.openstack.org/infra/glean\n* Source: http://git.openstack.org/cgit/openstack-infra/glean\n* Bugs: http://storyboard.openstack.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fglean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackhpc%2Fglean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fglean/lists"}