diff --git a/README.md b/README.md index 981b048..7f049c2 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Please find the Documentation in the [Wiki](https://git.ar21.de/yolokube/masterp | App | Status | |-----|--------| +| APT Version Exporter | [![App Status](https://argo.services.yolokube.de/api/badge?name=apt-version-exporter)](https://argo.services.yolokube.de/applications/apt-version-exporter) ![Gitea Last Commit](https://shields.ar21.de/gitea/last-commit/yolokube/core-deployments?path=apt-version-exporter&display_timestamp=author&gitea_url=https%3A%2F%2Fgit.ar21.de) | | ArgoCD | [![App Status](https://argo.services.yolokube.de/api/badge?name=argocd)](https://argo.services.yolokube.de/applications/argocd) ![Gitea Last Commit](https://shields.ar21.de/gitea/last-commit/yolokube/core-deployments?path=argo&display_timestamp=author&gitea_url=https%3A%2F%2Fgit.ar21.de) ![Website](https://shields.ar21.de/website?url=https%3A%2F%2Fargo.services.yolokube.de%2F&up_message=online&up_color=green&down_message=offline&down_color=red&style=flat&link=https%3A%2F%2Fargo.services.yolokube.de%2F) | | Authentik | [![App Status](https://argo.services.yolokube.de/api/badge?name=authentik)](https://argo.services.yolokube.de/applications/authentik) ![Gitea Last Commit](https://shields.ar21.de/gitea/last-commit/yolokube/core-deployments?path=authentik&display_timestamp=author&gitea_url=https%3A%2F%2Fgit.ar21.de) | | Certmanager | [![App Status](https://argo.services.yolokube.de/api/badge?name=cert-manager)](https://argo.services.yolokube.de/applications/cert-manager) ![Gitea Last Commit](https://shields.ar21.de/gitea/last-commit/yolokube/core-deployments?path=cert-manager&display_timestamp=author&gitea_url=https%3A%2F%2Fgit.ar21.de) | diff --git a/app-files/core-deployments.yaml b/app-files/core-deployments.yaml index 923c0e4..1af9e07 100644 --- a/app-files/core-deployments.yaml +++ b/app-files/core-deployments.yaml @@ -480,3 +480,24 @@ spec: - CreateNamespace=true automated: prune: false +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: apt-version-exporter + namespace: argocd +spec: + project: default + source: + repoURL: https://git.ar21.de/yolokube/core-deployments.git + targetRevision: HEAD + path: apt-version-exporter + destination: + server: https://kubernetes.default.svc + namespace: apt-version-exporter + syncPolicy: + syncOptions: + - CreateNamespace=true + automated: + selfHeal: true + prune: true diff --git a/apt-version-exporter/daemonset.yaml b/apt-version-exporter/daemonset.yaml new file mode 100644 index 0000000..3c223df --- /dev/null +++ b/apt-version-exporter/daemonset.yaml @@ -0,0 +1,49 @@ +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + labels: + app: apt-version-exporter + app.kubernetes.io/instance: apt-version-exporter + app.kubernetes.io/name: apt-version-exporter + name: apt-version-exporter + namespace: apt-version-exporter +spec: + selector: + matchLabels: + app: apt-version-exporter + template: + metadata: + labels: + app: apt-version-exporter + app.kubernetes.io/instance: apt-version-exporter + app.kubernetes.io/name: apt-version-exporter + spec: + containers: + - env: + - name: AVE_INTERVAL + value: 2h + - name: AVE_ADDRESS + value: ":9191" + image: git.ar21.de/yolokube/go-apt-version-exporter:latest + imagePullPolicy: IfNotPresent + name: apt-version-exporter + ports: + - containerPort: 9191 + name: http-metrics + protocol: TCP + resources: + limits: + cpu: 300m + memory: 128Mi + requests: + cpu: 200m + memory: 32Mi + serviceAccountName: apt-version-exporter-service-account + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/master + operator: Exists + - effect: NoSchedule + key: node-role.kubernetes.io/control-plane + operator: Exists diff --git a/apt-version-exporter/kustomization.yaml b/apt-version-exporter/kustomization.yaml new file mode 100644 index 0000000..1798200 --- /dev/null +++ b/apt-version-exporter/kustomization.yaml @@ -0,0 +1,13 @@ +resources: +- ./namespace.yaml +- ./serviceaccount.yaml +- ./daemonset.yaml +- ./service.yaml +- ./servicemonitor.yaml +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +images: +- name: git.ar21.de/yolokube/go-apt-version-exporter + newName: git.ar21.de/yolokube/go-apt-version-exporter + newTag: "2" +namespace: apt-version-exporter diff --git a/apt-version-exporter/namespace.yaml b/apt-version-exporter/namespace.yaml new file mode 100644 index 0000000..40c09ec --- /dev/null +++ b/apt-version-exporter/namespace.yaml @@ -0,0 +1,8 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + labels: + app.kubernetes.io/instance: apt-version-exporter + prometheus: yolokube + name: apt-version-exporter diff --git a/apt-version-exporter/service.yaml b/apt-version-exporter/service.yaml new file mode 100644 index 0000000..417d9e9 --- /dev/null +++ b/apt-version-exporter/service.yaml @@ -0,0 +1,20 @@ +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: apt-version-exporter + app.kubernetes.io/instance: apt-version-exporter + app.kubernetes.io/name: apt-version-exporter + name: apt-version-exporter + namespace: apt-version-exporter +spec: + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 9191 + protocol: TCP + targetPort: 9191 + selector: + app: apt-version-exporter + type: ClusterIP diff --git a/apt-version-exporter/serviceaccount.yaml b/apt-version-exporter/serviceaccount.yaml new file mode 100644 index 0000000..67fc9a6 --- /dev/null +++ b/apt-version-exporter/serviceaccount.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: apt-version-exporter + app.kubernetes.io/name: apt-version-exporter + name: apt-version-exporter-service-account + namespace: apt-version-exporter diff --git a/apt-version-exporter/servicemonitor.yaml b/apt-version-exporter/servicemonitor.yaml new file mode 100644 index 0000000..37e4cdc --- /dev/null +++ b/apt-version-exporter/servicemonitor.yaml @@ -0,0 +1,28 @@ +--- +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + labels: + app: apt-version-exporter + app.kubernetes.io/instance: apt-version-exporter + app.kubernetes.io/name: apt-version-exporter + name: apt-version-exporter-servicemonitor + namespace: apt-version-exporter +spec: + attachMetadata: + node: false + endpoints: + - interval: 2h + path: /metrics + port: http-metrics + relabelings: + - action: replace + sourceLabels: + - __meta_kubernetes_endpoint_node_name + targetLabel: node + scheme: http + jobLabel: jobLabel + selector: + matchLabels: + app.kubernetes.io/instance: apt-version-exporter + app.kubernetes.io/name: apt-version-exporter