https://github.com/theforeman/foreman_fog_proxmox

Foreman plugin to add Proxmox compute resource based on fog-proxmox gem

https://github.com/theforeman/foreman_fog_proxmox

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 34 committers (2.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.1%) to scientific vocabulary

Keywords

cloud cloud-computing fog fog-computing fog-proxmox foreman foreman-plugins foreman-proxmox hacktoberfest proxmox proxmox-ve theforeman

Keywords from Contributors

sequences autograder standardization interpretability hack meshing interaction projections parallel report
Last synced: 6 months ago · JSON representation

Repository

Foreman plugin to add Proxmox compute resource based on fog-proxmox gem

Basic Info
  • Host: GitHub
  • Owner: theforeman
  • License: gpl-3.0
  • Language: Ruby
  • Default Branch: master
  • Size: 10.7 MB
Statistics
  • Stars: 112
  • Watchers: 17
  • Forks: 33
  • Open Issues: 32
  • Releases: 48
Topics
cloud cloud-computing fog fog-computing fog-proxmox foreman foreman-plugins foreman-proxmox hacktoberfest proxmox proxmox-ve theforeman
Created almost 8 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog Contributing Funding License Support

README.md

ForemanFogProxmox

CI Maintainability Test Coverage Gem Version

ForemanFogProxmox

Foreman plugin that adds Proxmox compute resource: managing virtual machines and containers using the fog-proxmox module.

It is intended to satisfy this feature.

If you like it and need more features you can contribute or simply support it:

Support

You can support the plugin development via the following methods:

Compatibility versions

|Fog-proxmox|Proxmox|Foreman-fog-proxmox|Foreman|Ruby| |--|--|--|--|--| |<0.6|<5.3|<0.6|<=1.20|>=2.3| |=0.6|<5.4|=0.6|=1.21|>=2.3| |<=0.8 |<6.0|>=0.7|>=1.22|>=2.3| |<0.9 |<6.0|=0.9|>=1.22|>=2.3| |>=0.9 |>=5.4|>=0.9.1|>=1.22|>=2.3| |>=0.10 |>=5.4|>=0.9.4|>=1.22|>=2.5| |>=0.11 |>=5.4|>=0.10|>=1.22|>=2.5| |>=0.12 |>=6.1|>=0.11|>=2.0|>=2.5| |>=0.14 |>=6.2|=0.13.0|>=2.4|>=2.7| |>=0.14 |>=6.2|>=0.13.1|>=2.3|>=2.5| |>=0.14 |>=6.2,<8.0|>=0.14.0|>=2.5|>=2.5|

Installation

From OS packages (required)

Please see the Foreman manual for complete instructions:

Install from package is the easiest way to install the plugin. Choose the latest release plugins repository. If you don't find it in the same foreman release repository, get it from the nightly repository.

Then you can install it with the package manager, in Debian/Ubuntu:

shell sudo apt-get install ruby-foreman-fog-proxmox

and in Fedora/Redhat Linux:

shell sudo dnf install rubygem-foreman_fog_proxmox

Redhat, CentOS or Fedora users should also setup Selinux to allow foreman and all its plugins to work.

From gem

See complete details in plugin installation from gem

Here is a Debian sample:

shell sudo apt install -y foreman foreman-pgsql

  • Use only foreman user (not root!) sudo -u foreman ...
  • In /usr/share/foreman/bundler.d directory, add Gemfile.local.rb file and add this line in it:

shell echo "gem 'foreman_fog_proxmox'" | sudo -u foreman tee /usr/share/foreman/bundler.d/Gemfile.local.rb

  • Install the gem plugin:

shell sudo -u foreman /usr/bin/foreman-ruby /usr/bin/bundle install

  • Precompile plugin assets:

You need nodejs installed in order to use foreman-assets package.

shell /usr/bin/foreman-ruby /usr/bin/bundle exec bin/rake plugin:assets:precompile[foreman_fog_proxmox]

  • Compile plugin translations if (french) needed :

shell /usr/bin/foreman-ruby /usr/bin/bundle exec bin/rake plugin:gettext[foreman_fog_proxmox]

  • Complete installation of foreman 1.22 with foreman-installer:

shell sudo apt install -y foreman-installer sudo foreman-installer

If you don't want to have HTTP 503 errors when apt is trying to install puppetserver, then add this before launching foreman-installer:

shell echo 'Acquire::http::User-agent "Mozilla/5.0 (Linux)";' | sudo tee /etc/apt/apt.conf.d/96useragent

See complete details in plugin installation from gem

Then you can check plugin installation after login into your new foreman server seeing the about foreman page:

About resources About greffon

