How to Use DevStream in an Air-gapped Environment #1082
daniel-hutao
started this conversation in
Ideas
Replies: 3 comments
-
Points 2.1 to 2.3 look good. The only problem I think is the Jenkins plugins. I think manually downloading the plugins and then using official CLI tools to install them is the way to go. See more here: https://github.com/jenkinsci/plugin-installation-manager-tool |
Beta Was this translation helpful? Give feedback.
0 replies
-
The coding progress is tracked by #1084 |
Beta Was this translation helpful? Give feedback.
0 replies
-
2.4 we can download these plugins before, then install them in jenkins-cli. I think this can be done by script |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
1. Background
We can currently only use
dtm
where the Internet can be connected, but a lot of company environments are air-gapped. I wanna find a way to usedtm
in an air-gapped environment.2. Some of the Major Materials I've Identified
dtm
anddtm plugins
Jenkins
needs its pluginsLet's give the formulas together.
2.1
dtm
anddtm plugins
script
, it can recognize thedtm
version, plugin category, plugin CPU-arch, etc.Anyway, we need to download the
dtm
anddtm plugins
on the mac/Windows PC, and then run them on an air-gapped Linux environment.2.2 Container Images
The image problem is not easy to solve, and we need to consider a bit more aspects, such as:
imagePullPolicy
toAlways
, such asJenkins
. There are even some Deployments that are managed by ak8s Operator
anddtm
can't change theimagePullPolicy
configuration through the API. (Prepare all images without an image repo isn't a good way)docker daemon
orcontainerd
may support HTTP or HTTPS only. (Deploy a Harbor beforedtm apply
isn't a good way, for the HTTPS cluster, certificate configuration may require some complicated operations.)Therefore, we need to make some assumptions/requirements:
The air-gapped environment has an
image repo
already.Then, what
dtm
needs to do is to make each plugin support the specified image name, for example:https://example.io:9000/jenkins/jenkins:2.346.3-jdk11
2.3 Helm Charts
That's easy, we could do it in 2 steps:
dtm
support thelocal chart
installation.2.4 Jenkins Plugins (Not dtm Plugins) or Other Things Need to Download
We identify the required stuff for each plugin and then tell the users how to get it manually through documentation?
Let's discuss these formulas together and give a to-do list after. @devstream-io/devstream
Beta Was this translation helpful? Give feedback.
All reactions