Compare commits

..

8 Commits

Author SHA1 Message Date
renovate[bot]
08f642bf11 chore(deps): update dependency cloudflare to v5.2.0 2025-12-31 14:08:19 +00:00
Morten Olsen
0793d30222 Update authentik-server.ts 2025-12-22 21:10:49 +01:00
Morten Olsen
c7f309cd23 remove istio and cert manager auto install 2025-12-22 20:56:22 +01:00
Morten Olsen
dc7d46d53c fix: oidc auth url (#63) 2025-10-13 21:33:24 +00:00
Morten Olsen
3ae89e81bd fix: pgvector image name (#62) 2025-10-13 21:15:10 +00:00
Morten Olsen
bc67429cd2 move to pgvector (#61) 2025-10-13 23:00:54 +02:00
Morten Olsen
af2aae493e Fix/docker (#60) 2025-10-13 22:35:40 +02:00
Morten Olsen
2af701b518 chore(config): migrate renovate config (#51)
The Renovate config in this repository needs migrating. Typically this
is because one or more configuration options you are using have been
renamed.

You don't need to merge this PR right away, because Renovate will
continue to migrate these fields internally each time it runs. But later
some of these fields may be fully deprecated and the migrations removed.
So it's a good idea to merge this migration PR soon.



#### [PLEASE
NOTE](https://docs.renovatebot.com/configuration-options#configmigration):
JSON5 config file migrated! All comments & trailing commas were removed.

🔕 **Ignore**: Close this PR and you won't be reminded about config
migration again, but one day your current config may no longer be valid.

 Got questions? Does something look wrong to you? Please don't hesitate
to [request help
here](https://redirect.github.com/renovatebot/renovate/discussions).


---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

Co-authored-by: Renovate Bot <renovate@whitesourcesoftware.com>
2025-09-25 21:32:40 +02:00
12 changed files with 78 additions and 47 deletions

View File

@@ -1,12 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: {{ include "homelab-operator.fullname" . }} name: '{{ include "homelab-operator.fullname" . }}'
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ include "homelab-operator.serviceAccountName" . }} name: '{{ include "homelab-operator.serviceAccountName" . }}'
namespace: {{ .Release.Namespace }} namespace: "{{ .Release.Namespace }}"
roleRef: roleRef:
kind: ClusterRole kind: ClusterRole
name: {{ include "homelab-operator.fullname" . }} name: '{{ include "homelab-operator.fullname" . }}'
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io

View File

@@ -2,6 +2,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: {{ include "homelab-operator.fullname" . }} name: {{ include "homelab-operator.fullname" . }}
namespace: "{{ .Release.Namespace }}"
labels: labels:
{{- include "homelab-operator.labels" . | nindent 4 }} {{- include "homelab-operator.labels" . | nindent 4 }}
spec: spec:

View File

@@ -3,6 +3,7 @@ apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: {{ include "homelab-operator.serviceAccountName" . }} name: {{ include "homelab-operator.serviceAccountName" . }}
namespace: "{{ .Release.Namespace }}"
labels: labels:
{{- include "homelab-operator.labels" . | nindent 4 }} {{- include "homelab-operator.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }} {{- with .Values.serviceAccount.annotations }}

View File

@@ -1,6 +1,8 @@
FROM node:23-slim@sha256:86191b94d2a163be41f3dc7fe5e5fcaca8ba2f1be7275d98a06343483c17414a FROM node:23-slim@sha256:86191b94d2a163be41f3dc7fe5e5fcaca8ba2f1be7275d98a06343483c17414a
RUN corepack enable RUN corepack enable
WORKDIR /app
COPY package.json pnpm-lock.yaml ./ COPY package.json pnpm-lock.yaml ./
COPY patches ./patches
RUN pnpm install --frozen-lockfile --prod RUN pnpm install --frozen-lockfile --prod
COPY . . COPY . .
CMD ["node", "src/index.ts"] CMD ["node", "src/index.ts"]

View File

@@ -49,7 +49,7 @@
"sqlite3" "sqlite3"
], ],
"patchedDependencies": { "patchedDependencies": {
"@kubernetes/client-node": "patches/@kubernetes__client-node.patch" "@kubernetes/client-node": "./patches/@kubernetes__client-node.patch"
} }
}, },
"scripts": { "scripts": {

View File

@@ -21,7 +21,7 @@ importers:
version: 1.3.0(patch_hash=0b0e5d32aa2930107c8c9b45df2639faf53fa12a389a551885d6e42d71f9429d)(encoding@0.1.13) version: 1.3.0(patch_hash=0b0e5d32aa2930107c8c9b45df2639faf53fa12a389a551885d6e42d71f9429d)(encoding@0.1.13)
cloudflare: cloudflare:
specifier: ^5.0.0 specifier: ^5.0.0
version: 5.1.0(encoding@0.1.13) version: 5.2.0(encoding@0.1.13)
cron: cron:
specifier: ^4.3.3 specifier: ^4.3.3
version: 4.3.3 version: 4.3.3
@@ -252,8 +252,11 @@ packages:
'@types/node-fetch@2.6.12': '@types/node-fetch@2.6.12':
resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==}
'@types/node@18.19.123': '@types/node-fetch@2.6.13':
resolution: {integrity: sha512-K7DIaHnh0mzVxreCR9qwgNxp3MH9dltPNIEddW9MYUlcKAzm+3grKNSTe2vCJHI1FaLpvpL5JGJrz1UZDKYvDg==} resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==}
'@types/node@18.19.130':
resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==}
'@types/node@22.16.5': '@types/node@22.16.5':
resolution: {integrity: sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==} resolution: {integrity: sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==}
@@ -503,8 +506,8 @@ packages:
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
engines: {node: '>=6'} engines: {node: '>=6'}
cloudflare@5.1.0: cloudflare@5.2.0:
resolution: {integrity: sha512-J2vT90WHio8VSbGUmuHckJr9pabH6N+nQKQsgjfwydgV2bgyQoV/KqWw1Df+YKZ5T/QqP7KadKr4bxh+WiRafg==} resolution: {integrity: sha512-dVzqDpPFYR9ApEC9e+JJshFJZXcw4HzM8W+3DHzO5oy9+8rLC53G7x6fEf9A7/gSuSCxuvndzui5qJKftfIM9A==}
color-convert@2.0.1: color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
@@ -867,6 +870,10 @@ packages:
resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
form-data@4.0.5:
resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
engines: {node: '>= 6'}
formdata-node@4.4.1: formdata-node@4.4.1:
resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
engines: {node: '>= 12.20'} engines: {node: '>= 12.20'}
@@ -2195,7 +2202,12 @@ snapshots:
'@types/node': 22.16.5 '@types/node': 22.16.5
form-data: 4.0.4 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: dependencies:
undici-types: 5.26.5 undici-types: 5.26.5
@@ -2529,10 +2541,10 @@ snapshots:
clean-stack@2.2.0: clean-stack@2.2.0:
optional: true optional: true
cloudflare@5.1.0(encoding@0.1.13): cloudflare@5.2.0(encoding@0.1.13):
dependencies: dependencies:
'@types/node': 18.19.123 '@types/node': 18.19.130
'@types/node-fetch': 2.6.12 '@types/node-fetch': 2.6.13
abort-controller: 3.0.0 abort-controller: 3.0.0
agentkeepalive: 4.6.0 agentkeepalive: 4.6.0
form-data-encoder: 1.7.2 form-data-encoder: 1.7.2
@@ -2998,6 +3010,14 @@ snapshots:
hasown: 2.0.2 hasown: 2.0.2
mime-types: 2.1.35 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: formdata-node@4.4.1:
dependencies: dependencies:
node-domexception: 1.0.0 node-domexception: 1.0.0

View File

@@ -32,7 +32,7 @@ class BootstrapService {
public ensure = async () => { public ensure = async () => {
await this.namespaces.ensure(); await this.namespaces.ensure();
await this.repos.ensure(); await this.repos.ensure();
await this.releases.ensure(); // await this.releases.ensure();
await this.cloudflareTunnel.ensure({ await this.cloudflareTunnel.ensure({
spec: {}, spec: {},
}); });

View File

@@ -168,7 +168,7 @@ class AuthentikServer extends CustomResource<typeof specSchema> {
chart: { chart: {
spec: { spec: {
chart: 'authentik', chart: 'authentik',
version: '2025.6.4', version: '2025.10.3',
sourceRef: { sourceRef: {
apiVersion: 'source.toolkit.fluxcd.io/v1', apiVersion: 'source.toolkit.fluxcd.io/v1',
kind: 'HelmRepository', kind: 'HelmRepository',

View File

@@ -79,7 +79,7 @@ class OIDCClient extends CustomResource<typeof specSchema> {
clientId: this.name, clientId: this.name,
configuration: new URL(`/application/o/${this.appName}/.well-known/openid-configuration`, url).toString(), configuration: new URL(`/application/o/${this.appName}/.well-known/openid-configuration`, url).toString(),
configurationIssuer: new URL(`/application/o/${this.appName}/`, 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(), token: new URL(`/application/o/${this.appName}/token/`, url).toString(),
userinfo: new URL(`/application/o/${this.appName}/userinfo/`, url).toString(), userinfo: new URL(`/application/o/${this.appName}/userinfo/`, url).toString(),
endSession: new URL(`/application/o/${this.appName}/end-session/`, url).toString(), endSession: new URL(`/application/o/${this.appName}/end-session/`, url).toString(),

View File

@@ -108,7 +108,7 @@ class PostgresCluster extends CustomResource<typeof specSchema> {
containers: [ containers: [
{ {
name: this.name, name: this.name,
image: 'postgres:17', image: 'pgvector/pgvector:pg17-trixie',
ports: [{ containerPort: 5432, name: 'postgres' }], ports: [{ containerPort: 5432, name: 'postgres' }],
env: [ env: [
{ name: 'POSTGRES_PASSWORD', valueFrom: { secretKeyRef: { name: secretName, key: 'password' } } }, { name: 'POSTGRES_PASSWORD', valueFrom: { secretKeyRef: { name: secretName, key: 'password' } } },

View File

@@ -1,28 +1,35 @@
{ {
"$schema": "https://docs.renovatebot.com/renovate-schema.json", $schema: 'https://docs.renovatebot.com/renovate-schema.json',
"extends": [ extends: [
"config:base" 'config:recommended',
], ],
"packageRules": [ packageRules: [
{ {
"groupName": "Docker images", groupName: 'Docker images',
"groupSlug": "dockerimages", groupSlug: 'dockerimages',
"matchDatasources": ["docker"], matchDatasources: [
"pinDigests": true 'docker',
}
],
"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>.*)"
], ],
"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',
},
],
} }

View File

@@ -4,10 +4,9 @@ metadata:
name: homelab-operator name: homelab-operator
build: build:
cluster: {}
artifacts: artifacts:
- image: homelaboperator - image: zot.olsen.cloud/homelaboperator
context: . context: ./images/operator
docker: docker:
dockerfile: Dockerfile dockerfile: Dockerfile
@@ -16,9 +15,10 @@ manifests:
releases: releases:
- name: homelab-operator - name: homelab-operator
chartPath: charts/operator chartPath: charts/operator
namespace: homelab
setValueTemplates: setValueTemplates:
image.repository: '{{.IMAGE_REPO_homelaboperator}}' image.repository: "zot.local/homelaboperator"
image.tag: '{{.IMAGE_TAG_homelaboperator}}' image.tag: "{{.IMAGE_TAG_zot_olsen_cloud_homelaboperator}}"
deploy: deploy:
# Use kubectl to apply the manifests. # Use kubectl to apply the manifests.