{"id":20111486,"url":"https://github.com/openstack/charm-swift-storage","last_synced_at":"2025-05-06T11:30:44.243Z","repository":{"id":66174706,"uuid":"52858945","full_name":"openstack/charm-swift-storage","owner":"openstack","description":"Juju Charm - Swift storage. Mirror of code maintained at opendev.org.","archived":false,"fork":false,"pushed_at":"2024-06-22T04:20:30.000Z","size":2314,"stargazers_count":13,"open_issues_count":0,"forks_count":14,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-06-22T16:01:47.517Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://opendev.org/openstack/charm-swift-storage","language":"Python","has_issues":false,"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/openstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2016-03-01T07:57:33.000Z","updated_at":"2024-06-22T04:20:34.000Z","dependencies_parsed_at":"2023-02-20T23:15:54.676Z","dependency_job_id":"0b1c2397-41ee-4b6e-be6d-c123066388f0","html_url":"https://github.com/openstack/charm-swift-storage","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-swift-storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-swift-storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-swift-storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-swift-storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openstack","download_url":"https://codeload.github.com/openstack/charm-swift-storage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224499851,"owners_count":17321605,"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","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-13T18:16:17.773Z","updated_at":"2024-11-13T18:16:18.511Z","avatar_url":"https://github.com/openstack.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nOpenStack [Swift][swift-upstream] is a highly available, distributed,\neventually consistent object/blob store.\n\nThe swift-storage charm deploys Swift's storage component. The charm's basic\nfunction is to initialise storage devices and manage the container, object, and\naccount services. It works in tandem with the [swift-proxy][swift-proxy-charm]\ncharm, which is used to add proxy nodes.\n\n# Usage\n\n## Configuration\n\nThis section covers common configuration options. See file `config.yaml` for\nthe full list of options, along with their descriptions and default values.\n\n### `zone`\n\nThe `zone` option assigns a storage zone (an integer) to a storage node. A zone\nis associated with data replicas.\n\n### `block-device`\n\nThe `block-device` option specifies the device(s) that will be used on all\nmachines associated with the application. Value types include:\n\n* an actual block device (e.g. 'sdb' or '/dev/sdb'). A space-separated list is\n  used for multiple devices.\n* a path to a local file with the size appended after a pipe (e.g.\n  '/etc/swift/storagedev1.img|5G'). The file will be created if necessary and\n  be mapped to a loopback device. This is intended for development and testing\n  purposes.\n\nThe resulting block device(s) will be XFS-formatted and use\n`/srv/node/\u003cdevice-name\u003e` as a mount point.\n\n### `storage-region`\n\nThe `storage-region` option specifies a storage region (an integer). It is used\nonly for multi-region (global) clusters.\n\n## Deployment\n\nLet file ``swift.yaml`` contain the deployment configuration:\n\n```yaml\n    swift-proxy:\n        zone-assignment: manual\n        replicas: 3\n    swift-storage-zone1:\n        zone: 1\n        block-device: /dev/sdb\n    swift-storage-zone2:\n        zone: 2\n        block-device: /dev/sdb\n    swift-storage-zone3:\n        zone: 3\n        block-device: /dev/sdb\n```\n\nDeploy the proxy and storage nodes:\n\n    juju deploy --config swift.yaml swift-proxy\n    juju deploy --config swift.yaml swift-storage swift-storage-zone1\n    juju deploy --config swift.yaml swift-storage swift-storage-zone2\n    juju deploy --config swift.yaml swift-storage swift-storage-zone3\n\nAdd relations between the proxy node and all storage nodes:\n\n    juju add-relation swift-proxy:swift-storage swift-storage-zone1:swift-storage\n    juju add-relation swift-proxy:swift-storage swift-storage-zone2:swift-storage\n    juju add-relation swift-proxy:swift-storage swift-storage-zone3:swift-storage\n\nThis will result in a three-zone cluster, with each zone consisting of a single\nstorage node, thereby satisfying the replica requirement of three.\n\nStorage capacity is increased by adding swift-storage units to a zone. For\nexample, to add two storage nodes to zone '3':\n\n    juju add-unit -n 2 swift-storage-zone3\n\n\u003e **Note**: When scaling out ensure the candidate machines are equipped with\n  the block devices currently configured for the associated application.\n\nThis charm will not balance the storage ring until there are enough storage\nzones to meet its minimum replica requirement, in this case three.\n\nAppendix [Swift usage][cdg-app-swift] in the [OpenStack Charms Deployment\nGuide][cdg] offers in-depth guidance for deploying Swift with charms. In\nparticular, it shows how to set up a multi-region (global) cluster.\n\n## Actions\n\nThis section covers Juju [actions][juju-docs-actions] supported by the charm.\nActions allow specific operations to be performed on a per-unit basis.\n\n* `openstack-upgrade`\n* `pause`\n* `resume`\n\nTo display action descriptions run `juju actions swift-storage`.\n\n# Bugs\n\nPlease report bugs on [Launchpad][lp-bugs-charm-swift-storage].\n\nFor general charm questions refer to the [OpenStack Charm Guide][cg].\n\n\u003c!-- LINKS --\u003e\n\n[cg]: https://docs.openstack.org/charm-guide\n[cdg]: https://docs.openstack.org/project-deploy-guide/charm-deployment-guide\n[cdg-app-swift]: https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/latest/app-swift.html\n[swift-proxy-charm]: https://jaas.ai/swift-proxy\n[swift-proxy-charm-readme]: https://opendev.org/openstack/charm-swift-proxy/src/branch/master/README.md\n[swift-upstream]: https://docs.openstack.org/developer/swift\n[lp-bugs-charm-swift-storage]: https://bugs.launchpad.net/charm-swift-storage/+filebug\n[juju-docs-actions]: https://jaas.ai/docs/actions\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fcharm-swift-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenstack%2Fcharm-swift-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fcharm-swift-storage/lists"}