mirror of
https://github.com/morten-olsen/homelab-operator.git
synced 2026-02-08 01:36:28 +01:00
Compare commits
8 Commits
v0.1.110
...
renovate/c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08f642bf11 | ||
|
|
0793d30222 | ||
|
|
c7f309cd23 | ||
|
|
dc7d46d53c | ||
|
|
3ae89e81bd | ||
|
|
bc67429cd2 | ||
|
|
af2aae493e | ||
|
|
2af701b518 |
@@ -1,12 +1,12 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ include "homelab-operator.fullname" . }}
|
||||
name: '{{ include "homelab-operator.fullname" . }}'
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "homelab-operator.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
- kind: ServiceAccount
|
||||
name: '{{ include "homelab-operator.serviceAccountName" . }}'
|
||||
namespace: "{{ .Release.Namespace }}"
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: {{ include "homelab-operator.fullname" . }}
|
||||
name: '{{ include "homelab-operator.fullname" . }}'
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
||||
@@ -2,6 +2,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "homelab-operator.fullname" . }}
|
||||
namespace: "{{ .Release.Namespace }}"
|
||||
labels:
|
||||
{{- include "homelab-operator.labels" . | nindent 4 }}
|
||||
spec:
|
||||
|
||||
@@ -3,6 +3,7 @@ apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "homelab-operator.serviceAccountName" . }}
|
||||
namespace: "{{ .Release.Namespace }}"
|
||||
labels:
|
||||
{{- include "homelab-operator.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
FROM node:23-slim@sha256:86191b94d2a163be41f3dc7fe5e5fcaca8ba2f1be7275d98a06343483c17414a
|
||||
RUN corepack enable
|
||||
WORKDIR /app
|
||||
COPY package.json pnpm-lock.yaml ./
|
||||
COPY patches ./patches
|
||||
RUN pnpm install --frozen-lockfile --prod
|
||||
COPY . .
|
||||
CMD ["node", "src/index.ts"]
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
"sqlite3"
|
||||
],
|
||||
"patchedDependencies": {
|
||||
"@kubernetes/client-node": "patches/@kubernetes__client-node.patch"
|
||||
"@kubernetes/client-node": "./patches/@kubernetes__client-node.patch"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
38
images/operator/pnpm-lock.yaml
generated
38
images/operator/pnpm-lock.yaml
generated
@@ -21,7 +21,7 @@ importers:
|
||||
version: 1.3.0(patch_hash=0b0e5d32aa2930107c8c9b45df2639faf53fa12a389a551885d6e42d71f9429d)(encoding@0.1.13)
|
||||
cloudflare:
|
||||
specifier: ^5.0.0
|
||||
version: 5.1.0(encoding@0.1.13)
|
||||
version: 5.2.0(encoding@0.1.13)
|
||||
cron:
|
||||
specifier: ^4.3.3
|
||||
version: 4.3.3
|
||||
@@ -252,8 +252,11 @@ packages:
|
||||
'@types/node-fetch@2.6.12':
|
||||
resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==}
|
||||
|
||||
'@types/node@18.19.123':
|
||||
resolution: {integrity: sha512-K7DIaHnh0mzVxreCR9qwgNxp3MH9dltPNIEddW9MYUlcKAzm+3grKNSTe2vCJHI1FaLpvpL5JGJrz1UZDKYvDg==}
|
||||
'@types/node-fetch@2.6.13':
|
||||
resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==}
|
||||
|
||||
'@types/node@18.19.130':
|
||||
resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==}
|
||||
|
||||
'@types/node@22.16.5':
|
||||
resolution: {integrity: sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==}
|
||||
@@ -503,8 +506,8 @@ packages:
|
||||
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
cloudflare@5.1.0:
|
||||
resolution: {integrity: sha512-J2vT90WHio8VSbGUmuHckJr9pabH6N+nQKQsgjfwydgV2bgyQoV/KqWw1Df+YKZ5T/QqP7KadKr4bxh+WiRafg==}
|
||||
cloudflare@5.2.0:
|
||||
resolution: {integrity: sha512-dVzqDpPFYR9ApEC9e+JJshFJZXcw4HzM8W+3DHzO5oy9+8rLC53G7x6fEf9A7/gSuSCxuvndzui5qJKftfIM9A==}
|
||||
|
||||
color-convert@2.0.1:
|
||||
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
|
||||
@@ -867,6 +870,10 @@ packages:
|
||||
resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
form-data@4.0.5:
|
||||
resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
formdata-node@4.4.1:
|
||||
resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
|
||||
engines: {node: '>= 12.20'}
|
||||
@@ -2195,7 +2202,12 @@ snapshots:
|
||||
'@types/node': 22.16.5
|
||||
form-data: 4.0.4
|
||||
|
||||
'@types/node@18.19.123':
|
||||
'@types/node-fetch@2.6.13':
|
||||
dependencies:
|
||||
'@types/node': 18.19.130
|
||||
form-data: 4.0.5
|
||||
|
||||
'@types/node@18.19.130':
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
@@ -2529,10 +2541,10 @@ snapshots:
|
||||
clean-stack@2.2.0:
|
||||
optional: true
|
||||
|
||||
cloudflare@5.1.0(encoding@0.1.13):
|
||||
cloudflare@5.2.0(encoding@0.1.13):
|
||||
dependencies:
|
||||
'@types/node': 18.19.123
|
||||
'@types/node-fetch': 2.6.12
|
||||
'@types/node': 18.19.130
|
||||
'@types/node-fetch': 2.6.13
|
||||
abort-controller: 3.0.0
|
||||
agentkeepalive: 4.6.0
|
||||
form-data-encoder: 1.7.2
|
||||
@@ -2998,6 +3010,14 @@ snapshots:
|
||||
hasown: 2.0.2
|
||||
mime-types: 2.1.35
|
||||
|
||||
form-data@4.0.5:
|
||||
dependencies:
|
||||
asynckit: 0.4.0
|
||||
combined-stream: 1.0.8
|
||||
es-set-tostringtag: 2.1.0
|
||||
hasown: 2.0.2
|
||||
mime-types: 2.1.35
|
||||
|
||||
formdata-node@4.4.1:
|
||||
dependencies:
|
||||
node-domexception: 1.0.0
|
||||
|
||||
@@ -32,7 +32,7 @@ class BootstrapService {
|
||||
public ensure = async () => {
|
||||
await this.namespaces.ensure();
|
||||
await this.repos.ensure();
|
||||
await this.releases.ensure();
|
||||
// await this.releases.ensure();
|
||||
await this.cloudflareTunnel.ensure({
|
||||
spec: {},
|
||||
});
|
||||
|
||||
@@ -168,7 +168,7 @@ class AuthentikServer extends CustomResource<typeof specSchema> {
|
||||
chart: {
|
||||
spec: {
|
||||
chart: 'authentik',
|
||||
version: '2025.6.4',
|
||||
version: '2025.10.3',
|
||||
sourceRef: {
|
||||
apiVersion: 'source.toolkit.fluxcd.io/v1',
|
||||
kind: 'HelmRepository',
|
||||
|
||||
@@ -79,7 +79,7 @@ class OIDCClient extends CustomResource<typeof specSchema> {
|
||||
clientId: this.name,
|
||||
configuration: new URL(`/application/o/${this.appName}/.well-known/openid-configuration`, url).toString(),
|
||||
configurationIssuer: new URL(`/application/o/${this.appName}/`, url).toString(),
|
||||
authorization: new URL(`/application/o/${this.appName}/authorize/`, url).toString(),
|
||||
authorization: new URL(`/application/o/authorize/`, url).toString(),
|
||||
token: new URL(`/application/o/${this.appName}/token/`, url).toString(),
|
||||
userinfo: new URL(`/application/o/${this.appName}/userinfo/`, url).toString(),
|
||||
endSession: new URL(`/application/o/${this.appName}/end-session/`, url).toString(),
|
||||
|
||||
@@ -108,7 +108,7 @@ class PostgresCluster extends CustomResource<typeof specSchema> {
|
||||
containers: [
|
||||
{
|
||||
name: this.name,
|
||||
image: 'postgres:17',
|
||||
image: 'pgvector/pgvector:pg17-trixie',
|
||||
ports: [{ containerPort: 5432, name: 'postgres' }],
|
||||
env: [
|
||||
{ name: 'POSTGRES_PASSWORD', valueFrom: { secretKeyRef: { name: secretName, key: 'password' } } },
|
||||
|
||||
@@ -1,28 +1,35 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:base"
|
||||
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
|
||||
extends: [
|
||||
'config:recommended',
|
||||
],
|
||||
"packageRules": [
|
||||
packageRules: [
|
||||
{
|
||||
"groupName": "Docker images",
|
||||
"groupSlug": "dockerimages",
|
||||
"matchDatasources": ["docker"],
|
||||
"pinDigests": true
|
||||
}
|
||||
],
|
||||
"helm-values": {
|
||||
"fileMatch": ["^charts/.*/values\\.yaml$"]
|
||||
},
|
||||
"regexManagers": [
|
||||
{
|
||||
"fileMatch": ["^charts/.*/values\\.yaml$"],
|
||||
"matchStrings": [
|
||||
"repository:\s*'(?<depName>.*?)'\n\s*tag:\s*'(?<currentValue>.*?)'",
|
||||
"repository:\s*\"(?<depName>.*?)\"\n\s*tag:\s*\"(?<currentValue>.*?)\"",
|
||||
"repository:\s*(?<depName>.*?)\n\s*tag:\s*(?<currentValue>.*)"
|
||||
groupName: 'Docker images',
|
||||
groupSlug: 'dockerimages',
|
||||
matchDatasources: [
|
||||
'docker',
|
||||
],
|
||||
"datasourceTemplate": "docker"
|
||||
}
|
||||
]
|
||||
pinDigests: true,
|
||||
},
|
||||
],
|
||||
'helm-values': {
|
||||
managerFilePatterns: [
|
||||
'/^charts/.*/values\\.yaml$/',
|
||||
],
|
||||
},
|
||||
customManagers: [
|
||||
{
|
||||
customType: 'regex',
|
||||
managerFilePatterns: [
|
||||
'/^charts/.*/values\\.yaml$/',
|
||||
],
|
||||
matchStrings: [
|
||||
"repository:s*'(?<depName>.*?)'\ns*tag:s*'(?<currentValue>.*?)'",
|
||||
'repository:s*"(?<depName>.*?)"\ns*tag:s*"(?<currentValue>.*?)"',
|
||||
'repository:s*(?<depName>.*?)\ns*tag:s*(?<currentValue>.*)',
|
||||
],
|
||||
datasourceTemplate: 'docker',
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
@@ -4,10 +4,9 @@ metadata:
|
||||
name: homelab-operator
|
||||
|
||||
build:
|
||||
cluster: {}
|
||||
artifacts:
|
||||
- image: homelaboperator
|
||||
context: .
|
||||
- image: zot.olsen.cloud/homelaboperator
|
||||
context: ./images/operator
|
||||
docker:
|
||||
dockerfile: Dockerfile
|
||||
|
||||
@@ -16,9 +15,10 @@ manifests:
|
||||
releases:
|
||||
- name: homelab-operator
|
||||
chartPath: charts/operator
|
||||
namespace: homelab
|
||||
setValueTemplates:
|
||||
image.repository: '{{.IMAGE_REPO_homelaboperator}}'
|
||||
image.tag: '{{.IMAGE_TAG_homelaboperator}}'
|
||||
image.repository: "zot.local/homelaboperator"
|
||||
image.tag: "{{.IMAGE_TAG_zot_olsen_cloud_homelaboperator}}"
|
||||
|
||||
deploy:
|
||||
# Use kubectl to apply the manifests.
|
||||
|
||||
Reference in New Issue
Block a user