Skip to content
This repository has been archived by the owner. It is now read-only.

Working docker image, new configuration system, updated docs, ci pipeline #404

Closed
wants to merge 38 commits into from

Conversation

@PatrickHuetter
Copy link

@PatrickHuetter PatrickHuetter commented Dec 15, 2017

  1. 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.

  2. 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.

  3. Integrated gitlab-ci to have automatically built docker images and also free docker image registry hosting.

nayanmshah and others added 30 commits Dec 3, 2017
…ctly as expected which results in erros while closing db sometimes. Also the issue was reported here. #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 #386
…e new configuration system, also new entrypoint
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'] " +

This comment has been minimized.

@ixidion

ixidion Dec 31, 2017

config changed to config.file
Interfaces should be stable and not just changed for no reason.

@ixidion
Copy link

@ixidion ixidion commented Dec 31, 2017

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.
Why should this tradeoff be made?

@PatrickHuetter
Copy link
Author

@PatrickHuetter PatrickHuetter commented Jan 9, 2018

@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).

@GalRogozinski GalRogozinski force-pushed the iotaledger:dev branch from 47d8c4a to 00b7574 Apr 4, 2018
@iotasyncbot iotasyncbot changed the title Working docker image, new configuration system, updated docs, ci pipeline IRI-258 ⁃ Working docker image, new configuration system, updated docs, ci pipeline Apr 17, 2018
@anyong anyong changed the title IRI-258 ⁃ Working docker image, new configuration system, updated docs, ci pipeline Working docker image, new configuration system, updated docs, ci pipeline Apr 22, 2018
@GalRogozinski
Copy link
Member

@GalRogozinski GalRogozinski commented May 27, 2018

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants