Working docker image, new configuration system, updated docs, ci pipeline#404
Working docker image, new configuration system, updated docs, ci pipeline#404PatrickHuetter wants to merge 38 commits into
Conversation
…ctly as expected which results in erros while closing db sometimes. Also the issue was reported here. iotaledger-archive#355 With this check-in, it should work with any version of maven.
…with java 9. Additionally, java 10 will also remove --add_modules feature. Moreover, if possible we should not expect user to do an extra step for a different java version.
…de it backward compatible to the old configuration api, added central default configuration as reference.conf; environment and application specific configuration can be provided by application.conf, system environment variables and java properties; refactored validation of params/config paths to do validation only mostly and updated usage info; This is a preparation for the improvement of docker support as described here iotaledger-archive#386
…e new configuration system, also new entrypoint
Features/new configuration system
Dev See merge request rumoraone/iri!1
Master See merge request rumoraone/iri!2
Dev See merge request encircle360/iri!2
… needed rocksdb c++ libraries), added custom application config possibility for docker image
…to support env variables until lightbend/config supports it directly
Merge branch 'dev' of https://github.com/iotaledger/iri into dev # Conflicts: # Dockerfile # pom.xml # src/main/java/com/iota/iri/IRI.java # src/main/java/com/iota/iri/conf/Configuration.java # src/main/java/com/iota/iri/storage/rocksDB/RocksDBPersistenceProvider.java
Merge branch 'dev' of https://github.com/iotaledger/iri into dev # Conflicts: # Dockerfile # pom.xml # src/main/java/com/iota/iri/IRI.java # src/main/java/com/iota/iri/conf/Configuration.java # src/main/java/com/iota/iri/storage/rocksDB/RocksDBPersistenceProvider.java
| "[{--remote-limit-api} string]" | ||
| "[{-DNEIGHBOURS} '<list of neighbors>'] " + | ||
| "[{-DPORT} 14600] " + | ||
| "[{-Dconfig.file} 'config-file-name'] " + |
There was a problem hiding this comment.
config changed to config.file
Interfaces should be stable and not just changed for no reason.
|
Can you explain why a new configuration is needed and what the motivation is for a new one. This approach may frustrate many people, because they expect the CLI to be stable. |
|
@ixidion We'll make it backward compatible to be stable with the current cli param style and extend this PR soon. The new configuration is needed because it's much more clean and has support for different environments (inheritance, dev, prod, staging and so on) and configuration methods (file, environment also with inheritance). It's also needed to run iri in scale on different cloud providers using docker for example and also support clean catalog-files and provisioning configurations (ansible, rancher-compose and so on). |
|
Thanks for your PR. After inspecting that PR we decided to go for a different solution utilizing JCommander, See #724. We decided it is better to use only one framework for configuration and it should be one that helps us with putting params via CLI and generating docs. All docker suggestions have been reviewed by @geminoz. The new docker file will be pushed as part of #744. |
implemented new configuration system, integrated lightbend config, made it backward compatible to the old configuration api, added central default configuration as reference.conf; environment and application specific configuration can be provided by application.conf, system environment variables and java properties; refactored validation of params/config paths to do validation only mostly and updated usage info.
created new docker image which works fine in production environments and also rancher or kubernetes. Configurable by environment variables. To use the docker image to run an iri node it's enough to provide only one variable "NEIGHBORS". The rest is already configured by best practice and default configuration. So it's easy to set up a working docker iri node within seconds.
Integrated gitlab-ci to have automatically built docker images and also free docker image registry hosting.