Reddit DevOps
266 subscribers
30.9K links
Reddit DevOps. #devops
Thanks @reddit2telegram and @r_channels
Download Telegram
A Decade of Cloud Native: The CNCF’s 10-Year Journey

I just published a detailed, historical breakdown of CNCF’s 10-year journey:
From Kubernetes and Prometheus to 30+ graduated projects and 200K+ contributors — this post covers it all: major milestones, ecosystem growth, governance model, and community evolution.

Would love feedback:
https://blog.abhimanyu-saharan.com/posts/a-decade-of-cloud-native-the-cncf-s-10-year-journey

https://redd.it/1lhpf1s
@r_devops
What tech role should I aim if I'm not keen on web dev?

So I'm a computer student trying to aim at a role and techstack. I don't see myself building a visually appealing website so frontend is probably not for me. Based on my strengths and weaknesses, I need recommendations on what role i would fit into :

I used to root phones and install custom roms as a hobby. For the time being I'm playing around with basic Linux commands on a virtual machine. I am terrible at DSA and don't know any JS frameworks. I see everyone around me jumping into the MERN bandwagon, but it never really caught my eyes. I have basic Python knowledge and would probably stick to it. C, Java and SQL have been taught on a college level only.

I have researched a bit and tried to look into SysOps and DevOps roles. Naturally the next question which arises is whether there are enough job oppurtunities for freshers? If yes then how do I begin my journey?

Thank you

https://redd.it/1lhwmo6
@r_devops
U definately need it...... Futuretechdomaingenerator.com

I need a catchy domain name for my startup! Also me: *builds entire domain generator instead of just picking one.. I present to you futuretechdomaingenerator.com 😄

https://redd.it/1lhz9kl
@r_devops
GitHub Action Logs Show PM2 Reloaded, but API Not Actually Restarting — How to Debug?

I'm running an Express API on a remote VPS and attempting to automate deployments using GitHub Actions. The API process is running on the VPS using PM2 in cluster mode, with configurations defined in an ecosystem.config.cjs file.

The action fetches updated code, runs standard dependency installment/migrations commands, and finally runs this command for a zero-downtime reload of the API process: pm2 reload config/ecosystem.config.cjs

Again, the GitHub Action logs for this step appear to be successful, printing this output:

♻️ Reloading PM2 in cluster mode...

PM2 Applying action reloadProcessId on app ***

PM2 *** ✓

PM2 *** ✓

PM2 *** ✓

=========================================
Successfully executed commands to all hosts.
=========================================



But checking my PM2 logs and observing subsequent behavior, it is clear that the server both did not actually reload, and is not reflecting the recently made changes. However, when I manually SSH into the VPS and run that exact same command, it prints the same success log and DOES actually reload the server and start executing the new code.

I have also confirmed that the other steps from the deployment really are succeeding - the new code is being properly fetched and copied into the file location on the VPS. The only problem is that the server is not actually reloading, which is bizarre because the GHA logs say that it is.

I've tried manually stopping, deleting and starting the PM2 process fresh in case it didn't pick up changes to the ecosystem config file from when the process was originally started. I've also confirmed the env variables it needs access to are being properly loaded in and accessible (I also use a secrets manager I've omitted from here, which prefixes the pm2 reload command - and again, it seems to be working as expected).

The only other piece of relevant information I'll note is that I struggled quite a bit to get the ecosystem.config.cjs file working as expected. My API uses ESM throughout, but I was only able to get the ecosystem config file to work when I changed it to .cjs.

I am a reasonably experienced web developer, but new to devops and to hosting my own production-ready project. Anyone more experienced have a clue what might be happening here, or have ideas as to how I can further diagnose?

https://redd.it/1li61it
@r_devops
I was asked to design a distributed key-value storage in a DevOps interview, is this normal?

I didn't expect this kind of question and got caught completely off-guard. I answered etcd and Raft, but obviously the interviewer wanted me to design the internals. I couldn't answer anything so I failed. I Googled the Raft implementation right after the interview and understand how it works now.
Is this normal for DevOps interviews? If yes, is there a list of protocol/architectural readings that I need to know before the next one?

https://redd.it/1li7dte
@r_devops
How can I configure Dex to issue an OIDC token for Google Cloud (Workload Identity Federation)?

Hi everyone 🤗.

I currently have a server hosted on Hetzner VPS. I want to access Artifact Registry to pull a Docker image using Docker Compose, and then grant access to the image for Vertex AI and Cloud Storage.


Google discourages the use of Service Account Keys and recommends using OIDC instead.

After digging in, I've begun setting up Dex and Nginx to create my own OIDC provider that could authenticate against Google Cloud.


I'm able to issue ID tokens within Dex, but when I call the STS Token endpoint from Google Cloud I get:

{
"error": "invalidrequest",
"error
description": "Invalid value for \"audience\". This value should be the full resource name of the Identity Provider. See https://cloud.google.com/iam/docs/reference/sts/rest/v1/TopLevel/token for the list of possible formats."
}{
"error": "invalidrequest",
"error
description": "Invalid value for \"audience\". This value should be the full resource name of the Identity Provider. See https://cloud.google.com/iam/docs/reference/sts/rest/v1/TopLevel/token for the list of possible formats."
}


Which is to be expected as I decode the JWT and the audience returns me: `private-client` and not the path.
{
"iss": "https://auth.example.comss",
"sub": "CiQwOGE4Njg0Yi1kYjg4LTRiNzMtOTBhOS0zY2QxNjYxZjU0NjYSBWxvY2Fs",
"aud": "private-client",
"exp": 1750691423,
"iat": 1750605023,
"at_hash": "vYjPyKHYJodj0ahw9dIT_Q"
}



Here's my dex configuration:



# dex/config.yaml - Alternative configuration using password flow
issuer: https://auth.example.ai

storage:
type: sqlite3
config:
file: /data/dex.db
web:
# Listen on HTTP (if behind a reverse proxy or for local testing)
http: 0.0.0.0:5556
# If Dex should serve TLS itself (no proxy), enable HTTPS and provide cert/key:
# https: 0.0.0.0:443
# tlsCert: /etc/dex/tls/fullchain.pem # path to TLS certificate
# tlsKey: /etc/dex/tls/privkey.pem # path to TLS private key

# Enable built-in static password authentication
staticClients:
- id: public-client
public: true
name: 'Public Client'
redirectURIs:
- 'https://auth.example.ai/oidc/callback'
- id: private-client
secret: app-secret
name: 'Private Client'
redirectURIs:
- 'https://auth.example.ai/oidc/callback'
audience:
- '//iam.googleapis.com/projects/11111111/locations/global/workloadIdentityPools/hetzner-pool/providers/hetzner-provider'
# Set up an test user
staticPasswords:
- email: '[email protected]'
# bcrypt hash of the string "password": $(echo password | htpasswd -BinC 10 admin | cut -d: -f2)
hash: '$2a$10$2b2cU8CPhOTaGrs1HRQuAueS7JTT5ZHsHSzYiFPm1leZck7Mc8T4W'
username: 'admin'
userID: '08a8684b-db88-4b73-90a9-3cd1661f5466'

# Enable local users
enablePasswordDB: true
# Allow password grants with local users
oauth2:
passwordConnector: local

# dex/config.yaml - Alternative configuration using password flow
issuer: https://auth.example.ai


storage:
type: sqlite3
config:
file: /data/dex.db
web:
# Listen on HTTP (if behind a reverse proxy or for local testing)
http: 0.0.0.0:5556

