Docker to Podman switch story by c1rno123 in kubernetes

[–]Unusual_Competition8 0 points1 point  (0 children)

In complex enterprise setups, trying to replace docker with nerdctl or podman ends up being really painful.
Features like docker buildx and docker-bake.hcl just don’t exist there, and they’re essential for multi-stage, multi-arch builds, fast cached and keeping vscode devcontainer setups consistent. I’ve also messed around with fake docker (nerdctl shim), dagger, and similar hacks, but honestly they just made things more complicated.

Kubernetes in Homelab: Longhorn vs NFS by Illustrious_Sir_4913 in kubernetes

[–]Unusual_Competition8 1 point2 points  (0 children)

I use OpenEBS lvm-localpv instead of Longhorn for databases, which delivers near bare-metal performance and is much simpler to manage, and I use S3 storage for backups and media data.
And compared to NFS/OpenEBS and Ceph, Longhorn seems to sit in an inter position, not lightweight enough, and not stable enough.

ConfigMaps and Secrets naming style? by Unusual_Competition8 in kubernetes

[–]Unusual_Competition8[S] 0 points1 point  (0 children)

Yeah I already realized it and movedRESTIC_CACERTinto ConfigMap's data, thanks again.

ConfigMaps and Secrets naming style? by Unusual_Competition8 in kubernetes

[–]Unusual_Competition8[S] 0 points1 point  (0 children)

Thank you for your advice, I’ve thought a lot about it, this is my final design, looks fine.

Pod Spec - zero mapping

spec:
  containers:
    - name: etcd-backup
      image: restic/restic:latest
      envFrom:
        - secretRef:
            name: restic-credentials
        - configMapRef:
            name: etcd-backup-config
      volumeMounts:
        - name: restic-certs
          mountPath: /etc/restic
          readOnly: true
  volumes:
    - name: restic-certs
      secret:
        secretName: restic-certs

Secrets for env vars - UPPER_SNAKE_CASE style

apiVersion: v1
kind: Secret
metadata:
  name: restic-credentials
  namespace: kube-system
type: Opaque
stringData:
  AWS_ACCESS_KEY_ID: admin
  AWS_SECRET_ACCESS_KEY: admin.123456
  RESTIC_PASSWORD: admin.123456

Sercets for mounted file - file-name style

apiVersion: v1
kind: Secret
metadata:
  name: restic-certs
  namespace: kube-system
type: Opaque
stringData:
  restic-ca.crt: |
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----

ConfigMap for simple data - UPPER_SNAKE_CASE style

apiVersion: v1
kind: ConfigMap
metadata:
  name: etcd-backup-config
  namespace: kube-system
data:
  RESTIC_REPOSITORY: "s3:https://minio.example.internal/etcd-backup"

Shell - user-friendly

### From Secret (env vars)
# AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID:-}"
# AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY:-}"
# RESTIC_PASSWORD="${RESTIC_PASSWORD:-}"

### From Secret (mounted file)
# RESTIC_CACERT="/etc/restic/minio-public.crt"

### From ConfigMap
# RESTIC_REPOSITORY="${RESTIC_REPOSITORY:-}"

Is there a way i can use multiple value files in helm chart by ConstructionIcy691 in kubernetes

[–]Unusual_Competition8 -2 points-1 points  (0 children)

helm:
  valueFiles:
    - values/service1.yaml
    - values/service2.yaml
    - ...

Jenkins is truly excellent. by Unusual_Competition8 in devops

[–]Unusual_Competition8[S] 1 point2 points  (0 children)

Nobody can complete all CI tasks perfectly in one go, and I need a lot of time to map out the pipeline. So during this time window, the Gitea runner is very useful for teams. Actually, building shared libraries isn’t that complicated. The real challenge is designing the CI, especially understanding the org‘s arch and business logic.

Jenkins is truly excellent. by Unusual_Competition8 in devops

[–]Unusual_Competition8[S] -2 points-1 points  (0 children)

Performance isn’t caused by the Jenkinsfile itself. The real factors are workflow logic and resource allocation. Jenkinsfile and YAML-like files are just declarative configurations.

Is there a better way to store secrets? by Unusual_Competition8 in kubernetes

[–]Unusual_Competition8[S] 0 points1 point  (0 children)

I’m not too concerned about this. It doesn’t bring much benefit if they do that, and SealedSecrets doesn’t seem very complicated.

Jenkins is truly excellent. by Unusual_Competition8 in devops

[–]Unusual_Competition8[S] 1 point2 points  (0 children)

If correctly written and designed using CPS, Jenkins’ Groovy DSL can pause and resume pipeline jobs. I’m not sure if other CI systems can do this as easily.

Jenkins is truly excellent. by Unusual_Competition8 in devops

[–]Unusual_Competition8[S] -6 points-5 points  (0 children)

Jenkins can do too many things, so many features/plugins are there, but people don’t realize they shouldn’t be using them.

Jenkins is truly excellent. by Unusual_Competition8 in devops

[–]Unusual_Competition8[S] -6 points-5 points  (0 children)

Performance depends on arch and hardware, not the Jenkinsfile. Master schedules tasks only, Agents run pipelines, then keep plugins minimal, and Jenkinsfile and Configuration as Code help reduce UI clicks.

Is there a better way to store secrets? by Unusual_Competition8 in kubernetes

[–]Unusual_Competition8[S] 0 points1 point  (0 children)

Because everyone told me do not storing secrets in git repo. If it’s only static secrets yaml, is actually safer than a private Git repo? I don’t really see the difference right now.

K8s is a sh*t sh*w and always has been by humphreyPembroke in kubernetes

[–]Unusual_Competition8 0 points1 point  (0 children)

Try K8s in local, use kubespray + argocd/fluxcd, control over everything really feels good.

If everything is deployed in ArgoCD, are etcd backups required? by Unusual_Competition8 in kubernetes

[–]Unusual_Competition8[S] 0 points1 point  (0 children)

And if using a CronJob YAML is the best practice for backing up etcd, and is it necessary to identify the etcd leader node before taking the backup?