Log in to Microsoft Entra ID without active subscription from Azure CLI

In some cases you may have an Microsoft Entra ID tenant that doesn鈥檛 have an active subscription connected to it but you would nevertheless want to log in to it from a command line for instance, with Azure CLI. You may want to perform actions like creating a Microsoft Entra ID Application for example. In this case you need to be cautious about the login command you鈥檙e running so that you don鈥檛 waste a lot of time on debugging an error you could have avoided in the first place (like someone did 馃榿)! ...

July 15, 2022 路 2 min 路 Kristina Devochko

Re-using Azure DevOps Environment efficiently across multiple pipelines

Following up on the recent blog post series about Continuous Delivery to AKS with Azure DevOps Environments: 馃惐 Part 1 馃惐 Part 2 I would like to share a simple but really useful way to re-use the same Azure DevOps Environment in multiple deployment stages across multiple pipelines. Normally if you want to deploy multiple applications to the same AKS cluster, you would specify a target Azure DevOps Environment by writing it's name in environment property of deployment stage of every application: ...

July 14, 2022 路 3 min 路 Kristina Devochko

Creating reusable build tasks in Azure DevOps pipelines with templates

Use case for pipeline templates In the world of complex enterprise applications and distributed systems you may have a need to perform many more actions and validations as part of a build pipeline than before: build an application, execute multiple types of tests like unit tests and API tests, perform security validations like SCA, SAST, container image scanning and scanning of third-party dependencies, perform application packaging and deployment, etc. That's when it's worth considering to implement a multi-staged pipeline where you can run several jobs in parallel and control application flow with stages. Each stage may then have it's own set of checks and validations. You may even have multiple applications which have similar build tasks as part of the build pipeline - for instance, if you have multiple .NET Web API applications, it's very likely that build pipelines for those will be similar to some extent. ...

June 24, 2022 路 5 min 路 Kristina Devochko

Handling failed Helm upgrade due to another operation in progress

Introduction Sometimes things may go wrong, also during ugprade of the application that is deployed to a Kubernetes cluster with Helm. When something goes wrong, you fix it and re-try a deployment with the new fix included. But then deployment operation fails with following error message: Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress So, what does it mean and how can you fix it? Let鈥檚 find out! Controlled, manual fix This happens typically when Helm attempts to roll out a new revision of an application and then something goes wrong in the process, like a bug in an application itself or an issue inside the Kubernetes cluster, which causes the new deployment to never get completed. This faulty deployment becomes dangling, therefore preventing all the future deployments to be rolled out. You can easily check the latest deployment status by retrieving the history of application deployments with helm history. ...

June 20, 2022 路 4 min 路 Kristina Devochko

Kris's Quick Cup of (A)K8S #2

It鈥檚 time for a new edition of Kris鈥檚 Quick cup of Kubernetes where I鈥檓 utilizing Azure Kubernetes Service (AKS) for demo purposes!馃樅 In second edition of this tech tip series I would like to share a few tips related to CronJobs, Rolling Updates and AKS add-ons that can make your life easier when working with Kubernetes and specifically Azure Kubernetes Service. #1 - Run CronJob instantly Sometimes you may need to run a CronJob (scheduled Job) instantly, for example, when you鈥檙e debugging some execution errors. So, can you do that instantly or do you need to wait for the next time slot that the CronJob is scheduled for to execute? Well, you can pretty easily create a regular Job based on CronJob definition and in that way trigger it instantly - here鈥檚 how you can do that with kubectl: ...

May 16, 2022 路 3 min 路 Kristina Devochko