feature:TSG-23262:Support aarch64 arch.

This commit is contained in:
fumingwei
2024-11-01 11:30:33 +08:00
parent 17c790d73d
commit db1eff5d0e
11 changed files with 122 additions and 101 deletions

View File

@@ -1,108 +1,118 @@
variables: variables:
BUILD_BASED_IMAGE_ROCKYLINUX8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux" JOB_IMAGE_ROCKYLINUX8_X86_64: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux-build-os"
JOB_IMAGE_ROCKYLINUX9_AARCH64: "git.mesalab.cn:7443/mesa_platform/build-env:rocky9-aarch64"
stages: .build_scripts:
- prebuild
- build-rockylinux8
cache:
key: "$CI_PROJECT_NAME-cache"
paths:
- images
.build_docker_images:
image: docker:stable
before_script:
- docker info
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- chmod 0755 ./images_build/client/dign_client/bin/wait-for
- chmod 0755 ./images_build/server_web/certs/tool
tags:
- share
.build_rpm:
variables: variables:
GIT_STRATEGY: "clone" GIT_STRATEGY: "clone"
BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/ BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
TESTING_VERSION_BUILD: 0 CLIENT_IMAGE_TAG: registry.gdnt-cloud.website/tsg/diagnose/client:latest
SERVER_WEB_IMAGE_TAG: registry.gdnt-cloud.website/tsg/diagnose/server-web:latest
SERVER_DNS_IMAGE_TAG: registry.gdnt-cloud.website/tsg/diagnose/server-dns:latest
before_script: before_script:
- mkdir -p images;rm -rf images/*
- mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/ - mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
- ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
- cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - chmod 0755 ./images_build/client/dign_client/bin/wait-for
- chmod 0755 ./images_build/server_web/certs/tool
- chmod 0755 ./scripts/tsg-diagnose-oneshot - chmod 0755 ./scripts/tsg-diagnose-oneshot
- chmod 0755 ./scripts/tsg-diagnose-periodical - chmod 0755 ./scripts/tsg-diagnose-periodical
- chmod 0755 ./scripts/tsg-diagnose.sh - chmod 0755 ./scripts/tsg-diagnose.sh
- chmod 0755 ./etc/certs_import/certs/tool - chmod 0755 ./etc/certs_import/certs/tool
- chmod +x ./ci/travis.sh - chmod 0755 ./ci/travis.sh
tags: - buildah login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- share
images_build:
stage: prebuild
extends: .build_docker_images
variables:
CLIENT_IMAGE_TAG: dign-client:latest
SERVER_WEB_IMAGE_TAG: dign-server-web:latest
SERVER_DNS_IMAGE_TAG: dign-server-dns:latest
script: script:
- mkdir -p images - buildah build -t $CLIENT_IMAGE_TAG -f ./images_build/client/Dockerfile ./images_build/client/
- rm -rf images/* - podman save -o images/tsg_diagnose_client.tar -m $CLIENT_IMAGE_TAG
- docker build -t $CLIENT_IMAGE_TAG -f ./images_build/client/Dockerfile ./images_build/client/ - buildah build -t $SERVER_WEB_IMAGE_TAG -f ./images_build/server_web/Dockerfile ./images_build/server_web/
- docker save $CLIENT_IMAGE_TAG > images/tsg_diagnose_client.tar - podman save -o images/tsg_diagnose_server_web.tar -m $SERVER_WEB_IMAGE_TAG
- docker build -t $SERVER_WEB_IMAGE_TAG -f ./images_build/server_web/Dockerfile ./images_build/server_web/ - buildah build -t $SERVER_DNS_IMAGE_TAG -f ./images_build/server_dns/Dockerfile ./images_build/server_dns/
- docker save $SERVER_WEB_IMAGE_TAG > images/tsg_diagnose_server_web.tar - podman save -o images/tsg_diagnose_server_dns.tar -m $SERVER_DNS_IMAGE_TAG
- docker build -t $SERVER_DNS_IMAGE_TAG -f ./images_build/server_dns/Dockerfile ./images_build/server_dns/ - cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
- docker save $SERVER_DNS_IMAGE_TAG > images/tsg_diagnose_server_dns.tar - ./ci/travis.sh
feature_branch_build_rockylinux8: feature_branch_build_rockylinux8_x86_64:
image: $BUILD_BASED_IMAGE_ROCKYLINUX8 image: $JOB_IMAGE_ROCKYLINUX8_X86_64
stage: build-rockylinux8
variables: variables:
PACKAGE: 1 PACKAGE: 1
TESTING_VERSION_BUILD: 1 TESTING_VERSION_BUILD: 1
extends: .build_rpm extends: .build_scripts
script:
- ls -halt ./scripts
- ./ci/travis.sh
dependencies:
- images_build
except: except:
- tags - tags
- /^dev-.*$/i - /^dev-.*$/i
- /^rel-.*$/i - /^rel-.*$/i
- /^master.*$/i - /^master.*$/i
tags:
- tsg-os-builder-el8
develop_build_rockylinux8: feature_branch_build_rockylinux9_aarch64:
image: $BUILD_BASED_IMAGE_ROCKYLINUX8 image: $JOB_IMAGE_ROCKYLINUX9_AARCH64
stage: build-rockylinux8
variables: variables:
PACKAGE: 1 PACKAGE: 1
UPLOAD: 1
TESTING_VERSION_BUILD: 1 TESTING_VERSION_BUILD: 1
extends: .build_scripts
except:
- tags
- /^dev-.*$/i
- /^rel-.*$/i
- /^master.*$/i
tags:
- tsg-os-builder-aarch64
develop_build_rockylinux8_x86_64:
image: $JOB_IMAGE_ROCKYLINUX8_X86_64
variables:
PACKAGE: 1
TESTING_VERSION_BUILD: 1
UPLOAD: 1
PULP3_RPM_REPO_NAME: tsg-testing-x86_64.el8 PULP3_RPM_REPO_NAME: tsg-testing-x86_64.el8
PULP3_RPM_DIST_NAME: tsg-testing-x86_64.el8 PULP3_RPM_DIST_NAME: tsg-testing-x86_64.el8
extends: .build_rpm extends: .build_scripts
script:
- ./ci/travis.sh
dependencies:
- images_build
only: only:
- /^dev-.*$/i - /^dev-.*$/i
- /^rel-.*$/i - /^rel-.*$/i
- /^master.*$/i - /^master.*$/i
tags:
- tsg-os-builder-el8
release_build_rockylinux8: develop_build_rockylinux9_aarch64:
image: $BUILD_BASED_IMAGE_ROCKYLINUX8 image: $JOB_IMAGE_ROCKYLINUX9_AARCH64
stage: build-rockylinux8 variables:
PACKAGE: 1
TESTING_VERSION_BUILD: 1
UPLOAD: 1
PULP3_RPM_REPO_NAME: tsg-testing-aarch64.el9
PULP3_RPM_DIST_NAME: tsg-testing-aarch64.el9
extends: .build_scripts
only:
- /^dev-.*$/i
- /^rel-.*$/i
- /^master.*$/i
tags:
- tsg-os-builder-aarch64
release_build_rockylinux8_x86_64:
image: $JOB_IMAGE_ROCKYLINUX8_X86_64
variables: variables:
PACKAGE: 1 PACKAGE: 1
UPLOAD: 1 UPLOAD: 1
PULP3_RPM_REPO_NAME: tsg-stable-x86_64.el8 PULP3_RPM_REPO_NAME: tsg-stable-x86_64.el8
PULP3_RPM_DIST_NAME: tsg-stable-x86_64.el8 PULP3_RPM_DIST_NAME: tsg-stable-x86_64.el8
extends: .build_rpm extends: .build_scripts
script:
- ./ci/travis.sh
dependencies:
- images_build
only: only:
- tags - tags
tags:
- tsg-os-builder-el8
release_build_rockylinux9_aarch64:
image: $JOB_IMAGE_ROCKYLINUX9_AARCH64
variables:
PACKAGE: 1
UPLOAD: 1
PULP3_RPM_REPO_NAME: tsg-stable-aarch64.el9
PULP3_RPM_DIST_NAME: tsg-stable-aarch64.el9
extends: .build_scripts
only:
- tags
tags:
- tsg-os-builder-aarch64

View File

@@ -3,7 +3,7 @@ version: '2.2'
services: services:
server_web: server_web:
image: "dign-server-web:latest" image: "registry.gdnt-cloud.website/tsg/diagnose/server-web:latest"
container_name: "dign-server-web" container_name: "dign-server-web"
tty: true tty: true
privileged: true privileged: true
@@ -26,7 +26,7 @@ services:
server_dns: server_dns:
image: "dign-server-dns:latest" image: "registry.gdnt-cloud.website/tsg/diagnose/server-dns:latest"
container_name: "dign-server-dns" container_name: "dign-server-dns"
tty: true tty: true
privileged: true privileged: true
@@ -50,7 +50,7 @@ services:
tail -f /dev/null tail -f /dev/null
client: client:
image: "dign-client:latest" image: "registry.gdnt-cloud.website/tsg/diagnose/client:latest"
container_name: "dign-client" container_name: "dign-client"
depends_on: depends_on:
- server_web - server_web

View File

@@ -1,20 +1,19 @@
# Start python3.6.9-alpine3.10 to build python:unitest FROM python:3.9-alpine
FROM python:3.6.9-alpine3.10
ADD dign_client /opt/dign_client ADD dign_client /opt/dign_client
RUN sed -i s@/dl-cdn.alpinelinux.org/@/mirrors.ustc.edu.cn/@g /etc/apk/repositories \ RUN sed -i s@/dl-cdn.alpinelinux.org/@/mirrors.ustc.edu.cn/@g /etc/apk/repositories \
&& apk update \ && apk update \
&& apk add curl-dev gcc libc-dev curl gzip libpcap-dev\ && apk add curl-dev gcc libc-dev curl gzip libpcap-dev\
&& pip3 install pycurl \ && python3 -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install httpstat \ && python3 -m pip install pycurl \
&& pip3 install CIUnitTest \ && python3 -m pip install httpstat \
&& pip3 install pytelegraf \ && python3 -m pip install CIUnitTest \
&& pip3 install dnspython \ && python3 -m pip install pytelegraf \
&& pip3 install prettytable \ && python3 -m pip install dnspython \
&& pip3 install pyyaml \ && python3 -m pip install prettytable \
&& pip3 install scapy \ && python3 -m pip install pyyaml \
&& python3 -m pip install scapy \
&& mv /opt/dign_client/etc/client.conf /opt/dign_client/etc/client.conf.sample && mv /opt/dign_client/etc/client.conf /opt/dign_client/etc/client.conf.sample
WORKDIR /opt/dign_client WORKDIR /opt/dign_client

View File

@@ -18,7 +18,7 @@ import dns.resolver
import sys import sys
import logging import logging
import copy import copy
from prettytable import PrettyTable,NONE,HEADER from prettytable import PrettyTable,VRuleStyle
import yaml import yaml
from urllib.parse import urlparse from urllib.parse import urlparse
@@ -422,7 +422,7 @@ class DNSQueryBuilder:
def _query(self, record_type): def _query(self, record_type):
try: try:
self._setup() self._setup()
self._dns_answer = self._dns_resolver.query(self._domain, record_type) self._dns_answer = self._dns_resolver.resolve(self._domain, record_type)
except Exception as error_info: except Exception as error_info:
self._error_info = error_info self._error_info = error_info
@@ -1261,7 +1261,7 @@ class ResultExportBuilder:
def _create_exporter(self): def _create_exporter(self):
self._exporter = PrettyTable() self._exporter = PrettyTable()
self._exporter.vrules = NONE self._exporter.vrules = VRuleStyle.NONE
self._exporter.field_names = [self.COLUMN_0, self.COLUMN_1, self.COLUMN_2] self._exporter.field_names = [self.COLUMN_0, self.COLUMN_1, self.COLUMN_2]
self._exporter.align[self.COLUMN_0] = "l" self._exporter.align[self.COLUMN_0] = "l"
self._exporter.align[self.COLUMN_1] = "l" self._exporter.align[self.COLUMN_1] = "l"

View File

@@ -1,19 +1,29 @@
FROM alpine FROM alpine
RUN set -eux && sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories RUN set -eux && sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
LABEL maintainer="TSG" LABEL maintainer="TSG"
ADD webproc_linux_amd64.gz /tmp/
COPY webproc_0.4.0_linux_amd64.gz /tmp/
COPY webproc_0.4.0_linux_arm64.gz /tmp/
# fetch dnsmasq and webproc binary # fetch dnsmasq and webproc binary
RUN apk update \ RUN apk update \
&& apk upgrade alpine-keys \ && apk upgrade alpine-keys \
&& apk --no-cache add dnsmasq \ && apk --no-cache add dnsmasq \
&& apk add --no-cache --virtual .build-deps curl \ && apk add --no-cache --virtual .build-deps curl \
&& gzip -cd /tmp/webproc_linux_amd64.gz > /usr/local/bin/webproc \
&& rm /tmp/webproc_linux_amd64.gz \
&& chmod +x /usr/local/bin/webproc \
&& apk del .build-deps && apk del .build-deps
RUN ARCH=$(uname -m) && \
if [ "$ARCH" = "x86_64" ]; then \
gzip -cd /tmp/webproc_0.4.0_linux_amd64.gz > /usr/local/bin/webproc; \
elif [ "$ARCH" = "aarch64" ]; then \
gzip -cd /tmp/webproc_0.4.0_linux_arm64.gz > /usr/local/bin/webproc; \
fi \
&& chmod +x /usr/local/bin/webproc \
&& rm -rf /tmp/webproc_0.4.0_linux_amd64.gz \
&& rm -rf /tmp/webproc_0.4.0_linux_arm64.gz
#configure dnsmasq #configure dnsmasq
RUN mkdir -p /etc/default/ RUN mkdir -p /etc/default/
RUN echo -e "ENABLED=1\nIGNORE_RESOLVCONF=yes" > /etc/default/dnsmasq RUN echo -e "ENABLED=1\nIGNORE_RESOLVCONF=yes" > /etc/default/dnsmasq
COPY dnsmasq.conf /etc/dnsmasq.conf COPY dnsmasq.conf /etc/dnsmasq.conf
#run! #run!
ENTRYPOINT ["webproc","--config","/etc/dnsmasq.conf","--","dnsmasq","--no-daemon"] ENTRYPOINT ["webproc","-c","/etc/dnsmasq.conf","--","dnsmasq","--no-daemon"]

Binary file not shown.

Binary file not shown.

View File

@@ -14,15 +14,17 @@ RUN sed -i s@/archive.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sour
libffi-dev \ libffi-dev \
make \ make \
nginx \ nginx \
ruby2.6 \ ruby \
ruby2.6-dev \ ruby-dev \
net-tools \ net-tools \
iputils-ping \ iputils-ping \
faketime \ faketime \
&& gem update --system 3.1.6 \ && gem update --system 3.1.6 \
&& gem install ffi --version 1.15.5 \ && gem install ffi --version 1.15.5 \
&& gem install public_suffix --version 5.0.5 \ && gem install public_suffix --version 4.0.7 \
&& gem install jekyll --version 4.2.2 && gem install rb-inotify --version 0.10.1 \
&& gem install listen --version 3.5.0 \
&& gem install jekyll --version 3.6.0
# Install badssl.com # Install badssl.com
ADD . badssl.com ADD . badssl.com

View File

@@ -43,7 +43,7 @@ spec:
spec: spec:
containers: containers:
- name: dign-client - name: dign-client
image: "dign-client:latest" image: "registry.gdnt-cloud.website/tsg/diagnose/client:latest"
imagePullPolicy: Never imagePullPolicy: Never
workingDir: /opt/dign_client workingDir: /opt/dign_client
command: ["/bin/sh", "-c", "update-ca-certificates; tail -f /dev/null"] command: ["/bin/sh", "-c", "update-ca-certificates; tail -f /dev/null"]
@@ -79,6 +79,6 @@ spec:
path: /opt/tsg/tsg-diagnose/etc path: /opt/tsg/tsg-diagnose/etc
- name: share-path - name: share-path
hostPath: hostPath:
path: /opt/tsg/tsg-diagnose/share path: /opt/tsg/clixon/share
--- ---

View File

@@ -44,9 +44,9 @@ spec:
spec: spec:
containers: containers:
- name: dign-server-dns - name: dign-server-dns
image: "dign-server-dns:latest" image: "registry.gdnt-cloud.website/tsg/diagnose/server-dns:latest"
imagePullPolicy: Never imagePullPolicy: Never
command: ["/bin/sh", "-c", "echo 66.66.66.66 www.1testanswer-cname.com >> /etc/hosts; webproc --config /etc/dnsmasq.conf -- dnsmasq --no-daemon"] command: ["/bin/sh", "-c", "echo 66.66.66.66 www.1testanswer-cname.com >> /etc/hosts; webproc -c /etc/dnsmasq.conf -- dnsmasq --no-daemon"]
securityContext: securityContext:
privileged: true privileged: true
livenessProbe: livenessProbe:
@@ -66,7 +66,7 @@ spec:
readOnly: true readOnly: true
- name: dign-server-web - name: dign-server-web
image: "dign-server-web:latest" image: "registry.gdnt-cloud.website/tsg/diagnose/server-web:latest"
imagePullPolicy: Never imagePullPolicy: Never
command: ["/bin/bash", "-c", "make inside-docker;nginx;tail -f /dev/null"] command: ["/bin/bash", "-c", "make inside-docker;nginx;tail -f /dev/null"]
securityContext: securityContext:
@@ -91,7 +91,7 @@ spec:
initContainers: initContainers:
- name: tsg-dign-init - name: tsg-dign-init
image: "dign-server-dns:latest" image: "registry.gdnt-cloud.website/tsg/diagnose/server-dns:latest"
imagePullPolicy: Never imagePullPolicy: Never
command: ["/bin/sh","-c","i=1;while [ \"$i\" -le 64 ]; do ip_suffix=$(( i + 100 ));ifconfig net1:$i 192.0.2.$ip_suffix;i=$(( i + 1 ));done;"] command: ["/bin/sh","-c","i=1;while [ \"$i\" -le 64 ]; do ip_suffix=$(( i + 100 ));ifconfig net1:$i 192.0.2.$ip_suffix;i=$(( i + 1 ));done;"]
securityContext: securityContext: