Zenhub Enterprise 4.3.0
These release notes are for Zenhub Enterprise for Virtual Machine and Zenhub Enterprise for Kubernetes.
- For all users using Zenhub on github.com, please check out our new feature announcements on our product changelog.
- For administrators planning upgrades, please refer to the "Important Upgrade Instructions for Administrators" section.
GitHub Enterprise Server compatibility
Zenhub Enterprise 4.3.0 supports GitHub Enterprise versions: 3.13 and 3.14
What's new in Zenhub Enterprise 4.3.0
We are thrilled to announce the release of Zenhub Enterprise 4.3.0 which contains a range of changes and security updates. Additionally, this release has been tested against the newly released Github Enterprise Server 3.14 and is compatible.
Features
Assumed estimates for unestimated Issues in Reports
It’s not uncommon for teams to work on and close issues without estimating them due to reasons like complexity, uncertainty, or oversight. But don't worry—Zenhub now assigns a default estimate of 1 story point to any planned and closed issues that were left unestimated.
This ensures your Velocity and Release Reports are powered up by default, providing more accurate reflections of your team's performance even if some estimates were missed.
Release Reports for Non-GitHub Users and Zenhub Issues
Release Reports are now accessible to users who are not connected to GitHub and for those working with Zenhub issues. This ensures a more comprehensive view of all issues in your releases, including Zenhub issues. Additionally, you can now collaborate and share your Release Reports with users not connected to GitHub, allowing them to follow the progress of your releases.
Zenhub Command Palette
Zenhub’s command palette is a universal search engine for Zenhub, making navigation a breeze. The command palette can be opened anywhere in the Zenhub web app using the keyboard shortcut [Command + K] on Mac or [Ctrl + K] on Windows. With it, you can easily navigate to features, take actions in Zenhub (like “create Issue”), or search for Issues and Epics in your workspace. Learn more here!
Inactive User Auditing
To help Zenhub Enterprise administrators identify and remove inactive seats, a new "Last Seen" column has been added to the list of Users in the settings area.
Roadmap Improvements
We’ve made a few improvements to the roadmap to make your organization-wide project planning and tracking easier.
- Undated items on the roadmap now appear at the bottom instead of the top, making it easier to see what your team is working on right away.
- Dependencies on the roadmap are now available for all users. (Previously some users on older versions of the product were not able to add them).
- Performance improvements mean that the roadmap loads up to 5x faster!
Performance Improvements
In 4.3 we made several core architectural changes that improve the performance of the app across a wide number of different areas. For a full breakdown of all the changes see our release notes post, but here are just a few highlights:
- Reduced rates of board load failures by 10x
- Improved board load time by up to 2x
- Improved issue page load time by up to 4x
- Improved daily feed load time by 33%
- Improved stability and speed of issue page updates
- Reduced memory usage of backend services with jemalloc implementation
Improved Milestone Support
We've made some improvements for teams who rely on GitHub Milestones:
- Improved the support for Milestones on the Velocity Report
- Filters now correctly apply for calculating average values
- Dated Milestones should now show in the Milestone selector
- Milestones with a due date will be plotted on the chart
- Milestones without a due date will be shown in the list below the chart
- Fixed several issues on the Milestone Report
- Issues closed within the dates of the milestone are added to the report
- Issues closed outside the Milestone date range will still be added to the report, but won't impact the burndown metrics
- Highlight more clearly cases where Milestones are missing their due dates
- Deleting a milestone from the "Milestones" page will now correctly handle situations where the Milestone might have been missing in one of the GitHub repositories
Security Fixes
- Package security updates
- Rails upgrade to major version 7
Known Issues
- Mozilla recently raised the minimum Firefox version required to run published Firefox extensions from 52.0 to 58.0. This results in failed validation during upload of the Zenhub Firefox extension. Until a fix is released, the workaround is to extract the firefox.zip, update
strict_min_version
at the bottom of the manifest.json file from52.0
to58.0
, and re-zip the bundle before upload. If you have any questions, please reach out to enterprise@zenhub.com.
VM Embedded Component Versions
Component | Version |
---|---|
Ubuntu | 22.04.4 |
K3s | v1.28.13+k3s1 |
Kubernetes | v1.28.13 |
Kustomize | v4.5.3 |
Fluentd | v1.16.6-debian-1.0 |
Postgresql | 15.4 |
MongoDB | 6.0.13 |
RabbitMQ | 3.8.35 |
Redis | 7.0.12 |
PgBouncer | 1.20.1 |
Grafana | 10.4.2 |
Prometheus | 2.45.0 |
kube-state-metrics/kube-state-metrics | v2.10.0 |
Important Upgrade Instructions for Administrators
Zenhub Enterprise for Virtual Machine
- You must be running 4.1.x or 4.2.x to perform the upgrade to ZHE 4.3.0
- For users currently running Zenhub Enterprise, contact our team for a download link for the 4.1.3 upgrade package. The upgrade process is detailed in our documentation.
- 4.3.0 includes a monitoring stack (experimental) that the administrator can deploy via
zhe-config --monitoring-stack deploy
Zenhub Enterprise for Kubernetes
⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 4.3 is now v1.28.
1. Prepare
- Get the
kustomization.yaml
you configured to setup Zenhub - Perform a diff to make sure no outstanding changes are waiting to be applied
kustomize build . | kubectl diff -f-
It should exit 0 and only display a warning of unused variables. If changes are pending, apply them before starting the upgrade process.
- Make a copy of your existing
kustomization.yaml
and keep it handy for the next step
2. Update kustomization.yaml
- Check out the
zenhub-enterprise
repository at the tag of this release - Populate the new
kustomization.yaml
with your existing configuration values
Be sure to replace any additional customized configuration (such as ingress, TLS configuration) with your original configuration from before as well.
- In ZHE 4.0 and onwards,
secret_key_base
is required to be a 42 byte string, any existing 38 byte string should be updated as described inkustomization.yaml
- If you are using your own registry and not Zenhub's registry, upload the new images tagged with this release to your registry.
3. Run configmap-generator.sh
Once you have setup all the configurations in your copy of kustomization.yaml
and are ready to deploy to your cluster, you must run the configmap-generator.sh
script that will fill placeholders in our Kubernetes manifests with your configuration values.
To run the script, navigate to the root of the directory containing your kustomization.yaml
file, which also contains the configmap-generator.sh
script. Then, run the script with these two commands:
chmod 700 configmap-generator.sh
./configmap-generator.sh
4. Application updates
In your new kustomization.yaml, confirm that the cluster image tags are set to the new images for this release:
If you are using your own registry, ensure that the newName fields are configured for that instead of Zenhub's
images:
- name: kraken-webapp
newName: us.gcr.io/zenhub-public/kraken-webapp
newTag: zhe-4.3.0
- name: kraken-extension
newName: us.gcr.io/zenhub-public/kraken-extension
newTag: zhe-4.3.0
- name: kraken-zhe-admin
newName: us.gcr.io/zenhub-public/kraken-zhe-admin
newTag: zhe-4.3.0
- name: raptor-backend
newName: us.gcr.io/zenhub-public/raptor-backend
newTag: zhe-4.3.0
- name: toad-backend
newName: us.gcr.io/zenhub-public/toad-backend
newTag: zhe-4.3.0
- name: sanitycheck
newName: us.gcr.io/zenhub-public/sanitycheck
newTag: zhe-4.3.0
- name: devsite
newName: us.gcr.io/zenhub-public/devsite
newTag: zhe-4.3.0
- name: busybox
newName: docker.io/library/busybox
newTag: latest
- name: nginx
newName: docker.io/library/nginx
newTag: latest
- First, delete any
raptor-db-migrate
andsanitycheck
jobs so they may be recreated without errors:
Make sure the status of the jobs are
Complete
and notRunning
kubectl -n <your_dedicated_namespace> delete job/raptor-db-migrate job/sanitycheck
- Then perform a diff to check what the upgrade will do (this command must be run from the directory that contains your
kustomization.yaml
kustomize build . | kubectl diff -f-
- If everything looks correct and there are no errors, you can deploy to the cluster via:
kustomize build . | kubectl apply -f-
7. Finalize
- Securely store the updated
kustomization.yaml