Compare commits
49 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7abe503050 | |||
|
b39b3aefc8
|
|||
|
a9c658466f
|
|||
|
730dc2b865
|
|||
|
5eea620225
|
|||
|
863c242a50
|
|||
|
1cf2303c62
|
|||
|
81e6823f3d
|
|||
|
2f2d6c1b70
|
|||
|
c99ed29e62
|
|||
|
7eda27cdd6
|
|||
|
bf6542398c
|
|||
|
be7954d499
|
|||
|
cc8a121bf6
|
|||
| 88d21ba674 | |||
| 1eb5249f64 | |||
| 3ee37fc0f7 | |||
| ea4d9f3003 | |||
| 4566ac7c28 | |||
| c13d4519bd | |||
| 077153c344 | |||
|
e44e83da5e
|
|||
|
a541829037
|
|||
|
b818bead29
|
|||
|
7edb275cbe
|
|||
|
e7773d7fa5
|
|||
|
3ba1ba12aa
|
|||
|
bfc2bfdf9d
|
|||
|
14fa2447ec
|
|||
|
ffc3ca2a24
|
|||
|
c0cc05f0dd
|
|||
|
98dde62710
|
|||
|
b0a986807b
|
|||
|
81d69fb8cd
|
|||
|
cd2280b5ed
|
|||
|
0b2119b769
|
|||
|
352acc54b0
|
|||
|
365c47f621
|
|||
|
8ecd09734e
|
|||
|
ff8f3387ea
|
|||
|
0728ac0d8b
|
|||
|
9e76021c37
|
|||
|
d08937816d
|
|||
|
9f34fc8222
|
|||
|
0805e0c988
|
|||
|
1520d72b59
|
|||
|
67cb247556
|
|||
|
16f9976abb
|
|||
|
cfdb9f1fdd
|
@@ -0,0 +1,3 @@
|
|||||||
|
FROM busybox
|
||||||
|
|
||||||
|
COPY keycloak-themes/oceanbox /theme
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
/* Oceanbox Keycloak Login Theme
|
||||||
|
*
|
||||||
|
* Branding aligned with oceanbox.io:
|
||||||
|
* Primary teal: #0bb4aa
|
||||||
|
* Dark teal: #37746F
|
||||||
|
* Deep blue: #031275
|
||||||
|
* Background: #f9fafd
|
||||||
|
* Text: #101010
|
||||||
|
*/
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--pf-v5-global--primary-color--100: #0bb4aa;
|
||||||
|
--pf-v5-global--primary-color--200: #099e95;
|
||||||
|
--pf-v5-global--link--Color: #0bb4aa;
|
||||||
|
--pf-v5-global--link--Color--hover: #031275;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-pf body {
|
||||||
|
background: #f9fafd url("../img/oceanbox-bg.png") no-repeat center bottom fixed;
|
||||||
|
background-size: cover;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Login container layout */
|
||||||
|
.pf-v5-c-login__container {
|
||||||
|
grid-template-columns: 34rem;
|
||||||
|
grid-template-areas: "header"
|
||||||
|
"main";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Logo */
|
||||||
|
div.kc-logo-text {
|
||||||
|
background-image: url('../img/oceanbox-logo-text.png');
|
||||||
|
height: 80px;
|
||||||
|
width: 360px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: contain;
|
||||||
|
background-position: center;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.kc-logo-text span {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header */
|
||||||
|
#kc-header-wrapper {
|
||||||
|
font-size: 29px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 3px;
|
||||||
|
line-height: 1.2em;
|
||||||
|
white-space: normal;
|
||||||
|
color: #37746F !important;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Login card */
|
||||||
|
.pf-v5-c-login__main {
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Primary button */
|
||||||
|
.pf-v5-c-button.pf-m-primary {
|
||||||
|
--pf-v5-c-button--m-primary--BackgroundColor: #0bb4aa;
|
||||||
|
--pf-v5-c-button--m-primary--hover--BackgroundColor: #099e95;
|
||||||
|
--pf-v5-c-button--m-primary--active--BackgroundColor: #37746F;
|
||||||
|
--pf-v5-c-button--m-primary--focus--BackgroundColor: #099e95;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Links */
|
||||||
|
.pf-v5-c-button.pf-m-link {
|
||||||
|
--pf-v5-c-button--m-link--Color: #0bb4aa;
|
||||||
|
--pf-v5-c-button--m-link--hover--Color: #031275;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0bb4aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #031275;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Form inputs */
|
||||||
|
.pf-v5-c-form-control > input,
|
||||||
|
.pf-v5-c-form-control > textarea {
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-recovery-codes-list {
|
||||||
|
columns: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#certificate_subjectDN {
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
margin-top: var(--pf-v5-global--spacer--sm);
|
||||||
|
margin-bottom: var(--pf-v5-global--spacer--md);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
div.pf-v5-c-login__main-header {
|
||||||
|
grid-template-columns: 70% 30%;
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 2.4 MiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
@@ -0,0 +1,5 @@
|
|||||||
|
parent=keycloak.v2
|
||||||
|
import=common/keycloak
|
||||||
|
|
||||||
|
stylesCommon=vendor/patternfly-v5/patternfly.min.css vendor/patternfly-v5/patternfly-addons.css
|
||||||
|
styles=css/styles.css css/oceanbox.css
|
||||||
@@ -12,7 +12,7 @@ releases:
|
|||||||
- name: {{ .Environment.Name }}-keycloak
|
- name: {{ .Environment.Name }}-keycloak
|
||||||
namespace: keycloak
|
namespace: keycloak
|
||||||
chart: bitnami/keycloak
|
chart: bitnami/keycloak
|
||||||
version: 24.9.0
|
version: 25.2.0
|
||||||
condition: keycloak.enabled
|
condition: keycloak.enabled
|
||||||
values:
|
values:
|
||||||
- ../values/keycloak/values/values.yaml
|
- ../values/keycloak/values/values.yaml
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ releases:
|
|||||||
- name: kueue
|
- name: kueue
|
||||||
namespace: kueue-system
|
namespace: kueue-system
|
||||||
chart: oci://registry.k8s.io/kueue/charts/kueue
|
chart: oci://registry.k8s.io/kueue/charts/kueue
|
||||||
version: 0.15.0
|
version: 0.16.2
|
||||||
condition: kueue.enabled
|
condition: kueue.enabled
|
||||||
values:
|
values:
|
||||||
- ../values/kueue/values/values.yaml
|
- ../values/kueue/values/values.yaml
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ releases:
|
|||||||
namespace: {{ .Environment.Name }}-openfga
|
namespace: {{ .Environment.Name }}-openfga
|
||||||
{{- end }}
|
{{- end }}
|
||||||
chart: openfga/openfga
|
chart: openfga/openfga
|
||||||
version: 0.2.55
|
version: 0.2.56
|
||||||
condition: openfga.enabled
|
condition: openfga.enabled
|
||||||
values:
|
values:
|
||||||
- ../values/openfga/values/values.yaml
|
- ../values/openfga/values/values.yaml
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ releases:
|
|||||||
- name: prometheus
|
- name: prometheus
|
||||||
namespace: prometheus
|
namespace: prometheus
|
||||||
chart: prometheus/kube-prometheus-stack
|
chart: prometheus/kube-prometheus-stack
|
||||||
version: 82.10.1
|
version: 82.10.3
|
||||||
condition: prometheus.enabled
|
condition: prometheus.enabled
|
||||||
values:
|
values:
|
||||||
- ../values/prometheus/values/prometheus.yaml.gotmpl
|
- ../values/prometheus/values/prometheus.yaml.gotmpl
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ releases:
|
|||||||
- name: umami
|
- name: umami
|
||||||
namespace: analytics
|
namespace: analytics
|
||||||
chart: umami/umami
|
chart: umami/umami
|
||||||
version: 7.7.2
|
version: 7.7.3
|
||||||
condition: umami.enabled
|
condition: umami.enabled
|
||||||
values:
|
values:
|
||||||
- ../values/umami/values/values.yaml
|
- ../values/umami/values/values.yaml
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ releases:
|
|||||||
- name: velero
|
- name: velero
|
||||||
namespace: velero
|
namespace: velero
|
||||||
chart: velero/velero
|
chart: velero/velero
|
||||||
version: 11.4.0
|
version: 12.0.0
|
||||||
condition: velero.enabled
|
condition: velero.enabled
|
||||||
values:
|
values:
|
||||||
- ../values/velero/values/velero.yaml.gotmpl
|
- ../values/velero/values/velero.yaml.gotmpl
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
buildGoModule,
|
||||||
|
fetchFromGitHub,
|
||||||
|
}:
|
||||||
|
buildGoModule rec {
|
||||||
|
pname = "kueuectl";
|
||||||
|
version = "0.16.3";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "kubernetes-sigs";
|
||||||
|
repo = "kueue";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-JbU+ZoQ+YriaiIbbVCe45OTYycxYRanLhmQAdpE+xQ4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
vendorHash = null;
|
||||||
|
|
||||||
|
subPackages = [ "cmd/kueuectl" ];
|
||||||
|
}
|
||||||
+5
-18
@@ -1,23 +1,10 @@
|
|||||||
{
|
{
|
||||||
"pins": {
|
"pins": {
|
||||||
"git-hooks": {
|
|
||||||
"type": "Git",
|
|
||||||
"repository": {
|
|
||||||
"type": "GitHub",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix"
|
|
||||||
},
|
|
||||||
"branch": "master",
|
|
||||||
"submodules": false,
|
|
||||||
"revision": "a1ef738813b15cf8ec759bdff5761b027e3e1d23",
|
|
||||||
"url": "https://github.com/cachix/git-hooks.nix/archive/a1ef738813b15cf8ec759bdff5761b027e3e1d23.tar.gz",
|
|
||||||
"hash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U="
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"type": "Channel",
|
"type": "Channel",
|
||||||
"name": "nixpkgs-unstable",
|
"name": "nixpkgs-unstable",
|
||||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre930822.ed142ab1b3a0/nixexprs.tar.xz",
|
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre961788.75690239f08f/nixexprs.tar.xz",
|
||||||
"hash": "sha256-XH6awru9NnBc/m+2YhRNT8r1PAKEiPGF3gs//F3ods0="
|
"hash": "sha256-p0h/nSeqzIkbn/2uFC4keoIPwmqXGHsX0gkCXM7km00="
|
||||||
},
|
},
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
@@ -28,9 +15,9 @@
|
|||||||
},
|
},
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "337a4fe074be1042a35086f15481d763b8ddc0e7",
|
"revision": "71b125cd05fbfd78cab3e070b73544abe24c5016",
|
||||||
"url": "https://github.com/numtide/treefmt-nix/archive/337a4fe074be1042a35086f15481d763b8ddc0e7.tar.gz",
|
"url": "https://github.com/numtide/treefmt-nix/archive/71b125cd05fbfd78cab3e070b73544abe24c5016.tar.gz",
|
||||||
"hash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk="
|
"hash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk="
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": 7
|
"version": 7
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ let
|
|||||||
overlays = [ ];
|
overlays = [ ];
|
||||||
};
|
};
|
||||||
treefmt = import ./nix/treefmt.nix { };
|
treefmt = import ./nix/treefmt.nix { };
|
||||||
|
kueuectl = pkgs.callPackage ./nix/kueuectl.nix { };
|
||||||
in
|
in
|
||||||
pkgs.mkShellNoCC {
|
pkgs.mkShellNoCC {
|
||||||
packages = [
|
packages = [
|
||||||
@@ -27,6 +28,7 @@ pkgs.mkShellNoCC {
|
|||||||
pkgs.kubectl-rook-ceph
|
pkgs.kubectl-rook-ceph
|
||||||
|
|
||||||
# other tools activate when needed
|
# other tools activate when needed
|
||||||
|
kueuectl
|
||||||
# pkgs.step-cli
|
# pkgs.step-cli
|
||||||
# pkgs.linkerd
|
# pkgs.linkerd
|
||||||
# pkgs.cmctl
|
# pkgs.cmctl
|
||||||
@@ -35,12 +37,15 @@ pkgs.mkShellNoCC {
|
|||||||
# pkgs.renovate
|
# pkgs.renovate
|
||||||
# pkgs.graphviz
|
# pkgs.graphviz
|
||||||
# pkgs.hubble
|
# pkgs.hubble
|
||||||
# pkgs.dapr-cli
|
pkgs.cilium-cli
|
||||||
|
pkgs.dapr-cli
|
||||||
];
|
];
|
||||||
|
|
||||||
# Environment variables
|
# Environment variables
|
||||||
ARGOCD_ENV_CLUSTER_NAME = "ekman";
|
ARGOCD_ENV_CLUSTER_NAME = "ekman";
|
||||||
HELM_GIT_ACCESS_TOKEN = "glpat-xxx";
|
HELM_GIT_ACCESS_TOKEN = "glpat-xxx";
|
||||||
|
API_SERVER_IP = "localhost";
|
||||||
|
API_SERVER_PORT = "7445";
|
||||||
|
|
||||||
# Alternative shells
|
# Alternative shells
|
||||||
passthru = pkgs.lib.mapAttrs (name: value: pkgs.mkShellNoCC (value // { inherit name; })) {
|
passthru = pkgs.lib.mapAttrs (name: value: pkgs.mkShellNoCC (value // { inherit name; })) {
|
||||||
|
|||||||
@@ -94,6 +94,8 @@ spec:
|
|||||||
server: https://kubernetes.default.svc
|
server: https://kubernetes.default.svc
|
||||||
- namespace: jobset-system
|
- namespace: jobset-system
|
||||||
server: https://kubernetes.default.svc
|
server: https://kubernetes.default.svc
|
||||||
|
- namespace: dex
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
sourceRepos:
|
sourceRepos:
|
||||||
- https://argoproj.github.io/argo-helm
|
- https://argoproj.github.io/argo-helm
|
||||||
- https://kubernetes-sigs.github.io/metrics-server/
|
- https://kubernetes-sigs.github.io/metrics-server/
|
||||||
@@ -140,3 +142,4 @@ spec:
|
|||||||
- https://operator.mariadb.com
|
- https://operator.mariadb.com
|
||||||
- https://ot-container-kit.github.io/helm-charts
|
- https://ot-container-kit.github.io/helm-charts
|
||||||
- https://twin.github.io/helm-charts
|
- https://twin.github.io/helm-charts
|
||||||
|
- https://charts.dexidp.io
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
cilium:
|
cilium:
|
||||||
enabled: true
|
enabled: true
|
||||||
# WireGuard cannot be used during migration -- Flannel nodes have no WireGuard
|
clustermesh:
|
||||||
# keys so encrypted traffic is unreadable by them.
|
enabled: false
|
||||||
# TODO: re-enable after migration
|
clusterId: 2
|
||||||
|
# NodePort until L2LB is available (kubeproxyless)
|
||||||
|
apiserverServiceType: NodePort
|
||||||
|
# TODO: WireGuard blocks all traffic on ekman -- disable until root cause is found.
|
||||||
encryption:
|
encryption:
|
||||||
enabled: false
|
enabled: false
|
||||||
envoy:
|
envoy:
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
cilium:
|
cilium:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
clustermesh:
|
||||||
|
enabled: false
|
||||||
|
clusterId: 1
|
||||||
nodePort:
|
nodePort:
|
||||||
enabled: true
|
enabled: true
|
||||||
l2announcement:
|
l2announcement:
|
||||||
|
|||||||
@@ -30,4 +30,8 @@ cilium:
|
|||||||
loadbalancerPool:
|
loadbalancerPool:
|
||||||
enabled: false
|
enabled: false
|
||||||
cidr: []
|
cidr: []
|
||||||
|
clustermesh:
|
||||||
|
enabled: false
|
||||||
|
clusterId: 0
|
||||||
|
apiserverServiceType: LoadBalancer
|
||||||
cluster: {{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}
|
cluster: {{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}
|
||||||
|
|||||||
@@ -1,3 +1,16 @@
|
|||||||
|
cluster:
|
||||||
|
name: {{ .Values.cilium.cluster }}
|
||||||
|
id: {{ .Values.cilium.clustermesh.clusterId }}
|
||||||
|
{{- if .Values.cilium.clustermesh.enabled }}
|
||||||
|
clustermesh:
|
||||||
|
useAPIServer: true
|
||||||
|
apiserver:
|
||||||
|
service:
|
||||||
|
type: {{ .Values.cilium.clustermesh.apiserverServiceType }}
|
||||||
|
tls:
|
||||||
|
auto:
|
||||||
|
method: helm
|
||||||
|
{{- end }}
|
||||||
authentication:
|
authentication:
|
||||||
mutual:
|
mutual:
|
||||||
spire:
|
spire:
|
||||||
@@ -90,7 +103,7 @@ operator:
|
|||||||
prometheus:
|
prometheus:
|
||||||
enabled: true
|
enabled: true
|
||||||
port: 12301
|
port: 12301
|
||||||
serviceMointor:
|
serviceMonitor:
|
||||||
enabled: true
|
enabled: true
|
||||||
port: 12302
|
port: 12302
|
||||||
rollOutPods: true
|
rollOutPods: true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
image:
|
image:
|
||||||
tag: "e9fd3fc6-debug"
|
tag: "0d279bb9-debug"
|
||||||
env:
|
env:
|
||||||
- name: APP_VERSION
|
- name: APP_VERSION
|
||||||
value: "0.0.0"
|
value: "0.0.0"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ replicaCount: 1
|
|||||||
image:
|
image:
|
||||||
registry: "docker.gitea.com"
|
registry: "docker.gitea.com"
|
||||||
repository: gitea
|
repository: gitea
|
||||||
tag: "1.25.4"
|
tag: "1.25.5"
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
image:
|
image:
|
||||||
repository: ghcr.io/juanfont/headscale
|
repository: ghcr.io/juanfont/headscale
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
tag: v0.27.1
|
tag: v0.28.0
|
||||||
|
|
||||||
args: [ "serve" ]
|
args: [ "serve" ]
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
image:
|
image:
|
||||||
repository: ghcr.io/juanfont/headscale
|
repository: ghcr.io/juanfont/headscale
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
tag: v0.27.1
|
tag: v0.28.0
|
||||||
|
|
||||||
args: ["serve"]
|
args: ["serve"]
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ spec:
|
|||||||
- group: ""
|
- group: ""
|
||||||
kind: Secret
|
kind: Secret
|
||||||
name: jobset-webhook-server-cert
|
name: jobset-webhook-server-cert
|
||||||
namespace: default
|
namespace: jobset-system
|
||||||
jsonPointers:
|
jsonPointers:
|
||||||
- /data
|
- /data
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ kubectl cp -n keycloak oceanbox-realm.json prod-keycloak-0:/tmp/backup/oceanbox-
|
|||||||
kubectl cp -n keycloak oceanbox-users-0.json prod-keycloak-0:/tmp/backup/oceanbox-users-0.json
|
kubectl cp -n keycloak oceanbox-users-0.json prod-keycloak-0:/tmp/backup/oceanbox-users-0.json
|
||||||
kc.sh -Djgroups.bind.port=7801 import --dir /tmp/backup
|
kc.sh -Djgroups.bind.port=7801 import --dir /tmp/backup
|
||||||
```
|
```
|
||||||
|
|
||||||
## Theme
|
## Theme
|
||||||
|
|
||||||
Our keycloak theme is inserted using the image provided [here](https://gitlab.com/oceanbox/keycloak-theme)
|
The keycloak theme is maintained at [git.oceanbox.io/platform/keycloak-theme](https://git.oceanbox.io/platform/keycloak-theme) and is deployed via an init container using the `git.oceanbox.io/platform/keycloak-theme` image.
|
||||||
|
|||||||
@@ -33,10 +33,8 @@ spec:
|
|||||||
syncOptions:
|
syncOptions:
|
||||||
- CreateNamespace=true
|
- CreateNamespace=true
|
||||||
- ApplyOutOfSyncOnly=true
|
- ApplyOutOfSyncOnly=true
|
||||||
# - ServerSideApply=true
|
|
||||||
{{- if .Values.keycloak.autosync }}
|
{{- if .Values.keycloak.autosync }}
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
# selfHeal: false
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -1,26 +1,14 @@
|
|||||||
replicaCount: 2
|
replicaCount: 2
|
||||||
|
|
||||||
# NOTE(mrtz): Hack for working with bitnami legacy registry
|
|
||||||
global:
|
|
||||||
security:
|
|
||||||
allowInsecureImages: true
|
|
||||||
image:
|
|
||||||
repository: bitnamilegacy/keycloak
|
|
||||||
|
|
||||||
production: true
|
|
||||||
|
|
||||||
proxy: edge
|
|
||||||
|
|
||||||
auth:
|
auth:
|
||||||
adminPassword: en to tre fire
|
adminPassword: en to tre fire
|
||||||
adminUser: admin
|
|
||||||
existingSecret: ""
|
existingSecret: ""
|
||||||
managementPassword: ""
|
managementPassword: ""
|
||||||
managementUser: manager
|
|
||||||
|
|
||||||
postgresql:
|
postgresql:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
resourcesPreset: "none"
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 750m
|
cpu: 750m
|
||||||
@@ -48,37 +36,7 @@ extraVolumes:
|
|||||||
name: theme
|
name: theme
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
|
||||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
|
||||||
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
|
||||||
enabled: true
|
|
||||||
hostname: auth.oceanbox.io
|
hostname: auth.oceanbox.io
|
||||||
ingressClassName: nginx
|
|
||||||
path: /
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
selfSigned: false
|
|
||||||
servicePort: http
|
|
||||||
tls: true
|
|
||||||
|
|
||||||
adminIngress:
|
|
||||||
enabled: false
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
|
||||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
|
||||||
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
|
||||||
oceanbox.io/expose: internal
|
|
||||||
hostname: keycloak.adm.oceanbox.io
|
|
||||||
ingressClassName: nginx
|
|
||||||
path: /
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
selfSigned: false
|
|
||||||
servicePort: http
|
|
||||||
tls: true
|
|
||||||
|
|
||||||
keycloakConfigCli:
|
keycloakConfigCli:
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -93,8 +51,8 @@ keycloakConfigCli:
|
|||||||
|
|
||||||
initContainers: |
|
initContainers: |
|
||||||
- name: keycloak-theme-provider
|
- name: keycloak-theme-provider
|
||||||
image: docker.io/juselius/oceanbox-theme:1.2
|
image: git.oceanbox.io/platform/keycloak-theme:latest
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: IfNotPresent
|
||||||
command:
|
command:
|
||||||
- sh
|
- sh
|
||||||
args:
|
args:
|
||||||
|
|||||||
@@ -1,22 +1,7 @@
|
|||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
|
|
||||||
# NOTE(mrtz): Hack for working with bitnami legacy registry
|
|
||||||
global:
|
|
||||||
security:
|
|
||||||
allowInsecureImages: true
|
|
||||||
image:
|
|
||||||
repository: bitnamilegacy/keycloak
|
|
||||||
|
|
||||||
production: true
|
|
||||||
|
|
||||||
proxy: edge
|
|
||||||
|
|
||||||
auth:
|
auth:
|
||||||
adminPassword: en to tre fire
|
adminPassword: en to tre fire
|
||||||
adminUser: admin
|
|
||||||
existingSecret: ""
|
|
||||||
managementPassword: ""
|
|
||||||
managementUser: manager
|
|
||||||
|
|
||||||
postgresql:
|
postgresql:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -24,58 +9,5 @@ postgresql:
|
|||||||
postgresPassword: "avatar mustiness economic"
|
postgresPassword: "avatar mustiness economic"
|
||||||
password: "punctured abstain facility"
|
password: "punctured abstain facility"
|
||||||
|
|
||||||
extraVolumeMounts:
|
|
||||||
- mountPath: /opt/bitnami/keycloak/themes/oceanbox
|
|
||||||
name: theme
|
|
||||||
|
|
||||||
extraVolumes:
|
|
||||||
- emptyDir: {}
|
|
||||||
name: theme
|
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
|
||||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
|
||||||
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
|
||||||
enabled: true
|
|
||||||
hostname: auth.srv.oceanbox.io
|
hostname: auth.srv.oceanbox.io
|
||||||
ingressClassName: nginx
|
|
||||||
path: /
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
selfSigned: false
|
|
||||||
servicePort: http
|
|
||||||
tls: true
|
|
||||||
|
|
||||||
adminIngress:
|
|
||||||
enabled: false
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
|
||||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
|
||||||
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
|
||||||
oceanbox.io/expose: internal
|
|
||||||
hostname: auth.adm.oceanbox.io
|
|
||||||
ingressClassName: nginx
|
|
||||||
path: /
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
selfSigned: false
|
|
||||||
servicePort: http
|
|
||||||
tls: true
|
|
||||||
|
|
||||||
initContainers: |
|
|
||||||
- name: keycloak-theme-provider
|
|
||||||
image: docker.io/juselius/oceanbox-theme:1.2
|
|
||||||
imagePullPolicy: Always
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
args:
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
echo "Copying theme..."
|
|
||||||
cp -R /theme/* /keycloak/themes/oceanbox
|
|
||||||
volumeMounts:
|
|
||||||
- name: theme
|
|
||||||
mountPath: /keycloak/themes/oceanbox
|
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# NOTE(mrtz): Hack for working with bitnami legacy registry
|
||||||
|
global:
|
||||||
|
security:
|
||||||
|
allowInsecureImages: true
|
||||||
|
image:
|
||||||
|
repository: bitnamilegacy/keycloak
|
||||||
|
|
||||||
|
production: true
|
||||||
|
|
||||||
|
proxyHeaders: xforwarded
|
||||||
|
|
||||||
|
auth:
|
||||||
|
adminUser: admin
|
||||||
|
managementUser: manager
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||||
|
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||||
|
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
||||||
|
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
enabled: true
|
||||||
|
ingressClassName: nginx
|
||||||
|
path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
selfSigned: false
|
||||||
|
servicePort: http
|
||||||
|
tls: true
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kueue:
|
|
||||||
enabled: true
|
|
||||||
autosync: false
|
|
||||||
@@ -1,51 +1,68 @@
|
|||||||
apiVersion: kueue.x-k8s.io/v1beta1
|
apiVersion: kueue.x-k8s.io/v1beta2
|
||||||
kind: ResourceFlavor
|
kind: ResourceFlavor
|
||||||
metadata:
|
metadata:
|
||||||
name: compute # Just needs to exist, can be managed with tains/tolerations
|
name: compute # Just needs to exist, can be managed with tains/tolerations
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "2"
|
||||||
|
spec:
|
||||||
|
nodeLabels:
|
||||||
|
node-role.kubernetes.io/compute: compute
|
||||||
|
topology.kubernetes.io/group: c1 # Only run on C1 for now
|
||||||
---
|
---
|
||||||
apiVersion: kueue.x-k8s.io/v1beta1
|
apiVersion: kueue.x-k8s.io/v1beta2
|
||||||
kind: ClusterQueue
|
kind: ClusterQueue
|
||||||
metadata:
|
metadata:
|
||||||
name: jobs
|
name: cluster-queue
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "2"
|
||||||
spec:
|
spec:
|
||||||
cohort: general
|
|
||||||
namespaceSelector: {} # Accept workloads from any namespace
|
namespaceSelector: {} # Accept workloads from any namespace
|
||||||
preemption:
|
queueingStrategy: BestEffortFIFO
|
||||||
withinClusterQueue: "LowerPriority" # Allow higher priority to preempt lower
|
# preemption:
|
||||||
|
# withinClusterQueue: "LowerPriority" # Allow higher priority to preempt lower
|
||||||
resourceGroups:
|
resourceGroups:
|
||||||
- coveredResources: ["cpu", "memory"] # Cover both memory and cpu resources
|
- coveredResources: ["cpu", "memory"] # Cover both memory and cpu resources
|
||||||
flavors:
|
flavors:
|
||||||
- name: compute
|
- name: compute
|
||||||
resources:
|
resources:
|
||||||
- name: "cpu"
|
- name: "cpu"
|
||||||
nominalQuota: '4'
|
nominalQuota: '32'
|
||||||
- name: "memory"
|
- name: "memory"
|
||||||
nominalQuota: 8Gi
|
nominalQuota: 64Gi
|
||||||
|
# ---
|
||||||
|
# apiVersion: kueue.x-k8s.io/v1beta2
|
||||||
|
# kind: LocalQueue
|
||||||
|
# metadata:
|
||||||
|
# name: prod-queue
|
||||||
|
# namespace: prod-queue
|
||||||
|
# spec:
|
||||||
|
# clusterQueue: cluster-queue
|
||||||
---
|
---
|
||||||
apiVersion: kueue.x-k8s.io/v1beta1
|
apiVersion: v1
|
||||||
kind: LocalQueue
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
name: prod-queue
|
name: dev-queue
|
||||||
namespace: prod-sorcerer
|
annotations:
|
||||||
spec:
|
argocd.argoproj.io/sync-wave: "2"
|
||||||
clusterQueue: jobs
|
|
||||||
---
|
---
|
||||||
apiVersion: kueue.x-k8s.io/v1beta1
|
apiVersion: kueue.x-k8s.io/v1beta2
|
||||||
kind: LocalQueue
|
kind: LocalQueue
|
||||||
metadata:
|
metadata:
|
||||||
name: staging-queue
|
name: staging-queue
|
||||||
namespace: staging-sorcerer
|
namespace: dev-queue
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "2"
|
||||||
spec:
|
spec:
|
||||||
clusterQueue: jobs
|
clusterQueue: cluster-queue
|
||||||
---
|
# ---
|
||||||
apiVersion: kueue.x-k8s.io/v1beta1
|
# apiVersion: kueue.x-k8s.io/v1beta2
|
||||||
kind: WorkloadPriorityClass
|
# kind: WorkloadPriorityClass
|
||||||
metadata:
|
# metadata:
|
||||||
name: "normal"
|
# name: "normal"
|
||||||
value: 100
|
# value: 100
|
||||||
---
|
# ---
|
||||||
apiVersion: kueue.x-k8s.io/v1beta1
|
# apiVersion: kueue.x-k8s.io/v1beta2
|
||||||
kind: WorkloadPriorityClass
|
# kind: WorkloadPriorityClass
|
||||||
metadata:
|
# metadata:
|
||||||
name: "high"
|
# name: "high"
|
||||||
value: 200 # Higher value = higher priority
|
# value: 200 # Higher value = higher priority
|
||||||
|
|||||||
@@ -1,89 +0,0 @@
|
|||||||
{{- if eq .Values.clusterConfig.cluster "ekman"}}
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: kueueviz-ingress
|
|
||||||
namespace: kueue-system
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: ca-issuer
|
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
|
||||||
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
|
|
||||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
|
|
||||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
|
|
||||||
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
|
||||||
nginx.ingress.kubernetes.io/websocket-services: kueue-kueueviz-backend
|
|
||||||
spec:
|
|
||||||
rules:
|
|
||||||
- host: kueue.dev.tos.obx
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /ws
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: kueue-kueueviz-backend
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
- path: /api(/|$)(.*)
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: kueue-kueueviz-backend
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: kueue-kueueviz-frontend
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- kueue.dev.tos.obx
|
|
||||||
secretName: kueueviz-tls
|
|
||||||
{{- end}}
|
|
||||||
---
|
|
||||||
{{- if eq .Values.clusterConfig.cluster "rossby"}}
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: kueueviz-ingress
|
|
||||||
namespace: kueue-system
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: ca-issuer
|
|
||||||
nginx.ingress.kubernetes.io/websocket-services: kueue-kueueviz-backend
|
|
||||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
|
|
||||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
|
|
||||||
spec:
|
|
||||||
rules:
|
|
||||||
- host: kueue.dev.vtn.obx
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /ws
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: kueue-kueueviz-backend
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
- path: /api(/|$)(.*)
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: kueue-kueueviz-backend
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: kueue-kueueviz-frontend
|
|
||||||
port:
|
|
||||||
number: 8080
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- kueue.dev.vtn.obx
|
|
||||||
secretName: kueueviz-tls
|
|
||||||
{{- end}}
|
|
||||||
@@ -5,6 +5,7 @@ metadata:
|
|||||||
name: kueue
|
name: kueue
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
annotations:
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||||
argocd.argoproj.io/compare-options: ServerSideDiff=true
|
argocd.argoproj.io/compare-options: ServerSideDiff=true
|
||||||
finalizers:
|
finalizers:
|
||||||
@@ -27,7 +28,7 @@ spec:
|
|||||||
value: {{ .Values.kueue.env }}
|
value: {{ .Values.kueue.env }}
|
||||||
- name: HELMFILE_FILE_PATH
|
- name: HELMFILE_FILE_PATH
|
||||||
value: kueue.yaml.gotmpl
|
value: kueue.yaml.gotmpl
|
||||||
- repoURL: https://gitlab.com/oceanbox/manifests.git
|
- repoURL: {{ .Values.clusterConfig.manifests }}
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
ref: values
|
ref: values
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
@@ -41,4 +42,3 @@ spec:
|
|||||||
selfHeal: false
|
selfHeal: false
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
kueueViz:
|
|
||||||
backend:
|
|
||||||
env:
|
|
||||||
- name: KUEUEVIZ_ALLOWED_ORIGINS
|
|
||||||
value: "https://kueue.dev.tos.obx"
|
|
||||||
frontend:
|
|
||||||
env:
|
|
||||||
- name: REACT_APP_WEBSOCKET_URL
|
|
||||||
value: "wss://kueue.dev.tos.obx"
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
kueueViz:
|
|
||||||
backend:
|
|
||||||
env:
|
|
||||||
- name: KUEUEVIZ_ALLOWED_ORIGINS
|
|
||||||
value: "https://kueue.dev.vtn.obx"
|
|
||||||
frontend:
|
|
||||||
env:
|
|
||||||
- name: REACT_APP_WEBSOCKET_URL
|
|
||||||
value: "wss://kueue.dev.vtn.obx"
|
|
||||||
@@ -1,21 +1,14 @@
|
|||||||
controllerManager:
|
managerConfig:
|
||||||
featureGates:
|
controllerManagerConfigYaml: |
|
||||||
- name: TopologyAwareScheduling
|
apiVersion: config.kueue.x-k8s.io/v1beta2
|
||||||
enabled: true
|
kind: Configuration
|
||||||
- name: LocalQueueMetrics
|
integrations:
|
||||||
enabled: true
|
frameworks:
|
||||||
managerConfig:
|
- batch/job
|
||||||
controllerManagerConfigYaml: |
|
- jobset.x-k8s.io/jobset
|
||||||
apiVersion: config.kueue.x-k8s.io/v1beta1
|
internalCertManagement:
|
||||||
kind: Configuration
|
enable: false
|
||||||
integrations:
|
enableCertManager: true
|
||||||
frameworks:
|
|
||||||
- batch/job
|
|
||||||
- jobset.x-k8s.io/jobset
|
|
||||||
internalCertManagement:
|
|
||||||
enable: false
|
|
||||||
enableCertManager: false
|
|
||||||
enablePrometheus: true
|
enablePrometheus: true
|
||||||
metrics:
|
metrics:
|
||||||
prometheusNamespace: prometheus
|
prometheusNamespace: prometheus
|
||||||
enableKueueViz: true
|
|
||||||
|
|||||||
@@ -9,4 +9,5 @@ spec:
|
|||||||
- toFQDNs:
|
- toFQDNs:
|
||||||
- matchName: login.microsoftonline.com
|
- matchName: login.microsoftonline.com
|
||||||
- matchPattern: '*.microsoftonline.com'
|
- matchPattern: '*.microsoftonline.com'
|
||||||
|
- matchName: graph.microsoft.com
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -9,4 +9,5 @@ spec:
|
|||||||
- toFQDNs:
|
- toFQDNs:
|
||||||
- matchName: login.microsoftonline.com
|
- matchName: login.microsoftonline.com
|
||||||
- matchPattern: '*.microsoftonline.com'
|
- matchPattern: '*.microsoftonline.com'
|
||||||
|
- matchName: graph.microsoft.com
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -72,7 +72,3 @@ metrics:
|
|||||||
for: 15m
|
for: 15m
|
||||||
labels:
|
labels:
|
||||||
severity: critical
|
severity: critical
|
||||||
kubectl:
|
|
||||||
image:
|
|
||||||
repository: docker.io/bitnamilegacy/kubectl
|
|
||||||
tag: 1.33.4
|
|
||||||
|
|||||||
Reference in New Issue
Block a user