{"id":50385024,"url":"https://github.com/stackhpc/opentofu-vast-manila","last_synced_at":"2026-05-30T14:30:52.789Z","repository":{"id":355952625,"uuid":"1224610537","full_name":"stackhpc/opentofu-vast-manila","owner":"stackhpc","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-06T00:34:06.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-06T02:30:41.037Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"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/stackhpc.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-29T12:59:59.000Z","updated_at":"2026-05-06T00:34:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/stackhpc/opentofu-vast-manila","commit_stats":null,"previous_names":["stackhpc/opentofu-vast-manila"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/stackhpc/opentofu-vast-manila","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopentofu-vast-manila","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopentofu-vast-manila/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopentofu-vast-manila/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopentofu-vast-manila/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stackhpc","download_url":"https://codeload.github.com/stackhpc/opentofu-vast-manila/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fopentofu-vast-manila/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:52.686Z","updated_at":"2026-05-30T14:30:52.785Z","avatar_url":"https://github.com/stackhpc.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VAST with Manila CSI\n\nEach OpenStack project gets an IB network and an ethernet network.\nSubnet pool is used to ensure no project networks overlap.\nNetworks are tagged with portal-internal and portal-storage.\n\nWe have some example tofu to deploy a project in this way,\nas an example.\n\nVAST VIP pool is created using part of the tenant network CIDR.\nWe have some tofu that can create that VIP pool in VAST.\nVAST gets one (private) share type per project.\nManila config updated with share backend that maps to VAST VIP pool.\nNote that no two share types can have the same name.\nQuestion: could manila share networks be used to model this instead?\n\nWe have the ability to configure VAST cinder and manila in this\nkolla-ansible branch:\nhttps://github.com/stackhpc/kolla-ansible/tree/feature/vast-on-epoxy\n\nThe manila config looks like:\n\n    [DEFAULT]\n    enabled_share_backends = vast_vlan_1123,vast_vlan_1124\n\n    {% raw %}\n    [vast_vlan_1123]\n    share_backend_name = vast_vlan_1123\n    share_driver = manila.share.drivers.vastdata.driver.VASTShareDriver\n    snapshot_support = true\n    driver_handles_share_servers = false\n    vast_mgmt_host = {{ manila_vast_mgmt_host }}\n    vast_mgmt_user = {{ manila_vast_mgmt_user }}\n    vast_mgmt_password = {{ manila_vast_mgmt_password }}\n    vast_root_export = {{ manila_vast_root_export | default(\"manila\") }}\n    vast_vippool_name = openstack_vlan_1123\n    {% endraw %}\n\nTo create the matching share type you do something like this:\n\n    openstack share type create vast_1121 false \\\n        --snapshot-support=true --extra-specs\n        share_backend_name=vast_vlan_1123 --public false\n    project_id=`openstack project show manila_test -f value -c id`\n    openstack share type access create vast_1121 $project_id\n    openstack share type access list vast_1121\n\ncapi-helm charts do not currently install the NFS CSI.\nYou can do that like this::\n\n    helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts\n    helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system --version 4.12.1\n\nMore details on NFS CSI here:\nhttps://github.com/kubernetes-csi/csi-driver-nfs/tree/9c782919ec6b08d4b0991cbeb060567fe6722cdf/charts\n\nOnce this is installed, you can use Manila CSI by modifying\nthe Azimuth template something like this:\n\n    addons:\n      openstack:\n        csiCinder:\n          enabled: true\n        defaultStorageClass:\n          enabled: true\n          # need a default for monitoring pods\n          isClusterDefault: true\n        csiManila:\n          enabled: true\n          provisioner: nfs.manila.csi.openstack.org\n          defaultStorageClass:\n            enabled: false\n            isClusterDefault: false\n            parameters:\n              # TODO: this is per openstack project\n              type: vast_todo\n\nThe above skips adding the k8s storage class, as it\nneed to have the project specific manila share type\nspecified in there.\nWe have an example of a pvc in storageclass.yaml.\nNote: it seems there is no way to add nconnect\ninto the nfs params, this way.\nNote: by default it adds an access rule for 0.0.0.0/0\nthat creates big problems, do not forget the correct CIDR.\n\nIf we create a manila share, we could also directly\nmount that with NFS, and specify things like nconnect\nvia the NFS CSI directly, as need in nfs.yaml.\nNote that NFSv4 protocol isn't added by Manila.\n\nNote there were some other bugs that need resolving:\n\n* os-region in manila creds is required but was missing\n* NFS CSI was not installed, but is required\n\nWhen debugging, note the useful logs are not in the default\nnfs csi container. If VAST is missing the tenant VLAN you\nwill see errors something like this:\n\n    kubectl logs -n kube-system csi-nfs-node-bsszr nfs\n    ...\n    GRPC call: /csi.v1.Node/NodePublishVolume\n    ...\n    No route to host.\n    ...\n    (no route to host only first time, future errors\n    talk about missing mount directory)\n    ...\n    \u003cfix switch\u003e\n    ...\n    I1117 11:58:34.931957       1 nodeserver.go:155] volume(494cc53c-eb82-4803-ba68-a4965dfebdf8) mount 192.168.4.200:/manila/manila-090fe082-9006-446a-a8ce-822997810d85 on /var/lib/kubelet/pods/fccd5c2e-0668-4b42-b504-ed4aa367837b/volumes/kubernetes.io~csi/pvc-83234964-efb7-4f27-bb2f-d7558cdb90f8/mount succeeded\n    I1117 11:58:34.931979       1 utils.go:118] GRPC response: {}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fopentofu-vast-manila","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackhpc%2Fopentofu-vast-manila","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fopentofu-vast-manila/lists"}