fix(ci): tiltfile should be able to overwrite 'objects' pod image (#2097)

This commit is contained in:
Iain Sproat
2024-03-01 10:50:36 +00:00
committed by GitHub
parent 9bafe843d4
commit 35218d42e8
7 changed files with 47 additions and 6 deletions
+5 -2
View File
@@ -18,9 +18,11 @@ def docker_load(name, filename=None, existing_ref=None, deps=None):
docker tag "{EXISTING_REF}" "$EXPECTED_REF"'.format(DOCKER_FILE_NAME=filename, EXISTING_REF=existing_ref),
deps=deps)
def speckle_image(package):
def speckle_image(package,original_package_name=None):
if not package:
fail('package must be specified')
if not original_package_name:
original_package_name = package
image_version_tag = os.getenv('IMAGE_VERSION_TAG')
if not image_version_tag:
@@ -31,7 +33,8 @@ def speckle_image(package):
workspace='/tmp/ci/workspace'
docker_image_tag = 'speckle/speckle-{}'.format(package)
existing_ref = '{}:{}'.format(docker_image_tag, image_version_tag)
original_docker_image_tag = 'speckle/speckle-{}'.format(original_package_name)
existing_ref = '{}:{}'.format(original_docker_image_tag, image_version_tag)
docker_file_name = "".join([ c if c.isalnum() or c=='-' or c=='_' or c=='.' else "_" for c in existing_ref.elems() ])
return docker_load(docker_image_tag,
filename=docker_file_name,
+8
View File
@@ -24,6 +24,7 @@ speckle_image('frontend-2')
speckle_image('monitor-deployment')
speckle_image('preview-service')
speckle_image('server')
speckle_image('objects','server')
speckle_image('test-deployment')
speckle_image('webhook-service')
@@ -51,6 +52,7 @@ helm_resource('postgresql',
flags=['--version=^12.0.0',
'--values=./values/postgres.values.yaml',
'--kube-context=kind-speckle-server'],
deps=['./values/postgres.values.yaml'],
labels=['speckle-dependencies'])
helm_resource('minio',
@@ -60,6 +62,7 @@ helm_resource('minio',
flags=['--version=^12.0.0',
'--values=./values/minio.values.yaml',
'--kube-context=kind-speckle-server'],
deps=['./values/minio.values.yaml'],
labels=['speckle-dependencies'])
helm_resource('redis',
@@ -69,6 +72,7 @@ helm_resource('redis',
flags=['--version=18.7.1',
'--values=./values/redis.values.yaml',
'--kube-context=kind-speckle-server'],
deps=['./values/redis.values.yaml'],
labels=['speckle-dependencies'])
#FIXME this helm chart does not deploy any containers, so tilt incorrectly believes it never gets to a final state
@@ -79,6 +83,7 @@ helm_resource('redis',
# namespace='prometheus',
# resource_deps=['prometheus-repo'],
# chart='prometheus-repo/prometheus-operator-crds',
# deps=['./values/prometheus-operator-crds.values.yaml'],
# flags=['--version=^7.0.0',
# '--values=./values/prometheus-operator-crds.values.yaml',
# '--kube-context=kind-speckle-server'])
@@ -95,6 +100,7 @@ helm_resource('ingress-nginx',
flags=['--version=^4.8.0',
'--values=./values/nginx.values.yaml',
'--kube-context=kind-speckle-server'],
deps=['./values/nginx.values.yaml'],
resource_deps=['postgresql', 'minio', 'redis', 'ingress-nginx-repo'],
labels=['speckle-dependencies'])
@@ -122,6 +128,7 @@ helm_resource('speckle-server',
'speckle/speckle-monitor-deployment',
'speckle/speckle-preview-service',
'speckle/speckle-server',
'speckle/speckle-objects',
'speckle/speckle-test-deployment',
'speckle/speckle-webhook-service',
],
@@ -131,6 +138,7 @@ helm_resource('speckle-server',
'monitor.image',
'preview_service.image',
'server.image',
'objects.image',
'test.image',
'webhook_service.image',
],
+8 -3
View File
@@ -1,11 +1,16 @@
# Build each Dockerfile and reference resource for use in the primary Tiltfile
# The referenced resources can then be deployed by the Helm Chart
def speckle_image(package):
package_dir = 'packages/{}'.format(package)
def speckle_image(package,original_package_name=None):
if not original_package_name:
original_package_name = package
package_dir = 'packages/{}'.format(original_package_name)
if package == 'test-deployment' or package == 'monitor-deployment' or package == 'docker-compose-ingress':
package_dir = 'utils/{}'.format(package)
docker_build('speckle/speckle-{}'.format(package),
context='../..',
dockerfile='../../{}/Dockerfile'.format(package_dir),
platform='linux/amd64')
platform='linux/amd64',
ignore = ['**/node_modules', '**/dist', '**/build', '**/coverage', 'minio-data', 'postgres-data']
)
@@ -25,6 +25,23 @@ server:
disable_tracking: true
disable_tracing: true
objects:
replicas: 1
# session_secret: secret -> `session_secret`
auth:
local:
enabled: true
logLevel: debug
email:
enabled: false
monitoring:
mp:
enabled: false
disable_tracking: true
disable_tracing: true
frontend_2:
enabled: true
@@ -20,7 +20,7 @@ spec:
spec:
containers:
- name: main
image: speckle/speckle-server:{{ .Values.docker_image_tag }}
image: {{ default (printf "speckle/speckle-server:%s" .Values.docker_image_tag) .Values.objects.image }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
args: #overwrites the Dockerfile CMD statement
{{- if .Values.objects.inspect.enabled }}
@@ -1095,6 +1095,11 @@
"description": "The number of instances of the Server pod to be deployed within the cluster.",
"default": 1
},
"image": {
"type": "string",
"description": "The Docker image to be used for the Speckle Objects component. If blank, defaults to speckle/speckle-server:{{ .Values.docker_image_tag }}. If provided, this value should be the full path including tag. The docker_image_tag value will be ignored.",
"default": ""
},
"logLevel": {
"type": "string",
"description": "The minimum level of logs which will be output. Suitable values are trace, debug, info, warn, error, fatal, or silent",
+3
View File
@@ -717,6 +717,9 @@ objects:
## @param objects.replicas The number of instances of the Server pod to be deployed within the cluster.
##
replicas: 1
## @param objects.image The Docker image to be used for the Speckle Objects component. If blank, defaults to speckle/speckle-server:{{ .Values.docker_image_tag }}. If provided, this value should be the full path including tag. The docker_image_tag value will be ignored.
##
image: ''
## @param objects.logLevel The minimum level of logs which will be output. Suitable values are trace, debug, info, warn, error, fatal, or silent
##
logLevel: 'info'