Compare commits

..

2 Commits

Author SHA1 Message Date
Morten Olsen
cad527e644 fix: add http service to authentik 2025-11-18 15:18:17 +01:00
Morten Olsen
ce2cebf77b fix: oidc auth url 2025-10-13 23:32:48 +02:00
4 changed files with 70 additions and 50 deletions

View File

@@ -13,7 +13,7 @@
"eslint-plugin-prettier": "5.5.4",
"json-schema-to-typescript": "^15.0.4",
"prettier": "3.6.2",
"typescript": "5.9.3",
"typescript": "5.9.2",
"typescript-eslint": "8.38.0"
},
"peerDependencies": {

View File

@@ -79,7 +79,7 @@ importers:
version: 10.1.8(eslint@9.36.0)
eslint-plugin-import:
specifier: 2.32.0
version: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.3))(eslint@9.36.0)
version: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)
eslint-plugin-prettier:
specifier: 5.5.4
version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.36.0))(eslint@9.36.0)(prettier@3.6.2)
@@ -90,11 +90,11 @@ importers:
specifier: 3.6.2
version: 3.6.2
typescript:
specifier: 5.9.3
version: 5.9.3
specifier: 5.9.2
version: 5.9.2
typescript-eslint:
specifier: 8.38.0
version: 8.38.0(eslint@9.36.0)(typescript@5.9.3)
version: 8.38.0(eslint@9.36.0)(typescript@5.9.2)
packages:
@@ -1924,8 +1924,8 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
typescript@5.9.2:
resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
engines: {node: '>=14.17'}
hasBin: true
@@ -2207,41 +2207,41 @@ snapshots:
dependencies:
'@types/node': 22.16.5
'@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.3))(eslint@9.36.0)(typescript@5.9.3)':
'@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(typescript@5.9.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
'@typescript-eslint/parser': 8.38.0(eslint@9.36.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.38.0(eslint@9.36.0)(typescript@5.9.2)
'@typescript-eslint/scope-manager': 8.38.0
'@typescript-eslint/type-utils': 8.38.0(eslint@9.36.0)(typescript@5.9.3)
'@typescript-eslint/utils': 8.38.0(eslint@9.36.0)(typescript@5.9.3)
'@typescript-eslint/type-utils': 8.38.0(eslint@9.36.0)(typescript@5.9.2)
'@typescript-eslint/utils': 8.38.0(eslint@9.36.0)(typescript@5.9.2)
'@typescript-eslint/visitor-keys': 8.38.0
eslint: 9.36.0
graphemer: 1.4.0
ignore: 7.0.5
natural-compare: 1.4.0
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
ts-api-utils: 2.1.0(typescript@5.9.2)
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.3)':
'@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.2)':
dependencies:
'@typescript-eslint/scope-manager': 8.38.0
'@typescript-eslint/types': 8.38.0
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2)
'@typescript-eslint/visitor-keys': 8.38.0
debug: 4.4.1
eslint: 9.36.0
typescript: 5.9.3
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/project-service@8.38.0(typescript@5.9.3)':
'@typescript-eslint/project-service@8.38.0(typescript@5.9.2)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.3)
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2)
'@typescript-eslint/types': 8.38.0
debug: 4.4.1
typescript: 5.9.3
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
@@ -2250,28 +2250,28 @@ snapshots:
'@typescript-eslint/types': 8.38.0
'@typescript-eslint/visitor-keys': 8.38.0
'@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.9.3)':
'@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.9.2)':
dependencies:
typescript: 5.9.3
typescript: 5.9.2
'@typescript-eslint/type-utils@8.38.0(eslint@9.36.0)(typescript@5.9.3)':
'@typescript-eslint/type-utils@8.38.0(eslint@9.36.0)(typescript@5.9.2)':
dependencies:
'@typescript-eslint/types': 8.38.0
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.38.0(eslint@9.36.0)(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2)
'@typescript-eslint/utils': 8.38.0(eslint@9.36.0)(typescript@5.9.2)
debug: 4.4.1
eslint: 9.36.0
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
ts-api-utils: 2.1.0(typescript@5.9.2)
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/types@8.38.0': {}
'@typescript-eslint/typescript-estree@8.38.0(typescript@5.9.3)':
'@typescript-eslint/typescript-estree@8.38.0(typescript@5.9.2)':
dependencies:
'@typescript-eslint/project-service': 8.38.0(typescript@5.9.3)
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.3)
'@typescript-eslint/project-service': 8.38.0(typescript@5.9.2)
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2)
'@typescript-eslint/types': 8.38.0
'@typescript-eslint/visitor-keys': 8.38.0
debug: 4.4.1
@@ -2279,19 +2279,19 @@ snapshots:
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.2
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
ts-api-utils: 2.1.0(typescript@5.9.2)
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.38.0(eslint@9.36.0)(typescript@5.9.3)':
'@typescript-eslint/utils@8.38.0(eslint@9.36.0)(typescript@5.9.2)':
dependencies:
'@eslint-community/eslint-utils': 4.7.0(eslint@9.36.0)
'@typescript-eslint/scope-manager': 8.38.0
'@typescript-eslint/types': 8.38.0
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2)
eslint: 9.36.0
typescript: 5.9.3
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
@@ -2794,17 +2794,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0):
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 8.38.0(eslint@9.36.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.38.0(eslint@9.36.0)(typescript@5.9.2)
eslint: 9.36.0
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.3))(eslint@9.36.0):
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -2815,7 +2815,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.36.0
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0)
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -2827,7 +2827,7 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
'@typescript-eslint/parser': 8.38.0(eslint@9.36.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.38.0(eslint@9.36.0)(typescript@5.9.2)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -4117,9 +4117,9 @@ snapshots:
tr46@0.0.3: {}
ts-api-utils@2.1.0(typescript@5.9.3):
ts-api-utils@2.1.0(typescript@5.9.2):
dependencies:
typescript: 5.9.3
typescript: 5.9.2
tsconfig-paths@3.15.0:
dependencies:
@@ -4169,18 +4169,18 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
typescript-eslint@8.38.0(eslint@9.36.0)(typescript@5.9.3):
typescript-eslint@8.38.0(eslint@9.36.0)(typescript@5.9.2):
dependencies:
'@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.3))(eslint@9.36.0)(typescript@5.9.3)
'@typescript-eslint/parser': 8.38.0(eslint@9.36.0)(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.38.0(eslint@9.36.0)(typescript@5.9.3)
'@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.36.0)(typescript@5.9.2))(eslint@9.36.0)(typescript@5.9.2)
'@typescript-eslint/parser': 8.38.0(eslint@9.36.0)(typescript@5.9.2)
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2)
'@typescript-eslint/utils': 8.38.0(eslint@9.36.0)(typescript@5.9.2)
eslint: 9.36.0
typescript: 5.9.3
typescript: 5.9.2
transitivePeerDependencies:
- supports-color
typescript@5.9.3: {}
typescript@5.9.2: {}
unbox-primitive@1.1.0:
dependencies:

View File

@@ -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: {},
});

