Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
29500cb
feat: Add nginx directory
jon-nfc Jun 10, 2025
76f0490
feat(nginx): Add manifests
jon-nfc Jun 10, 2025
eef8c26
feat(gitlab-runner-operator): Add manifests
jon-nfc Jun 10, 2025
eef9bd8
feat(gitlab-runner-operator): Add component service monitor
jon-nfc Jun 10, 2025
a303d9e
feat(prometheus-operator): Add manifests
jon-nfc Jun 11, 2025
d69def1
feat(grafana-operator): Add manifests
jon-nfc Jun 11, 2025
02ccf8d
feat(gitlab-operator): Add instance label
jon-nfc Jun 11, 2025
a4a2348
feat(prometheus): Add manifests
jon-nfc Jun 11, 2025
03c5fce
feat(alert-manager): Add manifests
jon-nfc Jun 11, 2025
5480527
feat(grafana-agent): Add manifests
jon-nfc Jun 11, 2025
2b7e64b
feat(nfc-monitoring): Add manifests
jon-nfc Jun 11, 2025
8a705ab
ci: Add initial CI for PRs
jon-nfc Jun 11, 2025
d47af90
ci: Add initial CI for docs
jon-nfc Jun 11, 2025
d600c4e
docs: Add skeleton
jon-nfc Jun 11, 2025
b44c73e
docs: Add website-template as sub module
jon-nfc Jun 11, 2025
2dec2a8
chore: correct linting error `no inline html`
jon-nfc Jun 11, 2025
bbda329
feat(gitlab-operator): Dont add metrics by default
jon-nfc Jun 12, 2025
e0c32a6
fix(gitlab-operator): Correct image name
jon-nfc Jun 12, 2025
508032f
fix(gitlab-operator): add runner component
jon-nfc Jun 12, 2025
5c73918
fix(gitlab-operator): correct runner component location
jon-nfc Jun 12, 2025
5d11ad2
chore(gitlab-operator): test name change
jon-nfc Jun 12, 2025
aef6e83
feat(gitlab-operator): update 1.31.0 -> 1.37.0
jon-nfc Jun 12, 2025
70c7b91
chore(gitlab-operator): test name change to what is being created
jon-nfc Jun 12, 2025
c87daf4
chore(gitlab-operator): test name change to what is being created again
jon-nfc Jun 12, 2025
143e1b5
chore(gitlab-operator): test removing prefix
jon-nfc Jun 12, 2025
90b9576
chore(gitlab-operator): test removing prefix
jon-nfc Jun 12, 2025
136a6e8
chore(gitlab-operator): rm more common labels
jon-nfc Jun 12, 2025
24b6ad6
chore(gitlab-operator): add common lables back to base
jon-nfc Jun 12, 2025
a0afbb0
chore(gitlab-operator): add name prefix
jon-nfc Jun 12, 2025
a839aa6
chore(gitlab-operator): add node targeting to amd64
jon-nfc Jun 12, 2025
31f43d3
chore(gitlab-operator): correct typo inm runner config
jon-nfc Jun 12, 2025
230d9bb
chore(gitlab-operator): update runner config cpu req
jon-nfc Jun 12, 2025
50e4255
chore(gitlab-operator): update runner config mem max
jon-nfc Jun 13, 2025
80c0172
chore(gitlab-operator): update runner config mem max for service
jon-nfc Jun 13, 2025
50ec5e1
chore: correct linting errors
jon-nfc Jun 13, 2025
f312563
chore: correct the remaining linting errors
jon-nfc Jun 13, 2025
5114323
docs: add problems to solve
jon-nfc Jun 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---

name: 'CI'


on:
push:
branches:
- '**'
tags:
- '*'

jobs:


mkdocs:
name: 'MKDocs'
permissions:
pull-requests: write
contents: write
statuses: write
checks: write
actions: write
uses: nofusscomputing/action_mkdocs/.github/workflows/reusable_mkdocs.yaml@development
26 changes: 26 additions & 0 deletions .github/workflows/pull_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---

name: Pull Requests


on:
pull_request: {}


jobs:

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install yamllint
run: pip install yamllint

- name: Lint YAML files
run: yamllint ${PWD}/


pull-request:
name: pull-request
uses: nofusscomputing/action_pull_requests/.github/workflows/pull-requests.yaml@development
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Temp Files
*.tmp.*
8 changes: 8 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[submodule "website-template"]
path = website-template
url = https://gitlab.com/nofusscomputing/infrastructure/website-template.git
branch = development
[submodule "gitlab-ci"]
path = gitlab-ci
url = https://gitlab.com/nofusscomputing/projects/gitlab-ci.git
branch = development
35 changes: 35 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"linter.linters": {
"yamllint": {
"capabilities": [
"ignore-line"
],
"command": [
"yamllint",
"--format",
"parsable",
[
"$config",
"--config-file",
"$config"
],
"-"
],
"configFiles": [
".yamllint.yml",
".yamllint.yaml",
".yamllint"
],
"enabled": true,
"languages": [
"yaml"
],
"name": "yamllint",
"url": "https://github.com/adrienverge/yamllint"
}
},
"editor.detectIndentation": false,
"editor.indentSize": "tabSize",
"editor.tabSize": 2,
"files.eol": "\n"
}
77 changes: 77 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---

# extends: default


ignore:
- '.github/'
- '**/crd/**'
- mkdocs.yml
- '*PrometheusRule*'
- '**/source/**'

rules:
braces:
level: error
max-spaces-inside: 1
min-spaces-inside: 1
min-spaces-inside-empty: 0
max-spaces-inside-empty: 0

brackets:
level: error
max-spaces-inside: 1
min-spaces-inside: 1
min-spaces-inside-empty: 0
max-spaces-inside-empty: 0

colons:
level: warning
max-spaces-after: 1

commas:
level: warning

comments:
level: error
require-starting-space: true
ignore-shebangs: true
min-spaces-from-content: 4

comments-indentation:
level: error

document-end:
level: error
present: false

document-start:
level: error
present: true

empty-lines:
level: error
max: 3
max-start: 0
max-end: 0

hyphens:
level: error
max-spaces-after: 1

indentation:
level: error
spaces: 2
indent-sequences: true
check-multi-line-strings: true

line-length:
level: warning
max: 100
allow-non-breakable-inline-mappings: true

new-lines:
level: error
type: unix

truthy: disable
Empty file added docs/articles/index.md
Empty file.
Empty file added docs/contact.md
Empty file.
Empty file added docs/index.md
Empty file.
Empty file added docs/operations/index.md
Empty file.
Empty file added docs/projects/index.md
Empty file.
32 changes: 32 additions & 0 deletions docs/projects/kustomize/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: Kustomize Manifests
description: Documentation home for No Fuss Computing's Kubernetes Kustomize Manifests
date: 2025-06-12
template: project.html
about: https://github.com/nofusscomputing/kubernetes
---

<span style="text-align: center;">

![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fnofusscomputing%2Fkubernetes%2Frefs%2Fheads%2Fdevelopment%2F.meta%2Fproject_status.json)

----

