argo-cd cilium identity

k8s: v1.26.4
argo-cd: v2.12.3+6b9cd82
에서 strimzi kafka operator 로 kafka cluster 를 설치후
argocd 에서 보면 다음과 같이 cilium identity 에 out of sync 로 보인다.

실제 CiliumIdentity 를 보면 정상적으로 리소스가 생성돼 있다.
관련 이슈가 cilium troubleshooting 이 있다.
다음과 같이 argocd 에서 CiliumIdentity 리소스를 모니터링 대상에서 제외시킨다.
kubectl edit configmap argocd-cm -n argocd
resource.exclusions: |
 - apiGroups:
     - cilium.io
   kinds:
     - CiliumIdentity
   clusters:
     - "*"

# helm 으로 반영시
# values 는 다음과 같이 수정하자.
configs:
  cm:
    resource.exclusions: |
     - apiGroups:
         - cilium.io
       kinds:
         - CiliumIdentity
       clusters:
         - "*"

# 반영
helm upgrade argocd argo/argo-cd \
--namespace argocd \
--values values-dev.yaml

#####

strimzi-ysoftman-kafka-cluster-ysoftman-kafka-cluster-kafka-init
라는 이름의 ClusterRoleBinding 도 실제 리소스가 있지만 argocd 에서는 out of sync 로 표시된다.
관련 논의가 있지만 아직 해결방법은 없는것 같다.

vector helm default values

# vector helm chart 를 로컬에 받고
helm fetch vector/vector
tar zxvf vector-0.35.0.tgz

# service: 설정을 변경하고자 templates/service.yaml 파일에 다음과 같이 Values.service 변수를 추가했다.
spec:
  {{- if .Values.service }}
  {{ toYaml .Values.service | nindent 2 }}
  {{- end }}

# 그리고 values-ysoftman.yaml 파일을 만들고 다음과 같이 작성했다.
service:
  type: NodePort
  externalTrafficPolicy: Cluster

# dry-run 으로 실행해 보면
helm install vector -f ./values-ysoftman.yaml . --dry-run

# 다음과 같이 values.yaml > service: 디폴트(빈값)들이 추가되는 문제가 발생했다.
# Source: vector/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: vector
... 생략 ...
spec:
  annotations: {}
  enabled: true
  externalTrafficPolicy: ""
  internalTrafficPolicy: ""
  ipFamilies: []
  ipFamilyPolicy: ""
  loadBalancerIP: ""
  ports: []
  topologyKeys: []
  type: NodePort
  externalTrafficPolicy: Cluster

# 파일에 다음과 같이 Values.service 이름이 vector 의 기본(values.yaml) service: 와 중복되어 발생한것으로 다음과 같이 이름을 다르게 하면 된다.

# templates/service.yaml
spec:
  {{- if .Values.ysoftman_service }}
  {{ toYaml .Values.ysoftman_service | nindent 2 }}
  {{- end }}

# values-ysoftman.yaml
ysoftman_service:
  type: NodePort
  externalTrafficPolicy: Cluster

prometheus etcd-client-cert

https://prometheus-community.github.io/helm-charts/ 으로 prometheus 설치시
# prometheus pod 가 실행할때 etcd-client-cert secret 을 참조하도록 설정했다.
# values.yaml  
kube-prometheus-stack:
  prometheus:
    prometheusSpec:
      replicas: 2
      secrets:
        - etcd-client-cert

# etcd-client-cert secret 생성
# k8s master 마스터 서버 접속해 아래 위치에서 3개의 파일을 가져온다.
ssh ysoftman@ysoftman-master-1.server
sudo -i
cp -v /etc/kubernetes/pki/etcd/etcd-ca.crt /home/ysoftman/
cp -v /etc/kubernetes/pki/apiserver-etcd-client.crt /home/ysoftman/
cp -v /etc/kubernetes/pki/apiserver-etcd-client.key /home/ysoftamn/
exit; exit;

# 로컬로 3개의 파일을 복사해 온다.
rsync ysoftman@ysoftman-master-1.server:/home/ysoftman/etcd-ca.crt .
rsync ysoftman@ysoftman-master-1.server:/home/ysoftman/apiserver-etcd-client.crt .
rsync ysoftman@ysoftman-master-1.server:/home/ysoftman/apiserver-etcd-client.key .

# 이 파일로 secret 을 생성한다.
kubectl create secret generic etcd-client-cert -n prometheus \
--from-literal=etcd-ca="$(cat etcd-ca.crt)" \
--from-literal=etcd-client="$(cat apiserver-etcd-client.crt)" \
--from-literal=etcd-client-key="$(cat apiserver-etcd-client.key)"