test
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: root-app
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://gitea.mathod.fr/mathod/argocd-gitops.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: apps
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: argocd
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: argocd-metrics-server
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://gitea.mathod.fr/mathod/argocd-gitops.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: manifests/metrics-server
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: argocd
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: podinfo
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/stefanprodan/podinfo.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: kustomize
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: podinfo
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: kube-prometheus-stack
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
# Using Helm chart directly from the official repository
|
||||||
|
repoURL: https://prometheus-community.github.io/helm-charts
|
||||||
|
chart: kube-prometheus-stack
|
||||||
|
targetRevision: 65.1.1
|
||||||
|
helm:
|
||||||
|
values: |
|
||||||
|
# Disable alertmanager for simplicity
|
||||||
|
alertmanager:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# Configure Prometheus
|
||||||
|
prometheus:
|
||||||
|
prometheusSpec:
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 512Mi
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 1Gi
|
||||||
|
retention: 6h
|
||||||
|
storageSpec:
|
||||||
|
volumeClaimTemplate:
|
||||||
|
spec:
|
||||||
|
accessModes: ["ReadWriteOnce"]
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 5Gi
|
||||||
|
|
||||||
|
# Configure Grafana
|
||||||
|
grafana:
|
||||||
|
enabled: true
|
||||||
|
adminPassword: admin
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 256Mi
|
||||||
|
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: monitoring
|
||||||
|
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
- ServerSideApply=true
|
||||||
34
bootstrap/argocd-values.yaml
Normal file
34
bootstrap/argocd-values.yaml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# Argo CD Server configuration
|
||||||
|
server:
|
||||||
|
# Enable and configure extensions
|
||||||
|
extensions:
|
||||||
|
enabled: true
|
||||||
|
extensionList:
|
||||||
|
- name: extension-metrics
|
||||||
|
env:
|
||||||
|
- name: EXTENSION_URL
|
||||||
|
value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.3/extension.tar.gz
|
||||||
|
- name: EXTENSION_CHECKSUM_URL
|
||||||
|
value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.3/extension_checksums.txt
|
||||||
|
|
||||||
|
# Argo CD configuration
|
||||||
|
configs:
|
||||||
|
# ConfigMap for extension configuration
|
||||||
|
cm:
|
||||||
|
extension.config: |
|
||||||
|
extensions:
|
||||||
|
- name: metrics
|
||||||
|
backend:
|
||||||
|
services:
|
||||||
|
- url: http://argocd-metrics-server.argocd.svc:9003
|
||||||
|
|
||||||
|
# Server parameters
|
||||||
|
params:
|
||||||
|
# Enable the proxy extension feature (required for metrics)
|
||||||
|
server.enable.proxy.extension: "true"
|
||||||
|
|
||||||
|
# RBAC configuration
|
||||||
|
rbac:
|
||||||
|
policy.csv: |
|
||||||
|
p, role:readonly, extensions, invoke, metrics, allow
|
||||||
|
p, role:admin, extensions, invoke, metrics, allow
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: argocd-metrics-server-configmap
|
||||||
|
data:
|
||||||
|
# Metrics for Deployments
|
||||||
|
extension.metrics.deployments: |
|
||||||
|
- name: "CPU Usage"
|
||||||
|
description: "CPU usage for the deployment"
|
||||||
|
type: "graph"
|
||||||
|
graphType: "area"
|
||||||
|
yAxisLabel: "CPU Cores"
|
||||||
|
query: 'sum(rate(container_cpu_usage_seconds_total{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}[5m])) by (pod)'
|
||||||
|
|
||||||
|
- name: "Memory Usage"
|
||||||
|
description: "Memory usage for the deployment"
|
||||||
|
type: "graph"
|
||||||
|
graphType: "area"
|
||||||
|
yAxisLabel: "Memory (MB)"
|
||||||
|
query: 'sum(container_memory_working_set_bytes{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}) by (pod) / 1024 / 1024'
|
||||||
|
|
||||||
|
- name: "Network Received"
|
||||||
|
description: "Network bytes received"
|
||||||
|
type: "graph"
|
||||||
|
graphType: "line"
|
||||||
|
yAxisLabel: "Bytes/sec"
|
||||||
|
query: 'sum(rate(container_network_receive_bytes_total{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}[5m])) by (pod)'
|
||||||
|
|
||||||
|
# Metrics for Pods
|
||||||
|
extension.metrics.pods: |
|
||||||
|
- name: "CPU Usage"
|
||||||
|
description: "CPU usage for the pod"
|
||||||
|
type: "graph"
|
||||||
|
graphType: "area"
|
||||||
|
yAxisLabel: "CPU Cores"
|
||||||
|
query: 'sum(rate(container_cpu_usage_seconds_total{namespace="{{.metadata.namespace}}", pod="{{.metadata.name}}"}[5m])) by (container)'
|
||||||
|
|
||||||
|
- name: "Memory Usage"
|
||||||
|
description: "Memory usage for the pod"
|
||||||
|
type: "graph"
|
||||||
|
graphType: "area"
|
||||||
|
yAxisLabel: "Memory (MB)"
|
||||||
|
query: 'sum(container_memory_working_set_bytes{namespace="{{.metadata.namespace}}", pod="{{.metadata.name}}"}) by (container) / 1024 / 1024'
|
||||||
|
|
||||||
|
- name: "Container Restarts"
|
||||||
|
description: "Number of container restarts"
|
||||||
|
type: "graph"
|
||||||
|
graphType: "line"
|
||||||
|
yAxisLabel: "Restarts"
|
||||||
|
query: 'kube_pod_container_status_restarts_total{namespace="{{.metadata.namespace}}", pod="{{.metadata.name}}"}'
|
||||||
|
|
||||||
|
# Prometheus connection
|
||||||
|
prometheus.url: "http://prometheus-kube-prometheus-prometheus.monitoring.svc:9090"
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: argocd-metrics-server
|
||||||
|
labels:
|
||||||
|
app: argocd-metrics-server
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 9003
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 9003
|
||||||
|
selector:
|
||||||
|
app: argocd-metrics-server
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: argocd-metrics-server
|
||||||
|
labels:
|
||||||
|
app: argocd-metrics-server
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: argocd-metrics-server
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: argocd-metrics-server
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: argocd-metrics-server
|
||||||
|
image: quay.io/argoprojlabs/argocd-extension-metrics:v1.0.3
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 9003
|
||||||
|
name: http
|
||||||
|
protocol: TCP
|
||||||
|
env:
|
||||||
|
- name: PROMETHEUS_URL
|
||||||
|
valueFrom:
|
||||||
|
configMapKeyRef:
|
||||||
|
name: argocd-metrics-server-configmap
|
||||||
|
key: prometheus.url
|
||||||
|
volumeMounts:
|
||||||
|
- name: config
|
||||||
|
mountPath: /etc/argocd-metrics-server/
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 64Mi
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
volumes:
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: argocd-metrics-server-configmap
|
||||||
|
securityContext:
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
fsGroup: 1000
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
namespace: argocd
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- configmap.yaml
|
||||||
|
- deployment.yaml
|
||||||
|
|
||||||
|
commonLabels:
|
||||||
|
app: argocd-metrics-server
|
||||||
|
app.kubernetes.io/name: argocd-metrics-server
|
||||||
|
app.kubernetes.io/component: metrics-server
|
||||||
Reference in New Issue
Block a user