diff --git a/CHANGELOG/release-notes-v1.0.0.md b/CHANGELOG/release-notes-v1.0.0.md new file mode 100644 index 00000000000..e4a781cd21d --- /dev/null +++ b/CHANGELOG/release-notes-v1.0.0.md @@ -0,0 +1,31 @@ +## v1.0.0 + +## Bugs +- fix: Helm rollback in case of no gitops (#6005) +- fix: App detail deployed by (#6032) +- fix: Removed not null constraint for releaseOverride (#6044) +- fix: Showing inaccurate data in template/list api while fetching previous deployments list in template/list api, output shown was cartesian product of deployment_template_history and wfr (#6034) +- fix: Plugin getByName method error handling (#6016) +- fix: Config deployment history fix (#6003) +- fix: Force abort fix (#5990) +- fix: Helm deployment status (#5996) +- fix: Deployment window FIXED type (#5986) +- fix: Migration seq fix (#5962) +- fix: Modified the query for User listing with filters (#5957) +- fix: Bulk deploy panic and docker tag handling (#5949) +- fix: Stage artifact logic (#5913) +- fix: Permission access getting clubbed (#6045) +## Enhancements +- feat: Config diff enhancement (#5837) +- feat: Terminal role casbin policy (#5991) +- feat: Refactoring argo application service and common-lib constants (#5944) +## Others +- fix : Multiple param of filter in helm app list (#6013) +- chore: Adding refchart migration (#6007) +- chore: Cluster terminal images migration (#6006) +- misc: Removed deployment group validation when deleting CD pipelines (#5989) +- misc: Replaced != with <> for PostgreSQL compatibility (#5987) +- misc: isLatest field in plugin metadata tag changed to not_null (#5984) +- misc: Error handling while creating github repo in case of concurrent reqs (#5978) +- misc: Updated migration number (#5948) +- misc: Err handling for configmap access (#5938) diff --git a/COMMUNITY_CONTRIBUTIONS.md b/COMMUNITY_CONTRIBUTIONS.md index bcdf1e736cd..7a1515f9bd2 100644 --- a/COMMUNITY_CONTRIBUTIONS.md +++ b/COMMUNITY_CONTRIBUTIONS.md @@ -22,7 +22,7 @@ * https://www.financialexpress.com/industry/sme/devtron-a-business-opportunity-in-developers-needs/2274094/ - By Srinath Srinivasan -## Videos +## :video_camera: Videos * https://www.youtube.com/watch?v=ZKcfZC-zSMM - By Victor Farcic @@ -33,3 +33,4 @@ * https://www.youtube.com/watch?v=W4-UorfDQxI - Carbon_Capital Consulting * https://www.youtube.com/watch?v=FB5BI3Ef7uw&t=363s - Let's learn Devtron + diff --git a/README.md b/README.md index 4d47fe894ce..4390cda393f 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,19 @@ +Note: We have restrucutred the readme. If you are looking for Devtron's CI/CD capabilites, please [click here](#devtron-platform) +# +

-

Cloud Native tool integration platform for Kubernetes

+

Kubernetes Dashboard for a Centralized DevOps Hub


-Explore documentation » -
-Try Devtron Demo » +«Explore Documentation» || +«Try Devtron Demo»
Website · @@ -23,92 +25,67 @@ . YouTube +

-Join Discord +Join Discord Go Report Card License +contributors +Commit Activity CII Best Practices made-with-Go Website devtron.ai + Tweet - -

-🔥 Want to accelerate K8s adoption? Introducing DevOps in a Box; Leave DevOps on Devtron 🔥 - -
-

-Devtron deeply integrates with products across the lifecycle of microservices,i.e., CI, CD, security, cost, debugging, and observability via an intuitive web interface. -
-

