diff --git a/nodepool/driver/aws/adapter.py b/nodepool/driver/aws/adapter.py index e8f6dde00..d670950b5 100644 --- a/nodepool/driver/aws/adapter.py +++ b/nodepool/driver/aws/adapter.py @@ -1709,7 +1709,9 @@ class AwsAdapter(statemachine.Adapter): } if label.userdata: - template_data['UserData'] = label.userdata + userdata_base64 = base64.b64encode( + label.userdata.encode('ascii')).decode('utf-8') + template_data['UserData'] = userdata_base64 template_args = dict( LaunchTemplateData=template_data, diff --git a/nodepool/tests/unit/test_driver_aws.py b/nodepool/tests/unit/test_driver_aws.py index a74fa2372..794f18a82 100644 --- a/nodepool/tests/unit/test_driver_aws.py +++ b/nodepool/tests/unit/test_driver_aws.py @@ -1444,7 +1444,8 @@ class TestDriverAws(tests.DBTestCase): LaunchTemplateId=lt1['LaunchTemplateId'])[ 'LaunchTemplateVersions'][0] lt1_data = lt1_version['LaunchTemplateData'] - self.assertEqual(lt1_data['UserData'], 'some-command') + lt1_userdata = base64.b64decode(lt1_data['UserData']).decode() + self.assertEqual(lt1_userdata, 'some-command') # Get details from second launch template lt2_version = self.ec2_client.\