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

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

Closed
wants to merge 38 commits into
base: dev
from

Conversation

Projects
None yet
6 participants
@PatrickHuetter
Copy link

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 some commits Dec 3, 2017

Solves the issue where the ColumnFamilyHandles are not disposed corre…
…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.
Added java.xml.bind as part of maven because it does not get shipped …
…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.
implemented new configuration system, integrated lightbend config, ma…
…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
first rev better Docker image with environment variables on top of th…
…e new configuration system, also new entrypoint
Merge branch 'dev' into 'master'
Dev

See merge request rumoraone/iri!1
Merge branch 'master' into 'dev'
Master

See merge request rumoraone/iri!2
Merge branch 'dev' into 'dev'
Dev

See merge request encircle360/iri!2
changed docker base image to current openjdk-8 (not alpine because of…
… needed rocksdb c++ libraries), added custom application config possibility for docker image
integrated mapping of system env variables onto configuration object …
…to support env variables until lightbend/config supports it directly

PatrickHuetter added some commits Dec 19, 2017

Upgraded IRI to 1.4.1.4
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
Upgraded IRI to 1.4.1.4
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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link
Member

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 join this conversation on GitHub. Already have an account? Sign in to comment