# Enable built-in static password authentication
staticClients:
- id: public-client
public: true
name: 'Public Client'
redirectURIs:
- 'https://auth.example.ai/oidc/callback'
- id: private-client
secret: app-secret
name: 'Private Client'
redirectURIs:
- 'https://auth.example.ai/oidc/callback'
audience:
- '//iam.googleapis.com/projects/11111111/locations/global/workloadIdentityPools/hetzner-pool/providers/hetzner-provider'
# Set up an test user
staticPasswords:
- email: '[email protected]'
# bcrypt hash of the string "password": $(echo password | htpasswd -BinC 10 admin | cut -d: -f2)
hash: '$2a$10$2b2cU8CPhOTaGrs1HRQuAueS7JTT5ZHsHSzYiFPm1leZck7Mc8T4W'
username: 'admin'
userID: '08a8684b-db88-4b73-90a9-3cd1661f5466'


# Enable local users
enablePasswordDB: true
# Allow password grants with local users
oauth2:
passwordConnector: local


I've run the following on GCP:
    gcloud iam workload-identity-pools create $POOL_ID \
--location="global" \
--description="Pool for Hetzner workloads" \
--display-name="Hetzner Pool" \
--project=$PROJECT_ID



gcloud iam workload-identity-pools providers create-oidc $PROVIDER_ID \
--location="global" \
--workload-identity-pool=$POOL_ID \
--issuer-uri="https://auth.example.ai" \
--allowed-audiences="//iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$POOL_ID" \
--attribute-mapping="google.subject=assertion.sub,attribute.email=assertion.email,attribute.groups=assertion.groups" \
--project=$PROJECT_ID

gcloud iam service-accounts add-iam-policy-binding $SERVICE_ACCOUNT \
--member="principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$POOL_ID/subject/$SUBJECT" \
--role="roles/iam.serviceAccountTokenCreator" \
--project=$PROJECT_ID

gcloud iam workload-identity-pools add-iam-policy-binding $POOL_ID \
--location="global" \
--member="principal://iam.googleapis.com/projects/$PROJECT_NUMBER/locations/global/workloadIdentityPools/$POOL_ID/subject/$SUBJECT" \
--role="roles/iam.workloadIdentityUser" \
--project=$PROJECT_ID







https://redd.it/1li7cn4
@r_devops
How to reach the devops or cloud people that need remote support?

So I'm a person from DevOps and Cloud field, and started my gigs on fiverr. I've been thinking about how to gets or reach those clients through mail. I've been doing client support and remote support work for few clients and I'm starting towards freelancing. So what are your thoughts, how will you reach somebody for work support etc?

https://redd.it/1li89s3
@r_devops
AWS terraform documentation feels like trash

Hi, I recently started working on AWS using terraform. And to be honest I am quite disappointed with the implementation of modules and their official documentation. I also work with azure using terraform and their implementation and documentation of modules A4 much more comprehensive, mature and well designed.

Do you also face issues while working with AWS terraform?What do refer when you're stuck ? Would love to hear your thoughts and experience.

Thanks in advance.

https://redd.it/1liat8s
@r_devops
Airflow webserver UI - integrate LDAP with Kerberos?


Is it possible to do away with ldap bind username and password and instead use Kerberos instead? We are on airflow2 and a lot of the answers is for airflow1. There is also a lack of examples on implementing this. Please is anyone able to advise?

https://redd.it/1liersm
@r_devops
Will learning devops help me become a better backend developer?

I have studied primarily Java and Python for 2 years. I love backend and have built a couple of rest APIs. But I’m still a newbie and want to get even better at it.

I’ve got 2 options now:
A) study devops for 2 years, this is new for me
B) study frontend for 2 years, this is not new for me, so I would just take a lot of the free time to build my own projects

Now the only reason I am considering devops is that I don’t know much about it, so if it can actually help me become better at backend, I would love to study it for that sake!

https://redd.it/1lif7ja
@r_devops
Lessons from comparing SSO vendors for a growing SaaS platform

We had to scale from homegrown auth to proper SSO and dug into a bunch of vendors — from developer-focused ones like FusionAuth and WorkOS to enterprise stacks like Okta and Microsoft Entra.

Comparing deployment models, docs, SDKs, SCIM support, and pricing taught us a lot.

