Navigation

    Inedo Community Forums

    Forums

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. mike_5084
    3. Topics
    M
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Topics created by mike_5084

    • M

      [ProGet] Admin page times out with very large number of LogMessages in database
      Support • • mike_5084  

      1
      0
      Votes
      1
      Posts
      16
      Views

      No one has replied

    • M

      Deleting multiple package versions in parallel via API causes SQL deadlock
      Support • • mike_5084  

      3
      0
      Votes
      3
      Posts
      14
      Views

      M

      Hi Adam, Thanks for the response. I think a rate limit on the API for Free licenses would be fair - I'd prefer that to a capability restriction in any case :-). The script I've been working is an evolution of a very basic one I wrote about 5 years ago that simply deletes the *.nupkg files off the filesystem storage if they're older than a certain date, so the package versions that my new one is deleting via the API are mostly a historic backlog of the version "stub" records - going forward the daily deletions will be a lot fewer so a rate limit wouldn't be an issue. This is all part of some work we're doing to migrate our Azure VM-based ProGet Free instance to an Azure Kubernetes container instance - we actually got it working pretty quickly and we're happy we can remove another VM from our infrastructure landscape. It's also going to allow us to reduce our Azure resource costs by quite a bit, so I'm hoping I can make a case to our team lead that we should re-invest that in an annual Basic license to take advantage of some of the additional features - I'm particularly interested in the package scanning and license scanning capabilities so . As an aside, I did find a small snag with the official Inedo ProGet container registry - it was mostly a problem our side but I'll post a separate ticket about it for completeness... Thanks again. M
    • M

      ProGet - support for running on Azure Kubernetes Cluster?
      Support • • mike_5084  

      5
      0
      Votes
      5
      Posts
      37
      Views

      M

      Will do - happy to be a guinea pig :-) I've found one small hiccup already I think - our Azure Active Directory instance has enforced MFA on accounts, so I won't be able to use Windows Authentication for ProGet to connect to SQL Server and I've been advised to use a Service Principal instead, but System.Data.SqlClient doesn't support authenticating to SQL Server with a service principal: # build the connection string PS C:\temp> $connectionString = ([ordered] @{ "Server" = "my-sql-server.database.windows.net" "Authentication" = "Active Directory Service Principal" "Encrypt" = "True" "Database" = "my-sql-database" "User Id" = "00000000-0000-0000-00000000000" "Password" = "<secret-generated-by-azure>" }).GetEnumerator() | foreach-object { $_.Name + "=" + $_.Value } | join-string -Separator ";" # show the connection string PS C:\temp> $connectionString Server=my-azure-database.database.windows.net;Authentication=Active Directory Service Principal;Encrypt=True;Database=my-proget-database;User Id=00000000-0000-0000-0000-000000000000;Password=<secret-generated-by-azure> PS C:\temp>.\inedosql.exe update . --connection-string=$connectionString Unhandled Exception: System.ArgumentException: Invalid value for key 'authentication'. at System.Data.Common.DbConnectionStringBuilderUtil.ConvertToAuthenticationType(String keyword, Object value) at System.Data.SqlClient.SqlConnectionString.ConvertValueToAuthenticationType() at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) at System.Data.SqlClient.SqlConnection..ctor(String connectionString, SqlCredential credential) at Inedo.DbUpdater.SqlServer.SqlServerDatabaseConnection.GetConnection() at Inedo.DbUpdater.SqlServer.SqlServerDatabaseConnection.ExecuteTable[TResult](String query, Func`2 adapter, SqlTransactiontransaction, SqlParameter[] args) at Inedo.DbUpdater.SqlServer.SqlServerDatabaseConnection.GetChangeScriptVersion(SqlTransaction transaction) at Inedo.DbUpdater.SqlServer.SqlServerDatabaseConnection.GetState() at Inedo.DbUpdater.Program.Update(String scriptPath, String connectionString, Boolean force) at Inedo.DbUpdater.Program.Run(ArgList args) at Inedo.DbUpdater.Program.Main(String[] args) See System.ArgumentException: Invalid value for key 'authentication' above. The answer is apparently to migrate to the Microsoft.Data.SqlClient package which supports additional Azure-based authentication methods - that's obviously quite a big change though but I figured I'd mention it so you were aware... See https://learn.microsoft.com/en-us/sql/connect/ado-net/sql/azure-active-directory-authentication?view=sql-server-ver16#using-service-principal-authentication for more details. Here's the equivalent login from SQL Server Management Studio, which works with the credentials I've put in my connection string above: In the meantime I'll follow up with our secops team to see if I can get an exemption from the MFA policy for a new Azure AD account...
    • 1 / 1