As an answer to my question about health (and for anyone coming here in the future), I should've just read the docs properly, it was very clear what to check I love Proget! These things just exists and are well documented 🥰
Posts made by carl.westman_8110
-
RE: Scaling Proget as an Azure Container Web App, what about the SQL DB?
-
Scaling Proget as an Azure Container Web App, what about the SQL DB?
Hi there!
We run Proget as an Azure Container Web App atm with great success. To this we have an Azure SQL DB and we have mounted an Azure storage account file share at /var/proget to get all the files stored in Azure and backed up there. Everything deployed with Bicep, which is awsome
There are some cool features for Azure Web Apps though that I would like to utilize to maximize the robustness and up time of our Proget instance for our developers.
One such feature is the "scale out" together with "Health check". This (if I understand correctly) would allow me to run multiple instances of the Proget container and Azure will ping them to see if they are healthy. If one is deemed unhealthy it will be brought down and replaced.
I however have some concerns about what happens if I scale out the web app to multiple instances but they all have the same SQL database and file share? The file share shouldn't be an issue, but what about the database? Can it handle writing and reading from multiple instances of an Azure Container Web App? Do you have any experience or best practices regarding this? I'm not very experienced with DB:s, and my biggest concern is that there will be any deadlock, corrupt data and overall breakage of the data in the DB, but maybe that is not a concern.
Also when on the topic, do you have any recommended path to probe/ping for checking health of both the Proget instance and the SQL DB connection?
I guess some endpoint which tries to read something from the DB and returns a non 200-299 code if the read fails would be good. It should be something "static" and not a path to a package which could be removed any time in the future.
(If there are concerns with the DB I guess a single instance with "auto replace" by the health check is good enough, but this would cause a one hour downtime which would be nice to not have )
It should be noted that we do not have any kind of load on Proget since we are pretty few devs, I would only like to use these features to increase the uptime and robustness of the app since people will come and complain at me if Proget is down
Cheers
Carl -
RE: Updating to Proget to 24.0.0 from 23.0.18 gives "Cannot drop the view 'database_firewall_rules', because it does not exist or you do not have permission."
Yep, it's there
schema_id = 4
is_ms_shipped = TrueI'm no database master of any kind, but I think I've chosen all defaults when creating both the Az sql server and the db
-
RE: Updating to Proget to 24.0.0 from 23.0.18 gives "Cannot drop the view 'database_firewall_rules', because it does not exist or you do not have permission."
Hi @atripp,
When creating a new empty Azure SQL DB this seems to be there by default.
It's also present in my Proget DB
-
Updating to Proget to 24.0.0 from 23.0.18 gives "Cannot drop the view 'database_firewall_rules', because it does not exist or you do not have permission."
Hi there!
Trying to update my Proget instance which is running as an Azure Container Web App from 23.0.18 to 24.0.0 but I get some weird error when the container is trying to start, see below.
2024-04-23T12:32:55.267041815Z Unhandled exception: Microsoft.Data.SqlClient.SqlException (0x80131904): Cannot drop the view 'database_firewall_rules', because it does not exist or you do not have permission. 2024-04-23T12:32:55.267114815Z at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) 2024-04-23T12:32:55.267119415Z at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) 2024-04-23T12:32:55.267122715Z at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, SqlCommand command, Boolean callerHasConnectionLock, Boolean asyncClose) 2024-04-23T12:32:55.267126315Z at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) 2024-04-23T12:32:55.267133315Z at Microsoft.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean isAsync, Int32 timeout, Boolean asyncWrite) 2024-04-23T12:32:55.267141515Z at Microsoft.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String methodName) 2024-04-23T12:32:55.267145115Z at Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQuery() 2024-04-23T12:32:55.267148215Z at Inedo.DbUpdater.SqlServer.SqlServerDatabaseConnection.ExecuteQueryWithSplitter(String query, SqlTransaction transaction) 2024-04-23T12:32:55.267151315Z at Inedo.DbUpdater.SqlServer.SqlServerDatabaseConnection.ExecuteScripts(IEnumerable`1 scripts, ChangeScriptState state) 2024-04-23T12:32:55.267154415Z at Inedo.DbUpdater.ConsoleHost.Update(String scriptPath, String connectionString, Boolean force) 2024-04-23T12:32:55.267157515Z at Inedo.DbUpdater.ConsoleHost.Run(ArgList args) 2024-04-23T12:32:55.267160515Z at Inedo.DbUpdater.ConsoleHost.RunAsync(IEnumerable`1 args) 2024-04-23T12:32:55.267163615Z at Inedo.ProGet.Service.Program.UpdateDatabaseSchemaAsync() in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E438586\Src\ProGet.Service\Program.cs:line 318 2024-04-23T12:32:55.267169215Z at Inedo.ProGet.Service.Program.Run(WebServerMode mode, Boolean runAsService, Boolean linuxContainer, String urls) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E438586\Src\ProGet.Service\Program.cs:line 28 2024-04-23T12:32:55.267173015Z at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor) 2024-04-23T12:32:55.267176215Z at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
I'm using an Azure sql database which have worked fine with 23.0.18
Cheers
Carl -
RE: Feature request: View html documentation published as universal package when previewing folder with index.html
I understand :) thanks for the quick answer!
Just want to say that Proget really is a super product :) been stuck with Azure Artifacts for a while and getting into a self hosted Proget instance really is a relief, all the features I was missing in ADO Artifacts now work as expected and we can actually use Universal Packages :) So thanks for that, keep up the good work!
-
Feature request: View html documentation published as universal package when previewing folder with index.html
Just wanted to post a feature request
If in a universal package in proget and you press Files and then Preview on a folder and that folder contains an index.html it would be frikkin awsome if Proget could open a new tab with the whole documentation vizualized
This would mean that we could use proget both for storing docs artifacts as well as for people to watch the documentation
As it is today we have to publish our sphinx or mkdocs htmls both as an artifact to Proget with the correct version as well as to a webserver which hosts the documentation where people can watch it.
Cheers
Carl -
RE: The remote certificate was rejected by the provided RemoteCertificateValidationCallback
Hi Dan!
My IT department solved the issue for now by ignoring certificate errors for LDAPS as per your suggestion above while it would be nice to get it to work "correctly" i'll wait until there is a guide available on how to set it up to not have to ignore the errors Many thanks for all your help!
For future reference and people
-
RE: The remote certificate was rejected by the provided RemoteCertificateValidationCallback
Ahh sorry, should have mentioned that, I'm running Proget as an Azure App Service yes :)
-
RE: The remote certificate was rejected by the provided RemoteCertificateValidationCallback
Thanks @Dan_Woolf!
Will try to add the certificate according to the guide :) do I need to follow this guide after I have the certificate available in the web app env?
-
The remote certificate was rejected by the provided RemoteCertificateValidationCallback
Hi there!
We're trying to setup LDAPS configuration towards Azure AD so that we can put the right permission on people when they login with SAML to Proget :) but we get some wierd error messages right now which we cannot figure out, anyone here have any idea? See the picture below.
Fyi, we are hosting our Proget as a web app in Azure with the Docker container and a functioning certificate.
Kind regards
Carl -
RE: Azure blob storage gives 500 internal server error
Ahh that could be it, I will update to latest version and try it again :)
-
RE: Azure blob storage gives 500 internal server error
@stevedennis said in Azure blob storage gives 500 internal server error:
Admin
Hi Steve! Here is the full message, can you see anything specific in it? Or is it to general?
System.NullReferenceException: Object reference not set to an instance of an object. at Azure.Storage.Blobs.Models.BlobOpenWriteOptionsExtensions.ToBlockBlobOpenWriteOptions(BlobOpenWriteOptions options) at Azure.Storage.Blobs.BlobClient.OpenWriteInternal(Boolean overwrite, BlobOpenWriteOptions options, Boolean async, CancellationToken cancellationToken) at Azure.Storage.Blobs.BlobClient.OpenWriteAsync(Boolean overwrite, BlobOpenWriteOptions options, CancellationToken cancellationToken) at Inedo.ProGet.Extensions.FileSystems.CaseInsensitiveFileSystem.CreateFileAsync(String fileName, FileAccessHints hints, CancellationToken cancellationToken) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E233598\Src\ProGetCoreEx\Extensions\FileSystems\CaseInsensitiveFileSystem.cs:line 66 at Inedo.ProGet.Feeds.Universal.UniversalFeed.InstallPackageInternalAsync(Stream packageStream, InstallPackageOptions options, Boolean promoted) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E233598\Src\ProGetCoreEx\Feeds\Universal\UniversalFeed.cs:line 743 at Inedo.ProGet.WebApplication.FeedEndpoints.Universal.UniversalRepositoryHandler.ProcessUploadRequestAsync(UniversalFeed feed, HttpContext context, WebApiContext apiContext, String url) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E233598\Src\ProGet.WebApplication\FeedEndpoints\Universal\UniversalRepositoryHandler.Upload.cs:line 76 at Inedo.ProGet.WebApplication.FeedEndpoints.FeedEndpointHandler.FeedRequestHandler.ProcessRequestAsync(HttpContext context) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E233598\Src\ProGet.WebApplication\FeedEndpoints\FeedEndpointHandler.cs:line 123
-
Azure blob storage gives 500 internal server error
I've configured a Universal feed with Azure blob storage according to the guide here
https://docs.inedo.com/docs/proget-howto-configure-feed-for-azure-blobBut when trying to upload a package I only get the following
If I change back to default storage the error disappears.
Anyone got any ideas?