Skip to content

Commit 5f76c6d

Browse files
committed
Merge branch 'main' of https://github.com/opencadc/deployments into portal-resource-slider
2 parents 029d03c + e5aa7be commit 5f76c6d

24 files changed

+1909
-2
lines changed

.github/workflows/docs.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Documentation
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'docs/**'
9+
- 'mkdocs.yml'
10+
- 'pyproject.toml'
11+
workflow_dispatch:
12+
inputs:
13+
reason:
14+
description: 'Reason for manual documentation deployment'
15+
required: true
16+
type: string
17+
18+
permissions:
19+
contents: write
20+
21+
jobs:
22+
build-and-deploy:
23+
if: ${{ github.repository == 'opencadc/deployments' }}
24+
runs-on: ubuntu-latest
25+
steps:
26+
- name: Checkout
27+
uses: actions/[email protected]
28+
with:
29+
fetch-depth: 0
30+
31+
- name: Install uv
32+
uses: astral-sh/setup-uv@v5
33+
34+
- name: Setup Python
35+
run: uv python install
36+
37+
- name: Install dependencies
38+
run: uv sync
39+
40+
- name: Deploy documentation
41+
run: uv run mkdocs gh-deploy --force

.github/workflows/pre-commit.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: pre-commit
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
9+
permissions:
10+
contents: read
11+
pull-requests: write
12+
13+
jobs:
14+
checks:
15+
runs-on: ubuntu-latest
16+
env:
17+
UV_CACHE_DIR: ~/.cache/uv
18+
PRE_COMMIT_HOME: ~/.cache/pre-commit
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
23+
- name: Set up uv
24+
uses: astral-sh/setup-uv@v6
25+
with:
26+
version: "latest"
27+
python-version: 3.13
28+
enable-cache: true
29+
cache-dependency-glob: |
30+
pyproject.toml
31+
uv.lock
32+
33+
- name: Cache pre-commit
34+
uses: actions/cache@v4
35+
with:
36+
path: ${{ env.PRE_COMMIT_HOME }}
37+
key: ${{ runner.os }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
38+
restore-keys: |
39+
${{ runner.os }}-pre-commit-
40+
41+
- name: Run pre-commit checks
42+
id: precommit
43+
continue-on-error: true
44+
run: uv run pre-commit run -a
45+
46+
- name: Verify latest commit message format
47+
id: commitizen
48+
if: ${{ github.event_name == 'pull_request' }}
49+
continue-on-error: true
50+
run: |
51+
latest="$(git log -1 --pretty=%B)"
52+
printf 'Checking latest commit message:\n%s\n' "$latest"
53+
uv run cz check --message "$latest"
54+
55+
- name: Share pre-commit guidance
56+
if: ${{ github.event_name == 'pull_request' && (steps.precommit.outcome == 'failure' || steps.commitizen.outcome == 'failure') }}
57+
uses: marocchino/sticky-pull-request-comment@v2
58+
with:
59+
message: |
60+
### ⚠️ Pre-commit checks failed
61+
62+
${{ steps.precommit.outcome == 'failure' && '- Run `uv run pre-commit run -a` locally to reproduce the issues.' || '' }}
63+
${{ steps.commitizen.outcome == 'failure' && '- Ensure your latest commit message follows the Commitizen format (e.g. `feat: add awesome thing`).' || '' }}
64+
${{ steps.commitizen.outcome == 'failure' && ' Validate it locally with `uv run cz check --message "<type>: <description>"`.' || '' }}
65+
66+
Fix the issues locally with:
67+
68+
```bash
69+
uv sync
70+
uv run pre-commit run -a
71+
```
72+
73+
Need help? Run `uv run pre-commit install` once to enable these checks before every commit.
74+
75+
- name: Celebrate spotless PR
76+
if: ${{ github.event_name == 'pull_request' && steps.precommit.outcome == 'success' && steps.commitizen.outcome == 'success' }}
77+
uses: marocchino/sticky-pull-request-comment@v2
78+
with:
79+
message: |
80+
### ✅ All pre-commit checks passed
81+
82+
Thanks for keeping the repo tidy! ✨
83+
84+
- name: Fail if checks failed
85+
if: ${{ steps.precommit.outcome == 'failure' || steps.commitizen.outcome == 'failure' }}
86+
run: exit 1
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
issues: write
11+
pull-requests: write
12+
13+
jobs:
14+
release:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Run release-please
18+
uses: googleapis/release-please-action@v4
19+
with:
20+
config-file: release-please-config.json
21+
manifest-file: .release-please-manifest.json
22+
token: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
charts/
2+
.uv-cache/
3+
.venv/

.pre-commit-config.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,26 @@
22
---
33
exclude: ^deployment/
44
repos:
5+
- repo: local
6+
hooks:
7+
- id: update-helm-maintainers
8+
name: Update Helm maintainers
9+
entry: uv run python -m deployments.maintainers
10+
language: system
11+
pass_filenames: false
12+
stages: [pre-commit]
13+
always_run: true
14+
env:
15+
UV_CACHE_DIR: .uv-cache
16+
- id: refresh-chart-inventory
17+
name: Refresh chart inventory
18+
entry: uv run python -m deployments.inventory
19+
language: system
20+
pass_filenames: false
21+
stages: [pre-commit]
22+
always_run: true
23+
env:
24+
UV_CACHE_DIR: .uv-cache
525
# Commitizen Configuration
626
# This configuration will add commitizen to your pre-commit hooks and will run it on commit-msg stage
727
# of the git commit process.

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.13

.release-please-manifest.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"helm/applications/base": "0.4.1",
3+
"helm/applications/cavern": "0.7.1",
4+
"helm/applications/posix-mapper": "0.5.0",
5+
"helm/applications/science-portal": "1.0.0",
6+
"helm/applications/skaha": "1.0.4",
7+
"helm/applications/sshd": "1.0.1",
8+
"helm/applications/storage-ui": "0.7.0",
9+
"helm/applications/utils": "0.1.0",
10+
"helm/common": "1.0.0"
11+
}

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,20 @@
11
# deployments
22
deployment templates for OpenCADC software components
3+
4+
## Chart Inventory
5+
6+
<!-- CHART-INVENTORY:START -->
7+
This section is automatically generated. Do not edit manually.
8+
9+
| Chart | Version | App Version | Owners | Dependencies |
10+
| --- | --- | --- | --- | --- |
11+
| [base](helm/applications/base) | 0.4.1 | 0.1.4 | Dustin Jenkins | traefik 26.1.0 |
12+
| [cavern](helm/applications/cavern) | 0.7.1 | 0.9.0 | Dustin Jenkins | utils ^0.1.0 |
13+
| [posixmapper](helm/applications/posix-mapper) | 0.5.0 | 0.3.2 | Dustin Jenkins ||
14+
| [scienceportal](helm/applications/science-portal) | 1.0.0 | 1.0.1 | Dustin Jenkins | redis ^18.19.0, utils ^0.1.0 |
15+
| [skaha](helm/applications/skaha) | 1.0.4 | 1.0.3 | Dustin Jenkins, Shiny Brar | redis ^18.19.0, utils ^0.1.0 |
16+
| [sshd](helm/applications/sshd) | 1.0.1 | 1.0.0 | Dustin Jenkins | common ^1.0.0 |
17+
| [storageui](helm/applications/storage-ui) | 0.7.0 | 1.4.1 | Dustin Jenkins, Dustin | redis ^18.4.0, utils ^0.1.0 |
18+
| [utils](helm/applications/utils) | 0.1.0 | 1.0.0 | Dustin Jenkins ||
19+
| [common](helm/common) | 1.0.0 | 1.0.0 | Dustin Jenkins ||
20+
<!-- CHART-INVENTORY:END -->

docs/index.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# CANFAR Deployments
2+
3+
Welcome to the operational documentation for deploying and maintaining the CANFAR Science Platform. This repository contains Helm charts, Kubernetes configurations, CI/CD automation, and operations runbooks that power the platform infrastructure.
4+
5+
## What You'll Find Here
6+
7+
This documentation is designed for **platform operators, DevOps engineers, and infrastructure maintainers** who deploy, configure, and manage CANFAR services.
8+
9+
<div class="grid cards" markdown>
10+
11+
- :material-kubernetes: **Helm Charts**
12+
13+
Reusable deployment templates for CANFAR services with configurable values and environment overlays.
14+
15+
- :material-rocket-launch: **Release Automation**
16+
17+
Automated CI/CD pipelines using GitHub Actions and Release Please for Helm chart versioning.
18+
19+
- :material-file-document: **Operations Runbooks**
20+
21+
Step-by-step procedures for releases, rollbacks, monitoring, and troubleshooting production deployments.
22+
23+
- :material-cog: **Configuration Management**
24+
25+
Environment-specific overlays, secrets management, and Kubernetes resource definitions for staging and production.
26+
27+
- :material-book-open-variant: **Documentation**
28+
29+
Automated MkDocs site deployment with operations guides and platform runbooks.
30+
31+
- :material-shield-check: **Code Quality**
32+
33+
Pre-commit hooks, linting, and security scanning for infrastructure-as-code.
34+
35+
</div>
36+
37+
## Quick Links
38+
39+
- [**CI/CD Pipelines**](operations/ci-cd.md) - Understand GitHub Actions workflows for documentation and code quality
40+
- [**Release Process**](operations/release-process.md) - Follow the Helm chart release process and CANFAR platform schedule
41+
- [**GitHub Repository**](https://github.com/opencadc/deployments/) - Browse source code, Helm charts, and configurations
42+
43+
## Getting Started
44+
45+
If you're new to CANFAR deployments:
46+
47+
1. Review the [Release Process](operations/release-process.md) to understand our deployment workflow
48+
2. Explore the [CI/CD Pipelines](operations/ci-cd.md) documentation to see how automation works
49+
3. Check the [GitHub repository](https://github.com/opencadc/deployments/) for Helm charts and configuration files
50+
51+
## Contributing
52+
53+
This is an operational repository for CANFAR platform infrastructure. Changes follow the standard pull request workflow with Release Please automation for versioning and changelog generation.
54+
55+
For questions or support, contact the CADC operations team or visit the [main CANFAR documentation](https://www.opencadc.org/canfar/).

docs/logo.png

1.85 KB
Loading

0 commit comments

Comments
 (0)