Usage

Development

Dev prerequisites

See Foreman dev setup

  • You need a Proxmox VE 6.2+ server running.
  • You need ruby 2.7. You can install it with asdf-vm.
  • You also need nodejs 14 in your dev machine to run webpack-dev-server. You can install it with asdf-vm.

Platform

  • Fork this github repo.
  • Clone it on your local machine
  • Install foreman v2.5+ on your machine:

shell git clone https://github.com/theforeman/foreman -b develop

  • Create a Gemfile.local.rb file in foreman/bundler.d/
  • Add this line:

ruby gem 'foreman_fog_proxmox', :path => '../../theforeman/foreman_fog_proxmox' gem 'fog-proxmox', :path => '../../fog/fog-proxmox' # optional if you need to modify fog-proxmox code too gem 'ruby-debug-ide' # dev gem 'debase' # dev gem 'solargraph' # dev gem 'simplecov' # test

  • In foreman directory, install dependencies:

```shell gem install bundler

prerequisites libraries on Ubuntu OS:

sudo apt install postgresql-client-13 libpq-dev libsystemd-dev

bundle config set without 'libvirt ovirt' bundle install ```

shell npm install

  • Configure foreman settings:

shell cp config/settings.yaml.test config/settings.yaml

add these lines to config/settings.yml:

yaml :webpack_dev_server: true :destroy_vm_on_host_delete: true # optional, could be set on UI :logging: :level: debug :loggers: :sql: :enabled: false

  • SQLite is no more default rails dev or test database, instead add:

shell DATABASE_URL=nulldb://nohost

  • (Optional) test and dev with postgresql database:

shell cp config/database.yml.example config/database.yml

add these lines to each environment in config/database.yml:

yaml host: localhost username: foreman password: foreman

shell cp config/ignored_environments.yml.sample config/ignored_environments.yml docker run --name foreman-db -v foreman_data:/var/lib/postgresql/data -e POSTGRES_DB=foreman -e POSTGRES_USER=foreman -e POSTGRES_PASSWORD=foreman -p 5432:5432 -d postgres:13 bundle exec bin/rake db:migrate RAILS_ENV=development bundle exec bin/rake db:seed assets:precompile locale:pack webpack:compile

  • You can reset and change your admin password if needed:

shell RAILS_ENV=development bundle exec bin/rake permissions:reset password=changeme

  • You should write tests and you can execute those specific to this plugin:

first, create database foreman-test:

shell RAILS_ENV=test bundle exec rake db:create

then add test schema and seeds:

shell RAILS_ENV=test bundle exec bin/rake db:migrate RAILS_ENV=test bundle exec bin/rake db:seed

Finally you can test all:

shell export DISABLE_SPRING=true bundle exec bin/rake test:foreman_fog_proxmox

or just one:

shell export DISABLE_SPRING=true bundle exec bin/rake test TEST=../foreman_fog_proxmox/test/functional/compute_resources_controller_test.rb DATABASE_URL=nulldb://nohost

  • In foremanfogproxmox source directory, check code syntax with rubocop and foreman rules:

shell bundle exec rubocop

safe autocorrect:

shell bundle exec rubocop -a

Temporary ignore offenses:

shell bundle exec rubocop --auto-gen-config

  • See deface overrides result:

shell bundle exec bin/rake deface:get_result['hosts/_compute_detail']

  • In foreman directory, after you modify foremanfogproxmox specific assets (proxmox.js, etc) you have to precompile it:

shell bundle exec bin/rake plugin:assets:precompile[foreman_fog_proxmox]

  • In foreman directory, after you modify foremanfogproxmox translations (language, texts in new files, etc) you have to compile it:

Prerequisites: Transifex CLI

shell bundle exec bin/rake plugin:gettext\[foreman_fog_proxmox\]

  • In foreman directory, run in a new terminal the webpack-dev-server:

shell ./node_modules/.bin/webpack-dev-server-without-h2 --config config/webpack.config.js

  • Or without webpack-dev-server, add this line in config/settings.yml:

yml :webpack_dev_server: false

then compile webpack assets:

shell bundle exec bin/rake webpack:compile

  • In foreman directory, run rails server:

shell bundle exec bin/rails server

  • Or you can launch all together:

shell bundle exec foreman start

See details in foreman plugin development

Contributing

If you like it and still want to improve it, sponsor me!

Please read more information about how to contribute.

License

The code is available as open source under the terms of the GNU Public License v3.

Owner

  • Name: The Foreman
  • Login: theforeman
  • Kind: organization
  • Email: dev@community.theforeman.org
  • Location: Earth

GitHub Events

