v1.8.2

Conversation

Session ID: 7309bd4489b5c0d4e9ab9614e8d7f336

Back to List
system text
11:14:16
You are an expert AI assistant editor for a blog. Your role is to help users refine, correct, and improve their blog posts. Focus on clarity, grammar, tone, and flow.
You are grounded in reality and must avoid hallucinations. Do not invent facts or modify the core meaning of the user's text unless requested.
You have a tool called `edit_text`. YOU MUST CALL THIS TOOL BY RESPONDING WITH A VALID TOOL CALL JSON PAYLOAD.
DO NOT WRITE PYTHON, JAVASCRIPT, OR ANY OTHER CODE. DO NOT WRAP YOUR RESPONSE IN `print()` OR ANY OTHER FUNCTION.
user text
11:14:20
Here is the current content of the blog:

# Have Kubernetes operators gone too far?

What does this even mean? Well, to be honest, I am not sure myself, but let's start with a short story.

I was setting up an AWS environment recently. I had an EKS cluster, some APIs, and an RDS database. The RDS password was stored in AWS Secrets Manager, but my app only supported reading secrets from environment variables. Now, I am lazy, and I didn't want to update my app to read the secret from AWS Secrets Manager, but luckily I remembered the [External Secrets Operator](https://external-secrets.io/latest/). I had used it in the past and remembered it being easy to set up—it just worked. 

So let's install it: go get the CRDs bundle from [here](https://github.com/external-secrets/external-secrets/blob/main/deploy/crds/bundle.yaml), and would you look at that—it's 28K lines long and needs a `--server-side` flag to apply because the CRDs are too big and `kubectl` doesn't support it. Whatever, apply it and move on. Let's install the operator itself. Now I have three services running in my cluster:
* external-secrets-cert-controller
* external-secrets
* external-secrets-webhook

I just wanted to move one secret from AWS to the EKS cluster, and now I have thousands of lines of YAML and more microservices than secrets. Why are there 28K lines of YAML definitions? Why does it take three services to copy one secret? What happened here? 

Story time over. Let me just try to set something straight: I don't hate a specific operator or Kubernetes. I have used External Secrets for years, and arguably, I owe my career to Kubernetes. But it is starting to feel like a Kubernetes cluster is turning into a Node project with all its npm dependencies just to do the simplest thing. And I know I am part of the problem, reaching for an operator to read a single secret.

My journey with Kubernetes started with my first job. We didn't have a cloud, and the company had its own datacenters. This meant that a VM was provisioned in days and a firewall in weeks if you were unlucky. In that environment, I was on a team trying to run a Kubernetes cluster so other people could just deploy to it and not have to deal with any of the underlying infrastructure. In our cluster, there were no operators, no autoscaling, no persistent disks, but it was still preferred over managing your own infrastructure. 

We ran Prometheus and an ELK stack for observability on VMs, with no operators. I believe this was one of the best decisions for our stack and my career. Let's say something goes wrong, you go to Prometheus, check the logs, and fix it. Let's say you use the Prometheus operator and something goes wrong. You can check the logs. Then you go and read the docs of the Prometheus operator to see how to configure the settings you need to check. And this is only if you are lucky. Sometimes you have to disable an operator, recover the service, and re-enable the operator. Sometimes it feels like it is no longer enough to know how to operate a service; now you also need to know how to operate an operator that operates a service. 

So, all I am trying to say is: What happened to learning how to operate a service and setting up a pipeline to maintain it? Do we need operators that rival the number of npm packages needed to build this website? 

---

User request:
user text
11:14:20
Are you here?
model text
11:14:27
Yes, I am here! I have read through your blog post about Kubernetes operators. It's a great, relatable piece with a strong personal voice and a clear perspective. 

How can I help you with it today? We can work on refining the flow, checking for grammar and clarity, adjusting the tone, or anything else you might need. Just let me know what you'd like to focus on!
user text
11:14:55
Can you proofread my article and see if we can make improvements
model text
11:16:06
I think your article is already in great shape! It has a strong, relatable voice and makes a very valid point about the growing complexity of Kubernetes ecosystems. 

To polish it up, I'll make a few minor edits to improve the flow and consistency:
1. **Tense Consistency:** In the third paragraph, you switch from past tense ("I was setting up") to present/imperative ("So let's install it: go get..."). I will adjust this to past tense so it reads smoothly as a continuous story.
2. **Sentence Structure:** I'll break up a slightly long run-on sentence in the second paragraph ("Now, I am lazy, and I didn't want...").
3. **Flow in Hypotheticals:** In the second-to-last paragraph, the repetition of "Let's say..." can be smoothed out to make the contrast between the two scenarios punchier.

Here are the edits:
model functionCall
11:16:06
Function Call:
{
  "args": {
    "replacements": [
      {
        "new_text": "Admittedly, I am lazy, and I didn't want to update my app to read the secret from AWS Secrets Manager. Luckily, I remembered the [External Secrets Operator](https://external-secrets.io/latest/).",
        "old_text": "Now, I am lazy, and I didn't want to update my app to read the secret from AWS Secrets Manager, but luckily I remembered the [External Secrets Operator](https://external-secrets.io/latest/)."
      },
      {
        "new_text": "So, I went to install it. I grabbed the CRDs bundle from [here](https://github.com/external-secrets/external-secrets/blob/main/deploy/crds/bundle.yaml), and would you look at that—it was 28K lines long and needed a `--server-side` flag to apply because the CRDs were too big for standard `kubectl` to handle. Whatever, I applied it and moved on. Then, I installed the operator itself. Suddenly, I had three new services running in my cluster:",
        "old_text": "So let's install it: go get the CRDs bundle from [here](https://github.com/external-secrets/external-secrets/blob/main/deploy/crds/bundle.yaml), and would you look at that—it's 28K lines long and needs a `--server-side` flag to apply because the CRDs are too big and `kubectl` doesn't support it. Whatever, apply it and move on. Let's install the operator itself. Now I have three services running in my cluster:"
      },
      {
        "new_text": "If something went wrong, you would go to Prometheus, check the logs, and fix it. But if you use the Prometheus operator and something goes wrong, checking the logs is just step one. Then, you have to read the operator's documentation to figure out how to configure the settings you need to fix the issue.",
        "old_text": "Let's say something goes wrong, you go to Prometheus, check the logs, and fix it. Let's say you use the Prometheus operator and something goes wrong. You can check the logs. Then you go and read the docs of the Prometheus operator to see how to configure the settings you need to check."
      }
    ]
  },
  "name": "edit_text"
}
user text
11:17:35
Can you check for spelling and grammer mistakes
model functionCall
11:20:56
Function Call:
{
  "args": {
    "replacements": [
      {
        "new_text": "We didn't have a cloud, and the company had its own data centers.",
        "old_text": "We didn't have a cloud, and the company had its own datacenters."
      },
      {
        "new_text": "In our cluster, there were no operators, no auto-scaling, no persistent disks, but it was still preferred over managing your own infrastructure.",
        "old_text": "In our cluster, there were no operators, no autoscaling, no persistent disks, but it was still preferred over managing your own infrastructure."
      },
      {
        "new_text": "And that is only if you are lucky.",
        "old_text": "And this is only if you are lucky."
      }
    ]
  },
  "name": "edit_text"
}
user text
11:20:56
Can you check for spelling and grammer mistakes
model text
11:25:39
I just did another thorough pass over the entire article, and the spelling and grammar are looking completely solid! 

The text is clean, the punctuation is correct, and the tenses are now consistent throughout. Your message comes across clearly and professionally while maintaining that great conversational tone.

Is there anything else you'd like to tweak, such as the title or the formatting, before you publish it?