feat: initialize repo

This commit is contained in:
Devin Buhl committed 2021-04-14 09:20:56 -04:00
1 parent cc48dae0e6
commit 9a56008f7a
16 files changed
+311 -2

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
#shellcheck disable=SC2148,SC2155
export KUBECONFIG=$(expand_path ./kubeconfig)
+2
View File
@@ -0,0 +1,2 @@
# https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
* @onedr0p
+24
View File
@@ -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. -->
+5
View File
@@ -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
+22
View File
@@ -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. -->
+19
View File
@@ -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 -->
+20
View File
@@ -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.-->
+45
View File
@@ -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
+24
View File
@@ -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'
+23
View File
@@ -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"
+28
View File
@@ -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'
+19
View File
@@ -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
+9
View File
@@ -0,0 +1,9 @@
# Editors
.vscode/
# Trash
.DS_Store
Thumbs.db
# k8s
kubeconfig
# sops
.decrypted~*.yaml
+28
View File
@@ -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
+4
View File
@@ -0,0 +1,4 @@
---
creation_rules:
- encrypted_regex: '((?i)(pass|secret($|[^N])|key|token|^data$|^stringData))'
pgp: >-
+37 -2
View File
@@ -1,2 +1,37 @@
# home-cluster-k3s
Template for creating a k3s cluster with k3sup, flux and sops
# cluster-k3s
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:&nbsp; Prerequisites
### :computer:&nbsp; Nodes
Bare metal or VMs with a modern operating system like Ubuntu, Debian or CentOS.
### :wrench:&nbsp; 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:&nbsp; Installation
### :sailboat:&nbsp; k3sup
Bootstrap your nodes with k3s using k3sup
## :handshake:&nbsp; 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)