View File

@@ -18,6 +18,7 @@ import { RepoService } from '#bootstrap/repos/repos.ts';
import { DestinationRule } from '#resources/istio/destination-rule/destination-rule.ts';
import { NotReadyError } from '#utils/errors.ts';
import { ExternalHttpService } from '../external-http-service.ts/external-http-service.ts';
import { HttpService } from '../http-service/http-service.ts';
const specSchema = z.object({
environment: z.string(),
@@ -44,6 +45,7 @@ class AuthentikServer extends CustomResource<typeof specSchema> {
#initSecret: Secret<InitSecretData>;
#service: Service;
#helmRelease: HelmRelease;
#httpService: HttpService;
#externalHttpService: ExternalHttpService;
#destinationRule: DestinationRule;
@@ -72,6 +74,8 @@ class AuthentikServer extends CustomResource<typeof specSchema> {
this.#destinationRule.on('changed', this.queueReconcile);
this.#externalHttpService = resourceService.get(ExternalHttpService, this.name, this.namespace);
this.#httpService = resourceService.get(HttpService, this.name, this.namespace);
}
public get service() {
@@ -168,7 +172,7 @@ class AuthentikServer extends CustomResource<typeof specSchema> {
chart: {
spec: {
chart: 'authentik',
version: '2025.10.3',
version: '2025.6.4',
sourceRef: {
apiVersion: 'source.toolkit.fluxcd.io/v1',
kind: 'HelmRepository',
@@ -253,6 +257,22 @@ class AuthentikServer extends CustomResource<typeof specSchema> {
},
});
await this.#httpService.ensure({
metadata: {
ownerReferences: [this.ref],
},
spec: {
environment: this.spec.environment,
subdomain: this.spec.subdomain || 'authentik',
destination: {
host: this.#service.hostname,
port: {
number: 80,
},
},
},
});
await this.#externalHttpService.ensure({
metadata: {
ownerReferences: [this.ref],