Azure-Player / azure.datafactory.devops

Azure DevOps Deployment Tasks for Azure Data Factory objects
MIT License
39 stars 21 forks source link

Bundle open ssl #77

Closed pradeepramesh26 closed 3 months ago

pradeepramesh26 commented 2 years ago

Hi Nowinski, I have a requirement for deploying ADF through Azure DevOps Pipelines using Service connections configured with CERTS. When I consumed your extension , I found that the OpenSSL was not bundled along with the extension , which caused the Publish ADF task to fail. Here is my proposed solution to bundle OpenSSL which in line with MicroSoft implementation for his Key Vault and App Service Deployment tasks.

What was added :

  1. Package.json - for handling node modules.
  2. Build Scripts - to download and archive.

Link to Azure Key Vault : https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureKeyVaultV1

pradeepramesh26 commented 2 years ago

Hi Nowinski, Please let me know if there is any more information required on the above change

NowinskiK commented 2 years ago

What's the storage vstsagenttools.blob.core.windows.net? Who is the owner of it? The task(s) should not allow downloading any external libraries - all of them should be provided by a specific version and code transparent in the repo.

pradeepramesh26 commented 2 years ago

vstsagenttools.blob.core.windows.net is blob storage owned by Microsoft. Library is not getting downloaded at the task level , its getting downloaded while packaging the extension. OpenSSL.exe is required for the task to run . without which the task fails. Approach proposed is similar to what Microsoft has done for their Tasks.

pradeepramesh26 commented 2 years ago

Hi Nowinski, Let me know if any more details is required.

NowinskiK commented 2 years ago

Thanks for the details. I will take a look as soon as I can.

NowinskiK commented 2 years ago

Hi @pradeepramesh26. I reviewed the code, thanks for your contribution. My understanding is that the code you added does 2 things: 1) Downloads OpenSSL ZIP from Azure Storage 2) Extracts the ZIP to two tasks' subfolders (e.g. \testLinkedServiceTask\ps_modules\VstsAzureHelpers_\openssl) If so - I removed all NodeJS code and replace it with a few lines of PS code in the existing build.ps1 script. Let me know if these changes look good and work for you.