Compare commits

..

7 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
11 changed files with 48 additions and 24 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

@@ -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.