mirror of https://github.com/linkerd/linkerd2.git
Fix 'linkerd uninject'
This commit is contained in:
parent
62694965d0
commit
44e9625e0d
|
@ -0,0 +1,228 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
annotations:
|
||||
linkerd.io/created-by: linkerd/cli dev-undefined
|
||||
linkerd.io/proxy-version: test-inject-proxy-version
|
||||
linkerd.io/trust-root-sha256: 8dc603abd4e755c25c94da05abbf29b9b283a784733651020d72f97ca8ab98e4
|
||||
labels:
|
||||
app: vote-bot
|
||||
linkerd.io/control-plane-ns: linkerd
|
||||
linkerd.io/workload-ns: emojivoto
|
||||
name: vote-bot
|
||||
namespace: emojivoto
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- emojivoto-vote-bot
|
||||
env:
|
||||
- name: WEB_HOST
|
||||
value: web-svc.emojivoto:80
|
||||
image: buoyantio/emojivoto-web:v10
|
||||
name: vote-bot
|
||||
initContainers:
|
||||
- args:
|
||||
- --incoming-proxy-port
|
||||
- "4143"
|
||||
- --outgoing-proxy-port
|
||||
- "4140"
|
||||
- --proxy-uid
|
||||
- "2102"
|
||||
- --inbound-ports-to-ignore
|
||||
- 4190,4191,4567,4568
|
||||
- --outbound-ports-to-ignore
|
||||
- 4567,4568
|
||||
image: cr.l5d.io/linkerd/proxy-init:v2.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: linkerd-init
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 20Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 20Mi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add:
|
||||
- NET_ADMIN
|
||||
- NET_RAW
|
||||
privileged: false
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65534
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
terminationMessagePolicy: FallbackToLogsOnError
|
||||
volumeMounts:
|
||||
- mountPath: /run
|
||||
name: linkerd-proxy-init-xtables-lock
|
||||
- env:
|
||||
- name: _pod_name
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: _pod_ns
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: _pod_nodeName
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: LINKERD2_PROXY_LOG
|
||||
value: warn,linkerd=info,trust_dns=error
|
||||
- name: LINKERD2_PROXY_LOG_FORMAT
|
||||
value: plain
|
||||
- name: LINKERD2_PROXY_DESTINATION_SVC_ADDR
|
||||
value: linkerd-dst-headless.linkerd.svc.cluster.local.:8086
|
||||
- name: LINKERD2_PROXY_DESTINATION_PROFILE_NETWORKS
|
||||
value: 10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
|
||||
- name: LINKERD2_PROXY_POLICY_SVC_ADDR
|
||||
value: linkerd-policy.linkerd.svc.cluster.local.:8090
|
||||
- name: LINKERD2_PROXY_POLICY_WORKLOAD
|
||||
value: |
|
||||
{"ns":"$(_pod_ns)", "pod":"$(_pod_name)"}
|
||||
- name: LINKERD2_PROXY_INBOUND_DEFAULT_POLICY
|
||||
value: all-unauthenticated
|
||||
- name: LINKERD2_PROXY_POLICY_CLUSTER_NETWORKS
|
||||
value: 10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
|
||||
- name: LINKERD2_PROXY_CONTROL_STREAM_INITIAL_TIMEOUT
|
||||
value: 3s
|
||||
- name: LINKERD2_PROXY_CONTROL_STREAM_IDLE_TIMEOUT
|
||||
value: 5m
|
||||
- name: LINKERD2_PROXY_CONTROL_STREAM_LIFETIME
|
||||
value: 1h
|
||||
- name: LINKERD2_PROXY_INBOUND_CONNECT_TIMEOUT
|
||||
value: 100ms
|
||||
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_TIMEOUT
|
||||
value: 1000ms
|
||||
- name: LINKERD2_PROXY_OUTBOUND_DISCOVERY_IDLE_TIMEOUT
|
||||
value: 5s
|
||||
- name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
|
||||
value: 90s
|
||||
- name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
|
||||
value: 0.0.0.0:4190
|
||||
- name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
|
||||
value: 0.0.0.0:4191
|
||||
- name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
|
||||
value: 127.0.0.1:4140
|
||||
- name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
|
||||
value: 0.0.0.0:4143
|
||||
- name: LINKERD2_PROXY_INBOUND_IPS
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIPs
|
||||
- name: LINKERD2_PROXY_INBOUND_PORTS
|
||||
- name: LINKERD2_PROXY_DESTINATION_PROFILE_SUFFIXES
|
||||
value: svc.cluster.local.
|
||||
- name: LINKERD2_PROXY_INBOUND_ACCEPT_KEEPALIVE
|
||||
value: 10000ms
|
||||
- name: LINKERD2_PROXY_OUTBOUND_CONNECT_KEEPALIVE
|
||||
value: 10000ms
|
||||
- name: LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION
|
||||
value: 25,587,3306,4444,5432,6379,9300,11211
|
||||
- name: LINKERD2_PROXY_DESTINATION_CONTEXT
|
||||
value: |
|
||||
{"ns":"$(_pod_ns)", "nodeName":"$(_pod_nodeName)", "pod":"$(_pod_name)"}
|
||||
- name: _pod_sa
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.serviceAccountName
|
||||
- name: _l5d_ns
|
||||
value: linkerd
|
||||
- name: _l5d_trustdomain
|
||||
value: cluster.local
|
||||
- name: LINKERD2_PROXY_IDENTITY_DIR
|
||||
value: /var/run/linkerd/identity/end-entity
|
||||
- name: LINKERD2_PROXY_IDENTITY_TRUST_ANCHORS
|
||||
value: |
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIBwTCCAWagAwIBAgIQeDZp5lDaIygQ5UfMKZrFATAKBggqhkjOPQQDAjApMScw
|
||||
JQYDVQQDEx5pZGVudGl0eS5saW5rZXJkLmNsdXN0ZXIubG9jYWwwHhcNMjAwODI4
|
||||
MDcxMjQ3WhcNMzAwODI2MDcxMjQ3WjApMScwJQYDVQQDEx5pZGVudGl0eS5saW5r
|
||||
ZXJkLmNsdXN0ZXIubG9jYWwwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARqc70Z
|
||||
l1vgw79rjB5uSITICUA6GyfvSFfcuIis7B/XFSkkwAHU5S/s1AAP+R0TX7HBWUC4
|
||||
uaG4WWsiwJKNn7mgo3AwbjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
|
||||
/wIBATAdBgNVHQ4EFgQU5YtjVVPfd7I7NLHsn2C26EByGV0wKQYDVR0RBCIwIIIe
|
||||
aWRlbnRpdHkubGlua2VyZC5jbHVzdGVyLmxvY2FsMAoGCCqGSM49BAMCA0kAMEYC
|
||||
IQCN7lBFLDDvjx6V0+XkjpKERRsJYf5adMvnloFl48ilJgIhANtxhndcr+QJPuC8
|
||||
vgUC0d2/9FMueIVMb+46WTCOjsqr
|
||||
-----END CERTIFICATE-----
|
||||
- name: LINKERD2_PROXY_IDENTITY_TOKEN_FILE
|
||||
value: /var/run/secrets/tokens/linkerd-identity-token
|
||||
- name: LINKERD2_PROXY_IDENTITY_SVC_ADDR
|
||||
value: linkerd-identity-headless.linkerd.svc.cluster.local.:8080
|
||||
- name: LINKERD2_PROXY_IDENTITY_LOCAL_NAME
|
||||
value: $(_pod_sa).$(_pod_ns).serviceaccount.identity.linkerd.cluster.local
|
||||
- name: LINKERD2_PROXY_IDENTITY_SVC_NAME
|
||||
value: linkerd-identity.linkerd.serviceaccount.identity.linkerd.cluster.local
|
||||
- name: LINKERD2_PROXY_DESTINATION_SVC_NAME
|
||||
value: linkerd-destination.linkerd.serviceaccount.identity.linkerd.cluster.local
|
||||
- name: LINKERD2_PROXY_POLICY_SVC_NAME
|
||||
value: linkerd-destination.linkerd.serviceaccount.identity.linkerd.cluster.local
|
||||
image: cr.l5d.io/linkerd/proxy:test-inject-proxy-version
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
postStart:
|
||||
exec:
|
||||
command:
|
||||
- /usr/lib/linkerd/linkerd-await
|
||||
- --timeout=2m
|
||||
- --port=4191
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /live
|
||||
port: 4191
|
||||
initialDelaySeconds: 10
|
||||
timeoutSeconds: 1
|
||||
name: linkerd-proxy
|
||||
ports:
|
||||
- containerPort: 4143
|
||||
name: linkerd-proxy
|
||||
- containerPort: 4191
|
||||
name: linkerd-admin
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /ready
|
||||
port: 4191
|
||||
initialDelaySeconds: 2
|
||||
timeoutSeconds: 1
|
||||
restartPolicy: Always
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
runAsUser: 2102
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
startupProbe:
|
||||
failureThreshold: 120
|
||||
httpGet:
|
||||
path: /ready
|
||||
port: 4191
|
||||
scheme: HTTP
|
||||
periodSeconds: 1
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
terminationMessagePolicy: FallbackToLogsOnError
|
||||
volumeMounts:
|
||||
- mountPath: /var/run/linkerd/identity/end-entity
|
||||
name: linkerd-identity-end-entity
|
||||
- mountPath: /var/run/secrets/tokens
|
||||
name: linkerd-identity-token
|
||||
volumes:
|
||||
- emptyDir: {}
|
||||
name: linkerd-proxy-init-xtables-lock
|
||||
- emptyDir:
|
||||
medium: Memory
|
||||
name: linkerd-identity-end-entity
|
||||
- name: linkerd-identity-token
|
||||
projected:
|
||||
sources:
|
||||
- serviceAccountToken:
|
||||
audience: identity.l5d.io
|
||||
expirationSeconds: 86400
|
||||
path: linkerd-identity-token
|
||||
---
|
|
@ -61,6 +61,11 @@ func TestUninjectYAML(t *testing.T) {
|
|||
goldenFileName: "inject_emojivoto_pod.input.yml",
|
||||
reportFileName: "inject_emojivoto_pod_uninject.report",
|
||||
},
|
||||
{
|
||||
inputFileName: "inject_emojivoto_pod_nativesidecar.golden.yml",
|
||||
goldenFileName: "inject_emojivoto_pod.input.yml",
|
||||
reportFileName: "inject_emojivoto_pod_uninject.report",
|
||||
},
|
||||
{
|
||||
inputFileName: "inject_emojivoto_deployment_udp.golden.yml",
|
||||
goldenFileName: "inject_emojivoto_deployment_udp.input.yml",
|
||||
|
|
|
@ -36,10 +36,13 @@ func (conf *ResourceConfig) uninjectPodSpec(report *Report) {
|
|||
t := conf.pod.spec
|
||||
initContainers := []v1.Container{}
|
||||
for _, container := range t.InitContainers {
|
||||
if container.Name != k8s.InitContainerName {
|
||||
initContainers = append(initContainers, container)
|
||||
} else {
|
||||
switch container.Name {
|
||||
case k8s.InitContainerName:
|
||||
report.Uninjected.ProxyInit = true
|
||||
case k8s.ProxyContainerName:
|
||||
report.Uninjected.Proxy = true
|
||||
default:
|
||||
initContainers = append(initContainers, container)
|
||||
}
|
||||
}
|
||||
t.InitContainers = initContainers
|
||||
|
|
Loading…
Reference in New Issue