Skip to content

Commit

Permalink
created cloud init workflow and documentation
Browse files Browse the repository at this point in the history
Signed-off-by: greg pereira <[email protected]>
  • Loading branch information
Gregory-Pereira committed May 2, 2024
1 parent 00a213a commit 5ce8e61
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 0 deletions.
76 changes: 76 additions & 0 deletions .github/workflows/cloud_init_bootc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Cloud Init Bootc image builds

on:
schedule: # schedule the job to run at 12 AM daily
- cron: '0 0 * * *'

pull_request:
branches:
- main
paths:
- '.github/workflows/cloud_init_bootc.yaml'

workflow_dispatch:

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false

env:
REGISTRY: quay.io
REGISTRY_ORG: ai-lab

jobs:
instructlab-nvidia:
if: "!contains(github.event.pull_request.labels.*.name, 'hold-tests') && github.repository == 'containers/ai-lab-recipes'"
strategy:
matrix:
include:
- vendor: nvidia
arch: amd64
- vendor: amd
arch: amd64
- vendor: intel
arch: amd64
runs-on: ubuntu-latest
# runs-on: ubuntu-22.04-2core # starting with minimal option
steps:
- name: Remove unnecessary files
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- uses: actions/[email protected]

- name: Build Image
id: build_image
run: make cloud VENDOR=${{ matrix.vendor}} ARCH=${{ matrix.arch }}
working-directory: ./training/cloud

- name: Login to Container Registry
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: redhat-actions/[email protected]
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}

- name: Push image
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: redhat-actions/[email protected]
with:
image: ${{ steps.build_image.outputs.image }}
tags: ${{ steps.build_image.outputs.tags }}
registry: ${{ env.REGISTRY }}

- name: Publish Job Results to Slack
id: slack
if: always()
uses: slackapi/[email protected]
with:
payload: |
{
"text": "${{ github.workflow }} workflow status: ${{ job.status }}\n${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
21 changes: 21 additions & 0 deletions training/cloud/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Introduction

This cloud directory is for providing a shim around the `bootc` images to use cloud init. This is important because when using the `bootc install to-filesystem` it wipes the `/etc` directory, which kills any remote connection to a cloud compute resource, as the `ssh` keys required for that connection get removed. Cloud init will take care of generating the new ssh keys required to maintain the connection

# Usage

## Common usage pieces

Currently were focusing support on the bootc images for just `amd64`, but we should have other arch builds coming soon.

### Nvidia

`make cloud VENDOR=nvidia ARCH=amd64`

### Intel

`make cloud VENDOR=intel ARCH=amd64`

### AMD

`make cloud VENDOR=amd ARCH=amd64`

0 comments on commit 5ce8e61

Please sign in to comment.