Skip to content

Commit ca941b6

Browse files
committed
RANGER-5373: Docker setup updated to run KDC and create keytabs for service accounts
1 parent 1f6d680 commit ca941b6

41 files changed

Lines changed: 384 additions & 1 deletion

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

dev-support/ranger-docker/.env

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ RANGER_BASE_VERSION=20250707-1-8
1212
# Java version used to build Apache Ranger is present as suffix: -8, valid values for suffix: -8, -11, -17
1313
RANGER_BASE_BUILD_VERSION=20250707-1-8
1414

15+
# Kerberos
16+
KERBEROS_ENABLED=true
17+
KERBEROS_REALM=EXAMPLE.COM
18+
KERBEROS_KDC_HOST=ranger-kdc.example.com
19+
KERBEROS_MASTER_PASSWORD=rangerR0cks!
20+
KERBEROS_ADMIN_PRINCIPAL=admin/admin
21+
KERBEROS_ADMIN_PASSWORD=rangerR0cks!
22+
1523
# third party image versions
1624
MARIADB_VERSION=10.7.3
1725
POSTGRES_VERSION=12

dev-support/ranger-docker/Dockerfile.ranger

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,13 @@ RUN tar xvfz /home/ranger/dist/ranger-${RANGER_VERSION}-admin.tar.gz --direct
3838
&& mkdir -p /var/log/ranger \
3939
&& chown -R ranger:ranger ${RANGER_HOME}/admin/ ${RANGER_SCRIPTS}/ /var/run/ranger/ /var/log/ranger/ \
4040
&& chmod 755 ${RANGER_SCRIPTS}/ranger.sh \
41+
&& apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y krb5-user && mkdir -p /etc/keytabs \
4142
&& mkdir -p /usr/share/java/
4243

44+
COPY config/kdc/krb5.conf /etc/krb5.conf
45+
COPY config/kdc/create_keytab.sh /etc/keytabs/create_keytab.sh
46+
RUN chmod +x /etc/keytabs/create_keytab.sh
47+
4348
FROM ranger AS ranger_postgres
4449
COPY ./downloads/postgresql-42.2.16.jre7.jar /home/ranger/dist/
4550
RUN mv /home/ranger/dist/postgresql-42.2.16.jre7.jar /usr/share/java/postgresql.jar

dev-support/ranger-docker/Dockerfile.ranger-hadoop

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,13 @@ RUN tar xvfz /home/ranger/dist/hadoop-${HADOOP_VERSION}.tar.gz --directory=/opt/
4646
rm -f /home/ranger/dist/ranger-${YARN_PLUGIN_VERSION}-yarn-plugin.tar.gz && \
4747
cp -f /home/ranger/scripts/ranger-yarn-plugin-install.properties /opt/ranger/ranger-yarn-plugin/install.properties && \
4848
chmod 744 ${RANGER_SCRIPTS}/ranger-hadoop-setup.sh ${RANGER_SCRIPTS}/ranger-hadoop.sh ${RANGER_SCRIPTS}/ranger-hadoop-mkdir.sh && \
49+
apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y krb5-user && mkdir -p /etc/keytabs && \
4950
chown hdfs:hadoop ${RANGER_SCRIPTS}/ranger-hadoop-mkdir.sh
5051

52+
COPY config/kdc/krb5.conf /etc/krb5.conf
53+
COPY config/kdc/create_keytab.sh /etc/keytabs/create_keytab.sh
54+
RUN chmod +x /etc/keytabs/create_keytab.sh
55+
5156
RUN apt-get update && \
5257
apt-get install -y --no-install-recommends openssh-server && \
5358
mkdir -p /var/run/sshd && \

dev-support/ranger-docker/Dockerfile.ranger-hbase

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,14 @@ RUN tar xvfz /home/ranger/dist/hbase-${HBASE_VERSION}-bin.tar.gz --directory=/op
4242

