cloudfoundry / bosh-openstack-cpi-release

BOSH OpenStack CPI
Apache License 2.0
36 stars 59 forks source link

"user_data" needs to be encoded in base64 without newlines #255

Open ogrand opened 2 years ago

ogrand commented 2 years ago

Hello,

Bosh Openstack cpi send a POST request for instance creation, with body content user_data base64 encoded row containing newlines \n every 60 characters:

body: {
  "server": {
    "flavorRef": "s3.small.1",
    "name": "vm-d35f15af-9840-44be-8d95-a2b1e1ad5358",
    "imageRef": "97727138-8334-4188-9b1e-4x558599d99b",
    "user_data": "eyJzZXJ2ZXIiOnsibmFtZSI6InZtLWQzNWYxNWFmLTk4NDAtNDRiZS04ZDk1\nLWEyYjFlMWFkNTM1OCJ9LCJuZXR3b3JrcyI6eyJ0Zi1uZXQtY29hYi1kZXBs\ncy1pb

Recent upgrade (openstack 22.3) is less permissive for base64 decoding and refuses newlines \n inside base64 encoded value.

To be compliant, it will be nice to replace encoding format in /var/vcap/packages/bosh_openstack_cpi/vendor/bundle/ruby/*/gems/fog-openstack-*/lib/fog/openstack/compute/models/server.rb ruby script:

Replace [ascii_userdata].pack('m') with [ascii_userdata].pack('m0') which disable newlines assertion.

Thanks. Olivier

rkoster commented 2 years ago

@ogrand could you create a PR for that?

ogrand commented 2 years ago

Hello Ruben, I create a PR in fog-openstack repository for this issue. Hope It will be merged soon.

Regards. Olivier

ogrand commented 2 years ago

Hello Ruben, do you know if fog-openstack repository included in bosh openstack cpi is always active. Nothing new for my PR : https://github.com/fog/fog-openstack/pull/528

ramonskie commented 1 year ago

it seems that the fog-openstack repo is dying as there is no activity since august

ramonskie commented 1 year ago

@ogrand the upstream pr has been merged could you make a pr so that the the cpi is using the updated version.