Skip to content

Commit 4449c80

Browse files
committed
opensearch
1 parent 063448a commit 4449c80

2 files changed

Lines changed: 115 additions & 0 deletions

File tree

‎.github/workflows/opensearch.yaml‎

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: opensearch
2+
3+
on:
4+
schedule:
5+
- cron: "0 10 * * *"
6+
push:
7+
branches:
8+
- "**"
9+
tags:
10+
- "v*.*.*"
11+
pull_request:
12+
branches:
13+
- "main"
14+
15+
jobs:
16+
opensearch:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Set variables useful for later
20+
id: useful_vars
21+
run: |-
22+
echo "::set-output name=timestamp::$(date +%s)"
23+
echo "::set-output name=short_sha::${GITHUB_SHA::8}"
24+
- name: Checkout
25+
uses: actions/checkout@v3
26+
- name: Docker meta
27+
id: docker_meta
28+
uses: docker/metadata-action@v4
29+
with:
30+
images: ghcr.io/${{ github.repository }}/opensearch
31+
tags: |
32+
type=schedule
33+
type=ref,event=branch
34+
type=ref,event=pr
35+
type=semver,pattern={{version}}
36+
type=semver,pattern={{major}}.{{minor}}
37+
type=semver,pattern={{major}}
38+
type=sha,prefix=,format=long,event=tag
39+
type=sha
40+
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
41+
type=raw,value=${{ github.ref_name }}-${{ steps.useful_vars.outputs.short_sha }}-${{ steps.useful_vars.outputs.timestamp }},enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
42+
- name: Set up QEMU
43+
uses: docker/setup-qemu-action@v2
44+
- name: Set up Docker Buildx
45+
uses: docker/setup-buildx-action@v2
46+
- name: Login to GHCR
47+
if: github.event_name != 'pull_request'
48+
uses: docker/login-action@v2
49+
with:
50+
registry: ghcr.io
51+
username: ${{ github.repository_owner }}
52+
password: ${{ secrets.GITHUB_TOKEN }}
53+
- name: Cache Docker layers
54+
uses: actions/cache@v3
55+
with:
56+
path: /tmp/.buildx-cache
57+
key: ${{ runner.os }}-opensearch-buildx-${{ github.sha }}
58+
restore-keys: |
59+
${{ runner.os }}-opensearch-buildx-
60+
- name: Build and push
61+
uses: docker/build-push-action@v4
62+
with:
63+
context: opensearch
64+
push: ${{ github.event_name != 'pull_request' }}
65+
tags: ${{ steps.docker_meta.outputs.tags }}
66+
labels: ${{ steps.docker_meta.outputs.labels }}
67+
platforms: linux/amd64,linux/arm64
68+
cache-from: type=local,src=/tmp/.buildx-cache
69+
cache-to: type=local,dest=/tmp/.buildx-cache,mode=max

‎opensearch/Dockerfile‎

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
ARG OPENSEARCH_VERSION=2.19.0
2+
3+
FROM ibm-semeru-runtimes:open-21-jdk-jammy AS semeru
4+
5+
FROM opensearchproject/opensearch:${OPENSEARCH_VERSION}
6+
7+
USER root
8+
9+
RUN rm -rf /usr/share/opensearch/jdk
10+
COPY --from=semeru /opt/java/openjdk /usr/share/opensearch/jdk
11+
RUN chown -R opensearch:opensearch /usr/share/opensearch/jdk
12+
13+
# Strip HotSpot GC and logging flags from jvm.options
14+
RUN sed -i \
15+
-e '/UseG1GC/d' \
16+
-e '/G1ReservePercent/d' \
17+
-e '/InitiatingHeapOccupancyPercent/d' \
18+
-e '/UseConcMarkSweepGC/d' \
19+
-e '/CMSInitiatingOccupancyFraction/d' \
20+
-e '/UseCMSInitiatingOccupancyOnly/d' \
21+
-e '/UseSerialGC/d' \
22+
-e '/CICompilerCount/d' \
23+
-e '/TieredCompilation/d' \
24+
-e '/InitialCodeCacheSize/d' \
25+
-e '/InitialBootClassLoaderMetaspaceSize/d' \
26+
-e '/-Xlog:/d' \
27+
/usr/share/opensearch/config/jvm.options
28+
29+
# Strip -XX:+UseSerialGC from all files under opensearch (bin scripts, etc.)
30+
RUN find /usr/share/opensearch -type f -exec grep -l 'UseSerialGC' {} \; | while read f; do sed -i 's/-XX:+UseSerialGC//g' "$f"; done
31+
32+
ENV OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk
33+
ENV JAVA_HOME=/usr/share/opensearch/jdk
34+
ENV PATH="/usr/share/opensearch/jdk/bin:${PATH}"
35+
36+
ENV OPENJ9_BASE_OPTS="-XX:+IdleTuningGcOnIdle -XX:IdleTuningMinIdleWaitTime=240 -Xshareclasses:none -Xquickstart -Xmns8m -Xmnx64m -Xsoftrefthreshold1 -XX:+ExitOnOutOfMemoryError"
37+
38+
RUN sed -i '1a export OPENSEARCH_JAVA_OPTS="${OPENJ9_BASE_OPTS} ${OPENSEARCH_JAVA_OPTS}"' \
39+
/usr/share/opensearch/opensearch-docker-entrypoint.sh
40+
41+
# Per-deployment, set OPENSEARCH_JAVA_OPTS in your k8s manifest:
42+
# -Xms256m -Xmx512m -Xsoftmx256m -XX:MaxDirectMemorySize=128m
43+
44+
USER opensearch
45+
46+
RUN java -version 2>&1 | grep -i "openj9" || exit 1

0 commit comments

Comments
 (0)