UNCLASSIFIED - NO CUI

Integrated bb-common

General MR

Summary

  • Integrated bb-common to replace static resources for network policies, authorization policies, and peer authentications
  • Removed legacy configuration settings and docs related to Tempo's UI functionality which no longer exists
  • Updated gluon

Relevant logs/screenshots

Tested using tempo-bb-common-integration BB branch

Commands and results prior to integration

kubectl get netpol -n tempo

NAME                                        POD-SELECTOR                                                          AGE
allow-in-ns-tempo-tempo                     <none>                                                                10m
allow-istiod-egress                         <none>                                                                10m
allow-sidecar-scraping                      <none>                                                                10m
default-deny-all-tempo-tempo                <none>                                                                10m
egress-dns                                  <none>                                                                10m
egress-external-services                    app.kubernetes.io/name=tempo                                          10m
egress-tempo-authservice                    <none>                                                                10m
egress-tempo-prometheus                     <none>                                                                10m
ingress-allow-kiali                         <none>                                                                10m
ingress-alloy                               app.kubernetes.io/name=tempo                                          10m
ingress-grafana                             <none>                                                                10m
ingress-tempo-prometheus-operator-metrics   app.kubernetes.io/instance=tempo-tempo,app.kubernetes.io/name=tempo   10m
ingress-tempo-zipkin                        app.kubernetes.io/name=tempo                                          10m
test-tempo-allow-egress                     helm-test=enabled                                                     10m

kubectl get ap -n tempo

NAME                       ACTION   AGE
allow-tempo-authz          ALLOW    10m
kiali-tempo-authz-policy   ALLOW    10m

kubectl get se -n tempo

NAME                            HOSTS                                                                                                                                           LOCATION        RESOLUTION   AGE
cypress-service-entries-tempo   ["registry.npmjs.org","download.cypress.io","cdn.cypress.io","repo1.dso.mil","tempo.dev.bigbang.mil","grafana.dev.bigbang.mil","grafana.com"]   MESH_EXTERNAL   DNS          10m

kubectl get pa -n tempo

NAME                  MODE     AGE
default-tempo-tempo   STRICT   10m

Commands and results post bb-common integration

kubectl get netpol -n tempo

NAME                                                                     POD-SELECTOR                   AGE
allow-egress-from-tempo-to-ns-monitoring-pod-prometheus-tcp-port-9090    app.kubernetes.io/name=tempo   2m38s
allow-ingress-to-tempo-tcp-port-3200-from-ns-kiali-pod-kiali             app.kubernetes.io/name=tempo   2m38s
allow-ingress-to-tempo-tcp-port-3200-from-ns-monitoring-pod-grafana      app.kubernetes.io/name=tempo   2m38s
allow-ingress-to-tempo-tcp-port-3200-from-ns-monitoring-pod-prometheus   app.kubernetes.io/name=tempo   2m38s
allow-ingress-to-tempo-tcp-port-4317-from-ns-alloy-pod-alloy             app.kubernetes.io/name=tempo   2m38s
allow-ingress-to-tempo-tcp-port-4317-from-ns-alloy-pod-alloy-logs        app.kubernetes.io/name=tempo   2m38s
allow-ingress-to-tempo-tcp-port-9411-from-any-ns-any-pod                 app.kubernetes.io/name=tempo   2m38s
default-egress-allow-all-in-ns                                           <none>                         2m38s
default-egress-allow-istiod                                              <none>                         2m38s
default-egress-allow-kube-dns                                            <none>                         2m38s
default-egress-deny-all                                                  <none>                         2m38s
default-ingress-allow-all-in-ns                                          <none>                         2m38s
default-ingress-allow-prometheus-to-istio-sidecar                        <none>                         2m38s
default-ingress-deny-all                                                 <none>                         2m38s

kubectl get ap -n tempo

NAME                                                                                                          ACTION   AGE
allow-ingress-to-tempo-tcp-port-3200-from-ns-kiali-with-identity-kiali-service-account                        ALLOW    2m44s
allow-ingress-to-tempo-tcp-port-3200-from-ns-monitoring-with-identity-monitoring-grafana                      ALLOW    2m43s
allow-ingress-to-tempo-tcp-port-3200-from-ns-monitoring-with-identity-monitoring-monitoring-kube-prometheus   ALLOW    2m43s
allow-ingress-to-tempo-tcp-port-4317-from-ns-alloy-with-identity-alloy-alloy-logs                             ALLOW    2m43s
allow-ingress-to-tempo-tcp-port-4317-from-ns-alloy-with-identity-alloy-alloy-operator                         ALLOW    2m43s
allow-ingress-to-tempo-tcp-port-9411-from-ns-any                                                              ALLOW    2m43s
default-authz-allow-all-in-ns                                                                                 ALLOW    2m44s
default-authz-allow-nothing                                                                                            2m44s

kubectl get se -n tempo

NAME                            HOSTS                                                                               LOCATION        RESOLUTION   AGE
cypress-service-entries-tempo   ["repo1.dso.mil","tempo.dev.bigbang.mil","grafana.dev.bigbang.mil","grafana.com"]   MESH_EXTERNAL   DNS          21m

kubectl get pa -n tempo

NAME                MODE     AGE
default-peer-auth   STRICT   2m59s

Note

Netpols for helm test now deploy as part of the helm test operation and get deleted upon completion. The egress storage netpol has been moved into the umbrella template and can be validated by installing with the following settings:

tempo:
  values:
    upstream:
      tempo:
        storage:
          trace:
            backend: s3

Since there is no actual s3 Tempo will not come up, but it validates the network policy gets created as expected

Linked Issue

issue

Upgrade Notices

Tempo is now leveraging our bb-common integration for network policies and istio-related resources. Please refer to this blog post for additional information on the integration. During this process the network policy allowing access to Authservice has been removed as it is no longer needed. A previously undiscovered bug that was allowing all TCP traffic from Grafana to Tempo has also been fixed so it now only allows traffic from Grafana to Tempo on TCP port 3200. There is also a new reusable rule that has been created in the umbrella template for storage-subnets that allows users to configure access to external storage via the values.yaml file.

Edited by Jimmy Bourque

Merge request reports

Loading