Metrics Service Development and Maintenance Guide📜
To Upgrade the Metrics Server Package📜
NOTE: Metrics Server Renovate updates differ from most other BigBang Renovate updates because Metrics Server uses a wrapper chart, rather than a fork of the upstream chart.
- Navigate to the upstream chart repo and folder and find the appropriate tag that corresponds with the latest chart version for this update. The tag should follow this format:
metrics-server-helm-chart-x.x.x. -
Review the upstream release-notes for important changes and upgrade notices.
-
git clonethe Metrics Server repository from Repo1 and checkout therenovate/ironbankbranch. -
Modify the chart version in
./chart/Chart.yamland append-bb.0(if missing or incorrect) to the chart version from upstream. -
Ensure the BB
./chart/Chart.yamland the target upstream versionChart.yamlalign correctly with the following: - Check
appVersionandbigbang.dev/applicationVersionsin./chart/Chart.yamlto make sure they match and have updated to the correct version - Check the upstream chart
dependenciesand compare the dependency versions against the corresponding image tags in./chart/values.yamlto make sure they match
NOTICE: The upgrade issue may be blocked under one or more of the following conditions: - You are trying to upgrade to a new image or image tag that does not yet exist in Ironbank. - To remediate; Ensure that an Ironbank issue exists that is tracking this upgrade or request. Link the Ironbank issue to your upgrade issue for tracking purposes. - You are trying to upgrade to a newer image tag in Ironbank, but is not yet supported or tested by upstream. - To remediate; Consider opening your own MR to upgrade upstream if the maintainers have not done so in a timely manner.
- Update the image tags in BB
./chart/values.yamlto match the target upstream version with their Ironbank equivalent for the following: -
upstream.image.tag -
Update the
./chart/Chart.yamlannotationshelm.sh/imagesto match the updated tags from previous step. -
Update dependencies and binaries using
helm dependency update ./chart. -
If needed, log into registry1.
# Note, if you are using Ubuntu on WSL and get an error about storing credentials or about how `The name org.freedesktop.secrets was not # provided by any .service files` when you run the command below, install the libsecret-1-dev and gnome-keyring packages. After doing this, # you'll be prompted to set a keyring password the first time you run this command. # helm registry login https://registry1.dso.mil -u ${registry1.username} -
Pull assets and commit the binaries as well as the Chart.lock file that was generated.
# Note: You may need to resolve merge conflicts in chart/values.yaml before these commands work. Refer to the "Modifications made to upstream" # section below for hints on how to resolve them. Also, you need to be logged in to registry1 thorough docker. helm dependency update ./chartThen log out.
helm registry logout https://registry1.dso.mil -
Update
./CHANGELOG.mdadding an entry for the new version and noting all changes in a list (at minimum should include- Updated <chart or dependency> to x.x.x). -
Generate the
./README.mdupdates by following the guide in gluon. -
Commit and push up your changes, add upgrade notices to the MR if applicable, validate that CI passes.
- If there are any failures, follow the information in the pipeline to make the necessary updates.
- Add the
debuglabel to the MR for more detailed information. -
Reach out to the CODEOWNERS if needed.
-
As part of your MR that modifies bigbang packages, you should modify the bigbang bigbang/tests/test-values.yaml against your branch for the CI/CD MR testing by enabling your packages.
- To do this, at a minimum, you will need to follow the instructions at bigbang/docs/developer/test-package-against-bb.md with changes for Metrics Server enabled (the below is a reference, actual changes could be more depending on what changes where made to Metrics Server in the package MR).
test-values.yaml📜
```yaml
metricsServer:
enabled: true
git:
tag: null
branch: <my-package-branch-that-needs-testing>
values:
istio:
hardened:
enabled: true
### Additional compononents of Metrics Server should be changed to reflect testing changes introduced in the package MR
```
- Perform the steps below for manual testing
Modifications made to upstream📜
Section not applicable as Metrics Server was implemented as a wrapper chart, changes to ./chart/values.yaml should not be lost when upgrading.
Manual Testing📜
NOTE: For these testing steps it is good to do them on both a clean install and an upgrade. For clean install, point
metrics-serverto your branch. For an upgrade do an install withmetrics-serverpointing to the latest tag, then perform a helm upgrade withmetrics-serverpointing to your branch.
- Deployment of Big Bang with Istio, Monitoring, Network Policies, Authorization Policies, and metrics server enabled will allow the use of
kubectl top nodesandkubectl top pods -Ato report utilization.
overrides/metrics-server.yaml
addons:
metricsServer:
enabled: true
sourceType: "git"
git:
tag: null
branch: "renovate/ironbank"
When in doubt with any testing or upgrade steps, reach out to the CODEOWNERS for assistance.