4343
RUN apt-get update && \
4444
apt-get install -y --no-install-recommends openssh-server && \
45+
DEBIAN_FRONTEND="noninteractive" apt-get install -y krb5-user && mkdir -p /etc/keytabs && \
4546
mkdir -p /var/run/sshd && \
4647
rm -rf /var/lib/apt/lists/*
4748

49+
COPY config/kdc/krb5.conf /etc/krb5.conf
50+
COPY config/kdc/create_keytab.sh /etc/keytabs/create_keytab.sh
51+
RUN chmod +x /etc/keytabs/create_keytab.sh
52+
4853
ENV HBASE_HOME=/opt/hbase
4954
ENV PATH=/usr/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/hbase/bin
5055

dev-support/ranger-docker/Dockerfile.ranger-hive

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,13 @@ RUN tar xvfz /home/ranger/dist/apache-hive-${HIVE_VERSION}-bin.tar.gz --director
5151
ln -s /opt/ranger/ranger-${HIVE_PLUGIN_VERSION}-hive-plugin /opt/ranger/ranger-hive-plugin && \
5252
rm -f /home/ranger/dist/ranger-${HIVE_PLUGIN_VERSION}-hive-plugin.tar.gz && \
5353
cp -f /home/ranger/scripts/ranger-hive-plugin-install.properties /opt/ranger/ranger-hive-plugin/install.properties && \
54+
apt update && DEBIAN_FRONTEND="noninteractive" apt-get install -y krb5-user && mkdir -p /etc/keytabs && \
5455
chmod 744 ${RANGER_SCRIPTS}/ranger-hive-setup.sh ${RANGER_SCRIPTS}/ranger-hive.sh
5556

57+
COPY config/kdc/krb5.conf /etc/krb5.conf
58+
COPY config/kdc/create_keytab.sh /etc/keytabs/create_keytab.sh
59+
RUN chmod +x /etc/keytabs/create_keytab.sh
60+
5661
ENV HIVE_HOME=/opt/hive
5762
ENV HADOOP_HOME=/opt/hadoop
5863
ENV PATH=/usr/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/hive/bin:/opt/hadoop/bin

dev-support/ranger-docker/Dockerfile.ranger-kafka

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,13 @@ RUN tar xvfz /home/ranger/dist/kafka_2.12-${KAFKA_VERSION}.tgz --directory=/opt/
3737
ln -s /opt/ranger/ranger-${KAFKA_PLUGIN_VERSION}-kafka-plugin /opt/ranger/ranger-kafka-plugin && \
3838
rm -f /home/ranger/dist/ranger-${KAFKA_PLUGIN_VERSION}-kafka-plugin.tar.gz && \
3939
cp -f /home/ranger/scripts/ranger-kafka-plugin-install.properties /opt/ranger/ranger-kafka-plugin/install.properties && \
40+
apt update && DEBIAN_FRONTEND="noninteractive" apt-get install -y krb5-user && mkdir -p /etc/keytabs && \
4041
chmod 744 ${RANGER_SCRIPTS}/ranger-kafka-setup.sh ${RANGER_SCRIPTS}/ranger-kafka.sh
4142

43+
COPY config/kdc/krb5.conf /etc/krb5.conf
44+
COPY config/kdc/create_keytab.sh /etc/keytabs/create_keytab.sh
45+
RUN chmod +x /etc/keytabs/create_keytab.sh
46+
4247
ENV KAFKA_HOME=/opt/kafka
4348
ENV PATH=/usr/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/kafka/bin
4449

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
ARG RANGER_BASE_JAVA_VERSION=8
18+
19+
FROM eclipse-temurin:${RANGER_BASE_JAVA_VERSION}-jdk-jammy
20+
21+
ENV DEBIAN_FRONTEND=noninteractive
22+
ENV REALM=EXAMPLE.COM
23+
ENV KDC_HOST=kdc.example.com
24+
ENV ADMIN_PRINCIPAL=admin/admin
25+
ENV ADMIN_PASSWORD=rangerR0cks!
26+
ENV MASTER_PASSWORD=rangerR0cks!
27+
28+
# Install Kerberos components
29+
RUN apt-get update && \
30+
apt-get install -y krb5-kdc krb5-admin-server krb5-user && \
31+
rm -rf /var/lib/apt/lists/*
32+
33+
# Copy configuration files
34+
COPY config/kdc/krb5.conf /etc/krb5.conf
35+
COPY config/kdc/kdc.conf /etc/krb5kdc/kdc.conf
36+
COPY config/kdc/kadm5.acl /etc/krb5kdc/kadm5.acl
37+
COPY config/kdc/entrypoint.sh /entrypoint.sh
38+
RUN chmod +x /entrypoint.sh
39+
40+
EXPOSE 88/tcp 88/udp 749/tcp
41+
42+
ENTRYPOINT ["/entrypoint.sh"]

dev-support/ranger-docker/Dockerfile.ranger-kms

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,13 @@ RUN tar xvfz /home/ranger/dist/ranger-${KMS_VERSION}-kms.tar.gz --directory=${RA
3939
ln -s /etc/init.d/ranger-kms /etc/rc3.d/K90ranger-kms && \
4040
ln -s ${RANGER_HOME}/kms/ranger-kms-services.sh /usr/bin/ranger-kms-services.sh && \
4141
chown -R rangerkms:ranger ${RANGER_HOME}/kms/ ${RANGER_SCRIPTS}/ /var/run/ranger_kms/ /var/log/ranger/ && \
42+
apt update && DEBIAN_FRONTEND="noninteractive" apt-get install -y krb5-user && mkdir -p /etc/keytabs && \
4243
chmod 744 ${RANGER_SCRIPTS}/ranger-kms.sh
4344

45+
COPY config/kdc/krb5.conf /etc/krb5.conf
46+
COPY config/kdc/create_keytab.sh /etc/keytabs/create_keytab.sh
47+
RUN chmod +x /etc/keytabs/create_keytab.sh
48+
4449
FROM ranger-kms AS ranger_postgres
4550
COPY ./downloads/postgresql-42.2.16.jre7.jar /home/ranger/dist/
4651
RUN mv /home/ranger/dist/postgresql-42.2.16.jre7.jar /usr/share/java/postgresql.jar

dev-support/ranger-docker/Dockerfile.ranger-knox

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,13 @@ RUN tar xvfz /home/ranger/dist/knox-${KNOX_VERSION}.tar.gz --directory=/opt/ &&
4040
rm -f /home/ranger/dist/ranger-${KNOX_PLUGIN_VERSION}-knox-plugin.tar.gz && \
4141
cp -f /home/ranger/scripts/ranger-knox-plugin-install.properties /opt/ranger/ranger-knox-plugin/install.properties && \
4242
cp -f /home/ranger/scripts/ranger-knox-sandbox.xml /opt/knox/conf/topologies/sandbox.xml && \
43+
apt update && DEBIAN_FRONTEND="noninteractive" apt-get install -y krb5-user && mkdir -p /etc/keytabs && \
4344
chmod 744 ${RANGER_SCRIPTS}/ranger-knox-setup.sh ${RANGER_SCRIPTS}/ranger-knox.sh ${RANGER_SCRIPTS}/ranger-knox-expect.py
4445

46+
COPY config/kdc/krb5.conf /etc/krb5.conf
47+
COPY config/kdc/create_keytab.sh /etc/keytabs/create_keytab.sh
48+
RUN chmod +x /etc/keytabs/create_keytab.sh
49+
4550
ENV KNOX_HOME=/opt/knox
4651
ENV PATH=/usr/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/knox/bin
4752

dev-support/ranger-docker/Dockerfile.ranger-solr

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,10 @@ RUN mkdir -p /opt/solr/server/solr/configsets/ranger_audits/conf
2323
COPY config/solr-ranger_audits/* /opt/solr/server/solr/configsets/ranger_audits/conf/
2424
RUN chown -R solr:solr /opt/solr/server/solr/configsets/ranger_audits/
2525

26+
RUN apt update && DEBIAN_FRONTEND="noninteractive" apt-get install -y krb5-user && mkdir -p /etc/keytabs
27+
28+
COPY config/kdc/krb5.conf /etc/krb5.conf
29+
COPY config/kdc/create_keytab.sh /etc/keytabs/create_keytab.sh
30+
RUN chmod +x /etc/keytabs/create_keytab.sh
31+
2632
USER solr

0 commit comments

Comments
 (0)