Skip to content

Commit 9e2060b

Browse files
committed
Add e2e test
Signed-off-by: Pavol Loffay <[email protected]>
1 parent 08af1a1 commit 9e2060b

13 files changed

+281
-12
lines changed

pkg/instrumentation/exporter.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ func configureExporter(exporter v1alpha1.Exporter, pod *corev1.Pod, container *c
3838
return
3939
}
4040
// the name cannot be longer than 63 characters
41-
secretVolumeName := naming.Truncate("%s-secret-%s", 63, volumeName, exporter.TLS.SecretName)
41+
secretVolumeName := naming.Truncate("otel-auto-secret-%s", 63, exporter.TLS.SecretName)
4242
secretMountPath := fmt.Sprintf("/otel-auto-instrumentation-secret-%s", exporter.TLS.SecretName)
43-
configMapVolumeName := naming.Truncate("%s-configmap-%s", 63, volumeName, exporter.TLS.ConfigMapName)
43+
configMapVolumeName := naming.Truncate("otel-auto-configmap-%s", 63, exporter.TLS.ConfigMapName)
4444
configMapMountPath := fmt.Sprintf("/otel-auto-instrumentation-configmap-%s", exporter.TLS.ConfigMapName)
4545

4646
if exporter.TLS.CA != "" {

pkg/instrumentation/exporter_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func TestExporter(t *testing.T) {
4444
Spec: corev1.PodSpec{
4545
Volumes: []corev1.Volume{
4646
{
47-
Name: "opentelemetry-auto-instrumentation-secret-my-certs",
47+
Name: "otel-auto-secret-my-certs",
4848
VolumeSource: corev1.VolumeSource{
4949
Secret: &corev1.SecretVolumeSource{
5050
SecretName: "my-certs",
@@ -56,7 +56,7 @@ func TestExporter(t *testing.T) {
5656
{
5757
VolumeMounts: []corev1.VolumeMount{
5858
{
59-
Name: "opentelemetry-auto-instrumentation-secret-my-certs",
59+
Name: "otel-auto-secret-my-certs",
6060
ReadOnly: true,
6161
MountPath: "/otel-auto-instrumentation-secret-my-certs",
6262
},
@@ -100,15 +100,15 @@ func TestExporter(t *testing.T) {
100100
Spec: corev1.PodSpec{
101101
Volumes: []corev1.Volume{
102102
{
103-
Name: "opentelemetry-auto-instrumentation-secret-my-certs",
103+
Name: "otel-auto-secret-my-certs",
104104
VolumeSource: corev1.VolumeSource{
105105
Secret: &corev1.SecretVolumeSource{
106106
SecretName: "my-certs",
107107
},
108108
},
109109
},
110110
{
111-
Name: "opentelemetry-auto-instrumentation-configmap-ca-bundle",
111+
Name: "otel-auto-configmap-ca-bundle",
112112
VolumeSource: corev1.VolumeSource{
113113
ConfigMap: &corev1.ConfigMapVolumeSource{
114114
LocalObjectReference: corev1.LocalObjectReference{
@@ -122,12 +122,12 @@ func TestExporter(t *testing.T) {
122122
{
123123
VolumeMounts: []corev1.VolumeMount{
124124
{
125-
Name: "opentelemetry-auto-instrumentation-secret-my-certs",
125+
Name: "otel-auto-secret-my-certs",
126126
ReadOnly: true,
127127
MountPath: "/otel-auto-instrumentation-secret-my-certs",
128128
},
129129
{
130-
Name: "opentelemetry-auto-instrumentation-configmap-ca-bundle",
130+
Name: "otel-auto-configmap-ca-bundle",
131131
ReadOnly: true,
132132
MountPath: "/otel-auto-instrumentation-configmap-ca-bundle",
133133
},

pkg/instrumentation/podmutator_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -158,15 +158,15 @@ func TestMutatePod(t *testing.T) {
158158
},
159159
},
160160
{
161-
Name: "opentelemetry-auto-instrumentation-secret-my-certs",
161+
Name: "otel-auto-secret-my-certs",
162162
VolumeSource: corev1.VolumeSource{
163163
Secret: &corev1.SecretVolumeSource{
164164
SecretName: "my-certs",
165165
},
166166
},
167167
},
168168
{
169-
Name: "opentelemetry-auto-instrumentation-configmap-my-ca-bundle",
169+
Name: "otel-auto-configmap-my-ca-bundle",
170170
VolumeSource: corev1.VolumeSource{
171171
ConfigMap: &corev1.ConfigMapVolumeSource{
172172
LocalObjectReference: corev1.LocalObjectReference{
@@ -290,12 +290,12 @@ func TestMutatePod(t *testing.T) {
290290
MountPath: javaInstrMountPath,
291291
},
292292
{
293-
Name: "opentelemetry-auto-instrumentation-secret-my-certs",
293+
Name: "otel-auto-secret-my-certs",
294294
ReadOnly: true,
295295
MountPath: "/otel-auto-instrumentation-secret-my-certs",
296296
},
297297
{
298-
Name: "opentelemetry-auto-instrumentation-configmap-my-ca-bundle",
298+
Name: "otel-auto-configmap-my-ca-bundle",
299299
ReadOnly: true,
300300
MountPath: "/otel-auto-instrumentation-configmap-my-ca-bundle",
301301
},
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.crt
2+
*.key
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
apiVersion: opentelemetry.io/v1beta1
2+
kind: OpenTelemetryCollector
3+
metadata:
4+
name: simplest
5+
spec:
6+
volumeMounts:
7+
- name: certs
8+
mountPath: /certs
9+
- name: certs-ca
10+
mountPath: /certs-ca
11+
volumes:
12+
- name: certs
13+
secret:
14+
secretName: server-certs
15+
- name: certs-ca
16+
configMap:
17+
name: ca
18+
config:
19+
receivers:
20+
otlp:
21+
protocols:
22+
grpc:
23+
endpoint: 0.0.0.0:4317
24+
tls:
25+
cert_file: /certs/tls.crt
26+
key_file: /certs/tls.key
27+
client_ca_file: /certs-ca/ca.crt
28+
http:
29+
endpoint: 0.0.0.0:4318
30+
tls:
31+
cert_file: /certs/tls.crt
32+
key_file: /certs/tls.key
33+
client_ca_file: /certs-ca/ca.crt
34+
processors:
35+
36+
exporters:
37+
debug:
38+
39+
service:
40+
pipelines:
41+
traces:
42+
receivers: [otlp]
43+
exporters: [debug]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: opentelemetry.io/v1alpha1
2+
kind: Instrumentation
3+
metadata:
4+
name: java
5+
spec:
6+
exporter:
7+
endpoint: https://simplest-collector:4317
8+
tls:
9+
secretName: client-certs
10+
configMapName: ca
11+
ca: ca.crt
12+
cert: tls.crt
13+
key: tls.key
14+
propagators:
15+
- tracecontext
16+
- baggage
17+
sampler:
18+
type: parentbased_traceidratio
19+
argument: "1"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
annotations:
5+
instrumentation.opentelemetry.io/inject-java: "true"
6+
labels:
7+
app: my-java
8+
spec:
9+
containers:
10+
- env:
11+
- name: OTEL_NODE_IP
12+
valueFrom:
13+
fieldRef:
14+
fieldPath: status.hostIP
15+
- name: OTEL_POD_IP
16+
valueFrom:
17+
fieldRef:
18+
fieldPath: status.podIP
19+
- name: JAVA_TOOL_OPTIONS
20+
value: ' -javaagent:/otel-auto-instrumentation-java/javaagent.jar'
21+
- name: OTEL_SERVICE_NAME
22+
value: my-java
23+
- name: OTEL_EXPORTER_OTLP_ENDPOINT
24+
value: https://simplest-collector:4317
25+
- name: OTEL_EXPORTER_OTLP_CERTIFICATE
26+
value: /otel-auto-instrumentation-configmap-ca/ca.crt
27+
- name: OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE
28+
value: /otel-auto-instrumentation-secret-client-certs/tls.crt
29+
- name: OTEL_EXPORTER_OTLP_CLIENT_KEY
30+
value: /otel-auto-instrumentation-secret-client-certs/tls.key
31+
- name: OTEL_RESOURCE_ATTRIBUTES_POD_NAME
32+
valueFrom:
33+
fieldRef:
34+
apiVersion: v1
35+
fieldPath: metadata.name
36+
- name: OTEL_RESOURCE_ATTRIBUTES_NODE_NAME
37+
valueFrom:
38+
fieldRef:
39+
apiVersion: v1
40+
fieldPath: spec.nodeName
41+
- name: OTEL_PROPAGATORS
42+
value: tracecontext,baggage
43+
- name: OTEL_TRACES_SAMPLER
44+
value: parentbased_traceidratio
45+
- name: OTEL_TRACES_SAMPLER_ARG
46+
value: "1"
47+
- name: OTEL_RESOURCE_ATTRIBUTES
48+
name: myapp
49+
volumeMounts:
50+
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
51+
readOnly: true
52+
- mountPath: /otel-auto-instrumentation-java
53+
name: opentelemetry-auto-instrumentation-java
54+
- mountPath: /otel-auto-instrumentation-secret-client-certs
55+
name: opentelemetry-auto-instrumentation-secret-client-certs
56+
readOnly: true
57+
- mountPath: /otel-auto-instrumentation-configmap-ca
58+
name: opentelemetry-auto-instrumentation-configmap-ca
59+
readOnly: true
60+
initContainers:
61+
- name: opentelemetry-auto-instrumentation-java
62+
status:
63+
containerStatuses:
64+
- name: myapp
65+
ready: true
66+
started: true
67+
initContainerStatuses:
68+
- name: opentelemetry-auto-instrumentation-java
69+
ready: true
70+
phase: Running
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: my-java
5+
spec:
6+
selector:
7+
matchLabels:
8+
app: my-java
9+
replicas: 1
10+
template:
11+
metadata:
12+
labels:
13+
app: my-java
14+
annotations:
15+
instrumentation.opentelemetry.io/inject-java: "true"
16+
spec:
17+
securityContext:
18+
runAsUser: 1000
19+
runAsGroup: 3000
20+
fsGroup: 3000
21+
containers:
22+
- name: myapp
23+
image: ghcr.io/open-telemetry/opentelemetry-operator/e2e-test-app-java:main
24+
securityContext:
25+
allowPrivilegeEscalation: false
26+
capabilities:
27+
drop: ["ALL"]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
apiVersion: v1
2+
data:
3+
ca.crt: |
4+
-----BEGIN CERTIFICATE-----
5+
MIID3zCCAsegAwIBAgIUbgTamPDD9mF7SzjykOtjZ6eOJygwDQYJKoZIhvcNAQEL
6+
BQAwfjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
7+
DU1vdW50YWluIFZpZXcxGjAYBgNVBAoMEVlvdXIgT3JnYW5pemF0aW9uMRIwEAYD
8+
VQQLDAlZb3VyIFVuaXQxEjAQBgNVBAMMCWxvY2FsaG9zdDAgFw0yNDEwMTAxMjQw
9+
MTFaGA8yMDUxMDMxMzEyNDAxMVowfjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh
10+
bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxGjAYBgNVBAoMEVlvdXIg
11+
T3JnYW5pemF0aW9uMRIwEAYDVQQLDAlZb3VyIFVuaXQxEjAQBgNVBAMMCWxvY2Fs
12+
aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMax8x9QrIB924Tn
13+
J+GhOsvEU6DDTbntLS8rXy7ePeCrUgjh+E3ThzvdZFqqx8ffVmrDVd8SF9TabXWC
14+
j4Bytyv1AxBN8+PviXjyDeF5qSYEzh9K9poJCnTPOXZcToEna0Q5Po41fFY/M5QL
15+
7YHBrlc4rJKd+CJmQ0bjUj1OjG0NBT2Xm0rU1o92+73CMb//ADd8XkqDunHMfILe
16+
wyWDiTbXsgXuh62cdmQyAL98xH0ghSrGYM2KA/F9FvD51B2+CDs2YwET4IsRTAt+
17+
9nLJpjrN7o+lofnhGWy88wPwlzJZeMP3oyna2iVlemXXYZeYXv2uRN6DCLUaamXT
18+
sy2sawECAwEAAaNTMFEwHQYDVR0OBBYEFI7foDRaBz788AJJcAo0wC422LDUMB8G
19+
A1UdIwQYMBaAFI7foDRaBz788AJJcAo0wC422LDUMA8GA1UdEwEB/wQFMAMBAf8w
20+
DQYJKoZIhvcNAQELBQADggEBAIyVPNo2vsiRoqeJjaDCUSJFzop4ykdQOsOUMeJT
21+
UqiJvH87unmEm50QgGOwsSxYPZkaPosxjnIFs9lVXixIcETtqbb8DT2AU9muDJ4o
22+
2p8tYBD/4jTN0I6waEpsubMwz+U4llxyfCG0UK3/6kpFwi8/723i8LwzynwkMiki
23+
gtAPGmo1QwMFW/2w24l/+Uo4dhrq3GpuV2qBwyYc04z88abvAzRy/wIdw0IC4DiO
24+
nNNN1SsjAeN+wp1dm0ohDm4z5d60O9CiTtggizzONJ8tln9SkyN6fCvpArgp9xxD
25+
vChKkZiGSJlRoql1k8nRvHBaPZ9e3L8MEw7LgrkPSgleaNI=
26+
-----END CERTIFICATE-----
27+
kind: ConfigMap
28+
metadata:
29+
creationTimestamp: null
30+
name: ca
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
2+
apiVersion: chainsaw.kyverno.io/v1alpha1
3+
kind: Test
4+
metadata:
5+
creationTimestamp: null
6+
name: instrumentation-java
7+
spec:
8+
steps:
9+
- name: step-00
10+
try:
11+
# In OpenShift, when a namespace is created, all necessary SCC annotations are automatically added. However, if a namespace is created using a resource file with only selected SCCs, the other auto-added SCCs are not included. Therefore, the UID-range and supplemental groups SCC annotations must be set after the namespace is created.
12+
- command:
13+
entrypoint: kubectl
14+
args:
15+
- annotate
16+
- namespace
17+
- ${NAMESPACE}
18+
- openshift.io/sa.scc.uid-range=1000/1000
19+
- --overwrite
20+
- command:
21+
entrypoint: kubectl
22+
args:
23+
- annotate
24+
- namespace
25+
- ${NAMESPACE}
26+
- openshift.io/sa.scc.supplemental-groups=3000/3000
27+
- --overwrite
28+
- apply:
29+
file: ca.yaml
30+
- apply:
31+
file: client-secret.yaml
32+
- apply:
33+
file: server-secret.yaml
34+
- apply:
35+
file: 00-install-collector.yaml
36+
- apply:
37+
file: 00-install-instrumentation.yaml
38+
- name: step-01
39+
try:
40+
- apply:
41+
file: 01-install-app.yaml
42+
- assert:
43+
file: 01-assert.yaml
44+
catch:
45+
- podLogs:
46+
selector: app=my-java
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: v1
2+
data:
3+
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ2VENDQXRHZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREIrTVFzd0NRWURWUVFHRXdKVlV6RVQKTUJFR0ExVUVDQXdLUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnd3TlRXOTFiblJoYVc0Z1ZtbGxkekVhTUJnRwpBMVVFQ2d3UldXOTFjaUJQY21kaGJtbDZZWFJwYjI0eEVqQVFCZ05WQkFzTUNWbHZkWElnVlc1cGRERVNNQkFHCkExVUVBd3dKYkc5allXeG9iM04wTUNBWERUSTBNVEF4TURFeU5EQXhNVm9ZRHpJd05URXdNekV6TVRJME1ERXgKV2pDQm1qRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdNQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjTQpEVTF2ZFc1MFlXbHVJRlpwWlhjeEdqQVlCZ05WQkFvTUVWbHZkWElnVDNKbllXNXBlbUYwYVc5dU1SSXdFQVlEClZRUUxEQWxaYjNWeUlGVnVhWFF4R2pBWUJnTlZCQU1NRVhOMll5NWpiSFZ6ZEdWeUxteHZZMkZzTVJJd0VBWUQKVlFRRERBbHNiMk5oYkdodmMzUXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDeApNSzljZDgvb0tHL0FGaTZUS2tsYmNzdlNSS0dTQUkvU2NSNVJQU3FoVW5sQ1NITEhpdXU0TDhSS202RGhGekVaCngvVVppSlREU3BWTllKcHpzZ1B5YkxWU1NQL2k5SDVqWGc3NW5MbUNUNmtRYWV5NG5EUjBZMEp3ZkdaaDB0eWwKMnpMMUlZdnVCYkZQTjMwRVp0bE82WVN3eWtqYjMwcjl3eFhrS1lsMFlCcEJFbkpqYyt5SW44OW52amNtTHgvVApkd3JPTlNXc2QzdXJpdXJNMWFWQlFjd09tMG8rMG9aVFdJY2daa2hPM0cvV29uZHBnSVl2OWF6dWYrL2craWs1ClQwZXBQR3RJSUsrajNqN3lGb3lkMFVONmprb2hyclV1bUFZRmF5UkdkRjhxNzc5dXIxZ0hIcXozRkE0YVY3aEoKd2JWNTNLV0ZCb2hLZEtqQkdVcHBBZ01CQUFHalV6QlJNQjBHQTFVZERnUVdCQlFhK2NpYTZvaS9RenhtZm43RgpiQnhOWTF0bXpEQWZCZ05WSFNNRUdEQVdnQlNPMzZBMFdnYysvUEFDU1hBS05NQXVOdGl3MURBUEJnTlZIUk1CCkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ0xvYTFIWnd5aGRQMyt4cXZYUzN5Z0FlbDAKMTdXWEpuM0FocndsajRxUFpvR2NrT0FYY1RoYm9ZaExITnV1ZVpPRkpIWFd4dU5lZDR2Y2xONEVocFdrWVRZTApodUtDN1IvVFVXVnAxMnh1SzNsdTBMZ3ZacUQ5bW05bTlXUW02eVJ5dmZCT0JBc3BLYXdtd0ljS0NLa3RCUnRpClRBaWxxNy9zOVZKRnFtSWNWWEg5bGtIaWNBMUROUjhMc2JSUWJtMUZOSCt4eGd1bTd6cURJbGZlZzhFMkg3WVIKVnRpNXZmZmRUUHVqZHlGaWZJbHR0cmw0MThwVDNVWEJ3UWFGRkVJSHlFdjlDamI5RFRMWDMrTDdlaWVYdXNrcgpxUkZzVjFIa3Arc1IwMTVNckxpUU9uOThjYUlKcG4yN3JOaU9GeVU2b3R3eTR0WGtmd0RTNlJLMkV5T24KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
4+
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ3hNSzljZDgvb0tHL0EKRmk2VEtrbGJjc3ZTUktHU0FJL1NjUjVSUFNxaFVubENTSExIaXV1NEw4UkttNkRoRnpFWngvVVppSlREU3BWTgpZSnB6c2dQeWJMVlNTUC9pOUg1alhnNzVuTG1DVDZrUWFleTRuRFIwWTBKd2ZHWmgwdHlsMnpMMUlZdnVCYkZQCk4zMEVadGxPNllTd3lramIzMHI5d3hYa0tZbDBZQnBCRW5KamMreUluODludmpjbUx4L1Rkd3JPTlNXc2QzdXIKaXVyTTFhVkJRY3dPbTBvKzBvWlRXSWNnWmtoTzNHL1dvbmRwZ0lZdjlhenVmKy9nK2lrNVQwZXBQR3RJSUsragozajd5Rm95ZDBVTjZqa29ocnJVdW1BWUZheVJHZEY4cTc3OXVyMWdISHF6M0ZBNGFWN2hKd2JWNTNLV0ZCb2hLCmRLakJHVXBwQWdNQkFBRUNnZ0VBQ2ozZzZQbnc2R3BMN3FEKzcxa3luOGlqeTRNcTNwNzRob2FzejFwM0tCZDEKdEZVdWlKRDQvUzYwOXh0YlFoOXp6UVJ2NEVVSUtqM3U5dEpydUY1cUF0TEhRVVZyRmFjaHEyU0YvanRtNy9JTgpvNG45THVlSDB2d09IS1V5eXNVNWVwUmxYb3kzbUpvTXpMZDRSYTlITU1hU2VhQ0dTUlUxUndrd3hGSjZwRGExCml2am1neXZJRkp5L3RWMGxQSStUWHpnRzdzdkI1Y01CZDFVNjJXN2VkNDBDQWF6bmg1R09FZHZ1YmFaYmZmSWsKZ2huZ0N0ak5EU0p1Rk5ma1ZXdWNnTmErejVFK2dFYjZBdHJBMEhtZEtVR1V2UkRrNUhiVGZJR09ka0hzcnF5UApSSlk0WndFcEFxMWZhY2FxcWVwMXZsVU5vSmNNTVJhc29VOTZGU0lzelFLQmdRRFpCRFBUa0lQeFFNYXF1c3lDCmw5UkpRVy9OZGpuaDl3enRwOUhYWXNTcUEyU3VQQWVPMGdpWWdBOC9MZUpPTFhYelc0dWp2blhLcENveUNiQ3oKc0IvUm9MeTkrWENiODIzdDlKSTJvczZpbFhGbUo4S21OTUlQdExHVG82T1RJNlNseUNJMUFHRzdtdkVhVWY2SQpmanJaL25pY0c0Tlo5TU5rNVg0M2J5UjUzUUtCZ1FEUkJRU3VNWlNyVFFTMGpWbFZQaGxWdHRhV29vbTE5cFRjCmpjYS9vRTZ0Z2RRb2dUalVEZDlDRmtJZ1VxYmNpYlo0ZitnUmhHNHF4VkxwMDBxR0JLWFdYOXlBQTBtMmpNa3MKZkFDbTdZbFNvTElLNkY2M0FuWk9Kck5ETWYyejd1WWthWDBQRk4rTXZsLzRiQTFYMTFEcFRSdG4vL2QyLzBuMwpTeW1LWnVJWC9RS0JnRkh5TjB1OU4wVmpLMkdPdGVqZVFpZ0RVSjlwOUVOeVVXeHdRVm11andxUHkzWExieU1zCkJsam5pbHBXRGkxdEZ5djB0bzczUFcxdWZneDFBa2RueXl3U0lSTXZYS2xXeTN6ZUxGUDdPRUhHWXBLcmt1SEYKN0QyWUFySDRTYTBtK1dZc1kxWldOWkZzMlh3UjJDWmNYQWF6QTRJWEZZdGpWR0VHRTVvRkd1WDFBb0dBTTVXWAplQjRJWU5aYktPd1JkZllqYm9IM0o2bnBicHp5VkJReFRxMlRmVUtqUjNQTXdKakQxcDJEcUZKOWw4UHM0b1ErCms4UXBKQ2thczFaUCtBOUJsa3lHTUptZklZeFJRY2RBcWZISmlEamNkOUN0UDJFK0xUOWowbHVPRDFBUVFFQkEKZXU1ZDFYQk9ZeExYb0N3bGJjNTN5d3ppMTkxZE5jaTQ4YzArVTBrQ2dZRUF5eXdIYkcxOUd4dlNxZXNON2JCQgp6Yy8zYm1qczJocjMvYUxoQWUzMDZUbEdRUkg3Y3lCYzFpR2ZONTF0UTVqV01ZRHg1UndBMmNhUEwwcnl6REhmCjg0SktJeW1pVDB2ckFYRFN2bEorK21BVG1BQnNLcGpSVnpKWTJlVHFqNGQ1NUgyOUdudTVPVUtpMDY1Y2c5WEUKbVIrQ1o5Y1FqN212MDNVbW45MjVJWjQ9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
5+
kind: Secret
6+
metadata:
7+
creationTimestamp: null
8+
name: client-certs
9+
type: kubernetes.io/tls
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex
4+
5+
# CA key and cert
6+
openssl req -new -nodes -x509 -days 9650 -keyout ca.key -out ca.crt -subj "/C=US/ST=California/L=Mountain View/O=Your Organization/OU=Your Unit/CN=localhost"
7+
# Server
8+
openssl req -new -nodes -x509 -CA ca.crt -CAkey ca.key -days 9650 -set_serial 01 -keyout server.key -out server.crt -subj "/C=US/ST=California/L=Mountain View/O=Your Organization/OU=Your Unit/CN=svc.cluster.local/CN=localhost" -addext "subjectAltName = DNS:simplest-collector,DNS:*.tracing-system.svc.cluster.local,DNS:localhost"
9+
# Client
10+
openssl req -new -nodes -x509 -CA ca.crt -CAkey ca.key -days 9650 -set_serial 01 -keyout client.key -out client.crt -subj "/C=US/ST=California/L=Mountain View/O=Your Organization/OU=Your Unit/CN=svc.cluster.local/CN=localhost"
11+
12+
kubectl create configmap ca --from-file=ca.crt=ca.crt -o yaml --dry-run=client > ca.yaml
13+
kubectl create secret tls server-certs --cert=server.crt --key=server.key -o yaml --dry-run=client > server-secret.yaml
14+
kubectl create secret tls client-certs --cert=client.crt --key=client.key -o yaml --dry-run=client > client-secret.yaml

0 commit comments

Comments
 (0)