Skip to content

Commit 1c6ff02

Browse files
committed
Add examples using Docker
1 parent 689bb04 commit 1c6ff02

20 files changed

+258
-182
lines changed

.dockerignore

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
*
2+
!influent-java/src
3+
!influent-java-example/src
4+
!influent-transport/src
5+
!project/build.properties
6+
!project/plugins.sbt
7+
!build.sbt

bin/generate-ca.sh

+10-10
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ chmod 700 out
66
while true; do
77
echo -n "Enter private key password for CA:"
88
read -s password
9-
if [ ${#password} -ge 4 ]; then
9+
if [ "${#password}" -ge 4 ]; then
1010
echo
1111
break;
1212
else
@@ -19,10 +19,10 @@ done
1919
while true; do
2020
echo -n "Enter Country Name for CA [US]:"
2121
read country_name
22-
if [ -z ${country_name} ]; then
22+
if [ -z "${country_name}" ]; then
2323
country_name=US
2424
break;
25-
elif [ ${#country_name} -eq 2 ]; then
25+
elif [ "${#country_name}" -eq 2 ]; then
2626
break;
2727
else
2828
echo "Country Name must be 2 characters"
@@ -32,44 +32,44 @@ done
3232

3333
echo -n "Enter State or Province Name for CA [CA]:"
3434
read state_name
35-
if [ -z ${state_name} ]; then
35+
if [ -z "${state_name}" ]; then
3636
state_name=CA
3737
fi
3838

3939
echo -n "Enter Locality Name (eg, city) for CA [Mountain View]:"
4040
read locality_name
41-
if [ -z ${locality_name} ]; then
41+
if [ -z "${locality_name}" ]; then
4242
locality_name="Mountain View"
4343
fi
4444

4545
echo -n "Organization Name (eg, company) for CA [Influent]:"
4646
read organization_name
47-
if [ -z ${organization_name} ]; then
47+
if [ -z "${organization_name}" ]; then
4848
organization_name="Influent"
4949
fi
5050

5151
echo -n "Organizational Unit Name (eg, section) for CA []:"
5252
read organization_unit_name
53-
if [ -z ${organization_unit_name} ]; then
53+
if [ -z "${organization_unit_name}" ]; then
5454
organization_unit_name=""
5555
fi
5656

5757
echo -n "Common Name (e.g. server FQDN or YOUR name) [Influent CA]:"
5858
read common_name
59-
if [ -z ${common_name} ]; then
59+
if [ -z "${common_name}" ]; then
6060
common_name="Influent CA"
6161
fi
6262

6363
echo -n "Certificate valid days [36500]:"
6464
read validity_days
65-
if [ -z ${validity_days} ]; then
65+
if [ -z "${validity_days}" ]; then
6666
validity_days=36500
6767
fi
6868

6969
openssl req \
7070
-new \
7171
-x509 \
72-
-newkey rsa:2048 \
72+
-newkey rsa:4096 \
7373
-out out/ca_cert.pem \
7474
-keyout out/ca_key.pem \
7575
-days ${validity_days} \

bin/generate-server-keystore.sh

+17-17
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@ chmod 700 out
55

66
echo -n "Enter the certificate filename of CA [out/ca_cert.pem]:"
77
read ca_cert_filename
8-
if [ -z ${ca_cert_filename} ]; then
8+
if [ -z "${ca_cert_filename}" ]; then
99
ca_cert_filename="out/ca_cert.pem"
1010
fi
1111

1212
echo -n "Enter the private key filename of CA [out/ca_key.pem]:"
1313
read ca_key_filename
14-
if [ -z ${ca_key_filename} ]; then
14+
if [ -z "${ca_key_filename}" ]; then
1515
ca_key_filename="out/ca_key.pem"
1616
fi
1717

1818
while true; do
1919
echo -n "Enter private key password of existent CA:"
2020
read -s ca_key_password
21-
if [ ${#ca_key_password} -ge 4 ]; then
21+
if [ "${#ca_key_password}" -ge 4 ]; then
2222
echo
2323
break;
2424
else
@@ -31,7 +31,7 @@ done
3131
while true; do
3232
echo -n "Enter key store password for server:"
3333
read -s key_store_password
34-
if [ ${#key_store_password} -ge 6 ]; then
34+
if [ "${#key_store_password}" -ge 6 ]; then
3535
echo
3636
break;
3737
else
@@ -44,7 +44,7 @@ done
4444
while true; do
4545
echo -n "Enter private key password for server:"
4646
read -s key_password
47-
if [ ${#key_password} -ge 6 ]; then
47+
if [ "${#key_password}" -ge 6 ]; then
4848
echo
4949
break;
5050
else
@@ -56,23 +56,23 @@ done
5656

5757
echo -n "Enter a name of the cert name of CA [influent-ca]:"
5858
read ca_cert_name
59-
if [ -z ${ca_cert_name} ]; then
59+
if [ -z "${ca_cert_name}" ]; then
6060
ca_cert_name=influent-ca
6161
fi
6262

6363
echo -n "Enter a name of the keypair name for server [influent-server]:"
6464
read keypair_name
65-
if [ -z ${keypair_name} ]; then
65+
if [ -z "${keypair_name}" ]; then
6666
keypair_name=influent-server
6767
fi
6868

6969
while true; do
7070
echo -n "Enter Country Name for server [US]:"
7171
read country_name
72-
if [ -z ${country_name} ]; then
72+
if [ -z "${country_name}" ]; then
7373
country_name=US
7474
break;
75-
elif [ ${#country_name} -eq 2 ]; then
75+
elif [ "${#country_name}" -eq 2 ]; then
7676
break;
7777
else
7878
echo "Country Name must be 2 characters"
@@ -82,45 +82,45 @@ done
8282

8383
echo -n "Enter State or Province Name for server [CA]:"
8484
read state_name
85-
if [ -z ${state_name} ]; then
85+
if [ -z "${state_name}" ]; then
8686
state_name=CA
8787
fi
8888

8989
echo -n "Enter Locality Name (eg, city) for server [Mountain View]:"
9090
read locality_name
91-
if [ -z ${locality_name} ]; then
91+
if [ -z "${locality_name}" ]; then
9292
locality_name="Mountain View"
9393
fi
9494

9595
echo -n "Organization Name (eg, company) for server [Influent]:"
9696
read organization_name
97-
if [ -z ${organization_name} ]; then
97+
if [ -z "${organization_name}" ]; then
9898
organization_name="Influent"
9999
fi
100100

101101
echo -n "Organizational Unit Name (eg, section) for server []:"
102102
read organization_unit_name
103-
if [ -z ${organization_unit_name} ]; then
103+
if [ -z "${organization_unit_name}" ]; then
104104
organization_unit_name=""
105105
fi
106106

107-
echo -n "Common Name (e.g. server host name) [Influent Server]:"
107+
echo -n "Common Name (e.g. server host name):"
108108
read common_name
109-
if [ -z ${common_name} ]; then
109+
if [ -z "${common_name}" ]; then
110110
common_name="Influent Server"
111111
fi
112112

113113
echo -n "Certificate valid days [36500]:"
114114
read validity_days
115-
if [ -z ${validity_days} ]; then
115+
if [ -z "${validity_days}" ]; then
116116
validity_days=36500
117117
fi
118118

119119
keytool \
120120
-genkeypair \
121121
-alias ${keypair_name} \
122122
-keyalg RSA \
123-
-keysize 2048 \
123+
-keysize 4096 \
124124
-dname "CN=${common_name}, OU=${organization_unit_name}, O=${organization_name}, L=${locality_name}, ST=${state_name}, C=${country_name}" \
125125
-validity ${validity_days} \
126126
-keypass ${key_password} \

build.sbt

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ lazy val influentTransport = (project in file("influent-transport"))
2323
)
2424
.enablePlugins(AutomateHeaderPlugin)
2525

26-
lazy val influentJavaSample = (project in file("influent-java-sample"))
26+
lazy val influentJavaExample = (project in file("influent-java-example"))
2727
.settings(commonSettings: _*)
2828
.settings(javaSettings: _*)
2929
.settings(
30-
name := "influent-java-sample",
30+
name := "influent-java-example",
3131
libraryDependencies ++= Seq(
3232
"ch.qos.logback" % "logback-classic" % "1.2.3"
3333
),
34-
assemblyJarName in assembly := "influent-java-sample.jar"
34+
assemblyJarName in assembly := "influent-java-example.jar"
3535
).dependsOn(influentJava)
3636
.enablePlugins(AutomateHeaderPlugin)
3737

example/Dockerfile

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
FROM openjdk:8 AS builder
2+
3+
WORKDIR /influent-build
4+
COPY ./build.sbt ./build.sbt
5+
COPY ./project ./project
6+
7+
RUN apt-get update \
8+
&& apt-get install apt-transport-https \
9+
&& echo "deb https://dl.bintray.com/sbt/debian /" > /etc/apt/sources.list.d/sbt.list \
10+
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 \
11+
&& apt-get update \
12+
&& apt-get install sbt \
13+
&& sbt update
14+
15+
COPY ./ ./
16+
RUN sbt "project influentJavaExample" "assembly"
17+
18+
FROM openjdk:8
19+
20+
WORKDIR /influent
21+
COPY --from=builder /influent-build/influent-java-example/target/influent-java-example.jar ./influent-java-example.jar
22+
ENTRYPOINT ["java", "-classpath", "./influent-java-example.jar", "example.Print"]

example/ca_cert.pem

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFPjCCAyYCCQD8CZ7WWS81TTANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJV
3+
UzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxETAPBgNVBAoM
4+
CEluZmx1ZW50MRkwFwYDVQQDDBBJbmZsdWVudCBUZXN0IENBMCAXDTE4MTAxODE2
5+
MTExOFoYDzIxMTgwOTI0MTYxMTE4WjBgMQswCQYDVQQGEwJVUzELMAkGA1UECAwC
6+
Q0ExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxETAPBgNVBAoMCEluZmx1ZW50MRkw
7+
FwYDVQQDDBBJbmZsdWVudCBUZXN0IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
8+
MIICCgKCAgEAqQ3PUqOBynX1NR9QAAb1reS2qcTrobOkPUV11+tqS0Bpq256dMNr
9+
u3BFgoPmyO8kzR407z3CH9IXPknyKtTGXtYVtPuKg4L1x7NS6xlONMxlmMUw/RKr
10+
0NGpayZhx9OoKM34GOsQhOktvbBbKMt/ann9uFSBIcMg2PDygHVogmaWGvQ5IZ2U
11+
wTb+bM9+rMrNo37EVLrppLo1VFgrEetXoWFQfkQIedQIa8IEWeLTCqHpBv5HcJqj
12+
YwwdhJTRrmLbWmwexJxTL/wLO/EfgEFTFJ9uSEhjYbDon8H4YMl5JFZPGo77aJ64
13+
yLTnXG0/UNd8MZO37yttHHIphRMAECPb6N4CN6WQ3uUp5inJBunQSAKnIyhzQOyw
14+
P46yLPUUP2QDvTjoRWJSAs/j5SZ8MFCZkBG1dD78JYxg+SwlAjtCda2iw99oRCkO
15+
DKMHH4gU9HCt5nkY9x3v6EXSdtWGRh99FEAad14TXdhpHo3LDfLubyDRwsKlQkig
16+
o9+M4SGualnMTMxmg4sLNFp/9XglTRkF5YfSUJe2NVL9kvYdc8oNLfL8Hhakm0Na
17+
ue3VoZDYKwPIJ1sc76oJpmuMH1bQEey5qMmAwehlQ3s4+P319WQZV87bgQ3YjqD3
18+
vrDT+RfF/6y+j5kUNpd2X6SBVrEtndMIai9Ki0MSQRCBcHtFJXSQN1MCAwEAATAN
19+
BgkqhkiG9w0BAQsFAAOCAgEASXOr8m4kefY7A9KQWKJESb4uw3mu32WLZvKAQpQ0
20+
0mfUIa0Pm74aFrWJaFKaFOpicx7T8OJLRXQpg6qIkvGiTfsVCspAPLtpGfbNxNUG
21+
yPrcsUKNtQ9eF/El2eGRb9HctYJXoJQdEf1O3A1LmbzxNNaWmYvlj5d6Vfb91b1t
22+
+vLNY4AX/tWhXdTwd1slLXpVVaMBsoUEHpFVbzlwcQVZHi2kn7DGYggo7zzrg2el
23+
j5xwPQpzOVL/ZKy/SATVaf/nbSjzuZxTGwTp2Zfm9sV3tSvwsqcZaHJ0rlV+6qAk
24+
AVwa1eYSREDhlHr5/7bwfJAguyKbMpPzBgIV4yxZ85N2eWaSLlGw9J99Sfm7Hd6S
25+
B20pqBTDEGMjn4SM1n2FSviPdW014GvXnJ9mBAGE8HS+dEwfjxW2wupAUEKH9guR
26+
gww4BkViR6Soq4k4ZJE1clXsUgEmhiGTNnfOUeLlbzezUeWIu6ac/xMxo7e/W9qA
27+
j+NWFQtfm5hoD1nA88A56avulJ5aVO/28BbQdt84rLU4T/jYsu96DMJAQq9kXj9Z
28+
kc7laKcK0pRUH2Miz28D6wkFdqAUKeP7SegUwjvt0IcUqI+695zPDC2FLmTL3lXH
29+
btfib+MEDcdVQ0i4IFArjXQQb5Pfmo6MGSAS6NOWWd/O+yYn9h2DKFJT4SyAhOWO
30+
CbQ=
31+
-----END CERTIFICATE-----

example/influent-server.jks

7.05 KB
Binary file not shown.

example/plain/docker-compose.yml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: '3'
2+
services:
3+
influent-server:
4+
build:
5+
context: ../..
6+
dockerfile: example/Dockerfile
7+
environment:
8+
DURATION_SECONDS: '60'
9+
fluentd-agent:
10+
image: fluent/fluentd
11+
volumes:
12+
- ./fluent.conf:/fluentd/etc/fluent.conf

example/plain/fluent.conf

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<source>
2+
@type dummy
3+
dummy {"hello":"world"}
4+
auto_increment_key count
5+
tag dummy
6+
</source>
7+
<match dummy>
8+
@type copy
9+
<store>
10+
@type forward
11+
flush_interval 1s
12+
require_ack_response true
13+
14+
<server>
15+
host influent-server
16+
</server>
17+
</store>
18+
</match>

example/secure/docker-compose.yml

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
version: '3'
2+
services:
3+
influent-server:
4+
build:
5+
context: ../..
6+
dockerfile: example/Dockerfile
7+
environment:
8+
DURATION_SECONDS: '60'
9+
TLS_ENABLED: 'true'
10+
HANDSHAKE_ENABLED: 'false'
11+
volumes:
12+
- ../influent-server.jks:/influent/influent-server.jks
13+
fluentd-agent:
14+
image: fluent/fluentd
15+
volumes:
16+
- ./fluent.conf:/fluentd/etc/fluent.conf
17+
- ../ca_cert.pem:/fluentd/ca_cert.pem

example/secure/fluent.conf

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<source>
2+
@type dummy
3+
dummy {"hello":"world"}
4+
auto_increment_key count
5+
tag dummy
6+
</source>
7+
<match dummy>
8+
@type copy
9+
<store>
10+
@type forward
11+
flush_interval 1s
12+
require_ack_response true
13+
14+
transport tls
15+
tls_cert_path /fluentd/ca_cert.pem
16+
17+
<server>
18+
host influent-server
19+
</server>
20+
</store>
21+
</match>

influent-java-sample/src/main/java/sample/Counter.java renamed to influent-java-example/src/main/java/example/Counter.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,15 @@
1414
* limitations under the License.
1515
*/
1616

17-
package sample;
17+
package example;
1818

19+
import influent.forward.ForwardCallback;
20+
import influent.forward.ForwardServer;
1921
import java.util.concurrent.CompletableFuture;
2022
import java.util.concurrent.atomic.AtomicLong;
21-
2223
import org.slf4j.Logger;
2324
import org.slf4j.LoggerFactory;
2425

25-
import influent.forward.ForwardCallback;
26-
import influent.forward.ForwardServer;
27-
2826
public class Counter {
2927
private static final class Reporter implements Runnable {
3028
private final AtomicLong counter = new AtomicLong();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package example;
2+
3+
class Environment {
4+
private Environment() {
5+
throw new AssertionError();
6+
}
7+
8+
static String get(final String name, final String defaultValue) {
9+
final String value = System.getenv(name);
10+
return value != null ? value : defaultValue;
11+
}
12+
13+
static long getLong(final String name, final long defaultValue) {
14+
final String value = System.getenv(name);
15+
return value != null ? Long.valueOf(value) : defaultValue;
16+
}
17+
18+
static boolean getBoolean(final String name, final boolean defaultValue) {
19+
final String value = System.getenv(name);
20+
return value != null ? Boolean.valueOf(value) : defaultValue;
21+
}
22+
}

0 commit comments

Comments
 (0)