184 lines
5.9 KiB
YAML
184 lines
5.9 KiB
YAML
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
|
|
|
|
name: ${{ matrix.key }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Extract repo and chart from values.yaml
|
|
id: chart-info
|
|
uses: stackhpc/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: stackhpc/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: stackhpc/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: stackhpc/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: stackhpc/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: stackhpc/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: stackhpc/github-actions/generate-app-token@master
|
|
id: generate-app-token
|
|
with:
|
|
repository: ${{ github.repository }}
|
|
app-id: ${{ secrets.APP_ID }}
|
|
app-private-key: ${{ secrets.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
|