Skip to content
Snippets Groups Projects
Commit 4eb65fc6 authored by Matteo Di Carlo's avatar Matteo Di Carlo
Browse files

Merge branch 'roam-297-test-fixed-ports' into 'master'

ROAM-297: build alpine images using fixed port fork

See merge request ska-telescope/ska-tango-images!135
parents 17f61d06 739fc47e
No related branches found
No related tags found
No related merge requests found
Showing
with 156 additions and 55 deletions
...@@ -642,3 +642,11 @@ include: ...@@ -642,3 +642,11 @@ include:
file: 'gitlab-ci/includes/changelog.gitlab-ci.yml' file: 'gitlab-ci/includes/changelog.gitlab-ci.yml'
##### Test k8s
k8s-test:
before_script:
- '[ -f .make/k8s.mk ] || (echo "File k8s.mk not included in Makefile; exit 1")'
- 'make help | grep k8s-test'
- make k8s-install-chart CAR_OCI_REGISTRY_HOST=${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}
- make k8s-wait
\ No newline at end of file
...@@ -2,7 +2,7 @@ BASE = $(shell pwd) ...@@ -2,7 +2,7 @@ BASE = $(shell pwd)
HELM_CHARTS ?= ska-tango-util ska-tango-base HELM_CHARTS ?= ska-tango-util ska-tango-base
HELM_CHARTS_TO_PUBLISH ?= $(HELM_CHARTS) HELM_CHARTS_TO_PUBLISH ?= $(HELM_CHARTS)
OCI_IMAGES ?= ska-tango-images-tango-dependencies ska-tango-images-tango-dependencies-alpine ska-tango-images-tango-db ska-tango-images-tango-db-alpine ska-tango-images-tango-cpp ska-tango-images-tango-cpp-alpine ska-tango-images-tango-java ska-tango-images-tango-java-alpine ska-tango-images-tango-rest ska-tango-images-tango-rest-alpine ska-tango-images-pytango-builder ska-tango-images-pytango-builder-alpine ska-tango-images-tango-pogo ska-tango-images-tango-libtango ska-tango-images-tango-jive ska-tango-images-pytango-runtime ska-tango-images-pytango-runtime-alpine ska-tango-images-tango-admin ska-tango-images-tango-databaseds ska-tango-images-tango-test ska-tango-images-tango-dsconfig ska-tango-images-tango-dsconfig-alpine ska-tango-images-tango-itango ska-tango-images-tango-itango-alpine ska-tango-images-tango-vnc ska-tango-images-tango-pytango ska-tango-images-tango-panic ska-tango-images-tango-panic-gui OCI_IMAGES ?= ska-tango-images-tango-dependencies ska-tango-images-tango-dependencies-alpine ska-tango-images-tango-db ska-tango-images-tango-db-alpine ska-tango-images-tango-cpp ska-tango-images-tango-cpp-alpine ska-tango-images-tango-java ska-tango-images-tango-java-alpine ska-tango-images-tango-rest ska-tango-images-tango-rest-alpine ska-tango-images-pytango-builder ska-tango-images-pytango-builder-alpine ska-tango-images-tango-pogo ska-tango-images-tango-libtango ska-tango-images-tango-jive ska-tango-images-pytango-runtime ska-tango-images-pytango-runtime-alpine ska-tango-images-tango-admin ska-tango-images-tango-databaseds ska-tango-images-tango-test ska-tango-images-tango-dsconfig ska-tango-images-tango-dsconfig-alpine ska-tango-images-tango-itango ska-tango-images-tango-itango-alpine ska-tango-images-tango-vnc ska-tango-images-tango-pytango ska-tango-images-tango-pytango-alpine ska-tango-images-tango-panic ska-tango-images-tango-panic-gui
OCI_IMAGES_TO_PUBLISH ?= $(OCI_IMAGES) OCI_IMAGES_TO_PUBLISH ?= $(OCI_IMAGES)
KUBE_NAMESPACE ?= ska-tango-images#namespace to be used KUBE_NAMESPACE ?= ska-tango-images#namespace to be used
...@@ -19,7 +19,7 @@ K8S_CHARTS ?= ska-tango-util ska-tango-base ska-tango-umbrella## list of charts ...@@ -19,7 +19,7 @@ K8S_CHARTS ?= ska-tango-util ska-tango-base ska-tango-umbrella## list of charts
CI_PROJECT_PATH_SLUG ?= ska-tango-images CI_PROJECT_PATH_SLUG ?= ska-tango-images
CI_ENVIRONMENT_SLUG ?= ska-tango-images CI_ENVIRONMENT_SLUG ?= ska-tango-images
K8S_CHART_PARAMS ?= --set global.minikube=$(MINIKUBE) --set global.tango_host=$(TANGO_HOST) --set global.device_server_port=$(TANGO_SERVER_PORT) K8S_CHART_PARAMS ?= --set global.minikube=$(MINIKUBE) --set global.exposeDatabaseDS=$(MINIKUBE) --set global.exposeAllDS=$(MINIKUBE) --set global.tango_host=$(TANGO_HOST) --set global.device_server_port=$(TANGO_SERVER_PORT)
# K8S_TEST_MAKE_PARAMS = KUBE_NAMESPACE=$(KUBE_NAMESPACE) HELM_RELEASE=$(RELEASE_NAME) TANGO_HOST=$(TANGO_HOST) MARK=$(MARK) # K8S_TEST_MAKE_PARAMS = KUBE_NAMESPACE=$(KUBE_NAMESPACE) HELM_RELEASE=$(RELEASE_NAME) TANGO_HOST=$(TANGO_HOST) MARK=$(MARK)
# K8S_CHART_PARAMS = --set global.minikube=$(MINIKUBE) --set global.tango_host=$(TANGO_HOST) --values $(BASE)/charts/values.yaml # K8S_CHART_PARAMS = --set global.minikube=$(MINIKUBE) --set global.tango_host=$(TANGO_HOST) --values $(BASE)/charts/values.yaml
......
...@@ -2,9 +2,9 @@ apiVersion: v2 ...@@ -2,9 +2,9 @@ apiVersion: v2
appVersion: 0.3.10 appVersion: 0.3.10
description: A Helm chart for deploying the TANGO base system on Kubernetes description: A Helm chart for deploying the TANGO base system on Kubernetes
name: ska-tango-base name: ska-tango-base
version: 0.3.7 version: 0.3.8
icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png
dependencies: dependencies:
- name: ska-tango-util - name: ska-tango-util
version: 0.3.6 version: 0.3.7
repository: file://../ska-tango-util repository: file://../ska-tango-util
...@@ -35,7 +35,7 @@ spec: ...@@ -35,7 +35,7 @@ spec:
--- ---
## The LoadBalancer for external access ## The LoadBalancer for external access
{{ if .Values.global.minikube }} {{ if or (.Values.global.minikube) (.Values.global.exposeAllDS) }}
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
......
...@@ -43,6 +43,8 @@ xauthority: "~/.Xauthority" ...@@ -43,6 +43,8 @@ xauthority: "~/.Xauthority"
global: global:
minikube: false minikube: false
exposeDatabaseDS: false
exposeAllDS: false
cluster_domain: cluster.local cluster_domain: cluster.local
tango_host: databaseds-tango-base:10000 tango_host: databaseds-tango-base:10000
databaseds_port: 10000 databaseds_port: 10000
......
...@@ -2,14 +2,14 @@ apiVersion: v2 ...@@ -2,14 +2,14 @@ apiVersion: v2
appVersion: 0.2.0 appVersion: 0.2.0
description: A Helm chart for deploying the TANGO base system on Kubernetes description: A Helm chart for deploying the TANGO base system on Kubernetes
name: ska-tango-umbrella name: ska-tango-umbrella
version: 0.2.0 version: 0.2.1
icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png
dependencies: dependencies:
- name: ska-tango-base - name: ska-tango-base
version: 0.3.7 version: 0.3.8
repository: file://../ska-tango-base repository: file://../ska-tango-base
condition: ska-tango-base.enabled,global.sub-system.ska-tango-base.enabled condition: ska-tango-base.enabled,global.sub-system.ska-tango-base.enabled
- name: ska-tango-util - name: ska-tango-util
version: 0.3.6 version: 0.3.7
repository: file://../ska-tango-util repository: file://../ska-tango-util
...@@ -3,7 +3,7 @@ description: A Helm chart library of utilities for TANGO deployents ...@@ -3,7 +3,7 @@ description: A Helm chart library of utilities for TANGO deployents
name: ska-tango-util name: ska-tango-util
type: library type: library
appVersion: 0.3.10 appVersion: 0.3.10
version: 0.3.6 version: 0.3.7
icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png
maintainers: maintainers:
- name: Matteo Di Carlo - name: Matteo Di Carlo
......
...@@ -13,6 +13,8 @@ Parameters: ...@@ -13,6 +13,8 @@ Parameters:
{{ $default_tango_host := printf "%s-%s:10000" "databaseds-tango-base-" .local.Release.Name }} {{ $default_tango_host := printf "%s-%s:10000" "databaseds-tango-base-" .local.Release.Name }}
{{ $tango_host := tpl (coalesce .local.Values.global.tango_host .local.Values.tango_host $default_tango_host | toString) .local }} {{ $tango_host := tpl (coalesce .local.Values.global.tango_host .local.Values.tango_host $default_tango_host | toString) .local }}
{{ $tango_server_port := coalesce .local.Values.global.device_server_port "45450" }} {{ $tango_server_port := coalesce .local.Values.global.device_server_port "45450" }}
{{ $tango_heartbeat_port := coalesce .local.Values.global.device_heartbeat_port "45460" }}
{{ $tango_event_port := coalesce .local.Values.global.device_event_port "45470" }}
{{ $cluster_domain := coalesce .local.Values.global.cluster_domain "cluster.local" }} {{ $cluster_domain := coalesce .local.Values.global.cluster_domain "cluster.local" }}
{{ $dsconfig := coalesce .local.Values.global.dsconfig .local.Values.dsconfig}} {{ $dsconfig := coalesce .local.Values.global.dsconfig .local.Values.dsconfig}}
{{ $chart := .local }} {{ $chart := .local }}
...@@ -73,9 +75,52 @@ spec: ...@@ -73,9 +75,52 @@ spec:
- name: tango-server - name: tango-server
port: {{ $tango_server_port }} port: {{ $tango_server_port }}
targetPort: {{ $tango_server_port }} targetPort: {{ $tango_server_port }}
- name: tango-heartbeat
port: {{ $tango_heartbeat_port }}
targetPort: {{ $tango_heartbeat_port }}
- name: tango-event
port: {{ $tango_event_port }}
targetPort: {{ $tango_event_port }}
selector: selector:
subsystem: {{ $chart.Values.subsystem }} subsystem: {{ $chart.Values.subsystem }}
component: {{tpl ($deviceserver_name | toString) $chart }}-{{ $safe_instance }} component: {{tpl ($deviceserver_name | toString) $chart }}-{{ $safe_instance }}
## The LoadBalancer for external access
{{ if or ($chart.Values.global.minikube) ($chart.Values.global.exposeAllDS) ($deviceserver.exposeDS) }}
---
apiVersion: v1
kind: Service
metadata:
name: {{$deviceserver_name | toString }}-{{ $safe_instance }}-external
namespace: {{ $chart.Release.Namespace }}
labels:
{{ toYaml $labels | indent 4 }}
component: {{tpl ($deviceserver_name | toString) $chart }}-{{ $safe_instance }}
function: {{ $deviceserver.function }}
domain: {{ $deviceserver.domain }}
subsystem: {{ $chart.Values.subsystem }}
{{ if $annotations }}
annotations:
{{ toYaml $annotations | indent 4 }}
{{ end }}
spec:
ports:
- name: tango-server
port: {{ $tango_server_port }}
targetPort: {{ $tango_server_port }}
- name: tango-heartbeat
port: {{ $tango_heartbeat_port }}
targetPort: {{ $tango_heartbeat_port }}
- name: tango-event
port: {{ $tango_event_port }}
targetPort: {{ $tango_event_port }}
selector:
subsystem: {{ $chart.Values.subsystem }}
component: {{tpl ($deviceserver_name | toString) $chart }}-{{ $safe_instance }}
type: LoadBalancer
{{ end }}
--- ---
apiVersion: apps/v1 apiVersion: apps/v1
kind: StatefulSet kind: StatefulSet
...@@ -215,6 +260,10 @@ spec: ...@@ -215,6 +260,10 @@ spec:
ports: ports:
- containerPort: {{ $tango_server_port }} - containerPort: {{ $tango_server_port }}
name: tango-server name: tango-server
- containerPort: {{ $tango_heartbeat_port }}
name: tango-heartbeat
- containerPort: {{ $tango_event_port }}
name: tango-event
volumeMounts: volumeMounts:
- name: configuration - name: configuration
mountPath: data mountPath: data
...@@ -276,6 +325,10 @@ spec: ...@@ -276,6 +325,10 @@ spec:
value: {{ $tango_host }} value: {{ $tango_host }}
- name: TANGO_SERVER_PORT - name: TANGO_SERVER_PORT
value: "{{ $tango_server_port }}" value: "{{ $tango_server_port }}"
- name: TANGO_ZMQ_HEARTBEAT_PORT
value: "{{ $tango_heartbeat_port }}"
- name: TANGO_ZMQ_EVENT_PORT
value: "{{ $tango_event_port }}"
- name: TANGO_SERVER_PUBLISH_HOSTNAME - name: TANGO_SERVER_PUBLISH_HOSTNAME
value: {{$deviceserver_name | toString }}-{{ $safe_instance }}.{{ $chart.Release.Namespace }}.svc.{{ $cluster_domain }} value: {{$deviceserver_name | toString }}-{{ $safe_instance }}.{{ $chart.Release.Namespace }}.svc.{{ $cluster_domain }}
{{- if $chart.Values.global.environment_variables }} {{- if $chart.Values.global.environment_variables }}
......
release=9.3.14 release=9.3.15
tag=9.3.14 tag=9.3.15
\ No newline at end of file \ No newline at end of file
numpy==1.21.0 numpy==1.21.0
pytango==9.3.3 pytango==9.3.3
# git+https://gitlab.com/tango-controls/pytango.git@main#egg=pytango
flake8 flake8
flake8_formatter_junit_xml flake8_formatter_junit_xml
isort isort
......
release=9.3.27 release=9.3.17
tag=9.3.27 tag=9.3.17
...@@ -37,6 +37,8 @@ RUN apt-get update \ ...@@ -37,6 +37,8 @@ RUN apt-get update \
libboost-python-dev \ libboost-python-dev \
pkg-config \ pkg-config \
python3-distutils \ python3-distutils \
python3-setuptools \
python3-wheel \
zlib1g-dev \ zlib1g-dev \
ca-certificates \ ca-certificates \
curl \ curl \
...@@ -45,8 +47,6 @@ RUN apt-get update \ ...@@ -45,8 +47,6 @@ RUN apt-get update \
RUN curl -k https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python3 get-pip.py RUN curl -k https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python3 get-pip.py
COPY pip.conf /etc/pip.conf COPY pip.conf /etc/pip.conf
RUN python3 -m pip install setuptools wheel
WORKDIR /app WORKDIR /app
# Install numpy manually before PyTango and other requirements to ensure we # Install numpy manually before PyTango and other requirements to ensure we
......
release=9.3.14 release=9.3.15
tag=9.3.14 tag=9.3.15
release=9.3.14 release=9.3.15
tag=9.3.14 tag=9.3.15
release=1.15.4 release=1.15.5
tag=1.15.4 tag=1.15.5
release=9.3.9 release=9.3.10
tag=9.3.9 tag=9.3.10
...@@ -15,8 +15,9 @@ RUN git clone --depth 1 https://gitlab.com/tango-controls/tango-idl.git /idl && ...@@ -15,8 +15,9 @@ RUN git clone --depth 1 https://gitlab.com/tango-controls/tango-idl.git /idl &&
## build and install cppTango ## build and install cppTango
## latest main version is not working using previous commit ## latest main version is not working using previous commit
RUN git clone https://gitlab.com/tango-controls/cppTango /cppTango && \
cd /cppTango && git checkout 1575524ada0a3f8fe97b4040c07da7c83fced325 && \ RUN git clone https://gitlab.com/tango-controls/cppTango.git /cppTango && \
cd /cppTango && git checkout 9.3.5-rc1 && \
sed -i '1s/^/#include <sys\/types.h>\n#include <bits\/alltypes.h>\n/' /cppTango/log4tango/include/log4tango/FileAppender.hh && \ sed -i '1s/^/#include <sys\/types.h>\n#include <bits\/alltypes.h>\n/' /cppTango/log4tango/include/log4tango/FileAppender.hh && \
mkdir build && \ mkdir build && \
cmake . -B build \ cmake . -B build \
...@@ -52,7 +53,6 @@ LABEL \ ...@@ -52,7 +53,6 @@ LABEL \
COPY --from=buildenv /usr/local /usr/local COPY --from=buildenv /usr/local /usr/local
RUN apk --update add --no-cache sudo libstdc++ bash libsodium-dev mariadb-connector-c \ RUN apk --update add --no-cache sudo libstdc++ bash libsodium-dev mariadb-connector-c \
&& ln -s /usr/local/lib/libtango.so.9.4.0 /usr/local/lib/libtango.so.9 \
# for some reason we are getting the wrong DataBaseds name # for some reason we are getting the wrong DataBaseds name
&& ln -s /usr/local/bin/Databaseds /usr/local/bin/DataBaseds \ && ln -s /usr/local/bin/Databaseds /usr/local/bin/DataBaseds \
# also create the user tango and add it to sudoers # also create the user tango and add it to sudoers
......
release=9.3.9 release=9.3.10
tag=9.3.9 tag=9.3.10
...@@ -8,23 +8,58 @@ ARG BUILD_IMAGE="${CAR_OCI_REGISTRY_HOST}/ska-tango-images-tango-dependencies:9. ...@@ -8,23 +8,58 @@ ARG BUILD_IMAGE="${CAR_OCI_REGISTRY_HOST}/ska-tango-images-tango-dependencies:9.
ARG BASE_IMAGE="debian:buster-slim" ARG BASE_IMAGE="debian:buster-slim"
FROM $BUILD_IMAGE as buildenv FROM $BUILD_IMAGE as buildenv
ENV TANGO_DOWNLOAD_URL=https://artefact.skao.int/repository/raw-internal/ska-tango-images/libraries/tango-9.3.4.tar.gz
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \ RUN apt-get update && \
apt-get -y install --no-install-recommends \ apt-get -y install --no-install-recommends \
build-essential ca-certificates curl file libmariadbclient-dev libmariadbclient-dev-compat pkg-config python build-essential \
ca-certificates \
cmake \
curl \
file \
git \
libmariadbclient-dev \
libmariadbclient-dev-compat \
pkg-config python
# build and install tangoidl
RUN mkdir -p /usr/src/idl
WORKDIR /usr/src/idl
RUN git clone --depth 1 https://gitlab.com/tango-controls/tango-idl.git /usr/src/idl && \
mkdir -p /usr/src/idl/build && \
cmake -B /usr/src/idl/build -DCMAKE_INSTALL_PREFIX=/usr/local/ /usr/src/idl && \
make -j$(nproc) -C /usr/src/idl/build install
RUN mkdir -p /usr/src/tango RUN mkdir -p /usr/src/tango
WORKDIR /usr/src/tango WORKDIR /usr/src/tango
RUN curl -fsSL "$TANGO_DOWNLOAD_URL" -o tango.tar.gz \ RUN git clone https://gitlab.com/tango-controls/cppTango.git /usr/src/tango && \
&& tar xf tango.tar.gz -C /usr/src/tango --strip-components=1 \ cd /usr/src/tango && git checkout 9.3.5-rc1 && \
&& ./configure --with-zmq=/usr/local --with-omni=/usr/local --with-mysqlclient-prefix=/usr --enable-static=no \ mkdir build && \
&& make -C /usr/src/tango -j$(nproc) \ cmake . -B build \
&& make -C /usr/src/tango install \ -DBUILD_TESTING=OFF \
&& ldconfig \ -DCPPZMQ_BASE=/usr/local/ \
&& rm -r /usr/src/tango -DIDL_BASE=/usr/local/ \
-DOMNI_BASE=/usr/local/ \
-DZMQ_BASE=/usr/local/ && \
make -C /usr/src/tango/build -j$(nproc) && \
make -C /usr/src/tango/build install && \
ldconfig && \
rm -r /usr/src/tango
# build and install tango_admin
RUN git clone https://gitlab.com/tango-controls/tango_admin.git /usr/src/tango_admin && \
cmake -B /usr/src/tango_admin/build -DCMAKE_INSTALL_PREFIX=/usr/local/ /usr/src/tango_admin && \
make -j$(nproc) -C /usr/src/tango_admin/build install
# build and install TangoDatabase
RUN git clone --depth 1 https://gitlab.com/tango-controls/TangoDatabase.git /usr/src/TangoDatabase && \
cmake -B /usr/src/TangoDatabase/build -DCMAKE_INSTALL_PREFIX=/usr/local/ /usr/src/TangoDatabase && \
make -j$(nproc) -C /usr/src/TangoDatabase/build install
FROM $BASE_IMAGE FROM $BASE_IMAGE
...@@ -45,7 +80,9 @@ RUN apt-get update && \ ...@@ -45,7 +80,9 @@ RUN apt-get update && \
RUN useradd --create-home --home-dir /home/tango tango RUN useradd --create-home --home-dir /home/tango tango
RUN echo "tango ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/tango \ RUN \
&& chmod 0440 /etc/sudoers.d/tango echo "tango ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/tango && \
chmod 0440 /etc/sudoers.d/tango && \
ln -s /usr/local/bin/Databaseds /usr/local/bin/DataBaseds
USER tango USER tango
release=5.16.4 release=5.16.5
tag=5.16.4 tag=5.16.5
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment