Skip to content

Commit

Permalink
Secure metrics endpoint for multus
Browse files Browse the repository at this point in the history
  • Loading branch information
aneeshkp committed Mar 23, 2020
1 parent fc8ccdf commit 76b1e1e
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 1 deletion.
6 changes: 6 additions & 0 deletions bindata/network/multus-admission-controller/002-rbac.yaml
Expand Up @@ -20,6 +20,12 @@ rules:
- get
- patch
- update
- apiGroups: ['authentication.k8s.io']
resources: ['tokenreviews']
verbs: ['create']
- apiGroups: ['authorization.k8s.io']
resources: ['subjectaccessreviews']
verbs: ['create']
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
Expand Down
Expand Up @@ -50,6 +50,27 @@ spec:
ports:
- name: metrics-port
containerPort: 9091
- name: kube-rbac-proxy
image: {{.KubeRBACProxyImage}}
args:
- --logtostderr
- --secure-listen-address=:8443
- --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- --upstream=http://127.0.0.1:9091/
- --tls-private-key-file=/etc/webhook/tls.key
- --tls-cert-file=/etc/webhook/tls.crt
ports:
- containerPort: 8443
name: https
resources:
requests:
cpu: 10m
memory: 20Mi
terminationMessagePolicy: FallbackToLogsOnError
volumeMounts:
- name: webhook-certs
mountPath: /etc/webhook
readOnly: True
serviceAccountName: multus
priorityClassName: "system-cluster-critical"
restartPolicy: Always
Expand Down
12 changes: 11 additions & 1 deletion bindata/network/multus-admission-controller/monitor.yaml
Expand Up @@ -12,6 +12,11 @@ spec:
endpoints:
- interval: 30s
port: metrics
bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token'
scheme: 'https'
tlsConfig:
caFile: '/etc/prometheus/configmaps/serving-certs-ca-bundle/service-ca.crt'
serverName: 'multus-admission-controller.openshift-multus.svc'
jobLabel: app
namespaceSelector:
matchNames:
Expand All @@ -27,6 +32,8 @@ metadata:
name: multus-admission-controller-monitor-service
name: multus-admission-controller-monitor-service
namespace: openshift-multus
annotations:
service.alpha.openshift.io/serving-cert-secret-name: multus-admission-controller-secret
spec:
selector:
app: multus-admission-controller
Expand All @@ -35,7 +42,10 @@ spec:
- name: metrics
port: 9091
protocol: TCP
targetPort: 9091
targetPort: https
- name: https
port: 8443
targetPort: https
sessionAffinity: None
type: ClusterIP
---
Expand Down
2 changes: 2 additions & 0 deletions manifests/0000_70_cluster-network-operator_03_deployment.yaml
Expand Up @@ -31,6 +31,8 @@ spec:
value: "quay.io/openshift/origin-sdn:4.3"
- name: KUBE_PROXY_IMAGE
value: "quay.io/openshift/origin-kube-proxy:4.3"
- name: KUBE_RBAC_PROXY_IMAGE
value: "quay.io/openshift/origin-kube-rbac-proxy:4.4"
- name: MULTUS_IMAGE
value: "quay.io/openshift/origin-multus-cni:4.3"
- name: MULTUS_ADMISSION_CONTROLLER_IMAGE
Expand Down
5 changes: 5 additions & 0 deletions manifests/image-references
Expand Up @@ -46,3 +46,8 @@ spec:
from:
kind: DockerImage
name: quay.io/openshift/origin-kuryr-controller:4.3
- name: kube-rbac-proxy
from:
kind: DockerImage
name: quay.io/openshift/origin-kube-rbac-proxy:4.4

1 change: 1 addition & 0 deletions pkg/network/multus_admission_controller.go
Expand Up @@ -20,6 +20,7 @@ func renderMultusAdmissonControllerConfig(manifestDir string) ([]*uns.Unstructur
data.Data["MultusAdmissionControllerImage"] = os.Getenv("MULTUS_ADMISSION_CONTROLLER_IMAGE")
data.Data["MultusValidatingWebhookName"] = names.MULTUS_VALIDATING_WEBHOOK
data.Data["ServiceCAConfigMap"] = names.SERVICE_CA_CONFIGMAP
data.Data["KubeRBACProxyImage"] = os.Getenv("KUBE_RBAC_PROXY_IMAGE")

manifests, err := render.RenderDir(filepath.Join(manifestDir, "network/multus-admission-controller"), &data)
if err != nil {
Expand Down

0 comments on commit 76b1e1e

Please sign in to comment.