diff --git a/CHANGELOG/release-notes-v2.2.0.md b/CHANGELOG/release-notes-v2.2.0.md new file mode 100644 index 0000000000..b3d6ca5077 --- /dev/null +++ b/CHANGELOG/release-notes-v2.2.0.md @@ -0,0 +1,18 @@ +## v2.2.0 + +## Enhancements +- feat: add native sidecar container support (#6946) +- feat: add env-driven timeout for buildx builder pod readiness (#6944) +- feat: app filters enhancement (#6939) +## Bugs +- fix: new dependabot fixes (#6955) +- fix: streamline AWS session creation and improve error handling (#6948) +- fix: dependabot security advisory (#6945) +## Others +- chore: added sql migration (#6951) +- misc: Release candidate v0.46.0 (#6953) +- sync: new dependabot security fixes (#6950) +- misc: mig seq in develop (#6949) +- sync: migration seq (#6942) + + diff --git a/charts/devtron/Chart.yaml b/charts/devtron/Chart.yaml index 558e0c3ba4..af6c8ced17 100644 --- a/charts/devtron/Chart.yaml +++ b/charts/devtron/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: devtron-operator -appVersion: 2.1.1 +appVersion: 2.2.0 description: Chart to configure and install Devtron. Devtron is a Kubernetes Orchestration system. keywords: - Devtron @@ -11,7 +11,7 @@ keywords: - argocd - Hyperion engine: gotpl -version: 0.23.2 +version: 0.23.3 sources: - https://github.com/devtron-labs/charts dependencies: @@ -23,9 +23,12 @@ dependencies: version: "0.x.x" repository: https://helm.devtron.ai condition: security.enabled +- name: redis + version: "2.4.0" + repository: "https://groundhog2k.github.io/helm-charts/" + condition: devtronEnterprise.athenaApi.enabled maintainers: - email: prakarsh@devtron.ai name: Prakarsh icon: https://s3-ap-southeast-1.amazonaws.com/devtron.ai/images/devtron-sqr-logo.png -home: https://devtron.ai - +home: https://devtron.ai \ No newline at end of file diff --git a/charts/devtron/devtron-bom.yaml b/charts/devtron/devtron-bom.yaml index d9d0fc7c46..b6b280e960 100644 --- a/charts/devtron/devtron-bom.yaml +++ b/charts/devtron/devtron-bom.yaml @@ -15,7 +15,7 @@ global: PG_DATABASE: orchestrator extraManifests: [] installer: - release: "v2.1.1" + release: "v2.2.0" registry: "" image: "inception" tag: "473deaa4-185-21582" @@ -41,13 +41,13 @@ components: FEATURE_CODE_MIRROR_ENABLE: "true" FEATURE_GROUPED_APP_LIST_FILTERS_ENABLE: "true" registry: "" - image: "dashboard:8a175cbd-690-38843" + image: "dashboard:c7b89667-690-39290" imagePullPolicy: IfNotPresent healthPort: 8080 devtron: registry: "" - image: "hyperion:1188d0b9-280-38819" - cicdImage: "devtron:1188d0b9-434-38818" + image: "hyperion:0874dcaf-280-39287" + cicdImage: "devtron:0874dcaf-434-39286" imagePullPolicy: IfNotPresent customOverrides: {} podSecurityContext: @@ -61,7 +61,7 @@ components: healthPort: 8080 ciRunner: registry: "" - image: "ci-runner:fbde4d5e-138-38754" + image: "ci-runner:3b3d6d0e-138-39293" argocdDexServer: registry: "" image: "dex:v2.30.2" @@ -70,7 +70,7 @@ components: authenticator: "authenticator:e414faff-393-13273" kubelink: registry: "" - image: "kubelink:fbde4d5e-564-38749" + image: "kubelink:09867a9c-564-39289" imagePullPolicy: IfNotPresent configs: ENABLE_HELM_RELEASE_CACHE: "true" @@ -93,7 +93,7 @@ components: healthPort: 50052 kubewatch: registry: "" - image: "kubewatch:fbde4d5e-419-38744" + image: "kubewatch:09867a9c-419-39288" imagePullPolicy: IfNotPresent healthPort: 8080 configs: @@ -118,7 +118,7 @@ components: image: postgres_exporter:v0.10.1 gitsensor: registry: "" - image: "git-sensor:fbde4d5e-200-38750" + image: "git-sensor:3b3d6d0e-200-39291" imagePullPolicy: IfNotPresent serviceMonitor: enabled: false @@ -136,7 +136,7 @@ components: # Values for lens lens: registry: "" - image: "lens:fbde4d5e-333-38752" + image: "lens:3b3d6d0e-333-39292" imagePullPolicy: IfNotPresent configs: GIT_SENSOR_PROTOCOL: GRPC @@ -171,7 +171,7 @@ components: entMigratorImage: "devtron-utils:geni-v1.1.4" chartSync: registry: "" - image: chart-sync:fbde4d5e-836-38757 + image: chart-sync:3b3d6d0e-836-39296 schedule: "0 19 * * *" podSecurityContext: fsGroup: 1001 @@ -209,7 +209,7 @@ workflowController: IMDSv1ExecutorImage: "argoexec:v3.0.7" security: imageScanner: - image: "image-scanner:fbde4d5e-141-38756" + image: "image-scanner:3b3d6d0e-141-39295" healthPort: 8080 configs: TRIVY_DB_REPOSITORY: mirror.gcr.io/aquasec/trivy-db @@ -220,7 +220,7 @@ security: tag: 4.3.6 # Values for notifier integration notifier: - image: "notifier:580d409b-372-38755" + image: "notifier:9804331c-372-39294" healthPort: 3000 minio: image: "minio:RELEASE.2021-02-14T04-01-33Z" @@ -240,6 +240,10 @@ monitoring: image: "k8s-sidecar:1.1.0" curlImage: "curl:7.73.0" imagePullPolicy: IfNotPresent +redis: + image: + registry: "mirror.gcr.io" + fullnameOverride: "redis" devtronEnterprise: enabled: false finops: @@ -270,6 +274,36 @@ devtronEnterprise: runAsNonRoot: true runAsUser: 1001 healthPort: 8080 + silverSurfer: + image: "silver-surfer:e3b9a2f6-1191-38789" + imagePullPolicy: IfNotPresent + resources: {} + podSecurityContext: + fsGroup: 1001 + runAsGroup: 1001 + runAsUser: 1001 + containerSecurityContext: + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 1001 + athenaApi: + enabled: false + registry: "" + image: "athena-api:75a5ebf3-1218-39284" + imagePullPolicy: IfNotPresent + healthPort: 8000 + configs: + LLM_TEMPERATURE: "0.01" + REDIS_URL: redis://redis.devtroncd + PG_DATABASE: athena + secrets: {} + athenaMcp: + registry: "" + image: "athena-mcp:75a5ebf3-1219-39285" + imagePullPolicy: IfNotPresent + healthPort: 8000 + configs: {} + secrets: {} scoop: enabled: false registry: "" diff --git a/charts/devtron/templates/athena-api.yaml b/charts/devtron/templates/athena-api.yaml new file mode 100644 index 0000000000..15d1d9bfeb --- /dev/null +++ b/charts/devtron/templates/athena-api.yaml @@ -0,0 +1,107 @@ +{{- if and $.Values.devtronEnterprise.enabled $.Values.devtronEnterprise.athenaApi.enabled }} +{{- with $.Values.devtronEnterprise.athenaApi }} +apiVersion: v1 +kind: Service +metadata: + name: athena-api-service + labels: + app: athena-api +spec: + type: ClusterIP + ports: + - name: app + targetPort: app + protocol: TCP + port: 80 + selector: + app: athena-api +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: athena-api + labels: + app: athena-api +spec: + selector: + matchLabels: + app: athena-api + replicas: 1 + minReadySeconds: 60 + template: + metadata: + labels: + app: athena-api + spec: + {{- include "common.schedulerConfig" (dict "nodeSelector" $.Values.devtronEnterprise.athenaApi.nodeSelector "tolerations" $.Values.devtronEnterprise.athenaApi.tolerations "imagePullSecrets" $.Values.devtronEnterprise.athenaApi.imagePullSecrets "global" $.Values.global) | indent 6 }} + {{- include "common.podSecurityContext" (dict "podSecurityContext" $.Values.devtronEnterprise.athenaApi.podSecurityContext "global" $.Values.global) | indent 6 }} + terminationGracePeriodSeconds: 30 + restartPolicy: Always + serviceAccountName: devtron + containers: + - name: athena-api + image: {{ include "common.image" (dict "component" $.Values.devtronEnterprise.athenaApi "global" $.Values.global) }} + {{- if .imagePullPolicy }} + imagePullPolicy: {{ .imagePullPolicy }} + {{- end }} + {{- include "common.containerSecurityContext" (dict "containerSecurityContext" $.Values.components.devtron.containerSecurityContext "global" $.Values.global) | indent 8 }} + ports: + - name: app + containerPort: 8000 + protocol: TCP + {{- if .resources }} + resources: + {{- toYaml .resources | nindent 10 }} + {{- end }} + envFrom: + - configMapRef: + name: athena-api-cm + - secretRef: + name: athena-api-secret + - configMapRef: + name: devtron-common-cm + livenessProbe: + failureThreshold: 3 + httpGet: + path: /health + port: {{ $.Values.devtronEnterprise.athenaApi.healthPort}} + scheme: HTTP + initialDelaySeconds: 20 + periodSeconds: 300 + successThreshold: 1 + timeoutSeconds: 5 + readinessProbe: + failureThreshold: 3 + httpGet: + path: /health + port: {{ $.Values.devtronEnterprise.athenaApi.healthPort}} + scheme: HTTP + initialDelaySeconds: 20 + periodSeconds: 600 + successThreshold: 1 + timeoutSeconds: 5 +--- +apiVersion: v1 +data: + ARGOCD_OPTS: --grpc-web --insecure + ARGOCD_SERVER: argocd-server.devtroncd:80 + DEVTRON_MCP_API_ENDPOINT: http://athena-mcp-engine-service.devtroncd/devtron/mcp + HOLMES_ENABLED: "true" + LLM_MAX_OUTPUT_TOKEN: "6000" + MAX_TOOL_RESPONSE_TOKENS: "3000" + CHAT_AGENT_MAX_TOOL_CALLS: "10" +{{ toYaml $.Values.global.dbConfig | indent 2 }} +{{- if .configs}} +{{ toYaml $.Values.devtronEnterprise.athenaApi.configs | indent 2 }} +{{- end }} + SERVICE_NAME: athena-api + SERVICE_PLATFORM: local + SERVICE_VERSION: 0.2.0 +kind: ConfigMap +metadata: + labels: + app: athena-api-server + name: athena-api-cm + namespace: devtroncd +{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/devtron/templates/athena-mcp.yaml b/charts/devtron/templates/athena-mcp.yaml new file mode 100644 index 0000000000..2bab6277fb --- /dev/null +++ b/charts/devtron/templates/athena-mcp.yaml @@ -0,0 +1,84 @@ +{{- if and $.Values.devtronEnterprise.enabled $.Values.devtronEnterprise.athenaApi.enabled }} +{{- with $.Values.devtronEnterprise.athenaMcp }} +apiVersion: v1 +kind: Service +metadata: + name: athena-mcp-engine-service + labels: + app: athena-mcp +spec: + type: ClusterIP + ports: + - name: app + targetPort: app + protocol: TCP + port: 80 + selector: + app: athena-mcp +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: athena-mcp + labels: + app: athena-mcp +spec: + selector: + matchLabels: + app: athena-mcp + replicas: 1 + minReadySeconds: 60 + template: + metadata: + labels: + app: athena-mcp + spec: + {{- include "common.schedulerConfig" (dict "nodeSelector" $.Values.devtronEnterprise.athenaMcp.nodeSelector "tolerations" $.Values.devtronEnterprise.athenaMcp.tolerations "imagePullSecrets" $.Values.devtronEnterprise.athenaMcp.imagePullSecrets "global" $.Values.global) | indent 6 }} + {{- include "common.podSecurityContext" (dict "podSecurityContext" $.Values.devtronEnterprise.athenaMcp.podSecurityContext "global" $.Values.global) | indent 6 }} + restartPolicy: Always + serviceAccountName: devtron + terminationGracePeriodSeconds: 30 + containers: + - name: athena-mcp-server + image: {{ include "common.image" (dict "component" $.Values.devtronEnterprise.athenaMcp "global" $.Values.global) }} + {{- if .imagePullPolicy }} + imagePullPolicy: {{ .imagePullPolicy }} + {{- end }} + {{- include "common.containerSecurityContext" (dict "containerSecurityContext" $.Values.components.devtron.containerSecurityContext "global" $.Values.global) | indent 8 }} + ports: + - name: app + containerPort: 8000 + protocol: TCP + {{- if .resources }} + resources: + {{- toYaml .resources | nindent 10 }} + {{- end }} + envFrom: + - configMapRef: + name: athena-mcp-cm + - secretRef: + name: athena-mcp-secret + - configMapRef: + name: devtron-common-cm +--- +apiVersion: v1 +data: + DEVTRON_API_ENDPOINT: http://devtron-service.devtroncd + DEVTRON_CENTRAL_API_URL: https://api.devtron.ai + DOC_RAG_SEARCH_SERVER_URL: https://api.devtron.ai + REQUIRED_RECOMMENDATION_DATA_COUNT: "10" + SERVICE_NAME: athena-mcp-engine-service + SERVICE_PLATFORM: k8s + SERVICE_VERSION: 0.2.0 +{{ toYaml $.Values.global.dbConfig | indent 2 }} +{{- if .configs}} +{{ toYaml $.Values.devtronEnterprise.athenaMcp.configs | indent 2 }} +{{- end }} +kind: ConfigMap +metadata: + labels: + app: athena-mcp-server + name: athena-mcp-cm + namespace: devtroncd +{{- end }} +{{- end }} diff --git a/charts/devtron/templates/configmap-secret.yaml b/charts/devtron/templates/configmap-secret.yaml index f9c48511d5..d80086c787 100644 --- a/charts/devtron/templates/configmap-secret.yaml +++ b/charts/devtron/templates/configmap-secret.yaml @@ -447,3 +447,36 @@ metadata: namespace: devtroncd {{- end }} {{- end }} +--- +{{- if and $.Values.devtronEnterprise.enabled $.Values.devtronEnterprise.athenaApi.enabled }} +apiVersion: v1 +data: +{{- if and $.Values.global.externalPostgres $.Values.global.externalPostgres.enabled }} + PG_PASSWORD: {{ $.Values.global.externalPostgres.PG_PASSWORD | b64enc }} +{{- else }} + PG_PASSWORD: {{ $postgresPwd }} +{{- end }} +{{- range $k, $v := $.Values.devtronEnterprise.athenaApi.secrets }} + {{ $k }}: {{ $v | b64enc | quote }} +{{- end }} +kind: Secret +metadata: + labels: + app: athena-api + name: athena-api-secret + namespace: devtroncd +type: Opaque +--- +apiVersion: v1 +data: +{{- range $k, $v := $.Values.devtronEnterprise.athenaMcp.secrets }} + {{ $k }}: {{ $v | b64enc | quote }} +{{- end }} +kind: Secret +metadata: + labels: + app: athena-mcp + name: athena-mcp-secret + namespace: devtroncd +type: Opaque +{{- end }} \ No newline at end of file diff --git a/charts/devtron/templates/dashboard.yaml b/charts/devtron/templates/dashboard.yaml index 31bccf38ed..41d707f847 100644 --- a/charts/devtron/templates/dashboard.yaml +++ b/charts/devtron/templates/dashboard.yaml @@ -23,6 +23,8 @@ data: FEATURE_STORAGE_ENABLE: "true" FEATURE_RESOURCE_WATCHER_ENABLE: "true" FEATURE_SOFTWARE_DISTRIBUTION_HUB_ENABLE: "true" + FEATURE_AI_INTEGRATION_ENABLE: "true" + FEATURE_ATHENA_DEBUG_MODE_ENABLE: "true" {{- end }} {{- if .config }} GA_ENABLED: {{ .config.analytics | default "false" | quote }} diff --git a/charts/devtron/templates/devtron-ingress.yaml b/charts/devtron/templates/devtron-ingress.yaml index f2f280f4e9..86196d5f26 100644 --- a/charts/devtron/templates/devtron-ingress.yaml +++ b/charts/devtron/templates/devtron-ingress.yaml @@ -34,6 +34,16 @@ spec: servicePort: 80 path: /grafana pathType: ImplementationSpecific +{{- if $.Values.devtronEnterprise }} +{{- if and $.Values.devtronEnterprise.enabled $.Values.devtronEnterprise.athenaApi }} +{{- if $.Values.devtronEnterprise.athenaApi.enabled }} + - backend: + serviceName: devtron-service + servicePort: 80 + path: /proxy +{{- end }} +{{- end }} +{{- end }} {{- if .tls }} tls: {{ toYaml .tls | nindent 4 }} @@ -82,6 +92,19 @@ spec: number: 80 path: /grafana pathType: {{ .pathType }} +{{- if $.Values.devtronEnterprise }} +{{- if and $.Values.devtronEnterprise.enabled $.Values.devtronEnterprise.athenaApi }} +{{- if $.Values.devtronEnterprise.athenaApi.enabled }} + - backend: + service: + name: devtron-service + port: + number: 80 + path: /proxy + pathType: {{ .pathType }} +{{- end }} +{{- end }} +{{- end }} {{- if .tls }} tls: {{ toYaml .tls | nindent 4 }} diff --git a/charts/devtron/templates/devtron.yaml b/charts/devtron/templates/devtron.yaml index d1392fd129..59bcd44dac 100644 --- a/charts/devtron/templates/devtron.yaml +++ b/charts/devtron/templates/devtron.yaml @@ -36,6 +36,11 @@ data: DEVTRON_VERSION_IDENTIFIER_IN_HELM_VALUES: "devtron.installer.release" DEVTRON_MANAGED_LICENSING_ENABLED: "false" DEVTRON_BOM_URL: https://raw.githubusercontent.com/devtron-labs/charts/refs/tags/devtron-enterprise-%s/charts/devtron-enterprise/devtron-bom.yaml + SILVER_SURFER_CLIENT_URL: silver-surfer.devtroncd:8111 + {{- if $.Values.devtronEnterprise.athenaApi.enabled }} + FEATURE_ASK_DEVTRON_EXPERT: "true" + PROXY_SERVICE_CONFIG: '{"athena":{"host":"athena-api-service.devtroncd","port":"80"}}' + {{- end }} {{- end }} {{- if $.Values.installer.modules }} {{- if has "cicd" $.Values.installer.modules }} diff --git a/charts/devtron/templates/migrator.yaml b/charts/devtron/templates/migrator.yaml index 92da8fea60..dbb38ec327 100644 --- a/charts/devtron/templates/migrator.yaml +++ b/charts/devtron/templates/migrator.yaml @@ -548,8 +548,6 @@ kind: Job metadata: namespace: devtroncd name: postgresql-create-databases-{{ randAlphaNum 5 | lower }} - annotations: - "helm.sh/hook": pre-install spec: activeDeadlineSeconds: 1500 ttlSecondsAfterFinished: 1000 @@ -599,4 +597,108 @@ spec: image: {{ include "common.image" (dict "component" $.Values.components.postgres "global" $.Values.global "extraImage" $.Values.components.postgres.image ) }} name: postgresql-database-creator restartPolicy: OnFailure +{{- end }} +{{- if and $.Values.devtronEnterprise.enabled $.Values.devtronEnterprise.athenaApi.enabled }} +--- +{{- if $.Capabilities.APIVersions.Has "batch/v1/Job" }} +apiVersion: batch/v1 +{{- else }} +apiVersion: batch/v1beta1 +{{- end }} +kind: Job +metadata: + name: postgresql-migrate-athena-{{ randAlphaNum 5 | lower }} +spec: + template: + spec: + {{- include "common.schedulerConfig" (dict "nodeSelector" $.Values.components.migrator.nodeSelector "tolerations" $.Values.components.migrator.tolerations "imagePullSecrets" $.Values.components.migrator.imagePullSecrets "global" $.Values.global) | indent 6 }} + serviceAccountName: devtron-default-sa + {{- if and $.Values.global $.Values.global.podSecurityContext }} + securityContext: +{{- toYaml $.Values.global.podSecurityContext | nindent 8 }} + {{- end }} + initContainers: + - name: create-athena-database + image: postgres:14 + command: + - /bin/sh + - -c + - | + echo "Checking if database exists..." + psql "postgres://$(PG_USER):"$(DB_PASSWORD)"@$(PG_ADDR):$(PG_PORT)/postgres?sslmode=disable" \ + -tc "SELECT 1 FROM pg_database WHERE datname='$PG_DATABASE'" \ + | grep -q 1 || \ + psql "postgres://$(PG_USER):"$(DB_PASSWORD)"@$(PG_ADDR):$(PG_PORT)/postgres?sslmode=disable" \ + -c "CREATE DATABASE $PG_DATABASE;" + envFrom: + - secretRef: + name: postgresql-migrator + - configMapRef: + name: athena-api-cm + - configMapRef: + name: devtron-common-cm + - command: + - /bin/sh + - -c + - cp -r migrations/db_scripts/ /shared/ + image: {{ include "common.image" (dict "component" $.Values.devtronEnterprise.athenaApi "global" $.Values.global) }} + {{- if and $.Values.global $.Values.global.containerSecurityContext }} + securityContext: +{{- toYaml $.Values.global.containerSecurityContext | nindent 12 }} + {{- end }} + name: migration-copy + envFrom: + - secretRef: + name: postgresql-migrator + - configMapRef: + name: athena-api-cm + - configMapRef: + name: devtron-common-cm + volumeMounts: + - mountPath: /shared + name: shared-volume + containers: + - command: + - /bin/sh + - -c + - 'if [ $(MIGRATE_TO_VERSION) -eq "0" ]; then migrate -path $(SCRIPT_LOCATION) -database postgres://$(PG_USER):$(DB_PASSWORD)@$(PG_ADDR):$(PG_PORT)/$(PG_DATABASE)?sslmode=disable up; else echo $(MIGRATE_TO_VERSION); migrate -path $(SCRIPT_LOCATION) -database postgres://$(PG_USER):$(DB_PASSWORD)@$(PG_ADDR):$(PG_PORT)/$(PG_DATABASE)?sslmode=disable goto $(MIGRATE_TO_VERSION); fi ' + env: + - name: SCRIPT_LOCATION + value: /shared/db_scripts/ + - name: DB_TYPE + value: postgres + - name: MIGRATE_TO_VERSION + value: "0" + envFrom: + - secretRef: + name: postgresql-migrator + - configMapRef: + name: athena-api-cm + - configMapRef: + name: devtron-common-cm + {{- if .image }} + image: {{ include "common.image" (dict "component" $.Values.components.migrator "global" $.Values.global) }} + {{- else }} + image: migrate/migrate + {{- end }} + {{- if and $.Values.global $.Values.global.containerSecurityContext }} + securityContext: +{{- toYaml $.Values.global.containerSecurityContext | nindent 12 }} + {{- end }} + name: postgresql-migrate-athena + volumeMounts: + - mountPath: /shared + name: shared-volume + {{- if .athenaApi }} + {{- if .athenaApi.resources }} + resources: + {{- toYaml .athenaApi.resources | nindent 10 }} + {{- end }} + {{- end }} + restartPolicy: OnFailure + volumes: + - emptyDir: {} + name: shared-volume + backoffLimit: 20 + activeDeadlineSeconds: 1500 {{- end }} \ No newline at end of file diff --git a/charts/devtron/templates/postgresql.yaml b/charts/devtron/templates/postgresql.yaml index 251bfa03f7..6cd6771e7b 100644 --- a/charts/devtron/templates/postgresql.yaml +++ b/charts/devtron/templates/postgresql.yaml @@ -314,6 +314,7 @@ data: create database git_sensor; create database lens; create database clairv4; + create database athena; --- # Source: devtron-operator/templates/postgresql.yaml apiVersion: v1 diff --git a/charts/devtron/templates/silver-surfer.yaml b/charts/devtron/templates/silver-surfer.yaml new file mode 100644 index 0000000000..d9209835e7 --- /dev/null +++ b/charts/devtron/templates/silver-surfer.yaml @@ -0,0 +1,61 @@ +{{- if $.Values.devtronEnterprise.enabled }} +{{- with $.Values.devtronEnterprise.silverSurfer }} +apiVersion: v1 +kind: Service +metadata: + name: silver-surfer + labels: + app: silver-surfer +spec: + type: ClusterIP + ports: + - name: app + targetPort: 8111 + protocol: TCP + port: 8111 + selector: + app: silver-surfer +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: silver-surfer + labels: + app: silver-surfer +spec: + selector: + matchLabels: + app: silver-surfer + replicas: 1 + minReadySeconds: 60 + template: + metadata: + labels: + app: silver-surfer + spec: + {{- include "common.schedulerConfig" (dict "nodeSelector" $.Values.devtronEnterprise.silverSurfer.nodeSelector "tolerations" $.Values.devtronEnterprise.silverSurfer.tolerations "imagePullSecrets" $.Values.devtronEnterprise.silverSurfer.imagePullSecrets "global" $.Values.global) | indent 6 }} + {{- include "common.podSecurityContext" (dict "podSecurityContext" $.Values.devtronEnterprise.silverSurfer.podSecurityContext "global" $.Values.global) | indent 6 }} + terminationGracePeriodSeconds: 30 + restartPolicy: Always + serviceAccountName: devtron + containers: + - name: silver-surfer + image: {{ include "common.image" (dict "component" $.Values.devtronEnterprise.silverSurfer "global" $.Values.global) }} + {{- if .imagePullPolicy }} + imagePullPolicy: {{ .imagePullPolicy }} + {{- end }} + {{- include "common.containerSecurityContext" (dict "containerSecurityContext" $.Values.components.devtron.containerSecurityContext "global" $.Values.global) | indent 8 }} + ports: + - name: app + containerPort: 8111 + protocol: TCP + {{- if .resources }} + resources: + {{- toYaml .resources | nindent 10 }} + {{- end }} + envFrom: + - configMapRef: + name: devtron-common-cm +{{- end }} +{{- end }} + diff --git a/charts/devtron/values.yaml b/charts/devtron/values.yaml index 3f71e8db22..85c462ed14 100644 --- a/charts/devtron/values.yaml +++ b/charts/devtron/values.yaml @@ -42,7 +42,7 @@ nfs: extraManifests: [] installer: repo: "devtron-labs/devtron" - release: "v2.1.1" + release: "v2.2.0" registry: "" image: inception tag: 473deaa4-185-21582 @@ -97,13 +97,13 @@ components: FEATURE_CODE_MIRROR_ENABLE: "true" FEATURE_GROUPED_APP_LIST_FILTERS_ENABLE: "true" registry: "" - image: "dashboard:8a175cbd-690-38843" + image: "dashboard:c7b89667-690-39290" imagePullPolicy: IfNotPresent healthPort: 8080 devtron: registry: "" - image: "hyperion:1188d0b9-280-38819" - cicdImage: "devtron:1188d0b9-434-38818" + image: "hyperion:0874dcaf-280-39287" + cicdImage: "devtron:0874dcaf-434-39286" imagePullPolicy: IfNotPresent customOverrides: {} healthPort: 8080 @@ -140,7 +140,7 @@ components: # - devtron.example.com ciRunner: registry: "" - image: "ci-runner:fbde4d5e-138-38754" + image: "ci-runner:3b3d6d0e-138-39293" # Add annotations for ci-runner & cd-runner serviceAccount. annotations: {} argocdDexServer: @@ -151,7 +151,7 @@ components: authenticator: "authenticator:e414faff-393-13273" kubelink: registry: "" - image: "kubelink:fbde4d5e-564-38749" + image: "kubelink:09867a9c-564-39289" imagePullPolicy: IfNotPresent healthPort: 50052 podSecurityContext: @@ -174,7 +174,7 @@ components: keyName: postgresql-password kubewatch: registry: "" - image: "kubewatch:fbde4d5e-419-38744" + image: "kubewatch:09867a9c-419-39288" imagePullPolicy: IfNotPresent healthPort: 8080 configs: @@ -201,7 +201,7 @@ components: volumeSize: "20Gi" gitsensor: registry: "" - image: "git-sensor:fbde4d5e-200-38750" + image: "git-sensor:3b3d6d0e-200-39291" imagePullPolicy: IfNotPresent serviceMonitor: enabled: false @@ -219,7 +219,7 @@ components: # Values for lens lens: registry: "" - image: "lens:fbde4d5e-333-38752" + image: "lens:3b3d6d0e-333-39292" imagePullPolicy: IfNotPresent secrets: {} resources: {} @@ -256,7 +256,7 @@ components: entMigratorImage: "devtron-utils:geni-v1.1.4" chartSync: registry: "" - image: chart-sync:fbde4d5e-836-38757 + image: chart-sync:3b3d6d0e-836-39296 schedule: "0 19 * * *" extraConfigs: {} podSecurityContext: @@ -412,7 +412,7 @@ argo-cd: security: enabled: false imageScanner: - image: "image-scanner:fbde4d5e-141-38756" + image: "image-scanner:3b3d6d0e-141-39295" healthPort: 8080 configs: TRIVY_DB_REPOSITORY: mirror.gcr.io/aquasec/trivy-db @@ -431,7 +431,7 @@ security: notifier: enabled: false imagePullPolicy: IfNotPresent - image: "notifier:580d409b-372-38755" + image: "notifier:9804331c-372-39294" configs: CD_ENVIRONMENT: PROD secrets: {} @@ -480,7 +480,11 @@ monitoring: resources: {} persistence: storage: "2Gi" -# Change these values for Devtron-Enterprise +redis: + image: + registry: "mirror.gcr.io" + fullnameOverride: "redis" +# Change these values for Devtron-Enterprise devtronEnterprise: enabled: false finops: @@ -511,6 +515,37 @@ devtronEnterprise: runAsNonRoot: true runAsUser: 1001 resources: {} + silverSurfer: + image: "silver-surfer:e3b9a2f6-1191-38789" + imagePullPolicy: IfNotPresent + resources: {} + podSecurityContext: + fsGroup: 1001 + runAsGroup: 1001 + runAsUser: 1001 + containerSecurityContext: + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 1001 + athenaApi: + enabled: false + registry: "" + image: "athena-api:75a5ebf3-1218-39284" + imagePullPolicy: IfNotPresent + healthPort: 8000 + configs: + LLM_MODEL_ID: "" + LLM_TEMPERATURE: "0.01" + REDIS_URL: redis://redis.devtroncd + PG_DATABASE: athena + secrets: {} + athenaMcp: + registry: "" + image: "athena-mcp:75a5ebf3-1219-39285" + imagePullPolicy: IfNotPresent + healthPort: 8000 + configs: {} + secrets: {} scoop: enabled: false registry: "" diff --git a/devtron-images.txt.source b/devtron-images.txt.source index 5b5010ed5a..73b6331a72 100644 --- a/devtron-images.txt.source +++ b/devtron-images.txt.source @@ -7,26 +7,26 @@ quay.io/devtron/authenticator:e414faff-393-13273 quay.io/devtron/bats:v1.4.1 quay.io/devtron/busybox:1.31.1 quay.io/devtron/centos-k8s-utils:latest -quay.io/devtron/chart-sync:fbde4d5e-836-38757 -quay.io/devtron/ci-runner:fbde4d5e-138-38754 +quay.io/devtron/chart-sync:3b3d6d0e-836-39296 +quay.io/devtron/ci-runner:3b3d6d0e-138-39293 quay.io/devtron/clair:4.3.6 quay.io/devtron/curl:7.73.0 -quay.io/devtron/dashboard:8a175cbd-690-38843 +quay.io/devtron/dashboard:c7b89667-690-39290 quay.io/devtron/devtron-utils:dup-chart-repo-v1.1.0 -quay.io/devtron/devtron:1188d0b9-434-38818 +quay.io/devtron/devtron:0874dcaf-434-39286 quay.io/devtron/dex:v2.30.2 -quay.io/devtron/git-sensor:fbde4d5e-200-38750 +quay.io/devtron/git-sensor:3b3d6d0e-200-39291 quay.io/devtron/grafana:7.3.1 -quay.io/devtron/hyperion:1188d0b9-280-38819 -quay.io/devtron/image-scanner:fbde4d5e-141-38756 +quay.io/devtron/hyperion:0874dcaf-280-39287 +quay.io/devtron/image-scanner:3b3d6d0e-141-39295 quay.io/devtron/inception:473deaa4-185-21582 quay.io/devtron/k8s-sidecar:1.1.0 quay.io/devtron/k8s-utils:tutum-curl quay.io/devtron/k9s-k8s-utils:latest quay.io/devtron/kubectl:latest -quay.io/devtron/kubelink:fbde4d5e-564-38749 -quay.io/devtron/kubewatch:fbde4d5e-419-38744 -quay.io/devtron/lens:fbde4d5e-333-38752 +quay.io/devtron/kubelink:09867a9c-564-39289 +quay.io/devtron/kubewatch:09867a9c-419-39288 +quay.io/devtron/lens:3b3d6d0e-333-39292 quay.io/devtron/migrator:v4.16.2 quay.io/devtron/minideb:latest quay.io/devtron/minio-mc:RELEASE.2021-02-14T04-28-06Z @@ -34,7 +34,7 @@ quay.io/devtron/minio:RELEASE.2021-02-14T04-01-33Z quay.io/devtron/nats-box quay.io/devtron/nats-server-config-reloader:0.6.2 quay.io/devtron/nats:2.9.3-alpine -quay.io/devtron/notifier:580d409b-372-38755 +quay.io/devtron/notifier:9804331c-372-39294 quay.io/devtron/postgres:14.9 quay.io/devtron/postgres_exporter:v0.10.1 quay.io/devtron/postgres_exporter:v0.4.7 @@ -42,3 +42,7 @@ quay.io/devtron/prometheus-nats-exporter:0.9.0 quay.io/devtron/ubuntu-k8s-utils:latest quay.io/devtron/cost-sync:46ed7c67-1159-38183 quay.io/devtron/timescaledb-ha:pg18 +quay.io/devtron/athena-mcp:75a5ebf3-1219-39285 +quay.io/devtron/athena-api:75a5ebf3-1218-39284 +quay.io/devtron/silver-surfer:e3b9a2f6-1191-38789 + diff --git a/manifests/install/devtron-installer.yaml b/manifests/install/devtron-installer.yaml index c1586e124d..9703a53ffd 100644 --- a/manifests/install/devtron-installer.yaml +++ b/manifests/install/devtron-installer.yaml @@ -4,4 +4,4 @@ metadata: name: installer-devtron namespace: devtroncd spec: - url: https://raw.githubusercontent.com/devtron-labs/devtron/v2.1.1/manifests/installation-script + url: https://raw.githubusercontent.com/devtron-labs/devtron/v2.2.0/manifests/installation-script diff --git a/manifests/installation-script b/manifests/installation-script index a2b914b7a3..c3536b7492 100644 --- a/manifests/installation-script +++ b/manifests/installation-script @@ -1,4 +1,4 @@ -LTAG="v2.1.1"; +LTAG="v2.2.0"; REPO_RAW_URL="https://raw.githubusercontent.com/devtron-labs/devtron/"; shebang = `#!/bin/bash `; diff --git a/releasenotes.md b/releasenotes.md index 5ae13f8bab..b3d6ca5077 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -1,6 +1,18 @@ -## v2.1.1 - +## v2.2.0 +## Enhancements +- feat: add native sidecar container support (#6946) +- feat: add env-driven timeout for buildx builder pod readiness (#6944) +- feat: app filters enhancement (#6939) ## Bugs -- fix: auto assign permission group related fixes (#6934) -- fix: clusterId check for modifying triggers for cluster level notific… (#6932) +- fix: new dependabot fixes (#6955) +- fix: streamline AWS session creation and improve error handling (#6948) +- fix: dependabot security advisory (#6945) +## Others +- chore: added sql migration (#6951) +- misc: Release candidate v0.46.0 (#6953) +- sync: new dependabot security fixes (#6950) +- misc: mig seq in develop (#6949) +- sync: migration seq (#6942) + +