Информация об изменениях

Сообщение Почему кубернетес такой многословный? от 24.11.2022 20:13

Изменено 24.11.2022 20:14 vsb

Почему кубернетес такой многословный?
Всем он мне нравится. Ну почти. По крайней мере негатива почти ничего не вызывает, что нынче для меня редкость.

Но вот ямл-файлы это нечто...

Простейший сервис с минимальной конфигурацией:

```
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
spec:
selector:
matchLabels:
app.kubernetes.io/name: backend
template:
metadata:
labels:
app.kubernetes.io/name: backend
spec:
containers:
— name: smartecg-backend
image: registry.gitlab.com/bla/backend:1.5.6
ports:
— containerPort: 8080
env:
— name: SERVER_URL
value: http://keycloak/auth
— name: CLIENT_SECRET
valueFrom:
secretKeyRef:
key: idp-client-secret
name: backend
---
apiVersion: v1
kind: Service
metadata:
name: backend
spec:
selector:
app.kubernetes.io/name: backend
ports:
— port: 80
targetPort: 8080
name: http
```

Вот аналогичный по смыслу кусок из докер-композа (я чуть-чуть сымпровизировал):

```
services:
backend:
image: registry.gitlab.com/bla/backend:1.5.6
ports:
— 80:8080
environment:
SERVER_URL: http://keycloak/auth
CLIENT_SECRET: ${secrets:backend/idp-client-secret}
```

вместо 38 строк — 8 и немного соглашений по умолчанию (к примеру для каждого деплоймента создаём сервис).

Так и чешутся руки генерировать это всё из какого-нибудь jsonnet-а. Но зачем изначально так было делать, вот чего не пойму.
Почему кубернетес такой многословный?
Всем он мне нравится. Ну почти. По крайней мере негатива почти ничего не вызывает, что нынче для меня редкость.

Но вот ямл-файлы это нечто...

Простейший сервис с минимальной конфигурацией:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: backend
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: backend
  template:
    metadata:
      labels:
        app.kubernetes.io/name: backend
    spec:
      containers:
        - name: smartecg-backend
          image: registry.gitlab.com/bla/backend:1.5.6
          ports:
            - containerPort: 8080
          env:
            - name: SERVER_URL
              value: http://keycloak/auth
            - name: CLIENT_SECRET
              valueFrom:
                secretKeyRef:
                  key: idp-client-secret
                  name: backend
---
apiVersion: v1
kind: Service
metadata:
  name: backend
spec:
  selector:
    app.kubernetes.io/name: backend
  ports:
    - port: 80
      targetPort: 8080
      name: http


Вот аналогичный по смыслу кусок из докер-композа (я чуть-чуть сымпровизировал):

services:
  backend:
    image: registry.gitlab.com/bla/backend:1.5.6
    ports:
      - 80:8080
    environment:
      SERVER_URL: http://keycloak/auth
      CLIENT_SECRET: ${secrets:backend/idp-client-secret}


вместо 38 строк — 8 и немного соглашений по умолчанию (к примеру для каждого деплоймента создаём сервис).

Так и чешутся руки генерировать это всё из какого-нибудь jsonnet-а. Но зачем изначально так было делать, вот чего не пойму.

Может им там в гугле за строки платят?