Update addons #479
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update addons | |
on: | |
# Allow manual executions | |
workflow_dispatch: | |
# Run nightly | |
schedule: | |
- cron: '0 0 * * *' | |
jobs: | |
propose_update_pr: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- key: calico | |
path: cni.calico.chart | |
# Because of the way the Calico chart and CRDs are written, it is very | |
# difficult to infer the images (other than the operator image) | |
# Instead, we must list them here | |
# This string is formatted with the chart version | |
additional-images: |- | |
docker.io/calico/apiserver:{0} | |
docker.io/calico/cni:{0} | |
docker.io/calico/csi:{0} | |
docker.io/calico/kube-controllers:{0} | |
docker.io/calico/node-driver-registrar:{0} | |
docker.io/calico/node:{0} | |
docker.io/calico/pod2daemon-flexvol:{0} | |
docker.io/calico/typha:{0} | |
- key: cilium | |
path: cni.cilium.chart | |
- key: openstack-ccm | |
path: openstack.ccm.chart | |
- key: csi-cinder | |
path: openstack.csiCinder.chart | |
- key: k8s-keystone-auth | |
path: openstack.k8sKeystoneAuth.chart | |
values: | | |
openstackAuthUrl: https://keystone.my.openstack | |
projectId: notarealprojectid | |
- key: metrics-server | |
path: metricsServer.chart | |
- key: kubernetes-dashboard | |
path: kubernetesDashboard.chart | |
# v7 introduces substantial changes that break Azimuth integration | |
constraints: '<7.0.0' | |
values: | | |
metricsScraper: | |
enabled: true | |
- key: ingress-nginx | |
path: ingress.nginx.chart | |
- key: kube-prometheus-stack | |
path: monitoring.kubePrometheusStack.chart | |
- key: loki-stack | |
path: monitoring.lokiStack.chart | |
- key: prometheus-blackbox-exporter | |
path: monitoring.blackboxExporter.chart | |
- key: node-feature-discovery | |
path: nodeFeatureDiscovery.chart | |
- key: nvidia-gpu-operator | |
path: nvidiaGPUOperator.chart | |
values: | | |
nfd: | |
enabled: false | |
- key: mellanox-network-operator | |
path: mellanoxNetworkOperator.chart | |
values: | | |
nfd: | |
enabled: false | |
deployCR: true | |
ofedDriver: | |
deploy: true | |
rdmaSharedDevicePlugin: | |
deploy: true | |
ibKubernetes: | |
deploy: false | |
nvPeerDriver: | |
deploy: false | |
sriovNetworkOperator: | |
enabled: false | |
sriovDevicePlugin: | |
deploy: false | |
secondaryNetwork: | |
deploy: false | |
- key: node-problem-detector | |
path: nodeProblemDetector.chart | |
name: ${{ matrix.key }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Extract repo and chart from values.yaml | |
id: chart-info | |
uses: azimuth-cloud/github-actions/config-extract@master | |
with: | |
path: ./charts/cluster-addons/values.yaml | |
outputs: | | |
repo=${{ matrix.path }}.repo | |
name=${{ matrix.path }}.name | |
- name: Check for updates | |
id: next | |
uses: azimuth-cloud/github-actions/helm-latest-version@master | |
with: | |
repository: ${{ steps.chart-info.outputs.repo }} | |
chart: ${{ steps.chart-info.outputs.name }} | |
constraints: ${{ matrix.constraints || '>=0.0.0' }} | |
- name: Update chart version in values.yaml | |
uses: azimuth-cloud/github-actions/config-update@master | |
with: | |
path: ./charts/cluster-addons/values.yaml | |
updates: | | |
${{ matrix.path }}.version=${{ steps.next.outputs.version }} | |
- name: Template updated chart | |
id: helm-template | |
uses: azimuth-cloud/github-actions/helm-template@master | |
with: | |
repository: ${{ steps.chart-info.outputs.repo }} | |
chart: ${{ steps.chart-info.outputs.name }} | |
version: ${{ steps.next.outputs.version }} | |
values: ${{ matrix.values || '{}' }} | |
- name: Extract images from templated manifests | |
id: extract-images | |
uses: azimuth-cloud/github-actions/k8s-extract-images@master | |
with: | |
manifests-file: ${{ steps.helm-template.outputs.manifests-file }} | |
- name: Ensure manifests directory exists | |
run: mkdir -p ./skopeo-manifests | |
- name: Write Skopeo manifest | |
uses: azimuth-cloud/github-actions/skopeo-manifest@master | |
with: | |
manifest-file: ./skopeo-manifests/${{ matrix.key }}.yaml | |
images: | | |
${{ steps.extract-images.outputs.images }} | |
${{ | |
format( | |
matrix.additional-images || '', | |
steps.next.outputs.version, | |
steps.next.outputs.app-version | |
) | |
}} | |
- name: Generate app token for PR | |
uses: azimuth-cloud/github-actions/generate-app-token@master | |
id: generate-app-token | |
with: | |
repository: ${{ github.repository }} | |
app-id: ${{ secrets.AUTOMATION_APP_ID }} | |
app-private-key: ${{ secrets.AUTOMATION_APP_PRIVATE_KEY }} | |
- name: Propose changes via PR if required | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
token: ${{ steps.generate-app-token.outputs.token }} | |
commit-message: >- | |
Update ${{ matrix.key }} addon to ${{ steps.next.outputs.version }} | |
branch: update-addon/${{ matrix.key }} | |
delete-branch: true | |
title: >- | |
Update ${{ matrix.key }} addon to ${{ steps.next.outputs.version }} | |
body: > | |
This PR was created automatically to update the | |
${{ matrix.key }} addon to ${{ steps.next.outputs.version }}. | |
labels: | | |
automation | |
addon-update |