blob: d67a44af45b776c44b1d3f650dcc72d09b08b738 [file]
#!/usr/bin/env python3
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from argparse import ArgumentParser
from jinja2 import Environment, FileSystemLoader
GPG_KEY_DICT = {
# issuer "liyuanjian@apache.org"
"3.5.0": "FC3AE3A7EAA1BAC98770840E7E1ABCC53AAA2216",
# issuer "kabhwan@apache.org"
"3.5.1": "FD3E84942E5E6106235A1D25BD356A9F8740E4FF",
# issuer "yao@apache.org"
"3.5.2": "D76E23B9F11B5BF6864613C4F7051850A0AF904D",
# issuer "haejoon@apache.org"
"3.5.3": "0A2D660358B6F6F8071FD16F6606986CF5A8447C",
# issuer "yangjie01@apache.org"
"3.5.4": "19F745C40A0E550420BB2C522541488DA93FE4B4",
# issuer "dongjoon@apache.org"
"3.5.5": "F28C9C925C188C35E345614DEDA00CE834F0FC5C",
# issuer "gurwls223@apache.org"
"3.5.6": "0FE4571297AB84440673665669600C8338F65970",
# issuer "ptoth@apache.org"
"3.5.7": "564CA14951C29266889F9C5B90E2BA86F7A9B307",
# issuer "dongjoon@apache.org"
"3.5.8": "F28C9C925C188C35E345614DEDA00CE834F0FC5C",
# issuer "holden@apache.org"
"3.5.9": "D05CF4F16124A4B97D7F96C417C47D58C0A604AC",
# issuer "wenchen@apache.org"
"4.0.0": "4DC9676CEF9A83E98FCA02784D6620843CD87F5A",
# issuer "dongjoon@apache.org"
"4.0.1": "F28C9C925C188C35E345614DEDA00CE834F0FC5C",
# issuer "dongjoon@apache.org"
"4.0.2": "F28C9C925C188C35E345614DEDA00CE834F0FC5C",
# issuer "dongjoon@apache.org"
"4.0.3": "F28C9C925C188C35E345614DEDA00CE834F0FC5C",
# issuer "holden@apache.org"
"4.0.4": "D05CF4F16124A4B97D7F96C417C47D58C0A604AC",
# issuer "dongjoon@apache.org"
"4.1.0": "F28C9C925C188C35E345614DEDA00CE834F0FC5C",
# issuer "gurwls223@apache.org"
"4.1.1": "0FE4571297AB84440673665669600C8338F65970",
# issuer "ptoth@apache.org"
"4.1.2": "564CA14951C29266889F9C5B90E2BA86F7A9B307",
# issuer "holden@apache.org"
"4.1.3": "D05CF4F16124A4B97D7F96C417C47D58C0A604AC",
# issuer "gurwls223@apache.org"
"4.2.0-preview5": "0FE4571297AB84440673665669600C8338F65970",
# issuer "huaxingao@apache.org"
"4.2.0": "709226B910E0F10917123B6259B586ADA5A538D1"
}
def parse_opts():
parser = ArgumentParser(prog="template")
parser.add_argument(
"-f",
"--template-file",
help="The Dockerfile template file path.",
default="Dockerfile.template",
)
parser.add_argument(
"-v",
"--spark-version",
help="The Spark version of Dockerfile.",
default="3.3.0",
)
parser.add_argument(
"-j",
"--java-version",
help="Java version of Dockerfile.",
default="11",
)
parser.add_argument(
"-s",
"--scala-version",
help="The Spark version of Dockerfile.",
default="2.12",
)
parser.add_argument(
"-i",
"--image",
help="The base image tag of Dockerfile.",
default="eclipse-temurin:11-jre-focal",
)
parser.add_argument(
"-p",
"--pyspark",
action="store_true",
help="Have PySpark support or not.",
)
parser.add_argument(
"-r",
"--sparkr",
action="store_true",
help="Have SparkR support or not.",
)
args, unknown = parser.parse_known_args()
if unknown:
parser.error("Unsupported arguments: %s" % " ".join(unknown))
return args
def main():
opts = parse_opts()
env = Environment(loader=FileSystemLoader("./"))
template = env.get_template(opts.template_file)
print(
template.render(
BASE_IMAGE=opts.image,
HAVE_PY=opts.pyspark,
HAVE_R=opts.sparkr,
SPARK_VERSION=opts.spark_version,
SPARK_GPG_KEY=GPG_KEY_DICT.get(opts.spark_version),
JAVA_VERSION=opts.java_version,
SCALA_VERSION=opts.scala_version,
)
)
if __name__ == "__main__":
main()