Total
  • Create event: 16
  • Release event: 4
  • Issues event: 30
  • Watch event: 5
  • Delete event: 7
  • Issue comment event: 66
  • Push event: 52
  • Pull request event: 80
  • Pull request review comment event: 4
  • Pull request review event: 20
Last Year
  • Create event: 16
  • Release event: 4
  • Issues event: 30
  • Watch event: 5
  • Delete event: 7
  • Issue comment event: 66
  • Push event: 52
  • Pull request event: 80
  • Pull request review comment event: 4
  • Pull request review event: 20

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 628
  • Total Committers: 34
  • Avg Commits per committer: 18.471
  • Development Distribution Score (DDS): 0.368
Past Year
  • Commits: 45
  • Committers: 7
  • Avg Commits per committer: 6.429
  • Development Distribution Score (DDS): 0.556
Top Committers
Name Email Commits
Tristan Robert t****4@g****m 397
Tristan Robert t****4@g****m 84
Manisha Singhal s****l@a****e 50
github-actions[bot] 4****] 12
Markus Bucher b****r@a****e 9
Bernhard Suttner s****d 7
Dominic Cleal d****c@c****g 7
Nadja Heitmann n****h@a****e 7
Greg Sutcliffe g****f@r****m 6
akumari a****i@r****m 5
Evgeni Golov e****i@g****e 5
Dominic Cleal d****l@r****m 4
Mark Hlawatschek h****k@a****e 4
Ohad Levy o****y@g****m 4
Gregory MALFRAY g****y@k****r 3
Daniel Lobato García me@d****e 2
Hedius g****t@h****u 2
Quirin Pamp p****p@a****e 2
Matthias Dellweg d****g@a****e 2
yifatmakias y****s@r****m 2
Amos Benari a****i@r****m 1
David Davis d****s 1
Joseph Mitchell Magen j****n@r****m 1
Eric Le Lay e****y@a****m 1
Guido Günther a****x@s****g 1
James Wong w****t@g****m 1
Lukas Zapletal l****t@r****m 1
Michael Moll k****v@k****e 1
Romuald Conty r****d@o****r 1
Timo Goebel m****l@t****e 1
and 4 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 120
  • Total pull requests: 152
  • Average time to close issues: 5 months
  • Average time to close pull requests: 12 days
  • Total issue authors: 67
  • Total pull request authors: 15
  • Average comments per issue: 1.99
  • Average comments per pull request: 0.41
  • Merged pull requests: 104
  • Bot issues: 0
  • Bot pull requests: 47
Past Year
  • Issues: 20
  • Pull requests: 63
  • Average time to close issues: 4 months
  • Average time to close pull requests: 3 days
  • Issue authors: 18
  • Pull request authors: 8
  • Average comments per issue: 1.05
  • Average comments per pull request: 0.37
  • Merged pull requests: 43
  • Bot issues: 0
  • Bot pull requests: 21
Top Authors
Issue Authors
  • Manisha15 (22)
  • tristanrobert (15)
  • jacac (5)
  • ahoiroman (4)
  • neomilium (3)
  • l00d3r (3)
  • btoneill (3)
  • santachago (3)
  • rm-td (3)
  • bk-lg (2)
  • djken09 (2)
  • karli-sjoberg (2)
  • selund (2)
  • MichaelTrip (1)
  • Kariton (1)
Pull Request Authors
  • Manisha15 (81)
  • github-actions[bot] (63)
  • nadjaheitmann (14)
  • tristanrobert (11)
  • evgeni (6)
  • sbernhard (5)
  • Kariton (2)
  • archanaserver (2)
  • libc225so (2)
  • elelayan (1)
  • neomilium (1)
  • MariaAga (1)
  • Hedius (1)
  • m-bucher (1)
  • yifatmakias (1)
Top Labels
Issue Labels
bug (26) question (16) enhancement (16) duplicate (2) wontfix (2) help wanted (1)
Pull Request Labels
autorelease: pending (47) autorelease: tagged (13) bug (7) enhancement (5) Waiting on contributor (2) release-please:force-run (1)

Dependencies

foreman_fog_proxmox.gemspec rubygems
  • rdoc >= 0 development
  • rubocop >= 0 development
  • simplecov >= 0 development
  • deface >= 0
  • fog-proxmox ~> 0.14
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v1 composite
  • actions/setup-node v1 composite
  • actions/upload-artifact v1 composite
  • paambaati/codeclimate-action v3.2.0 composite
  • ruby/setup-ruby v1 composite
  • postgres 13 docker
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • google-github-actions/release-please-action v3 composite
  • ruby/setup-ruby v1 composite
Gemfile rubygems