djaploy 1.5.3__tar.gz → 1.5.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {djaploy-1.5.3 → djaploy-1.5.4}/PKG-INFO +1 -1
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/Chart.yaml +1 -1
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/templates/deployment.yaml +25 -2
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/values.yaml +8 -0
- djaploy-1.5.4/djaploy/version.py +1 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy.egg-info/PKG-INFO +1 -1
- {djaploy-1.5.3 → djaploy-1.5.4}/pyproject.toml +1 -1
- {djaploy-1.5.3 → djaploy-1.5.4}/tests/test_k3s.py +1 -1
- djaploy-1.5.3/djaploy/version.py +0 -1
- {djaploy-1.5.3 → djaploy-1.5.4}/LICENSE +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/README.md +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/app.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/borg/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/borg/infra/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/borg/infra/djaploy_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/janitor/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/janitor/apps.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/janitor/infra/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/janitor/infra/commands/createjanitoruser.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/janitor/infra/djaploy_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/nginx/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/nginx/apps.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/nginx/infra/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/nginx/infra/djaploy_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/rclone/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/rclone/apps.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/rclone/infra/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/rclone/infra/djaploy_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/sync_certs/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/sync_certs/apps.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/sync_certs/infra/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/sync_certs/infra/djaploy_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/systemd/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/systemd/apps.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/systemd/infra/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/systemd/infra/djaploy_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/tailscale/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/tailscale/apps.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/tailscale/infra/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/tailscale/infra/djaploy_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/versioning/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/versioning/apps.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/versioning/infra/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/apps/versioning/infra/djaploy_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/artifact.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/bin/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/bin/django_pyinfra.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/bin/gunicornherder.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/builtin_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/certificates.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/changelog.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/commands/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/commands/_utils.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/commands/activate.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/commands/configure.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/commands/deploy.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/commands/restore.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/commands/rollback.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/commands/status.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/commands/sync_certs.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/config.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/deploy.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/discovery.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/bluegreen.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/templates/_helpers.tpl +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/templates/configmap.yaml +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/templates/cronjobs.yaml +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/templates/ingress.yaml +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/templates/onepassword.yaml +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/templates/pvc.yaml +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/templates/service.yaml +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/charts/django-app/templates/workers.yaml +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/djaploy_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/k3s.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/templates.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/infra/utils.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/management/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/management/commands/__init__.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/management/commands/djaploy.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/management/commands/restore_backup.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/management/commands/sync_certs.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/management/commands/update_certs.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/management/commands/verify.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/management/utils.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/notifications.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/utils.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy/versioning.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy.egg-info/SOURCES.txt +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy.egg-info/dependency_links.txt +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy.egg-info/entry_points.txt +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy.egg-info/requires.txt +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/djaploy.egg-info/top_level.txt +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/setup.cfg +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/tests/test_bluegreen.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/tests/test_borg.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/tests/test_config.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/tests/test_deploy_scripts.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/tests/test_discovery.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/tests/test_gunicornherder.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/tests/test_hooks.py +0 -0
- {djaploy-1.5.3 → djaploy-1.5.4}/tests/test_versioning.py +0 -0
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
{{- $sqlite := eq .Values.database.engine "sqlite" -}}
|
|
2
2
|
{{- $fullname := include "django-app.fullname" . -}}
|
|
3
|
+
{{- $strategy := .Values.strategy | default (ternary "Recreate" "RollingUpdate" $sqlite) -}}
|
|
4
|
+
{{- if not (has $strategy (list "Recreate" "RollingUpdate")) }}
|
|
5
|
+
{{- fail (printf "strategy must be Recreate or RollingUpdate, not %q" $strategy) }}
|
|
6
|
+
{{- end }}
|
|
7
|
+
{{- $rolling := eq $strategy "RollingUpdate" -}}
|
|
3
8
|
apiVersion: apps/v1
|
|
4
9
|
kind: Deployment
|
|
5
10
|
metadata:
|
|
@@ -7,11 +12,17 @@ metadata:
|
|
|
7
12
|
labels:
|
|
8
13
|
{{- include "django-app.labels" . | nindent 4 }}
|
|
9
14
|
spec:
|
|
10
|
-
# SQLite
|
|
15
|
+
# SQLite: one pod (a rolling update briefly runs the new one beside it).
|
|
11
16
|
replicas: {{ if .Values.suspended }}0{{ else if $sqlite }}1{{ else }}{{ .Values.replicas }}{{ end }}
|
|
12
17
|
revisionHistoryLimit: 5
|
|
13
18
|
strategy:
|
|
14
|
-
type: {{
|
|
19
|
+
type: {{ $strategy }}
|
|
20
|
+
{{- if $rolling }}
|
|
21
|
+
# Start the new pod, wait until it's ready, then stop the old one.
|
|
22
|
+
rollingUpdate:
|
|
23
|
+
maxSurge: 1
|
|
24
|
+
maxUnavailable: 0
|
|
25
|
+
{{- end }}
|
|
15
26
|
selector:
|
|
16
27
|
matchLabels:
|
|
17
28
|
{{- include "django-app.selectorLabels" (dict "root" . "component" "web") | nindent 6 }}
|
|
@@ -61,6 +72,12 @@ spec:
|
|
|
61
72
|
{{- include "django-app.containerEnv" . | nindent 10 }}
|
|
62
73
|
ports:
|
|
63
74
|
- { name: gunicorn, containerPort: 8000 }
|
|
75
|
+
{{- if $rolling }}
|
|
76
|
+
# Keep serving while Traefik stops routing to this pod.
|
|
77
|
+
lifecycle:
|
|
78
|
+
preStop:
|
|
79
|
+
exec: { command: ["sleep", "5"] }
|
|
80
|
+
{{- end }}
|
|
64
81
|
# Host + X-Forwarded-Proto so ALLOWED_HOSTS and SECURE_SSL_REDIRECT accept the probe.
|
|
65
82
|
startupProbe:
|
|
66
83
|
{{- include "django-app.probe" . | nindent 12 }}
|
|
@@ -84,6 +101,12 @@ spec:
|
|
|
84
101
|
image: {{ .Values.nginx.image }}
|
|
85
102
|
ports:
|
|
86
103
|
- { name: http, containerPort: 8080 }
|
|
104
|
+
{{- if $rolling }}
|
|
105
|
+
# Keep serving while Traefik stops routing to this pod.
|
|
106
|
+
lifecycle:
|
|
107
|
+
preStop:
|
|
108
|
+
exec: { command: ["sleep", "5"] }
|
|
109
|
+
{{- end }}
|
|
87
110
|
readinessProbe:
|
|
88
111
|
tcpSocket: { port: http }
|
|
89
112
|
periodSeconds: {{ .Values.probes.readinessPeriodSeconds }}
|
|
@@ -57,6 +57,14 @@ migrations:
|
|
|
57
57
|
# -- Ignored (always 1) while database.engine is sqlite.
|
|
58
58
|
replicas: 1
|
|
59
59
|
|
|
60
|
+
# -- Recreate (stop the old pod, then start the new one) or RollingUpdate (start
|
|
61
|
+
# the new pod beside the old one, switch when it's ready: no downtime). Default:
|
|
62
|
+
# Recreate for SQLite, RollingUpdate for Postgres. A SQLite app on RollingUpdate
|
|
63
|
+
# briefly has two pods on the same database, and the new one migrates while the
|
|
64
|
+
# old one still serves: its migrations must not break the running version, and
|
|
65
|
+
# startup work mustn't redo what the old pod is still doing.
|
|
66
|
+
strategy: ""
|
|
67
|
+
|
|
60
68
|
storage:
|
|
61
69
|
size: 10Gi
|
|
62
70
|
storageClassName: local-path-retain
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.5.4"
|
|
@@ -108,7 +108,7 @@ class ImageRefTests(unittest.TestCase):
|
|
|
108
108
|
|
|
109
109
|
class ChartTests(unittest.TestCase):
|
|
110
110
|
def test_bundled_chart_version(self):
|
|
111
|
-
self.assertEqual(k3s.chart_version(), "0.2.
|
|
111
|
+
self.assertEqual(k3s.chart_version(), "0.2.4")
|
|
112
112
|
|
|
113
113
|
|
|
114
114
|
class BuildModeTests(unittest.TestCase):
|
djaploy-1.5.3/djaploy/version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.5.3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|