Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Problems with running proget5.3.16 in kubernetes1.18.3



  • kubernetes version: 1.18.3
    proget version: 5.3.16
    sqlserver version: 2019
    os version: centos7.8

    I use the proget deployed by chart, and I can access port 80 when running in the local environment. When I deploy on Alibaba Cloud, I cannot access port 80;
    I tried to use exec to enter the container and execute "dotnet /usr/local/proget/web/ProGet.WebApplication.dll", it listened to port 80 and I can access it. I don't know the workflow of mirroring, I want to ask for help here.

    Chart address: https://github.com/hyt05/proget.git





  • I am trying "proget.inedo.com/productimages/inedo/progetmono:5.3.16", but I don't know the difference between "progetmono" and "proget". If you can, I hope you can explain



  • As I search about mono
    "Mono is a software platform designed to allow developers to easily create cross platform applications. Sponsored by Novell, Mono is an open source implementation of Microsoft’s .NET Framework based on the ECMA standards for C# and the Common Language Runtime. A growing family of solutions and an active and enthusiastic contributing community is helping position Mono to become the leading choice for development of Linux applications."

    It's something like support C#, .net in linux env.
    In your case I don't know exactly what are different between 2 images (no dockerfile or docs to track).
    I faced issue when I deploy this image proget.inedo.com/productimages/inedo/proget on openshift 3.11, then I tried to use mono image then it work normally.



  • Thank you so much for your suggestion, it worked


  • inedo-engineer

    Hi @Crimrose and @hyt5036_7430,

    The difference in the proget.inedo.com/productimages/inedo/proget and the proget.inedo.com/productimages/inedo/progetmono is that the proget image is built using .Net Core 3.1 (it will be .NET 5 in ProGet 5.3.17) and progetmono uses the Mono framework with our code compiled to .NET Framework 4.5.2 as @Crimrose has mentioned above. We actually have a blog post on this.

    The issue you are running into is that the Kubernetes extension did not add support for .Net Core until version 1.9.0-CI.5 of the Kubernetes extension. Do not use 1.9.0-CI.6 because that includes on .NET 5 in preparation of ProGet 5.3.17. To install 1.9.0-CI.5, you will need to follow the Extension Manual Install Guide and you will need to make sure to copy the extension to the Extensions.ExtensionsPath inside the container using docker exec -it <image name> sh using the shell or copy it to the folder the container is mapped to on the Docker host.

    The Whitesource and Sonatype extensions have this same issue currently.

    I hope this helps! Please let me know if you have any questions.

    Thanks,
    Rich


  • inedo-engineer

    Hi @Crimrose and @hyt5036_7430,

    I just made some tweaks to our 1.9 packages and released the ProGet 5.3.16 compatible extensions as -RC versions. If you change your Extensions.UpdateFeedUrl to https://proget.inedo.com/feeds/PrereleaseExtensions you can install the latest RC version of these extensions and they will work with the proget or progetmono image. Since the proget and progetmono images include the exact same features, you can switch between them without loss of data.

    Thanks,
    Rich



  • Thanks for explanation @rhessinger .
    Can you help me with another question about the issue related to update version of proget from 5.3.15 to 5.3.16 on Openshift 3.11 with MSSQL Express 19 on centos 7?

    Before I was used the version 5.3.15, then I decided to update the image to use version 5.3.16 but the pods show the error logs that the version of data database is 5.3.15, for proget is 5.3.16 -> Proget pods crashed several times due to data in database not match with proget version.

    Finally I decided to drop all tables in proget to make it generate new data and this pod become normally. But this solution just for testing environment. My question is how can I perform updating version for proget without wipe out the database?


  • inedo-engineer

    Hi @Crimrose,

    When you first start the ProGet container, our code will run a database schema update to make any missing changes. My guess is that in your Kubernetes cluster, you have a mix of 5.3.15 pods and 5.3.16 pods all trying to access the database at the same time, causing Kubernetes to stop and restart pods. I would stop all your ProGet pods and try starting just a 5.3.16 pod and see if that works.

    If that does not work, you can manually update the database schema. To do this, you would need to download the manual install files from my.inedo.com and download inedosql from GitHub. Inedosql is a cross platform application, so you can run it directly on Linux using the .NET 5 CLI or downloading the specific Linux version or from a Windows machine. Then you can follow just the Run inedosql to update the database section of the manual install guide. The SQLScripts folder exists in the Manual Install files.

    Hope this helps!

    Thanks,
    Rich


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation