Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[kube-state-metrics] Add: Kubernetes recommanded labels and custom labels #927

Merged

Conversation

nlamirault
Copy link
Contributor

@nlamirault nlamirault commented May 3, 2021

Next of : kubernetes/kube-state-metrics#1387

Add Kubernetes recommanded labels https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/

---
# Source: kube-state-metrics/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:    
    app.kubernetes.io/name: kube-state-metrics
    app.kubernetes.io/instance: "RELEASE-NAME"
    app.kubernetes.io/component: metrics 
    app.kubernetes.io/managed-by: "Helm"
    app.kubernetes.io/version: "2.0.0"
    app.kubernetes.io/part-of: kube-state-metrics 
    helm.sh/chart: "kube-state-metrics-3.1.1"
  name: RELEASE-NAME-kube-state-metrics
  namespace: default
imagePullSecrets:
  []
---
# Source: kube-state-metrics/templates/role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/name: kube-state-metrics
    app.kubernetes.io/instance: RELEASE-NAME
    app.kubernetes.io/component: metrics 
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/version: "3.1.1"
    app.kubernetes.io/part-of: kube-state-metrics 
    helm.sh/chart: kube-state-metrics-3.1.1 
  name: RELEASE-NAME-kube-state-metrics
rules:

- apiGroups: ["certificates.k8s.io"]
  resources:
  - certificatesigningrequests
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - configmaps
  verbs: ["list", "watch"]

- apiGroups: ["batch"]
  resources:
  - cronjobs
  verbs: ["list", "watch"]

- apiGroups: ["extensions", "apps"]
  resources:
  - daemonsets
  verbs: ["list", "watch"]

- apiGroups: ["extensions", "apps"]
  resources:
  - deployments
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - endpoints
  verbs: ["list", "watch"]

- apiGroups: ["autoscaling"]
  resources:
  - horizontalpodautoscalers
  verbs: ["list", "watch"]

- apiGroups: ["extensions", "networking.k8s.io"]
  resources:
  - ingresses
  verbs: ["list", "watch"]

- apiGroups: ["batch"]
  resources:
  - jobs
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - limitranges
  verbs: ["list", "watch"]

- apiGroups: ["admissionregistration.k8s.io"]
  resources:
    - mutatingwebhookconfigurations
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - namespaces
  verbs: ["list", "watch"]

- apiGroups: ["networking.k8s.io"]
  resources:
  - networkpolicies
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - nodes
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - persistentvolumeclaims
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - persistentvolumes
  verbs: ["list", "watch"]

- apiGroups: ["policy"]
  resources:
    - poddisruptionbudgets
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - pods
  verbs: ["list", "watch"]

- apiGroups: ["extensions", "apps"]
  resources:
  - replicasets
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - replicationcontrollers
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - resourcequotas
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - secrets
  verbs: ["list", "watch"]

- apiGroups: [""]
  resources:
  - services
  verbs: ["list", "watch"]

- apiGroups: ["apps"]
  resources:
  - statefulsets
  verbs: ["list", "watch"]

- apiGroups: ["storage.k8s.io"]
  resources:
    - storageclasses
  verbs: ["list", "watch"]

- apiGroups: ["admissionregistration.k8s.io"]
  resources:
    - validatingwebhookconfigurations
  verbs: ["list", "watch"]

- apiGroups: ["storage.k8s.io"]
  resources:
    - volumeattachments
  verbs: ["list", "watch"]
---
# Source: kube-state-metrics/templates/clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:    
    app.kubernetes.io/name: kube-state-metrics
    app.kubernetes.io/instance: "RELEASE-NAME"
    app.kubernetes.io/component: metrics 
    app.kubernetes.io/managed-by: "Helm"
    app.kubernetes.io/version: "2.0.0"
    app.kubernetes.io/part-of: kube-state-metrics 
    helm.sh/chart: "kube-state-metrics-3.1.1"
  name: RELEASE-NAME-kube-state-metrics
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: RELEASE-NAME-kube-state-metrics
subjects:
- kind: ServiceAccount
  name: RELEASE-NAME-kube-state-metrics
  namespace: default
---
# Source: kube-state-metrics/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: RELEASE-NAME-kube-state-metrics
  namespace: default
  labels:    
    app.kubernetes.io/name: kube-state-metrics
    app.kubernetes.io/instance: "RELEASE-NAME"
    app.kubernetes.io/component: metrics 
    app.kubernetes.io/managed-by: "Helm"
    app.kubernetes.io/version: "2.0.0"
    app.kubernetes.io/part-of: kube-state-metrics 
    helm.sh/chart: "kube-state-metrics-3.1.1"
  annotations:
    prometheus.io/scrape: 'true'
spec:
  type: "ClusterIP"
  ports:
  - name: "http"
    protocol: TCP
    port: 8080
    targetPort: 8080
  
  selector:
    app.kubernetes.io/name: kube-state-metrics
    app.kubernetes.io/instance: RELEASE-NAME
---
# Source: kube-state-metrics/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: RELEASE-NAME-kube-state-metrics
  namespace: default
  labels:    
    app.kubernetes.io/name: kube-state-metrics
    app.kubernetes.io/instance: "RELEASE-NAME"
    app.kubernetes.io/component: metrics 
    app.kubernetes.io/managed-by: "Helm"
    app.kubernetes.io/version: "2.0.0"
    app.kubernetes.io/part-of: kube-state-metrics 
    helm.sh/chart: "kube-state-metrics-3.1.1"
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: kube-state-metrics
  replicas: 1
  template:
    metadata:
      labels:        
        app.kubernetes.io/name: kube-state-metrics
        app.kubernetes.io/instance: "RELEASE-NAME"
        app.kubernetes.io/component: metrics 
        app.kubernetes.io/managed-by: "Helm"
        app.kubernetes.io/version: "2.0.0"
        app.kubernetes.io/part-of: kube-state-metrics 
        helm.sh/chart: "kube-state-metrics-3.1.1"
    spec:
      hostNetwork: false
      serviceAccountName: RELEASE-NAME-kube-state-metrics
      securityContext:
        fsGroup: 65534
        runAsGroup: 65534
        runAsUser: 65534
      containers:
      - name: kube-state-metrics
        args:


        - --resources=certificatesigningrequests


        - --resources=configmaps


        - --resources=cronjobs


        - --resources=daemonsets


        - --resources=deployments


        - --resources=endpoints


        - --resources=horizontalpodautoscalers


        - --resources=ingresses


        - --resources=jobs


        - --resources=limitranges


        - --resources=mutatingwebhookconfigurations


        - --resources=namespaces


        - --resources=networkpolicies


        - --resources=nodes


        - --resources=persistentvolumeclaims


        - --resources=persistentvolumes


        - --resources=poddisruptionbudgets


        - --resources=pods


        - --resources=replicasets


        - --resources=replicationcontrollers


        - --resources=resourcequotas


        - --resources=secrets


        - --resources=services


        - --resources=statefulsets


        - --resources=storageclasses


        - --resources=validatingwebhookconfigurations



        - --resources=volumeattachments





        - --telemetry-port=8081
        imagePullPolicy: IfNotPresent
        image: "k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.0.0"
        ports:
        - containerPort: 8080
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 5
          timeoutSeconds: 5
        readinessProbe:
          httpGet:
            path: /
            port: 8080
          initialDelaySeconds: 5
          timeoutSeconds: 5

What this PR does / why we need it:

Which issue this PR fixes

(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

  • fixes #

Special notes for your reviewer:

Checklist

  • DCO signed
  • Chart Version bumped
  • Title of the PR starts with chart name (e.g. [prometheus-couchdb-exporter])

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
@nlamirault nlamirault changed the title [kube-state-metrics] Add: Kubernetes recommanded labels [kube-state-metrics] Add: Kubernetes recommanded labels and custom labels May 11, 2021
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Copy link
Member

@monotek monotek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please rebase / update version.

@stale
Copy link

stale bot commented Aug 23, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Any further update will cause the issue/pull request to no longer be considered stale. Thank you for your contributions.

@stale stale bot removed the lifecycle/stale label Aug 23, 2021
@pierluigilenoci
Copy link
Contributor

So... are we ready to go? 🚀 👍🏻

@TomUdr
Copy link

TomUdr commented Sep 15, 2021

For me this issue seems to very serious because it prevents from effective monitoring and alerting k8s resources based on their labels. I wonder why this doesn't have so much attention if the solution was done in May 2021, but still not being merged and released. Maybe community is not using this helm chart?

monotek
monotek previously approved these changes Sep 21, 2021
nlamirault and others added 3 commits September 22, 2021 20:57
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
@zanhsieh zanhsieh merged commit 0a55b73 into prometheus-community:main Oct 25, 2021
@pierluigilenoci
Copy link
Contributor

MERGED!!! 🥳 🎆

aslafy-z pushed a commit to aslafy-z/helm-charts-2 that referenced this pull request Jan 24, 2022
…bels (prometheus-community#927)

* Add: Kubernetes recommanded labels

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: do not indent custom labels

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: template

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: clean code

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: clean code

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: clean code

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: clean code

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: clean code

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: role templating

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: typo

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Update: bump Chart version

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Update: Helm 3.6 recommendation

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Add: documentation

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: typo

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Fix: typo

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Update: bump chart version

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Update: major version

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

* Update: major version

Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>

Co-authored-by: André Bauer <monotek@users.noreply.github.com>
Signed-off-by: GitHub <noreply@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants