From fddda86f6d4c742464ee4235d746040cbde2ebfd Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Mon, 21 Oct 2019 16:51:57 +0800 Subject: [PATCH] kubernetes-dashboard: add new recipe Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters. It allows users to manage applications running in the cluster and troubleshoot them, as well as manage the cluster itself. Issue-ID: INF-4 Signed-off-by: Jackie Huang Change-Id: Iec7edf0d54ec074443d325c9ecc157a06430ad3a --- .../packagegroups/packagegroup-oran.bb | 2 + .../kubernetes-dashboard-admin.rbac.yaml | 24 ++++++++++++ ...etes-dashboard.yaml-set-the-NodePort-type.patch | 37 ++++++++++++++++++ .../kubernetes-dashboard_1.8.3.bb | 45 ++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard/kubernetes-dashboard-admin.rbac.yaml create mode 100644 meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard/kubernetes-dashboard.yaml-set-the-NodePort-type.patch create mode 100644 meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard_1.8.3.bb diff --git a/meta-oran/recipes-base/packagegroups/packagegroup-oran.bb b/meta-oran/recipes-base/packagegroups/packagegroup-oran.bb index 32b8fd2..e492d0f 100644 --- a/meta-oran/recipes-base/packagegroups/packagegroup-oran.bb +++ b/meta-oran/recipes-base/packagegroups/packagegroup-oran.bb @@ -51,11 +51,13 @@ RDEPENDS_${PN}-k8s = "\ flannel \ iproute2-tc \ kubernetes \ + kubernetes-dashboard \ " RRECOMMENDS_${PN}-k8s = "\ flannel-img \ kubernetes-img \ + kubernetes-dashboard-img \ " RDEPENDS_${PN}-vm = "\ diff --git a/meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard/kubernetes-dashboard-admin.rbac.yaml b/meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard/kubernetes-dashboard-admin.rbac.yaml new file mode 100644 index 0000000..9fe2878 --- /dev/null +++ b/meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard/kubernetes-dashboard-admin.rbac.yaml @@ -0,0 +1,24 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard-admin + namespace: kube-system + +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + name: kubernetes-dashboard-admin + labels: + k8s-app: kubernetes-dashboard +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + name: kubernetes-dashboard-admin + namespace: kube-system diff --git a/meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard/kubernetes-dashboard.yaml-set-the-NodePort-type.patch b/meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard/kubernetes-dashboard.yaml-set-the-NodePort-type.patch new file mode 100644 index 0000000..e689e40 --- /dev/null +++ b/meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard/kubernetes-dashboard.yaml-set-the-NodePort-type.patch @@ -0,0 +1,37 @@ +From 72c0b14297b4bcb1c8e9d78ab2a83dff1f0b4cb5 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Mon, 21 Oct 2019 16:26:20 +0800 +Subject: [PATCH] kubernetes-dashboard.yaml: set the NodePort type + +Signed-off-by: Jackie Huang +--- + src/deploy/recommended/kubernetes-dashboard.yaml | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/deploy/recommended/kubernetes-dashboard.yaml b/src/deploy/recommended/kubernetes-dashboard.yaml +index 73fcc23..878f6de 100644 +--- a/src/deploy/recommended/kubernetes-dashboard.yaml ++++ b/src/deploy/recommended/kubernetes-dashboard.yaml +@@ -143,7 +143,7 @@ spec: + secretName: kubernetes-dashboard-certs + - name: tmp-volume + emptyDir: {} +- serviceAccountName: kubernetes-dashboard ++ serviceAccountName: kubernetes-dashboard-admin + # Comment the following tolerations if Dashboard must not be deployed on master + tolerations: + - key: node-role.kubernetes.io/master +@@ -160,8 +160,10 @@ metadata: + name: kubernetes-dashboard + namespace: kube-system + spec: ++ type: NodePort + ports: + - port: 443 ++ nodePort: 30443 + targetPort: 8443 + selector: + k8s-app: kubernetes-dashboard +-- +2.7.4 + diff --git a/meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard_1.8.3.bb b/meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard_1.8.3.bb new file mode 100644 index 0000000..6cf7211 --- /dev/null +++ b/meta-oran/recipes-containers/kubernetes-plugins/kubernetes-dashboard_1.8.3.bb @@ -0,0 +1,45 @@ +# +# Copyright (C) 2019 Wind River Systems, Inc. +# + +SUMMARY = "General-purpose web UI for Kubernetes clusters" +DESCRIPTION = "\ + Kubernetes Dashboard is a general purpose, web-based UI \ + for Kubernetes clusters. It allows users to manage applications \ + running in the cluster and troubleshoot them, as well as manage \ + the cluster itself. \ +" +HOMEPAGE = "https://github.com/kubernetes/dashboard" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b1e01b26bacfc2232046c90a330332b3" + +SRC_URI = "\ + https://github.com/kubernetes/dashboard/archive/v${PV}.tar.gz;downloadfilename=${BPN}-v${PV}.tar.gz \ + file://docker-img-kubernetes-dashboard-v1.8.3.tar.bz2;unpack=0 \ + file://kubernetes-dashboard-admin.rbac.yaml \ + file://kubernetes-dashboard.yaml-set-the-NodePort-type.patch \ +" + +SRC_URI[md5sum] = "8c3949eea7b9f7dd15d70d7d1c9af77b" +SRC_URI[sha256sum] = "9096f86d4107a6d23f2cff5edd1acae2faf25719a343c319860fd6a7408f761d" + +S = "${WORKDIR}/dashboard-${PV}" + +PACKAGES =+ "${PN}-img" + +DOCKER_IMG = "/opt/docker_images/${BPN}" +K8S_PLUGINS = "${sysconfdir}/kubernetes/plugins/${BPN}" + +do_install() { + install -d ${D}${K8S_PLUGINS} + install -m 644 ${WORKDIR}/kubernetes-dashboard-admin.rbac.yaml ${D}${K8S_PLUGINS} + install -m 644 ${S}/src/deploy/recommended/kubernetes-dashboard.yaml ${D}${K8S_PLUGINS} + install -m 644 ${S}/README.md ${D}${K8S_PLUGINS} + + # Install the saved docker image + install -d ${D}${DOCKER_IMG} + install -m 644 ${WORKDIR}/docker-img-*.tar.bz2 ${D}${DOCKER_IMG} +} + +FILES_${PN}-img = "${DOCKER_IMG}" -- 2.16.6