https://www.orchest.io/ logo
#announcements
Title
# announcements
a

Allan Sene

08/11/2022, 6:46 PM
Guys, it is possible to change the
orchest-webserver
(or other ones) image to use a custom one? I know that there is a property
orchestWebServer
in the orchest-controller, but I'm not sure how is the best way to change this value.
πŸ‘€ 1
j

juanlu

08/12/2022, 6:21 AM
hi @Allan Sene, I guess your question is related to the one @Alexsander Pereira posted - pinging @Navid H and @Jacopo in case they are able to give you an answer
βœ… 1
n

Navid H

08/12/2022, 6:53 AM
Hi Alan, this field is managed by controller and if user changes it, controller changes it back
y

Yannick

08/12/2022, 7:15 AM
Hi @Allan Sene and @Alexsander Pereira πŸ‘‹ I take it that you want to extend Orchest, e.g. changing the color of the background, and use your custom version instead. For this, I would recommend using the
Registry
option in the
OrchestSpec
to specify the registry where you store your custom images. For example, when not specifying it it will default to DockerHub (
<http://docker.io|docker.io>
) and use our images. This way you can host the images that you want to use in Orchest. To make sure the in-app updating still works your version tags need to follow CalVer (given that we enforce it in the orchest-cli and call it when updating through the orchest-api). When looking to extend Orchest it is good to be aware of the fact that the Orchest product depends on some external endpoints for some functionality. For example, to incorporate examples into the product it will pull the applicable information from https://github.com/orchest/orchest-examples, and to show a update dialog (indicating that a new version is available) it will also poll from an external endpoint (so you would have to make sure this endpoint returns a version of your choosing). Of course you can change, in the code, the endpoints that are called (and how). --- For the case of development, you just need to make sure that your images are on the nodes under the
orchest/orchest-webserver
etc. names so that the
imagePullPolicy
will resort to using your images instead of pulling them from DockerHub (or your custom registry). For this, we use the
scripts/build_container.sh
script (as you can read in the development docs). I hope that answers your question. If it doesn't or if it doesn't cover your use case, then please feel free to reach out again πŸ˜‰
πŸ™Œ 1
a

Allan Sene

08/12/2022, 9:54 PM
Awesome explanation, @Yannick . So, we can disable the
in-app update
feature as well, right? This way, we can keep track about the updates, making sure that our changes does not conflict with the main repo
y

Yannick

08/13/2022, 5:24 AM
Yep you can dissable the β€œin-app update”. Just need to remove the right lines of code πŸ˜‰ Let me know if you need me to point you in the right direction.
a

Alexsander Pereira

08/16/2022, 1:57 PM
@Yannick I used the script to build the images. I saw that you suggested modifying the services/orchest-api/app/app/core/environment_image_builds.py file in the orchest-api to pull my custom images. But how do I register the custom orchest-api image in EKS?
I need a more practical example of how to deploy custom images in EKS.
y

Yannick

08/16/2022, 2:19 PM
I saw that you suggested modifying the services/orchest-api/app/app/core/environment_image_builds.py file in the orchest-api to pull my custom images.
Please be aware that these changes only apply to Environment base images, not to changes for e.g. the
orchest-webserver
,
auth-server
or other Orchest services.
But how do I register the custom orchest-api image in EKS?
This is done by pushing all the images to another registry (other than DockerHub because that is where we host our images) and specifying the
Registry
option (under
OrchestSpec
) in the CR Object to point to that registry. Then the
orchest-controller
should pull the images from the registry you configured, containing your custom images. Does that answer your question?
Using your own registry is also the most robust, in the sense that it is completely isolated and thus you can be certain of other services not suddenly depending on our registry.
πŸ˜” 1
a

Alexsander Pereira

08/16/2022, 2:36 PM
But how do I submit my registry in OrchestSpec? Would you have an example? Would it be in this file?
Copy code
apiVersion: <http://orchest.io/v1alpha1|orchest.io/v1alpha1>
kind: OrchestCluster
metadata:
   name: cluster-1
   namespace: orchest
spec:
   singleNode: true
Isn't there a way to change just the image of the orchest-webserver? I'm just modifying one logo. Building all the images would be a very complicated job to automate.
@Yannick If it is necessary to modify the registry, I just need an example of how to do this in the .yaml file that I send to EKS.
y

Yannick

