-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support NetBox custom scripts #10
Comments
I've been pondering this myself as well. I'm not so sure about the ConfigMap for this, it feels kind of wrong for scripts, but I don't have an immediate better answer for you either. The old |
Ah I wasn't aware you could do that (re: |
something good to know is that the scripts must be also on the worker pods, a working example for me: worker:
extraContainers:
- name: git-custom-scripts
image: k8s.gcr.io/git-sync/git-sync:v3.6.0
env:
- name: GIT_SYNC_REPO
value: <some_repo>
- name: GIT_SYNC_BRANCH
value: main
- name: GIT_SYNC_ROOT
value: /data
- name: GIT_SYNC_PERIOD
value: 10m
volumeMounts:
- name: custom-scripts
mountPath: /data
extraVolumeMounts:
- name: custom-scripts
mountPath: /opt/netbox/netbox/scripts
extraVolumes:
- name: custom-scripts
emptyDir: {}
extraContainers:
- name: git-custom-scripts
image: k8s.gcr.io/git-sync/git-sync:v3.6.0
env:
- name: GIT_SYNC_REPO
value: <some_repo>
- name: GIT_SYNC_BRANCH
value: main
- name: GIT_SYNC_ROOT
value: /data
- name: GIT_SYNC_PERIOD
value: 10m
volumeMounts:
- name: custom-scripts
mountPath: /data
extraVolumeMounts:
- name: custom-scripts
mountPath: /opt/netbox/netbox/scripts
extraVolumes:
- name: custom-scripts
emptyDir: {}
extraConfig:
- values:
SCRIPTS_ROOT: /opt/netbox/netbox/scripts/netbox-scripts.git/scripts it took me a while to figure it out, as my scripts were failing with this exception when they were missing on the worker node:
|
From #148 by @florianschendel
|
Hmm, this has become significantly more complicated with NetBox 4 as (at least on my setups) Scripts and Reports are not being autodiscovered as with 3.7.8 and before. With 3.7.8 we could - like described in this issue - mount/copy our Scripts to /opt/netbox/netbox/scripts and Reports to /opt/netbox/netbox/reports and they were usable. With 4.1.3 the Reports feature has been removed and a single directory
I cannot see a clean solution without ReadWriteMany storage for all nodes. Every other solution I can think of is somewhat of a hack or may break with the next change of NetBox. Kind of weird, that this feature was implemented this way. I think I get the intend, but it looks very much designed for single-node-instances of NetBox with local running rqworkers. Without any sort of central writable network storage this feature is broken for cluster installations. If all files are in the database already, why do they have to be written to the filesystem beforehand by the web process? Why do not all workers upon job execution just create a temporary file based on the contents in the database? Or invoke the scripts in memory only. Also this leads to local DataSources effecively being tripled. The file resides in the source path, in the database row and in |
Is there anybody working on this? |
I'd like to be able to use custom scripts in Netbox.
I believe this will need a volume to be mounted at
/opt/netbox/netbox/scripts
in the deployment, and a means by which Helm users can store their scripts in a configmap (which I'm not so clear on).The text was updated successfully, but these errors were encountered: