Skip to content

Commit 4ecbd2f

Browse files
authored
WMS-8022 : Lab 1 : Setup (#339)
1 parent a7fa50d commit 4ecbd2f

25 files changed

+1280
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
ARG CP_VERSION=0.5.0
2+
ARG KAFKA_CONNECT_VERSION=7.0.1
3+
4+
ARG BASE_PREFIX=confluentinc
5+
ARG CONNECT_IMAGE=cp-kafka-connect
6+
7+
FROM $BASE_PREFIX/$CONNECT_IMAGE:$KAFKA_CONNECT_VERSION
8+
9+
ENV CONNECT_HUB_COMPONENTS_PATH="/usr/share/confluent-hub-components"
10+
ENV CONNECT_PLUGIN_PATH="/usr/share/java,/usr/share/confluent-hub-components"
11+
12+
RUN confluent-hub install --no-prompt confluentinc/kafka-connect-jms-sink:latest
13+
RUN confluent-hub install --no-prompt confluentinc/kafka-connect-jms:latest
14+
15+
COPY target/dependency/*.jar ${CONNECT_HUB_COMPONENTS_PATH}/confluentinc-kafka-connect-jms-sink/lib/
16+
COPY target/dependency/*.jar ${CONNECT_HUB_COMPONENTS_PATH}/confluentinc-kafka-connect-jms/lib/
17+
18+
RUN mkdir /home/appuser/wallet
19+
COPY wallet/* /home/appuser/wallet/
20+
21+
ENV TNS_ADMIN="/home/appuser/wallet"
22+
23+
## Run this code to ADB-D
24+
#RUN mkdir /home/appuser/.oci
25+
#COPY oci/* /home/appuser/.oci/
26+
27+
USER root
28+
RUN chown appuser:appuser ${CONNECT_HUB_COMPONENTS_PATH}/confluentinc-kafka-connect-jms-sink/lib/*
29+
RUN chown appuser:appuser ${CONNECT_HUB_COMPONENTS_PATH}/confluentinc-kafka-connect-jms/lib/*
30+
RUN chmod 777 /home/appuser/wallet/*
31+
32+
## Run this code to ADB-D
33+
#RUN yum update -y && yum upgrade -y
34+
#RUN yum install openssh-clients -y
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
version: '2'
3+
services:
4+
zookeeper:
5+
image: confluentinc/cp-zookeeper:7.0.1
6+
hostname: zookeeper
7+
container_name: zookeeper
8+
ports:
9+
- "2181:2181"
10+
environment:
11+
ZOOKEEPER_CLIENT_PORT: 2181
12+
ZOOKEEPER_TICK_TIME: 2000
13+
14+
broker:
15+
image: confluentinc/cp-server:7.0.1
16+
hostname: broker
17+
container_name: broker
18+
depends_on:
19+
- zookeeper
20+
ports:
21+
- "9092:9092"
22+
- "9101:9101"
23+
environment:
24+
KAFKA_BROKER_ID: 1
25+
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
26+
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
27+
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
28+
KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter
29+
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
30+
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
31+
KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1
32+
KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1
33+
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
34+
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
35+
KAFKA_JMX_PORT: 9101
36+
KAFKA_JMX_HOSTNAME: localhost
37+
KAFKA_CONFLUENT_SCHEMA_REGISTRY_URL: http://schema-registry:8081
38+
CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: broker:29092
39+
CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1
40+
CONFLUENT_METRICS_ENABLE: 'true'
41+
CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous'
42+
43+
schema-registry:
44+
image: confluentinc/cp-schema-registry:7.0.1
45+
hostname: schema-registry
46+
container_name: schema-registry
47+
depends_on:
48+
- broker
49+
ports:
50+
- "8081:8081"
51+
environment:
52+
SCHEMA_REGISTRY_HOST_NAME: schema-registry
53+
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: 'broker:29092'
54+
SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081
55+
56+
connect:
57+
image: cp-kafka-connect-custom:0.1.0
58+
hostname: connect
59+
container_name: connect
60+
depends_on:
61+
- broker
62+
- schema-registry
63+
ports:
64+
- "8083:8083"
65+
environment:
66+
CONNECT_BOOTSTRAP_SERVERS: 'broker:29092'
67+
CONNECT_REST_ADVERTISED_HOST_NAME: connect
68+
CONNECT_REST_PORT: 8083
69+
CONNECT_GROUP_ID: compose-connect-group
70+
CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs
71+
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1
72+
CONNECT_OFFSET_FLUSH_INTERVAL_MS: 10000
73+
CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets
74+
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1
75+
CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status
76+
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1
77+
CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter
78+
CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
79+
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081
80+
# CLASSPATH required due to CC-2422
81+
CLASSPATH: /usr/share/java/monitoring-interceptors/monitoring-interceptors-7.0.0.jar
82+
CONNECT_PRODUCER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor"
83+
CONNECT_CONSUMER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor"
84+
CONNECT_PLUGIN_PATH: "/usr/share/java,/usr/share/confluent-hub-components/,/connectors/"
85+
CONNECT_LOG4J_LOGGERS: org.apache.zookeeper=ERROR,org.I0Itec.zkclient=ERROR,org.reflections=ERROR
86+
#extra_hosts:
87+
# - "host.docker.internal:host-gateway"
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
# Copyright (c) 2021 Oracle and/or its affiliates.
3+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
4+
5+
# Fail on error
6+
set -e
7+
8+
# Install Docker Compose
9+
while ! state_done DOCKER_COMPOSE; do
10+
if ! test -f "$LAB_HOME"/cloud-setup/confluent-kafka/docker-compose; then
11+
curl -L "https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o "$LAB_HOME"/cloud-setup/confluent-kafka/docker-compose
12+
chmod +x "$LAB_HOME"/cloud-setup/confluent-kafka/docker-compose
13+
fi
14+
state_set_done DOCKER_COMPOSE
15+
done
16+
17+
# Build Confluent Kafka Connect Customer Image
18+
while ! state_done CFLCONNECT_IMAGE; do
19+
cd "$LAB_HOME"/cloud-setup/confluent-kafka
20+
21+
# Get the Connect Dependencies
22+
mvn clean install -DskipTests
23+
24+
# Get Oracle DB Wallet
25+
mkdir wallet
26+
cp "$LAB_HOME"/wallet/* ./wallet/
27+
28+
# Build the Kafka Connect Custom Image
29+
docker build . -t cp-kafka-connect-custom:0.1.0
30+
31+
# Clean up the project folder.
32+
rm -rf wallet
33+
state_set_done CFLCONNECT_IMAGE
34+
done
35+
36+
# Setup Kafka
37+
while ! state_done KAFKA_SETUP; do
38+
cd "$LAB_HOME"/cloud-setup/confluent-kafka
39+
./docker-compose up --no-start
40+
cd "$LAB_HOME"
41+
state_set_done KAFKA_SETUP
42+
done
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<packaging>jar</packaging>
8+
9+
<groupId>org.oracle</groupId>
10+
<artifactId>kafka-connect-lib</artifactId>
11+
<version>0.1</version>
12+
<name>kafka-connect-lib</name>
13+
<description>Kafka Java Client for Oracle Transactional Event Queues.
14+
</description>
15+
16+
<properties>
17+
<java.version>11</java.version>
18+
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
19+
<oracle-jdbc.version>21.4.0.0</oracle-jdbc.version>
20+
<oracle-db-messaging.version>19.3.0.0</oracle-db-messaging.version>
21+
<jms.version>2.0.1</jms.version>
22+
<javax-transaction.version>1.3</javax-transaction.version>
23+
<logback.version>1.2.10</logback.version>
24+
</properties>
25+
26+
<dependencies>
27+
<dependency>
28+
<groupId>com.oracle.database.jdbc</groupId>
29+
<artifactId>ojdbc11</artifactId>
30+
<version>${oracle-jdbc.version}</version>
31+
</dependency>
32+
<!-- https://mvnrepository.com/artifact/com.oracle.database.security/oraclepki -->
33+
<dependency>
34+
<groupId>com.oracle.database.security</groupId>
35+
<artifactId>oraclepki</artifactId>
36+
<version>${oracle-jdbc.version}</version>
37+
</dependency>
38+
<!-- https://mvnrepository.com/artifact/com.oracle.database.security/osdt_core -->
39+
<dependency>
40+
<groupId>com.oracle.database.security</groupId>
41+
<artifactId>osdt_core</artifactId>
42+
<version>${oracle-jdbc.version}</version>
43+
</dependency>
44+
<!-- https://mvnrepository.com/artifact/com.oracle.database.security/osdt_cert -->
45+
<dependency>
46+
<groupId>com.oracle.database.security</groupId>
47+
<artifactId>osdt_cert</artifactId>
48+
<version>${oracle-jdbc.version}</version>
49+
</dependency>
50+
<dependency>
51+
<groupId>javax.transaction</groupId>
52+
<artifactId>jta</artifactId>
53+
<version>1.1</version>
54+
</dependency>
55+
<dependency>
56+
<groupId>com.oracle.database.messaging</groupId>
57+
<artifactId>aqapi</artifactId>
58+
<version>${oracle-db-messaging.version}</version>
59+
</dependency>
60+
</dependencies>
61+
62+
<build>
63+
<plugins>
64+
<plugin>
65+
<groupId>org.apache.maven.plugins</groupId>
66+
<artifactId>maven-dependency-plugin</artifactId>
67+
<executions>
68+
<execution>
69+
<id>copy-dependencies</id>
70+
<phase>install</phase>
71+
<goals>
72+
<goal>copy-dependencies</goal>
73+
</goals>
74+
</execution>
75+
</executions>
76+
</plugin>
77+
</plugins>
78+
</build>
79+
80+
</project>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash
2+
# Copyright (c) 2021 Oracle and/or its affiliates.
3+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
4+
5+
# Fail on error
6+
set -e
7+
8+
# set classpath for mkstore - align this to your local SQLcl installation
9+
SQLCL=/opt/oracle/sqlcl/lib
10+
CLASSPATH=${SQLCL}/oraclepki.jar:${SQLCL}/osdt_core.jar:${SQLCL}/osdt_cert.jar
11+
12+
13+
# simulate mkstore command
14+
# Debug -Doracle.pki.debug=true
15+
$JAVA_HOME/bin/java -Doracle.pki.debug=true -classpath "${CLASSPATH}" oracle.security.pki.OracleSecretStoreTextUI "$@"

0 commit comments

Comments
 (0)