Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
ae01e69fc2
|
@@ -1,3 +0,0 @@
|
||||
FROM busybox
|
||||
|
||||
COPY keycloak-themes/oceanbox /theme
|
||||
@@ -1,109 +0,0 @@
|
||||
/* 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.
|
Before Width: | Height: | Size: 2.4 MiB |
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 57 KiB |
@@ -1,5 +0,0 @@
|
||||
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
|
||||
Vendored
+46
@@ -0,0 +1,46 @@
|
||||
{{- if .Values.httpRoute.enabled -}}
|
||||
{{- $fullName := include "docs.fullname" . -}}
|
||||
{{- $svcPort := .Values.service.port -}}
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
{{- include "docs.labels" . | nindent 4 }}
|
||||
spec:
|
||||
parentRefs:
|
||||
{{- toYaml .Values.httpRoute.parentRefs | nindent 4 }}
|
||||
{{- with .Values.httpRoute.hostnames }}
|
||||
hostnames:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.httpRoute.rules }}
|
||||
- {{- with .matches }}
|
||||
matches:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
backendRefs:
|
||||
- name: {{ $fullName }}
|
||||
port: {{ $svcPort }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-{{ $fullName }}
|
||||
labels:
|
||||
{{- include "docs.labels" . | nindent 4 }}
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
{{- include "docs.selectorLabels" . | nindent 6 }}
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
{{- range .Values.clusterConfig.ingress_whitelist }}
|
||||
- cidr: {{ . }}
|
||||
{{- end }}
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
@@ -46,8 +46,13 @@ service:
|
||||
type: ClusterIP
|
||||
port: 8080
|
||||
ingress:
|
||||
enabled: true
|
||||
enabled: false
|
||||
className: nginx
|
||||
httpRoute:
|
||||
enabled: false
|
||||
parentRefs: []
|
||||
hostnames: []
|
||||
rules: []
|
||||
persistence:
|
||||
enabled: false
|
||||
size: 1G
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
{{- if .Values.httpRoute.enabled -}}
|
||||
{{- $fullName := include "makai.fullname" . -}}
|
||||
{{- $svcPort := .Values.service.port -}}
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
{{- include "makai.labels" . | nindent 4 }}
|
||||
spec:
|
||||
parentRefs:
|
||||
{{- toYaml .Values.httpRoute.parentRefs | nindent 4 }}
|
||||
{{- with .Values.httpRoute.hostnames }}
|
||||
hostnames:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.httpRoute.rules }}
|
||||
- {{- with .matches }}
|
||||
matches:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
backendRefs:
|
||||
- name: {{ $fullName }}
|
||||
port: {{ $svcPort }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-{{ $fullName }}
|
||||
labels:
|
||||
{{- include "makai.labels" . | nindent 4 }}
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
{{- include "makai.selectorLabels" . | nindent 6 }}
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
{{- range .Values.clusterConfig.ingress_whitelist }}
|
||||
- cidr: {{ . }}
|
||||
{{- end }}
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
@@ -46,8 +46,13 @@ service:
|
||||
type: ClusterIP
|
||||
port: 8080
|
||||
ingress:
|
||||
enabled: true
|
||||
enabled: false
|
||||
className: nginx
|
||||
httpRoute:
|
||||
enabled: false
|
||||
parentRefs: []
|
||||
hostnames: []
|
||||
rules: []
|
||||
persistence:
|
||||
enabled: false
|
||||
size: 1G
|
||||
|
||||
@@ -11,6 +11,7 @@ releases:
|
||||
condition: docs.enabled
|
||||
values:
|
||||
- ../values/docs/values/values.yaml
|
||||
- ../values/docs/values/values.yaml.gotmpl
|
||||
- ../values/docs/values/values-{{ .Environment.Name }}.yaml
|
||||
postRenderer: ../bin/kustomizer
|
||||
postRendererArgs:
|
||||
|
||||
@@ -17,6 +17,7 @@ releases:
|
||||
condition: gitea.enabled
|
||||
values:
|
||||
- ../values/gitea/values/values.yaml
|
||||
- ../values/gitea/values/values.yaml.gotmpl
|
||||
- ../values/gitea/values/values-{{ .Environment.Name }}.yaml
|
||||
postRenderer: ../bin/kustomizer
|
||||
postRendererArgs:
|
||||
|
||||
@@ -12,7 +12,7 @@ releases:
|
||||
- name: {{ .Environment.Name }}-keycloak
|
||||
namespace: keycloak
|
||||
chart: bitnami/keycloak
|
||||
version: 25.2.0
|
||||
version: 24.9.0
|
||||
condition: keycloak.enabled
|
||||
values:
|
||||
- ../values/keycloak/values/values.yaml
|
||||
|
||||
@@ -8,7 +8,7 @@ releases:
|
||||
- name: kueue
|
||||
namespace: kueue-system
|
||||
chart: oci://registry.k8s.io/kueue/charts/kueue
|
||||
version: 0.16.2
|
||||
version: 0.15.0
|
||||
condition: kueue.enabled
|
||||
values:
|
||||
- ../values/kueue/values/values.yaml
|
||||
|
||||
@@ -11,6 +11,7 @@ releases:
|
||||
condition: makai.enabled
|
||||
values:
|
||||
- ../values/makai/values/values.yaml
|
||||
- ../values/makai/values/values.yaml.gotmpl
|
||||
- ../values/makai/values/values-{{ .Environment.Name }}.yaml
|
||||
postRenderer: ../bin/kustomizer
|
||||
postRendererArgs:
|
||||
|
||||
@@ -16,7 +16,7 @@ releases:
|
||||
namespace: {{ .Environment.Name }}-openfga
|
||||
{{- end }}
|
||||
chart: openfga/openfga
|
||||
version: 0.2.56
|
||||
version: 0.2.55
|
||||
condition: openfga.enabled
|
||||
values:
|
||||
- ../values/openfga/values/values.yaml
|
||||
|
||||
@@ -15,7 +15,7 @@ releases:
|
||||
- name: prometheus
|
||||
namespace: prometheus
|
||||
chart: prometheus/kube-prometheus-stack
|
||||
version: 82.10.3
|
||||
version: 82.10.1
|
||||
condition: prometheus.enabled
|
||||
values:
|
||||
- ../values/prometheus/values/prometheus.yaml.gotmpl
|
||||
|
||||
@@ -14,7 +14,7 @@ releases:
|
||||
- name: umami
|
||||
namespace: analytics
|
||||
chart: umami/umami
|
||||
version: 7.7.3
|
||||
version: 7.7.2
|
||||
condition: umami.enabled
|
||||
values:
|
||||
- ../values/umami/values/values.yaml
|
||||
|
||||
@@ -15,7 +15,7 @@ releases:
|
||||
- name: velero
|
||||
namespace: velero
|
||||
chart: velero/velero
|
||||
version: 12.0.0
|
||||
version: 11.4.0
|
||||
condition: velero.enabled
|
||||
values:
|
||||
- ../values/velero/values/velero.yaml.gotmpl
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
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" ];
|
||||
}
|
||||
+18
-5
@@ -1,10 +1,23 @@
|
||||
{
|
||||
"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": {
|
||||
"type": "Channel",
|
||||
"name": "nixpkgs-unstable",
|
||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre961788.75690239f08f/nixexprs.tar.xz",
|
||||
"hash": "sha256-p0h/nSeqzIkbn/2uFC4keoIPwmqXGHsX0gkCXM7km00="
|
||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre930822.ed142ab1b3a0/nixexprs.tar.xz",
|
||||
"hash": "sha256-XH6awru9NnBc/m+2YhRNT8r1PAKEiPGF3gs//F3ods0="
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"type": "Git",
|
||||
@@ -15,9 +28,9 @@
|
||||
},
|
||||
"branch": "main",
|
||||
"submodules": false,
|
||||
"revision": "71b125cd05fbfd78cab3e070b73544abe24c5016",
|
||||
"url": "https://github.com/numtide/treefmt-nix/archive/71b125cd05fbfd78cab3e070b73544abe24c5016.tar.gz",
|
||||
"hash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk="
|
||||
"revision": "337a4fe074be1042a35086f15481d763b8ddc0e7",
|
||||
"url": "https://github.com/numtide/treefmt-nix/archive/337a4fe074be1042a35086f15481d763b8ddc0e7.tar.gz",
|
||||
"hash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk="
|
||||
}
|
||||
},
|
||||
"version": 7
|
||||
|
||||
@@ -7,7 +7,6 @@ let
|
||||
overlays = [ ];
|
||||
};
|
||||
treefmt = import ./nix/treefmt.nix { };
|
||||
kueuectl = pkgs.callPackage ./nix/kueuectl.nix { };
|
||||
in
|
||||
pkgs.mkShellNoCC {
|
||||
packages = [
|
||||
@@ -28,7 +27,6 @@ pkgs.mkShellNoCC {
|
||||
pkgs.kubectl-rook-ceph
|
||||
|
||||
# other tools activate when needed
|
||||
kueuectl
|
||||
# pkgs.step-cli
|
||||
# pkgs.linkerd
|
||||
# pkgs.cmctl
|
||||
@@ -37,15 +35,12 @@ pkgs.mkShellNoCC {
|
||||
# pkgs.renovate
|
||||
# pkgs.graphviz
|
||||
# pkgs.hubble
|
||||
pkgs.cilium-cli
|
||||
pkgs.dapr-cli
|
||||
# pkgs.dapr-cli
|
||||
];
|
||||
|
||||
# Environment variables
|
||||
ARGOCD_ENV_CLUSTER_NAME = "ekman";
|
||||
HELM_GIT_ACCESS_TOKEN = "glpat-xxx";
|
||||
API_SERVER_IP = "localhost";
|
||||
API_SERVER_PORT = "7445";
|
||||
|
||||
# Alternative shells
|
||||
passthru = pkgs.lib.mapAttrs (name: value: pkgs.mkShellNoCC (value // { inherit name; })) {
|
||||
|
||||
@@ -28,6 +28,7 @@ spec:
|
||||
managedNamespaceMetadata:
|
||||
labels:
|
||||
component: sys
|
||||
shared-gateway-access: "true"
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: argocd-server
|
||||
namespace: argocd
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https-internal
|
||||
hostnames:
|
||||
- argocd.{{ .Values.clusterConfig.domain }}
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
backendRefs:
|
||||
- name: argocd-server
|
||||
port: 80
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-argocd
|
||||
namespace: argocd
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: argocd-server
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
{{- range .Values.clusterConfig.ingress_whitelist }}
|
||||
- cidr: {{ . }}
|
||||
{{- end }}
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": argocd
|
||||
{{- end }}
|
||||
@@ -94,8 +94,6 @@ spec:
|
||||
server: https://kubernetes.default.svc
|
||||
- namespace: jobset-system
|
||||
server: https://kubernetes.default.svc
|
||||
- namespace: dex
|
||||
server: https://kubernetes.default.svc
|
||||
sourceRepos:
|
||||
- https://argoproj.github.io/argo-helm
|
||||
- https://kubernetes-sigs.github.io/metrics-server/
|
||||
@@ -142,4 +140,3 @@ spec:
|
||||
- https://operator.mariadb.com
|
||||
- https://ot-container-kit.github.io/helm-charts
|
||||
- https://twin.github.io/helm-charts
|
||||
- https://charts.dexidp.io
|
||||
|
||||
@@ -4,13 +4,16 @@ global:
|
||||
## Ref: https://github.com/argoproj/argo-cd
|
||||
##
|
||||
configs:
|
||||
{{- if .Values.argocd.anyNamespaces.enabled }}
|
||||
params:
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
server.insecure: "true"
|
||||
{{- end }}
|
||||
{{- if .Values.argocd.anyNamespaces.enabled }}
|
||||
applicationsetcontroller.namespaces: "{{ .Values.argocd.anyNamespaces.glob }}"
|
||||
# TODO(kai): anyapp will disable PR review apps. Look into anyapp settings to fix it
|
||||
applicationsetcontroller.enable.scm.providers: "false"
|
||||
application.namespaces: "{{ .Values.argocd.anyNamespaces.glob }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
cm:
|
||||
application.resourceTrackingMethod: annotation+label
|
||||
application.instanceLabelKey: app.kubernetes.io/instance
|
||||
@@ -238,6 +241,9 @@ server:
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
ingress:
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
enabled: false
|
||||
{{- else }}
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
annotations:
|
||||
@@ -254,6 +260,7 @@ server:
|
||||
- secretName: argocd-tls
|
||||
hosts:
|
||||
- "argocd.{{ .Values.clusterConfig.domain }}"
|
||||
{{- end }}
|
||||
applicationSet:
|
||||
metrics:
|
||||
enabled: true
|
||||
|
||||
@@ -13,7 +13,7 @@ spec:
|
||||
annotations:
|
||||
load-balancer.hetzner.cloud/location: hel1
|
||||
load-balancer.hetzner.cloud/type: lb11
|
||||
load-balancer.hetzner.cloud/name: load-balancer-2
|
||||
load-balancer.hetzner.cloud/name: load-balancer-1
|
||||
load-balancer.hetzner.cloud/use-private-ip: "true"
|
||||
load-balancer.hetzner.cloud/uses-proxyprotocol: "true"
|
||||
load-balancer.hetzner.cloud/http-redirect-https: "false"
|
||||
@@ -42,6 +42,36 @@ spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
shared-gateway-access: "true"
|
||||
- name: https-hel1
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "*.hel1.oceanbox.io"
|
||||
tls:
|
||||
certificateRefs:
|
||||
- group: ''
|
||||
kind: Secret
|
||||
name: wildcard-hel1-oceanbox-io
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
shared-gateway-access: "true"
|
||||
- name: https-internal
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "*.adm.hel1.obx"
|
||||
tls:
|
||||
certificateRefs:
|
||||
- group: ''
|
||||
kind: Secret
|
||||
name: wildcard-adm-hel1-obx
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
shared-gateway-access: "true"
|
||||
- name: ssh
|
||||
protocol: TCP
|
||||
port: 22
|
||||
@@ -65,4 +95,28 @@ spec:
|
||||
issuerRef:
|
||||
name: letsencrypt-prod-dns01
|
||||
kind: ClusterIssuer
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: wildcard-hel1-oceanbox-io
|
||||
spec:
|
||||
secretName: wildcard-hel1-oceanbox-io
|
||||
dnsNames:
|
||||
- "*.hel1.oceanbox.io"
|
||||
issuerRef:
|
||||
name: letsencrypt-prod-dns01
|
||||
kind: ClusterIssuer
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: wildcard-adm-hel1-obx
|
||||
spec:
|
||||
secretName: wildcard-adm-hel1-obx
|
||||
dnsNames:
|
||||
- "*.adm.hel1.obx"
|
||||
issuerRef:
|
||||
name: ca-issuer
|
||||
kind: ClusterIssuer
|
||||
{{- end}}
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
cilium:
|
||||
enabled: true
|
||||
clustermesh:
|
||||
enabled: false
|
||||
clusterId: 2
|
||||
# NodePort until L2LB is available (kubeproxyless)
|
||||
apiserverServiceType: NodePort
|
||||
# TODO: WireGuard blocks all traffic on ekman -- disable until root cause is found.
|
||||
# WireGuard cannot be used during migration -- Flannel nodes have no WireGuard
|
||||
# keys so encrypted traffic is unreadable by them.
|
||||
# TODO: re-enable after migration
|
||||
encryption:
|
||||
enabled: false
|
||||
envoy:
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
cilium:
|
||||
enabled: true
|
||||
clustermesh:
|
||||
enabled: false
|
||||
clusterId: 1
|
||||
nodePort:
|
||||
enabled: true
|
||||
l2announcement:
|
||||
|
||||
@@ -30,8 +30,4 @@ cilium:
|
||||
loadbalancerPool:
|
||||
enabled: false
|
||||
cidr: []
|
||||
clustermesh:
|
||||
enabled: false
|
||||
clusterId: 0
|
||||
apiserverServiceType: LoadBalancer
|
||||
cluster: {{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}
|
||||
|
||||
@@ -1,16 +1,3 @@
|
||||
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:
|
||||
mutual:
|
||||
spire:
|
||||
@@ -103,7 +90,7 @@ operator:
|
||||
prometheus:
|
||||
enabled: true
|
||||
port: 12301
|
||||
serviceMonitor:
|
||||
serviceMointor:
|
||||
enabled: true
|
||||
port: 12302
|
||||
rollOutPods: true
|
||||
|
||||
@@ -28,6 +28,9 @@ spec:
|
||||
- name: HELMFILE_FILE_PATH
|
||||
value: docs.yaml.gotmpl
|
||||
syncPolicy:
|
||||
managedNamespaceMetadata:
|
||||
labels:
|
||||
shared-gateway-access: "true"
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- /* HTTPRoute and CiliumNetworkPolicy are managed by the docs chart template */ -}}
|
||||
@@ -1,6 +1,6 @@
|
||||
replicaCount: 1
|
||||
image:
|
||||
tag: "0d279bb9-debug"
|
||||
tag: "e9fd3fc6-debug"
|
||||
env:
|
||||
- name: APP_VERSION
|
||||
value: "0.0.0"
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
replicaCount: 1
|
||||
image:
|
||||
tag: "e9fd3fc6-debug"
|
||||
env:
|
||||
- name: APP_VERSION
|
||||
value: "0.0.0"
|
||||
- name: LOG_LEVEL
|
||||
value: "1"
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
ingress:
|
||||
enabled: false
|
||||
className: "nginx"
|
||||
httpRoute:
|
||||
enabled: true
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https
|
||||
hostnames:
|
||||
- docs.oceanbox.io
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
{{- else }}
|
||||
ingress:
|
||||
enabled: true
|
||||
className: "nginx"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
oceanbox.io/expose: internal
|
||||
hosts:
|
||||
- host: docs.oceanbox.io
|
||||
paths:
|
||||
- path: /
|
||||
pathType: ImplementationSpecific
|
||||
tls:
|
||||
- hosts:
|
||||
- docs.oceanbox.io
|
||||
secretName: docs-tls
|
||||
{{- end }}
|
||||
@@ -1,32 +1,38 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
|
||||
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24,100.64.0.0/12
|
||||
labels:
|
||||
app.kubernetes.io/component: drupal
|
||||
name: drupal
|
||||
namespace: fornix
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https-hel1
|
||||
hostnames:
|
||||
- drupal.hel1.oceanbox.io
|
||||
rules:
|
||||
- host: drupal.hel1.oceanbox.io
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: drupal
|
||||
port:
|
||||
number: 80
|
||||
path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- drupal.hel1.oceanbox.io
|
||||
secretName: drupal-tls
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
backendRefs:
|
||||
- name: drupal
|
||||
port: 80
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-drupal
|
||||
namespace: fornix
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
app: drupal
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
{{- range .Values.clusterConfig.ingress_whitelist }}
|
||||
- cidr: {{ . }}
|
||||
{{- end }}
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": fornix
|
||||
|
||||
@@ -20,6 +20,8 @@ clusterConfig:
|
||||
patterns: []
|
||||
cidr: []
|
||||
nodes: []
|
||||
gatewayAPI:
|
||||
enabled: true
|
||||
ingress_whitelist:
|
||||
- 10.0.0.0/8
|
||||
- 172.16.0.0/12
|
||||
|
||||
@@ -20,6 +20,8 @@ clusterConfig:
|
||||
- 192.168.0.0/16
|
||||
- 172.19.255.0/24
|
||||
- 100.64.0.0/12 # tailnet
|
||||
gatewayAPI:
|
||||
enabled: false
|
||||
ingress_hostnetwork: false
|
||||
ingress_hostport: false
|
||||
ingress_nodeport: true
|
||||
|
||||
@@ -31,6 +31,9 @@ spec:
|
||||
targetRevision: main
|
||||
ref: values
|
||||
syncPolicy:
|
||||
managedNamespaceMetadata:
|
||||
labels:
|
||||
shared-gateway-access: "true"
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: fornix
|
||||
namespace: fornix
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https-hel1
|
||||
hostnames:
|
||||
- fornix.hel1.oceanbox.io
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
backendRefs:
|
||||
- name: fornix
|
||||
port: 8085
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-fornix
|
||||
namespace: fornix
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: fornix
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
{{- range .Values.clusterConfig.ingress_whitelist }}
|
||||
- cidr: {{ . }}
|
||||
{{- end }}
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": fornix
|
||||
@@ -3,7 +3,7 @@ drupalUrl: http://drupal
|
||||
|
||||
replicaCount: 1
|
||||
ingress:
|
||||
enabled: true
|
||||
enabled: false
|
||||
className: "nginx"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||
|
||||
@@ -26,6 +26,7 @@ spec:
|
||||
managedNamespaceMetadata:
|
||||
labels:
|
||||
component: sys
|
||||
shared-gateway-access: "true"
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
|
||||
@@ -1,8 +1,48 @@
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: gatus
|
||||
namespace: uptime
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https-internal
|
||||
hostnames:
|
||||
- uptime.{{ .Values.clusterConfig.domain }}
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
backendRefs:
|
||||
- name: gatus
|
||||
port: 80
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-gatus
|
||||
namespace: uptime
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: gatus
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
{{- range .Values.clusterConfig.ingress_whitelist }}
|
||||
- cidr: {{ . }}
|
||||
{{- end }}
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": uptime
|
||||
{{- else }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: ca-issuer
|
||||
cert-manager.io/cluster-issuer: {{ .Values.clusterConfig.ingress_clusterissuer }}
|
||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
||||
nginx.ingress.kubernetes.io/cors-allow-headers: Content-Type, x-gatus-cache
|
||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
@@ -15,7 +55,7 @@ metadata:
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: uptime.adm.hel1.obx
|
||||
- host: uptime.{{ .Values.clusterConfig.domain }}
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
@@ -27,5 +67,6 @@ spec:
|
||||
pathType: ImplementationSpecific
|
||||
tls:
|
||||
- hosts:
|
||||
- uptime.adm.hel1.obx
|
||||
- uptime.{{ .Values.clusterConfig.domain }}
|
||||
secretName: gatus-tls
|
||||
{{- end }}
|
||||
|
||||
@@ -14,11 +14,36 @@ spec:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
timeouts:
|
||||
request: 600s
|
||||
backendRequest: 600s
|
||||
backendRefs:
|
||||
- name: gitea-http
|
||||
port: 3000
|
||||
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-gitea
|
||||
namespace: gitea
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: gitea
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
- cidr: 10.0.0.0/8
|
||||
- cidr: 172.16.0.0/12
|
||||
- cidr: 192.168.0.0/16
|
||||
- cidr: 172.19.255.0/24
|
||||
- cidr: 100.64.0.0/12
|
||||
- cidr: 185.125.160.4/32
|
||||
- cidr: 37.27.203.38/32
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": gitea
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1alpha2
|
||||
kind: TCPRoute
|
||||
metadata:
|
||||
|
||||
@@ -3,7 +3,7 @@ replicaCount: 1
|
||||
image:
|
||||
registry: "docker.gitea.com"
|
||||
repository: gitea
|
||||
tag: "1.25.5"
|
||||
tag: "1.25.4"
|
||||
|
||||
resources:
|
||||
requests:
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{{- /* Gateway API: disable ingress when cilium gateway is enabled (HTTPRoute is in manifests/gateway-routes.yaml) */ -}}
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
ingress:
|
||||
enabled: false
|
||||
{{- else }}
|
||||
ingress:
|
||||
enabled: true
|
||||
{{- end }}
|
||||
@@ -1,7 +1,7 @@
|
||||
image:
|
||||
repository: ghcr.io/juanfont/headscale
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v0.28.0
|
||||
tag: v0.27.1
|
||||
|
||||
args: [ "serve" ]
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
image:
|
||||
repository: ghcr.io/juanfont/headscale
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v0.28.0
|
||||
tag: v0.27.1
|
||||
|
||||
args: ["serve"]
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ spec:
|
||||
- group: ""
|
||||
kind: Secret
|
||||
name: jobset-webhook-server-cert
|
||||
namespace: jobset-system
|
||||
namespace: default
|
||||
jsonPointers:
|
||||
- /data
|
||||
{{- end }}
|
||||
|
||||
@@ -8,7 +8,6 @@ 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
|
||||
kc.sh -Djgroups.bind.port=7801 import --dir /tmp/backup
|
||||
```
|
||||
|
||||
## 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.
|
||||
Our keycloak theme is inserted using the image provided [here](https://gitlab.com/oceanbox/keycloak-theme)
|
||||
|
||||
@@ -33,8 +33,10 @@ spec:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
# - ServerSideApply=true
|
||||
{{- if .Values.keycloak.autosync }}
|
||||
automated:
|
||||
prune: true
|
||||
# selfHeal: false
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,14 +1,26 @@
|
||||
replicaCount: 2
|
||||
|
||||
# NOTE(mrtz): Hack for working with bitnami legacy registry
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
image:
|
||||
repository: bitnamilegacy/keycloak
|
||||
|
||||
production: true
|
||||
|
||||
proxy: edge
|
||||
|
||||
auth:
|
||||
adminPassword: en to tre fire
|
||||
adminUser: admin
|
||||
existingSecret: ""
|
||||
managementPassword: ""
|
||||
managementUser: manager
|
||||
|
||||
postgresql:
|
||||
enabled: false
|
||||
|
||||
resourcesPreset: "none"
|
||||
resources:
|
||||
limits:
|
||||
cpu: 750m
|
||||
@@ -36,7 +48,37 @@ extraVolumes:
|
||||
name: theme
|
||||
|
||||
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
|
||||
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:
|
||||
enabled: false
|
||||
@@ -51,8 +93,8 @@ keycloakConfigCli:
|
||||
|
||||
initContainers: |
|
||||
- name: keycloak-theme-provider
|
||||
image: git.oceanbox.io/platform/keycloak-theme:latest
|
||||
imagePullPolicy: IfNotPresent
|
||||
image: docker.io/juselius/oceanbox-theme:1.2
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- sh
|
||||
args:
|
||||
|
||||
@@ -1,7 +1,22 @@
|
||||
replicaCount: 1
|
||||
|
||||
# NOTE(mrtz): Hack for working with bitnami legacy registry
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
image:
|
||||
repository: bitnamilegacy/keycloak
|
||||
|
||||
production: true
|
||||
|
||||
proxy: edge
|
||||
|
||||
auth:
|
||||
adminPassword: en to tre fire
|
||||
adminUser: admin
|
||||
existingSecret: ""
|
||||
managementPassword: ""
|
||||
managementUser: manager
|
||||
|
||||
postgresql:
|
||||
enabled: true
|
||||
@@ -9,5 +24,58 @@ postgresql:
|
||||
postgresPassword: "avatar mustiness economic"
|
||||
password: "punctured abstain facility"
|
||||
|
||||
extraVolumeMounts:
|
||||
- mountPath: /opt/bitnami/keycloak/themes/oceanbox
|
||||
name: theme
|
||||
|
||||
extraVolumes:
|
||||
- emptyDir: {}
|
||||
name: theme
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
# 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
|
||||
@@ -0,0 +1,3 @@
|
||||
kueue:
|
||||
enabled: true
|
||||
autosync: false
|
||||
@@ -1,68 +1,51 @@
|
||||
apiVersion: kueue.x-k8s.io/v1beta2
|
||||
apiVersion: kueue.x-k8s.io/v1beta1
|
||||
kind: ResourceFlavor
|
||||
metadata:
|
||||
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
|
||||
name: compute # Just needs to exist, can be managed with tains/tolerations
|
||||
---
|
||||
apiVersion: kueue.x-k8s.io/v1beta2
|
||||
apiVersion: kueue.x-k8s.io/v1beta1
|
||||
kind: ClusterQueue
|
||||
metadata:
|
||||
name: cluster-queue
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "2"
|
||||
name: jobs
|
||||
spec:
|
||||
cohort: general
|
||||
namespaceSelector: {} # Accept workloads from any namespace
|
||||
queueingStrategy: BestEffortFIFO
|
||||
# preemption:
|
||||
# withinClusterQueue: "LowerPriority" # Allow higher priority to preempt lower
|
||||
preemption:
|
||||
withinClusterQueue: "LowerPriority" # Allow higher priority to preempt lower
|
||||
resourceGroups:
|
||||
- coveredResources: ["cpu", "memory"] # Cover both memory and cpu resources
|
||||
flavors:
|
||||
- name: compute
|
||||
resources:
|
||||
- name: "cpu"
|
||||
nominalQuota: '32'
|
||||
nominalQuota: '4'
|
||||
- name: "memory"
|
||||
nominalQuota: 64Gi
|
||||
# ---
|
||||
# apiVersion: kueue.x-k8s.io/v1beta2
|
||||
# kind: LocalQueue
|
||||
# metadata:
|
||||
# name: prod-queue
|
||||
# namespace: prod-queue
|
||||
# spec:
|
||||
# clusterQueue: cluster-queue
|
||||
nominalQuota: 8Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
apiVersion: kueue.x-k8s.io/v1beta1
|
||||
kind: LocalQueue
|
||||
metadata:
|
||||
name: dev-queue
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "2"
|
||||
name: prod-queue
|
||||
namespace: prod-sorcerer
|
||||
spec:
|
||||
clusterQueue: jobs
|
||||
---
|
||||
apiVersion: kueue.x-k8s.io/v1beta2
|
||||
apiVersion: kueue.x-k8s.io/v1beta1
|
||||
kind: LocalQueue
|
||||
metadata:
|
||||
name: staging-queue
|
||||
namespace: dev-queue
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "2"
|
||||
namespace: staging-sorcerer
|
||||
spec:
|
||||
clusterQueue: cluster-queue
|
||||
# ---
|
||||
# apiVersion: kueue.x-k8s.io/v1beta2
|
||||
# kind: WorkloadPriorityClass
|
||||
# metadata:
|
||||
# name: "normal"
|
||||
# value: 100
|
||||
# ---
|
||||
# apiVersion: kueue.x-k8s.io/v1beta2
|
||||
# kind: WorkloadPriorityClass
|
||||
# metadata:
|
||||
# name: "high"
|
||||
# value: 200 # Higher value = higher priority
|
||||
clusterQueue: jobs
|
||||
---
|
||||
apiVersion: kueue.x-k8s.io/v1beta1
|
||||
kind: WorkloadPriorityClass
|
||||
metadata:
|
||||
name: "normal"
|
||||
value: 100
|
||||
---
|
||||
apiVersion: kueue.x-k8s.io/v1beta1
|
||||
kind: WorkloadPriorityClass
|
||||
metadata:
|
||||
name: "high"
|
||||
value: 200 # Higher value = higher priority
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
{{- 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,7 +5,6 @@ metadata:
|
||||
name: kueue
|
||||
namespace: argocd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "1"
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
argocd.argoproj.io/compare-options: ServerSideDiff=true
|
||||
finalizers:
|
||||
@@ -28,7 +27,7 @@ spec:
|
||||
value: {{ .Values.kueue.env }}
|
||||
- name: HELMFILE_FILE_PATH
|
||||
value: kueue.yaml.gotmpl
|
||||
- repoURL: {{ .Values.clusterConfig.manifests }}
|
||||
- repoURL: https://gitlab.com/oceanbox/manifests.git
|
||||
targetRevision: main
|
||||
ref: values
|
||||
syncPolicy:
|
||||
@@ -42,3 +41,4 @@ spec:
|
||||
selfHeal: false
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
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"
|
||||
@@ -0,0 +1,9 @@
|
||||
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,14 +1,21 @@
|
||||
managerConfig:
|
||||
controllerManagerConfigYaml: |
|
||||
apiVersion: config.kueue.x-k8s.io/v1beta2
|
||||
kind: Configuration
|
||||
integrations:
|
||||
frameworks:
|
||||
- batch/job
|
||||
- jobset.x-k8s.io/jobset
|
||||
internalCertManagement:
|
||||
enable: false
|
||||
enableCertManager: true
|
||||
controllerManager:
|
||||
featureGates:
|
||||
- name: TopologyAwareScheduling
|
||||
enabled: true
|
||||
- name: LocalQueueMetrics
|
||||
enabled: true
|
||||
managerConfig:
|
||||
controllerManagerConfigYaml: |
|
||||
apiVersion: config.kueue.x-k8s.io/v1beta1
|
||||
kind: Configuration
|
||||
integrations:
|
||||
frameworks:
|
||||
- batch/job
|
||||
- jobset.x-k8s.io/jobset
|
||||
internalCertManagement:
|
||||
enable: false
|
||||
enableCertManager: false
|
||||
enablePrometheus: true
|
||||
metrics:
|
||||
prometheusNamespace: prometheus
|
||||
enableKueueViz: true
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- /* HTTPRoute and CiliumNetworkPolicy are managed by the makai chart template */ -}}
|
||||
@@ -28,6 +28,9 @@ spec:
|
||||
- name: HELMFILE_FILE_PATH
|
||||
value: makai.yaml.gotmpl
|
||||
syncPolicy:
|
||||
managedNamespaceMetadata:
|
||||
labels:
|
||||
shared-gateway-access: "true"
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
replicaCount: 1
|
||||
image:
|
||||
tag: "d5e61949-debug"
|
||||
env:
|
||||
- name: APP_VERSION
|
||||
value: "0.0.0"
|
||||
- name: LOG_LEVEL
|
||||
value: "1"
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
ingress:
|
||||
enabled: false
|
||||
className: "nginx"
|
||||
httpRoute:
|
||||
enabled: true
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https
|
||||
hostnames:
|
||||
- makai.oceanbox.io
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
{{- else }}
|
||||
ingress:
|
||||
enabled: true
|
||||
className: "nginx"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
oceanbox.io/expose: internal
|
||||
hosts:
|
||||
- host: makai.oceanbox.io
|
||||
paths:
|
||||
- path: /
|
||||
pathType: ImplementationSpecific
|
||||
tls:
|
||||
- hosts:
|
||||
- makai.oceanbox.io
|
||||
secretName: makai-tls
|
||||
{{- end }}
|
||||
@@ -0,0 +1,118 @@
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: grafana
|
||||
namespace: prometheus
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https-internal
|
||||
hostnames:
|
||||
- grafana.{{ .Values.clusterConfig.domain }}
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
backendRefs:
|
||||
- name: prometheus-grafana
|
||||
port: 80
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: alertmanager
|
||||
namespace: prometheus
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https-internal
|
||||
hostnames:
|
||||
- alertmanager.{{ .Values.clusterConfig.domain }}
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
backendRefs:
|
||||
- name: prometheus-kube-prometheus-alertmanager
|
||||
port: 9093
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: prometheus
|
||||
namespace: prometheus
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https-internal
|
||||
hostnames:
|
||||
- prometheus.{{ .Values.clusterConfig.domain }}
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
backendRefs:
|
||||
- name: prometheus-kube-prometheus-prometheus
|
||||
port: 9090
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-grafana
|
||||
namespace: prometheus
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: grafana
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
{{- range .Values.clusterConfig.ingress_whitelist }}
|
||||
- cidr: {{ . }}
|
||||
{{- end }}
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": prometheus
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-alertmanager
|
||||
namespace: prometheus
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: alertmanager
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
{{- range .Values.clusterConfig.ingress_whitelist }}
|
||||
- cidr: {{ . }}
|
||||
{{- end }}
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": prometheus
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: allow-gateway-to-prometheus
|
||||
namespace: prometheus
|
||||
spec:
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: prometheus
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
{{- range .Values.clusterConfig.ingress_whitelist }}
|
||||
- cidr: {{ . }}
|
||||
{{- end }}
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": prometheus
|
||||
{{- end }}
|
||||
@@ -26,6 +26,7 @@ spec:
|
||||
managedNamespaceMetadata:
|
||||
labels:
|
||||
component: sys
|
||||
shared-gateway-access: "true"
|
||||
syncOptions:
|
||||
- ServerSideApply=true
|
||||
- CreateNamespace=true
|
||||
|
||||
@@ -67,6 +67,9 @@ alertmanager:
|
||||
storage: {}
|
||||
|
||||
ingress:
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
enabled: false
|
||||
{{- else }}
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
annotations:
|
||||
@@ -84,6 +87,7 @@ alertmanager:
|
||||
- secretName: alertmanager-general-tls
|
||||
hosts:
|
||||
- alertmanager.{{ .Values.clusterConfig.domain }}
|
||||
{{- end }}
|
||||
|
||||
ingressPerReplica:
|
||||
pathType: ImplementationSpecific
|
||||
@@ -170,6 +174,9 @@ grafana:
|
||||
size: 10Gi
|
||||
{{- end }}
|
||||
ingress:
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
enabled: false
|
||||
{{- else }}
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
annotations:
|
||||
@@ -188,6 +195,7 @@ grafana:
|
||||
- secretName: grafana-general-tls
|
||||
hosts:
|
||||
- grafana.{{ .Values.clusterConfig.domain }}
|
||||
{{- end }}
|
||||
sidecar:
|
||||
dashboards:
|
||||
enabled: true
|
||||
@@ -458,6 +466,9 @@ prometheus:
|
||||
{{- end }}
|
||||
|
||||
ingress:
|
||||
{{- if .Values.clusterConfig.gatewayAPI.enabled }}
|
||||
enabled: false
|
||||
{{- else }}
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
annotations:
|
||||
@@ -478,6 +489,7 @@ prometheus:
|
||||
- secretName: prometheus-general-tls
|
||||
hosts:
|
||||
- prometheus.{{ .Values.clusterConfig.domain }}
|
||||
{{- end }}
|
||||
|
||||
ingressPerReplica:
|
||||
enabled: false
|
||||
|
||||
@@ -1,50 +1,41 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
# oauth2-proxy must be configured with --upstream=http://hubble-ui:80
|
||||
# so that it proxies authenticated requests to hubble-ui.
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/auth-signin: https://$host/oauth2/start?rd=$escaped_request_uri
|
||||
nginx.ingress.kubernetes.io/auth-url: https://$host/oauth2/auth
|
||||
oceanbox.io/expose: internal
|
||||
name: hubble-ui
|
||||
namespace: kube-system
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
parentRefs:
|
||||
- name: shared-gateway
|
||||
namespace: kube-system
|
||||
sectionName: https-hel1
|
||||
hostnames:
|
||||
- hubble.hel1.oceanbox.io
|
||||
rules:
|
||||
- host: hubble.hel1.oceanbox.io
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: hubble-ui
|
||||
port:
|
||||
number: 80
|
||||
path: /
|
||||
pathType: Prefix
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: "/"
|
||||
backendRefs:
|
||||
- name: oauth2-proxy
|
||||
port: 80
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||
nginx.ingress.kubernetes.io/proxy-buffer-size: 8k
|
||||
nginx.ingress.kubernetes.io/proxy-busy-buffers-size: 16k
|
||||
oceanbox.io/expose: internal
|
||||
name: hubble-ui-oauth2-proxy
|
||||
name: allow-gateway-to-hubble-ui
|
||||
namespace: kube-system
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: hubble.hel1.oceanbox.io
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: oauth2-proxy
|
||||
port:
|
||||
name: http
|
||||
path: /oauth2
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- hubble.hel1.oceanbox.io
|
||||
secretName: hubble-tls
|
||||
endpointSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: oauth2-proxy
|
||||
ingress:
|
||||
- fromCIDRSet:
|
||||
- cidr: 10.0.0.0/8
|
||||
- cidr: 172.16.0.0/12
|
||||
- cidr: 192.168.0.0/16
|
||||
- cidr: 100.64.0.0/12
|
||||
- fromEndpoints:
|
||||
- matchLabels:
|
||||
"k8s:io.kubernetes.pod.namespace": kube-system
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: kube-system
|
||||
labels:
|
||||
shared-gateway-access: "true"
|
||||
@@ -9,5 +9,4 @@ spec:
|
||||
- toFQDNs:
|
||||
- matchName: login.microsoftonline.com
|
||||
- matchPattern: '*.microsoftonline.com'
|
||||
- matchName: graph.microsoft.com
|
||||
{{- end }}
|
||||
|
||||
@@ -9,5 +9,4 @@ spec:
|
||||
- toFQDNs:
|
||||
- matchName: login.microsoftonline.com
|
||||
- matchPattern: '*.microsoftonline.com'
|
||||
- matchName: graph.microsoft.com
|
||||
{{- end }}
|
||||
|
||||
@@ -72,3 +72,7 @@ metrics:
|
||||
for: 15m
|
||||
labels:
|
||||
severity: critical
|
||||
kubectl:
|
||||
image:
|
||||
repository: docker.io/bitnamilegacy/kubectl
|
||||
tag: 1.33.4
|
||||
|
||||
Reference in New Issue
Block a user