diff --git a/README.md b/README.md index 4d0a7c4..d268dc5 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,9 @@ ### ci - [x] Добаваить тестов на предмет хелм рендеринда конфигов | добавить opa политики - [x] Добавить [семантическое версионирование](https://semver.org/lang/ru/) + git-теги + хелм-релиз-логика - - [ ] Тестить сборку релиза перед мерджем, в самом pr - - [ ] сonventional сommits | всё в .releaserc.json | встроить флоу для гита + - [ ] Добавить argocd-image-updater + - [ ] Тестить сборку релиза перед мерджем, в самом pr + - [ ] сonventional сommits | всё в .releaserc.json | встроить флоу для гита ### mesh - [ ] Добавить сервис по анализу [инцидентов](https://github.com/justgithubaccount/app-release/issues/5) - [ ] Продумать концепцию нейминга как под saas сервис diff --git a/charts/chat/templates/deployment.yaml b/charts/chat/templates/deployment.yaml index bcf2bcd..087604e 100644 --- a/charts/chat/templates/deployment.yaml +++ b/charts/chat/templates/deployment.yaml @@ -20,7 +20,8 @@ spec: serviceAccountName: {{ include "chat-api.fullname" . }} containers: - name: chat-api - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + # image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - containerPort: {{ .Values.containerPort }} @@ -42,7 +43,8 @@ spec: - name: ENVIRONMENT value: {{ .Values.env.ENVIRONMENT | default "production" | quote }} - name: APP_VERSION - value: {{ .Chart.AppVersion | quote }} + value: {{ .Values.image.tag | quote }} + # value: {{ .Chart.AppVersion | quote }} - name: LOG_LEVEL value: {{ .Values.env.LOG_LEVEL | default "INFO" | quote }} - name: OPENROUTER_API_URL diff --git a/charts/chat/values.yaml b/charts/chat/values.yaml index 7cfb1c3..0d365e1 100644 --- a/charts/chat/values.yaml +++ b/charts/chat/values.yaml @@ -8,7 +8,7 @@ namespace: "chat-api" image: repository: ghcr.io/justgithubaccount/chat-api pullPolicy: Always - tag: "latest" + tag: "1.0.0" # === Сетевые настройки === containerPort: 8000 diff --git a/infra/base/addons/argocd-image-updater/applicatiion.yaml b/infra/base/addons/argocd-image-updater/applicatiion.yaml new file mode 100644 index 0000000..eea69b9 --- /dev/null +++ b/infra/base/addons/argocd-image-updater/applicatiion.yaml @@ -0,0 +1,61 @@ +# infra/base/addons/argocd-image-updater/application.yaml +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: argocd-image-updater + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: https://argoproj.github.io/argo-helm + chart: argocd-image-updater + targetRevision: 0.12.3 + helm: + values: | + config: + # ArgoCD server configuration + argocd: + serverAddress: "argocd-server.argocd.svc.cluster.local:80" + insecure: true + plaintext: true + # Если нужен token вместо in-cluster auth: + # token: "" + + # Поддержка registries + registries: + - name: ghcr + api_url: https://ghcr.io + prefix: ghcr.io + # credentials: secret:argocd/ghcr-credentials#token + + # Метрики и мониторинг + metrics: + enabled: true + port: 8080 + + # RBAC + serviceAccount: + create: true + + # Ресурсы + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 50m + memory: 64Mi + destination: + server: CLUSTER + namespace: argocd + syncPolicy: + automated: + allowEmpty: true + selfHeal: true + prune: true + syncOptions: + - Validate=true + - CreateNamespace=true + - PruneLast=true \ No newline at end of file diff --git a/infra/base/addons/argocd-image-updater/kustomization.yaml b/infra/base/addons/argocd-image-updater/kustomization.yaml new file mode 100644 index 0000000..1387067 --- /dev/null +++ b/infra/base/addons/argocd-image-updater/kustomization.yaml @@ -0,0 +1,2 @@ +resources: + - application.yaml \ No newline at end of file diff --git a/infra/base/services/agent/chat/application.yaml b/infra/base/services/agent/chat/application.yaml index e25aaa0..55ae5fd 100644 --- a/infra/base/services/agent/chat/application.yaml +++ b/infra/base/services/agent/chat/application.yaml @@ -5,6 +5,12 @@ metadata: namespace: argocd annotations: argocd.argoproj.io/sync-wave: "5" + argocd-image-updater.argoproj.io/image-list: chat=ghcr.io/justgithubaccount/chat-api + argocd-image-updater.argoproj.io/chat.update-strategy: semver:~1.0 + # ~1.1 = только 1.1.x (patch updates) + # ^1.1 = любые 1.x.x (minor updates) + # latest = всегда последний тег + argocd-image-updater.argoproj.io/chat.helm.image-tag: image.tag spec: project: default source: diff --git a/infra/clusters/dev/kustomization.yaml b/infra/clusters/dev/kustomization.yaml index 444ea22..fbcfbf6 100644 --- a/infra/clusters/dev/kustomization.yaml +++ b/infra/clusters/dev/kustomization.yaml @@ -17,6 +17,7 @@ resources: # - ../../base/addons/consul - ../../base/addons/external-secrets - ../../base/addons/observability/vector-gateway + - ../../base/addons/argocd-image-updater patches: # Override .spec.destination.name