08/16/2022, 2:45 PM
You want to be specifying https://github.com/orchest/orchest/blob/master/services/orchest-controller/pkg/apis/orchest/v1alpha1/types.go#L155. So that would be:
Copy code
apiVersion: <http://orchest.io/v1alpha1|orchest.io/v1alpha1>
kind: OrchestCluster
metadata:
   name: cluster-1
   namespace: orchest
spec:
   singleNode: true
   orchest:
      registry: ...
Isn't there a way to change just the image of the orchest-webserver?
At this point in time there is not. It would require some changes in the
orchest-controller
to make this possible. For your information, we don't allow changing only the image for the
orchest-webserver
(and other services) to ensure that Orchest is in a consistent state and we know we can update to a new version. Of course we can make some changes to make it possible to specify a custom image. Could you share a little more about your use case and what you are looking to achieve? E.g. just specifying
dadosfera-orcehst-webserver:v2022.06.6
as the image to be used for the
orchest-webserver
?
a

Alexsander Pereira

08/16/2022, 2:47 PM
OK, I will try...
Do I have to send all the images generated by scripts/build_containers.sh to my registry?
n

Navid H

08/16/2022, 2:49 PM
Yes, All the images must be present in the same registry
a

Alexsander Pereira

08/16/2022, 3:12 PM
@Yannick What I need is just to provide a custom image of orchest/orchest-webserver and orchest/auth-server modifying a logo. This is the use case. I can already do this by modifying the Dockerfile of these images. The Spec file lets you define an image, shouldn't that work? What is it for?
Copy code
apiVersion: <http://orchest.io/v1alpha1|orchest.io/v1alpha1>
kind: OrchestCluster
metadata:
  name: cluster-1
  namespace: orchest
spec:
  singleNode: true
  orchest:
    orchestWebServer:
      image: alexsanderdadosfera/orchest-webserver:latest
y

Yannick

08/16/2022, 3:24 PM
The Spec file lets you define an image, shouldn't that work?
This doesn't work currently to prevent users from "breaking things". Given that we can no longer ensure that Orchest works correctly when specifying a custom image. Nevertheless, @Navid H and I have just had a discussion and we can make it possible to specify a custom image (just like you did above) πŸ™Œ . Be aware that this would result in updating to no longer work and you would have to manually update the CR Object defining your
OrchestCluster
in case you want to deploy another Orchest version with your custom changes. Reason being is that we can only update an
OrchestCluster
that uses only "Orchest owned" images, thus if you specify a custom image then updating will no longer work. In summary, we will do a new Orchest release (hopefully today or tomorrow) that allows you to specify a custom image in the CR
Spec
at the cost of losing the ability to update from within the application (or using the
orchest-cli
) and having to manually update the
OrchestCluster
Spec
Does that work for you @Alexsander Pereira?
a

Alexsander Pereira

08/16/2022, 5:47 PM
Great! It's okay to stop the update as we can update the images manually.
πŸ‘ 1
@Yannick Thanks! I'm waiting for the version. Thank you so much ❀️
y

Yannick

08/17/2022, 11:36 AM
And thank you for the explanation. Will keep you posted on the progress.
Quick update from our end. The initial PR (created by @Navid H πŸ’ͺ ) can be found here: https://github.com/orchest/orchest/pull/1205.
a

Alexsander Pereira

08/18/2022, 2:13 PM
@Yannick What good news... I forgot to ask if it will be a requirement to be a Dockerhub image or can I enter a public image using the ECR? Example: public.ecr.aws/u5k1d2l0/orchest-auth-server
n

Navid H

08/18/2022, 2:17 PM
@Alexsander Pereira: Once we have merged this branch, it would be possible to use any image, in any registry, provided that the registry does not require credentials to pull the image.
πŸ”₯ 1
a

Alexsander Pereira

08/18/2022, 2:23 PM
Excellent!
y

Yannick

08/18/2022, 3:48 PM
We will release the addition tomorrow πŸ™†β€β™‚οΈ
a

Allan Sene

08/18/2022, 8:20 PM
Great, guys. I'm very happy to know that you promptly solve this one. Thanks!
y

Yannick

08/19/2022, 9:46 AM
FYI The release is out (link). You can now specify a custom image for any of the Orchest services through the
OrchestCluster
CR on creation, e.g. for the
orchest-webserver
as per an example of @Alexsander Pereira (link)
a

Alexsander Pereira

08/19/2022, 7:03 PM
@Yannick Worked perfectly!
πŸ™Œ 2
y

Yannick

08/19/2022, 7:50 PM
That is great to hear! πŸ™Œ