Skip to content

Commit

Permalink
Update dashboard to use Cozystack API (#539)
Browse files Browse the repository at this point in the history
<img width="1675" alt="Screenshot 2024-12-23 at 13 40 30"
src="https://github.com/user-attachments/assets/cc123697-4efd-4a4f-909c-793cec8d91bd"
/>
<img width="1673" alt="Screenshot 2024-12-23 at 13 40 45"
src="https://github.com/user-attachments/assets/3be63e8d-9ee6-487d-90d0-3583dc968dfc"
/>


Signed-off-by: Andrei Kvapil <[email protected]>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a new `pluginConfig` section in the Kubeapps dashboard
configuration for managing a broader range of applications.
- **Bug Fixes**
- Enhanced URL generation logic to ensure proper encoding of package
identifiers.
- **Chores**
- Updated image digests in the configuration for both the dashboard and
kubeappsapis sections.
	- Removed unnecessary patch application steps from the build process.
	- Upgraded the Go version used for building the application.
- Updated the application version for the tenant package from `1.6.3` to
`1.6.4`.
	- Added a new version `1.6.4 HEAD` for the tenant package.
- Adjusted RBAC configuration to streamline permissions and enhance
group-based access management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Andrei Kvapil <[email protected]>
Co-authored-by: klinch0 <[email protected]>
  • Loading branch information
kvaps and klinch0 authored Dec 27, 2024
1 parent 97d006e commit 3c9e50a
Show file tree
Hide file tree
Showing 17 changed files with 453 additions and 3,595 deletions.
2 changes: 1 addition & 1 deletion packages/apps/tenant/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ description: Separated tenant namespace
icon: /logos/tenant.svg

type: application
version: 1.6.3
version: 1.6.4
49 changes: 19 additions & 30 deletions packages/apps/tenant/templates/tenant.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ rules:
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["roles"]
verbs: ["get"]
- apiGroups: ["helm.toolkit.fluxcd.io"]
resources: ["helmreleases"]
verbs: ["*"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
Expand Down Expand Up @@ -86,14 +84,6 @@ rules:
- get
- list
- watch
- apiGroups:
- helm.toolkit.fluxcd.io
resources:
- helmreleases
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
Expand Down Expand Up @@ -122,6 +112,9 @@ subjects:
name: tenant-root-view
apiGroup: rbac.authorization.k8s.io
{{- end }}
- kind: Group
name: {{ include "tenant.name" . }}-view
apiGroup: rbac.authorization.k8s.io
{{- if hasPrefix "tenant-" .Release.Namespace }}
{{- $parts := splitList "-" .Release.Namespace }}
{{- range $i, $v := $parts }}
Expand Down Expand Up @@ -158,13 +151,6 @@ rules:
- get
- list
- watch
- apiGroups: ["helm.toolkit.fluxcd.io"]
resources:
- helmreleases
verbs:
- get
- list
- watch
- apiGroups: [""]
resources:
- "*"
Expand Down Expand Up @@ -198,6 +184,9 @@ subjects:
name: tenant-root-use
apiGroup: rbac.authorization.k8s.io
{{- end }}
- kind: Group
name: {{ include "tenant.name" . }}-use
apiGroup: rbac.authorization.k8s.io
{{- if hasPrefix "tenant-" .Release.Namespace }}
{{- $parts := splitList "-" .Release.Namespace }}
{{- range $i, $v := $parts }}
Expand Down Expand Up @@ -234,13 +223,6 @@ rules:
- list
- watch
- delete
- apiGroups: ["helm.toolkit.fluxcd.io"]
resources:
- helmreleases
verbs:
- get
- list
- watch
- apiGroups: ["kubevirt.io"]
resources:
- virtualmachines
Expand Down Expand Up @@ -293,6 +275,9 @@ subjects:
name: tenant-root-admin
apiGroup: rbac.authorization.k8s.io
{{- end }}
- kind: Group
name: {{ include "tenant.name" . }}-admin
apiGroup: rbac.authorization.k8s.io
{{- if hasPrefix "tenant-" .Release.Namespace }}
{{- $parts := splitList "-" .Release.Namespace }}
{{- range $i, $v := $parts }}
Expand Down Expand Up @@ -329,11 +314,6 @@ rules:
- list
- watch
- delete
- apiGroups: ["helm.toolkit.fluxcd.io"]
resources:
- helmreleases
verbs:
- '*'
- apiGroups: ["kubevirt.io"]
resources:
- virtualmachines
Expand Down Expand Up @@ -363,6 +343,9 @@ subjects:
name: tenant-root-super-admin
apiGroup: rbac.authorization.k8s.io
{{- end }}
- kind: Group
name: {{ include "tenant.name" . }}-super-admin
apiGroup: rbac.authorization.k8s.io
{{- if hasPrefix "tenant-" .Release.Namespace }}
{{- $parts := splitList "-" .Release.Namespace }}
{{- range $i, $v := $parts }}
Expand Down Expand Up @@ -405,6 +388,12 @@ subjects:
- kind: Group
name: {{ include "tenant.name" . }}-admin
apiGroup: rbac.authorization.k8s.io
- kind: Group
name: {{ include "tenant.name" . }}-use
apiGroup: rbac.authorization.k8s.io
- kind: Group
name: {{ include "tenant.name" . }}-view
apiGroup: rbac.authorization.k8s.io
- kind: ServiceAccount
name: {{ include "tenant.name" . }}
namespace: {{ include "tenant.name" . }}
Expand Down
3 changes: 2 additions & 1 deletion packages/apps/versions_map
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ tenant 1.5.0 48128743
tenant 1.6.0 df448b99
tenant 1.6.1 edbbb9be
tenant 1.6.2 ccedc5fe
tenant 1.6.3 HEAD
tenant 1.6.3 2057bb96
tenant 1.6.4 HEAD
virtual-machine 0.1.4 f2015d6
virtual-machine 0.1.5 7cd7de7
virtual-machine 0.2.0 5ca8823
Expand Down
4 changes: 2 additions & 2 deletions packages/system/cozystack-api/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ data:
labels:
cozystack.io/ui: "true"
chart:
name: http-cache
name: tcp-balancer
sourceRef:
kind: HelmRepository
name: cozystack-apps
Expand Down Expand Up @@ -207,7 +207,7 @@ data:
singular: kafka
plural: kafkas
release:
prefix: ferretdb-
prefix: kafka-
labels:
cozystack.io/ui: "true"
chart:
Expand Down
7 changes: 5 additions & 2 deletions packages/system/dashboard/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ update-dockerfiles:
version=$$(echo "$$tag" | sed 's/^v//') && \
sed -i "s/ARG VERSION=.*/ARG VERSION=$${version}/" images/dashboard/Dockerfile

image-dashboard:
image-dashboard: update-version
docker buildx build images/dashboard \
--provenance false \
--tag $(REGISTRY)/dashboard:$(call settag,$(TAG)) \
Expand All @@ -44,7 +44,7 @@ image-dashboard:
yq -i '.kubeapps.dashboard.image.digest = strenv(DIGEST)' values.yaml
rm -f images/dashboard.json

image-kubeapps-apis:
image-kubeapps-apis: update-version
docker buildx build images/kubeapps-apis \
--provenance false \
--tag $(REGISTRY)/kubeapps-apis:$(call settag,$(TAG)) \
Expand All @@ -62,3 +62,6 @@ image-kubeapps-apis:
DIGEST=$$(yq e '."containerimage.digest"' images/kubeapps-apis.json -o json -r) \
yq -i '.kubeapps.kubeappsapis.image.digest = strenv(DIGEST)' values.yaml
rm -f images/kubeapps-apis.json

update-version:
sed -i "s|\(\"appVersion\":\).*|\1 \"$(TAG)\",|g" ./charts/kubeapps/templates/dashboard/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ data:
"kubeappsNamespace": {{ .Release.Namespace | quote }},
"helmGlobalNamespace": {{ include "kubeapps.helmGlobalPackagingNamespace" . | quote }},
"carvelGlobalNamespace": {{ .Values.kubeappsapis.pluginConfig.kappController.packages.v1alpha1.globalPackagingNamespace | quote }},
"appVersion": {{ printf "v%s" .Chart.AppVersion | quote }},
"appVersion": "latest",
"authProxyEnabled": {{ .Values.authProxy.enabled }},
"oauthLoginURI": {{ .Values.authProxy.oauthLoginURI | quote }},
"oauthLogoutURI": {{ .Values.authProxy.oauthLogoutURI | quote }},
Expand Down
10 changes: 7 additions & 3 deletions packages/system/dashboard/images/dashboard/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,17 @@ RUN wget -O- https://github.com/vmware-tanzu/kubeapps/archive/refs/tags/v${VERSI

COPY apple-touch-icon.png favicon-16x16.png favicon-32x32.png favicon.ico mstile-144x144.png mstile-150x150.png mstile-310x150.png mstile-310x310.png mstile-70x70.png safari-pinned-tab.svg public/

COPY release-url.diff /patches/release-url.diff
COPY remove-manage-repositories.diff /patches/remove-manage-repositories.diff
COPY documentation.diff /patches/documentation.diff
RUN patch -p2 < /patches/release-url.diff
RUN patch -p2 < /patches/remove-manage-repositories.diff
RUN patch -p2 < /patches/documentation.diff

RUN sed -i 's/opacity: 0.05;/display: none;/g' src/components/InfoCard/InfoCard.scss
RUN sed -i 's/"Kubeapps",/"Cozystack",/' lang/en.json
RUN sed -i 's/Kubeapps/Cozystack/g' public/site.webmanifest
RUN sed -i 's/Welcome To Kubeapps/Welcome To Cozystack/g' ./src/components/LoginForm/LoginForm.tsx ./src/components/AppList/AppListGrid.tsx ./src/components/AppList/AppList.test.tsx
RUN sed -i src/components/DeploymentForm/DeploymentForm.tsx \
-e '/const handleDeploy/i \ const packageName = packageId ? packageId.split("/").pop() : "";' \
-e '/releaseName,$/ s|releaseName,|packageName + "-" + releaseName,|'
RUN sed -i '/by VMware/,/ \.$/d' src/components/Header/Menu.tsx
RUN sed -i '/height: 4em;/ s/4em/4.5em/' src/components/Header/Header.scss
RUN sed -i '/background-image/ s|base64,[^"]\+|base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjUyMSIKICAgaGVpZ2h0PSIxODUiCiAgIHZpZXdCb3g9IjAgMCA1MjEgMTg1IgogICBmaWxsPSJub25lIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc5NTgiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkNPWllTVEFDSy5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMS4xIChjMzA4NGVmLCAyMDIxLTA5LTIyKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzOTYyIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0ibmFtZWR2aWV3OTYwIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIHNob3dndWlkZXM9InRydWUiCiAgICAgaW5rc2NhcGU6Z3VpZGUtYmJveD0idHJ1ZSIKICAgICBpbmtzY2FwZTp6b29tPSIwLjU2NjEwNjA5IgogICAgIGlua3NjYXBlOmN4PSIxNTEuMDMxNzYiCiAgICAgaW5rc2NhcGU6Y3k9IjMxNy4wNzgzNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjEyOTYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iOTY5IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2Zzk1OCIgLz4KICA8cGF0aAogICAgIGQ9Ik0gNDcyLjk5MzQ1LDEyMC44NjMxMiBWIDU3LjQwODc3OSBoIDcuMzggViA4Ni4yMTA3MiBoIDAuMTggbCAzMC43ODIsLTI4LjgwMTk0MSBoIDkuNDUxIGwgLTM1LjI4MywzMi44NTIyNDEgMC4wOSwtMy45NjAyIDM3LjE3MywzNC41NjIzIGggLTkuNzIxIGwgLTMyLjQ5MiwtMjkuODgyIGggLTAuMTggdiAyOS44ODIgeiIKICAgICBmaWxsPSIjZmZmZmZmIgogICAgIGlkPSJwYXRoOTQwIiAvPgogIDxwYXRoCiAgICAgZD0ibSA0MzkuODg0NDUsMTIxLjY3MzIyIGMgLTYuMjQxLDAgLTExLjU4MSwtMS4zMjAxIC0xNi4wMjEsLTMuOTYwMyAtNC40NDEsLTIuNjQwMiAtNy44NjEsLTYuMzkwNCAtMTAuMjYxLC0xMS4yNTA4IC0yLjM0LC00Ljg2MDMgLTMuNTEsLTEwLjY1MDcgLTMuNTEsLTE3LjM3MTIgMCwtNi43MjA0IDEuMTcsLTEyLjQ4MDggMy41MSwtMTcuMjgxMSAyLjQsLTQuODYwNCA1LjgyLC04LjYxMDY0IDEwLjI2MSwtMTEuMjUwODIgNC40NCwtMi42NDAxOSA5Ljc4LC0zLjk2MDI4IDE2LjAyMSwtMy45NjAyOCA0LjM4LDAgOC40MywwLjY5MDA0OCAxMi4xNTEsMi4wNzAxNCAzLjcyLDEuMzgwMSA2Ljg0LDMuMzkwMjQgOS4zNiw2LjAzMDQyIGwgLTIuODgsNi4wMzA0NCBjIC0yLjc2LC0yLjU4MDIgLTUuNjQsLTQuNDQwMzMgLTguNjQxLC01LjU4MDQxIC0yLjk0LC0xLjIwMDA4IC02LjIxLC0xLjgwMDEyIC05LjgxLC0xLjgwMDEyIC03LjE0MSwwIC0xMi42MDEsMi4yNTAxNSAtMTYuMzgxLDYuNzUwNDMgLTMuNzgxLDQuNTAwMyAtNS42NzEsMTAuODMwOCAtNS42NzEsMTguOTkxMyAwLDguMTYwNiAxLjg5LDE0LjUyMSA1LjY3MSwxOS4wODE0IDMuNzgsNC41MDAzIDkuMjQsNi43NTA0IDE2LjM4MSw2Ljc1MDQgMy42LDAgNi44NywtMC41NyA5LjgxLC0xLjcxMDEgMy4wMDEsLTEuMjAwMSA1Ljg4MSwtMy4wOTAyIDguNjQxLC01LjY3MDQgbCAyLjg4LDYuMDMwNCBjIC0yLjUyLDIuNTgwMiAtNS42NCw0LjU5MDQgLTkuMzYsNi4wMzA1IC0zLjcyMSwxLjM4IC03Ljc3MSwyLjA3MDEgLTEyLjE1MSwyLjA3MDEgeiIKICAgICBmaWxsPSIjZmZmZmZmIgogICAgIGlkPSJwYXRoOTQyIiAvPgogIDxwYXRoCiAgICAgZD0ibSAzNDEuNzk1NDUsMTIwLjg2MzEyIDI3Ljk5MiwtNjMuNDU0MzQxIGggNi4zIGwgMjcuOTkyLDYzLjQ1NDM0MSBoIC03LjY1IGwgLTcuODMxLC0xOC4wOTEyIDMuNiwxLjg5MDEgaCAtMzguNzAyIGwgMy42OSwtMS44OTAxIC03Ljc0MSwxOC4wOTEyIHogbSAzMS4wNTIsLTU0LjgxMzc0IC0xNC40OTEsMzQuMTEyMzQgLTIuMTYsLTEuNzEwMSBoIDMzLjMwMiBsIC0xLjk4LDEuNzEwMSAtMTQuNDkxLC0zNC4xMTIzNCB6IgogICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgaWQ9InBhdGg5NDQiIC8+CiAgPHBhdGgKICAgICBkPSJtIDMxNi4xOTk0NSwxMjAuODYzMTIgdiAtNTcuMDYzOSBoIC0yMy4wNDIgdiAtNi4zOTA0NDEgaCA1My41NTQgdiA2LjM5MDQ0MSBoIC0yMy4wNDIgdiA1Ny4wNjM5IHoiCiAgICAgZmlsbD0iI2ZmZmZmZiIKICAgICBpZD0icGF0aDk0NiIgLz4KICA8cGF0aAogICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICAgZD0ibSAyMzYuNjQ1NDUsNTcuMzI5MzExIGggNTAuODI3IHYgNi4zNTMzNzkgaCAtNTAuODI3IHogbSAwLDU3LjE4MDQwOSBoIDUwLjgyNyB2IDYuMzUzNCBoIC01MC44MjcgeiBtIDUwLjgyNywtMjguNTkwMiBoIC01MC44MjcgdiA2LjM1MzQgaCA1MC44MjcgeiIKICAgICBmaWxsPSIjZmZmZmZmIgogICAgIGlkPSJwYXRoOTQ4IiAvPgogIDxwYXRoCiAgICAgZD0ibSAxOTkuODYzNDUsMTIwLjg2MzEyIHYgLTMyLjg1MjIgbCAxLjYyLDUuMTMwMyAtMjUuOTIyLC0zNS43MzI0NDEgaCA4LjY0MSBsIDIwLjQzMSwyOC4yNjE5NDEgaCAtMS44OSBsIDIwLjQzMiwtMjguMjYxOTQxIGggOC4zNyBsIC0yNS44MzIsMzUuNzMyNDQxIDEuNTMxLC01LjEzMDMgdiAzMi44NTIyIHoiCiAgICAgZmlsbD0iI2ZmZmZmZiIKICAgICBpZD0icGF0aDk1MCIgLz4KICA8cGF0aAogICAgIGQ9Im0gMTI2Ljk5MTQ1LDEyMC44NjMxMiB2IC01LjQ5MDMgbCAzOC41MjMsLTU0LjQ1MzggdiAyLjg4MDIgaCAtMzguNTIzIHYgLTYuMzkwNDQxIGggNDUuNDUzIHYgNS40OTAzODEgbCAtMzguNTIyLDU0LjM2Mzc2IHYgLTIuNzkwMiBoIDM5Ljc4MyB2IDYuMzkwNCB6IgogICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgaWQ9InBhdGg5NTIiIC8+CiAgPHBhdGgKICAgICBkPSJtIDg5LjQ2MzU1MywxMjEuNjczMjIgYyAtNC4zODAzLDAgLTguMzcwNiwtMC43NTAxIC0xMS45NzA4LC0yLjI1MDIgLTMuNjAwMywtMS41NjAxIC02LjY2MDUsLTMuNzUwMiAtOS4xODA3LC02LjU3MDQgLTIuNTIwMSwtMi44MjAyIC00LjQ3MDMsLTYuMjQwNCAtNS44NTA0LC0xMC4yNjA3IC0xLjMyMDEsLTQuMDIwMyAtMS45ODAxLC04LjUyMDYgLTEuOTgwMSwtMTMuNTAxIDAsLTUuMDQwMyAwLjY2LC05LjU0MDYgMS45ODAxLC0xMy41MDA5IDEuMzgwMSwtNC4wMjAzIDMuMzMwMywtNy40MTA1IDUuODUwNCwtMTAuMTcwNjkgMi41MjAyLC0yLjgyMDIgNS41NTA0LC00Ljk4MDM0IDkuMDkwNywtNi40ODA0NSAzLjYwMDIsLTEuNTYwMTA0IDcuNjIwNSwtMi4zNDAxNiAxMi4wNjA4LC0yLjM0MDE2IDQuNTAwMywwIDguNTIwNiwwLjc1MDA1NCAxMi4wNjA3OTcsMi4yNTAxNiAzLjYwMDEsMS41MDAxIDYuNjYwMSwzLjY2MDI1IDkuMTgxMSw2LjQ4MDQ0IDIuNTgsMi44MjAyIDQuNTMsNi4yNDA0IDUuODUsMTAuMjYwNyAxLjM4LDMuOTYwMyAyLjA3LDguNDMwNiAyLjA3LDEzLjQxMDkgMCw1LjA0MDQgLTAuNjksOS41NzA3IC0yLjA3LDEzLjU5MSAtMS4zOCw0LjAyMDMgLTMuMzMsNy40NDA1IC01Ljg1LDEwLjI2MDcgLTIuNTIxLDIuODIwMiAtNS41ODEsNS4wMTAzIC05LjE4MTEsNi41NzA0IC0zLjU0MDE5NywxLjUwMDEgLTcuNTYwNDk3LDIuMjUwMiAtMTIuMDYwNzk3LDIuMjUwMiB6IG0gMCwtNi41NzA1IGMgNC41NjAzLDAgOC40MDA2LC0xLjAyIDExLjUyMDc5NywtMy4wNjAyIDMuMTgwMSwtMi4wNDAxIDUuNjEwMSwtNS4wMTAzIDcuMjkwMSwtOC45MTA2IDEuNjgxLC0zLjkwMDMgMi41MjEsLTguNTgwNiAyLjUyMSwtMTQuMDQxIDAsLTUuNTIwMyAtMC44NCwtMTAuMjAwNyAtMi41MjEsLTE0LjA0MDkgLTEuNjgsLTMuODQwMyAtNC4xMSwtNi43ODA1IC03LjI5MDEsLTguODIwNjQgLTMuMTIwMTk3LC0yLjA0MDE0IC02Ljk2MDQ5NywtMy4wNjAyIC0xMS41MjA3OTcsLTMuMDYwMiAtNC40NDAzLDAgLTguMjUwNiwxLjAyMDA2IC0xMS40MzA4LDMuMDYwMiAtMy4xMjAyLDIuMDQwMTQgLTUuNTIwNCw1LjAxMDM0IC03LjIwMDUsOC45MTA2NCAtMS42ODAxLDMuODQwMiAtMi41MjAyLDguNDkwNiAtMi41MjAyLDEzLjk1MDkgMCw1LjQ2MDQgMC44NDAxLDEwLjE0MDcgMi41MjAyLDE0LjA0MSAxLjY4MDEsMy44NDAzIDQuMDgwMyw2LjgxMDUgNy4yMDA1LDguOTEwNiAzLjE4MDIsMi4wNDAyIDYuOTkwNSwzLjA2MDIgMTEuNDMwOCwzLjA2MDIgeiIKICAgICBmaWxsPSIjZmZmZmZmIgogICAgIGlkPSJwYXRoOTU0IiAvPgogIDxwYXRoCiAgICAgZD0ibSAzMS41NTg1NTMsMTIxLjY3MzIyIGMgLTYuMjQwNSwwIC0xMS41ODA4LC0xLjMyMDEgLTE2LjAyMTIsLTMuOTYwMyAtNC40NDAyNiwtMi42NDAyIC03Ljg2MDQ4OTcsLTYuMzkwNCAtMTAuMjYwNjU5NywtMTEuMjUwOCAtMi4zNDAxNiwtNC44NjAzIC0zLjUxMDI0LC0xMC42NTA3IC0zLjUxMDI0LC0xNy4zNzEyIDAsLTYuNzIwNCAxLjE3MDA4LC0xMi40ODA4IDMuNTEwMjQsLTE3LjI4MTEgMi40MDAxNywtNC44NjA0IDUuODIwMzk5NywtOC42MTA2NCAxMC4yNjA2NTk3LC0xMS4yNTA4MiA0LjQ0MDQsLTIuNjQwMTkgOS43ODA3LC0zLjk2MDI4IDE2LjAyMTIsLTMuOTYwMjggNC4zODAzLDAgOC40MzA1LDAuNjkwMDQ4IDEyLjE1MDgsMi4wNzAxNCAzLjcyMDMsMS4zODAxIDYuODQwNSwzLjM5MDI0IDkuMzYwNiw2LjAzMDQyIGwgLTIuODgwMiw2LjAzMDQ0IGMgLTIuNzYwMSwtMi41ODAyIC01LjY0MDMsLTQuNDQwMzMgLTguNjQwNiwtNS41ODA0MSAtMi45NDAyLC0xLjIwMDA4IC02LjIxMDQsLTEuODAwMTIgLTkuODEwNiwtMS44MDAxMiAtNy4xNDA1LDAgLTEyLjYwMDksMi4yNTAxNSAtMTYuMzgxMiw2Ljc1MDQzIC0zLjc4MDIyLDQuNTAwMyAtNS42NzAzNDk3LDEwLjgzMDggLTUuNjcwMzQ5NywxOC45OTEzIDAsOC4xNjA2IDEuODkwMTI5NywxNC41MjEgNS42NzAzNDk3LDE5LjA4MTQgMy43ODAzLDQuNTAwMyA5LjI0MDcsNi43NTA0IDE2LjM4MTIsNi43NTA0IDMuNjAwMiwwIDYuODcwNCwtMC41NyA5LjgxMDYsLTEuNzEwMSAzLjAwMDMsLTEuMjAwMSA1Ljg4MDUsLTMuMDkwMiA4LjY0MDYsLTUuNjcwNCBsIDIuODgwMiw2LjAzMDQgYyAtMi41MjAxLDIuNTgwMiAtNS42NDAzLDQuNTkwNCAtOS4zNjA2LDYuMDMwNSAtMy43MjAzLDEuMzggLTcuNzcwNSwyLjA3MDEgLTEyLjE1MDgsMi4wNzAxIHoiCiAgICAgZmlsbD0iI2ZmZmZmZiIKICAgICBpZD0icGF0aDk1NiIgLz4KPC9zdmc+Cg==|' src/components/Header/Header.scss
Expand Down
13 changes: 13 additions & 0 deletions packages/system/dashboard/images/dashboard/documentation.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/dashboard/src/components/AppList/AppListGrid.tsx b/dashboard/src/components/AppList/AppListGrid.tsx
index d3261e459..597512e62 100644
--- a/dashboard/src/components/AppList/AppListGrid.tsx
+++ b/dashboard/src/components/AppList/AppListGrid.tsx
@@ -42,7 +42,7 @@ function AppListGrid(props: IAppListProps) {
Start browsing your <Link to={url.app.catalog(cluster, namespace)}>favourite apps</Link>{" "}
or check the{" "}
<a
- href={`https://github.com/vmware-tanzu/kubeapps/blob/${appVersion}/site/content/docs/latest/tutorials/getting-started.md`}
+ href={`https://cozystack.io/docs/`}
target="_blank"
rel="noopener noreferrer"
>
34 changes: 34 additions & 0 deletions packages/system/dashboard/images/dashboard/release-url.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
diff --git a/dashboard/src/shared/url.ts b/dashboard/src/shared/url.ts
index 7918652b0..64c3435af 100644
--- a/dashboard/src/shared/url.ts
+++ b/dashboard/src/shared/url.ts
@@ -36,7 +36,7 @@ export const app = {
return `${app.apps.list(
pkgCluster,
pkgNamespace,
- )}/${pkgPluginName}/${pkgPluginVersion}/${pkgId}`;
+ )}/${pkgPluginName}/${pkgPluginVersion}/${encodeURIComponent(pkgId)}`;
},
upgrade: (ref: InstalledPackageReference) => `${app.apps.get(ref)}/upgrade`,
upgradeTo: (ref: InstalledPackageReference, version?: string) =>
diff --git a/dashboard/src/components/DeploymentForm/DeploymentForm.tsx b/dashboard/src/components/DeploymentForm/DeploymentForm.tsx
index 7ccb77b5d..589f72b65 100644
--- a/dashboard/src/components/DeploymentForm/DeploymentForm.tsx
+++ b/dashboard/src/components/DeploymentForm/DeploymentForm.tsx
@@ -144,13 +144,15 @@ export default function DeploymentForm() {
);
setDeploying(false);
if (deployed) {
+ const chartParts = packageId?.split("/") || [];
+ const kind = chartParts[chartParts.length - 1];
push(
// Redirect to the installed package, note that the cluster/ns are the ones passed
// in the URL, not the ones from the package.
url.app.apps.get({
context: { cluster: targetCluster, namespace: targetNamespace },
plugin: pluginObj,
- identifier: releaseName,
+ identifier: `${kind}%2F${releaseName}`,
} as AvailablePackageReference),
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
diff --git a/dashboard/src/components/Catalog/Catalog.tsx b/dashboard/src/components/Catalog/Catalog.tsx
index 5f2d2a1c5..093cb598d 100644
--- a/dashboard/src/components/Catalog/Catalog.tsx
+++ b/dashboard/src/components/Catalog/Catalog.tsx
@@ -15,7 +15,6 @@ import qs from "qs";
import React, { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import * as ReactRouter from "react-router-dom";
-import { Link } from "react-router-dom";
import { IClusterServiceVersion, IStoreState } from "shared/types";
import { app } from "shared/url";
import { escapeRegExp, getPluginPackageName } from "shared/utils";
@@ -85,7 +84,6 @@ export default function Catalog() {
operators,
repos: { reposSummaries: repos },
config: {
- appVersion,
kubeappsCluster,
helmGlobalNamespace,
carvelGlobalNamespace,
@@ -420,24 +418,6 @@ export default function Catalog() {
<div className="empty-catalog">
<CdsIcon shape="bundle" />
<p>The current catalog is empty.</p>
- <p>
- Manage your Package Repositories in Kubeapps by visiting the Package repositories
- configuration page.
- </p>
- <Link to={app.config.pkgrepositories(cluster || "", namespace || "")}>
- <CdsButton>Manage Package Repositories</CdsButton>
- </Link>
- <p>
- For help managing other packaging formats, such as Flux or Carvel, please refer to the{" "}
- <a
- target="_blank"
- rel="noopener noreferrer"
- href={`https://github.com/vmware-tanzu/kubeapps/tree/${appVersion}/site/content/docs/latest`}
- >
- Kubeapps documentation
- </a>
- .
- </p>
</div>
) : (
<Row>
diff --git a/dashboard/src/components/Header/Menu.tsx b/dashboard/src/components/Header/Menu.tsx
index c8ec1da8c..e59f90190 100644
--- a/dashboard/src/components/Header/Menu.tsx
+++ b/dashboard/src/components/Header/Menu.tsx
@@ -78,16 +78,6 @@ function Menu({ clusters, appVersion, logout }: IContextSelectorProps) {
<div className="dropdown-menu dropdown-configuration-menu" role="menu" hidden={!open}>
<div>
<label className="dropdown-menu-padding dropdown-menu-label">Administration</label>
- <Link
- to={app.config.pkgrepositories(clusters.currentCluster, namespaceSelected)}
- className="dropdown-menu-link"
- onClick={toggleOpen}
- >
- <div className="dropdown-menu-item" role="menuitem">
- <CdsIcon solid={true} size="md" shape="library" />{" "}
- <span>Package Repositories</span>
- </div>
- </Link>
<div className="dropdown-divider" role="separator" />
{featureFlags?.operators && (
<Link
Loading

0 comments on commit 3c9e50a

Please sign in to comment.