Skip to content

Conversation

@serdarozerr
Copy link

Context

This PR prepares the codebase for replacing the Fog library. Azure support through Fog will be removed in the future, so we need to start migrating away from it step by step.

Solution

A Go-based storage-cli client is being developed in this repository: https://github.com/cloudfoundry/storage-cli/
The project is still under development, and missing features are being added gradually. This client needs config json to run. With this PR we added .erb files to generate config files during deployment.

Links to any other associated PRs

  • I have viewed signed and have submitted the Contributor License Agreement

  • I have made this pull request to the develop branch

  • I have run CF Acceptance Tests on bosh lite

- templates updated to be compatible with storage-cli.
- All providers supported by storage-cli added into templates
- package for storage-cli created
- blob storage-cli dev version added to be tested
- Since these json's also consumed by storage-cli and this custom field not exist at storage-cli config struct. Even though go lang did not complain about extra fields, we should not add.
@serdarozerr serdarozerr changed the title Feature/storage cli Storage CLI Client Dec 16, 2025
- storage-cli/storage-cli-0.0.1-linux-amd64 uploaded into capi-release-blobs bucket
options["credentials_source"] = "static"
options["access_key_id"] = l.p("#{scope}.aws_access_key_id")
options["secret_access_key"] = l.p("#{scope}.aws_secret_access_key")
options["region"]=l.p("#{scope}.region")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"region" is not required by the original config, and it defaults to "us-east-1" (like AzureCloud for azure environment)

Copy link
Author

@serdarozerr serdarozerr Dec 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

based on the doc, it must be provided. It is configured as optional at storage-cli side since it has default value.

ca_cert=l.p("#{scope}.ca_cert",nil)
unless ca_cert.empty?
options["tls"]={"cert"=>ca_cert}
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we stick to the naming like in cf-deployment.yml for webdav?
ca_cert:
blobstore_timeout:
password:
private_endpoint:
public_endpoint:
username:

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for the webdav provider, we can discus(arrive at a conclusion) later on otherwise we have to do some changes in this config file which requires discussion with bosh team.

Copy link
Contributor

@jochenehret jochenehret left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, no regressions found. Just some docu updates are missing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants