Skip to content

Releases: ZenHubHQ/zenhub-enterprise

Zenhub Enterprise 4.1.1

30 Jan 21:12
3997297
Compare
Choose a tag to compare

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.1.1 supports GitHub Enterprise versions: 3.9, 3.10, and 3.11

What's new in Zenhub Enterprise 4.1.1

We are thrilled to announce the release of Zenhub Enterprise 4.1.1 which contains a range of bug fixes and security updates

Features

No new features in this release

Security Fixes

  • Package security updates fixing critical and high CVE

Bug Fixes

  • Resolved a problem that caused the Chrome Web Store to reject publishing the browser extension due to additional requirements for Manifest V3.
  • Fixed a bug causing the pipeline dropdown not to work on the extension
  • Fixed a bug causing some settings such as Sprints or Epics to not save during Issue creation via the extension
  • Fixed a bug that caused upgrades to fail due to logrotate requesting too much CPU
  • Fixed a race condition that could cause upgrades to fail after k3s upgrade
  • Fixed a bug that caused authentication to fail when self-signed certificates were being used

Changes

  • Added support for refresh tokens for W3ID external provider authentication
  • Updated Redis from v7.0.5 to v7.0.12 (VM)
  • Added missing application logs to support bundle generation
  • Improved external authentication provider setup documentation

Known Issues

  • No known issues in this release

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.26.8+k3s1
Kubernetes v1.26.8
Kustomize v4.5.3
Fluentd v1.16.2-debian-1.0
Postgresql 15.4
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 7.0.12
PgBouncer 1.20.1

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

  • You must be running 4.0.X or 4.1.0 to perform the upgrade to ZHE 4.1.1

  • For users currently running Zenhub Enterprise, contact our team for a download link for the 4.1.1 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 4.1 is now v1.26.

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 in kustomization.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.1.1
  - name: kraken-extension
    newName: us.gcr.io/zenhub-public/kraken-extension
    newTag: zhe-4.1.1
  - name: kraken-zhe-admin
    newName: us.gcr.io/zenhub-public/kraken-zhe-admin
    newTag: zhe-4.1.1
  - name: raptor-backend
    newName: us.gcr.io/zenhub-public/raptor-backend
    newTag: zhe-4.1.1
  - name: toad-backend
    newName: us.gcr.io/zenhub-public/toad-backend
    newTag: zhe-4.1.1
  - name: sanitycheck
    newName: us.gcr.io/zenhub-public/sanitycheck
    newTag: zhe-4.1.1
  - name: devsite
    newName: us.gcr.io/zenhub-public/devsite
    newTag: zhe-4.1.1
  - name: busybox
    newName: docker.io/library/busybox
    newTag: latest
  - name: nginx
    newName: docker.io/library/nginx
    newTag: latest
  • First, delete any raptor-db-migrate and sanitycheck jobs so they may be recreated without errors:

Make sure the status of the jobs are Complete and not Running

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-

5. Database Changes for Zenhub Enterprise for Kubernetes

⚠️ NOTE: For upgrading to Zenhub Enterprise version 4.1 from 4.0.X, Zenhub will require a manual change to the PostgreSQL schema.
A constraint called pih_no_overlap from the pipeline_issue_histories table is required to be dropped and replaced.

To do this, you may follow the following steps:

  1. Ensure you have a backup of the existing PostgreSQL database. Implementation may vary depending on the PostgreSQL service provider
  2. Perform the following while connected to the PostgreSQL database:
ALTER table pipeline_issue_histories DROP CONSTRAINT pih_no_overlap;
ALTER TABLE ONLY public.pipeline_issue_histories
    ADD CONSTRAINT pih_no_overlap EXCLUDE USING gist (workspace_id WITH =, issue_id WITH =, tsrange(started_at, ended_at, '[)'::text) WITH &&) DEFERRABLE;
  1. Verify the completion of the above with the following PostgreSQL command which should return an empty result:
SELECT * FROM pg_stat_activity WHERE query LIKE '%public.pipeline_issue_histories%';

Next, proceed to run the regular data migration script.

⚠️ NOTE: Running this script is only required if you are upgrading from ZHE 4.0.X
⚠️ NOTE: If you are using stunnel, be sure to uncomment the relevant sections in update/batch_v1_job_data_migration.yaml

  • Run the script found in k8s-cluster/update/zhe-upgrade.sh via the commands below:

If you use the ZenHub registry

cd update
./zhe-upgrade.sh yourNamespace

If you use your own registry

cd update
./zhe-upgrade.sh yourNamespace yourRegistryName

6. Re Deploy Application

⚠️ NOTE: Running these commands is only required if you are upgrading from ZHE 4.0.X

The data migration script run in the previous step will have scaled down the application in order to safely migrate data without active database writes occurring. Now that the migration is complete, the application needs to be deployed to the normal desired operational state:

  • First perform a diff to check what will change (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

Zenhub Enterprise 4.1.0

20 Nov 22:56
fb72274
Compare
Choose a tag to compare

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.1.0 supports GitHub Enterprise versions: 3.9, 3.10, and 3.11

What's new in Zenhub Enterprise 4.1.0

We are thrilled to announce the release of Zenhub Enterprise 4.1.0, packed with a host of exciting new features designed to optimize your workflow, boost productivity, and heighten collaboration.

Features

Daily Feed

Daily Feed is here! The new tab on the left hand side provides an overview of what you previously worked on, currently are working on and potential blockers. You can also see your team's Daily Feed too!

Within the ‘currently working on’ section you will see these helpful tags we’ve added, where if you are needed for a code review it will appear as well as if you are working on an issue that is blocking another and if you are needed for your input for an estimate. For the blocked section, we are providing issues that you may be blocked by, your issues that need code revision etc.

daily_feed

Sprint insights

Now along with your Sprint burndown chart, at a glance, you can

  • Predict the likelihood of your team meeting your Sprint goals
  • Identify bottlenecks and areas for improvement that could potentially get in the way of your Sprint goals
  • Make data-driven decisions to adjust your sprint goals.
  • Provide transparency for your stakeholders to easily access your team's Sprint progress

sprint_insights

Dynamic Productivity Recommendations

This feature empowers developers and teams with intelligent insights to enhance their codebase operations and improve productivity. Say goodbye to the guesswork on improving your Issues completion and PR practices and hello to automated, data-driven suggestions that elevate your development workflow.

dynamic_recommendations

Notion Integration

Users can now paste a share link for a Notion page and have a document preview displayed in Zenhub. We often see users sharing Notion links within Zenhub Issues, Epics or Comments and wanted to introduce a more informative experience. With the new Notion Previews, users will be able to see the document title, author, created and edited date all within Zenhub. Check the docs to learn how to configure this integration.

notion_preview

Open Pull Request links in GitHub

We've introduced a setting that allows a user to enable PRs to open directly in GitHub from Zenhub. We've had customer feedback from both internal and external teams around this feature and appreciated the flexibility it brings

pull_request_links

Phone Home metrics for ZHE VM

We have automated the collection of the admin usage report as well as some other metrics on ZHE VM. These metrics are not sensitive, are stored securely and will be used to enhance our support capabilities. As this feature requires a connection to AWS, please reach out to enterprise@zenhub.com to enable this, or if you have any questions or concerns about this feature.

Security Fixes

  • Package security updates fixing critical and high CVE

Bug Fixes

  • Resolved a problem that caused the Chrome Web Store to reject publishing the browser extension due to additional requirements for Manifest V3.
  • Fixed a bug causing existing workspaces to sometimes not be found when using the browser extension in GitHub
  • Fixed a bug that causes the admin usage report not to return any results

Changes

  • With this release, our old Board is no longer available. We've worked hard over the past few months to make Board 2.0 better in every way (see recent updates), and with ZHE 4.1 it is now the de facto standard.
  • PostgreSQL as been upgraded from 11.16 to 15.4
  • K3s has been upgraded from v1.24.13+k3s1 to v1.26.8+k3s1
  • Kubernetes has been upgraded from v1.24.13 to v1.26.8
  • The built-in upgrade bundle rollback feature has been deprecated. VM or disk snapshots should be used to revert to a previous version in case of an upgrade failure.
  • Zenhub Enterprise for VM upgrade instructions. have been updated for clarity and to add the use of the tmux terminal multiplexer to protect the upgrade from possible SSH disconnects.

Known Issues

  • Authentication fails when self-signed TLS certificates are used
  • Logrotate image can be cleaned up by K8s garbage collector, causing failed log rotation jobs that consume system resources

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.26.8+k3s1
Kubernetes v1.26.8
Kustomize v4.5.3
Fluentd v1.16.2-debian-1.0
Postgresql 15.4
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 7.0.5
PgBouncer 1.20.1

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

  • You must be running 4.0.X to perform the upgrade to ZHE 4.1.0

  • For users currently running Zenhub Enterprise, contact our team for a download link for the 4.1.0 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 4.1 is now v1.26.

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 in kustomization.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.1.0
  - name: kraken-extension
    newName: us.gcr.io/zenhub-public/kraken-extension
    newTag: zhe-4.1.0
  - name: kraken-zhe-admin
    newName: us.gcr.io/zenhub-public/kraken-zhe-admin
    newTag: zhe-4.1.0
  - name: raptor-backend
    newName: us.gcr.io/zenhub-public/raptor-backend
    newTag: zhe-4.1.0
  - name: toad-backend
    newName: us.gcr.io/zenhub-public/toad-backend
    newTag: zhe-4.1.0
  - name: sanitycheck
    newName: us.gcr.io/zenhub-public/sanitycheck
    newTag: zhe-4.1.0
  - name: devsite
    newName: us.gcr.io/zenhub-public/devsite
    newTag: zhe-4.1.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 and sanitycheck jobs so they may be recreated without errors:

Make sure the status of the jobs are Complete and not Running

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-

5. Dat...

Zenhub Enterprise 4.0.2

26 Oct 22:44
707c374
Compare
Choose a tag to compare

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.0.2 supports GitHub Enterprise versions: 3.8, 3.9, 3.10

What's new in Zenhub Enterprise 4.0.2

We are thrilled to announce the release of Zenhub Enterprise 4.0.2, packed with a host of exciting new features designed to optimize your workflow, boost productivity, and heighten collaboration.

Features

Zenhub Platform

New authentication providers

To leverage platform features, Zenhub now supports authentication with Email/Password, IBM W3ID, Azure Active Directoryl, LDAP and SAML. Users can sign up using these methods without connecting to a GitHub account, which means you can save costs on unnecessary GitHub seats for non-technical team members.

Zenhub Issues

Zenhub Issues enables teams to work together in Zenhub without a GitHub account. Zenhub Issues function similarly to GitHub Issues but are a separate entity from GitHub. These are great for team members who don’t use GitHub or for tracking non-development tasks.

Converting Zenhub Issues to GitHub Issues

You can now convert Zenhub Issues to GitHub Issues. This enables users not using GitHub to create issues that may later evolve into development tasks.

Disconnecting GitHub Accounts from Zenhub

You can disconnect your GitHub account by going to Account Management > Settings > Connected Accounts.

Classic GitHub Projects Importer for Platform Users

For users migrating from GitHub Projects to Zenhub, we've extended the capabilities of our Classic GitHub Projects Importer. Smoothly import pipelines, repositories, and issues from existing classic GitHub project boards into your Zenhub workspace.

zhe4_platform

Onboarding

Organization access requests for companies and teams

Zenhub Organizations are now visible at the time of onboarding to users signing up with the same email domain as the Zenhub Organization creator. Users associated by domain no longer need to be invited to join a new organization.

“Allowed Domains” for organization access

The “Allowed Domains” feature enables organizations to specify the domains from which they accept requests, providing an extra layer of security and speeding up user onboarding.

New permissions system

Now, in Zenhub, existing GitHub organization admins are automatically granted Zenhub organization admin status. All other teammates will receive “member” status.

Projects flyover

Every project on the roadmap now has a dedicated flyover, which provides a description of the project and shows the contributors who created and closed the project.

zhe4_onboarding

Board enhancements

Milestones support for Board 2.0

Zenhub has brought back milestone support to Board 2.0. You can now filter issues by Milestone or with no Milestones, bulk edit, and multi-select Milestones, add/remove Milestones from issues, and Show/Hide Milestones from issue cards.

Board 2.0 Improvements

Board 2.0 now includes a smoother drag-and-drop functionality, multi-column pipelines, and a warning message when moving issues from normal priority to high priority.

Saved Views

The saved view feature enables you to apply a set of filters to your board and save that board configuration as a Saved View for easy access.

zhe4_board_enhancements

Integrations

Figma, Miro & Loom Embeds

Boost collaboration by embedding Figma, Miro, or Loom files into Zenhub. Miro and Figma embeds in Zenhub display a preview of the content from the file. Loom embeds enable users to watch full videos inside Zenhub – no more tab switching!

Figma & Miro embeds are only available for Zenhub Issues, Zenhub Epics, and Zenhub Comments.

These integrations will not work in an air-gapped environment.

zhe4_integrations

Extras

GitHub Productivity Insights

GitHub Productivity Insights is a new dashboard that gives you quick views of your team’s performance metrics and compares them to the top-performing teams in GitHub. The dashboard also includes tailored suggestions for how to enhance your team’s performance.

zhe4_insights

Security Fixes

  • Package security updates

Bug Fixes

  • Fixed a bug causing the chrome extension url to be incorrectly set

Changes

  • No changes in the 4.0.2 patch release

Known Issues

  • The Chrome Web Store may reject publishing the browser extension due to additional requirements for Manifest V3. This is resolved in Zenhub Enterprise 4.1.
  • In some cases, admin permissions may be lost on upgrade. To restore admin permissions, go to https://<subdomain_suffix>.<domain_tld>:8443/settings and enter the admin username/email
  • When removing "Seats" the available license count doesn't update until a page refresh
  • When using W3ID integration, some users are seeing their name show up as empty
  • In some rare cases, deleting a workspace displays an error message
  • In some rare cases, new users who sign up for Zenhub are taken directly to the board instead of being shown the onboarding form
  • Usage report data from before Zenhub Enterprise v4.0 is not displayed in the admin dashboard
  • When trying to create an account from the login page an 'Account does not exist. Please sign up instead.' error occurs. This is expected behaviour, to create a new account you must use the sign-up page.

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.24.13+k3s1
Kubernetes v1.24.13
Kustomize v4.5.3
Fluentd v1.16.2-debian-1.0
Postgresql 11.16
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 7.0.5
PgBouncer 1.17.0

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

⚠️ NOTE: For the upgrade from ZHE 3.5 -> ZHE 4.0, the regular rollback steps cannot be used. Please perform a machine level snapshot prior to upgrading to use as a backup in case you need to revert back to ZHE 3.5 for any reason.

  • You must be running ZHE 3.5.X, 4.0.0 or 4.0.1 to perform the upgrade to ZHE 4.0.2.

  • For users currently running Zenhub Enterprise, contact our team for a download link for the 4.0.2 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 4.0 is now v1.24.

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, secret_key_base is required to be a 42 byte string, any existing 38 byte string should be updated as described in kustomization.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.0.2
  - name: kraken-extension
    newName: us.gcr.io/zenhub-public/kraken-extension
    newTag: zhe-4.0.2
  - name: kraken-zhe-admin
    newName: us.gcr.io/zenhub-...

Zenhub Enterprise 4.0.1

05 Oct 00:37
a6e84a8
Compare
Choose a tag to compare

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.0.1 supports GitHub Enterprise versions: 3.8, 3.9, 3.10

What's new in Zenhub Enterprise 4.0.1

We are thrilled to announce the release of Zenhub Enterprise 4.0.1, packed with a host of exciting new features designed to optimize your workflow, boost productivity, and heighten collaboration.

Features

Zenhub Platform

New authentication providers

To leverage platform features, Zenhub now supports authentication with Email/Password, IBM W3ID, Azure Active Directoryl, LDAP and SAML. Users can sign up using these methods without connecting to a GitHub account, which means you can save costs on unnecessary GitHub seats for non-technical team members.

Zenhub Issues

Zenhub Issues enables teams to work together in Zenhub without a GitHub account. Zenhub Issues function similarly to GitHub Issues but are a separate entity from GitHub. These are great for team members who don’t use GitHub or for tracking non-development tasks.

Converting Zenhub Issues to GitHub Issues

You can now convert Zenhub Issues to GitHub Issues. This enables users not using GitHub to create issues that may later evolve into development tasks.

Disconnecting GitHub Accounts from Zenhub

You can disconnect your GitHub account by going to Account Management > Settings > Connected Accounts.

Classic GitHub Projects Importer for Platform Users

For users migrating from GitHub Projects to Zenhub, we've extended the capabilities of our Classic GitHub Projects Importer. Smoothly import pipelines, repositories, and issues from existing classic GitHub project boards into your Zenhub workspace.

zhe4_platform

Onboarding

Organization access requests for companies and teams

Zenhub Organizations are now visible at the time of onboarding to users signing up with the same email domain as the Zenhub Organization creator. Users associated by domain no longer need to be invited to join a new organization.

“Allowed Domains” for organization access

The “Allowed Domains” feature enables organizations to specify the domains from which they accept requests, providing an extra layer of security and speeding up user onboarding.

New permissions system

Now, in Zenhub, existing GitHub organization admins are automatically granted Zenhub organization admin status. All other teammates will receive “member” status.

Projects flyover

Every project on the roadmap now has a dedicated flyover, which provides a description of the project and shows the contributors who created and closed the project.

zhe4_onboarding

Board enhancements

Milestones support for Board 2.0

Zenhub has brought back milestone support to Board 2.0. You can now filter issues by Milestone or with no Milestones, bulk edit, and multi-select Milestones, add/remove Milestones from issues, and Show/Hide Milestones from issue cards.

Board 2.0 Improvements

Board 2.0 now includes a smoother drag-and-drop functionality, multi-column pipelines, and a warning message when moving issues from normal priority to high priority.

Saved Views

The saved view feature enables you to apply a set of filters to your board and save that board configuration as a Saved View for easy access.

zhe4_board_enhancements

Integrations

Figma, Miro & Loom Embeds

Boost collaboration by embedding Figma, Miro, or Loom files into Zenhub. Miro and Figma embeds in Zenhub display a preview of the content from the file. Loom embeds enable users to watch full videos inside Zenhub – no more tab switching!

Figma & Miro embeds are only available for Zenhub Issues, Zenhub Epics, and Zenhub Comments.

These integrations will not work in an air-gapped environment.

zhe4_integrations

Extras

GitHub Productivity Insights

GitHub Productivity Insights is a new dashboard that gives you quick views of your team’s performance metrics and compares them to the top-performing teams in GitHub. The dashboard also includes tailored suggestions for how to enhance your team’s performance.

zhe4_insights

Security Fixes

  • Package security updates

Bug Fixes

  • Fixed a bug causing users to be removed from their Zenhub organization after an upgrade to v4.0
  • Fixed a bug causing the v4.0 upgrade to fail during data migration
  • Fixed a bug causing upgrades from ZHE 3.5.0 to fail
  • Fixed a bug in the v4.0 data migration which sometimes caused blank names to display on the account management page
  • Fixed a bug causing users that signed up via an invite link to bypass proper application onboarding
  • Fixed a bug causing account creation when selecting an external authentication method on the "login" page without an account. Account creation can now only occur on the "sign up" page.
  • Added duplicate account detection and error handling for external authentication methods
  • Fixed a bug that only allowed one person to use the "Invite to organization" link
  • Fixed a bug that made users lose access to Workspaces on upgrade
  • Fixed an error when uploading the Firefox extension to the admin dashboard

Changes

  • Added the option to open pull requests directly in GitHub when selected in Zenhub
  • Added cleanup of Access Requests when a Zenhub organization is deleted
  • The minimum K8s version supported for ZHE for K8s is v1.24
  • Added support for SAML based external authentication providers

Known Issues

  • The Chrome Web Store may reject publishing the browser extension due to additional requirements for Manifest V3. This is resolved in Zenhub Enterprise 4.1.
  • The 'Install Zenhub for Google Chrome' link on the home page does not work. The extension can still be installed by directly visiting the extension on the chrome web store after publishing.
  • In some cases, admin permissions may be lost on upgrade. To restore admin permissions, go to https://<subdomain_suffix>.<domain_tld>:8443/settings and enter the admin username/email
  • When removing "Seats" the available license count doesn't update until a page refresh
  • When using W3ID integration, some users are seeing their name show up as empty
  • In some rare cases, deleting a workspace displays an error message
  • In some rare cases, new users who sign up for Zenhub are taken directly to the board instead of being shown the onboarding form
  • Usage report data from before Zenhub Enterprise v4.0 is not displayed in the admin dashboard
  • When trying to create an account from the login page an 'Account does not exist. Please sign up instead.' error occurs. This is expected behaviour, to create a new account you must use the sign-up page.

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.24.13+k3s1
Kubernetes v1.24.13
Kustomize v4.5.3
Fluentd v1.16.2-debian-1.0
Postgresql 11.16
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 7.0.5
PgBouncer 1.17.0

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

⚠️ NOTE: For the upgrade from ZHE 3.5 -> ZHE 4.0, the regular rollback steps cannot be used. Please perform a machine level snapshot prior to upgrading to use as a backup in case you need to revert back to ZHE 3.5 for any reason.

  • You must be running ZHE 3.5.X or 4.0.0 to perform the upgrade to ZHE 4.0.1.

  • For users currently running Zenhub Enterprise, contact our team for a download link for the 4.0.1 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 4.0 is now v1.24.

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, secret_key_base is required to be a 42 byte string, **any existing 38 ...

Zenhub Enterprise 4.0.0

08 Sep 02:20
c8fd92d
Compare
Choose a tag to compare

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.0.0 supports GitHub Enterprise versions: 3.8, 3.9, 3.10

What's new in Zenhub Enterprise 4.0.0

We are thrilled to announce the release of Zenhub Enterprise 4.0, packed with a host of exciting new features designed to optimize your workflow, boost productivity, and heighten collaboration.

Features

Zenhub Platform

New authentication providers

To leverage platform features, Zenhub now supports authentication with Email/Password, IBM W3ID, Azure Active Directory and LDAP. Users can sign up using these methods without connecting to a GitHub account, which means you can save costs on unnecessary GitHub seats for non-technical team members.

Zenhub Issues

Zenhub Issues enables teams to work together in Zenhub without a GitHub account. Zenhub Issues function similarly to GitHub Issues but are a separate entity from GitHub. These are great for team members who don’t use GitHub or for tracking non-development tasks.

Converting Zenhub Issues to GitHub Issues

You can now convert Zenhub Issues to GitHub Issues. This enables users not using GitHub to create issues that may later evolve into development tasks.

Disconnecting GitHub Accounts from Zenhub

You can disconnect your GitHub account by going to Account Management > Settings > Connected Accounts.

Classic GitHub Projects Importer for Platform Users

For users migrating from GitHub Projects to Zenhub, we've extended the capabilities of our Classic GitHub Projects Importer. Smoothly import pipelines, repositories, and issues from existing classic GitHub project boards into your Zenhub workspace.

zhe4_platform

Onboarding

Organization access requests for companies and teams

Zenhub Organizations are now visible at the time of onboarding to users signing up with the same email domain as the Zenhub Organization creator. Users associated by domain no longer need to be invited to join a new organization.

“Allowed Domains” for organization access

The “Allowed Domains” feature enables organizations to specify the domains from which they accept requests, providing an extra layer of security and speeding up user onboarding.

New permissions system

Now, in Zenhub, existing GitHub organization admins are automatically granted Zenhub organization admin status. All other teammates will receive “member” status.

Projects flyover

Every project on the roadmap now has a dedicated flyover, which provides a description of the project and shows the contributors who created and closed the project.

zhe4_onboarding

Board enhancements

Milestones support for Board 2.0

Zenhub has brought back milestone support to Board 2.0. You can now filter issues by Milestone or with no Milestones, bulk edit, and multi-select Milestones, add/remove Milestones from issues, and Show/Hide Milestones from issue cards.

Board 2.0 Improvements

Board 2.0 now includes a smoother drag-and-drop functionality, multi-column pipelines, and a warning message when moving issues from normal priority to high priority.

Saved Views

The saved view feature enables you to apply a set of filters to your board and save that board configuration as a Saved View for easy access.

zhe4_board_enhancements

Integrations

Figma, Miro & Loom Embeds

Boost collaboration by embedding Figma, Miro, or Loom files into Zenhub. Miro and Figma embeds in Zenhub display a preview of the content from the file. Loom embeds enable users to watch full videos inside Zenhub – no more tab switching!

Figma & Miro embeds are only available for Zenhub Issues, Zenhub Epics, and Zenhub Comments.

These integrations will not work in an air-gapped environment.

zhe4_integrations

Extras

GitHub Productivity Insights

GitHub Productivity Insights is a new dashboard that gives you quick views of your team’s performance metrics and compares them to the top-performing teams in GitHub. The dashboard also includes tailored suggestions for how to enhance your team’s performance.

zhe4_insights

Security Fixes

  • Package security updates

Bug Fixes

  • Fixed a bug in the workspace switcher that caused the 'Manage organizations' link to direct to the wrong page
  • Ansible no longer displays FAILED! when checking if images need to be imported
  • Failed ZHE backups now correctly clean up any Jobs, ConfigMaps, PVCs or PVs still present after the failure

Changes

  • Updated k3s to v1.24.13
  • Updated Redis to v7.0.5
  • Updated Fluentd to v1.16.2
  • The minimum K8s version supported for ZHE for K8s is v1.24

Known Issues

  • The Chrome Web Store may reject publishing the browser extension due to additional requirements for Manifest V3. This is resolved in Zenhub Enterprise 4.1.
  • In some cases, admin permissions may be lost on upgrade. To restore admin permissions, go to https://<subdomain_suffix>.<domain_tld>:8443/settings and enter the admin username/email
  • Uploading the Firefox xpi to the admin portal causes an error. To resolve it, open the .zip file and remove the last trailing comma in the authOptions list in js/built/config.js, then zip the file up again before continuing.
  • When removing "Seats" the available license count doesn't update until a page refresh
  • When using W3ID integration, some users are seeing their name show up as empty
  • In some rare cases, deleting a workspace displays an error message
  • In some rare cases, new users who sign up for Zenhub are taken directly to the board instead of being shown the onboarding form
  • Usage report data from before Zenhub Enterprise v4.0 is not displayed in the admin dashboard
  • When trying to create an account from the login page an 'Account does not exist. Please sign up instead.' error occurs. This is expected behaviour, to create a new account you must use the sign-up page.

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.24.13+k3s1
Kubernetes v1.24.13
Kustomize v4.5.3
Fluentd v1.16.2-debian-1.0
Postgresql 11.16
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 7.0.5
PgBouncer 1.17.0

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

⚠️ NOTE: For the upgrade from ZHE 3.5 -> ZHE 4.0, the regular rollback steps cannot be used. Please perform a machine level snapshot prior to upgrading to use as a backup in case you need to revert back to ZHE 3.5 for any reason.

  • You must be running ZHE 3.5.X to perform the upgrade to ZHE 4.0.0.

  • For users currently running Zenhub Enterprise, look for an email from our team which will include a download link for the 4.0.0 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 4.0 is now v1.24.

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, secret_key_base is required to be a 42 byte string, any existing 38 byte string should be updated as described in kustomization.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-generato...

Zenhub Enterprise 3.5.4

27 Jun 00:49
552b002
Compare
Choose a tag to compare

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.

IMPORTANT: Zenhub Enterprise 3.5.4 supports GitHub Enterprise versions: 3.6, 3.7, 3.8, 3.9

What's new in Zenhub Enterprise 3.5.4

Features

  • No new features in this patch release

Security Fixes

  • Package security updates

Bug Fixes

  • Fixed an application container resource scaling issue for 'medium' and 'large' VM sizes
  • Fixed a bug that caused only the initial run of zhe-config to work, meaning subsequent runs did not apply changes
  • Updated the certificate check in zhe-config --health-check to ignore unused certificates from before K3s 1.22.10

Changes

  • Added option for setting custom PgBouncer configuration on Zenhub for K8s

Known Issues

  • The Chrome Web Store may reject publishing the browser extension due to additional requirements for Manifest V3. This is resolved in Zenhub Enterprise 4.1.
  • Too many authentication failures may be reported when attempting to SSH into the VM, which can be caused by multiple SSH keys loaded in the connecting workstation's SSH agent. A workaround is present in the documentation.
  • Open source repos search is not functional.
  • Upgrade process hangs with TASK [Gathering Facts]
    • As a workaround, you can stop the ansible playbook with Ctrl+C and run zhe-config --config-file <path_to_your_configuration.yaml> which will resume the upgrade.
  • In some cases, Roadmaps can fail to load with 'Something went wrong' if repositories within them were deleted in GitHub
    • A workaround is available, please contact support

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.22.10+k3s1
Kubernetes v1.22.10
Kustomize v4.5.3
Fluentd v1.15-debian-1
Postgresql 11.16
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 6.2.7
PgBouncer 1.17.0

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

⚠️ NOTE: For the upgrade from ZHE 3.4 -> ZHE 3.5, the regular rollback steps cannot be used. Please perform a machine level snapshot prior to upgrading to use as a backup in case you need to revert back to ZHE 3.4 for any reason.

  • You must be running ZHE 3.4.X or an earlier version of 3.5 to perform the upgrade to ZHE 3.5.4.

  • For users currently running Zenhub Enterprise, look for an email from our team which will include a download link for the 3.5.4 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 3.5 is v1.22

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.

  • Two new ingress definitions have been added to this release: options/ingress/ingress-api-public.yaml and options/ingress/ingress-devsite.yaml. You will need to set the TLS secret name and annotations to suit your ingress, similar to your other configured Zenhub ingress objects.
  • ZHE 3.5 adds a developer site that contains documentation and a graphiql explorer for the new GraphQL API. To configure the subdomain for this site, you must set a value for the new configuration key graphiql_explorer_subdomain in the kustomization.yaml file. The value can be left as the default developers if desired. The resulting site will be available at developers-<subdomain_suffix>.<domain_tld>. You will need to setup a new DNS route for this domain pointing to the same location as your main DNS route for Zenhub.
  • ZHE 3.5 adds PgBouncer in front of your postgres database. PgBouncer runs in the cluster. To make set up more simple, your configuration will need to be updated so that postgres_url now instead points to the PgBouncer service, and the new pgbouncer_url key should be configured to point to the actual postgres database. The kustomization.yaml file for ZHE 3.5 contains these instructions as comments and configuration placeholders, however feel free to reach out to enterprise@zenhub.com for support if you have any questions, since this change is not trivial.
  • 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-3.5.4
  - name: kraken-extension
    newName: us.gcr.io/zenhub-public/kraken-extension
    newTag: zhe-3.5.4
  - name: kraken-zhe-admin
    newName: us.gcr.io/zenhub-public/kraken-zhe-admin
    newTag: zhe-3.5.4
  - name: raptor-backend
    newName: us.gcr.io/zenhub-public/raptor-backend
    newTag: zhe-3.5.4
  - name: toad-backend
    newName: us.gcr.io/zenhub-public/toad-backend
    newTag: zhe-3.5.4
  - name: sanitycheck
    newName: us.gcr.io/zenhub-public/sanitycheck
    newTag: zhe-3.5.4
  - name: devsite
    newName: us.gcr.io/zenhub-public/devsite
    newTag: zhe-3.5.4
  - name: busybox
    newName: docker.io/library/busybox
    newTag: latest
  - name: nginx
    newName: docker.io/library/nginx
    newTag: latest
  • First, delete any raptor-db-migrate and sanitycheck jobs so they may be recreated without errors:

Make sure the status of the jobs are Complete and not Running

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-

5. Database changes

⚠️ NOTE: Running this script is only required if you are upgrading from ZHE 3.4.

  • Run the script found in k8s-cluster/update/zhe-upgrade.sh via the commands below:

If you use the ZenHub registry

cd update
./zhe-upgrade.sh yourNamespace

If you use your own registry

cd update
./zhe-upgrade.sh yourNamespace yourRegistryName

6. Re Deploy Application

⚠️ NOTE: Running these commands is only required if you are upgrading from ZHE 3.4.

The data migration script run in the previous step will have scaled down the application in order to safely migrate data without active database writes occurring. Now that the migration is complete, the application needs to be deployed to the normal desired operational state:

  • First perform a diff to check what will change (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

Zenhub Enterprise 3.5.3

04 May 22:42
3bcab75
Compare
Choose a tag to compare

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.

IMPORTANT: Zenhub Enterprise 3.5.3 supports GitHub Enterprise versions: 3.6, 3.7, 3.8

What's new in Zenhub Enterprise 3.5.3

Features

  • No new features in this patch release

Security Fixes

  • Package security updates

Bug Fixes

  • Fixed several links in the Account management "API" page that linked to the Zenhub Cloud developer site instead of the self-hosted developer site

Changes

  • Support bundle generation on ZHE for VM is more resilient
  • Added support bundle generation for ZHE for k8s
  • Added the ability to directly upload support bundles to Zenhub Enterprise Support
  • Optimized the application to make fewer API calls to GitHub
  • Removed numerous warning level logs

Known Issues

  • The Chrome Web Store may reject publishing the browser extension due to additional requirements for Manifest V3. This is resolved in Zenhub Enterprise 4.1.
  • Too many authentication failures may be reported when attempting to SSH into the VM, which can be caused by multiple SSH keys loaded in the connecting workstation's SSH agent. A workaround is present in the documentation.
  • Open source repos search is not functional.
  • zhe-config --health-check may return a false positive failure for the k3s_cert_test.py test due to k3s deprecating the client-cloud-controller.crt certificate in the upgrade to v1.22.
  • Upgrade process hangs with TASK [Gathering Facts]
    • As a workaround, you can stop the ansible playbook with Ctrl+C and run zhe-config --config-file <path_to_your_configuration.yaml> which will resume the upgrade.

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.22.10+k3s1
Kubernetes v1.22.10
Kustomize v4.5.3
Fluentd v1.15-debian-1
Postgresql 11.16
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 6.2.7
PgBouncer 1.17.0

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

⚠️ NOTE: For the upgrade from ZHE 3.4 -> ZHE 3.5, the regular rollback steps cannot be used. Please perform a machine level snapshot prior to upgrading to use as a backup in case you need to revert back to ZHE 3.4 for any reason.

  • You must be running ZHE 3.4.X, 3.5.0, 3.5.1, or 3.5.2 to perform the upgrade to ZHE 3.5.3.

  • For users currently running Zenhub Enterprise, look for an email from our team which will include a download link for the 3.5.3 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 3.5 is v1.22

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.

  • Two new ingress definitions have been added to this release: options/ingress/ingress-api-public.yaml and options/ingress/ingress-devsite.yaml. You will need to set the TLS secret name and annotations to suit your ingress, similar to your other configured Zenhub ingress objects.
  • ZHE 3.5 adds a developer site that contains documentation and a graphiql explorer for the new GraphQL API. To configure the subdomain for this site, you must set a value for the new configuration key graphiql_explorer_subdomain in the kustomization.yaml file. The value can be left as the default developers if desired. The resulting site will be available at developers-<subdomain_suffix>.<domain_tld>. You will need to setup a new DNS route for this domain pointing to the same location as your main DNS route for Zenhub.
  • ZHE 3.5 adds PgBouncer in front of your postgres database. PgBouncer runs in the cluster. To make set up more simple, your configuration will need to be updated so that postgres_url now instead points to the PgBouncer service, and the new pgbouncer_url key should be configured to point to the actual postgres database. The kustomization.yaml file for ZHE 3.5 contains these instructions as comments and configuration placeholders, however feel free to reach out to enterprise@zenhub.com for support if you have any questions, since this change is not trivial.
  • 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-3.5.3
  - name: kraken-extension
    newName: us.gcr.io/zenhub-public/kraken-extension
    newTag: zhe-3.5.3
  - name: kraken-zhe-admin
    newName: us.gcr.io/zenhub-public/kraken-zhe-admin
    newTag: zhe-3.5.3
  - name: raptor-backend
    newName: us.gcr.io/zenhub-public/raptor-backend
    newTag: zhe-3.5.3
  - name: toad-backend
    newName: us.gcr.io/zenhub-public/toad-backend
    newTag: zhe-3.5.3
  - name: sanitycheck
    newName: us.gcr.io/zenhub-public/sanitycheck
    newTag: zhe-3.5.3
  - name: devsite
    newName: us.gcr.io/zenhub-public/devsite
    newTag: zhe-3.5.3
  - name: busybox
    newName: docker.io/library/busybox
    newTag: latest
  - name: nginx
    newName: docker.io/library/nginx
    newTag: latest
  • First, delete any raptor-db-migrate and sanitycheck jobs so they may be recreated without errors:

Make sure the status of the jobs are Complete and not Running

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-

5. Database changes

⚠️ NOTE: Running this script is only required if you are upgrading from ZHE 3.4.

  • Run the script found in k8s-cluster/update/zhe-upgrade.sh via the commands below:

If you use the ZenHub registry

cd update
./zhe-upgrade.sh yourNamespace

If you use your own registry

cd update
./zhe-upgrade.sh yourNamespace yourRegistryName

6. Re Deploy Application

⚠️ NOTE: Running these commands is only required if you are upgrading from ZHE 3.4.

The data migration script run in the previous step will have scaled down the application in order to safely migrate data without active database writes occurring. Now that the migration is complete, the application needs to be deployed to the normal desired operational state:

  • First perform a diff to check what will change (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

Zenhub Enterprise 3.5.2

04 Apr 14:10
0e00bca
Compare
Choose a tag to compare

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.

IMPORTANT: Zenhub Enterprise 3.5.2 supports GitHub Enterprise versions: 3.6, 3.7, 3.8

What's new in Zenhub Enterprise 3.5.2

Features

  • No new features in this patch release

Security Fixes

  • Package security updates

Bug Fixes

  • Fixed bug causing issues to occasionally disappear from the board when the board is filtered
  • Link to update Github profile in the 'Account management' menu has been updated to point to the respective Github host instead of github.com
  • Fixed bug causing the zhe-config --support-bundle not to work in previous ZHE 3.5 releases
  • Fixed bug causing the zhe-config --import-images not to work in previous ZHE 3.5 releases

Changes

  • Added support for GHE 3.8
  • The default domain name for the new developer site has been updated to https://developers-<subdomain>.<domain>
  • TLS is now configurable for the new developer site on ZHE for VM

Known Issues

  • The Chrome Web Store may reject publishing the browser extension due to additional requirements for Manifest V3. This is resolved in Zenhub Enterprise 4.1.
  • Too many authentication failures may be reported when attempting to SSH into the VM, which can be caused by multiple SSH keys loaded in the connecting workstation's SSH agent. A workaround is present in the documentation.
  • Open source repos search is not functional.
  • zhe-config --health-check may return a false positive failure for the k3s_cert_test.py test due to k3s deprecating the client-cloud-controller.crt certificate in the upgrade to v1.22.
  • Upgrade process hangs with TASK [Gathering Facts]
    • As a workaround, you can stop the ansible playbook with Ctrl+C and run zhe-config --config-file <path_to_your_configuration.yaml> which will resume the upgrade.

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.22.10+k3s1
Kubernetes v1.22.10
Kustomize v4.5.3
Fluentd v1.15-debian-1
Postgresql 11.16
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 6.2.7
PgBouncer 1.17.0

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

⚠️ NOTE: For the upgrade from ZHE 3.4 -> ZHE 3.5, the regular rollback steps cannot be used. Please perform a machine level snapshot prior to upgrading to use as a backup in case you need to revert back to ZHE 3.4 for any reason.

  • You must be running ZHE 3.4.X, 3.5.0, or 3.5.1 to perform the upgrade to ZHE 3.5.2.

  • For users currently running Zenhub Enterprise, look for an email from our team which will include a download link for the 3.5.2 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 3.5 is v1.22

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.

  • Two new ingress definitions have been added to this release: options/ingress/ingress-api-public.yaml and options/ingress/ingress-devsite.yaml. You will need to set the TLS secret name and annotations to suit your ingress, similar to your other configured Zenhub ingress objects.
  • ZHE 3.5 adds a developer site that contains documentation and a graphiql explorer for the new GraphQL API. To configure the subdomain for this site, you must set a value for the new configuration key graphiql_explorer_subdomain in the kustomization.yaml file. The value can be left as the default developers if desired. The resulting site will be available at developers-<subdomain_suffix>.<domain_tld>. You will need to setup a new DNS route for this domain pointing to the same location as your main DNS route for Zenhub.
  • ZHE 3.5 adds PgBouncer in front of your postgres database. PgBouncer runs in the cluster. To make set up more simple, your configuration will need to be updated so that postgres_url now instead points to the PgBouncer service, and the new pgbouncer_url key should be configured to point to the actual postgres database. The kustomization.yaml file for ZHE 3.5 contains these instructions as comments and configuration placeholders, however feel free to reach out to enterprise@zenhub.com for support if you have any questions, since this change is not trivial.
  • 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-3.5.2
  - name: kraken-extension
    newName: us.gcr.io/zenhub-public/kraken-extension
    newTag: zhe-3.5.2
  - name: kraken-zhe-admin
    newName: us.gcr.io/zenhub-public/kraken-zhe-admin
    newTag: zhe-3.5.2
  - name: raptor-backend
    newName: us.gcr.io/zenhub-public/raptor-backend
    newTag: zhe-3.5.2
  - name: toad-backend
    newName: us.gcr.io/zenhub-public/toad-backend
    newTag: zhe-3.5.2
  - name: sanitycheck
    newName: us.gcr.io/zenhub-public/sanitycheck
    newTag: zhe-3.5.2
  - name: devsite
    newName: us.gcr.io/zenhub-public/devsite
    newTag: zhe-3.5.2
  - name: busybox
    newName: docker.io/library/busybox
    newTag: latest
  - name: nginx
    newName: docker.io/library/nginx
    newTag: latest
  • First, delete any raptor-db-migrate and sanitycheck jobs so they may be recreated without errors:

Make sure the status of the jobs are Complete and not Running

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-

5. Database changes

⚠️ NOTE: Running this script is only required if you are upgrading from ZHE 3.4.

  • Run the script found in k8s-cluster/update/zhe-upgrade.sh via the commands below:

If you use the ZenHub registry

cd update
./zhe-upgrade.sh yourNamespace

If you use your own registry

cd update
./zhe-upgrade.sh yourNamespace yourRegistryName

6. Re Deploy Application

⚠️ NOTE: Running these commands is only required if you are upgrading from ZHE 3.4.

The data migration script run in the previous step will have scaled down the application in order to safely migrate data without active database writes occurring. Now that the migration is complete, the application needs to be deployed to the normal desired operational state:

  • First perform a diff to check what will change (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

Zenhub Enterprise 3.5.1

09 Feb 19:18
adfd011
Compare
Choose a tag to compare

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.

IMPORTANT: Zenhub Enterprise 3.5.1 supports GitHub Enterprise versions: 3.6, 3.7

What's new in Zenhub Enterprise 3.5.1

Features

  • No new features in this patch release

Security Fixes

  • Package security updates

Bug Fixes

  • Fixed a UI issue affecting navigation on the Zenhub Enterprise Account Dashboard.
  • Fixed an issue preventing publishing the Zenhub Firefox extension.

Changes

  • No new changes in this patch release

Known Issues

  • The Chrome Web Store may reject publishing the browser extension due to additional requirements for Manifest V3. This is resolved in Zenhub Enterprise 4.1.
  • On ZHE VM, the new developer site and GraphQL explorer use an unsecured connection.
  • Generating support bundles is not working.
  • Too many authentication failures may be reported when attempting to SSH into the VM, which can be caused by multiple SSH keys loaded in the connecting workstation's SSH agent. A workaround is present in the documentation.
  • Open source repos search is not functional.
  • zhe-config --health-check may return a false positive failure for the k3s_cert_test.py test due to k3s deprecating the client-cloud-controller.crt certificate in the upgrade to v1.22.
  • Upgrade process hangs with TASK [Gathering Facts]
    • As a workaround, you can stop the ansible playbook with Ctrl+C and run zhe-config --config-file <path_to_your_configuration.yaml> which will resume the upgrade.

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.22.10+k3s1
Kubernetes v1.22.10
Kustomize v4.5.3
Fluentd v1.15-debian-1
Postgresql 11.16
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 6.2.7
PgBouncer 1.17.0

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

⚠️ NOTE: For the upgrade from ZHE 3.4 -> ZHE 3.5, the regular rollback steps cannot be used. Please perform a machine level snapshot prior to upgrading to use as a backup in case you need to revert back to ZHE 3.4 for any reason.

  • You must be running ZHE 3.4.X or 3.5.0 to perform the upgrade to ZHE 3.5.1.

  • For users currently running Zenhub Enterprise, look for an email from our team which will include a download link for the 3.5.1 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 3.5 is v1.22

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.

  • Two new ingress definitions have been added to this release: options/ingress/ingress-api-public.yaml and options/ingress/ingress-devsite.yaml. You will need to set the TLS secret name and annotations to suit your ingress, similar to your other configured Zenhub ingress objects.
  • ZHE 3.5 adds a developer site that contains documentation and a graphiql explorer for the new GraphQL API. To configure the subdomain for this site, you must set a value for the new configuration key graphiql_explorer_subdomain in the kustomization.yaml file. The value can be left as the default developers if desired. The resulting site will be available at developers.<subdomain_suffix>.<domain_tld>.
  • ZHE 3.5 adds PgBouncer in front of your postgres database. PgBouncer runs in the cluster. To make set up more simple, your configuration will need to be updated so that postgres_url now instead points to the PgBouncer service, and the new pgbouncer_url key should be configured to point to the actual postgres database. The kustomization.yaml file for ZHE 3.5 contains these instructions as comments and configuration placeholders, however feel free to reach out to enterprise@zenhub.com for support if you have any questions, since this change is not trivial.
  • 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, update the cluster image tags to use 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-3.5.1
  - name: kraken-extension
    newName: us.gcr.io/zenhub-public/kraken-extension
    newTag: zhe-3.5.1
  - name: kraken-zhe-admin
    newName: us.gcr.io/zenhub-public/kraken-zhe-admin
    newTag: zhe-3.5.1
  - name: raptor-backend
    newName: us.gcr.io/zenhub-public/raptor-backend
    newTag: zhe-3.5.1
  - name: toad-backend
    newName: us.gcr.io/zenhub-public/toad-backend
    newTag: zhe-3.5.1
  - name: sanitycheck
    newName: us.gcr.io/zenhub-public/sanitycheck
    newTag: zhe-3.5.1
  - name: devsite
    newName: us.gcr.io/zenhub-public/devsite
    newTag: zhe-3.5.1
  - name: busybox
    newName: docker.io/library/busybox
    newTag: latest
  - name: nginx
    newName: docker.io/library/nginx
    newTag: latest
  • First, delete the raptor-db-migrate and sanitycheck jobs so they may be recreated without errors:

Make sure the status of the jobs are Complete and not Running

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-

5. Database changes

⚠️ NOTE: Running this script is only required if you are upgrading from ZHE 3.4.

  • Run the script found in k8s-cluster/update/zhe-upgrade.sh via the commands below:

If you use the ZenHub registry

cd update
./zhe-upgrade.sh yourNamespace

If you use your own registry

cd update
./zhe-upgrade.sh yourNamespace yourRegistryName

6. Re Deploy Application

⚠️ NOTE: Running these commands is only required if you are upgrading from ZHE 3.4.

The data migration script run in the previous step will have scaled down the application in order to safely migrate data without active database writes occurring. Now that the migration is complete, the application needs to be deployed to the normal desired operational state:

  • First perform a diff to check what will change (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

Zenhub Enterprise 3.5.0

20 Jan 20:42
110dcc7
Compare
Choose a tag to compare

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 section "Important Upgrade Instructions for Administrators".

IMPORTANT: Zenhub Enterprise 3.5.0 supports GitHub Enterprise versions: 3.6, 3.7

What's new in Zenhub Enterprise 3.5.0

Features

  • New public GraphQL API with configurable rate limits
  • New self hosted developer site available at developers.<your-zenhub-hostname>
    image
  • Legacy REST API rate limits now configurable
  • New system health check tool added to VM
  • Added PG Bouncer to ZHE for K8s

Security Fixes

  • Package security updates

Bug Fixes

  • Fixed bug with Board 2.0 where changes to an issue's metadata would occasionally cause the ticket to disappear on the board
  • Old ZHE image versions are now cleaned up during upgrades
  • Added K3s internal certificate rotation to VM upgrades
  • PgBouncer configuration updated to perform better at scale
  • Nginx Gateway configuration updated to perform better at scale
  • Fixed air-gapped installation method for new and updated python packages

Changes

  • Added back support for load balancer TLS termination which was removed in ZHE 3.4
  • Base image updated to Ubuntu 22.04
  • Kustomize updated to 4.5
  • Kubernetes updated to 1.22.10
  • PgBouncer updated to 1.17
  • Fluentd updated to 1.15

Known Issues

  • The Chrome Web Store may reject publishing the browser extension due to additional requirements for Manifest V3. This is resolved in Zenhub Enterprise 4.1.
  • Too many authentication failures may be reported when attempting to SSH into the VM, which can be caused by multiple SSH keys loaded in the connecting workstation's SSH agent. A workaround is present in the documentation.
  • Open source repos search is not functional.
  • The Zenhub Firefox extension fails validation and cannot be published, only the Chrome extension can be published as is.
  • zhe-config --health-check may return a false positive failure for the k3s_cert_test.py test due to k3s deprecating the client-cloud-controller.crt certificate in the upgrade to v1.22.
  • Upgrade process hangs with TASK [Gathering Facts]
    • As a workaround, you can stop the ansible playbook with Ctrl+C and run zhe-config --config-file <path_to_your_configuration.yaml> which will resume the upgrade.

VM Embedded Component Versions

Component Version
Ubuntu 22.04.2
K3s v1.22.10+k3s1
Kubernetes v1.22.10
Kustomize v4.5.3
Fluentd v1.15-debian-1
Postgresql 11.16
MongoDB 4.4.13
RabbitMQ 3.8.31
Redis 6.2.7
PgBouncer 1.17.0

Important Upgrade Instructions for Administrators

Zenhub Enterprise for Virtual Machine

⚠️ NOTE: For the upgrade from ZHE 3.4 -> ZHE 3.5, the regular rollback steps cannot be used. Please perform a machine level snapshot prior to upgrading to use as a backup in case you need to revert back to ZHE 3.4 for any reason.

  • You must be running ZHE 3.4.X to perform the upgrade to ZHE 3.5.

  • For users currently running Zenhub Enterprise, look for an email from our team which will include a download link for the 3.5.0 upgrade package. The upgrade process is detailed in our documentation.

Zenhub Enterprise for Kubernetes

  • Some extra upgrade instructions have been added specifically for this release due to some database changes that accompany the application updates. Please follow the upgrade instructions below for this release:

⚠️ NOTE: The minimum version of Kubernetes required to run ZHE 3.5 is v1.22

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.

  • Two new ingress definitions have been added to this release: options/ingress/ingress-api-public.yaml and options/ingress/ingress-devsite.yaml. You will need to set the TLS secret name and annotations to suit your ingress, similar to your other configured Zenhub ingress objects.
  • ZHE 3.5 adds a developer site that contains documentation and a graphiql explorer for the new GraphQL API. To configure the subdomain for this site, you must set a value for the new configuration key graphiql_explorer_subdomain in the kustomization.yaml file. The value can be left as the default developers if desired. The resulting site will be available at developers.<subdomain_suffix>.<domain_tld>.
  • ZHE 3.5 adds PgBouncer in front of your postgres database. PgBouncer runs in the cluster. To make set up more simple, your configuration will need to be updated so that postgres_url now instead points to the PgBouncer service, and the new pgbouncer_url key should be configured to point to the actual postgres database. The kustomization.yaml file for ZHE 3.5 contains these instructions as comments and configuration placeholders, however feel free to reach out to enterprise@zenhub.com for support if you have any questions, since this change is not trivial.
  • 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, update the cluster image tags to use 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-3.5.0
  - name: kraken-extension
    newName: us.gcr.io/zenhub-public/kraken-extension
    newTag: zhe-3.5.0
  - name: kraken-zhe-admin
    newName: us.gcr.io/zenhub-public/kraken-zhe-admin
    newTag: zhe-3.5.0
  - name: raptor-backend
    newName: us.gcr.io/zenhub-public/raptor-backend
    newTag: zhe-3.5.0
  - name: toad-backend
    newName: us.gcr.io/zenhub-public/toad-backend
    newTag: zhe-3.5.0
  - name: sanitycheck
    newName: us.gcr.io/zenhub-public/sanitycheck
    newTag: zhe-3.5.0
  - name: devsite
    newName: us.gcr.io/zenhub-public/devsite
    newTag: zhe-3.5.0
  - name: busybox
    newName: docker.io/library/busybox
    newTag: latest
  - name: nginx
    newName: docker.io/library/nginx
    newTag: latest
  • 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-

5. Database changes

⚠️ NOTE: Running this script is only required if you are upgrading from ZHE 3.4.

  • Run the script found in k8s-cluster/update/zhe-upgrade.sh via the commands below:

If you use the ZenHub registry

cd update
./zhe-upgrade.sh yourNamespace

If you use your own registry

cd update
./zhe-upgrade.sh yourNamespace yourRegistryName

6. Re Deploy Application

The data migration script run in the previous step will have scaled down the application in order to safely migrate data without active database writes occurring. Now that the migration is complete, the application needs to be deployed to the normal desired operational state:

  • First perform a diff to check what will change (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