![GitHub forks](https://img.shields.io/github/forks/NofussComputing/kubernetes?logo=github&style=plastic&color=000000&labell=Forks) ![GitHub stars](https://img.shields.io/github/stars/NofussComputing/kubernetes?color=000000&logo=github&style=plastic) ![Github Watchers](https://img.shields.io/github/watchers/NofussComputing/kubernetes?color=000000&label=Watchers&logo=github&style=plastic)

</span>

This project exists to provide a single location for all you Kubernetes deployment puposes. Contained within the [Kustomize repository](https://github.com/nofusscomputing/kubernetes) are Kubernetes Kustomize manifests ready for deployment. You are free to use them and that includes to collaborate in the addition and maintenance of the manifests.


## Problems to Solve

As the intent of this repository is for config management, although limited to the deployment configuration minus any secrets and customizations. As much as possible **There is a requirement for CI for Quality Control.** To aid in this tooling to assist in the process will need to be created. The following list includes and is not limited to, problems to solve:

- Deploying the manifests to test they work

- Identifying if a base / component has a dependency. _i.e. other apps that must be deployed first._

- Updating manifest repo locations.

if a manifest that is fetched via git has had an update, then being able to update this when it occurs or close to.
Empty file added docs/tags.md
Empty file.
1 change: 1 addition & 0 deletions gitlab-ci
Submodule gitlab-ci added at 669498
28 changes: 28 additions & 0 deletions manifests/alert-manager/base/AlertManager-cluster.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
apiVersion: monitoring.coreos.com/v1
kind: Alertmanager
metadata:
labels:
app.kubernetes.io/component: alerting
name: cluster
spec:
externalUrl: alert-manager.local
nodeSelector:
kubernetes.io/os: linux
podMetadata:
labels:
app.kubernetes.io/component: alerting
replicas: 1
resources:
limits:
cpu: 100m
memory: 100Mi
requests:
cpu: 4m
memory: 100Mi
securityContext:
fsGroup: 2000
runAsNonRoot: true
runAsUser: 1000
serviceAccountName: alertmanager
version: v0.27.0
18 changes: 18 additions & 0 deletions manifests/alert-manager/base/Service-alertmanager.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: alerting
name: cluster
spec:
ports:
- name: web
port: 9093
targetPort: web
- name: reloader-web
port: 8080
targetPort: reloader-web
selector:
app.kubernetes.io/component: alerting
sessionAffinity: ClientIP
8 changes: 8 additions & 0 deletions manifests/alert-manager/base/ServiceAccount-alertmanager.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
apiVersion: v1
automountServiceAccountToken: false
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/component: alerting
name: alertmanager
50 changes: 50 additions & 0 deletions manifests/alert-manager/base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization


namespace: alert

labels:
- includeSelectors: true
pairs:
app.kubernetes.io/instance: cluster
app.kubernetes.io/name: alertmanager
app.kubernetes.io/part-of: alertmanager


resources:
# - Secret-alertmanager.yaml
- ServiceAccount-alertmanager.yaml
- AlertManager-cluster.yaml
- Service-alertmanager.yaml
# - PrometheusRule-alertmanager.yaml
# - serviceMonitor-alertmanager.yaml


patches:
# yamllint disable rule:indentation
- target:
kind: Alertmanager
name: cluster
patch: |-
- op: replace
path: /spec/version
value: v0.27.0

- op: replace
path: /spec/externalUrl
value: alert-manager.local
# yamllint enable rule:indentation

replacements:
- source:
kind: Alertmanager
name: cluster
fieldPath: metadata.labels
targets:
- select:
kind: Alertmanager
name: cluster
fieldPaths:
- spec.podMetadata.labels
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
apiVersion: grafana.integreatly.org/v1beta1
kind: GrafanaDashboard
metadata:
labels:
app.kubernetes.io/component: alerting
name: alertmanager
spec:
allowCrossNamespaceImport: true
folder: "General"
resyncPeriod: 24h
instanceSelector:
matchLabels:
dashboards: grafana
grafanaCom:
id: 9578
revision: 4 # as @ 19-09-23
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component


resources:
- GrafanaDashboard-AlertManager.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/common-name: alert-manager.local
cert-manager.io/duration: 2160h
cert-manager.io/private-key-algorithm: ECDSA
cert-manager.io/private-key-rotation-policy: Always
cert-manager.io/private-key-size: "384"
cert-manager.io/subject-countries: N/A
cert-manager.io/subject-organizationalunits: N/A
cert-manager.io/subject-organizations: N/A
cert-manager.io/subject-provinces: N/A
labels:
app.kubernetes.io/component: alerting
name: alert-manager
spec:
ingressClassName: nginx
rules:
- host: alert-manager.local
http:
paths:
- backend:
service:
name: cluster
port:
name: web
path: /
pathType: Prefix
tls:
- hosts:
- alert-manager.local
secretName: certificate-tls-alert-manager
Loading