Anyone else go through this recently? Curious what you optimized for — integration speed? CIAM vs workforce? Multi-tenant support?

https://redd.it/1lihsul
@r_devops
new to grafana - display mem usage and limits from containers

Hi I am new to K8S and Grafana. Mainly worked on AWS IAC the last few years.

I am using the official traefik dashboard in grafana and trying to extend it to also display the pod memory usage, limits and requests.

I am having to use two different metrics endpoints (kube_pod_* and go_mem_*) to achieve this and unable to get the dashboard to work in such a way that the limit and cpu switch between the different services from the dropdown box that acts as a filter.

Anyone able to explain where I'm going wrong or able to help. Tried copilot with no luck. real humans are required.


"pluginVersion": "10.4.12",
"targets":
{
"datasource": {
"type": "prometheus",
"uid": "Prometheus"
},
"editorMode": "code",
"expr": "go_memstats_sys_bytes{container=~\".*traefik.*\", service=~\"$service\"}",
"instant": false,
"legendFormat": "{{container}}",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "c8cf1b2b-d68b-4b9a-93c0-e3520f97bcf3"
},
"editorMode": "code",
"expr": "label_replace(\n kube_pod_container_resource_requests{container=~\".*traefik.*\", resource=\"memory\"},\n \"service\", \"$1\", \"container\", \"(.*)\"\n) ",
"hide": false,
"instant": false,
"legendFormat": "{{service}}-limits",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "c8cf1b2b-d68b-4b9a-93c0-e3520f97bcf3"
},
"editorMode": "code",
"expr": "label_replace(\n kube_pod_container_resource_requests{container=~\".*traefik.*\", resource=\"memory\"},\n \"service\", \"$1\", \"container\", \"(.*)\"\n)",
"hide": false,
"instant": false,
"legendFormat": "{{service}}-requests",
"range": true,
"refId": "C"
}
,
"title": "Memory Usage",
"transformations":
{
"filter": {
"id": "byRefId",
"options": "B"
},
"id": "filterFieldsByName",
"options": {
"byVariable": true,
"include": {
"variable": "$service"
}
},
"topic": "series"
},
{
"filter": {
"id": "byRefId",
"options": "C"
},
"id": "filterFieldsByName",
"options": {
"byVariable": true,
"include": {
"variable": "$service"
}
},
"topic": "series"
},
{
"filter": {
"id": "byRefId",
"options": "A"
},
"id": "filterFieldsByName",
"options": {
"byVariable": false,
"include": {
"variable": "$service"
}
},
"topic": "series"
}
,




https://redd.it/1ligynd
@r_devops
Ory Kratos for new projects in 2025?

I like the idea behind Ory Kratos and since I only need authentication (authorization is handled elsewhere) I took a closer look and built a small PoC for my workflow. There are quite a few inconsistencies in the API, documentation and code examples unfortunately and the repository doesn't see too many commits anymore. I wonder if it's still a good choice for new projects in 2025.

Has anyone here experience with the self-hosted version of Kratos and would like to share it?

https://redd.it/1lijs20
@r_devops
Good resources/path to learn and move to devops

I’m in QA Automation since past 4ish years and recently have started losing interest in the field.

I do manage pipelines and some part of QA infra, and I have grown interest in DevOps recently.

I’m struggling to find good resources and path to learn devops, has anyone found any good resources that they can share?

Before starting learning I’m someone who would like to know the outlines of what I’ll learn and what’s next to learn hence would like to know the path to follow as well!
Thank you!

https://redd.it/1lik3v2
@r_devops
Best approach to prevent Windows reboots

Hello DevOps fellows. I'm working on a Jenkins pipeline that manages Windows 10 hosts, and I need to check for pending Windows updates and reboots to prevent unexpected interruptions during pipeline executions in these hosts.

