feat: initialize repo
This commit is contained in:
16 files changed
+311
-2
No files matched your search
@@ -0,0 +1,2 @@
|
|||||||
|
#shellcheck disable=SC2148,SC2155
|
||||||
|
export KUBECONFIG=$(expand_path ./kubeconfig)
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
|
||||||
|
* @onedr0p
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: ''
|
||||||
|
labels: kind/bug
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Details
|
||||||
|
|
||||||
|
**What steps did you take and what happened:**
|
||||||
|
|
||||||
|
<!-- Note: This should be a clear and concise description of what the bug is. -->
|
||||||
|
|
||||||
|
**What did you expect to happen:**
|
||||||
|
|
||||||
|
**Anything else you would like to add:**
|
||||||
|
|
||||||
|
<!-- Note: Miscellaneous information that will assist in solving the issue. -->
|
||||||
|
|
||||||
|
**Additional Information:**
|
||||||
|
|
||||||
|
<!-- Note: Anything to give further context to the bug report. -->
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: Discuss on Discord
|
||||||
|
url: https://discord.com/invite/sTMX7Vh
|
||||||
|
about: Join our Discord community
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: ''
|
||||||
|
labels: kind/enhancement
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Details
|
||||||
|
|
||||||
|
**Describe the solution you'd like:**
|
||||||
|
|
||||||
|
<!-- Note: A clear and concise description of what you want to happen. -->
|
||||||
|
|
||||||
|
**Anything else you would like to add:**
|
||||||
|
|
||||||
|
<!-- Note: Miscellaneous information that will assist in solving the issue. -->
|
||||||
|
|
||||||
|
**Additional Information:**
|
||||||
|
|
||||||
|
<!-- Note: Anything to give further context to the requested new feature. -->
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
name: Question
|
||||||
|
about: Ask a question to the maintainer
|
||||||
|
title: ''
|
||||||
|
labels: kind/question
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Details
|
||||||
|
|
||||||
|
**Ask your question:**
|
||||||
|
|
||||||
|
<!-- Note: A clear and concise query of what you want to ask. -->
|
||||||
|
|
||||||
|
<!-- Besides asking here, you can also ask in the following Discussion board or Discord -->
|
||||||
|
|
||||||
|
<!-- Discussion board: https://github.com/k8s-at-home/charts/discussions -->
|
||||||
|
<!-- Discord: https://discord.gg/sTMX7Vh -->
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
**Description of the change**
|
||||||
|
|
||||||
|
<!-- Describe the scope of your change - i.e. what the change does. -->
|
||||||
|
|
||||||
|
**Benefits**
|
||||||
|
|
||||||
|
<!-- What benefits will be realized by the code change? -->
|
||||||
|
|
||||||
|
**Possible drawbacks**
|
||||||
|
|
||||||
|
<!-- Describe any known limitations with your change -->
|
||||||
|
|
||||||
|
**Applicable issues**
|
||||||
|
|
||||||
|
<!-- Enter any applicable Issues here (You can reference an issue using #) -->
|
||||||
|
- fixes #
|
||||||
|
|
||||||
|
**Additional information**
|
||||||
|
|
||||||
|
<!-- If there's anything else that's important and relevant to your pull request, mention that information here.-->
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
name: Schedule - Update Flux
|
||||||
|
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 12 * * *'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
flux-upgrade:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
|
||||||
|
- name: Setup Flux CLI
|
||||||
|
uses: fluxcd/flux2/action@main
|
||||||
|
|
||||||
|
- name: Upgrade Flux
|
||||||
|
id: upgrade
|
||||||
|
run: |
|
||||||
|
CLI_VERSION="$(flux -v)"
|
||||||
|
VERSION="v${CLI_VERSION#*flux version }"
|
||||||
|
flux install --version="${VERSION}" \
|
||||||
|
--network-policy=false \
|
||||||
|
--export > ./cluster/base/flux-system/gotk-components.yaml
|
||||||
|
echo "::set-output name=flux_version::$VERSION"
|
||||||
|
|
||||||
|
- name: Create pull request for Flux upgrade
|
||||||
|
uses: peter-evans/create-pull-request@v3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
branch: "flux/upgrade-${{ steps.upgrade.outputs.flux_version }}"
|
||||||
|
delete-branch: true
|
||||||
|
title: "chore(deps): upgrade flux components to ${{ steps.upgrade.outputs.flux_version }}"
|
||||||
|
signoff: true
|
||||||
|
committer: "Devin Buhl <onedr0p@users.noreply.github.com>"
|
||||||
|
author: "Devin Buhl <onedr0p@users.noreply.github.com>"
|
||||||
|
assignees: "onedr0p"
|
||||||
|
commit-message: "chore(deps): upgrade flux components to ${{ steps.upgrade.outputs.flux_version }}"
|
||||||
|
body: |
|
||||||
|
Release notes: https://github.com/fluxcd/flux2/releases/tag/${{ steps.upgrade.outputs.flux_version }}
|
||||||
|
labels: flux/upgrade
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
name: Invalid Template
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
- unlabeled
|
||||||
|
- reopened
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
support:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- uses: dessant/support-requests@v2
|
||||||
|
with:
|
||||||
|
github-token: ${{ github.token }}
|
||||||
|
support-label: 'template-incomplete'
|
||||||
|
issue-comment: >
|
||||||
|
:wave: @{issue-author}, please follow the template provided.
|
||||||
|
close-issue: true
|
||||||
|
lock-issue: true
|
||||||
|
issue-lock-reason: 'resolved'
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
name: Lint
|
||||||
|
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
yaml:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Lint YAML
|
||||||
|
uses: ibiqlik/action-yamllint@v3
|
||||||
|
with:
|
||||||
|
file_or_dir: "./cluster"
|
||||||
|
config_file: "./.github/yamllint.config.yaml"
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
name: 'Support requests'
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
- unlabeled
|
||||||
|
- reopened
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
support:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- uses: dessant/support-requests@v2
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
support-label: 'support'
|
||||||
|
issue-comment: >
|
||||||
|
:wave: @{issue-author}, we use the issue tracker exclusively
|
||||||
|
for bug reports and feature requests. However, this issue appears
|
||||||
|
to be a support request. Please use our support channels
|
||||||
|
to get help with.
|
||||||
|
- [Discord](https://discord.gg/sTMX7Vh)
|
||||||
|
close-issue: true
|
||||||
|
lock-issue: false
|
||||||
|
issue-lock-reason: 'off-topic'
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
ignore: |
|
||||||
|
.github/
|
||||||
|
crds.yaml
|
||||||
|
extends: default
|
||||||
|
rules:
|
||||||
|
truthy:
|
||||||
|
allowed-values: ['true', 'false', 'on', 'yes']
|
||||||
|
comments:
|
||||||
|
min-spaces-from-content: 1
|
||||||
|
line-length: disable
|
||||||
|
braces:
|
||||||
|
min-spaces-inside: 0
|
||||||
|
max-spaces-inside: 1
|
||||||
|
brackets:
|
||||||
|
min-spaces-inside: 0
|
||||||
|
max-spaces-inside: 0
|
||||||
|
indentation:
|
||||||
|
spaces: 2
|
||||||
|
indent-sequences: consistent
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# Editors
|
||||||
|
.vscode/
|
||||||
|
# Trash
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
# k8s
|
||||||
|
kubeconfig
|
||||||
|
# sops
|
||||||
|
.decrypted~*.yaml
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
fail_fast: false
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/adrienverge/yamllint.git
|
||||||
|
rev: v1.25.0
|
||||||
|
hooks:
|
||||||
|
- args:
|
||||||
|
- -c
|
||||||
|
- .github/yamllint.config.yaml
|
||||||
|
id: yamllint
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v3.4.0
|
||||||
|
hooks:
|
||||||
|
- id: trailing-whitespace
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: mixed-line-ending
|
||||||
|
- repo: https://github.com/Lucas-C/pre-commit-hooks
|
||||||
|
rev: v1.1.9
|
||||||
|
hooks:
|
||||||
|
- id: remove-crlf
|
||||||
|
- id: remove-tabs
|
||||||
|
- repo: https://github.com/sirosen/fix-smartquotes
|
||||||
|
rev: 0.2.0
|
||||||
|
hooks:
|
||||||
|
- id: fix-smartquotes
|
||||||
|
- repo: https://github.com/k8s-at-home/sops-pre-commit
|
||||||
|
rev: v1.1.0
|
||||||
|
hooks:
|
||||||
|
- id: sops-encrypted-check
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
creation_rules:
|
||||||
|
- encrypted_regex: '((?i)(pass|secret($|[^N])|key|token|^data$|^stringData))'
|
||||||
|
pgp: >-
|
||||||
@@ -1,2 +1,37 @@
|
|||||||
# home-cluster-k3s
|
# cluster-k3s
|
||||||
Template for creating a k3s cluster with k3sup, flux and sops
|
|
||||||
|
Template for creating a k3s cluster with [k3sup](https://github.com/alexellis/k3sup), [Flux](https://toolkit.fluxcd.io/) and [SOPS](https://github.com/mozilla/sops)
|
||||||
|
|
||||||
|
This template will bootstrap the nodes you want with the following components
|
||||||
|
|
||||||
|
- k3s
|
||||||
|
- flux
|
||||||
|
- metallb
|
||||||
|
- flannel
|
||||||
|
|
||||||
|
## :memo: Prerequisites
|
||||||
|
|
||||||
|
### :computer: Nodes
|
||||||
|
|
||||||
|
Bare metal or VMs with a modern operating system like Ubuntu, Debian or CentOS.
|
||||||
|
|
||||||
|
### :wrench: Tools
|
||||||
|
|
||||||
|
| Tool | Purpose | Required |
|
||||||
|
|--------------------------------------------------------|---------------------------------------------------------------------|:--------:|
|
||||||
|
| [k3sup](https://github.com/alexellis/k3sup) | Tool to install k3s on your nodes | ✅ |
|
||||||
|
| [flux](https://toolkit.fluxcd.io/) | Operator that manages your k8s cluster based on your Git repository | ✅ |
|
||||||
|
| [SOPS](https://github.com/mozilla/sops) | Encrypts k8s secrets with GnuPG | ✅ |
|
||||||
|
| [GnuPG](https://gnupg.org/) | Encrypts and signs your data | ✅ |
|
||||||
|
| [direnv](https://github.com/direnv/direnv) | Exports env vars based on present working directory | ❌ |
|
||||||
|
| [pre-commit](https://github.com/pre-commit/pre-commit) | Keeps formatting consistency across your files | ❌ |
|
||||||
|
|
||||||
|
## :rocket: Installation
|
||||||
|
|
||||||
|
### :sailboat: k3sup
|
||||||
|
|
||||||
|
Bootstrap your nodes with k3s using k3sup
|
||||||
|
|
||||||
|
## :handshake: Thanks
|
||||||
|
|
||||||
|
A lot of inspiration for my cluster came from the people that have shared their clusters over at [awesome-home-kubernetes](https://github.com/k8s-at-home/awesome-home-kubernetes)
|
||||||
Reference in new issue
Block a user