tools/stx/stx-build-tools-chart/stx-builder/templates/deployment.yaml
Davlet Panech ec39ac4d95 debian: better resolv.conf in builder containers
Add option ndots:1 to /etc/resolv.conf

This fixes a few issues with DNS queries within docker containers.

Normally when looking up a host name such as "debian.org", libc appends
the search domains from /etc/resolv.conf to the host name, then makes a
separate query for each "long" name. For example, if "search" in
/etc/resolv.conf contains "domain1.org domain2.org", we make 3 queries
when looking for debian.org's IP addr:

- debian.org.domain1.org (fail)
- debian.org.domain2.org (fail)
- debian.org (success)

Setting "ndots:1" makes it send the last unqualified query before the
other queries with appended search domains -- for any names that
contain >= 1 dot.

This patch solves 2 problems:

(1) In Alpine Linux (used by the "docker" pod), libc has a limitation:
    the domain search list can't have more than 5 entries. If it does it
    stops sending any more DNS queries and the last (unqualified) query
    never happens, so many hostname lookups fail.

(2) These extra queries are not necessary a lot of the time, so this
    patch makes host name lookups faster

TESTS
===============================

- Rebuild all containers
- Rebuild packages and the ISO
- Make sure DNS queries work in all containers

Story: 2009897
Task: 45156

Signed-off-by: Davlet Panech <davlet.panech@windriver.com>
Change-Id: I7dd72b8fcc776821138c362c3aec9f4e5962a319
2022-04-22 11:58:49 -04:00

77 lines
2.5 KiB
YAML

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "stx-builder.fullname" . }}
labels:
{{- include "stx-builder.labels" . | nindent 4 }}
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "stx-builder.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "stx-builder.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.global.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
tty: true
env:
- name: DOCKER_HOST
value: "tcp://{{ .Release.Name }}-stx-docker"
volumeMounts:
- name: {{ .Values.volumeMounts.workspace.name }}
mountPath: {{ .Values.volumeMounts.workspace.mountPath}}
- name: {{ .Values.volumeMounts.userSetting.name }}
mountPath: {{ .Values.volumeMounts.userSetting.mountPath}}
- name: {{ .Values.volumeMounts.mirror.name }}
mountPath: {{ .Values.volumeMounts.mirror.mountPath }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
dnsConfig:
{{- toYaml .Values.dnsConfig | nindent 8 }}
volumes:
- name: {{ .Values.volumes.workspace.name }}
hostPath:
path: {{ .Values.global.hostDir }}{{ .Values.volumes.workspace.hostPath.path }}
- name: {{ .Values.volumes.userSetting.name }}
configMap:
name: {{ .Values.volumes.userSetting.configMapName }}
- name: {{ .Values.volumes.mirror.name }}
hostPath:
path: {{ .Values.global.hostDir }}{{ .Values.volumes.mirror.hostPath.path }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}