Currently I'm calling two powershell scripts that returns to me if there is any updates/reboots pending, but I can't get the time remaining until Windows forces a reboot and somethimes the pending updates scripts fails (don't know why :-( ).

Did any of you already had to implement something like this? If so, how? Any tips?

I tough in searching for a patch management tool, but didn't found anything opensource to test.

Thanks in advance!



https://redd.it/1ligwix
@r_devops
Looking for recommendations of open-source projects to showcase DevOps/Kubernetes skill

I'm preparing for job interviews and want to demonstrate my DevOps skills: CI/CD pipelines, IaC, Kubernetes deployments, Helm, monitoring, and more.

I'm looking for recommendations of small to medium open-source backend projects (preferably Python or Go) that I can fork and use to build a full infrastructure around — including Kubernetes manifests, Helm charts, pipelines with Jenkins, and cloud infrastructure setup.

I won't be modifying or developing the application itself — just using the fork for demo purposes (e.g. to run in my own cluster and show full DevOps lifecycle). I won’t publish or promote my fork as a new product or separate project.

Any recommendations would be greatly appreciated. Thank you!

https://redd.it/1lio497
@r_devops
From Bash Scripts to the Cloud: Where Do I Go From Here?"

Hey folks,

I’m someone who has a solid interest in Linux and the command line. I’ve been learning the basics of operating systems, Linux, and bash scripting, and I find myself really enjoying the terminal workflow and the logic behind automating things.

Now, I want to break into the Cloud/DevOps domain — but I’m not exactly sure where I stand and what entry points would make the most sense given my current skillset.

Here’s what I currently know:

Basic OS concepts (processes, memory, etc.)

Linux fundamentals (file system, permissions, package managers)

Bash scripting (basic to intermediate level)

Comfortable navigating and working on the Linux CLI

What I want to know:

1. With this skillset, what kinds of roles should I target? (internships, junior DevOps roles, etc.)


2. What should I start learning next to become job-ready in the cloud/devops space? (e.g., Git, Docker, CI/CD tools, cloud platforms?)


3. Is it possible to land a Cloud/DevOps internship or entry-level role before being fully certified or “expert” level in everything?


4. Any roadmap or learning path recommendations that build naturally on top of my current Linux CLI knowledge?



Would love to hear from people who’ve walked a similar path or are working in the domain. I’m motivated and committed to keep learning, and I feel like I’m finally heading in the right direction — just need some guidance.

TL;DR:
I know Linux, OS basics, and bash scripting. I love using the CLI and want to get into the Cloud/DevOps field. What kind of roles can I aim for now, and what should I learn next to improve my chances of landing an internship or junior role?


https://redd.it/1liec2w
@r_devops
Leveraging Your Prometheus Data: What's Beyond Dashboards and Alerts?

So, I work at an early-stage ISP as network dev and we're growing pretty fast, and from the beginning, I've implemented decent monitoring utilizing Prometheus. This includes custom exporters for network devices, OLTs, ONTs, last-mile CPEs, radios, internal tools, network Netflow, and infrastructure metrics, all together, close to 15ish exporters pulling metrics. I have dashboards and alerts for cross-checking, plus some Slack bots that can call metrics via Slack. But I wanted to see if anyone has done anything more than the basics with their wealth of metrics? Just looking for any ideas to play with!

Thanks for any ideas in advance.

https://redd.it/1lj25sy
@r_devops
How to Deploy a Containerized Backend for Free?

Howdy!! I’m working on a small charity project for a client and I’m trying to stay entirely within the free tier. The backend is built with microservices and includes:
- A Redis container
- A PostgreSQL container
- An API Gateway using Spring Cloud
- Around 6 Microservices for business logic

In terms of infrastructure the project is not expecting great demand of users, around 100 are expected. So I was planning to use Oracle Cloud’s Free Tier VMs, install Docker, and run all the services there.

Additionally, I’m considering running Prometheus in a separate VM for monitoring and logging.

Are there better (still free) alternatives you'd recommend for containerized deployments?

https://redd.it/1lj2yrs
@r_devops