- -[Devtron](#install-devtron) helps you deploy, observe, manage & debug existing Helm apps in all your clusters. - - -## Devtron Demo Environment - -Please log in the Demo environment using github credentials. Please note the user is granted view access. +Devtron's **extensible Kubernetes Dashboard** provides clear visibility into your Kubernetes clusters and streamlines Helm app management through a single, intuitive interface.
+With built-in RBAC, it ensures secure access while offering integrated insights into workloads deployed via GitOps tools like **ArgoCD** and **FluxCD** across multiple clusters. Devtron creates a centralized DevOps hub, accelerating operations by up to 20x :rocket: -## Devtron Features - -
Application-level Resource grouping for easier Debugging -
- -- Devtron groups your Kubernetes objects deployed via Helm charts and display them in a slick UI for easier monitoring or debugging. Access pod logs and resource manifests right from the Devtron UI and even edit them! - -
-
Centralized Access Management -
- -- Control and give customizable view-only, edit access to users on Project, Environment and Application levels -
- -
Deploy, Manage and Observe on multiple clusters -
- -- Deploy and manage Helm charts, applications across multiple Kubernetes clusters (hosted on multiple clouds/on-prem) right from a single Devtron setup -
+Check out the below video to experince the full power of the **Kubernetes Dashboard**. +
+

+
-## Integrations +Out of the box, Devtron's Kubernetes Dashboard includes: +- [Helm Application Management](https://docs.dashboard.devtron.ai/user-guide/helm-apps) to streamline deploying, configuration, and management of Helm apps +- [Resource Browser](https://docs.dashboard.devtron.ai/user-guide/resource-browser) to visualize and manage different cluster resources like Nodes, Pods, ConfigMaps, Custom Resource Definations (CRDs), etc +- [Single Sign On (SSO)](https://docs.dashboard.devtron.ai/operator-guide/authorization/sso-login-services) to simplify onboarding and authenticating team members. +- [Fine Grained RBAC](https://docs.dashboard.devtron.ai/operator-guide/authorization) to control the level of access users have to different Dashboard and Cluster resources. -Devtron is designed to be modular, and its functionality can be easily extended with the help of integrations. +[Devtron](#install-devtron) helps you deploy, observe, manage & debug existing Helm apps in all your clusters. -### CI/CD Integration +## Devtron Dashboard -[Devtron CI/CD with GitOps](#install-devtron-with-cicd-integration) integration is used to automate the builds and deployments and enables the software development teams to focus on meeting the business requirements, code quality, and security. +Devtron's Kubernetes Dashboard offers a variety of different features, giving you flexibility to manage your clusters as you desire. -* Devtron leverages Kubernetes auto-scaling and centralized caching to give you unlimited cost-efficient CI workers. -* Supports pre-CI and post-CI integrations for code quality monitoring. -* Seamlessly integrates with Clair for image vulnerability scanning. -* Supports different deployment strategies: Blue/Green, Rolling, Canary, and Recreate. -* Implements GitOps to manage the state of Kubernetes applications. -* Integrates with ArgoCD for continuous deployment. -* Checks logs, events, and manifests or exec inside containers for debugging. -* Provides deployment metrics like; deployment frequency, lead time, change failure rate, and mean-time recovery. -* Seamlessly integrates with Grafana for continuous application metrics like CPU and memory usage, status code, throughput, and latency on the dashboard. +### Features 🤩 -## Architecture +- Simplified configuration and management for Helm applications with easy rollback +- Compare and reconcile configuration drifts across enviornments +- Manage Helm deployments to multiple Kubernetes enviornments +- A single pane of glass for Helm, ArgoCD and FluxCD applications across multiple clusters +- Centralized Dashboard to view and manage K8s resources across multiple clusters +- Comprehensive SSO and RBAC to ensure secure dashboard access for team collaboration -

+To get a more comprehensive understanding of Devtron's Kubernetes Dashboard, please visit the [documentation](https://docs.dashboard.devtron.ai/) -## Installation +### Installation Before you begin, you must create a [Kubernetes cluster](https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/) (preferably K8s 1.16 or higher) and install [Helm](https://helm.sh/docs/intro/install/). -### 1. Install Devtron with CI/CD Integration +### Install Devtron's Kubernetes Dashboard -Run the following command to install the latest version of Devtron along with the CI/CD module: +Run the following command to install the latest version of Devtron's Kubernetes Dashboard: ```bash helm repo add devtron https://helm.devtron.ai helm install devtron devtron/devtron-operator \ ---create-namespace --namespace devtroncd \ ---set installer.modules={cicd} +--create-namespace --namespace devtroncd ``` ### Access Devtron @@ -135,73 +112,65 @@ kubectl -n devtroncd get secret devtron-secret -o jsonpath='{.data.ACD_PASSWORD} ``` -Please refer to the document for more information on how to [access the Devtron Dashboard](./docs/setup/install/install-devtron-with-cicd.md/#access-devtron-dashboard). +Please refer to the document for more information on how to [access the Devtron Dashboard](https://docs.dashboard.devtron.ai/getting-started/install-devtron-dashboard). -#### Installation Status +### Install Multi-Architecture Nodes (ARM and AMD) -The above install command for CI/CD integration starts Devtron-operator, which takes about 20 minutes to spin up all of the Devtron microservices one by one. You can check the status of the installation with the following command: +To install Devtron on clusters with the multi-architecture nodes (ARM and AMD), append the Devtron installation command with ```--set installer.arch=multi-arch``` -```bash -kubectl -n devtroncd get installers installer-devtron \ --o jsonpath='{.status.sync.status}' -``` +## Devtron Platform -The command executes with one of the following output messages, indicating the status of the installation: +The Devtron Platform provides a complete solution for all DevOps requirements, helping to create a single centrailzed DevOps Platform for managing all applications across Kubernetes clusters.
-* **Downloaded**: The installer has downloaded all the manifests, and installation is in progress. -* **Applied**: The installer has successfully applied all the manifests, and the installation is complete. +With Devtron Platform, you can accelerate your application delivery lifecycle by leveraging advanced features like canary deployments, A/B testing, and automated rollbacks. Devtron Platform helps you achieve faster time-to-market and improved application reliability by simplifying Kubernetes operations and streamlining development workflows. -### 2. Install Devtron with Helm Bundle +

-```bash -helm repo add devtron https://helm.devtron.ai +Devtron deeply integrates with products across the lifecycle of microservices,i.e., CI, CD, security, cost, debugging, and observability via an intuitive web interface and helps you deploy, observe, manage & debug applications across all your Kubernetes clusters. -helm install devtron devtron/devtron-operator --create-namespace --namespace devtroncd +### Devtron Integrations -``` +By harnessing the potential of diverse integrations, Devtron Dashboard can evolve into a robust platform, automating Kubernetes application workflows, from CI/CD pipelines to ongoing maintenance -### Install Multi-Architecture Nodes (ARM and AMD) +Devtron comes with the following integrations: -To install Devtron on clusters with the multi-architecture nodes (ARM and AMD), append the Devtron installation command with ```--set installer.arch=multi-arch``` +- [Build and Deploy (CI/CD)](https://docs.devtron.ai/usage/integrations/build-and-deploy-ci-cd) integration enables software development teams to automate the build and deployment process, allowing them to focus on meeting the business requirements, maintaining code quality, and ensuring security +- [GitOps (Argo CD)](https://docs.devtron.ai/usage/integrations/argocd) integration uses ArgoCD to implement GitOps for continuous delivery with GitOps patterns +- [Vulnerability Scanning (Clair)](https://docs.devtron.ai/usage/integrations/clair) integration enables you to scan the vulnerabilities of the images during the time of image build only. +- [Vulnerability Scanning (Trivy)](https://docs.devtron.ai/usage/integrations/clair) integration enables you to scan the vulnerabilities of the images during the time of image build only. +- [Notifications](https://docs.devtron.ai/usage/integrations/notifications) integration, lets you receive alerts for build and deployment pipelines on trigger, success, and failure events to your email or a Slack channel via SES and SMTP. +- [Monitoring (Grafana)](https://docs.devtron.ai/usage/integrations/grafana) integration uses Grafana to gather application metrics like CPU, Memory utilization, Status 4xx/ 5xx/ 2xx, Throughput, and Latency. + + +### Features 🤩 + +- End-to-End CI/CD pipeline enabling a No Code software delivery workflow for Kubernetes through Helm or GitOps with ArgoCD +- Deploy applications to multiple Kubernetes clusters on multiple cloud/on-prem from one Devtron setup +- Robust DevSecOps implementation with battle tested tools like Trivy and Clair +- A Single dashboard to cater to all debugging requirements for applications +- Deployment metrics to measure the success of the agile process. It captures MTTR, change failure rate, deployment frequency, and deployment size. + +To get a more comprehensive understanding of Devtron Platform's features, please visit the [documentation](https://docs.devtron.ai/) + +### Install Devtron Platform + +Run the following command to install the latest version of the Devtron Platform: +```bash +helm install devtron devtron/devtron-operator --namespace devtroncd \ +--set installer.modules={cicd} --set argo-cd.enabled=true \ +--set security.enabled=true --set notifier.enabled=true \ +--set security.trivy.enabled=true --set monitoring.grafana.enabled=true +``` ## :blue_heart: Technology Devtron is built on some of the most trusted and loved technologies:

- -## :video_camera: Videos - -- [Devtron - A Comprehensive Overview](https://youtu.be/FB5BI3Ef7uw?t=363) -- [Viktor Farcic's review](https://youtu.be/ZKcfZC-zSMM) -- [Running an application on Devtron](https://youtu.be/bA6zgjPD_yA?t=2927) -- [Devtron Demo](https://youtu.be/ekxHV2Gje-E?t=7856) -## :memo: Blogs from Community - -* [How Livspace revolutionised its CI/CD saga](https://blog.livspace.io/how-livspace-revolutionised-its-ci-cd-saga-3120724e271b) -* [AppOps with Kubernetes and Devtron: The Perfect Fit](https://hackernoon.com/appops-with-kubernetes-and-devtron-the-perfect-fit-sj934qj) -* [Getting started with GitOps on Kubernetes with Devtron](https://piotrminkowski.com/2022/05/04/getting-started-with-gitops-on-kubernetes-with-devtron) -* [Zero to hero on Kubernetes with Devtron](https://dzone.com/articles/zero-to-hero-on-kubernetes-with-devtron) -* [Kubernetes deployment made easy](https://medium.com/container-talks/kubernetes-deployment-made-easy-cc74f0242f06) - -## :muscle: Trusted By - -Devtron is trusted by communities all across the globe. The list of organizations using Devtron can be found [here](./USERS.md). - - ## :question: FAQs & Troubleshooting -- Devtron - [see here](https://docs.devtron.ai/resources/devtron-troubleshoot) - -## :page_facing_up: Compatibility - -### Current build - -- Devtron uses modified version of [Argo Rollout](https://argoproj.github.io/argo-rollouts/) -- Application metrics only work for K8s version 1.16+ - -## Support, Contribution, and Community +- For troubleshooting Devtron please [refer to this docs page](https://docs.devtron.ai/resources/devtron-troubleshoot) ## :busts_in_silhouette: Community @@ -209,6 +178,7 @@ Get updates on Devtron's development and chat with project maintainers, contribu - Follow [@DevtronL on Twitter](https://twitter.com/DevtronL) - Raise feature requests, suggest enhancements, and report bugs in our [GitHub Issues](https://github.com/devtron-labs/devtron/issues) - Articles, Howtos, Tutorials - [Devtron Blogs](https://devtron.ai/blog/) +- Devtron is trusted by communities all across the globe. The list of organizations using Devtron can be found [here](./USERS.md). ### Join us at Discord channel

diff --git a/assets/dashboard.png b/assets/dashboard.png new file mode 100644 index 00000000000..d6080a12773 Binary files /dev/null and b/assets/dashboard.png differ diff --git a/assets/devtron-feat-glance.png b/assets/devtron-feat-glance.png new file mode 100644 index 00000000000..2da94096ae4 Binary files /dev/null and b/assets/devtron-feat-glance.png differ diff --git a/charts/devtron/Chart.yaml b/charts/devtron/Chart.yaml index 3c4151ddeca..0ac62f17107 100644 --- a/charts/devtron/Chart.yaml +++ b/charts/devtron/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: devtron-operator -appVersion: 0.7.4 +appVersion: 1.0.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.22.76 +version: 0.22.77 sources: - https://github.com/devtron-labs/charts dependencies: diff --git a/charts/devtron/devtron-bom.yaml b/charts/devtron/devtron-bom.yaml index f7ed0a24256..18e031ffc47 100644 --- a/charts/devtron/devtron-bom.yaml +++ b/charts/devtron/devtron-bom.yaml @@ -10,7 +10,7 @@ global: containerRegistry: "quay.io/devtron" extraManifests: [] installer: - release: "v0.7.4" + release: "v1.0.0" registry: "" image: "inception" tag: "473deaa4-185-21582" @@ -34,17 +34,17 @@ components: FEATURE_USER_DEFINED_GITOPS_REPO_ENABLE: "true" ENABLE_RESOURCE_SCAN: "true" registry: "" - image: "dashboard:5be7fbeb-690-26830" + image: "dashboard:7e7a0d0a-690-26996" imagePullPolicy: IfNotPresent devtron: registry: "" - image: "hyperion:4288e910-280-26829" - cicdImage: "devtron:4288e910-434-26828" + image: "hyperion:15cf0137-280-27017" + cicdImage: "devtron:15cf0137-434-27015" imagePullPolicy: IfNotPresent customOverrides: {} ciRunner: registry: "" - image: "ci-runner:fd5702db-138-25483" + image: "ci-runner:3e71f258-138-27009" argocdDexServer: registry: "" image: "dex:v2.30.2" diff --git a/charts/devtron/values.yaml b/charts/devtron/values.yaml index 372c22f4e64..f0b39dfbb79 100644 --- a/charts/devtron/values.yaml +++ b/charts/devtron/values.yaml @@ -24,7 +24,7 @@ global: extraManifests: [] installer: repo: "devtron-labs/devtron" - release: "v0.7.4" + release: "v1.0.0" registry: "" image: inception tag: 473deaa4-185-21582 @@ -77,12 +77,12 @@ components: FEATURE_USER_DEFINED_GITOPS_REPO_ENABLE: "true" ENABLE_RESOURCE_SCAN: "true" registry: "" - image: "dashboard:5be7fbeb-690-26830" + image: "dashboard:7e7a0d0a-690-26996" imagePullPolicy: IfNotPresent devtron: registry: "" - image: "hyperion:4288e910-280-26829" - cicdImage: "devtron:4288e910-434-26828" + image: "hyperion:15cf0137-280-27017" + cicdImage: "devtron:15cf0137-434-27015" imagePullPolicy: IfNotPresent customOverrides: {} serviceMonitor: @@ -108,7 +108,7 @@ components: # - devtron.example.com ciRunner: registry: "" - image: "ci-runner:fd5702db-138-25483" + image: "ci-runner:3e71f258-138-27009" argocdDexServer: registry: "" image: "dex:v2.30.2" diff --git a/manifests/install/devtron-installer.yaml b/manifests/install/devtron-installer.yaml index 8d75f6caade..8a1f106b6c5 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/v0.7.4/manifests/installation-script + url: https://raw.githubusercontent.com/devtron-labs/devtron/v1.0.0/manifests/installation-script diff --git a/manifests/installation-script b/manifests/installation-script index 6e583d64f2c..8fa866882c1 100644 --- a/manifests/installation-script +++ b/manifests/installation-script @@ -1,4 +1,4 @@ -LTAG="v0.7.4"; +LTAG="v1.0.0"; REPO_RAW_URL="https://raw.githubusercontent.com/devtron-labs/devtron/"; log("executed devtron setup installation"); diff --git a/manifests/release.txt b/manifests/release.txt index d939acb359a..7e2152bcde8 100644 --- a/manifests/release.txt +++ b/manifests/release.txt @@ -1 +1 @@ -stable -1 v0.7.4 +stable -1 v1.0.0 diff --git a/manifests/version.txt b/manifests/version.txt index 520c9c28b7f..0ec25f7505c 100644 --- a/manifests/version.txt +++ b/manifests/version.txt @@ -1 +1 @@ -v0.7.4 +v1.0.0 diff --git a/manifests/yamls/dashboard.yaml b/manifests/yamls/dashboard.yaml index 475479cb8f2..a1dc6a58ee9 100644 --- a/manifests/yamls/dashboard.yaml +++ b/manifests/yamls/dashboard.yaml @@ -235,7 +235,7 @@ spec: - name: envoy-config-volume mountPath: /etc/envoy-config/ - name: dashboard - image: "quay.io/devtron/dashboard:5be7fbeb-690-26830" + image: "quay.io/devtron/dashboard:7e7a0d0a-690-26996" imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false diff --git a/manifests/yamls/devtron.yaml b/manifests/yamls/devtron.yaml index 2c5efac0e86..ba8dcaae76f 100644 --- a/manifests/yamls/devtron.yaml +++ b/manifests/yamls/devtron.yaml @@ -53,7 +53,7 @@ data: CD_NODE_TAINTS_VALUE: "ci" CD_ARTIFACT_LOCATION_FORMAT: "%d/%d.zip" DEFAULT_CD_NAMESPACE: "devtron-cd" - DEFAULT_CI_IMAGE: "quay.io/devtron/ci-runner:fd5702db-138-25483" + DEFAULT_CI_IMAGE: "quay.io/devtron/ci-runner:3e71f258-138-27009" DEFAULT_CD_TIMEOUT: "3600" WF_CONTROLLER_INSTANCE_ID: "devtron-runner" CI_LOGS_KEY_PREFIX: "ci-artifacts" @@ -169,7 +169,7 @@ spec: runAsUser: 1000 containers: - name: devtron - image: "quay.io/devtron/devtron:4288e910-434-26828" + image: "quay.io/devtron/devtron:15cf0137-434-27015" securityContext: allowPrivilegeEscalation: false runAsUser: 1000 diff --git a/pkg/app/AppService.go b/pkg/app/AppService.go index 2018f5cd0d6..447b6efa0d6 100644 --- a/pkg/app/AppService.go +++ b/pkg/app/AppService.go @@ -129,7 +129,6 @@ type AppServiceImpl struct { type AppService interface { UpdateReleaseStatus(request *bean.ReleaseStatusUpdateRequest) (bool, error) - UpdateDeploymentStatusAndCheckIsSucceeded(app *v1alpha1.Application, statusTime time.Time, isAppStore bool) (bool, *chartConfig.PipelineOverride, error) GetConfigMapAndSecretJson(appId int, envId int, pipelineId int) ([]byte, error) UpdateCdWorkflowRunnerByACDObject(app *v1alpha1.Application, cdWfrId int, updateTimedOutStatus bool) error GetCmSecretNew(appId int, envId int, isJob bool, scope resourceQualifiers.Scope) (*bean.ConfigMapJson, *bean.ConfigSecretJson, error) @@ -211,64 +210,6 @@ func (impl *AppServiceImpl) UpdateReleaseStatus(updateStatusRequest *bean.Releas return count == 1, nil } -func (impl *AppServiceImpl) UpdateDeploymentStatusAndCheckIsSucceeded(app *v1alpha1.Application, statusTime time.Time, isAppStore bool) (bool, *chartConfig.PipelineOverride, error) { - isSucceeded := false - var err error - var pipelineOverride *chartConfig.PipelineOverride - if isAppStore { - var installAppDeleteRequest repository4.InstallAppDeleteRequest - var gitHash string - if app.Operation != nil && app.Operation.Sync != nil { - gitHash = app.Operation.Sync.Revision - } else if app.Status.OperationState != nil && app.Status.OperationState.Operation.Sync != nil { - gitHash = app.Status.OperationState.Operation.Sync.Revision - } - installAppDeleteRequest, err = impl.installedAppRepository.GetInstalledAppByGitHash(gitHash) - if err != nil { - impl.logger.Errorw("error in fetching installed app by git hash from installed app repository", "err", err) - return isSucceeded, pipelineOverride, err - } - if installAppDeleteRequest.EnvironmentId > 0 { - err = impl.appStatusService.UpdateStatusWithAppIdEnvId(installAppDeleteRequest.AppId, installAppDeleteRequest.EnvironmentId, string(app.Status.Health.Status)) - if err != nil { - impl.logger.Errorw("error occurred while updating app status in app_status table", "error", err, "appId", installAppDeleteRequest.AppId, "envId", installAppDeleteRequest.EnvironmentId) - } - impl.logger.Debugw("skipping application status update as this app is chart", "appId", installAppDeleteRequest.AppId, "envId", installAppDeleteRequest.EnvironmentId) - } - } else { - repoUrl := app.Spec.Source.RepoURL - // backward compatibility for updating application status - if unable to find app check it in charts - chart, err := impl.chartRepository.FindChartByGitRepoUrl(repoUrl) - if err != nil { - impl.logger.Errorw("error in fetching chart", "repoUrl", repoUrl, "err", err) - return isSucceeded, pipelineOverride, err - } - if chart == nil { - impl.logger.Errorw("no git repo found for url", "repoUrl", repoUrl) - return isSucceeded, pipelineOverride, fmt.Errorf("no git repo found for url %s", repoUrl) - } - envId, err := impl.appRepository.FindEnvironmentIdForInstalledApp(chart.AppId) - if err != nil { - impl.logger.Errorw("error in fetching app", "err", err, "app", chart.AppId) - return isSucceeded, pipelineOverride, err - } - if envId > 0 { - err = impl.appStatusService.UpdateStatusWithAppIdEnvId(chart.AppId, envId, string(app.Status.Health.Status)) - if err != nil { - impl.logger.Errorw("error occurred while updating app status in app_status table", "error", err, "appId", chart.AppId, "envId", envId) - } - impl.logger.Debugw("skipping application status update as this app is chart", "appId", chart.AppId, "envId", envId) - } - } - - isSucceeded, _, pipelineOverride, err = impl.UpdateDeploymentStatusForGitOpsPipelines(app, statusTime, isAppStore) - if err != nil { - impl.logger.Errorw("error in updating deployment status", "argoAppName", app.Name) - return isSucceeded, pipelineOverride, err - } - return isSucceeded, pipelineOverride, nil -} - func (impl *AppServiceImpl) ComputeAppstatus(appId, envId int, status health2.HealthStatusCode) (string, error) { appStatusInternal := string(status) diff --git a/pkg/app/integrationTest/AppService_test.go b/pkg/app/integrationTest/AppService_test.go index df82ad7c44a..6792a1b8760 100644 --- a/pkg/app/integrationTest/AppService_test.go +++ b/pkg/app/integrationTest/AppService_test.go @@ -104,7 +104,7 @@ func TestAppServiceImpl_UpdateDeploymentStatusAndCheckIsSucceeded(t *testing.T) wantErr: wantErr, } t.Run(tt.name, func(t *testing.T) { - got, _, err := appService.UpdateDeploymentStatusAndCheckIsSucceeded(tt.args.app, tt.args.statusTime, false) + got, _, _, err := appService.UpdateDeploymentStatusForGitOpsPipelines(tt.args.app, tt.args.statusTime, false) if (err != nil) != tt.wantErr { t.Errorf("UpdateDeploymentStatusAndCheckIsSucceeded() error = %v, wantErr %v", err, tt.wantErr) return diff --git a/pkg/eventProcessor/in/DeployedApplicationEventProcessorService.go b/pkg/eventProcessor/in/DeployedApplicationEventProcessorService.go index e3680d68285..c71392027a7 100644 --- a/pkg/eventProcessor/in/DeployedApplicationEventProcessorService.go +++ b/pkg/eventProcessor/in/DeployedApplicationEventProcessorService.go @@ -124,7 +124,7 @@ func (impl *DeployedApplicationEventProcessorImpl) SubscribeArgoAppUpdate() erro return } } - isSucceeded, pipelineOverride, err := impl.appService.UpdateDeploymentStatusAndCheckIsSucceeded(app, applicationDetail.StatusTime, isAppStoreApplication) + isSucceeded, _, pipelineOverride, err := impl.appService.UpdateDeploymentStatusForGitOpsPipelines(app, applicationDetail.StatusTime, isAppStoreApplication) if err != nil { impl.logger.Errorw("error on application status update", "err", err, "msg", string(msg.Data)) // TODO - check update for charts - fix this call diff --git a/releasenotes.md b/releasenotes.md index fe47d49af2e..3a479846362 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -1,4 +1,6 @@ -## v0.7.4 +We are extremely excited to announce Devtron's official release of Devtron 1.0. This marks an incredible milestone in our journey. Your valuable feedback and suggestions are what have helped us build the platform and constantly provide value to our users. This is just the beginning - we remain committed to innovation and will continue to deliver powerful features that enhance your DevOps experience based on community feedback and evolving industry needs. + +## v1.0.0 ## Bugs - fix: Helm rollback in case of no gitops (#6005) @@ -8,34 +10,24 @@ - fix: Plugin getByName method error handling (#6016) - fix: Config deployment history fix (#6003) - fix: Force abort fix (#5990) -- fix: Custom tag (#5999) - fix: Helm deployment status (#5996) - fix: Deployment window FIXED type (#5986) - fix: Migration seq fix (#5962) - fix: Modified the query for User listing with filters (#5957) - fix: Bulk deploy panic and docker tag handling (#5949) -- fix: stage artifact logic (#5913) +- fix: Stage artifact logic (#5913) +- fix: Permission access getting clubbed (#6045) ## Enhancements - feat: Config diff enhancement (#5837) - feat: Terminal role casbin policy (#5991) - feat: Refactoring argo application service and common-lib constants (#5944) -- feat: Feature release v9 sql scripts (#5950) ## Others -- misc: Main sync develop (#6047) -- misc: Permission access getting clubbed (#6045) - fix : Multiple param of filter in helm app list (#6013) - chore: Adding refchart migration (#6007) - chore: Cluster terminal images migration (#6006) -- chore: Trigger clean (#6004) - misc: Removed deployment group validation when deleting CD pipelines (#5989) - misc: Replaced != with <> for PostgreSQL compatibility (#5987) -- misc: Main sync 14 oct 2024 (#5985) -- misc: isLatest field in plugin_metadata tag changed to not_null (#5984) -- chore: Main sync develop (#5983) -- misc: error handling while creating github repo in case of concurrent reqs (#5978) -- misc: Release candidate v0.20.0 (#5980) -- misc: Release candidate v0.19.0 (#5930) -- misc: updated migration number (#5948) -- misc: err handling for configmap access (#5938) - - +- misc: isLatest field in plugin metadata tag changed to not_null (#5984) +- misc: Error handling while creating github repo in case of concurrent reqs (#5978) +- misc: Updated migration number (#5948) +- misc: Err handling for configmap access (#5938)