Skip to content

Commit b158447

Browse files
authored
[processor/k8sattributes] Fixes running with role/rolebinding (#31673)
**Description:** This PR allows running the k8sattributes processor with a k8s role/rolebinding. This can be useful for k8s users w/o access to create clusterroles and want to enrich pods' telemetry within the scope of a namespace only. The PR also adds more comprehensive e2e tests including tests for different RBAC use cases to ensure any changes going forward do not introduce RBAC incompatibility. **Link to tracking Issue:** open-telemetry/opentelemetry-collector-contrib#14742 **Testing:** Added e2e tests **Documentation:** <Describe the documentation added.> Updated README
1 parent 431b38c commit b158447

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

e2e_test.go

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ import (
2121
"go.opentelemetry.io/collector/receiver/otlpreceiver"
2222
"go.opentelemetry.io/collector/receiver/receivertest"
2323
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
24-
"k8s.io/client-go/dynamic"
25-
"k8s.io/client-go/tools/clientcmd"
2624

2725
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest"
2826
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden"
@@ -43,9 +41,7 @@ const (
4341

4442
func TestE2E(t *testing.T) {
4543

46-
kubeConfig, err := clientcmd.BuildConfigFromFlags("", testKubeConfig)
47-
require.NoError(t, err)
48-
dynamicClient, err := dynamic.NewForConfig(kubeConfig)
44+
k8sClient, err := k8stest.NewK8sClient(testKubeConfig)
4945
require.NoError(t, err)
5046

5147
testID := uuid.NewString()[:8]
@@ -62,11 +58,11 @@ func TestE2E(t *testing.T) {
6258
}()
6359

6460
// startup collector in k8s cluster
65-
collectorObjs := k8stest.CreateCollectorObjects(t, dynamicClient, testID)
61+
collectorObjs := k8stest.CreateCollectorObjects(t, k8sClient, testID, "")
6662

6763
defer func() {
6864
for _, obj := range collectorObjs {
69-
require.NoErrorf(t, k8stest.DeleteObject(dynamicClient, obj), "failed to delete object %s", obj.GetName())
65+
require.NoErrorf(t, k8stest.DeleteObject(k8sClient, obj), "failed to delete object %s", obj.GetName())
7066
}
7167
}()
7268

@@ -125,18 +121,18 @@ func TestE2E(t *testing.T) {
125121
for _, fileName := range tc.objectFileNames {
126122
obj, err := os.ReadFile(filepath.Join(testObjectsDir, fileName))
127123
require.NoErrorf(t, err, "failed to read object file %s", fileName)
128-
newObj, err := k8stest.CreateObject(dynamicClient, obj)
124+
newObj, err := k8stest.CreateObject(k8sClient, obj)
129125
require.NoErrorf(t, err, "failed to create k8s object from file %s", fileName)
130126
testObjs = append(testObjs, newObj)
131127
}
132128
if tc.objectAction == createAndDelete {
133129
for _, obj := range testObjs {
134-
require.NoErrorf(t, k8stest.DeleteObject(dynamicClient, obj), "failed to delete object %s", obj.GetName())
130+
require.NoErrorf(t, k8stest.DeleteObject(k8sClient, obj), "failed to delete object %s", obj.GetName())
135131
}
136132
} else {
137133
defer func() {
138134
for _, obj := range testObjs {
139-
require.NoErrorf(t, k8stest.DeleteObject(dynamicClient, obj), "failed to delete object %s", obj.GetName())
135+
require.NoErrorf(t, k8stest.DeleteObject(k8sClient, obj), "failed to delete object %s", obj.GetName())
140136
}
141137
}()
142138
}

0 commit comments

Comments
 (0)