Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge initial helm into main #5

Merged
merged 12 commits into from
Apr 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
33 changes: 33 additions & 0 deletions .github/workflows/helm-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Release Charts

on:
push:
branches:
- main
- helm-wip

jobs:
release:
# depending on default permission settings for your org (contents being read-only or read-write for workloads), you will have to add permissions
# see: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"

- name: Install Helm
uses: azure/setup-helm@v3

- name: Run chart-releaser
uses: helm/[email protected]
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
2 changes: 1 addition & 1 deletion .github/workflows/mdbook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ name: Deploy mdBook site to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]
branches: ["main", "helm-wip"]

paths:
- "docs/**"
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/slackwatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
- helm-wip

paths:
- 'src/**'
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ docker-compose*.yml

# Dioxus
.dioxus/
slackwatch/
.slackwatch/

# Rust
target/
Expand Down
3 changes: 3 additions & 0 deletions book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,6 @@ edition = "2021"
default-theme = "ayu"
git-repository-url = "https://github.com/slackspace-io/slackwatch"
highlight-code = true

[output.html.redirect]
"index.yaml" = "https://raw.githubusercontent.com/slackspace-io/slackwatch/gh-pages/index.yaml"
6 changes: 6 additions & 0 deletions charts/slackwatch/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
name: slackwatch-helm
description: A Helm chart for Kubernetes to deploy Slackwatch
type: application
version: 0.1.0
appVersion: 0.3.3
9 changes: 9 additions & 0 deletions charts/slackwatch/templates/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Chart.Name }}-config
data:
config.yaml: |
{{- if .Values.config }}
{{- toYaml .Values.config | nindent 4 }}
{{- end }}
31 changes: 31 additions & 0 deletions charts/slackwatch/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: {{ .Chart.Name }}-serviceaccount
containers:
- name: slackwatch
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: {{ .Values.service.port }}
volumeMounts:
- name: config-volume
mountPath: /app/config
volumes:
- name: config-volume
configMap:
name: {{ .Chart.Name }}-config
71 changes: 71 additions & 0 deletions charts/slackwatch/templates/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
{{- if .Values.ingress.enabled -}}
{{- $paths := .Values.ingress.paths -}}
{{- $extraPaths := .Values.ingress.extraPaths -}}
{{- $pathType := .Values.ingress.pathType -}}
{{- $servicePort := .Values.service.port -}}
{{- $serviceName := .Chart.Name}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Chart.Name }}-ingress
namespace: {{ .Release.Namespace | quote }}
labels:
{{- with .Values.ingress.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- with .Values.ingress.ingressClassName }}
ingressClassName: {{ . }}
{{- end }}
rules:
{{- if .Values.ingress.hosts }}
{{- range $host := .Values.ingress.hosts }}
- host: {{ $host | quote }}
http:
paths:
{{- with $extraPaths }}
{{- toYaml . | nindent 10 }}
{{- end }}
{{- range $p := $paths }}
- path: {{ $p }}
pathType: {{ $pathType }}
backend:
service:
name: {{ $serviceName }}-svc
port:
{{- if kindIs "float64" $servicePort }}
number: {{ $servicePort }}
{{- else }}
name: {{ $servicePort }}
{{- end }}
{{- end -}}
{{- end -}}
{{- else }}
- http:
paths:
{{- with $extraPaths }}
{{- toYaml . | nindent 10 }}
{{- end }}
{{- range $p := $paths }}
- path: {{ $p }}
pathType: {{ $pathType }}
backend:
service:
name: {{ .Chart.Name }}-svc
port:
{{- if kindIs "float64" $servicePort }}
number: {{ $servicePort }}
{{- else }}
name: {{ $servicePort }}
{{- end }}
{{- end -}}
{{- end -}}
{{- with .Values.ingress.tls }}
tls:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}
23 changes: 23 additions & 0 deletions charts/slackwatch/templates/rbac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Chart.Name }}-clusterrole
namespace: {{ .Release.Namespace }}
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Chart.Name }}-clusterrolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Chart.Name }}-clusterrole
subjects:
- kind: ServiceAccount
name: {{ .Chart.Name }}-serviceaccount
namespace: {{ .Release.Namespace }}
23 changes: 23 additions & 0 deletions charts/slackwatch/templates/role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Chart.Name }}-role
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ .Chart.Name }}-rolebinding
namespace: {{ .Release.Namespace }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ .Chart.Name }}-role
subjects:
- kind: ServiceAccount
name: {{ .Chart.Name }}-serviceaccount
namespace: {{ .Release.Namespace }}
12 changes: 12 additions & 0 deletions charts/slackwatch/templates/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}-svc
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: 8080
selector:
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
5 changes: 5 additions & 0 deletions charts/slackwatch/templates/serviceaccount.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Chart.Name }}-serviceaccount
namespace: {{ .Release.Namespace }}
51 changes: 51 additions & 0 deletions charts/slackwatch/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
replicaCount: 1
namespace: slackwatch

image:
repository: ghcr.io/slackspace-io/slackwatch # Assuming this image is accessible as a placeholder
pullPolicy: IfNotPresent
tag: "latest"

service:
annotations: {}
labels: {}
type: ClusterIP
port: 80

ingress:
enabled: false
labels: {}
ingressClassName: ""
paths:
- /
pathType: Prefix
extraPaths: []
https: false
annotations: {}
tls: []
hosts:
- test.slackwatch.default # Placeholder domain

config:
system:
#default schedule is every 2 hours
schedule: "0 0 */2 * *"
data_dir: "/app/slackwatch/data"

notifications:
ntfy:
url: "http://ntfy-server.default:80" # Assumes an 'ntfy-server' available in the 'default' namespace
topic: "slackwatch-test"
token: "slackwatch-ntfy-token"
priority: 1
reminder: "24h"
# ... other notification provider settings

gitops:
- name: "test-repo" # Placeholder name
repository_url: "https://github.com/your-org/test-repo.git"
branch: "main"
access_token_env_name: "TEST_REPO_ACCESS_TOKEN"
commit_message: "Automated commit by slackwatch"
commit_email: "[email protected]"
# ... other GitOps settings
31 changes: 31 additions & 0 deletions helm/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

[system]
schedule = "0 0 9-22/2 * * *"
data_dir = "/app/slackwatch/data"

[notifications.ntfy]
url = "http://localhost:9090"
topic = "slackwatch"
priorty = 1
reminder = "24h"
token = "dummy"


[[gitops]]
name = "fleet-slack-house"
repository_url = "https://github.com/slackspace-io/slackwatch.git"
branch = "main"
access_token_env_name = "SLACKWATCH_TOKEN"
commit_message = "Updated by slackwatch"
commit_name = "slackwatch"
commit_email = "[email protected]"

[[gitops]]
name = "noauth"
repository_url = "https://github.com/slackspace-io/slackwatch.git"
branch = "main"
access_token_env_name = "your_github_access_token_for_repoA"
commit_message = "Updated by slackwatch"
commit_name = "slackwatch"
commit_email = "[email protected]"

3 changes: 2 additions & 1 deletion src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ impl Settings {
let s = Config::builder()
//add source if env var slackwatch_config path is set
.add_source(File::with_name("/app/config/config").required(false))
.add_source(File::with_name(".env.toml").required(false))
// .add_source(File::with_name(".env.toml").required(false))
.add_source(File::with_name(".env.yaml").required(false))
.add_source(File::with_name(&env_config).required(false))
.add_source(Environment::with_prefix("slackwatch"))
.build()?;
Expand Down
Loading