Compare commits

...

7 Commits

Author SHA1 Message Date
Morten Olsen
9150a0f9b1 remove most features 2026-01-02 14:07:57 +01: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
12 changed files with 25 additions and 21 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

@@ -31,11 +31,11 @@ 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

@@ -8,7 +8,7 @@ import { homelab } from '#resources/homelab/homelab.ts';
const services = new Services(); const services = new Services();
const resourceService = services.get(ResourceService); const resourceService = services.get(ResourceService);
await resourceService.install(...Object.values(homelab)); // await resourceService.install(...Object.values(homelab));
await resourceService.register(...Object.values(resources)); await resourceService.register(...Object.values(resources));
const bootstrapService = services.get(BootstrapService); const bootstrapService = services.get(BootstrapService);

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

@@ -11,7 +11,7 @@ const resources = {
...flux, ...flux,
...certManager, ...certManager,
...istio, ...istio,
...homelab, // ...homelab,
} satisfies Record<string, ResourceClass<ExpectedAny>>; } satisfies Record<string, ResourceClass<ExpectedAny>>;
export { resources }; export { resources };

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.